Skip to main content

API wrapper for Pipedrive written in Python

Project description


pipedrive-python is an API wrapper for Pipedrive written in Python.


pip install pipedrive-python-lib


Using this library with OAuth 2.0

Client instantiation

from pipedrive.client import Client

client = Client('CLIENT_ID', 'CLIENT_SECRET')

Get authorization url

url = client.authorization_url('REDIRECT_URL')

Exchange the code for an access token

token = client.exchange_code('REDIRECT_URL', 'CODE')

Set access token in the library


Refresh token

token = client.refresh_token('REFRESH_TOKEN')

Using this library with API Token

Client instantiation

from pipedrive.client import Client

client = Client(domain='')

Set API token in the library



API docs:!/Activities

Get an activity

response = client.activities.get_activity('ACTIVITY_ID')

Get all activities

response = client.activities.get_all_activities()

Create an activity

data = {
    'subject': '',
    'type': ''
response = client.activities.create_activity(data)

Update an activity

data = {
    'subject': '',
    'type': ''
response = client.activities.update_activity('ACTIVITY_ID', data)

Delete an activity

response = client.activities.delete_activity('ACTIVITY_ID')

Get activity fields

response = client.activities.get_activity_fields()


API docs:!/Deals

Get a deal

response ='DEAL_ID')

Get all deals

response =

Get all deals based on filter

response ='FILTER_ID')

Create deal

data = {
    'title': ''
response =

Update deal

data = {
    'title': ''
response ='DEAL_ID', data)

Delete deal

response ='DEAL_ID')

Duplicate deal

response ='DEAL_ID')

Get details of a deal

response ='DEAL_ID')

Search deals

params = {
    'term': ''
response =

Get followers of a deal

response ='DEAL_ID')

Add a follower to a deal

response ='DEAL_ID', 'USER_ID')

Delete a follower from a deal

response ='DEAL_ID', 'FOLLOWER_ID')

Get participants of a deal

response ='DEAL_ID')

Add a participant to a deal

response ='DEAL_ID', 'PERSON_ID')

Delete a participant from a deal

response ='DEAL_ID', 'PARTICIPANT_ID')

Get activities associated with a deal

response ='DEAL_ID')

Get mail messages associated with a deal

response ='DEAL_ID')

Get products attached to a deal

response ='DEAL_ID')

Get deal fields

response =


API docs:!/Filters

Get a filter

response = client.filters.get_filter('FILTER_ID')

Get all filters

response = client.filters.get_all_filters()

Create filter

data = {
    'name': '', 
    'conditions': {},
    'type': ''
response = client.filters.create_filter(data)

Update filter

data = {
    'name': '', 
    'conditions': {},
    'type': ''
response = client.filters.update_filter('FILTER_ID', data)

Delete filter

response = client.filters.delete_filter('FILTER_ID')


API docs:!/Notes

Get a note

response = client.notes.get_note('NOTE_ID')

Get all notes

response = client.notes.get_all_notes()

Add a note

data = {
    'content': ''
response = client.notes.create_note(data)

Update a note

data = {
    'content': ''
response = client.notes.update_note('NOTE_ID', data)

Delete a note

response = client.notes.delete_note('NOTE_ID')

Get note fields

response = client.notes.get_note_fields()


API docs:!/Organizations

Get an organization

response = client.organizations.get_organization('ORGANIZATION_ID')

Get all organizations

response = client.organizations.get_all_organizations()

Search organizations

params = {
    'term': ''
response = client.products.search_organizations(params=params)

Add organization

data = {
    'name': ''
response = client.organizations.create_organization(data)

Update organization

data = {
    'name': ''
response = client.organizations.update_organization('ORGANIZATION_ID', data)

Delete an organization

response = client.organizations.delete_organization('ORGANIZATION_ID')

Get organization fields

response = client.organizations.get_organization_fields()


API docs:!/Persons

Get a person

response = client.persons.get_person('PERSON_ID')

Get all persons

response = client.persons.get_all_persons()

Search persons

params = {
    'term': ''
response = client.persons.search_persons(params=params)

Create person

data = {
    'name': ''
response = client.persons.create_person(data)

Update person

data = {
    'name': ''
response = client.persons.update_person('PERSON_ID', data)

Delete person

response = client.persons.delete_person('PERSON_ID')

Get deals associated with a person

response = client.persons.get_person_deals('PERSON_ID')

Get person fields

response = client.persons.get_person_fields()


API docs:!/Pipelines

Get a pipeline

response = client.pipelines.get_pipeline('PIPELINE_ID')

Get all pipelines

response = client.pipelines.get_all_pipelines()

Get deals attached to a pipeline

response = client.pipelines.get_pipeline_deals()


API docs:!/Products

Get a product

response = client.products.get_product('PRODUCT_ID')

Get all products

response = client.products.get_all_products()

Search products

params = {
    'term': ''
response = client.products.search_products(params=params)

Create a product

data = {
    'name': ''
response = client.products.create_product(data)

Update a product

data = {
    'name': ''
response = client.products.update_product('PRODUCT_ID', data)

Delete a product

response = client.products.delete_product('PRODUCT_ID')

Get deals where a product is attached to

response = client.products.get_product_deal('PRODUCT_ID')

Get product fields

response = client.products.get_product_fields()


Get recent changes

params = {
    'since_timestamp': 'YYYY-MM-DD HH:MM:SS'
response = client.recents.get_recent_changes(params=params)


API docs:!/Users

Get an user

response = client.users.get_user('USER_ID')

Get all users

response = client.users.get_all_users()

Get me

response = client.users.get_me()


API docs:!/Webhooks

Get webhooks

response = client.webhooks.get_hooks_subscription()

Add webhook

data = {
    'subscription_url': '',
    'event_action': '',
    'event_object': ''
response = client.webhooks.create_hook_subscription(data)

Delete webhook

response = client.webhooks.delete_hook_subscription('HOOK_ID')


  • requests


We are always grateful for any kind of contribution including but not limited to bug reports, code enhancements, bug fixes, and even functionality suggestions.

You can report any bug you find or suggest new functionality with a new issue.

If you want to add yourself some functionality to the wrapper:

  1. Fork it ( )
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Adds my new feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create a new Pull Request

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pipedrive-python-lib-1.1.5.tar.gz (9.2 kB view hashes)

Uploaded source

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Huawei Huawei PSF Sponsor Microsoft Microsoft PSF Sponsor NVIDIA NVIDIA PSF Sponsor Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page