openapi: 3.0.1 info: title: Pipedrive API v1 Activities Webhooks API version: 1.0.0 description: 'Activities are appointments/tasks/events on a calendar that can be associated with a deal, a lead, a person and an organization. Activities can be of different type (such as call, meeting, lunch or a custom type - see ActivityTypes object) and can be assigned to a particular user. Note that activities can also be created without a specific date/time. ' servers: - url: https://api.pipedrive.com/v1 tags: - name: Webhooks description: See the guide for Webhooks for more information. paths: /webhooks: get: summary: Get all Webhooks description: Returns data about all the Webhooks of a company. x-token-cost: 10 operationId: getWebhooks tags: - Webhooks security: - api_key: [] - oauth2: - admin responses: '200': description: The list of webhooks objects from the logged in company and user content: application/json: schema: title: GetWebhooksResponse allOf: - title: BaseResponse allOf: - title: baseResponse type: object properties: success: type: boolean description: If the response is successful or not - type: object properties: status: type: string description: The status of the response - type: object properties: data: type: array items: type: object title: BaseWebhook properties: id: type: integer description: The ID of the Webhook company_id: type: integer description: The ID of the company related to the Webhook owner_id: type: integer description: The ID of the user who owns the Webhook user_id: type: integer description: The ID of the user related to the Webhook event_action: type: string description: The Webhook action event_object: type: string description: The Webhook object subscription_url: type: string description: The subscription URL of the Webhook version: type: string description: The Webhook version is_active: allOf: - title: numberBooleanDefault1 type: number default: 1 enum: - 0 - 1 description: The Webhook's status add_time: type: string format: date-time description: The date when the Webhook was added remove_time: type: string format: date-time nullable: true description: The date when the Webhook was removed (if removed) type: type: string enum: - general - application - automation description: The type of the Webhook http_auth_user: type: string nullable: true description: The username of the `subscription_url` of the Webhook http_auth_password: type: string nullable: true description: The password of the `subscription_url` of the Webhook remove_reason: type: string nullable: true description: The removal reason of the Webhook (if removed) last_delivery_time: type: string format: date-time nullable: true description: The last delivery time of the Webhook last_http_status: type: integer nullable: true description: The last delivery HTTP status of the Webhook admin_id: type: integer description: The ID of the admin of the Webhook name: type: string description: The Webhook name maxLength: 255 description: The array of Webhooks example: status: ok success: true data: - id: 1 company_id: 1 owner_id: 1 user_id: 1 event_action: added event_object: activityType subscription_url: http://example.org version: '2.0' is_active: 1 add_time: '2019-10-25T08:25:27.000Z' remove_time: null type: general http_auth_user: null http_auth_password: null remove_reason: null last_delivery_time: null last_http_status: null admin_id: 1 name: Example webhook '401': description: Unauthorized response content: application/json: schema: title: unathorizedResponse type: object properties: success: type: boolean description: If the response is successful or not error: type: string description: The error message errorCode: type: integer description: The response error code example: success: false error: unauthorized access errorCode: 401 post: summary: Create a new Webhook description: Creates a new Webhook and returns its details. Note that specifying an event which triggers the Webhook combines 2 parameters - `event_action` and `event_object`. E.g., use `*.*` for getting notifications about all events, `create.deal` for any newly added deals, `delete.persons` for any deleted persons, etc. See the guide for Webhooks for more details. x-token-cost: 10 operationId: addWebhook tags: - Webhooks security: - api_key: [] - oauth2: - admin requestBody: content: application/json: schema: title: addWebhookRequest type: object required: - subscription_url - event_action - event_object - name properties: subscription_url: type: string description: A full, valid, publicly accessible URL which determines where to send the notifications. Please note that you cannot use Pipedrive API endpoints as the `subscription_url` and the chosen URL must not redirect to another link. event_action: type: string enum: - create - change - delete - '*' description: The type of action to receive notifications about. Wildcard will match all supported actions. event_object: type: string enum: - activity - deal - lead - note - organization - person - pipeline - product - stage - user - '*' description: The type of object to receive notifications about. Wildcard will match all supported objects. name: type: string description: The webhook's name maxLength: 255 user_id: type: integer description: The ID of the user that this webhook will be authorized with. You have the option to use a different user's `user_id`. If it is not set, the current user's `user_id` will be used. As each webhook event is checked against a user's permissions, the webhook will only be sent if the user has access to the specified object(s). If you want to receive notifications for all events, please use a top-level admin user’s `user_id`. http_auth_user: nullable: true type: string description: The HTTP basic auth username of the subscription URL endpoint (if required) http_auth_password: nullable: true type: string description: The HTTP basic auth password of the subscription URL endpoint (if required) version: type: string enum: - '1.0' - '2.0' default: '2.0' description: The webhook's version. NB! Webhooks v2 is the default from March 17th, 2025. See this Changelog post for more details. responses: '201': description: The created webhook object content: application/json: schema: title: GetWebhookResponse allOf: - title: BaseResponse allOf: - title: baseResponse type: object properties: success: type: boolean description: If the response is successful or not - type: object properties: status: type: string description: The status of the response - type: object title: GetWebhookResponseData properties: data: type: object title: BaseWebhook properties: id: type: integer description: The ID of the Webhook company_id: type: integer description: The ID of the company related to the Webhook owner_id: type: integer description: The ID of the user who owns the Webhook user_id: type: integer description: The ID of the user related to the Webhook event_action: type: string description: The Webhook action event_object: type: string description: The Webhook object subscription_url: type: string description: The subscription URL of the Webhook version: type: string description: The Webhook version is_active: allOf: - title: numberBooleanDefault1 type: number default: 1 enum: - 0 - 1 description: The Webhook's status add_time: type: string format: date-time description: The date when the Webhook was added remove_time: type: string format: date-time nullable: true description: The date when the Webhook was removed (if removed) type: type: string enum: - general - application - automation description: The type of the Webhook http_auth_user: type: string nullable: true description: The username of the `subscription_url` of the Webhook http_auth_password: type: string nullable: true description: The password of the `subscription_url` of the Webhook remove_reason: type: string nullable: true description: The removal reason of the Webhook (if removed) last_delivery_time: type: string format: date-time nullable: true description: The last delivery time of the Webhook last_http_status: type: integer nullable: true description: The last delivery HTTP status of the Webhook admin_id: type: integer description: The ID of the admin of the Webhook name: type: string description: The Webhook name maxLength: 255 example: status: ok success: true data: id: 1 company_id: 1 owner_id: 1 user_id: 1 event_action: added event_object: activityType subscription_url: http://example.org version: '2.0' is_active: 1 add_time: '2019-10-25T08:25:27.000Z' remove_time: null type: general http_auth_user: null http_auth_password: null remove_reason: null last_delivery_time: null last_http_status: null admin_id: 1 name: Example webhook '400': description: The bad response on webhook creation content: application/json: schema: title: WebhooksBadRequestResponse allOf: - title: BaseResponse allOf: - title: baseResponse type: object properties: success: type: boolean description: If the response is successful or not - type: object properties: status: type: string description: The status of the response - type: object properties: errors: type: object description: List of errors example: status: error success: false errors: subscription_url: - invalid or non-reachable URL '401': description: Unauthorized response content: application/json: schema: title: unathorizedResponse type: object properties: success: type: boolean description: If the response is successful or not error: type: string description: The error message errorCode: type: integer description: The response error code example: success: false error: unauthorized access errorCode: 401 /webhooks/{id}: delete: summary: Delete existing Webhook description: Deletes the specified Webhook. x-token-cost: 6 operationId: deleteWebhook tags: - Webhooks security: - api_key: [] - oauth2: - admin parameters: - in: path name: id required: true schema: type: integer description: The ID of the Webhook to delete responses: '200': description: The webhook deletion success response content: application/json: schema: title: BaseResponse allOf: - title: baseResponse type: object properties: success: type: boolean description: If the response is successful or not - type: object properties: status: type: string description: The status of the response example: status: ok success: true '401': description: Unauthorized response content: application/json: schema: title: unathorizedResponse type: object properties: success: type: boolean description: If the response is successful or not error: type: string description: The error message errorCode: type: integer description: The response error code example: success: false error: unauthorized access errorCode: 401 '403': description: The webhook deletion forbidden response content: application/json: schema: allOf: - title: baseResponse type: object properties: success: type: boolean description: If the response is successful or not - type: object properties: message: type: string description: The error message example: success: false message: Forbidden '404': description: The webhook deletion not found response content: application/json: schema: title: WebhooksBadRequestResponse allOf: - title: BaseResponse allOf: - title: baseResponse type: object properties: success: type: boolean description: If the response is successful or not - type: object properties: status: type: string description: The status of the response - type: object properties: errors: type: object description: List of errors example: status: error success: false errors: id: - not found components: securitySchemes: basic_authentication: type: http scheme: basic description: Base 64 encoded string containing the `client_id` and `client_secret` values. The header value should be `Basic `. api_key: type: apiKey name: x-api-token in: header oauth2: type: oauth2 description: For more information, see https://pipedrive.readme.io/docs/marketplace-oauth-authorization flows: authorizationCode: authorizationUrl: https://oauth.pipedrive.com/oauth/authorize tokenUrl: https://oauth.pipedrive.com/oauth/token refreshUrl: https://oauth.pipedrive.com/oauth/token scopes: base: Read settings of the authorized user and currencies in an account deals:read: Read most of the data about deals and related entities - deal fields, products, followers, participants; all notes, files, filters, pipelines, stages, and statistics. Does not include access to activities (except the last and next activity related to a deal) deals:full: Create, read, update and delete deals, its participants and followers; all files, notes, and filters. It also includes read access to deal fields, pipelines, stages, and statistics. Does not include access to activities (except the last and next activity related to a deal) mail:read: Read mail threads and messages mail:full: Read, update and delete mail threads. Also grants read access to mail messages activities:read: Read activities, its fields and types; all files and filters activities:full: Create, read, update and delete activities and all files and filters. Also includes read access to activity fields and types contacts:read: Read the data about persons and organizations, their related fields and followers; also all notes, files, filters contacts:full: Create, read, update and delete persons and organizations and their followers; all notes, files, filters. Also grants read access to contacts-related fields products:read: Read products, its fields, files, followers and products connected to a deal products:full: Create, read, update and delete products and its fields; add products to deals deal-fields:full: Create, read, update and delete deal fields product-fields:full: Create, read, update and delete product fields contact-fields:full: Create, read, update and delete person and organization fields projects:read: Read projects and its fields, tasks and project templates projects:full: Create, read, update and delete projects and its fields; add projects templates and project related tasks users:read: Read data about users (people with access to a Pipedrive account), their permissions, roles and followers recents:read: Read all recent changes occurred in an account. Includes data about activities, activity types, deals, files, filters, notes, persons, organizations, pipelines, stages, products and users search:read: Search across the account for deals, persons, organizations, files and products, and see details about the returned results admin: Allows to do many things that an administrator can do in a Pipedrive company account - create, read, update and delete pipelines and its stages; deal, person and organization fields; activity types; users and permissions, etc. It also allows the app to create webhooks and fetch and delete webhooks that are created by the app leads:read: Read data about leads and lead labels leads:full: Create, read, update and delete leads and lead labels phone-integration: Enables advanced call integration features like logging call duration and other metadata, and play call recordings inside Pipedrive goals:read: Read data on all goals goals:full: Create, read, update and delete goals video-calls: Allows application to register as a video call integration provider and create conference links messengers-integration: Allows application to register as a messengers integration provider and allows them to deliver incoming messages and their statuses