Skip to main content

API wrapper for Pipedrive written in Python

Project description

pipedrive-python


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

Installing

pip install api-pipedrive-python==1

Usage

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

client.set_access_token('ACCESS_TOKEN')

Refresh token

token = client.refresh_token('REFRESH_TOKEN')

Using this library with API Token

Client instantiation

from pipedrive.client import Client

client = Client(domain='https://companydomain.pipedrive.com/')

Set API token in the library

client.set_api_token('API_TOKEN')

Activities

API docs: https://developers.pipedrive.com/docs/api/v1/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()

Deals

API docs: https://developers.pipedrive.com/docs/api/v1/Deals

Get a deal

response = client.deals.get_deal('DEAL_ID')

Get all deals

response = client.deals.get_all_deals()

Get all deals based on filter

response = client.deals.get_all_deals_with_filter('FILTER_ID')

Create deal

data = {
    'title': ''
}
response = client.deals.create_deal(data)

Update deal

data = {
    'title': ''
}
response = client.deals.update_deal('DEAL_ID', data)

Delete deal

response = client.deals.delete_deal('DEAL_ID')

Duplicate deal

response = client.deals.duplicate_deal('DEAL_ID')

Get details of a deal

response = client.deals.get_deal_details('DEAL_ID')

Search deals

params = {
    'term': ''
}
response = client.deals.search_deals(params=params)

Get followers of a deal

response = client.deals.get_deal_followers('DEAL_ID')

Add a follower to a deal

response = client.deals.add_follower_to_deal('DEAL_ID', 'USER_ID')

Delete a follower from a deal

response = client.deals.delete_follower_to_deal('DEAL_ID', 'FOLLOWER_ID')

Get participants of a deal

response = client.deals.get_deal_participants('DEAL_ID')

Add a participant to a deal

response = client.deals.add_participants_to_deal('DEAL_ID', 'PERSON_ID')

Delete a participant from a deal

response = client.deals.delete_participant_to_deal('DEAL_ID', 'PARTICIPANT_ID')

Get activities associated with a deal

response = client.deals.get_deal_activities('DEAL_ID')

Get mail messages associated with a deal

response = client.deals.get_deal_mail_messages('DEAL_ID')

Get products attached to a deal

response = client.deals.get_deal_products('DEAL_ID')

Get deal fields

response = client.deals.get_deal_fields()

Get updates of a deal

response = client.deals.get_deal_updates('DEAL_ID')

Filters

API docs: https://developers.pipedrive.com/docs/api/v1/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')

Notes

API docs: https://developers.pipedrive.com/docs/api/v1/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()

Organizations

API docs: https://developers.pipedrive.com/docs/api/v1/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()

Persons

API docs: https://developers.pipedrive.com/docs/api/v1/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()

Pipelines

API docs: https://developers.pipedrive.com/docs/api/v1/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()

Products

API docs: https://developers.pipedrive.com/docs/api/v1/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()

Recents

Get recent changes

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

Search

API docs: https://developers.pipedrive.com/docs/api/v1/ItemSearch

Search for items by term

response = client.search.search_term('SEARCH_TERM')

Initialize search and get persons data

# Searches and organizes deals by person based on phone number
client.search.iniciar('PHONE_NUMBER')

# Access the organized persons data
persons_data = client.search.persons

The iniciar method searches for persons by phone number and organizes their deals by status:

  • open: Active deals
  • won: Won deals
  • lost: Lost deals
  • deleted: Deleted deals

Each deal includes custom fields like SDR, product, debt values, benefits, and monthly payments.

Get a specific deal

response = client.search.get_deal('DEAL_ID')

Get all deals associated with a person

deals = client.search.get_deals_by_person('PERSON_ID')

Leads

API docs: https://developers.pipedrive.com/docs/api/v1/Leads

Get a lead

response = client.leads.get_lead('LEAD_ID')

Search leads

params = {
    'term': ''
}
response = client.leads.search_leads(params=params)

Users

API docs: https://developers.pipedrive.com/docs/api/v1/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()

Webhook

API docs: https://developers.pipedrive.com/docs/api/v1/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')

LegacyTeams

API docs: https://developers.pipedrive.com/docs/api/v1/legacyTeams

Get all teams

response = client.teams.get_all_teams()

Requirements

  • requests

Contributing

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 ( https://github.com/GearPlug/pipedrive-python )
  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

api_pipedrive_python-1.5.tar.gz (8.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

api_pipedrive_python-1.5-py3-none-any.whl (14.4 kB view details)

Uploaded Python 3

File details

Details for the file api_pipedrive_python-1.5.tar.gz.

File metadata

  • Download URL: api_pipedrive_python-1.5.tar.gz
  • Upload date:
  • Size: 8.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.9.13

File hashes

Hashes for api_pipedrive_python-1.5.tar.gz
Algorithm Hash digest
SHA256 a20561421ad4b916b67a04eed0801acbf11fc8c215e304eda8ed815d3d89ba7f
MD5 f1078b66db24521d7bb29251dc85b168
BLAKE2b-256 cb149d4963bb67370258a4e68f88e6d1365f975edacc7f4acfc7f81fd87f8461

See more details on using hashes here.

File details

Details for the file api_pipedrive_python-1.5-py3-none-any.whl.

File metadata

File hashes

Hashes for api_pipedrive_python-1.5-py3-none-any.whl
Algorithm Hash digest
SHA256 c216420308523130a471ebf966404e9e57aed574f929eee1c40b3fca2176f263
MD5 b95c70c9ef58c12a36f81f2a419c2592
BLAKE2b-256 64d8a9f1f0e3f345af17cb53367f0390ba6069927faa6aecf8067359252d0316

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page