Pipedrive API generic client for Python
pipedrivepy tested under Python 3.6+. Synchoronous version requires requests
package. Asynchoronous version requires aiohttp
package.
You can install pipedrivepy with:
pip install pipedrivepy[sync]
for synchoronous version;pip install pipedrivepy[async]
for asynchoronous version;
pipedrivepy uses chain technique to build endpoint path.
For example, client.deals(100).followers
makes path to /deals/100/followers
.
To send request need call one of control methods:
get(**query)
to GET request;add(**payload)
to POST request;update(**payload)
to PUT request;delete(**payload)
to DELETE request;
You must first check API method signature to build right path and call right method.
"""Add a deal
https://developers.pipedrive.com/docs/api/v1/#!/Deals/post_deals"""
from pipedrive import PipedriveError
from pipedrive.sio import Client
client = Client('your-company-domain', 'your-token')
def add_deal(title):
try:
data = client.deals.add(title='Test deal')
except PipedriveError as error:
print(error.code) # Show HTTP code
raise ValueError(str(error))
print(data['data']['id'])
"""Merging two deals
https://developers.pipedrive.com/docs/api/v1/#!/Deals/put_deals_id_merge"""
from pipedrive import PipedriveError
from pipedrive.aio import Client
client = Client('your-company-domain', 'your-token')
async def merge_deals(deal_id, merge_with_id):
try:
data = await client.deals(42).merge.update(merge_with_id=24)
except PipedriveError as error:
print(error.code) # Show HTTP code
raise ValueError(str(error))
print(data['data']['id'])