openapi: 3.0.1 info: title: Pipedrive API v1 Activities Projects 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: Projects description: 'Projects represent ongoing, completed or canceled projects attached to an organization, person or to deals. Each project has an owner and must be placed in a phase. Each project consists of standard data fields but can also contain a number of custom fields. The custom fields can be recognized by long hashes as keys. ' paths: /projects: get: summary: Get all projects description: Returns all projects. This is a cursor-paginated endpoint. For more information, please refer to our documentation on pagination. x-token-cost: 20 operationId: getProjects tags: - Projects security: - api_key: [] - oauth2: - projects:read - projects:full parameters: - in: query name: cursor required: false description: For pagination, the marker (an opaque string value) representing the first item on the next page schema: type: string - in: query name: limit required: false description: For pagination, the limit of entries to be returned. If not provided, 100 items will be returned. schema: type: integer example: 100 - in: query name: filter_id required: false schema: type: integer description: The ID of the filter to use - in: query name: status required: false description: If supplied, includes only projects with the specified statuses. Possible values are `open`, `completed`, `canceled` and `deleted`. By default `deleted` projects are not returned. schema: type: string example: open,completed - in: query name: phase_id required: false schema: type: integer description: If supplied, only projects in specified phase are returned - in: query name: include_archived required: false schema: type: boolean description: If supplied with `true` then archived projects are also included in the response. By default only not archived projects are returned. responses: '200': description: A list of projects. content: application/json: schema: title: GetProjectsResponse type: object properties: success: type: boolean data: type: array items: title: projectResponseObject allOf: - type: object title: ProjectId properties: id: type: integer description: The ID of the project, generated when the task was created - title: Project type: object allOf: - type: object properties: title: description: The title of the project type: string - type: object properties: board_id: description: The ID of the board this project is associated with type: number phase_id: description: The ID of the phase this project is associated with type: number description: description: The description of the project type: string status: description: The status of the project type: string owner_id: description: The ID of a project owner type: number start_date: description: 'The start date of the project. Format: YYYY-MM-DD.' type: string format: date end_date: description: 'The end date of the project. Format: YYYY-MM-DD.' type: string format: date deal_ids: description: An array of IDs of the deals this project is associated with type: array items: type: integer org_id: description: The ID of the organization this project is associated with type: number person_id: description: The ID of the person this project is associated with type: number labels: description: An array of IDs of the labels this project has type: array items: type: integer - type: object properties: add_time: type: string description: 'The creation date and time of the project in UTC. Format: YYYY-MM-DD HH:MM:SS.' update_time: type: string description: 'The update date and time of the project in UTC. Format: YYYY-MM-DD HH:MM:SS.' status_change_time: type: string description: 'The status changed date and time of the project in UTC. Format: YYYY-MM-DD HH:MM:SS.' archive_time: type: string description: 'The archived date and time of the project in UTC. Format: YYYY-MM-DD HH:MM:SS. If not archived then ''null''.' additional_data: description: The additional data of the list type: object properties: next_cursor: type: string description: 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: success: true data: - id: 8 title: Project description: Project Description status: open status_change_time: '2023-09-12 11:12:18.110' start_date: '2023-09-18' end_date: '2024-03-04' owner_id: 19 add_time: '2023-09-12 11:12:18.110' update_time: '2023-09-14 05:45:40.084' labels: - 13 - 14 archive_time: '2023-09-15 11:12:18.110' deal_ids: - 1 - 2 person_id: 2 org_id: 3 board_id: 1 phase_id: 1 additional_data: next_cursor: eyJhY3Rpdml0aWVzIjoyN30 post: summary: Add a project description: Adds a new project. 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. x-token-cost: 10 operationId: addProject tags: - Projects security: - api_key: [] - oauth2: - projects:full requestBody: content: application/json: schema: title: addProjectRequest allOf: - title: requiredPostProjectParameters type: object required: - title properties: title: description: The title of the project type: string - type: object properties: board_id: description: The ID of the board this project is associated with type: number phase_id: description: The ID of the phase this project is associated with type: number description: description: The description of the project type: string status: description: The status of the project type: string owner_id: description: The ID of a project owner type: number start_date: description: 'The start date of the project. Format: YYYY-MM-DD.' type: string format: date end_date: description: 'The end date of the project. Format: YYYY-MM-DD.' type: string format: date deal_ids: description: An array of IDs of the deals this project is associated with type: array items: type: integer org_id: description: The ID of the organization this project is associated with type: number person_id: description: The ID of the person this project is associated with type: number labels: description: An array of IDs of the labels this project has type: array items: type: integer - type: object properties: template_id: description: The ID of the template the project will be based on type: number responses: '201': description: Created project. content: application/json: schema: title: AddProjectResponse type: object properties: success: type: boolean data: title: projectResponseObject allOf: - type: object title: ProjectId properties: id: type: integer description: The ID of the project, generated when the task was created - title: Project type: object allOf: - type: object properties: title: description: The title of the project type: string - type: object properties: board_id: description: The ID of the board this project is associated with type: number phase_id: description: The ID of the phase this project is associated with type: number description: description: The description of the project type: string status: description: The status of the project type: string owner_id: description: The ID of a project owner type: number start_date: description: 'The start date of the project. Format: YYYY-MM-DD.' type: string format: date end_date: description: 'The end date of the project. Format: YYYY-MM-DD.' type: string format: date deal_ids: description: An array of IDs of the deals this project is associated with type: array items: type: integer org_id: description: The ID of the organization this project is associated with type: number person_id: description: The ID of the person this project is associated with type: number labels: description: An array of IDs of the labels this project has type: array items: type: integer - type: object properties: add_time: type: string description: 'The creation date and time of the project in UTC. Format: YYYY-MM-DD HH:MM:SS.' update_time: type: string description: 'The update date and time of the project in UTC. Format: YYYY-MM-DD HH:MM:SS.' status_change_time: type: string description: 'The status changed date and time of the project in UTC. Format: YYYY-MM-DD HH:MM:SS.' archive_time: type: string description: 'The archived date and time of the project in UTC. Format: YYYY-MM-DD HH:MM:SS. If not archived then ''null''.' additional_data: type: object nullable: true example: null example: success: true data: id: 8 title: Project description: Project Description status: open status_change_time: '2023-09-12 11:12:18.110' start_date: '2023-09-18' end_date: '2024-03-04' owner_id: 19 add_time: '2023-09-12 11:12:18.110' update_time: '2023-09-14 05:45:40.084' labels: - 13 - 14 archive_time: '2023-09-15 11:12:18.110' deal_ids: - 1 - 2 person_id: 2 org_id: 3 board_id: 1 phase_id: 1 additional_data: null /projects/{id}: get: summary: Get details of a project description: Returns the details of a specific project. Also note that custom fields appear as long hashes in the resulting data. These hashes can be mapped against the `key` value of project fields. x-token-cost: 2 operationId: getProject tags: - Projects security: - api_key: [] - oauth2: - projects:read - projects:full parameters: - in: path name: id description: The ID of the project required: true schema: type: integer responses: '200': description: Get a project. content: application/json: schema: title: GetProjectResponse type: object properties: success: type: boolean data: title: projectResponseObject allOf: - type: object title: ProjectId properties: id: type: integer description: The ID of the project, generated when the task was created - title: Project type: object allOf: - type: object properties: title: description: The title of the project type: string - type: object properties: board_id: description: The ID of the board this project is associated with type: number phase_id: description: The ID of the phase this project is associated with type: number description: description: The description of the project type: string status: description: The status of the project type: string owner_id: description: The ID of a project owner type: number start_date: description: 'The start date of the project. Format: YYYY-MM-DD.' type: string format: date end_date: description: 'The end date of the project. Format: YYYY-MM-DD.' type: string format: date deal_ids: description: An array of IDs of the deals this project is associated with type: array items: type: integer org_id: description: The ID of the organization this project is associated with type: number person_id: description: The ID of the person this project is associated with type: number labels: description: An array of IDs of the labels this project has type: array items: type: integer - type: object properties: add_time: type: string description: 'The creation date and time of the project in UTC. Format: YYYY-MM-DD HH:MM:SS.' update_time: type: string description: 'The update date and time of the project in UTC. Format: YYYY-MM-DD HH:MM:SS.' status_change_time: type: string description: 'The status changed date and time of the project in UTC. Format: YYYY-MM-DD HH:MM:SS.' archive_time: type: string description: 'The archived date and time of the project in UTC. Format: YYYY-MM-DD HH:MM:SS. If not archived then ''null''.' additional_data: type: object nullable: true example: null example: success: true data: id: 8 title: Project description: Project Description status: open status_change_time: '2023-09-12 11:12:18.110' start_date: '2023-09-18' end_date: '2024-03-04' owner_id: 19 add_time: '2023-09-12 11:12:18.110' update_time: '2023-09-14 05:45:40.084' labels: - 13 - 14 archive_time: '2023-09-15 11:12:18.110' deal_ids: - 1 - 2 person_id: 2 org_id: 3 board_id: 1 phase_id: 1 additional_data: null put: summary: Update a project description: Updates a project. x-token-cost: 10 operationId: updateProject tags: - Projects security: - api_key: [] - oauth2: - projects:full parameters: - in: path name: id description: The ID of the project required: true schema: type: integer requestBody: content: application/json: schema: title: updateProjectRequest allOf: - type: object properties: title: description: The title of the project type: string - type: object properties: board_id: description: The ID of the board this project is associated with type: number phase_id: description: The ID of the phase this project is associated with type: number description: description: The description of the project type: string status: description: The status of the project type: string owner_id: description: The ID of a project owner type: number start_date: description: 'The start date of the project. Format: YYYY-MM-DD.' type: string format: date end_date: description: 'The end date of the project. Format: YYYY-MM-DD.' type: string format: date deal_ids: description: An array of IDs of the deals this project is associated with type: array items: type: integer org_id: description: The ID of the organization this project is associated with type: number person_id: description: The ID of the person this project is associated with type: number labels: description: An array of IDs of the labels this project has type: array items: type: integer responses: '200': description: Updated project. content: application/json: schema: title: UpdateProjectResponse type: object properties: success: type: boolean data: title: projectResponseObject allOf: - type: object title: ProjectId properties: id: type: integer description: The ID of the project, generated when the task was created - title: Project type: object allOf: - type: object properties: title: description: The title of the project type: string - type: object properties: board_id: description: The ID of the board this project is associated with type: number phase_id: description: The ID of the phase this project is associated with type: number description: description: The description of the project type: string status: description: The status of the project type: string owner_id: description: The ID of a project owner type: number start_date: description: 'The start date of the project. Format: YYYY-MM-DD.' type: string format: date end_date: description: 'The end date of the project. Format: YYYY-MM-DD.' type: string format: date deal_ids: description: An array of IDs of the deals this project is associated with type: array items: type: integer org_id: description: The ID of the organization this project is associated with type: number person_id: description: The ID of the person this project is associated with type: number labels: description: An array of IDs of the labels this project has type: array items: type: integer - type: object properties: add_time: type: string description: 'The creation date and time of the project in UTC. Format: YYYY-MM-DD HH:MM:SS.' update_time: type: string description: 'The update date and time of the project in UTC. Format: YYYY-MM-DD HH:MM:SS.' status_change_time: type: string description: 'The status changed date and time of the project in UTC. Format: YYYY-MM-DD HH:MM:SS.' archive_time: type: string description: 'The archived date and time of the project in UTC. Format: YYYY-MM-DD HH:MM:SS. If not archived then ''null''.' additional_data: type: object nullable: true example: null example: success: true data: id: 8 title: Project description: Project Description status: open status_change_time: '2023-09-12 11:12:18.110' start_date: '2023-09-18' end_date: '2024-03-04' owner_id: 19 add_time: '2023-09-12 11:12:18.110' update_time: '2023-09-14 05:45:40.084' labels: - 13 - 14 archive_time: '2023-09-15 11:12:18.110' deal_ids: - 1 - 2 person_id: 2 org_id: 3 board_id: 1 phase_id: 1 additional_data: null delete: summary: Delete a project description: Marks a project as deleted. x-token-cost: 6 operationId: deleteProject tags: - Projects security: - api_key: [] - oauth2: - projects:full parameters: - in: path name: id description: The ID of the project required: true schema: type: integer responses: '200': description: Delete a project. content: application/json: schema: title: DeleteProjectResponse type: object properties: success: type: boolean data: title: deleteProject type: object properties: success: type: boolean description: If the request was successful or not data: type: object properties: id: type: integer description: The ID of the project that was deleted additional_data: type: object nullable: true example: null example: success: true data: id: 8 additional_data: null patch: summary: Update a project description: Updates the properties of a project. x-token-cost: 5 operationId: updateProject tags: - Projects security: - api_key: [] - oauth2: - projects:full parameters: - in: path name: id description: The ID of the project required: true schema: type: integer requestBody: content: application/json: schema: type: object properties: title: type: string description: The title of the project description: type: string description: The description of the project status: type: string description: The status of the project board_id: type: integer description: The ID of the board this project is associated with phase_id: type: integer description: The ID of the phase this project is associated with owner_id: type: integer description: The ID of the user who owns the project start_date: type: string format: date description: 'The start date of the project. Format: YYYY-MM-DD' end_date: type: string format: date description: 'The end date of the project. Format: YYYY-MM-DD' deal_ids: type: array description: An array of IDs of the deals this project is associated with items: type: integer person_ids: type: array description: An array of IDs of the persons this project is associated with items: type: integer org_ids: type: array description: An array of IDs of the organizations this project is associated with items: type: integer label_ids: type: array description: An array of IDs of the labels this project has items: type: integer template_id: type: integer description: The ID of the template the project will be based on. Only used when creating a new project. custom_fields: type: object additionalProperties: true description: 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. responses: '200': description: Update project content: application/json: schema: type: object title: UpsertProjectResponse allOf: - title: baseResponse type: object properties: success: type: boolean description: If the response is successful or not - type: object properties: data: title: Project type: object properties: id: type: integer description: The ID of the project title: type: string description: The title of the project description: type: string description: The description of the project status: type: string description: The status of the project board_id: type: integer description: The ID of the board this project is associated with phase_id: type: integer description: The ID of the phase this project is associated with owner_id: type: integer description: The ID of the user who owns the project start_date: type: string format: date description: 'The start date of the project. Format: YYYY-MM-DD' end_date: type: string format: date description: 'The end date of the project. Format: YYYY-MM-DD' deal_ids: type: array description: An array of IDs of the deals this project is associated with items: type: integer person_ids: type: array description: An array of IDs of the persons this project is associated with items: type: integer org_ids: type: array description: An array of IDs of the organizations this project is associated with items: type: integer label_ids: type: array description: An array of IDs of the labels this project has items: type: integer health_status: type: string nullable: true description: The health status of the project add_time: type: string description: The creation date and time of the project in ISO 8601 format update_time: type: string description: The last updated date and time of the project in ISO 8601 format status_change_time: type: string description: The date and time of the last status change of the project in ISO 8601 format archive_time: type: string nullable: true description: The date and time the project was archived in ISO 8601 format. If not archived, this field is null. custom_fields: type: object additionalProperties: true description: 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. example: success: true data: id: 3 title: Project description: Description status: open board_id: 1 phase_id: 1 owner_id: 1 start_date: '2026-04-15' end_date: '2026-04-23' deal_ids: - 1 person_ids: - 1 org_ids: - 1 label_ids: - 1 health_status: null add_time: '2026-04-14T10:45:20.852Z' update_time: '2026-04-14T10:45:20.852Z' status_change_time: '2026-04-14T10:45:20.852Z' archive_time: null custom_fields: {} /projects/{id}/archive: post: summary: Archive a project description: Archives a project. x-token-cost: 10 operationId: archiveProject tags: - Projects security: - api_key: [] - oauth2: - projects:full parameters: - in: path name: id description: The ID of the project required: true schema: type: integer responses: '200': description: Updated project. content: application/json: schema: title: UpdateProjectResponse type: object properties: success: type: boolean data: title: projectResponseObject allOf: - type: object title: ProjectId properties: id: type: integer description: The ID of the project, generated when the task was created - title: Project type: object allOf: - type: object properties: title: description: The title of the project type: string - type: object properties: board_id: description: The ID of the board this project is associated with type: number phase_id: description: The ID of the phase this project is associated with type: number description: description: The description of the project type: string status: description: The status of the project type: string owner_id: description: The ID of a project owner type: number start_date: description: 'The start date of the project. Format: YYYY-MM-DD.' type: string format: date end_date: description: 'The end date of the project. Format: YYYY-MM-DD.' type: string format: date deal_ids: description: An array of IDs of the deals this project is associated with type: array items: type: integer org_id: description: The ID of the organization this project is associated with type: number person_id: description: The ID of the person this project is associated with type: number labels: description: An array of IDs of the labels this project has type: array items: type: integer - type: object properties: add_time: type: string description: 'The creation date and time of the project in UTC. Format: YYYY-MM-DD HH:MM:SS.' update_time: type: string description: 'The update date and time of the project in UTC. Format: YYYY-MM-DD HH:MM:SS.' status_change_time: type: string description: 'The status changed date and time of the project in UTC. Format: YYYY-MM-DD HH:MM:SS.' archive_time: type: string description: 'The archived date and time of the project in UTC. Format: YYYY-MM-DD HH:MM:SS. If not archived then ''null''.' additional_data: type: object nullable: true example: null example: success: true data: id: 8 title: Project description: Project Description status: open status_change_time: '2023-09-12 11:12:18.110' start_date: '2023-09-18' end_date: '2024-03-04' owner_id: 19 add_time: '2023-09-12 11:12:18.110' update_time: '2023-09-14 05:45:40.084' labels: - 13 - 14 archive_time: '2023-09-15 11:12:18.110' deal_ids: - 1 - 2 person_id: 2 org_id: 3 board_id: 1 phase_id: 1 additional_data: null /projects/{id}/plan: get: summary: Returns project plan description: Returns information about items in a project plan. Items consists of tasks and activities and are linked to specific project phase and group. x-token-cost: 20 operationId: getProjectPlan tags: - Projects security: - api_key: [] - oauth2: - projects:read - projects:full parameters: - in: path name: id description: The ID of the project required: true schema: type: integer responses: '200': description: Get a project plan. content: application/json: schema: title: GetProjectPlanResponse type: object properties: success: type: boolean data: type: array items: type: object properties: item_id: description: ID of plan item (either activity or task ID) type: number item_type: description: Type of a plan item (task / activity) type: string phase_id: description: The ID of the board this project is associated with. If null then plan item is not in any phase. type: number group_id: description: The ID of the board this project is associated with. If null then plan item is not in any group. type: number additional_data: type: object nullable: true example: null example: success: true data: - item_id: 1 item_type: task phase_id: 2 group_id: 3 - item_id: 1 item_type: activity phase_id: 2 group_id: 3 additional_data: null /projects/{id}/plan/activities/{activityId}: put: summary: Update activity in project plan description: Updates an activity phase or group in a project. x-token-cost: 10 operationId: putProjectPlanActivity tags: - Projects security: - api_key: [] - oauth2: - projects:full parameters: - in: path name: id description: The ID of the project required: true schema: type: integer - in: path name: activityId description: The ID of the activity required: true schema: type: integer requestBody: content: application/json: schema: title: projectPutPlanItemBodyObject type: object properties: phase_id: description: The ID of a phase on a project board type: number group_id: description: The ID of a group on a project board type: number responses: '200': description: Updated activity in plan. content: application/json: schema: title: UpdateActivityPlanItemResponse type: object properties: success: type: boolean data: type: object properties: item_id: description: ID of plan item (either activity or task ID) type: number item_type: description: Type of a plan item (task / activity) type: string phase_id: description: The ID of the board this project is associated with. If null then plan item is not in any phase. type: number group_id: description: The ID of the board this project is associated with. If null then plan item is not in any group. type: number additional_data: type: object nullable: true example: null example: success: true data: item_id: 1 item_type: activity phase_id: 2 group_id: 3 additional_data: null /projects/{id}/plan/tasks/{taskId}: put: summary: Update task in project plan description: Updates a task phase or group in a project. x-token-cost: 10 operationId: putProjectPlanTask tags: - Projects security: - api_key: [] - oauth2: - projects:full parameters: - in: path name: id description: The ID of the project required: true schema: type: integer - in: path name: taskId description: The ID of the task required: true schema: type: integer requestBody: content: application/json: schema: title: projectPutPlanItemBodyObject type: object properties: phase_id: description: The ID of a phase on a project board type: number group_id: description: The ID of a group on a project board type: number responses: '200': description: Updated task in plan. content: application/json: schema: title: UpdateTaskPlanItemResponse type: object properties: success: type: boolean data: type: object properties: item_id: description: ID of plan item (either activity or task ID) type: number item_type: description: Type of a plan item (task / activity) type: string phase_id: description: The ID of the board this project is associated with. If null then plan item is not in any phase. type: number group_id: description: The ID of the board this project is associated with. If null then plan item is not in any group. type: number additional_data: type: object nullable: true example: null example: success: true data: item_id: 1 item_type: task phase_id: 2 group_id: 3 additional_data: null /projects/{id}/groups: get: summary: Returns project groups description: Returns all active groups under a specific project. x-token-cost: 20 operationId: getProjectGroups tags: - Projects security: - api_key: [] - oauth2: - projects:read - projects:full parameters: - in: path name: id description: The ID of the project required: true schema: type: integer responses: '200': description: Get a project groups. content: application/json: schema: title: GetProjectGroupsResponse type: object properties: success: type: boolean data: type: array items: type: object properties: id: description: ID of the group type: number name: description: Name of the group type: string order_nr: description: Order number of the group type: number additional_data: type: object nullable: true example: null example: success: true data: - id: 1 name: Group one order_nr: 1 additional_data: null /projects/{id}/tasks: get: summary: Returns project tasks description: Returns tasks linked to a specific project. x-token-cost: 20 operationId: getProjectTasks tags: - Projects security: - api_key: [] - oauth2: - projects:read - projects:full parameters: - in: path name: id description: The ID of the project required: true schema: type: integer responses: '200': description: A list of tasks. content: application/json: schema: title: GetTasksResponse type: object properties: success: type: boolean data: type: array items: title: TaskResponseObject type: object allOf: - type: object properties: id: type: integer description: The ID of the task, generated when the task was created - title: updateProjectRequest type: object allOf: - type: object properties: title: description: The title of the task type: string project_id: description: The ID of the project this task is associated with type: number - type: object properties: description: description: The description of the task type: string parent_task_id: description: The ID of a parent task. Can not be ID of a task which is already a subtask. type: number assignee_id: type: number description: The ID of the user assigned to the task. When the `assignee_id` field is updated, the `assignee_ids` field value will be overwritten by the `assignee_id` field value. assignee_ids: type: array items: type: number maxItems: 10 uniqueItems: true description: The IDs of users assigned to the task. When the `assignee_ids` field is updated, the `assignee_id` field value will be set to the first value of the `assignee_ids` field, or `null` if the list is empty. done: description: Whether the task is done or not. 0 = Not done, 1 = Done. allOf: - title: numberBoolean type: number enum: - 0 - 1 due_date: description: 'The due date of the task. Format: YYYY-MM-DD.' type: string format: date - type: object properties: creator_id: type: number description: The creator of a task add_time: type: string description: 'The creation date and time of the task in UTC. Format: YYYY-MM-DD HH:MM:SS.' update_time: type: string description: 'The update date and time of the task in UTC. Format: YYYY-MM-DD HH:MM:SS.' marked_as_done_time: type: string description: 'The marked as done date and time of the task in UTC. Format: YYYY-MM-DD HH:MM:SS.' additional_data: description: The additional data of the list type: object properties: next_cursor: type: string description: 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: success: true data: - id: 1 title: Task 1 creator_id: 2 description: Task description done: 0 due_date: '2023-10-11' parent_task_id: 2 assignee_id: 2 assignee_ids: - 2 - 3 - 4 add_time: '2023-09-14 08:14:40.288' update_time: '2023-09-14 08:14:40.288' marked_as_done_time: '2023-09-22 08:14:40.288' project_id: 1 additional_data: next_cursor: eyJhY3Rpdml0aWVzIjoyN30 /projects/{id}/activities: get: summary: Returns project activities description: Returns activities linked to a specific project. x-token-cost: 20 operationId: getProjectActivities tags: - Projects security: - api_key: [] - oauth2: - projects:read - projects:full parameters: - in: path name: id description: The ID of the project required: true schema: type: integer responses: '200': description: A collection of activities content: application/json: schema: title: GetActivitiesCollectionResponse type: object properties: success: type: boolean data: type: array items: title: ActivityCollectionResponseObject allOf: - type: object properties: due_date: description: 'The due date of the activity. Format: YYYY-MM-DD' type: string format: date due_time: description: 'The due time of the activity in UTC. Format: HH:MM' type: string duration: description: 'The duration of the activity. Format: HH:MM' type: string deal_id: description: The ID of the deal this activity is associated with type: integer lead_id: description: The ID of the lead in the UUID format this activity is associated with type: string format: uuid nullable: true person_id: description: The ID of the person this activity is associated with type: integer project_id: description: The ID of the project this activity is associated with type: integer nullable: true org_id: description: The ID of the organization this activity is associated with type: integer location: description: The address of the activity. type: string public_description: description: Additional details about the activity that is synced to your external calendar. Unlike the note added to the activity, the description is publicly visible to any guests added to the activity. type: string - type: object properties: id: type: integer description: The ID of the activity, generated when the activity was created done: type: boolean description: Whether the activity is done or not subject: description: The subject of the activity type: string type: description: The type of the activity. This is in correlation with the `key_string` parameter of ActivityTypes. type: string user_id: description: The ID of the user whom the activity is assigned to type: integer busy_flag: description: Marks if the activity is set as 'Busy' or 'Free'. If the flag is set to `true`, your customers will not be able to book that time slot through any Scheduler links. The flag can also be unset. When the value of the flag is unset (`null`), the flag defaults to 'Busy' if it has a time set, and 'Free' if it is an all-day event without specified time. type: boolean company_id: type: integer description: The user's company ID conference_meeting_client: type: string description: The ID of the Marketplace app, which is connected to this activity conference_meeting_url: type: string description: The link to join the meeting which is associated with this activity conference_meeting_id: type: string description: The meeting ID of the meeting provider (Zoom, MS Teams etc.) that is associated with this activity add_time: type: string description: 'The creation date and time of the activity in UTC. Format: YYYY-MM-DD HH:MM:SS.' marked_as_done_time: type: string description: 'The date and time this activity was marked as done. Format: YYYY-MM-DD HH:MM:SS.' active_flag: type: boolean description: Whether the activity is active or not update_time: type: string description: 'The last update date and time of the activity. Format: YYYY-MM-DD HH:MM:SS.' update_user_id: description: The ID of the user who was the last to update this activity type: integer source_timezone: type: string description: The timezone the activity was created in an external calendar location_subpremise: type: string description: A subfield of the location field. Indicates apartment/suite number. location_street_number: type: string description: A subfield of the location field. Indicates house number. location_route: type: string description: A subfield of the location field. Indicates street name. location_sublocality: type: string description: A subfield of the location field. Indicates district/sublocality. location_locality: type: string description: A subfield of the location field. Indicates city/town/village/locality. location_admin_area_level_1: type: string description: A subfield of the location field. Indicates state/county. location_admin_area_level_2: type: string description: A subfield of the location field. Indicates region. location_country: type: string description: A subfield of the location field. Indicates country. location_postal_code: type: string description: A subfield of the location field. Indicates ZIP/postal code. location_formatted_address: type: string description: A subfield of the location field. Indicates full/combined address. additional_data: description: The additional data of the list type: object properties: next_cursor: type: string description: 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: success: true data: - id: 8 company_id: 22122 user_id: 1234 done: false type: deadline conference_meeting_client: 871b8bc88d3a1202 conference_meeting_url: https://pipedrive.zoom.us/link conference_meeting_id: '17058746701' due_date: '2022-06-09' due_time: '10:00' duration: 01:00 busy_flag: true add_time: '2020-06-08 12:37:56' marked_as_done_time: '2020-08-08 08:08:38' subject: Deadline public_description: This is a description location: Mustamäe tee 3, Tallinn, Estonia org_id: 5 person_id: 1101 deal_id: 300 lead_id: 46c3b0e1-db35-59ca-1828-4817378dff71 project_id: null active_flag: true update_time: '2020-08-08 12:37:56' update_user_id: 5596 source_timezone: '' location_subpremise: '' location_street_number: '3' location_route: Mustamäe tee location_sublocality: Kristiine location_locality: Tallinn location_admin_area_level_1: Harju maakond location_admin_area_level_2: '' location_country: Estonia location_postal_code: '10616' location_formatted_address: Mustamäe tee 3, 10616 Tallinn, Estonia additional_data: next_cursor: eyJhY3Rpdml0aWVzIjoyN30 /projects/archived: get: summary: Get all archived projects description: Returns all archived projects. x-token-cost: 10 operationId: getArchivedProjects tags: - Projects security: - api_key: [] - oauth2: - projects:read - projects:full parameters: - in: query name: filter_id schema: type: integer description: If supplied, only projects matching the specified filter are returned - in: query name: status schema: type: string example: open,completed description: If supplied, includes only projects with the specified statuses. Possible values are `open`, `completed`, `canceled` and `deleted`. By default `deleted` projects are not returned. - in: query name: phase_id schema: type: integer description: If supplied, only projects in the specified phase are returned - in: query name: limit description: 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. schema: type: integer example: 100 - in: query name: cursor required: false schema: type: string description: For pagination, the marker (an opaque string value) representing the first item on the next page responses: '200': description: Get all projects content: application/json: schema: type: object title: GetProjectsResponse allOf: - title: baseResponse type: object properties: success: type: boolean description: If the response is successful or not - type: object properties: data: type: array description: Projects array items: title: Project type: object properties: id: type: integer description: The ID of the project title: type: string description: The title of the project description: type: string description: The description of the project status: type: string description: The status of the project board_id: type: integer description: The ID of the board this project is associated with phase_id: type: integer description: The ID of the phase this project is associated with owner_id: type: integer description: The ID of the user who owns the project start_date: type: string format: date description: 'The start date of the project. Format: YYYY-MM-DD' end_date: type: string format: date description: 'The end date of the project. Format: YYYY-MM-DD' deal_ids: type: array description: An array of IDs of the deals this project is associated with items: type: integer person_ids: type: array description: An array of IDs of the persons this project is associated with items: type: integer org_ids: type: array description: An array of IDs of the organizations this project is associated with items: type: integer label_ids: type: array description: An array of IDs of the labels this project has items: type: integer health_status: type: string nullable: true description: The health status of the project add_time: type: string description: The creation date and time of the project in ISO 8601 format update_time: type: string description: The last updated date and time of the project in ISO 8601 format status_change_time: type: string description: The date and time of the last status change of the project in ISO 8601 format archive_time: type: string nullable: true description: The date and time the project was archived in ISO 8601 format. If not archived, this field is null. custom_fields: type: object additionalProperties: true description: 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: type: object description: The additional data of the list properties: next_cursor: type: string description: 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: success: true data: - id: 3 title: Project description: Description status: open board_id: 1 phase_id: 1 owner_id: 1 start_date: '2026-04-15' end_date: '2026-04-23' deal_ids: - 1 person_ids: - 1 org_ids: - 1 label_ids: - 1 health_status: null add_time: '2026-04-14T10:45:20.852Z' update_time: '2026-04-14T10:45:20.852Z' status_change_time: '2026-04-14T10:45:20.852Z' archive_time: null custom_fields: {} additional_data: next_cursor: eyJmaWVsZCI6ImlkIiwiZmllbGRWYWx1ZSI6Nywic29ydERpcmVjdGlvbiI6ImFzYyIsImlkIjo3fQ /projects/search: get: summary: Search projects description: Searches all projects by title, description, notes and/or custom fields. This endpoint is a wrapper of /v1/itemSearch with a narrower OAuth scope. Found projects can be filtered by person ID or organization ID. x-token-cost: 20 operationId: searchProjects tags: - Projects security: - api_key: [] - oauth2: - projects:read - projects:full - search:read parameters: - in: query name: term required: true schema: type: string description: The search term to look for. Minimum 2 characters (or 1 if using `exact_match`). Please note that the search term has to be URL encoded. - in: query name: fields schema: type: string enum: - custom_fields - notes - title - description description: '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: `address`, `varchar`, `text`, `varchar_auto`, `double`, `monetary` and `phone`. Read more about searching by custom fields here.' - in: query name: exact_match schema: type: boolean description: When enabled, only full exact matches against the given term are returned. It is not case sensitive. - in: query name: person_id schema: type: integer description: Will filter projects by the provided person ID - in: query name: organization_id schema: type: integer description: Will filter projects by the provided organization ID - in: query name: limit description: 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. schema: type: integer example: 100 - in: query name: cursor required: false schema: type: string description: For pagination, the marker (an opaque string value) representing the first item on the next page responses: '200': description: Success content: application/json: schema: title: GetProjectSearchResponse allOf: - title: baseResponse type: object properties: success: type: boolean description: If the response is successful or not - type: object properties: data: type: object properties: items: type: array description: The array of found projects items: type: object properties: result_score: type: number description: Search result relevancy item: type: object properties: id: type: integer description: The ID of the project type: type: string description: The type of the item title: type: string description: The title of the project status: type: string nullable: true description: The status of the project owner: type: object properties: id: type: integer nullable: true description: The ID of the owner of the project board_id: type: integer nullable: true description: The ID of the board the project belongs to phase: type: object nullable: true properties: id: type: integer description: The ID of the phase name: type: string description: The name of the phase person: type: object nullable: true properties: id: type: integer description: The ID of the person the project is associated with name: type: string nullable: true description: The name of the person the project is associated with organization: type: object nullable: true properties: id: type: integer description: The ID of the organization the project is associated with name: type: string nullable: true description: The name of the organization the project is associated with address: type: string nullable: true description: The address of the organization the project is associated with deal: type: object nullable: true properties: id: type: integer description: The ID of the deal the project is associated with title: type: string nullable: true description: The title of the deal the project is associated with deal_count: type: integer description: The number of deals associated with the project description: type: string nullable: true description: The description of the project end_date: type: string nullable: true description: The end date of the project custom_fields: type: array items: type: string description: Custom fields notes: type: array description: An array of notes items: type: string additional_data: description: The additional data of the list type: object properties: next_cursor: type: string description: 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: success: true data: items: - result_score: 0.8412 item: id: 1 type: project title: Office renovation status: open owner: id: 1 board_id: 2 phase: id: 3 name: In progress person: id: 10 name: Jane Doe organization: id: 5 name: Pipedrive address: null deal: id: 42 title: Renovation deal deal_count: 1 description: Full office renovation project end_date: '2025-12-31' custom_fields: [] notes: [] additional_data: next_cursor: eyJmaWVsZCI6ImlkIiwiZmllbGRWYWx1ZSI6Nywic29ydERpcmVjdGlvbiI6ImFzYyIsImlkIjo3fQ /projects/{id}/permittedUsers: get: summary: List permitted users description: Lists the users permitted to access a project. x-token-cost: 5 operationId: getProjectUsers tags: - Projects security: - api_key: [] - oauth2: - projects:read - projects:full parameters: - in: path name: id description: The ID of the project required: true schema: type: integer responses: '200': description: Success content: application/json: schema: title: GetProjectPermittedUsersResponse type: object properties: success: type: boolean description: If the response is successful or not data: type: array items: type: integer description: The list of permitted user IDs example: success: true data: - 123 - 456 /projects/{id}/changelog: get: summary: List updates about project field values description: Lists updates about field values of a project. x-token-cost: 10 operationId: getProjectChangelog tags: - Projects security: - api_key: [] - oauth2: - projects:read - projects:full parameters: - in: path name: id description: The ID of the project required: true schema: type: integer - in: query name: limit description: 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. schema: type: integer example: 100 - in: query name: cursor required: false schema: type: string description: For pagination, the marker (an opaque string value) representing the first item on the next page responses: '200': description: Get changelog of a project content: application/json: schema: title: GetProjectChangelogResponse type: object properties: success: type: boolean example: true data: type: array items: type: object properties: change_source: type: string nullable: true description: The source of change, for example 'app', 'mobile', 'api', etc. change_source_user_agent: type: string nullable: true description: The user agent from which the change was made time: type: string description: The date and time of the change in ISO 8601 format new_values: type: object additionalProperties: true description: A map of field keys to their new values after the change old_values: type: object additionalProperties: true description: A map of field keys to their previous values before the change actor_user_id: type: integer description: The ID of the user who made the change additional_data: description: The additional data of the list type: object properties: next_cursor: type: string description: 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: success: true data: - change_source: app change_source_user_agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.0.0 Safari/537.36 time: '2024-02-12T09:14:35.000Z' new_values: title: New Project Title old_values: title: Old Project Title actor_user_id: 26 - change_source: api change_source_user_agent: null time: '2024-02-12T09:10:12.000Z' new_values: status: open board_id: 2 old_values: status: closed board_id: 1 actor_user_id: 42 additional_data: next_cursor: aWQ6NTQ0 components: securitySchemes: basic_authentication: type: http scheme: basic description: Base 64 encoded string containing the `client_id` and `client_secret` values. The header value should be `Basic `. api_key: type: apiKey name: x-api-token in: header oauth2: type: oauth2 description: For more information, see https://pipedrive.readme.io/docs/marketplace-oauth-authorization flows: authorizationCode: authorizationUrl: https://oauth.pipedrive.com/oauth/authorize tokenUrl: https://oauth.pipedrive.com/oauth/token refreshUrl: https://oauth.pipedrive.com/oauth/token scopes: base: Read settings of the authorized user and currencies in an account deals:read: Read most of the data about deals and related entities - deal fields, products, followers, participants; all notes, files, filters, pipelines, stages, and statistics. Does not include access to activities (except the last and next activity related to a deal) deals:full: Create, read, update and delete deals, its participants and followers; all files, notes, and filters. It also includes read access to deal fields, pipelines, stages, and statistics. Does not include access to activities (except the last and next activity related to a deal) mail:read: Read mail threads and messages mail:full: Read, update and delete mail threads. Also grants read access to mail messages activities:read: Read activities, its fields and types; all files and filters activities:full: Create, read, update and delete activities and all files and filters. Also includes read access to activity fields and types contacts:read: Read the data about persons and organizations, their related fields and followers; also all notes, files, filters contacts:full: Create, read, update and delete persons and organizations and their followers; all notes, files, filters. Also grants read access to contacts-related fields products:read: Read products, its fields, files, followers and products connected to a deal products:full: Create, read, update and delete products and its fields; add products to deals deal-fields:full: Create, read, update and delete deal fields product-fields:full: Create, read, update and delete product fields contact-fields:full: Create, read, update and delete person and organization fields projects:read: Read projects and its fields, tasks and project templates projects:full: Create, read, update and delete projects and its fields; add projects templates and project related tasks users:read: Read data about users (people with access to a Pipedrive account), their permissions, roles and followers recents:read: Read all recent changes occurred in an account. Includes data about activities, activity types, deals, files, filters, notes, persons, organizations, pipelines, stages, products and users search:read: Search across the account for deals, persons, organizations, files and products, and see details about the returned results admin: Allows to do many things that an administrator can do in a Pipedrive company account - create, read, update and delete pipelines and its stages; deal, person and organization fields; activity types; users and permissions, etc. It also allows the app to create webhooks and fetch and delete webhooks that are created by the app leads:read: Read data about leads and lead labels leads:full: Create, read, update and delete leads and lead labels phone-integration: Enables advanced call integration features like logging call duration and other metadata, and play call recordings inside Pipedrive goals:read: Read data on all goals goals:full: Create, read, update and delete goals video-calls: Allows application to register as a video call integration provider and create conference links messengers-integration: Allows application to register as a messengers integration provider and allows them to deliver incoming messages and their statuses