### GET /products
Source: https://developers.pipedrive.com/docs/api/v1/openapi-v2.yaml
Returns data about all products.
```markdown
### Parameters
- **owner_id** (integer, query, optional): If supplied, only products owned by the given user will be returned
- **ids** (string, query, optional): Optional comma separated string array of up to 100 entity ids to fetch. If filter_id is provided, this is ignored. If any of the requested entities do not exist or are not visible, they are not included in the response.
- **filter_id** (integer, query, optional): The ID of the filter to use
- **cursor** (string, query, optional): For pagination, the marker (an opaque string value) representing the first item on the next page
- **limit** (integer, query, optional): 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. (example: 100)
- **sort_by** (string (id|name|add_time|update_time), query, optional): The field to sort by. Supported fields: `id`, `name`, `add_time`, `update_time`.
- **sort_direction** (string (asc|desc), query, optional): The sorting direction. Supported values: `asc`, `desc`.
- **custom_fields** (string, query, optional): Comma separated string array of custom fields keys to include. If you are only interested in a particular set of custom fields, please use this parameter for a smaller response.
A maximum of 15 keys is allowed.
### Responses
#### 200 - List of products
- **success** (boolean): If the response is successful or not
- **data** (array (object)): Array containing data for all products
Array items:
- **success** (boolean): If the response is successful or not
- **data** (object)
- **id** (number): The ID of the product
- **name** (string): The name of the product
- **code** (string): The product code
- **unit** (string): The unit in which this product is sold
- **tax** (number): The tax percentage
- **is_deleted** (boolean): Whether this product will be marked as deleted or not
- **is_linkable** (boolean): Whether this product can be added to a deal or not
- **visible_to** (number) ("1"|"3"|"5"|"7")
- **owner_id** (integer): Information about the Pipedrive user who owns the product
- **custom_fields** (object): An object where each key represents a custom field. All custom fields are referenced as randomly generated 40-character hashes. To clear a custom field value, set it to `null`. For multi-option fields (field type `set`), use `null` to clear the selection — sending an empty array `[]` is not supported and will result in a validation error.
- **billing_frequency** (string (one-time|annually|semi-annually|quarterly|monthly|weekly)): Only available in Growth and above plans
How often a customer is billed for access to a service or product
("one-time"|"annually"|"semi-annually"|"quarterly"|"monthly"|"weekly")
- **billing_frequency_cycles** (integer): Only available in Growth and above plans
The number of times the billing frequency repeats for a product in a deal
When `billing_frequency` is set to `one-time`, this field must be `null`
When `billing_frequency` is set to `weekly`, this field cannot be `null`
For all the other values of `billing_frequency`, `null` represents a product billed indefinitely
Must be a positive integer less or equal to 208
- **prices** (array (object)): Array of objects, each containing: product_id (number), currency (string), price (number), cost (number), direct_cost (number | null), notes (string)
- **additional_data** (object): Pagination related data
- **next_cursor** (string): The first item on the next page. The value of the `next_cursor` field will be `null` if you have reached the end of the dataset and there’s no more pages to be returned.
### Example Usage
```bash
curl -X GET "https://api.pipedrive.com/api/v2/products?owner_id=0&ids=string&filter_id=0&cursor=string&limit=100&sort_by=id&sort_direction=asc&custom_fields=string"
```
```
--------------------------------
### GET /tasks
Source: https://developers.pipedrive.com/docs/api/v1/openapi-v2.yaml
Returns all tasks.
```markdown
### Parameters
- **cursor** (string, query, optional): For pagination, the marker (an opaque string value) representing the first item on the next page
- **limit** (integer, query, optional): 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. (example: 100)
- **is_done** (boolean, query, optional): Whether the task is done or not. If omitted, both done and not done tasks are returned.
- **is_milestone** (boolean, query, optional): Whether the task is a milestone or not. If omitted, both milestone and non-milestone tasks are returned.
- **assignee_id** (integer, query, optional): If supplied, only tasks assigned to this user are returned
- **project_id** (integer, query, optional): If supplied, only tasks belonging to this project are returned
- **parent_task_id** (string, query, optional): If `null` is supplied, only root-level tasks (without a parent) are returned. If an integer is supplied, only subtasks of that specific task are returned. By default all tasks are returned.
### Responses
#### 200 - A list of tasks.
- **success** (boolean): If the response is successful or not
- **data** (array (object))
Array items:
- **id** (integer): The ID of the task
- **title** (string): The title of the task
- **creator_id** (integer): The ID of the user who created the task
- **description** (string): The description of the task
- **project_id** (integer): The ID of the project this task is associated with
- **is_done** (boolean): Whether the task is done or not.
- **is_milestone** (boolean): Whether the task is a milestone or not.
- **due_date** (string (date)): The due date of the task. Format: YYYY-MM-DD.
- **start_date** (string (date)): The start date of the task. Format: YYYY-MM-DD.
- **parent_task_id** (integer): The ID of the parent task. If `null`, the task is a root-level task.
- **assignee_ids** (array (integer)): The IDs of users assigned to the task
- **priority** (integer): The priority of the task
- **add_time** (string): The creation date and time of the task in ISO 8601 format
- **update_time** (string): The update date and time of the task in ISO 8601 format
- **marked_as_done_time** (string): The date and time the task was marked as done in ISO 8601 format
- **additional_data** (object): The additional data of the list
- **next_cursor** (string): The first item on the next page. The value of the `next_cursor` field will be `null` if you have reached the end of the dataset and there’s no more pages to be returned.
### Example Usage
```bash
curl -X GET "https://api.pipedrive.com/api/v2/tasks?cursor=string&limit=100&is_done=true&is_milestone=true&assignee_id=0&project_id=0&parent_task_id=string"
```
```
--------------------------------
### GET /boards
Source: https://developers.pipedrive.com/docs/api/v1/openapi-v2.yaml
Returns all active project boards.
```markdown
### Responses
#### 200 - Get all project boards
- **success** (boolean): If the response is successful or not
- **data** (array (object)): The array of project boards
Array items:
- **id** (integer): The ID of the project board
- **name** (string): The name of the project board
- **order_nr** (integer): The order of the board
- **add_time** (string): The creation date and time of the board in ISO 8601 format
- **update_time** (string): The update date and time of the board in ISO 8601 format
- **additional_data** (object)
### Example Usage
```bash
curl -X GET "https://api.pipedrive.com/api/v2/boards"
```
```
--------------------------------
### GET /deals/installments
Source: https://developers.pipedrive.com/docs/api/v1/openapi-v2.yaml
Lists installments attached to a list of deals.
Only available in Growth and above plans.
```markdown
### Parameters
- **deal_ids** (array (integer), query, required): An array of integers with the IDs of the deals for which the attached installments will be returned. A maximum of 100 deal IDs can be provided.
- **cursor** (string, query, optional): For pagination, the marker (an opaque string value) representing the first item on the next page
- **limit** (integer, query, optional): 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. (example: 100)
- **sort_by** (string (id|billing_date|deal_id), query, optional): The field to sort by. Supported fields: `id`, `billing_date`, `deal_id`.
- **sort_direction** (string (asc|desc), query, optional): The sorting direction. Supported values: `asc`, `desc`.
### Responses
#### 200 - List installments added to a deal
- **success** (boolean): If the response is successful or not
- **data** (array (object)): Array containing data for all installments added to a deal
Array items:
- **id** (integer): The ID of the installment
- **amount** (number): The installment amount.
- **billing_date** (string): The date on which the installment will be charged.
- **description** (string): The name of installment.
- **deal_id** (integer): The ID of the deal the installment was added to.
### Example Usage
```bash
curl -X GET "https://api.pipedrive.com/api/v2/deals/installments?deal_ids=item1,item2&cursor=string&limit=100&sort_by=id&sort_direction=asc"
```
```
--------------------------------
### GET /activities
Source: https://developers.pipedrive.com/docs/api/v1/openapi-v2.yaml
Returns data about all activities.
```markdown
### Parameters
- **filter_id** (integer, query, optional): If supplied, only activities matching the specified filter are returned
- **ids** (string, query, optional): Optional comma separated string array of up to 100 entity ids to fetch. If filter_id is provided, this is ignored. If any of the requested entities do not exist or are not visible, they are not included in the response.
- **owner_id** (integer, query, optional): If supplied, only activities owned by the specified user are returned. If filter_id is provided, this is ignored.
- **deal_id** (integer, query, optional): If supplied, only activities linked to the specified deal are returned. If filter_id is provided, this is ignored.
- **lead_id** (string, query, optional): If supplied, only activities linked to the specified lead are returned. If filter_id is provided, this is ignored.
- **person_id** (integer, query, optional): If supplied, only activities whose primary participant is the given person are returned. If filter_id is provided, this is ignored.
- **org_id** (integer, query, optional): If supplied, only activities linked to the specified organization are returned. If filter_id is provided, this is ignored.
- **done** (boolean, query, optional): If supplied, only activities with specified 'done' flag value are returned
- **updated_since** (string, query, optional): If set, only activities with an `update_time` later than or equal to this time are returned. In RFC3339 format, e.g. 2025-01-01T10:20:00Z.
- **updated_until** (string, query, optional): If set, only activities with an `update_time` earlier than this time are returned. In RFC3339 format, e.g. 2025-01-01T10:20:00Z.
- **sort_by** (string (id|update_time|add_time|due_date), query, optional): The field to sort by. Supported fields: `id`, `update_time`, `add_time`, `due_date`.
- **sort_direction** (string (asc|desc), query, optional): The sorting direction. Supported values: `asc`, `desc`.
- **include_fields** (string (attendees), query, optional): Optional comma separated string array of additional fields to include
- **limit** (integer, query, optional): 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. (example: 100)
- **cursor** (string, query, optional): For pagination, the marker (an opaque string value) representing the first item on the next page
### Responses
#### 200 - Get all activities
- **success** (boolean): If the response is successful or not
- **data** (array (object)): Activities array
Array items:
- **id** (integer): The ID of the activity
- **subject** (string): The subject of the activity
- **type** (string): The type of the activity
- **owner_id** (integer): The ID of the user who owns the activity
- **creator_user_id** (integer): The ID of the user who created the activity
- **is_deleted** (boolean): Whether the activity is deleted or not
- **add_time** (string): The creation date and time of the activity
- **update_time** (string): The last updated date and time of the activity
- **deal_id** (integer): The ID of the deal linked to the activity
- **lead_id** (string): The ID of the lead linked to the activity
- **person_id** (integer): The ID of the person linked to the activity
- **org_id** (integer): The ID of the organization linked to the activity
- **project_id** (integer): The ID of the project linked to the activity
- **due_date** (string): The due date of the activity
- **due_time** (string): The due time of the activity
- **duration** (string): The duration of the activity
- **busy** (boolean): Whether the activity marks the assignee as busy or not in their calendar
- **done** (boolean): Whether the activity is marked as done or not
- **marked_as_done_time** (string): The date and time when the activity was marked as done
- **location** (object): Location of the activity
- **value** (string): The full address of the activity
- **country** (string): Country of the activity
- **admin_area_level_1** (string): Admin area level 1 (e.g. state) of the activity
- **admin_area_level_2** (string): Admin area level 2 (e.g. county) of the activity
- **locality** (string): Locality (e.g. city) of the activity
- **sublocality** (string): Sublocality (e.g. neighborhood) of the activity
- **route** (string): Route (e.g. street) of the activity
- **street_number** (string): Street number of the activity
- **subpremise** (string): Subpremise (e.g. apartment/suite number) of the activity
- **postal_code** (string): Postal code of the activity
- **participants** (array (object)): The participants of the activity
Array items:
- **person_id** (integer): The ID of the person
- **primary** (boolean): Whether the person is the primary participant or not
- **attendees** (array (object)): The attendees of the activity
Array items:
- **email** (string): The email address of the attendee
- **name** (string): The name of the attendee
- **status** (string): The status of the attendee
- **is_organizer** (boolean): Whether the attendee is the organizer or not
- **person_id** (integer): The ID of the person if the attendee has a person record
- **user_id** (integer): The ID of the user if the attendee is a user
- **conference_meeting_client** (string): The client used for the conference meeting
- **conference_meeting_url** (string): The URL of the conference meeting
- **conference_meeting_id** (string): The ID of the conference meeting
- **public_description** (string): The public description of the activity
- **priority** (integer): The priority of the activity. Mappable to a specific string using activityFields API.
- **note** (string): The note of the activity
- **additional_data** (object): The additional data of the list
- **next_cursor** (string): The first item on the next page. The value of the `next_cursor` field will be `null` if you have reached the end of the dataset and there’s no more pages to be returned.
### Example Usage
```bash
curl -X GET "https://api.pipedrive.com/api/v2/activities?filter_id=0&ids=string&owner_id=0&deal_id=0&lead_id=string&person_id=0&org_id=0&done=true&updated_since=string&updated_until=string&sort_by=id&sort_direction=asc&include_fields=attendees&limit=100&cursor=string"
```
```
--------------------------------
### GET /products/{id}
Source: https://developers.pipedrive.com/docs/api/v1/openapi-v2.yaml
Returns data about a specific product.
```markdown
### Parameters
- **id** (integer, path, required): The ID of the product
### Responses
#### 200 - Get product information by id
- **success** (boolean): If the response is successful or not
- **data** (object)
- **id** (number): The ID of the product
- **name** (string): The name of the product
- **code** (string): The product code
- **unit** (string): The unit in which this product is sold
- **tax** (number): The tax percentage
- **is_deleted** (boolean): Whether this product will be marked as deleted or not
- **is_linkable** (boolean): Whether this product can be added to a deal or not
- **visible_to** (number) ("1"|"3"|"5"|"7")
- **owner_id** (integer): Information about the Pipedrive user who owns the product
- **custom_fields** (object): An object where each key represents a custom field. All custom fields are referenced as randomly generated 40-character hashes. To clear a custom field value, set it to `null`. For multi-option fields (field type `set`), use `null` to clear the selection — sending an empty array `[]` is not supported and will result in a validation error.
- **billing_frequency** (string (one-time|annually|semi-annually|quarterly|monthly|weekly)): Only available in Growth and above plans
How often a customer is billed for access to a service or product
("one-time"|"annually"|"semi-annually"|"quarterly"|"monthly"|"weekly")
- **billing_frequency_cycles** (integer): Only available in Growth and above plans
The number of times the billing frequency repeats for a product in a deal
When `billing_frequency` is set to `one-time`, this field must be `null`
When `billing_frequency` is set to `weekly`, this field cannot be `null`
For all the other values of `billing_frequency`, `null` represents a product billed indefinitely
Must be a positive integer less or equal to 208
- **prices** (array (object)): Array of objects, each containing: product_id (number), currency (string), price (number), cost (number), direct_cost (number | null), notes (string)
### Example Usage
```bash
curl -X GET "https://api.pipedrive.com/api/v2/products/{id}"
```
```
--------------------------------
### GET /deals/products
Source: https://developers.pipedrive.com/docs/api/v1/openapi-v2.yaml
Returns data about products attached to deals
```markdown
### Parameters
- **deal_ids** (array (integer), query, required): An array of integers with the IDs of the deals for which the attached products will be returned. A maximum of 100 deal IDs can be provided.
- **cursor** (string, query, optional): For pagination, the marker (an opaque string value) representing the first item on the next page
- **limit** (integer, query, optional): 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. (example: 100)
- **sort_by** (string (id|deal_id|add_time|update_time|order_nr), query, optional): The field to sort by. Supported fields: `id`, `deal_id`, `add_time`, `update_time`, `order_nr`.
- **sort_direction** (string (asc|desc), query, optional): The sorting direction. Supported values: `asc`, `desc`.
### Responses
#### 200 - List of products attached to deals
- **success** (boolean): If the response is successful or not
- **data** (array (union)): Array containing data for all products attached to deals
Array items:
- **id** (integer): The ID of the deal-product (the ID of the product attached to the deal)
- **sum** (number): The sum of all the products attached to the deal
- **tax** (number): The product tax
- **deal_id** (integer): The ID of the deal
- **name** (string): The product name
- **product_id** (integer): The ID of the product
- **product_variation_id** (integer): The ID of the product variation
- **order_nr** (integer): The order number of the product within the deal
- **add_time** (string): The date and time when the product was added to the deal
- **update_time** (string): The date and time when the deal product was last updated
- **comments** (string): The comments of the product
- **currency** (string): The currency associated with the deal product
- **discount** (number): The value of the discount. The `discount_type` field can be used to specify whether the value is an amount or a percentage
- **discount_type** (string (percentage|amount)): The type of the discount's value ("percentage"|"amount")
- **quantity** (integer): The quantity of the product
- **item_price** (number): The price value of the product
- **tax_method** (string (exclusive|inclusive|none)): The tax option to be applied to the products. When using `inclusive`, the tax percentage will already be included in the price. When using `exclusive`, the tax will not be included in the price. When using `none`, no tax will be added. Use the `tax` field for defining the tax percentage amount. By default, the user setting value for tax options will be used. Changing this in one product affects the rest of the products attached to the deal ("exclusive"|"inclusive"|"none")
- **is_enabled** (boolean): Whether this product is enabled for the deal
- **billing_frequency** (string (one-time|annually|semi-annually|quarterly|monthly|weekly)): Only available in Growth and above plans
How often a customer is billed for access to a service or product
To set `billing_frequency` different than `one-time`, the deal must not have installments associated
A deal can have up to 20 products attached with `billing_frequency` different than `one-time`
("one-time"|"annually"|"semi-annually"|"quarterly"|"monthly"|"weekly")
- **billing_frequency_cycles** (integer): Only available in Growth and above plans
The number of times the billing frequency repeats for a product in a deal
When `billing_frequency` is set to `one-time`, this field must be `null`
When `billing_frequency` is set to `weekly`, this field cannot be `null`
For all the other values of `billing_frequency`, `null` represents a product billed indefinitely
Must be a positive integer less or equal to 208
- **billing_start_date** (string (date)): Only available in Growth and above plans
The billing start date. Must be between 10 years in the past and 10 years in the future
- **additional_data** (object): Pagination related data
- **next_cursor** (string): The first item on the next page. The value of the `next_cursor` field will be `null` if you have reached the end of the dataset and there’s no more pages to be returned.
### Example Usage
```bash
curl -X GET "https://api.pipedrive.com/api/v2/deals/products?deal_ids=item1,item2&cursor=string&limit=100&sort_by=id&sort_direction=asc"
```
```
--------------------------------
### GET /projectTemplates
Source: https://developers.pipedrive.com/docs/api/v1/openapi-v2.yaml
Returns all not deleted project templates.
```markdown
### Parameters
- **cursor** (string, query, optional): For pagination, the marker (an opaque string value) representing the first item on the next page
- **limit** (integer, query, optional): 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. (example: 100)
### Responses
#### 200 - A list of project templates.
- **success** (boolean): If the response is successful or not
- **data** (array (object))
Array items:
- **id** (integer): The ID of the project template
- **title** (string): The title of the project template
- **description** (string): The description of the project template
- **projects_board_id** (integer): The ID of the project board this template is associated with
- **owner_id** (integer): The ID of the owner of the project template
- **add_time** (string): The creation date and time of the project template in ISO 8601 format
- **update_time** (string): The update date and time of the project template in ISO 8601 format
- **additional_data** (object): The additional data of the list
- **next_cursor** (string): The first item on the next page. The value of the `next_cursor` field will be `null` if you have reached the end of the dataset and there’s no more pages to be returned.
### Example Usage
```bash
curl -X GET "https://api.pipedrive.com/api/v2/projectTemplates?cursor=string&limit=100"
```
```
--------------------------------
### GET /deals
Source: https://developers.pipedrive.com/docs/api/v1/openapi-v2.yaml
Returns data about all not archived deals.
```markdown
### Parameters
- **filter_id** (integer, query, optional): If supplied, only deals matching the specified filter are returned
- **ids** (string, query, optional): Optional comma separated string array of up to 100 entity ids to fetch. If filter_id is provided, this is ignored. If any of the requested entities do not exist or are not visible, they are not included in the response.
- **owner_id** (integer, query, optional): If supplied, only deals owned by the specified user are returned. If filter_id is provided, this is ignored.
- **person_id** (integer, query, optional): If supplied, only deals linked to the specified person are returned. If filter_id is provided, this is ignored.
- **org_id** (integer, query, optional): If supplied, only deals linked to the specified organization are returned. If filter_id is provided, this is ignored.
- **pipeline_id** (integer, query, optional): If supplied, only deals in the specified pipeline are returned. If filter_id is provided, this is ignored.
- **stage_id** (integer, query, optional): If supplied, only deals in the specified stage are returned. If filter_id is provided, this is ignored.
- **status** (string (open|won|lost|deleted), query, optional): 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. Multiple statuses can be included as a comma separated array. If filter_id is provided, this is ignored.
- **updated_since** (string, query, optional): If set, only deals with an `update_time` later than or equal to this time are returned. In RFC3339 format, e.g. 2025-01-01T10:20:00Z.
- **updated_until** (string, query, optional): If set, only deals with an `update_time` earlier than this time are returned. In RFC3339 format, e.g. 2025-01-01T10:20:00Z.
- **sort_by** (string (id|update_time|add_time), query, optional): The field to sort by. Supported fields: `id`, `update_time`, `add_time`.
- **sort_direction** (string (asc|desc), query, optional): The sorting direction. Supported values: `asc`, `desc`.
- **include_fields** (string (next_activity_id|last_activity_id|first_won_time|products_count|files_count|notes_count|followers_count|email_messages_count|activities_count|done_activities_count|undone_activities_count|participants_count|last_incoming_mail_time|last_outgoing_mail_time|smart_bcc_email|source_lead_id), query, optional): Optional comma separated string array of additional fields to include
- **custom_fields** (string, query, optional): Optional comma separated string array of custom fields keys to include. If you are only interested in a particular set of custom fields, please use this parameter for faster results and smaller response.
A maximum of 15 keys is allowed.
- **include_option_labels** (boolean, query, optional): When provided with a 'true' value, single option and multiple option custom fields values contain objects in the form of '{ id: number, label: string }' instead of plain id
- **include_labels** (boolean, query, optional): When provided with 'true' value, response will include an array of label objects in the form of '{ id: number, label: string }'
- **limit** (integer, query, optional): 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. (example: 100)
- **cursor** (string, query, optional): For pagination, the marker (an opaque string value) representing the first item on the next page
### Responses
#### 200 - Get all not archived deals
- **success** (boolean): If the response is successful or not
- **data** (array (object)): Deals array
Array items:
- **id** (integer): The ID of the deal
- **title** (string): The title of the deal
- **owner_id** (integer): The ID of the user who owns the deal
- **person_id** (integer): The ID of the person linked to the deal
- **org_id** (integer): The ID of the organization linked to the deal
- **pipeline_id** (integer): The ID of the pipeline associated with the deal
- **stage_id** (integer): The ID of the deal stage
- **value** (number): The value of the deal
- **currency** (string): The currency associated with the deal
- **add_time** (string): The creation date and time of the deal
- **update_time** (string): The last updated date and time of the deal
- **stage_change_time** (string): The last updated date and time of the deal stage
- **is_deleted** (boolean): Whether the deal is deleted or not
- **is_archived** (boolean): Whether the deal is archived or not
- **status** (string): The status of the deal
- **probability** (number): The success probability percentage of the deal
- **lost_reason** (string): The reason for losing the deal
- **visible_to** (integer): The visibility of the deal
- **close_time** (string): The date and time of closing the deal
- **won_time** (string): The date and time of changing the deal status as won
- **lost_time** (string): The date and time of changing the deal status as lost
- **expected_close_date** (string (date)): The expected close date of the deal
- **label_ids** (array (integer)): The IDs of labels assigned to the deal
- **origin** (string): The way this Deal was created. `origin` field is set by Pipedrive when Deal is created and cannot be changed.
- **origin_id** (string): The optional ID to further distinguish the origin of the deal - e.g. Which API integration created this Deal.
- **channel** (integer): The ID of your Marketing channel this Deal was created from. Recognized Marketing channels can be configured in your Company settings.
- **channel_id** (string): The optional ID to further distinguish the Marketing channel.
- **source_lead_id** (string (uuid)): The ID of the lead if the deal was converted from a lead. Only included when requested via include_fields parameter.
- **arr** (number): Only available in Growth and above plans
The Annual Recurring Revenue of the deal
Null if there are no products attached to the deal
- **mrr** (number): Only available in Growth and above plans
The Monthly Recurring Revenue of the deal
Null if there are no products attached to the deal
- **acv** (number): Only available in Growth and above plans
The Annual Contract Value of the deal
Null if there are no products attached to the deal
- **custom_fields** (object): An object where each key represents a custom field. All custom fields are referenced as randomly generated 40-character hashes. To clear a custom field value, set it to `null`. For multi-option fields (field type `set`), use `null` to clear the selection — sending an empty array `[]` is not supported and will result in a validation error.
- **additional_data** (object): The additional data of the list
- **next_cursor** (string): The first item on the next page. The value of the `next_cursor` field will be `null` if you have reached the end of the dataset and there’s no more pages to be returned.
### Example Usage
```bash
curl -X GET "https://api.pipedrive.com/api/v2/deals?filter_id=0&ids=string&owner_id=0&person_id=0&org_id=0&pipeline_id=0&stage_id=0&status=open&updated_since=string&updated_until=string&sort_by=id&sort_direction=asc&include_fields=next_activity_id&custom_fields=string&include_option_labels=true&include_labels=true&limit=100&cursor=string"
```
```
--------------------------------
### GET /productFields
Source: https://developers.pipedrive.com/docs/api/v1/openapi-v2.yaml
Returns metadata about all product fields in the company.
```markdown
### Parameters
- **include_fields** (string (ui_visibility), query, optional): Optional comma separated string array of additional data namespaces to include in response
- **limit** (integer, query, optional): 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. (example: 100)
- **cursor** (string, query, optional): For pagination, the marker (an opaque string value) representing the first item on the next page
### Responses
#### 200 - Get all product fields
- **success** (boolean): Whether the request was successful
- **data** (array (object))
Array items:
- **field_name** (string) (required): The display name/label of the field
- **field_code** (string) (required): The unique identifier for the field (40-character hash for custom fields)
- **field_type** (string (int|double|boolean|varchar|text|phone|varchar_options|varchar_auto|date|daterange|time|timerange|enum|set|address|monetary|deal|deals|lead|org|people|project|stage|user|activity|json|picture|status|visible_to|price_list|billing_frequency|projects_board|projects_phase)) (required): The type of the field ("int"|"double"|"boolean"|"varchar"|"text"|"phone"|"varchar_options"|"varchar_auto"|"date"|"daterange"|"time"|"timerange"|"enum"|"set"|"address"|"monetary"|"deal"|"deals"|"lead"|"org"|"people"|"project"|"stage"|"user"|"activity"|"json"|"picture"|"status"|"visible_to"|"price_list"|"billing_frequency"|"projects_board"|"projects_phase")
- **options** (array (object)): Array of available options for enum/set fields, null for other field types
Array items:
- **id** (integer): The option ID
- **label** (string): The option display label
- **color** (string): Optional color code for the option
- **update_time** (string (date-time)): When the option was last updated
- **add_time** (string (date-time)): When the option was created
- **subfields** (array (object)): Array of subfields for complex field types (address, monetary), null for simple field types
Array items:
- **field_code** (string): The subfield identifier
- **field_name** (string): The subfield display name
- **field_type** (string): The subfield type
- **is_custom_field** (boolean) (required): Whether this is a user-created custom field
- **is_optional_response_field** (boolean) (required): Whether this field is not returned by default in entity responses
- **ui_visibility** (object): UI visibility settings (only included when requested via include_fields parameter)
- **add_visible_flag** (boolean): Whether the field is shown in the add modal
- **details_visible_flag** (boolean): Whether the field is shown in the details view (read-only)
- **additional_data** (object)
- **next_cursor** (string): Base64url-encoded cursor for fetching the next page of results, null if no more pages
### Example Usage
```bash
curl -X GET "https://api.pipedrive.com/api/v2/productFields?include_fields=ui_visibility&limit=100&cursor=string"
```
```
--------------------------------
### POST /boards
Source: https://developers.pipedrive.com/docs/api/v1/openapi-v2.yaml
Adds a new project board.
```markdown
### Request Body
**Content-Type:** application/json
- **name** (string) (required): The name of the project board
- **order_nr** (integer): The order of the board. Must be between 1 and the total number of boards + 1.
### Responses
#### 200 - Add a project board
- **success** (boolean): If the response is successful or not
- **data** (object)
- **id** (integer): The ID of the project board
- **name** (string): The name of the project board
- **order_nr** (integer): The order of the board
- **add_time** (string): The creation date and time of the board in ISO 8601 format
- **update_time** (string): The update date and time of the board in ISO 8601 format
### Example Usage
```bash
curl -X POST "https://api.pipedrive.com/api/v2/boards" \
-H "Content-Type: application/json" \
-d '{
"name": "string",
"order_nr": "0"
}'
```
```
--------------------------------
### POST /deals/{id}/installments
Source: https://developers.pipedrive.com/docs/api/v1/openapi-v2.yaml
Adds an installment to a deal.
An installment can only be added if the deal includes at least one one-time product.
If the deal contains at least one recurring product, adding installments is not allowed.
Only available in Growth and above plans.
```markdown
### Parameters
- **id** (integer, path, required): The ID of the deal
### Request Body
**Content-Type:** application/json
### Responses
#### 200 - Installment added to deal
- **success** (boolean): If the response is successful or not
- **data** (object)
- **id** (integer): The ID of the installment
- **amount** (number): The installment amount.
- **billing_date** (string): The date on which the installment will be charged.
- **description** (string): The name of installment.
- **deal_id** (integer): The ID of the deal the installment was added to.
### Example Usage
```bash
curl -X POST "https://api.pipedrive.com/api/v2/deals/{id}/installments" \
-H "Content-Type: application/json" \
-d '"value"'
```
```