/personFields
Returns data about all person fields.
If a company uses the Campaigns product, then this endpoint will also return the data.marketing_status field.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| start | query | optional | integer | Pagination start |
| limit | query | optional | integer | Items shown per page |
Success
GET /personFields
/personFields
Adds a new person field. For more information, see the tutorial for adding a new custom field.
application/json
PersonFieldsAddNewFieldRequest
| Property | Type | Required |
|---|---|---|
| name | string | required |
| options | array | optional |
| add_visible_flag | boolean | optional |
| field_type | string | required |
Success
POST /personFields
/personFields/{id}
Marks a field as deleted. For more information, see the tutorial for deleting a custom field.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| id | path | required | integer | The ID of the field |
Success
DELETE /personFields/{id}
/personFields/{id}
Returns data about a specific person field.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| id | path | required | integer | The ID of the field |
Success
GET /personFields/{id}
/personFields/{id}
Updates a person field. For more information, see the tutorial for updating custom fields’ values.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| id | path | required | integer | The ID of the field |
application/json
PersonFieldsUpdateFieldRequest
| Property | Type | Required |
|---|---|---|
| name | string | optional |
| options | array | optional |
| add_visible_flag | boolean | optional |
Success
PUT /personFields/{id}
/persons
Marks multiple persons as deleted. After 30 days, the persons will be permanently deleted.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| ids | query | required | string | The comma-separated IDs that will be deleted |
Success
DELETE /persons
/persons
Returns all persons.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| user_id | query | optional | integer | If supplied, only persons owned by the given user will be returned. However, |
| filter_id | query | optional | integer | The ID of the filter to use |
| first_char | query | optional | string | If supplied, only persons whose name starts with the specified letter will be returned (case-insensitive) |
| start | query | optional | integer | Pagination start |
| limit | query | optional | integer | Items shown per page |
| sort | query | optional | string | The field names and sorting mode separated by a comma ( |
Success
GET /persons
/persons
Adds a new person. Note that you can supply additional custom fields along with the request that are not described here. These custom fields are different for each Pipedrive account and can be recognized by long hashes as keys. To determine which custom fields exists, fetch the personFields and look for key values.
If a company uses the Campaigns product, then this endpoint will also accept and return the data.marketing_status field.
application/json
PersonsCreateNewPersonRequest
| Property | Type | Required |
|---|---|---|
| name | string | required |
| array | optional | |
| └ label | string | optional |
| └ value | string | optional |
| └ primary | boolean | optional |
| label | integer | optional |
| phone | array | optional |
| └ label | string | optional |
| └ value | string | optional |
| └ primary | boolean | optional |
| org_id | integer | optional |
| add_time | string | optional |
| owner_id | integer | optional |
| visible_to | string | optional |
| marketing_status | string | optional |
Success
POST /persons
/persons/collection
Returns all persons. This is a cursor-paginated endpoint that is currently in BETA. For more information, please refer to our documentation on pagination. Please note that only global admins (those with global permissions) can access these endpoints. Users with regular permissions will receive a 403 response. Read more about global permissions here.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| cursor | query | optional | string | For pagination, the marker (an opaque string value) representing the first item on the next page |
| limit | query | optional | integer | For pagination, the limit of entries to be returned. If not provided, 100 items will be returned. Please note that a maximum value of 500 is allowed. |
| since | query | optional | string | The time boundary that points to the start of the range of data. Datetime in ISO 8601 format. E.g. 2022-11-01 08:55:59. Operates on the |
| until | query | optional | string | The time boundary that points to the end of the range of data. Datetime in ISO 8601 format. E.g. 2022-11-01 08:55:59. Operates on the |
| owner_id | query | optional | integer | If supplied, only persons owned by the given user will be returned |
| first_char | query | optional | string | If supplied, only persons whose name starts with the specified letter will be returned (case-insensitive) |
Success
Forbidden response
GET /persons/collection
/persons/search
Searches all persons by name, email, phone, notes and/or custom fields. This endpoint is a wrapper of /v1/itemSearch with a narrower OAuth scope. Found persons can be filtered by organization ID.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| term | query | required | string | The search term to look for. Minimum 2 characters (or 1 if using |
| fields | query | optional | string | A comma-separated string array. The fields to perform the search from. Defaults to all of them. Only the following custom field types are searchable: |
| exact_match | query | optional | boolean | When enabled, only full exact matches against the given term are returned. It is not case sensitive. |
| organization_id | query | optional | integer | Will filter persons by the provided organization ID. The upper limit of found persons associated with the organization is 2000. |
| include_fields | query | optional | string | Supports including optional fields in the results which are not provided by default |
| start | query | optional | integer | Pagination start. Note that the pagination is based on main results and does not include related items when using |
| limit | query | optional | integer | Items shown per page |
Success
GET /persons/search
/persons/{id}
Marks a person as deleted. After 30 days, the person will be permanently deleted.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| id | path | required | integer | The ID of the person |
Success
DELETE /persons/{id}
/persons/{id}
Returns the details of a person. Note that this also returns some additional fields which are not present when asking for all persons. Also note that custom fields appear as long hashes in the resulting data. These hashes can be mapped against the key value of personFields.
If a company uses the Campaigns product, then this endpoint will also return the data.marketing_status field.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| id | path | required | integer | The ID of the person |
Success
GET /persons/{id}
/persons/{id}
Updates the properties of a person. For more information, see the tutorial for updating a person.
If a company uses the Campaigns product, then this endpoint will also accept and return the data.marketing_status field.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| id | path | required | integer | The ID of the person |
application/json
PersonsUpdatePropertiesRequest
| Property | Type | Required |
|---|---|---|
| name | string | optional |
| array | optional | |
| └ label | string | optional |
| └ value | string | optional |
| └ primary | boolean | optional |
| label | integer | optional |
| phone | array | optional |
| └ label | string | optional |
| └ value | string | optional |
| └ primary | boolean | optional |
| org_id | integer | optional |
| add_time | string | optional |
| owner_id | integer | optional |
| visible_to | string | optional |
| marketing_status | string | optional |
Success
PUT /persons/{id}
/persons/{id}/activities
Lists activities associated with a person.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| id | path | required | integer | The ID of the person |
| start | query | optional | integer | Pagination start |
| limit | query | optional | integer | Items shown per page |
| done | query | optional | number | Whether the activity is done or not. 0 = Not done, 1 = Done. If omitted, returns both Done and Not done activities. |
| exclude | query | optional | string | A comma-separated string of activity IDs to exclude from result |
Success
GET /persons/{id}/activities
/persons/{id}/changelog
Lists updates about field values of a person.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| id | path | required | integer | The ID of the person |
| cursor | query | optional | string | For pagination, the marker (an opaque string value) representing the first item on the next page |
| limit | query | optional | integer | Items shown per page |
Get changelog of a person
GET /persons/{id}/changelog
/persons/{id}/deals
Lists deals associated with a person.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| id | path | required | integer | The ID of the person |
| start | query | optional | integer | Pagination start |
| limit | query | optional | integer | Items shown per page |
| status | query | optional | string | Only fetch deals with a specific status. If omitted, all not deleted deals are returned. If set to deleted, deals that have been deleted up to 30 days ago will be included. |
| sort | query | optional | string | The field names and sorting mode separated by a comma ( |
Success
GET /persons/{id}/deals
/persons/{id}/files
Lists files associated with a person.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| id | path | required | integer | The ID of the person |
| start | query | optional | integer | Pagination start |
| limit | query | optional | integer | Items shown per page |
| sort | query | optional | string | The field names and sorting mode separated by a comma ( |
Success
GET /persons/{id}/files
/persons/{id}/flow
Lists updates about a person.
If a company uses the Campaigns product, then this endpoint’s response will also include updates for the marketing_status field.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| id | path | required | integer | The ID of the person |
| start | query | optional | integer | Pagination start |
| limit | query | optional | integer | Items shown per page |
| all_changes | query | optional | string | Whether to show custom field updates or not. 1 = Include custom field changes. If omitted returns changes without custom field updates. |
| items | query | optional | string | A comma-separated string for filtering out item specific updates. (Possible values - call, activity, plannedActivity, change, note, deal, file, dealChange, personChange, organizationChange, follower, dealFollower, personFollower, organizationFollower, participant, comment, mailMessage, mailMessageWithAttachment, invoice, document, marketing_campaign_stat, marketing_status_change). |
Get the person updates
GET /persons/{id}/flow
/persons/{id}/followers
Lists the followers of a person.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| id | path | required | integer | The ID of the person |
Success
GET /persons/{id}/followers
/persons/{id}/followers
Adds a follower to a person.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| id | path | required | integer | The ID of the person |
application/json
PersonsAddFollowerRequest
| Property | Type | Required |
|---|---|---|
| user_id | integer | required |
Success
POST /persons/{id}/followers
/persons/{id}/followers/{follower_id}
Deletes a follower from a person.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| id | path | required | integer | The ID of the person |
| follower_id | path | required | integer | The ID of the follower |
Success
DELETE /persons/{id}/followers/{follower_id}
/persons/{id}/mailMessages
Lists mail messages associated with a person.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| id | path | required | integer | The ID of the person |
| start | query | optional | integer | Pagination start |
| limit | query | optional | integer | Items shown per page |
Success
GET /persons/{id}/mailMessages
/persons/{id}/merge
Merges a person with another person. For more information, see the tutorial for merging two persons.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| id | path | required | integer | The ID of the person |
application/json
PersonsMergeTwoRequest
| Property | Type | Required |
|---|---|---|
| merge_with_id | integer | required |
Success
PUT /persons/{id}/merge
/persons/{id}/permittedUsers
List users permitted to access a person.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| id | path | required | integer | The ID of the person |
Success
GET /persons/{id}/permittedUsers
/persons/{id}/picture
Deletes a person’s picture.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| id | path | required | integer | The ID of the person |
Success
DELETE /persons/{id}/picture
/persons/{id}/picture
Adds a picture to a person. If a picture is already set, the old picture will be replaced. Added image (or the cropping parameters supplied with the request) should have an equal width and height and should be at least 128 pixels. GIF, JPG and PNG are accepted. All added images will be resized to 128 and 512 pixel wide squares.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| id | path | required | integer | The ID of the person |
multipart/form-data
PersonsAddPictureRequest
| Property | Type | Required |
|---|---|---|
| file | string | required |
| crop_x | integer | optional |
| crop_y | integer | optional |
| crop_width | integer | optional |
| crop_height | integer | optional |
Success
POST /persons/{id}/picture
/persons/{id}/products
Lists products associated with a person.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| id | path | required | integer | The ID of the person |
| start | query | optional | integer | Pagination start |
| limit | query | optional | integer | Items shown per page |
Success
GET /persons/{id}/products
/pipelines
Returns data about all pipelines.
Get all pipelines
GET /pipelines
/pipelines
Adds a new pipeline.
application/json
PipelinesCreateNewPipelineRequest
| Property | Type | Required |
|---|---|---|
| name | string | required |
| active | number | optional |
| order_nr | integer | optional |
| deal_probability | number | optional |
Add pipeline
POST /pipelines
/pipelines/{id}
Marks a pipeline as deleted.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| id | path | required | integer | The ID of the pipeline |
Delete pipeline
DELETE /pipelines/{id}
/pipelines/{id}
Returns data about a specific pipeline. Also returns the summary of the deals in this pipeline across its stages.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| id | path | required | integer | The ID of the pipeline |
| totals_convert_currency | query | optional | string | The 3-letter currency code of any of the supported currencies. When supplied, |
Get pipeline
GET /pipelines/{id}
/pipelines/{id}
Updates the properties of a pipeline.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| id | path | required | integer | The ID of the pipeline |
application/json
PipelinesUpdatePropertiesRequest
| Property | Type | Required |
|---|---|---|
| name | string | optional |
| active | number | optional |
| order_nr | integer | optional |
| deal_probability | number | optional |
Edit pipeline
PUT /pipelines/{id}
/pipelines/{id}/conversion_statistics
Returns all stage-to-stage conversion and pipeline-to-close rates for the given time period.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| id | path | required | integer | The ID of the pipeline |
| start_date | query | required | string | The start of the period. Date in format of YYYY-MM-DD. |
| end_date | query | required | string | The end of the period. Date in format of YYYY-MM-DD. |
| user_id | query | optional | integer | The ID of the user who’s pipeline metrics statistics to fetch. If omitted, the authorized user will be used. |
Get pipeline deals conversion rates
GET /pipelines/{id}/conversion_statistics
/pipelines/{id}/deals
Lists deals in a specific pipeline across all its stages.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| id | path | required | integer | The ID of the pipeline |
| filter_id | query | optional | integer | If supplied, only deals matching the given filter will be returned |
| user_id | query | optional | integer | If supplied, |
| everyone | query | optional | number | If supplied, |
| stage_id | query | optional | integer | If supplied, only deals within the given stage will be returned |
| start | query | optional | integer | Pagination start |
| limit | query | optional | integer | Items shown per page |
| get_summary | query | optional | number | Whether to include a summary of the pipeline in the |
| totals_convert_currency | query | optional | string | The 3-letter currency code of any of the supported currencies. When supplied, |
Get deals in a stage
GET /pipelines/{id}/deals
/pipelines/{id}/movement_statistics
Returns statistics for deals movements for the given time period.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| id | path | required | integer | The ID of the pipeline |
| start_date | query | required | string | The start of the period. Date in format of YYYY-MM-DD. |
| end_date | query | required | string | The end of the period. Date in format of YYYY-MM-DD. |
| user_id | query | optional | integer | The ID of the user who’s pipeline statistics to fetch. If omitted, the authorized user will be used. |
Get pipeline deals conversion rates
GET /pipelines/{id}/movement_statistics
/productFields
Marks multiple fields as deleted.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| ids | query | required | string | The comma-separated field IDs to delete |
Mark multiple product fields as deleted
DELETE /productFields
/productFields
Returns data about all product fields.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| start | query | optional | integer | Pagination start |
| limit | query | optional | integer | Items shown per page |
Get data about all product fields
GET /productFields
/productFields
Adds a new product field. For more information, see the tutorial for adding a new custom field.
application/json
ProductFieldsAddNewFieldRequest
| Property | Type | Required |
|---|---|---|
| name | string | required |
| options | array | optional |
| field_type | string | required |
Get the data for a single product field
POST /productFields
/productFields/{id}
Marks a product field as deleted. For more information, see the tutorial for deleting a custom field.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| id | path | required | integer | The ID of the product field |
Delete a product field
The product field with the specified ID does not exist or is inaccessible
DELETE /productFields/{id}
/productFields/{id}
Returns data about a specific product field.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| id | path | required | integer | The ID of the product field |
Get the data for a single product field
The product field with the specified ID does not exist or is inaccessible
GET /productFields/{id}
/productFields/{id}
Updates a product field. For more information, see the tutorial for updating custom fields’ values.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| id | path | required | integer | The ID of the product field |
application/json
ProductFieldsUpdateFieldRequest
| Property | Type | Required |
|---|---|---|
| name | string | optional |
| options | array | optional |
Get the data for a single product field
PUT /productFields/{id}
/products
Returns data about all products.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| user_id | query | optional | integer | If supplied, only products owned by the given user will be returned |
| filter_id | query | optional | integer | The ID of the filter to use |
| ids | query | optional | array | An array of integers with the IDs of the products that should be returned in the response |
| first_char | query | optional | string | If supplied, only products whose name starts with the specified letter will be returned (case-insensitive) |
| get_summary | query | optional | boolean | If supplied, the response will return the total numbers of products in the |
| start | query | optional | integer | Pagination start |
| limit | query | optional | integer | Items shown per page |
List of products
GET /products
/products
Adds a new product to the Products inventory. For more information, see the tutorial for adding a product.
application/json
ProductsCreateProductRequest
| Property | Type | Required |
|---|---|---|
| name | string | required |
| tax | number | optional |
| code | string | optional |
| unit | string | optional |
| prices | array | optional |
| owner_id | integer | optional |
| selectable | boolean | optional |
| visible_to | string | optional |
| active_flag | boolean | optional |
Add product data
POST /products
/products/search
Searches all products by name, code and/or custom fields. This endpoint is a wrapper of /v1/itemSearch with a narrower OAuth scope.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| term | query | required | string | The search term to look for. Minimum 2 characters (or 1 if using |
| fields | query | optional | string | A comma-separated string array. The fields to perform the search from. Defaults to all of them. Only the following custom field types are searchable: |
| exact_match | query | optional | boolean | When enabled, only full exact matches against the given term are returned. It is not case sensitive. |
| include_fields | query | optional | string | Supports including optional fields in the results which are not provided by default |
| start | query | optional | integer | Pagination start. Note that the pagination is based on main results and does not include related items when using |
| limit | query | optional | integer | Items shown per page |
Success
GET /products/search
/products/{id}
Marks a product as deleted. After 30 days, the product will be permanently deleted.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| id | path | required | integer | The ID of the product |
Deletes a product
DELETE /products/{id}
/products/{id}
Returns data about a specific product.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| id | path | required | integer | The ID of the product |
Get product information by id
GET /products/{id}
/products/{id}
Updates product data.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| id | path | required | integer | The ID of the product |
application/json
ProductsUpdateProductDataRequest
| Property | Type | Required |
|---|---|---|
| name | string | required |
| tax | number | optional |
| code | string | optional |
| unit | string | optional |
| prices | array | optional |
| owner_id | integer | optional |
| selectable | boolean | optional |
| visible_to | string | optional |
| active_flag | boolean | optional |
Updates product data
PUT /products/{id}
/products/{id}/deals
Returns data about deals that have a product attached to it.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| id | path | required | integer | The ID of the product |
| start | query | optional | integer | Pagination start |
| limit | query | optional | integer | Items shown per page |
| status | query | optional | string | Only fetch deals with a specific status. If omitted, all not deleted deals are returned. If set to deleted, deals that have been deleted up to 30 days ago will be included. |
The data of deals that have a product attached
GET /products/{id}/deals
/products/{id}/files
Lists files associated with a product.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| id | path | required | integer | The ID of the product |
| start | query | optional | integer | Pagination start |
| limit | query | optional | integer | Items shown per page |
| sort | query | optional | string | The field name and sorting mode ( |
Success
GET /products/{id}/files
/products/{id}/followers
Lists the followers of a product.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| id | path | required | integer | The ID of the product |
| start | query | optional | integer | Pagination start |
| limit | query | optional | integer | Items shown per page |
Lists the followers of a product
GET /products/{id}/followers