openapi: 3.0.1 info: title: Pipedrive API v1 Activities Tasks 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: Tasks description: 'Tasks represent actions that need to be completed and must be associated with a project. Tasks have an optional due date, can be assigned to a user and can have subtasks. ' paths: /tasks: get: summary: Get all tasks description: Returns all tasks. This is a cursor-paginated endpoint. For more information, please refer to our documentation on pagination. x-token-cost: 20 operationId: getTasks tags: - Tasks security: - api_key: [] - oauth2: - projects:read - projects:full parameters: - 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 - in: query name: limit description: For pagination, the limit of entries to be returned. If not provided, up to 500 items will be returned. schema: type: integer example: 500 - in: query name: assignee_id required: false schema: type: integer description: If supplied, only tasks that are assigned to this user are returned - in: query name: project_id required: false schema: type: integer description: If supplied, only tasks that are assigned to this project are returned - in: query name: parent_task_id required: false schema: type: integer description: If `null` is supplied then only parent tasks are returned. If integer is supplied then only subtasks of a specific task are returned. By default all tasks are returned. - in: query name: done required: false schema: title: numberBoolean type: number enum: - 0 - 1 description: Whether the task is done or not. `0` = Not done, `1` = Done. If not omitted then returns both done and not done tasks. 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 post: summary: Add a task description: Adds a new task. x-token-cost: 10 operationId: addTask tags: - Tasks security: - api_key: [] - oauth2: - projects:full requestBody: content: application/json: schema: title: addTaskRequest allOf: - title: requiredPostProjectParameters type: object required: - title - project_id properties: title: description: The title of the task type: string project_id: description: The ID of a project 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 responses: '201': description: Created task. content: application/json: schema: title: AddTaskResponse type: object properties: success: type: boolean data: 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: type: object nullable: true example: null 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: null /tasks/{id}: get: summary: Get details of a task description: Returns the details of a specific task. x-token-cost: 2 operationId: getTask tags: - Tasks security: - api_key: [] - oauth2: - projects:read - projects:full parameters: - in: path name: id description: The ID of the task required: true schema: type: integer responses: '200': description: Get a task. content: application/json: schema: title: GetTaskResponse type: object properties: success: type: boolean data: 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: type: object nullable: true example: null 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: null put: summary: Update a task description: Updates a task. x-token-cost: 10 operationId: updateTask tags: - Tasks security: - api_key: [] - oauth2: - projects:full parameters: - in: path name: id description: The ID of the task required: true schema: type: integer requestBody: content: application/json: schema: 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 responses: '200': description: Updated task. content: application/json: schema: title: UpdateTaskResponse type: object properties: success: type: boolean data: 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: type: object nullable: true example: null 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: null delete: summary: Delete a task description: Marks a task as deleted. If the task has subtasks then those will also be deleted. x-token-cost: 6 operationId: deleteTask tags: - Tasks security: - api_key: [] - oauth2: - projects:full parameters: - in: path name: id description: The ID of the task required: true schema: type: integer responses: '200': description: Deleted task. content: application/json: schema: title: DeleteTaskResponse type: object properties: success: type: boolean data: title: deleteTask 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 task that was deleted additional_data: type: object nullable: true example: null example: success: true data: id: 1 additional_data: null patch: summary: Update a task description: Updates a task. x-token-cost: 5 operationId: updateTask tags: - Tasks security: - api_key: [] - oauth2: - projects:full parameters: - in: path name: id description: The ID of the task required: true schema: type: integer requestBody: content: application/json: schema: title: updateTaskRequest type: object properties: title: type: string minLength: 1 maxLength: 255 description: The title of the task project_id: type: integer description: The ID of the project this task is associated with parent_task_id: type: integer nullable: true description: The ID of the parent task. Cannot be the ID of a task that is already a subtask. description: type: string nullable: true description: The description of the task done: type: integer enum: - 0 - 1 description: Whether the task is done or not. `0` = Not done, `1` = Done. milestone: type: integer enum: - 0 - 1 description: Whether the task is a milestone or not. `0` = Not a milestone, `1` = Milestone. due_date: type: string format: date nullable: true description: 'The due date of the task. Format: YYYY-MM-DD.' start_date: type: string format: date nullable: true description: 'The start date of the task. Format: YYYY-MM-DD.' assignee_id: type: integer nullable: true description: The ID of the user assigned to the task. When set, the `assignee_ids` field will be overwritten with this value. assignee_ids: type: array items: type: integer maxItems: 10 description: The IDs of users assigned to the task. When set, the `assignee_id` field will be set to the first value in this array, or `null` if empty. priority: type: integer minimum: 0 nullable: true description: The priority of the task responses: '200': description: Updated task. content: application/json: schema: title: UpdateTaskResponse type: object properties: success: type: boolean description: If the response is successful or not data: type: object properties: id: type: integer description: The ID of the task title: type: string minLength: 1 maxLength: 255 description: The title of the task creator_id: type: integer description: The ID of the user who created the task description: type: string nullable: true description: The description of the task project_id: type: integer description: The ID of the project this task is associated with is_done: type: boolean description: Whether the task is done or not. is_milestone: type: boolean description: Whether the task is a milestone or not. due_date: type: string format: date nullable: true description: 'The due date of the task. Format: YYYY-MM-DD.' start_date: type: string format: date nullable: true description: 'The start date of the task. Format: YYYY-MM-DD.' parent_task_id: type: integer nullable: true description: The ID of the parent task. If `null`, the task is a root-level task. assignee_ids: type: array items: type: integer description: The IDs of users assigned to the task priority: type: integer minimum: 0 nullable: true description: The priority of the task add_time: type: string description: The creation date and time of the task in ISO 8601 format update_time: type: string description: The update date and time of the task in ISO 8601 format marked_as_done_time: type: string nullable: true description: The date and time the task was marked as done in ISO 8601 format additional_data: type: object nullable: true example: null example: success: true data: id: 1 title: Task 1 creator_id: 2 description: Task description project_id: 1 is_done: false is_milestone: false due_date: '2026-10-11' start_date: '2026-09-01' parent_task_id: null assignee_ids: - 2 - 3 priority: null add_time: '2026-09-14T08:14:40.000Z' update_time: '2026-09-14T08:14:40.000Z' marked_as_done_time: null additional_data: null 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