Pipedrive ProductFields API

Product fields represent the near-complete schema for a product in the context of the company of the authorized user. Each company can have a different schema for their products, with various custom fields. In the context of using product fields as a schema for defining the data fields of a product, it must be kept in mind that some types of custom fields can have additional data fields which are not separate product fields per se. Such is the case with monetary, daterange and timerange fields – each of these fields will have one additional data field in addition to the one presented in the context of product fields. For example, if there is a monetary field with the key `ffk9s9` stored on the account, `ffk9s9` would hold the numeric value of the field, and `ffk9s9_currency` would hold the ISO currency code that goes along with the numeric value. To find out which data fields are available, fetch one product and list its keys.

Documentation

📖
Documentation
https://developers.pipedrive.com/
📖
APIReference
https://developers.pipedrive.com/docs/api/v1/Deals
📖
APIReference
https://developers.pipedrive.com/docs/api/v1/Leads
📖
APIReference
https://developers.pipedrive.com/docs/api/v1/Persons
📖
APIReference
https://developers.pipedrive.com/docs/api/v1/Organizations
📖
APIReference
https://developers.pipedrive.com/docs/api/v1/Activities
📖
APIReference
https://developers.pipedrive.com/docs/api/v1/Pipelines
📖
APIReference
https://developers.pipedrive.com/docs/api/v1/Stages
📖
APIReference
https://developers.pipedrive.com/docs/api/v1/Products
📖
APIReference
https://developers.pipedrive.com/docs/api/v1/Notes
📖
APIReference
https://developers.pipedrive.com/docs/api/v1/Files
📖
APIReference
https://developers.pipedrive.com/docs/api/v1/Mailbox
📖
APIReference
https://developers.pipedrive.com/docs/api/v1/CallLogs
📖
APIReference
https://developers.pipedrive.com/docs/api/v1/Users
📖
APIReference
https://developers.pipedrive.com/docs/api/v1/Roles
📖
APIReference
https://developers.pipedrive.com/docs/api/v1/Filters
📖
APIReference
https://developers.pipedrive.com/docs/api/v1/Goals
📖
APIReference
https://developers.pipedrive.com/docs/api/v1/Subscriptions
📖
APIReference
https://developers.pipedrive.com/docs/api/v1/Projects
📖
APIReference
https://developers.pipedrive.com/docs/api/v1/DealFields
📖
APIReference
https://developers.pipedrive.com/docs/api/v1/Webhooks
📖
Documentation
https://pipedrive.readme.io/docs/guide-for-webhooks-v2
📖
Documentation
https://developers.pipedrive.com/docs/api/v1/oauth2

Specifications

Other Resources

OpenAPI Specification

pipedrive-productfields-api-openapi.yml Raw ↑
openapi: 3.0.1
info:
  title: Pipedrive API v1 Activities ProductFields 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: ProductFields
  description: 'Product fields represent the near-complete schema for a product in the context of the company of the authorized user. Each company can have a different schema for their products, with various custom fields. In the context of using product fields as a schema for defining the data fields of a product, it must be kept in mind that some types of custom fields can have additional data fields which are not separate product fields per se. Such is the case with monetary, daterange and timerange fields – each of these fields will have one additional data field in addition to the one presented in the context of product fields. For example, if there is a monetary field with the key `ffk9s9` stored on the account, `ffk9s9` would hold the numeric value of the field, and `ffk9s9_currency` would hold the ISO currency code that goes along with the numeric value. To find out which data fields are available, fetch one product and list its keys.

    '
paths:
  /productFields:
    delete:
      summary: Delete multiple product fields in bulk
      description: Marks multiple fields as deleted.
      x-token-cost: 10
      operationId: deleteProductFields
      tags:
      - ProductFields
      security:
      - api_key: []
      - oauth2:
        - product-fields:full
        - products:full
      parameters:
      - in: query
        name: ids
        required: true
        schema:
          type: string
        description: The comma-separated field IDs to delete
      responses:
        '200':
          description: Mark multiple product fields as deleted
          content:
            application/json:
              schema:
                title: DeleteProductFieldsResponse
                type: object
                properties:
                  success:
                    type: boolean
                    description: If the response is successful or not
                  data:
                    type: object
                    properties:
                      id:
                        type: array
                        description: Array of all the IDs of the deleted product fields
                        items:
                          type: integer
              example:
                success: true
                data:
                  id:
                  - 32
                  - 35
    get:
      summary: Get all product fields
      description: Returns data about all product fields.
      x-token-cost: 20
      operationId: getProductFields
      parameters:
      - in: query
        name: start
        description: Pagination start
        schema:
          type: integer
          default: 0
      - in: query
        name: limit
        description: Items shown per page
        schema:
          type: integer
      tags:
      - ProductFields
      security:
      - api_key: []
      - oauth2:
        - products:read
        - product-fields:full
        - products:full
      responses:
        '200':
          description: Get data about all product fields
          content:
            application/json:
              schema:
                title: GetProductFieldsResponse
                type: object
                properties:
                  success:
                    type: boolean
                    description: If the response is successful or not
                  data:
                    type: array
                    description: Array containing data for all product fields
                    items:
                      type: object
                      allOf:
                      - title: ProductField
                        allOf:
                        - type: object
                          required:
                          - name
                          - field_type
                          properties:
                            name:
                              type: string
                              description: The name of the field
                            options:
                              type: array
                              items:
                                type: object
                              description: When `field_type` is either `set` or `enum`, possible options must be supplied as a JSON-encoded sequential array, for example:</br>`[{"label":"red"}, {"label":"blue"}, {"label":"lilac"}]`
                            field_type:
                              type: string
                              enum:
                              - varchar
                              - varchar_auto
                              - text
                              - double
                              - monetary
                              - date
                              - set
                              - enum
                              - user
                              - org
                              - people
                              - phone
                              - time
                              - timerange
                              - daterange
                              - address
                              description: The type of the field<table><tr><th>Value</th><th>Description</th></tr><tr><td>`varchar`</td><td>Text (up to 255 characters)</td><tr><td>`varchar_auto`</td><td>Autocomplete text (up to 255 characters)</td><tr><td>`text`</td><td>Long text (up to 65k characters)</td><tr><td>`double`</td><td>Numeric value</td><tr><td>`monetary`</td><td>Monetary field (has a numeric value and a currency value)</td><tr><td>`date`</td><td>Date (format YYYY-MM-DD)</td><tr><td>`set`</td><td>Options field with a possibility of having multiple chosen options</td><tr><td>`enum`</td><td>Options field with a single possible chosen option</td><tr><td>`user`</td><td>User field (contains a user ID of another Pipedrive user)</td><tr><td>`org`</td><td>Organization field (contains an organization ID which is stored on the same account)</td><tr><td>`people`</td><td>Person field (contains a product ID which is stored on the same account)</td><tr><td>`phone`</td><td>Phone field (up to 255 numbers and/or characters)</td><tr><td>`time`</td><td>Time field (format HH:MM:SS)</td><tr><td>`timerange`</td><td>Time-range field (has a start time and end time value, both HH:MM:SS)</td><tr><td>`daterange`</td><td>Date-range field (has a start date and end date value, both YYYY-MM-DD)</td><tr><td>`address`</td><td>Address field</dd></table>
                        - type: object
                          properties:
                            id:
                              type: integer
                              description: The ID of the product field
                            key:
                              type: string
                              description: The key of the product field
                            order_nr:
                              type: integer
                              description: The position (index) of the product field in the detail view
                            add_time:
                              type: string
                              description: 'The product field creation time. Format: YYYY-MM-DD HH:MM:SS'
                            update_time:
                              type: string
                              description: 'The product field last update time. Format: YYYY-MM-DD HH:MM:SS'
                            last_updated_by_user_id:
                              type: integer
                              description: The ID of the last user to update the product field
                            created_by_user_id:
                              type: integer
                              description: The ID of the user who created the product field
                            active_flag:
                              type: boolean
                              description: Whether or not the product field is currently active
                            edit_flag:
                              type: boolean
                              description: Whether or not the product field name and metadata is editable
                            add_visible_flag:
                              type: boolean
                              description: Whether or not the product field is visible in the Add Product Modal
                            important_flag:
                              type: boolean
                              description: Whether or not the product field is marked as important
                            bulk_edit_allowed:
                              type: boolean
                              description: Whether or not the product field data can be edited
                            searchable_flag:
                              type: boolean
                              description: Whether or not the product field is searchable
                            filtering_allowed:
                              type: boolean
                              description: Whether or not the product field value can be used when filtering searches
                            sortable_flag:
                              type: boolean
                              description: Whether or not the product field is sortable
                            mandatory_flag:
                              type: boolean
                              description: Whether or not the product field is mandatory when creating products
                      - type: object
                        properties:
                          field_type:
                            type: string
                            enum:
                            - boolean
                            - double
                            - int
                            - json
                            - date
                            - daterange
                            - time
                            - timerange
                            - text
                            - varchar
                            - varchar_auto
                            - varchar_options
                            - address
                            - enum
                            - monetary
                            - phone
                            - set
                            - activity
                            - deal
                            - lead
                            - org
                            - people
                            - pipeline
                            - product
                            - project
                            - stage
                            - user
                            - billing_frequency
                            - picture
                            - price_list
                            - projects_board
                            - projects_phase
                            - status
                            - visible_to
                            description: List of all possible field types
                  additional_data:
                    type: object
                    description: Additional data for the product field, such as pagination
              example:
                success: true
                data:
                - id: 20
                  key: name
                  name: Name
                  order_nr: 1
                  picklist_data: null
                  field_type: varchar
                  add_time: '2019-11-25 13:34:03'
                  update_time: '2019-11-25 13:34:02'
                  last_updated_by_user_id: 1
                  created_by_user_id: 1
                  active_flag: true
                  edit_flag: false
                  index_visible_flag: true
                  details_visible_flag: false
                  add_visible_flag: true
                  important_flag: false
                  bulk_edit_allowed: true
                  searchable_flag: false
                  filtering_allowed: true
                  sortable_flag: true
                  mandatory_flag: true
                - id: 24
                  key: visible_to
                  name: Visible to
                  order_nr: 5
                  field_type: double
                  add_time: '2019-11-25 13:34:03'
                  update_time: '2019-11-25 13:34:02'
                  last_updated_by_user_id: 1
                  created_by_user_id: 1
                  active_flag: true
                  edit_flag: false
                  index_visible_flag: true
                  details_visible_flag: true
                  add_visible_flag: false
                  important_flag: false
                  bulk_edit_allowed: true
                  searchable_flag: false
                  filtering_allowed: true
                  sortable_flag: true
                  options:
                  - id: 1
                    label: Owner & followers
                  - id: 3
                    label: Entire company
                  mandatory_flag: true
                additional_data:
                  pagination:
                    start: 0
                    limit: 100
                    more_items_in_collection: false
    post:
      summary: Add a new product field
      description: Adds a new product field. For more information, see the tutorial for <a href="https://pipedrive.readme.io/docs/adding-a-new-custom-field" target="_blank" rel="noopener noreferrer">adding a new custom field</a>.
      x-token-cost: 10
      operationId: addProductField
      tags:
      - ProductFields
      security:
      - api_key: []
      - oauth2:
        - product-fields:full
        - products:full
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
              - name
              - field_type
              properties:
                name:
                  type: string
                  description: The name of the field
                options:
                  type: array
                  items:
                    type: object
                  description: When `field_type` is either `set` or `enum`, possible options must be supplied as a JSON-encoded sequential array, for example:</br>`[{"label":"red"}, {"label":"blue"}, {"label":"lilac"}]`
                field_type:
                  type: string
                  enum:
                  - varchar
                  - varchar_auto
                  - text
                  - double
                  - monetary
                  - date
                  - set
                  - enum
                  - user
                  - org
                  - people
                  - phone
                  - time
                  - timerange
                  - daterange
                  - address
                  description: The type of the field<table><tr><th>Value</th><th>Description</th></tr><tr><td>`varchar`</td><td>Text (up to 255 characters)</td><tr><td>`varchar_auto`</td><td>Autocomplete text (up to 255 characters)</td><tr><td>`text`</td><td>Long text (up to 65k characters)</td><tr><td>`double`</td><td>Numeric value</td><tr><td>`monetary`</td><td>Monetary field (has a numeric value and a currency value)</td><tr><td>`date`</td><td>Date (format YYYY-MM-DD)</td><tr><td>`set`</td><td>Options field with a possibility of having multiple chosen options</td><tr><td>`enum`</td><td>Options field with a single possible chosen option</td><tr><td>`user`</td><td>User field (contains a user ID of another Pipedrive user)</td><tr><td>`org`</td><td>Organization field (contains an organization ID which is stored on the same account)</td><tr><td>`people`</td><td>Person field (contains a product ID which is stored on the same account)</td><tr><td>`phone`</td><td>Phone field (up to 255 numbers and/or characters)</td><tr><td>`time`</td><td>Time field (format HH:MM:SS)</td><tr><td>`timerange`</td><td>Time-range field (has a start time and end time value, both HH:MM:SS)</td><tr><td>`daterange`</td><td>Date-range field (has a start date and end date value, both YYYY-MM-DD)</td><tr><td>`address`</td><td>Address field</dd></table>
      responses:
        '201':
          description: Get the data for a single product field
          content:
            application/json:
              schema:
                title: GetProductFieldResponse
                type: object
                properties:
                  success:
                    type: boolean
                    description: If the response is successful or not
                  data:
                    allOf:
                    - title: ProductField
                      allOf:
                      - type: object
                        required:
                        - name
                        - field_type
                        properties:
                          name:
                            type: string
                            description: The name of the field
                          options:
                            type: array
                            items:
                              type: object
                            description: When `field_type` is either `set` or `enum`, possible options must be supplied as a JSON-encoded sequential array, for example:</br>`[{"label":"red"}, {"label":"blue"}, {"label":"lilac"}]`
                          field_type:
                            type: string
                            enum:
                            - varchar
                            - varchar_auto
                            - text
                            - double
                            - monetary
                            - date
                            - set
                            - enum
                            - user
                            - org
                            - people
                            - phone
                            - time
                            - timerange
                            - daterange
                            - address
                            description: The type of the field<table><tr><th>Value</th><th>Description</th></tr><tr><td>`varchar`</td><td>Text (up to 255 characters)</td><tr><td>`varchar_auto`</td><td>Autocomplete text (up to 255 characters)</td><tr><td>`text`</td><td>Long text (up to 65k characters)</td><tr><td>`double`</td><td>Numeric value</td><tr><td>`monetary`</td><td>Monetary field (has a numeric value and a currency value)</td><tr><td>`date`</td><td>Date (format YYYY-MM-DD)</td><tr><td>`set`</td><td>Options field with a possibility of having multiple chosen options</td><tr><td>`enum`</td><td>Options field with a single possible chosen option</td><tr><td>`user`</td><td>User field (contains a user ID of another Pipedrive user)</td><tr><td>`org`</td><td>Organization field (contains an organization ID which is stored on the same account)</td><tr><td>`people`</td><td>Person field (contains a product ID which is stored on the same account)</td><tr><td>`phone`</td><td>Phone field (up to 255 numbers and/or characters)</td><tr><td>`time`</td><td>Time field (format HH:MM:SS)</td><tr><td>`timerange`</td><td>Time-range field (has a start time and end time value, both HH:MM:SS)</td><tr><td>`daterange`</td><td>Date-range field (has a start date and end date value, both YYYY-MM-DD)</td><tr><td>`address`</td><td>Address field</dd></table>
                      - type: object
                        properties:
                          id:
                            type: integer
                            description: The ID of the product field
                          key:
                            type: string
                            description: The key of the product field
                          order_nr:
                            type: integer
                            description: The position (index) of the product field in the detail view
                          add_time:
                            type: string
                            description: 'The product field creation time. Format: YYYY-MM-DD HH:MM:SS'
                          update_time:
                            type: string
                            description: 'The product field last update time. Format: YYYY-MM-DD HH:MM:SS'
                          last_updated_by_user_id:
                            type: integer
                            description: The ID of the last user to update the product field
                          created_by_user_id:
                            type: integer
                            description: The ID of the user who created the product field
                          active_flag:
                            type: boolean
                            description: Whether or not the product field is currently active
                          edit_flag:
                            type: boolean
                            description: Whether or not the product field name and metadata is editable
                          add_visible_flag:
                            type: boolean
                            description: Whether or not the product field is visible in the Add Product Modal
                          important_flag:
                            type: boolean
                            description: Whether or not the product field is marked as important
                          bulk_edit_allowed:
                            type: boolean
                            description: Whether or not the product field data can be edited
                          searchable_flag:
                            type: boolean
                            description: Whether or not the product field is searchable
                          filtering_allowed:
                            type: boolean
                            description: Whether or not the product field value can be used when filtering searches
                          sortable_flag:
                            type: boolean
                            description: Whether or not the product field is sortable
                          mandatory_flag:
                            type: boolean
                            description: Whether or not the product field is mandatory when creating products
                    description: All data for the product field
              example:
                success: true
                data:
                  id: 32
                  key: 397b0f545d134b479a5485041b33b0f0f3da2333
                  name: Color
                  order_nr: 13
                  field_type: enum
                  add_time: '2019-12-20 11:01:24'
                  update_time: '2019-12-20 11:01:24'
                  last_updated_by_user_id: 10999910
                  created_by_user_id: 10999910
                  active_flag: true
                  edit_flag: true
                  index_visible_flag: true
                  details_visible_flag: true
                  add_visible_flag: true
                  important_flag: false
                  bulk_edit_allowed: true
                  searchable_flag: false
                  filtering_allowed: true
                  sortable_flag: true
                  options:
                  - id: 9
                    label: red
                  - id: 10
                    label: blue
                  - id: 11
                    label: lilac
                  mandatory_flag: false
  /productFields/{id}:
    delete:
      summary: Delete a product field
      description: Marks a product field as deleted. For more information, see the tutorial for <a href="https://pipedrive.readme.io/docs/deleting-a-custom-field" target="_blank" rel="noopener noreferrer">deleting a custom field</a>.
      x-token-cost: 6
      operationId: deleteProductField
      tags:
      - ProductFields
      security:
      - api_key: []
      - oauth2:
        - product-fields:full
        - products:full
      parameters:
      - in: path
        name: id
        description: The ID of the product field
        required: true
        schema:
          type: integer
      responses:
        '200':
          description: Delete a product field
          content:
            application/json:
              schema:
                title: DeleteProductFieldResponse
                type: object
                properties:
                  success:
                    type: boolean
                    description: If the response is successful or not
                  data:
                    type: object
                    properties:
                      id:
                        allOf:
                        - type: integer
                        description: The ID of the deleted product field
              example:
                success: true
                data:
                  id: 32
        '410':
          description: The product field with the specified ID does not exist or is inaccessible
          content:
            application/json:
              schema:
                title: failResponse
                type: object
                properties:
                  success:
                    type: boolean
                    description: If the response is successful or not
                  error:
                    type: string
                    description: The error message
              example:
                success: false
                error: The field is not found
    get:
      summary: Get one product field
      description: Returns data about a specific product field.
      x-token-cost: 2
      operationId: getProductField
      tags:
      - ProductFields
      security:
      - api_key: []
      - oauth2:
        - products:read
        - product-fields:full
        - products:full
      parameters:
      - in: path
        name: id
        description: The ID of the product field
        required: true
        schema:
          type: integer
      responses:
        '200':
          description: Get the data for a single product field
          content:
            application/json:
              schema:
                title: GetProductFieldResponse
                type: object
                properties:
                  success:
                    type: boolean
                    description: If the response is successful or not
                  data:
                    allOf:
                    - title: ProductField
                      allOf:
                      - type: object
                        required:
                        - name
                        - field_type
                        properties:
                          name:
                            type: string
                            description: The name of the field
                          options:
                            type: array
                            items:
                              type: object
                            description: When `field_type` is either `set` or `enum`, possible options must be supplied as a JSON-encoded sequential array, for example:</br>`[{"label":"red"}, {"label":"blue"}, {"label":"lilac"}]`
                          field_type:
                            type: string
                            enum:
                            - varchar
                            - varchar_auto
                            - text
                            - double
                            - monetary
                            - date
                            - set
                            - enum
                            - user
                            - org
                            - people
                            - phone
                            - time
                            - timerange
                            - daterange
                            - address
                            description: The type of the field<table><tr><th>Value</th><th>Description</th></tr><tr><td>`varchar`</td><td>Text (up to 255 characters)</td><tr><td>`varchar_auto`</td><td>Autocomplete text (up to 255 characters)</td><tr><td>`text`</td><td>Long text (up to 65k characters)</td><tr><td>`double`</td><td>Numeric value</td><tr><td>`monetary`</td><td>Monetary field (has a numeric value and a currency value)</td><tr><td>`date`</td><td>Date (format YYYY-MM-DD)</td><tr><td>`set`</td><td>Options field with a possibility of having multiple chosen options</td><tr><td>`enum`</td><td>Options field with a single possible chosen option</td><tr><td>`user`</td><td>User field (contains a user ID of another Pipedrive user)</td><tr><td>`org`</td><td>Organization field (contains an organization ID which is stored on the same account)</td><tr><td>`people`</td><td>Person field (contains a product ID which is stored on the same account)</td><tr><td>`phone`</td><td>Phone field (up to 255 numbers and/or characters)</td><tr><td>`time`</td><td>Time field (format HH:MM:SS)</td><tr><td>`timerange`</td><td>Time-range field (has a start time and end time value, both HH:MM:SS)</td><tr><td>`daterange`</td><td>Date-range field (has a start date and end date value, both YYYY-MM-DD)</td><tr><td>`address`</td><td>Address field</dd></table>
                      - type: object
                        properties:
                          id:
                            type: integer
                            description: The ID of the product field
                          key:
                            type: string
                            description: The key of the product field
                          order_nr:
                            type: integer
                            description: The position (index) of the product field in the detail view
                          add_time:
                            type: string
                            description: 'The product field creation time. Format: YYYY-MM-DD HH:MM:SS'
                          update_time:
                            type: string
                            description: 'The product field last update time. Format: YYYY-MM-DD HH:MM:SS'
                          last_updated_by_user_id:
                            type: integer
                            description: The ID of the last user to update the product field
                          created_by_user_id:
                            type: integer
                            description: The ID of the user who created the product field
                          active_flag:
                            type: boolean
                            description: Whether or not the product field is currently active
                          edit_flag:
                            type: boolean
                            description: Whether or not the product field name and metadata is editable
                          add_visible_flag:
                            type: boolean
                            description: Whether or not the product field is visible in the Add Product Modal
                          important_flag:
                            type: boolean
                            description: Whether or not the product field is marked as important
                          bulk_edit_allowed:
                            type: boolean
                            description: Whether or not the product field data can be edited
                          searchable_flag:
                            type: boolean
                            description: Whether or not the product field is searchable
                          filtering_allowed:
                            type: boolean
                            description: Whether or not the product field value can be used when filtering searches
                          sortable_flag:
                            type: boolean
                            description: Whether or not the product field is sortable
                          mandatory_flag:
                            type: boolean
                            descripti

# --- truncated at 32 KB (70 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/pipedrive/refs/heads/main/openapi/pipedrive-productfields-api-openapi.yml