{"id":19640135,"url":"https://github.com/gearplug/pipedrive-python","last_synced_at":"2025-04-05T18:06:41.047Z","repository":{"id":29658144,"uuid":"122390968","full_name":"GearPlug/pipedrive-python","owner":"GearPlug","description":"Pipedrive wrapper written in Python","archived":false,"fork":false,"pushed_at":"2024-06-24T17:13:12.000Z","size":87,"stargazers_count":52,"open_issues_count":5,"forks_count":62,"subscribers_count":9,"default_branch":"master","last_synced_at":"2025-03-29T17:09:42.739Z","etag":null,"topics":["api","library","oauth","pipedrive","python","webhooks","wrapper"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/GearPlug.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-02-21T20:41:26.000Z","updated_at":"2025-02-23T13:30:33.000Z","dependencies_parsed_at":"2023-01-14T15:23:59.520Z","dependency_job_id":"a0275f60-d9ed-4582-97e5-28ab7d917cc5","html_url":"https://github.com/GearPlug/pipedrive-python","commit_stats":{"total_commits":58,"total_committers":22,"mean_commits":"2.6363636363636362","dds":0.7758620689655172,"last_synced_commit":"273b61bb65a3de325fe46dcbb651ea88444bef57"},"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GearPlug%2Fpipedrive-python","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GearPlug%2Fpipedrive-python/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GearPlug%2Fpipedrive-python/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GearPlug%2Fpipedrive-python/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/GearPlug","download_url":"https://codeload.github.com/GearPlug/pipedrive-python/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247378141,"owners_count":20929296,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["api","library","oauth","pipedrive","python","webhooks","wrapper"],"created_at":"2024-11-11T14:04:44.969Z","updated_at":"2025-04-05T18:06:41.025Z","avatar_url":"https://github.com/GearPlug.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# pipedrive-python\n![](https://img.shields.io/badge/version-1.2.3-success) ![](https://img.shields.io/badge/Python-3.8%20|%203.9%20|%203.10%20|%203.11-4B8BBE?logo=python\u0026logoColor=white)   \n*pipedrive-python* is an API wrapper for [Pipedrive](https://www.pipedrive.com/) written in Python.\n\n## Installing\n```\npip install pipedrive-python-lib\n```\n\n## Usage\n\n### Using this library with OAuth 2.0\n\n#### Client instantiation\n```python\nfrom pipedrive.client import Client\n\nclient = Client('CLIENT_ID', 'CLIENT_SECRET')\n```\n\n#### Get authorization url\n```python\nurl = client.authorization_url('REDIRECT_URL')\n```\n\n#### Exchange the code for an access token\n```python\ntoken = client.exchange_code('REDIRECT_URL', 'CODE')\n```\n\n#### Set access token in the library\n```python\nclient.set_access_token('ACCESS_TOKEN')\n```\n\n#### Refresh token\n```python\ntoken = client.refresh_token('REFRESH_TOKEN')\n```\n\n### Using this library with API Token\n\n#### Client instantiation\n```python\nfrom pipedrive.client import Client\n\nclient = Client(domain='https://companydomain.pipedrive.com/')\n```\n\n#### Set API token in the library\n```python\nclient.set_api_token('API_TOKEN')\n```\n\n### Activities \n\nAPI docs: https://developers.pipedrive.com/docs/api/v1/Activities\n\n#### Get an activity\n```python\nresponse = client.activities.get_activity('ACTIVITY_ID')\n```\n\n#### Get all activities\n```python\nresponse = client.activities.get_all_activities()\n```\n\n#### Create an activity\n```python\ndata = {\n    'subject': '',\n    'type': ''\n}\nresponse = client.activities.create_activity(data)\n```\n\n#### Update an activity\n```python\ndata = {\n    'subject': '',\n    'type': ''\n}\nresponse = client.activities.update_activity('ACTIVITY_ID', data)\n```\n\n#### Delete an activity\n```python\nresponse = client.activities.delete_activity('ACTIVITY_ID')\n```\n\n#### Get activity fields\n```python\nresponse = client.activities.get_activity_fields()\n```\n\n### Deals\n\nAPI docs: https://developers.pipedrive.com/docs/api/v1/Deals\n\n#### Get a deal\n```python\nresponse = client.deals.get_deal('DEAL_ID')\n```\n\n#### Get all deals\n```python\nresponse = client.deals.get_all_deals()\n```\n\n#### Get all deals based on filter\n```python\nresponse = client.deals.get_all_deals_with_filter('FILTER_ID')\n```\n\n#### Create deal\n```python\ndata = {\n    'title': ''\n}\nresponse = client.deals.create_deal(data)\n```\n\n#### Update deal\n```python\ndata = {\n    'title': ''\n}\nresponse = client.deals.update_deal('DEAL_ID', data)\n```\n\n#### Delete deal\n```python\nresponse = client.deals.delete_deal('DEAL_ID')\n```\n\n#### Duplicate deal\n```python\nresponse = client.deals.duplicate_deal('DEAL_ID')\n```\n\n#### Get details of a deal\n```python\nresponse = client.deals.get_deal_details('DEAL_ID')\n```\n\n#### Search deals\n```python\nparams = {\n    'term': ''\n}\nresponse = client.deals.search_deals(params=params)\n```\n\n#### Get followers of a deal\n```python\nresponse = client.deals.get_deal_followers('DEAL_ID')\n```\n\n#### Add a follower to a deal\n```python\nresponse = client.deals.add_follower_to_deal('DEAL_ID', 'USER_ID')\n```\n\n#### Delete a follower from a deal\n```python\nresponse = client.deals.delete_follower_to_deal('DEAL_ID', 'FOLLOWER_ID')\n```\n\n#### Get participants of a deal\n```python\nresponse = client.deals.get_deal_participants('DEAL_ID')\n```\n\n#### Add a participant to a deal\n```python\nresponse = client.deals.add_participants_to_deal('DEAL_ID', 'PERSON_ID')\n```\n\n#### Delete a participant from a deal\n```python\nresponse = client.deals.delete_participant_to_deal('DEAL_ID', 'PARTICIPANT_ID')\n```\n\n#### Get activities associated with a deal\n```python\nresponse = client.deals.get_deal_activities('DEAL_ID')\n```\n\n#### Get mail messages associated with a deal\n```python\nresponse = client.deals.get_deal_mail_messages('DEAL_ID')\n```\n\n#### Get products attached to a deal\n```python\nresponse = client.deals.get_deal_products('DEAL_ID')\n```\n\n#### Get deal fields\n```python\nresponse = client.deals.get_deal_fields()\n```\n\n#### Get updates of a deal\n```python\nresponse = client.deals.get_deal_updates('DEAL_ID')\n```\n\n### Filters\n\nAPI docs: https://developers.pipedrive.com/docs/api/v1/Filters\n\n#### Get a filter\n```python\nresponse = client.filters.get_filter('FILTER_ID')\n```\n\n#### Get all filters\n```python\nresponse = client.filters.get_all_filters()\n```\n\n#### Create filter\n```python\ndata = {\n    'name': '', \n    'conditions': {},\n    'type': ''\n}\nresponse = client.filters.create_filter(data)\n```\n\n#### Update filter\n```python\ndata = {\n    'name': '', \n    'conditions': {},\n    'type': ''\n}\nresponse = client.filters.update_filter('FILTER_ID', data)\n```\n\n#### Delete filter\n```python\nresponse = client.filters.delete_filter('FILTER_ID')\n```\n\n### Notes\n\nAPI docs: https://developers.pipedrive.com/docs/api/v1/Notes\n\n#### Get a note\n```python\nresponse = client.notes.get_note('NOTE_ID')\n```\n\n#### Get all notes\n```python\nresponse = client.notes.get_all_notes()\n```\n\n#### Add a note\n```python\ndata = {\n    'content': ''\n}\nresponse = client.notes.create_note(data)\n```\n\n#### Update a note\n```python\ndata = {\n    'content': ''\n}\nresponse = client.notes.update_note('NOTE_ID', data)\n```\n\n#### Delete a note\n```python\nresponse = client.notes.delete_note('NOTE_ID')\n```\n\n#### Get note fields\n```python\nresponse = client.notes.get_note_fields()\n```\n\n### Organizations\n\nAPI docs: https://developers.pipedrive.com/docs/api/v1/Organizations\n\n#### Get an organization\n```python\nresponse = client.organizations.get_organization('ORGANIZATION_ID')\n```\n\n#### Get all organizations\n```python\nresponse = client.organizations.get_all_organizations()\n```\n\n#### Search organizations\n```python\nparams = {\n    'term': ''\n}\nresponse = client.products.search_organizations(params=params)\n```\n\n#### Add organization\n```python\ndata = {\n    'name': ''\n}\nresponse = client.organizations.create_organization(data)\n```\n\n#### Update organization\n```python\ndata = {\n    'name': ''\n}\nresponse = client.organizations.update_organization('ORGANIZATION_ID', data)\n```\n\n#### Delete an organization\n```python\nresponse = client.organizations.delete_organization('ORGANIZATION_ID')\n```\n\n#### Get organization fields\n```python\nresponse = client.organizations.get_organization_fields()\n```\n\n### Persons \n\nAPI docs: https://developers.pipedrive.com/docs/api/v1/Persons\n\n#### Get a person\n```python\nresponse = client.persons.get_person('PERSON_ID')\n```\n\n#### Get all persons\n```python\nresponse = client.persons.get_all_persons()\n```\n\n#### Search persons\n```python\nparams = {\n    'term': ''\n}\nresponse = client.persons.search_persons(params=params)\n```\n\n#### Create person\n```python\ndata = {\n    'name': ''\n}\nresponse = client.persons.create_person(data)\n```\n\n#### Update person\n```python\ndata = {\n    'name': ''\n}\nresponse = client.persons.update_person('PERSON_ID', data)\n```\n\n#### Delete person\n```python\nresponse = client.persons.delete_person('PERSON_ID')\n```\n\n#### Get deals associated with a person\n```python\nresponse = client.persons.get_person_deals('PERSON_ID')\n```\n\n#### Get person fields\n```python\nresponse = client.persons.get_person_fields()\n```\n\n### Pipelines\n\nAPI docs: https://developers.pipedrive.com/docs/api/v1/Pipelines\n\n#### Get a pipeline\n```python\nresponse = client.pipelines.get_pipeline('PIPELINE_ID')\n```\n\n#### Get all pipelines\n```python\nresponse = client.pipelines.get_all_pipelines()\n```\n\n#### Get deals attached to a pipeline\n```python\nresponse = client.pipelines.get_pipeline_deals()\n```\n\n### Products\n\nAPI docs: https://developers.pipedrive.com/docs/api/v1/Products\n\n#### Get a product\n```python\nresponse = client.products.get_product('PRODUCT_ID')\n```\n\n#### Get all products\n```python\nresponse = client.products.get_all_products()\n```\n\n#### Search products\n```python\nparams = {\n    'term': ''\n}\nresponse = client.products.search_products(params=params)\n```\n\n#### Create a product\n```python\ndata = {\n    'name': ''\n}\nresponse = client.products.create_product(data)\n```\n\n#### Update a product\n```python\ndata = {\n    'name': ''\n}\nresponse = client.products.update_product('PRODUCT_ID', data)\n```\n\n#### Delete a product\n```python\nresponse = client.products.delete_product('PRODUCT_ID')\n```\n\n#### Get deals where a product is attached to\n```python\nresponse = client.products.get_product_deal('PRODUCT_ID')\n```\n\n#### Get product fields\n```python\nresponse = client.products.get_product_fields()\n```\n\n### Recents\n\n#### Get recent changes\n```python\nparams = {\n    'since_timestamp': 'YYYY-MM-DD HH:MM:SS'\n}\nresponse = client.recents.get_recent_changes(params=params)\n```\n### Leads\nAPI docs: https://developers.pipedrive.com/docs/api/v1/Leads\n\n#### Get a lead\n```python\nresponse = client.leads.get_lead('LEAD_ID')\n```\n#### Search leads\n```python\nparams = {\n    'term': ''\n}\nresponse = client.leads.search_leads(params=params)\n```\n### Users \n\nAPI docs: https://developers.pipedrive.com/docs/api/v1/Users\n\n#### Get an user\n```\nresponse = client.users.get_user('USER_ID')\n```\n\n#### Get all users\n```\nresponse = client.users.get_all_users()\n```\n\n#### Get me\n```\nresponse = client.users.get_me()\n```\n\n### Webhook \n\nAPI docs: https://developers.pipedrive.com/docs/api/v1/Webhooks\n\n#### Get webhooks\n```\nresponse = client.webhooks.get_hooks_subscription()\n```\n\n#### Add webhook\n```\ndata = {\n    'subscription_url': '',\n    'event_action': '',\n    'event_object': ''\n}\nresponse = client.webhooks.create_hook_subscription(data)\n```\n\n#### Delete webhook\n```\nresponse = client.webhooks.delete_hook_subscription('HOOK_ID')\n```\n\n## Requirements\n- requests\n\n\n## Contributing\nWe are always grateful for any kind of contribution including but not limited to bug reports, code enhancements, bug fixes, and even functionality suggestions.\n\n#### You can report any bug you find or suggest new functionality with a new [issue](https://github.com/GearPlug/pipedrive-python/issues).\n\n#### If you want to add yourself some functionality to the wrapper:\n1. Fork it ( https://github.com/GearPlug/pipedrive-python )\n2. Create your feature branch (git checkout -b my-new-feature)\n3. Commit your changes (git commit -am 'Adds my new feature')\n4. Push to the branch (git push origin my-new-feature)\n5. Create a new Pull Request\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgearplug%2Fpipedrive-python","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgearplug%2Fpipedrive-python","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgearplug%2Fpipedrive-python/lists"}