/python-pipedrive

Python API for interacting with the pipedrive.com API

Primary LanguagePythonMIT LicenseMIT

python-pipedrive

Python library for interacting with the pipedrive.com API

This is being developed for my specific use so there's no guarantee I'll cover all of the aspects of the Pipedrive API. Feel free to add features though, I welcome pull requests.

All features should be supported though as this is just a lightweight wrapper around the API.

Usage:

Create a Pipedrive object, passing either the api key or your username and password as the parameters

from pipedrive import Pipedrive
pipedrive = Pipedrive(USERNAME, PASSSWORD)

or

from pipedrive import Pipedrive
pipedrive = Pipedrive(API_KEY)

The rest of the functions relate to the URL as specified in the API Docs.

Do yourself a favor and try a few simple requests and look the raw responses to know what data Pipedrive's API gives you. This will aid in knowing how to deal with your responses in python code. For example, to find an organzation:

curl 'https://api.pipedrive.com/v1/organizations/find?api_token=abcd1234abcd1234abcd1234abcd1234abcd1234&term=microsoft'

which spits out something like:

{"success":true,"data":[{"id":215,"name":"Microsoft Main Organization","visible_to":"3"},{"id":360,"name":"Microsoft Subdivision Company","visible_to":"3"}],"additional_data":{"pagination":{"start":0,"limit":100,"more_items_in_collection":false}}}

The two things to note are the HTTP Method, and the path:

Examples:

  1. List the organizations

        pipedrive.organizations(method='GET')
  2. Add a New Deal

        pipedrive.deals({
        	'title': 'Big Sucker',
        	'value': 1000000,
        	'org_id': 2045,
        	'status': 'open'
       	}, method='POST')
  3. Update a New Deal

        pipedrive.deals({
        	'id': 5,
        	'title': 'Biggest Sucker',
        	'value': 100000000,
        	'org_id': 2045,
        	'status': 'open'
       	}, method='PUT')
  4. Delete an Activity

        pipedrive.activities({'id': 6789}, method='DELETE')
  5. Find a person, and use the search results. The variable term is the search term that has been passed in.

        import json
        ...
        response = pipedrive.persons_find({'term':term}, method='GET')
        results = response['data']
        suggestions = []
        if results != None:
                for result in results:
                    suggestions.append({'value': result['name'], 'data': result})
        json_response = {'query': term, 'suggestions': suggestions}
        data = json.dumps(json_response)

    And return data to some kind of javascript search result autocomplete thing (this example is formatted for devbridge's simple and easy-to-use jquery.autocomplete.js)