← All monitored APIs
Pipedrive // api changelog

Pipedrive API changelog

We check Pipedrive's changelog and OpenAPI spec every day, because we run production integrations on the Pipedrive API. This page lists the 18 changes we have recorded since monitoring started on 26 March 2026, newest first.

In short

2 breaking changes and 0 deprecations in the Pipedrive API in the last 90 days. The latest: “API v1 endpoints now out of support” (1 August 2026).

Latest detection, 9 October 2026 The `/users` `access` request default remains `app:sales`; only OpenAPI source metadata changed, so no action is needed.

2 Breaking, 90 days
0 Deprecations, 90 days
18 Changes on record
Last checked

Pipedrive API changes

Labels are assigned automatically. Check the vendor's note before planning work around an entry.

August 2026

  1. API v1 endpoints now out of support

    Deprecated API v1 endpoints have reached end-of-support as of August 1st, 2026, making this a critical breaking change for any remaining v1 integrations.

    Affects one of your integrations? We take over the migration, at a fixed price

July 2026

  1. Deprecated API v1 endpoints now out of support

    API v1 endpoints have reached end-of-support as of August 1st, 2026, requiring all integrations to migrate to v2.

    Affects one of your integrations? We take over the migration, at a fixed price

May 2026

  1. Introducing Projects API v2

    New Projects API v2 released, expanding v2 capabilities for project management features.

  2. New webhooks and API improvements

    New webhook types and general API improvements added to v2.

April 2026

  1. Introducing support for Projects in webhooks v2

    Projects webhook support added to webhooks v2 on April 10th, 2026, enabling event notifications for project-related changes.

  2. Bug fix in v2 product webhooks payload

    Corrected payload issue in product webhooks v2.

March 2026

  1. Introducing a new Assignees field in Projects API

    New Assignees field added to Projects API on March 25th, 2026, allowing assignment of team members to projects.

February 2026

  1. Bug fix in v2 product webhooks payload

    Bug fix addressing payload issues in v2 product webhooks, effective April 1st, 2026.

  2. Channels API deprecation effective

    Channels API has been deprecated with a breaking change effective February 1st, 2026, requiring migration to alternative solutions.

December 2025

  1. Introducing new Fields API v2

    New Fields API v2 released for managing custom fields.

November 2025

  1. Introducing deal_id parameter for GET /api/v2/persons endpoint

    New deal_id query parameter added to GET /api/v2/persons endpoint on November 24th, 2025, enabling filtering persons by associated deal.

  2. Introducing new Product Duplication API

    New Product Duplication API released on November 24th, 2025, enabling programmatic duplication of products.

  3. Breaking change

    Deprecation of Channels API: Channels API marked as deprecated with February 1st, 2026 effective date, requiring migration away from this endpoint.

October 2025

  1. Introducing new Deal Products bulk operations API

    New Deal Products bulk operations API introduced for batch operations, effective October 1st, 2025.

  2. Introducing new sorting parameter for Products API

    New sorting parameter added to the Products API for more flexible product list ordering.

September 2025

  1. Breaking change

    updating activities note field limit sizing for POST v1/activities: Activities note field character limit is being changed, which may affect existing integrations that rely on current field size limits.

August 2025

  1. Introducing new Product Images API

    New dedicated API endpoint for managing product images separately from product data.

July 2025

  1. Breaking change

    updating activities note field limit sizing for POST v1/activities: Activities note field limit sizing updated for POST v1/activities endpoint, effective September 21st, 2025; may break integrations expecting larger note fields.

OpenAPI spec changes

Differences between consecutive versions of Pipedrive's published OpenAPI spec, as reported by oasdiff. Only changes that break or may break existing clients are listed.

  1. 9 breaking changes
    • Breaking GET /leads removed the enum value 'add_time' from the 'query' request parameter 'sort'
    • Breaking GET /leads removed the enum value 'creator_id' from the 'query' request parameter 'sort'
    • Breaking GET /leads removed the enum value 'expected_close_date' from the 'query' request parameter 'sort'
    • Breaking GET /leads removed the enum value 'id' from the 'query' request parameter 'sort'
    • Breaking GET /leads removed the enum value 'next_activity_id' from the 'query' request parameter 'sort'
    • Breaking GET /leads removed the enum value 'owner_id' from the 'query' request parameter 'sort'
    • Breaking GET /leads removed the enum value 'title' from the 'query' request parameter 'sort'
    • Breaking GET /leads removed the enum value 'update_time' from the 'query' request parameter 'sort'
    • Breaking GET /leads removed the enum value 'was_seen' from the 'query' request parameter 'sort'
  2. 14 breaking changes
    • Breaking DELETE /dealFields for the 'query' request parameter 'ids', the type/format was changed from 'string'/'' to 'array'/''
    • Breaking GET /deals/{id}/flow for the 'query' request parameter 'items', the type/format was changed from 'string'/'' to 'array'/''
    • Breaking DELETE /filters for the 'query' request parameter 'ids', the type/format was changed from 'string'/'' to 'array'/''
    • Breaking GET /leads/search removed the enum value 'custom_fields' from the 'query' request parameter 'fields'
    • Breaking GET /leads/search removed the enum value 'lead.was_seen' from the 'query' request parameter 'include_fields'
    • Breaking GET /leads/search removed the enum value 'notes' from the 'query' request parameter 'fields'
    • Breaking GET /leads/search removed the enum value 'title' from the 'query' request parameter 'fields'
    • Breaking GET /leads/search for the 'query' request parameter 'fields', the type/format was changed from 'string'/'' to 'array'/''
    • Breaking GET /leads/search for the 'query' request parameter 'include_fields', the type/format was changed from 'string'/'' to 'array'/''
    • Breaking DELETE /organizationFields for the 'query' request parameter 'ids', the type/format was changed from 'string'/'' to 'array'/''
    • Breaking GET /organizations/{id}/flow for the 'query' request parameter 'items', the type/format was changed from 'string'/'' to 'array'/''
    • Breaking DELETE /personFields for the 'query' request parameter 'ids', the type/format was changed from 'string'/'' to 'array'/''
    • Breaking GET /persons/{id}/flow for the 'query' request parameter 'items', the type/format was changed from 'string'/'' to 'array'/''
    • Breaking DELETE /productFields for the 'query' request parameter 'ids', the type/format was changed from 'string'/'' to 'array'/''
  3. 3 breaking changes
    • Breaking GET /deals/archived the 'data/items/allOf[subschema #1]/creator_user_id/has_pic' response's property type/format changed from 'boolean'/'' to 'integer'/'' for status '200'
    • Breaking GET /products/{id}/deals the '/allOf[subschema #2]/data/items/allOf[subschema #1]/creator_user_id/has_pic' response's property type/format changed from 'boolean'/'' to 'integer'/'' for status '200'
    • Breaking GET /products/{id}/files the response property '/allOf[subschema #2]/data' became nullable for the status '200'
  4. 223 breaking changes, 4 potentially breaking
    • Breaking GET /deals/archived the response property 'data/items/allOf[subschema #1]/org_id' became nullable for the status '200'
    • Breaking GET /deals/archived the response property 'data/items/allOf[subschema #1]/person_id' became nullable for the status '200'
    • Breaking GET /deals/archived the response property 'data/items/allOf[subschema #2: baseDeal]/expected_close_date' became nullable for the status '200'
    • Breaking GET /deals/archived the response property 'data/items/allOf[subschema #2: baseDeal]/first_won_time' became nullable for the status '200'
    • Breaking GET /deals/archived the response property 'data/items/allOf[subschema #2: baseDeal]/label' became nullable for the status '200'
    • Breaking GET /deals/archived the response property 'data/items/allOf[subschema #2: baseDeal]/last_incoming_mail_time' became nullable for the status '200'
    • Breaking GET /deals/archived the response property 'data/items/allOf[subschema #2: baseDeal]/last_outgoing_mail_time' became nullable for the status '200'
    • Breaking GET /deals/archived the response property 'data/items/allOf[subschema #2: baseDeal]/lost_time' became nullable for the status '200'
    • Breaking GET /deals/archived the response property 'data/items/allOf[subschema #2: baseDeal]/next_activity_date' became nullable for the status '200'
    • Breaking GET /deals/archived the response property 'data/items/allOf[subschema #2: baseDeal]/next_activity_duration' became nullable for the status '200'
    • Breaking GET /deals/archived the response property 'data/items/allOf[subschema #2: baseDeal]/next_activity_note' became nullable for the status '200'
    • Breaking GET /deals/archived the response property 'data/items/allOf[subschema #2: baseDeal]/next_activity_subject' became nullable for the status '200'
    • Breaking GET /deals/archived the response property 'data/items/allOf[subschema #2: baseDeal]/next_activity_time' became nullable for the status '200'
    • Breaking GET /deals/archived the response property 'data/items/allOf[subschema #2: baseDeal]/next_activity_type' became nullable for the status '200'
    • Breaking GET /deals/archived the response property 'data/items/allOf[subschema #2: baseDeal]/org_name' became nullable for the status '200'
    • Breaking GET /deals/archived the response property 'data/items/allOf[subschema #2: baseDeal]/person_name' became nullable for the status '200'
    • Breaking GET /deals/archived the response property 'data/items/allOf[subschema #2: baseDeal]/stage_change_time' became nullable for the status '200'
    • Breaking GET /deals/archived the response property 'data/items/allOf[subschema #2: baseDeal]/update_time' became nullable for the status '200'
    • Breaking GET /deals/archived the response property 'data/items/allOf[subschema #2: baseDeal]/won_time' became nullable for the status '200'
    • Breaking GET /deals/archived the 'data/items/allOf[subschema #1]/org_id' response's property type/format changed from ''/'' to 'object'/'' for status '200'
    • Breaking GET /deals/archived the 'data/items/allOf[subschema #1]/person_id' response's property type/format changed from ''/'' to 'object'/'' for status '200'
    • Breaking GET /deals/timeline the response property 'data/deals/items/allOf[subschema #1]/org_id' became nullable for the status '200'
    • Breaking GET /deals/timeline the response property 'data/deals/items/allOf[subschema #1]/person_id' became nullable for the status '200'
    • Breaking GET /deals/timeline the response property 'data/deals/items/allOf[subschema #2: baseDeal]/expected_close_date' became nullable for the status '200'
    • Breaking GET /deals/timeline the response property 'data/deals/items/allOf[subschema #2: baseDeal]/first_won_time' became nullable for the status '200'
    • and 202 more
  5. 13 potentially breaking
    • Potentially breaking GET /deals/{id}/participants added the new 'nova' enum value to the 'data/items/added_by_user_id/allOf[subschema #2: GetUserResponseData]/data/access/items/app' response property for the response status '200'
    • Potentially breaking POST /deals/{id}/participants added the new 'nova' enum value to the 'data/added_by_user_id/allOf[subschema #2: GetUserResponseData]/data/access/items/app' response property for the response status '200'
    • Potentially breaking GET /permissionSets added the new 'nova' enum value to the '/allOf[subschema #2]/data/items/app' response property for the response status '200'
    • Potentially breaking GET /permissionSets added the new 'partnership' enum value to the '/allOf[subschema #2]/data/items/app' response property for the response status '200'
    • Potentially breaking GET /permissionSets/{id} added the new 'nova' enum value to the '/allOf[subschema #1: PermissionSet]/app' response property for the response status '200'
    • Potentially breaking GET /permissionSets/{id} added the new 'partnership' enum value to the '/allOf[subschema #1: PermissionSet]/app' response property for the response status '200'
    • Potentially breaking GET /recents added the new 'nova' enum value to the 'data/items/anyOf[subschema #12]/data/access/items/app' response property for the response status '200'
    • Potentially breaking GET /users added the new 'nova' enum value to the '/allOf[subschema #2]/data/items/access/items/app' response property for the response status '200'
    • Potentially breaking POST /users added the new 'nova' enum value to the '/allOf[subschema #2: GetUserResponseData]/data/access/items/app' response property for the response status '200'
    • Potentially breaking GET /users/find added the new 'nova' enum value to the '/allOf[subschema #2]/data/items/access/items/app' response property for the response status '200'
    • Potentially breaking GET /users/me added the new 'nova' enum value to the '/allOf[subschema #2]/data/allOf[subschema #1: BaseUser]/access/items/app' response property for the response status '200'
    • Potentially breaking GET /users/{id} added the new 'nova' enum value to the '/allOf[subschema #2: GetUserResponseData]/data/access/items/app' response property for the response status '200'
    • Potentially breaking PUT /users/{id} added the new 'nova' enum value to the '/allOf[subschema #2: GetUserResponseData]/data/access/items/app' response property for the response status '200'
  6. 16 breaking changes, 16 potentially breaking
    • Breaking GET /filters the response property '/allOf[subschema #2]/data/items/custom_view_id' became nullable for the status '200'
    • Breaking GET /filters the response property '/allOf[subschema #2]/data/items/update_time' became nullable for the status '200'
    • Breaking GET /filters the '/allOf[subschema #2]/data/items/visible_to' response's property type/format changed from 'integer'/'' to ''/'' for status '200'
    • Breaking POST /filters the response property '/allOf[subschema #2]/data/custom_view_id' became nullable for the status '200'
    • Breaking POST /filters the response property '/allOf[subschema #2]/data/temporary_flag' became nullable for the status '200'
    • Breaking POST /filters the response property '/allOf[subschema #2]/data/update_time' became nullable for the status '200'
    • Breaking POST /filters the '/allOf[subschema #2]/data/visible_to' response's property type/format changed from 'integer'/'' to ''/'' for status '200'
    • Breaking GET /filters/{id} the response property '/allOf[subschema #2]/data/custom_view_id' became nullable for the status '200'
    • Breaking GET /filters/{id} the response property '/allOf[subschema #2]/data/update_time' became nullable for the status '200'
    • Breaking GET /filters/{id} the '/allOf[subschema #2]/data/visible_to' response's property type/format changed from 'integer'/'' to ''/'' for status '200'
    • Breaking PUT /filters/{id} the response property '/allOf[subschema #2]/data/custom_view_id' became nullable for the status '200'
    • Breaking PUT /filters/{id} the response property '/allOf[subschema #2]/data/temporary_flag' became nullable for the status '200'
    • Breaking PUT /filters/{id} the response property '/allOf[subschema #2]/data/update_time' became nullable for the status '200'
    • Breaking PUT /filters/{id} the '/allOf[subschema #2]/data/visible_to' response's property type/format changed from 'integer'/'' to ''/'' for status '200'
    • Breaking POST /notes added 'subschema #1, subschema #2' to the request body 'allOf' list
    • Breaking PUT /notes/{id} added 'subschema #2, subschema #3' to the request body 'allOf' list
    • Potentially breaking GET /filters added the new 'activity' enum value to the '/allOf[subschema #2]/data/items/type' response property for the response status '200'
    • Potentially breaking GET /filters added the new 'deals' enum value to the '/allOf[subschema #2]/data/items/type' response property for the response status '200'
    • Potentially breaking GET /filters added the new 'leads' enum value to the '/allOf[subschema #2]/data/items/type' response property for the response status '200'
    • Potentially breaking GET /filters added the new 'org' enum value to the '/allOf[subschema #2]/data/items/type' response property for the response status '200'
    • Potentially breaking GET /filters added the new 'people' enum value to the '/allOf[subschema #2]/data/items/type' response property for the response status '200'
    • Potentially breaking GET /filters added the new 'products' enum value to the '/allOf[subschema #2]/data/items/type' response property for the response status '200'
    • Potentially breaking GET /filters added the new 'projects' enum value to the '/allOf[subschema #2]/data/items/type' response property for the response status '200'
    • Potentially breaking GET /filters/{id} added the new 'activity' enum value to the '/allOf[subschema #2]/data/type' response property for the response status '200'
    • Potentially breaking GET /filters/{id} added the new 'deals' enum value to the '/allOf[subschema #2]/data/type' response property for the response status '200'
    • and 7 more

Frequently asked questions

Has the Pipedrive API had breaking changes recently?
Yes: 2 breaking changes and 0 deprecations in the last 90 days. The most recent is “API v1 endpoints now out of support” from 1 August 2026.
How often does the Pipedrive API change?
Over the period on record, Pipedrive published about 1 changelog entry a month. Most are additions; the breaking changes and deprecations are the ones to plan for.
Where is the official Pipedrive API changelog?
Pipedrive publishes it at https://developers.pipedrive.com/changelog. This page follows it daily and dates each entry.
How do I get notified about Pipedrive API changes?
Subscribe to this page's RSS feed (https://seamless.engineering/api-changelog/pipedrive/rss.xml). If you would rather have someone act on them, we operate Pipedrive integrations and handle changes like these before they reach production.

Other APIs we monitor

// scoping request

We watch Pipedrive because we run integrations on it. If one of yours depends on Pipedrive, we can take it over: build it properly, operate it, and fix it when Pipedrive changes, before your data is affected. Fixed-price scoping quote within 48 hours.

We reply within one working day. No newsletter, no sales sequence.