openapi: 3.1.0 info: title: Keap Task API description: Keap Public API Documentation termsOfService: https://www.thryv.com/terms-of-use contact: name: Keap url: https://developer.keap.com/get-support email: api.keap@thryv.com license: name: Apache 2.0 url: https://www.apache.org/licenses/LICENSE-2.0 version: v2 servers: - url: https://api.infusionsoft.com/crm tags: - name: Task paths: /rest/v2/tasks: get: tags: - Task summary: List Tasks description: Retrieves a list of tasks based on the provided filter. Tasks which are not assigned to a User may be queried with user_id==UNASSIGNED. operationId: listTasks parameters: - name: filter in: query description: 'Filter to apply, allowed fields are: - (String) `contact_id` - (String) `has_due_date` - (String) `is_completed` - (String) `user_id` - (String) `opportunity_id` - (String) `task_ids` - (String) `priority` — one of `CRITICAL`, `ESSENTIAL`, `NONESSENTIAL` - (String) `since_time` - (String) `until_time` - (String) `id` — supports `==`, `>`, `<`, `>=`, `<=` - (String) `title` — supports prefix wildcard (`title==Foo*`) Operators must be URL-encoded (`==` → `%3D%3D`, `>` → `%3E`, `<` → `%3C`). For the filters listed above, here are some examples: - `filter=contact_id%3D%3D123` - `filter=has_due_date%3D%3Dtrue` - `filter=is_completed%3D%3Dtrue` - `filter=user_id%3D%3D321` - `filter=opportunity_id%3D%3D321` - `filter=task_ids%3D%3D1,2,3` - `filter=priority%3D%3DCRITICAL` - `filter=since_time%3D%3D2025-04-16T20:33:02.321Z;` - `filter=until_time%3D%3D2025-08-16T20:33:02.321Z;` - `filter=id%3E5` (id > 5) - `filter=id%3C%3D100` (id <= 100) - `filter=title%3D%3DFollow%2A` (title starts with "Follow") **Custom fields:** tasks may also be filtered by any custom field defined on the Task record, referenced by its field name (e.g. `filter=cf_priority%3D%3D10`). Both indexed and non-indexed custom fields are filterable. Operators must be URL-encoded, same as the standard fields above. The supported operator and value depend on the field''s data type: - Text-like fields (Text, Text Area, Name, Email, Website, Phone, Social Security Number) and choice fields with text options (Dropdown, Radio, State) — equals (`==`) and prefix wildcard (e.g. `cf_company%3D%3DAcme%2A`) - Numeric fields (Whole Number, Decimal, Currency, Percent, Year, Month, Day of Week, User) — equals and comparison (`==`, `>`, `<`, `>=`, `<=`) - Date and Date/Time fields — equals and comparison; the value must be a full ISO-8601 date-time with milliseconds and a timezone offset (e.g. `cf_renewDate%3C%3D2026-01-01T00:00:00.000Z`). Date-only values such as `2026-01-01` are rejected - Yes/No fields — equals only, value `0` (No) or `1` (Yes) - Drilldown fields — equals only, integer value - Multi-select fields (List Box, User List Box) — equals only, matched as a contains search over the stored selections (e.g. `cf_tags%3D%3Dred`) A custom field that does not exist, an operator unsupported for the field''s type, or a value that does not match the field''s type returns `400 Bad Request`. ' required: false schema: type: string - name: page_token in: query description: Page token required: false schema: type: string - name: order_by in: query description: 'Attribute and direction to order items. One of the following fields: - `id` - `create_time` - `due_time` - `update_time` One of the following directions: - `asc` - `desc`' required: false schema: type: string - name: page_size in: query description: Total number of items to return per page required: false schema: type: integer format: int32 maximum: 1000 minimum: 0 example: 0 - name: fields in: query description: 'Comma-delimited list of optional Task properties to include in the response. Allowed values: custom_fields' required: false schema: type: string enum: - custom_fields responses: '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: Not Found content: application/json: schema: $ref: '#/components/schemas/Error' '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/Error' '409': description: Conflict content: application/json: schema: $ref: '#/components/schemas/Error' '500': description: Internal Server Error content: application/json: schema: $ref: '#/components/schemas/Error' '501': description: Method Not Implemented content: application/json: schema: $ref: '#/components/schemas/Error' '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/Error' '405': description: Method Not Allowed content: application/json: schema: $ref: '#/components/schemas/Error' '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ListTasksResponse' post: tags: - Task summary: Create a Task description: Creates a new task as the authenticated user. operationId: createTask parameters: - name: fields in: query description: 'Comma-delimited list of optional Task properties to include in the response. Allowed values: custom_fields' required: false schema: type: string enum: - custom_fields requestBody: content: application/json: schema: $ref: '#/components/schemas/CreateTaskRequest' required: true responses: '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: Not Found content: application/json: schema: $ref: '#/components/schemas/Error' '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/Error' '409': description: Conflict content: application/json: schema: $ref: '#/components/schemas/Error' '500': description: Internal Server Error content: application/json: schema: $ref: '#/components/schemas/Error' '501': description: Method Not Implemented content: application/json: schema: $ref: '#/components/schemas/Error' '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/Error' '405': description: Method Not Allowed content: application/json: schema: $ref: '#/components/schemas/Error' '201': description: Created content: application/json: schema: $ref: '#/components/schemas/Task' /rest/v2/tasks/model/customFields: post: tags: - Task summary: Create a Custom Field description: 'Creates a custom field of the specified type and options to the Task object
Note: Custom Fields for Tasks, Classic Appointments and Notes are combined.' operationId: createTaskCustomField requestBody: content: application/json: schema: $ref: '#/components/schemas/CreateCustomFieldRequest' required: true responses: '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: Not Found content: application/json: schema: $ref: '#/components/schemas/Error' '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/Error' '409': description: Conflict content: application/json: schema: $ref: '#/components/schemas/Error' '500': description: Internal Server Error content: application/json: schema: $ref: '#/components/schemas/Error' '501': description: Method Not Implemented content: application/json: schema: $ref: '#/components/schemas/Error' '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/Error' '405': description: Method Not Allowed content: application/json: schema: $ref: '#/components/schemas/Error' '201': description: Created content: application/json: schema: $ref: '#/components/schemas/CreateCustomFieldResponse' /rest/v2/tasks/model/customFields/tabs: get: tags: - Task summary: List Task Custom Field Tabs description: 'Retrieves a list of custom field tabs for the Task record type.
Note: Custom Field Tabs for Tasks, Classic Appointments and Notes are combined.' operationId: listTaskCustomFieldTabs responses: '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: Not Found content: application/json: schema: $ref: '#/components/schemas/Error' '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/Error' '409': description: Conflict content: application/json: schema: $ref: '#/components/schemas/Error' '500': description: Internal Server Error content: application/json: schema: $ref: '#/components/schemas/Error' '501': description: Method Not Implemented content: application/json: schema: $ref: '#/components/schemas/Error' '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/Error' '405': description: Method Not Allowed content: application/json: schema: $ref: '#/components/schemas/Error' '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ListCustomFieldTabsResponse' post: tags: - Task summary: Create a Task Custom Field Tab description: 'Creates a new custom field tab for the Task record type.
Note: Custom Field Tabs for Tasks, Classic Appointments and Notes are combined.' operationId: createTaskCustomFieldTab requestBody: content: application/json: schema: $ref: '#/components/schemas/CreateCustomFieldTabRequest' required: true responses: '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: Not Found content: application/json: schema: $ref: '#/components/schemas/Error' '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/Error' '409': description: Conflict content: application/json: schema: $ref: '#/components/schemas/Error' '500': description: Internal Server Error content: application/json: schema: $ref: '#/components/schemas/Error' '501': description: Method Not Implemented content: application/json: schema: $ref: '#/components/schemas/Error' '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/Error' '405': description: Method Not Allowed content: application/json: schema: $ref: '#/components/schemas/Error' '201': description: Created content: application/json: schema: $ref: '#/components/schemas/CustomFieldTab' /rest/v2/tasks/model/customFields/groups: get: tags: - Task summary: List Task Custom Field Groups description: 'Retrieves a list of custom field groups for the Task record type. Optionally filter by tab_id to scope to a specific tab.
Note: Custom Field Groups for Tasks, Classic Appointments and Notes are combined.' operationId: listTaskCustomFieldGroups parameters: - name: tab_id in: query description: Optional tab id to scope groups to a single tab required: false schema: type: string responses: '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: Not Found content: application/json: schema: $ref: '#/components/schemas/Error' '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/Error' '409': description: Conflict content: application/json: schema: $ref: '#/components/schemas/Error' '500': description: Internal Server Error content: application/json: schema: $ref: '#/components/schemas/Error' '501': description: Method Not Implemented content: application/json: schema: $ref: '#/components/schemas/Error' '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/Error' '405': description: Method Not Allowed content: application/json: schema: $ref: '#/components/schemas/Error' '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ListCustomFieldGroupsResponse' post: tags: - Task summary: Create a Task Custom Field Group description: 'Creates a new custom field group for the Task record type. If `tab_id` is omitted, the group is added to the default ''Custom Fields'' tab.
Note: Custom Field Groups for Tasks, Classic Appointments and Notes are combined.' operationId: createTaskCustomFieldGroup requestBody: content: application/json: schema: $ref: '#/components/schemas/CreateCustomFieldGroupRequest' required: true responses: '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: Not Found content: application/json: schema: $ref: '#/components/schemas/Error' '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/Error' '409': description: Conflict content: application/json: schema: $ref: '#/components/schemas/Error' '500': description: Internal Server Error content: application/json: schema: $ref: '#/components/schemas/Error' '501': description: Method Not Implemented content: application/json: schema: $ref: '#/components/schemas/Error' '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/Error' '405': description: Method Not Allowed content: application/json: schema: $ref: '#/components/schemas/Error' '201': description: Created content: application/json: schema: $ref: '#/components/schemas/CustomFieldGroup' /rest/v2/tasks/{task_id}: get: tags: - Task summary: Retrieve a Task description: Retrieves a single task operationId: getTask parameters: - name: task_id in: path required: true schema: type: string - name: fields in: query description: 'Comma-delimited list of optional Task properties to include in the response. Allowed values: custom_fields' required: false schema: type: string enum: - custom_fields responses: '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: Not Found content: application/json: schema: $ref: '#/components/schemas/Error' '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/Error' '409': description: Conflict content: application/json: schema: $ref: '#/components/schemas/Error' '500': description: Internal Server Error content: application/json: schema: $ref: '#/components/schemas/Error' '501': description: Method Not Implemented content: application/json: schema: $ref: '#/components/schemas/Error' '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/Error' '405': description: Method Not Allowed content: application/json: schema: $ref: '#/components/schemas/Error' '200': description: OK content: application/json: schema: $ref: '#/components/schemas/Task' delete: tags: - Task summary: Delete a Task description: Deletes a single task operationId: deleteTask parameters: - name: task_id in: path required: true schema: type: string responses: '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: Not Found content: application/json: schema: $ref: '#/components/schemas/Error' '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/Error' '409': description: Conflict content: application/json: schema: $ref: '#/components/schemas/Error' '500': description: Internal Server Error content: application/json: schema: $ref: '#/components/schemas/Error' '501': description: Method Not Implemented content: application/json: schema: $ref: '#/components/schemas/Error' '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/Error' '405': description: Method Not Allowed content: application/json: schema: $ref: '#/components/schemas/Error' '204': description: No Content patch: tags: - Task summary: Update a Task description: Updates a task with only the values provided in the request. operationId: updateTask parameters: - name: task_id in: path required: true schema: type: string - name: update_mask in: query description: An optional list of properties to be updated. If set, only the provided properties will be updated and others will be skipped. required: false schema: type: array items: type: string enum: - id - title - description - type - priority - completion_time - due_time - remind_time_mins - assigned_to_user_id - last_updated_by_user_id - contact_id - opportunity_id - accepted - completed - custom_fields uniqueItems: true - name: fields in: query description: 'Comma-delimited list of optional Task properties to include in the response. Allowed values: custom_fields' required: false schema: type: string enum: - custom_fields requestBody: content: application/json: schema: $ref: '#/components/schemas/CreateUpdateTaskRequest' required: true responses: '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: Not Found content: application/json: schema: $ref: '#/components/schemas/Error' '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/Error' '409': description: Conflict content: application/json: schema: $ref: '#/components/schemas/Error' '500': description: Internal Server Error content: application/json: schema: $ref: '#/components/schemas/Error' '501': description: Method Not Implemented content: application/json: schema: $ref: '#/components/schemas/Error' '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/Error' '405': description: Method Not Allowed content: application/json: schema: $ref: '#/components/schemas/Error' '200': description: OK content: application/json: schema: $ref: '#/components/schemas/UpdateTaskResponse' /rest/v2/tasks/model/customFields/{custom_field_id}: delete: tags: - Task summary: Delete a Custom Field description: 'Deletes a Custom Field from the Task object
Note: Custom Fields for Tasks, Classic Appointments and Notes are combined.' operationId: deleteTaskCustomField parameters: - name: custom_field_id in: path required: true schema: type: string responses: '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: Not Found content: application/json: schema: $ref: '#/components/schemas/Error' '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/Error' '409': description: Conflict content: application/json: schema: $ref: '#/components/schemas/Error' '500': description: Internal Server Error content: application/json: schema: $ref: '#/components/schemas/Error' '501': description: Method Not Implemented content: application/json: schema: $ref: '#/components/schemas/Error' '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/Error' '405': description: Method Not Allowed content: application/json: schema: $ref: '#/components/schemas/Error' '204': description: No Content patch: tags: - Task summary: Update a Task's Custom Field description: 'Updates a custom field of the specified type and options to the Task object.
Note: Custom Fields for Tasks, Classic Appointments and Notes are combined.' operationId: updateTaskCustomField parameters: - name: custom_field_id in: path required: true schema: type: string - name: update_mask in: query description: An optional list of properties to be updated. If set, only the provided properties will be updated and others will be skipped. required: false schema: type: array items: type: string enum: - group_id - label - options uniqueItems: true requestBody: content: application/json: schema: $ref: '#/components/schemas/UpdateCustomFieldMetaDataRequest' required: true responses: '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: Not Found content: application/json: schema: $ref: '#/components/schemas/Error' '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/Error' '409': description: Conflict content: application/json: schema: $ref: '#/components/schemas/Error' '500': description: Internal Server Error content: application/json: schema: $ref: '#/components/schemas/Error' '501': description: Method Not Implemented content: application/json: schema: $ref: '#/components/schemas/Error' '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/Error' '405': description: Method Not Allowed content: application/json: schema: $ref: '#/components/schemas/Error' '200': description: OK content: application/json: schema: $ref: '#/components/schemas/CustomFieldMetaData' /rest/v2/tasks/model/customFields/tabs/{tab_id}: get: tags: - Task summary: Retrieve a Task Custom Field Tab description: 'Retrieves a single custom field tab by id for the Task record type.
Note: Custom Field Tabs for Tasks, Classic Appointments and Notes are combined.' operationId: getTaskCustomFieldTab parameters: - name: tab_id in: path required: true schema: type: string responses: '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: Not Found content: application/json: schema: $ref: '#/components/schemas/Error' '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/Error' '409': description: Conflict content: application/json: schema: $ref: '#/components/schemas/Error' '500': description: Internal Server Error content: application/json: schema: $ref: '#/components/schemas/Error' '501': description: Method Not Implemented content: application/json: schema: $ref: '#/components/schemas/Error' '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/Error' '405': description: Method Not Allowed content: application/json: schema: $ref: '#/components/schemas/Error' '200': description: OK content: application/json: schema: $ref: '#/components/schemas/CustomFieldTab' delete: tags: - Task summary: Delete a Task Custom Field Tab description: 'Deletes a custom field tab. Returns 409 Conflict if the tab still contains groups.
Note: Custom Field Tabs for Tasks, Classic Appointments and Notes are combined.' operationId: deleteTaskCustomFieldTab parameters: - name: tab_id in: path required: true schema: type: string responses: '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: Not Found content: application/json: schema: $ref: '#/components/schemas/Error' '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/Error' '409': description: Conflict content: application/json: schema: $ref: '#/components/schemas/Error' '500': description: Internal Server Error content: application/json: schema: $ref: '#/components/schemas/Error' '501': description: Method Not Implemented content: application/json: schema: $ref: '#/components/schemas/Error' '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/Error' '405': description: Method Not Allowed content: application/json: schema: $ref: '#/components/schemas/Error' '204': description: No Content patch: tags: - Task summary: Update a Task Custom Field Tab description: 'Updates an existing custom field tab. Only fields listed in `update_mask` are applied.
Note: Custom Field Tabs for Tasks, Classic Appointments and Notes are combined.' operationId: updateTaskCustomFieldTab parameters: - name: tab_id in: path required: true schema: type: string - name: update_mask in: query description: Comma-separated list of fields to update required: true schema: type: array items: type: string enum: - name - order uniqueItems: true requestBody: content: application/json: schema: $ref: '#/components/schemas/UpdateCustomFieldTabRequest' required: true responses: '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: Not Found content: application/json: schema: $ref: '#/components/schemas/Error' '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/Error' '409': description: Conflict content: application/json: schema: $ref: '#/components/schemas/Error' '500': description: Internal Server Error content: application/json: schema: $ref: '#/components/schemas/Error' '501': description: Method Not Implemented content: application/json: schema: $ref: '#/components/schemas/Error' '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/Error' '405': description: Method Not Allowed content: application/json: schema: $ref: '#/components/schemas/Error' '200': description: OK content: application/json: schema: $ref: '#/components/schemas/CustomFieldTab' /rest/v2/tasks/model/customFields/groups/{group_id}: get: tags: - Task summary: Retrieve a Task Custom Field Group description: 'Retrieves a single custom field group by id for the Task record type.
Note: Custom Field Groups for Tasks, Classic Appointments and Notes are combined.' operationId: getTaskCustomFieldGroup parameters: - name: group_id in: path required: true schema: type: string responses: '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: Not Found content: application/json: schema: $ref: '#/components/schemas/Error' '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/Error' '409': description: Conflict content: application/json: schema: $ref: '#/components/schemas/Error' '500': description: Internal Server Error content: application/json: schema: $ref: '#/components/schemas/Error' '501': description: Method Not Implemented content: application/json: schema: $ref: '#/components/schemas/Error' '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/Error' '405': description: Method Not Allowed content: application/json: schema: $ref: '#/components/schemas/Error' '200': description: OK content: application/json: schema: $ref: '#/components/schemas/CustomFieldGroup' delete: tags: - Task summary: Delete a Task Custom Field Group description: 'Deletes a custom field group. Returns 409 Conflict if the group still contains custom fields.
Note: Custom Field Groups for Tasks, Classic Appointments and Notes are combined.' operationId: deleteTaskCustomFieldGroup parameters: - name: group_id in: path required: true schema: type: string responses: '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: Not Found content: application/json: schema: $ref: '#/components/schemas/Error' '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/Error' '409': description: Conflict content: application/json: schema: $ref: '#/components/schemas/Error' '500': description: Internal Server Error content: application/json: schema: $ref: '#/components/schemas/Error' '501': description: Method Not Implemented content: application/json: schema: $ref: '#/components/schemas/Error' '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/Error' '405': description: Method Not Allowed content: application/json: schema: $ref: '#/components/schemas/Error' '204': description: No Content patch: tags: - Task summary: Update a Task Custom Field Group description: 'Updates an existing custom field group. Only fields listed in `update_mask` are applied.
Note: Custom Field Groups for Tasks, Classic Appointments and Notes are combined.' operationId: updateTaskCustomFieldGroup parameters: - name: group_id in: path required: true schema: type: string - name: update_mask in: query description: Comma-separated list of fields to update required: true schema: type: array items: type: string enum: - name - tab_id - order uniqueItems: true requestBody: content: application/json: schema: $ref: '#/components/schemas/UpdateCustomFieldGroupRequest' required: true responses: '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: Not Found content: application/json: schema: $ref: '#/components/schemas/Error' '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/Error' '409': description: Conflict content: application/json: schema: $ref: '#/components/schemas/Error' '500': description: Internal Server Error content: application/json: schema: $ref: '#/components/schemas/Error' '501': description: Method Not Implemented content: application/json: schema: $ref: '#/components/schemas/Error' '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/Error' '405': description: Method Not Allowed content: application/json: schema: $ref: '#/components/schemas/Error' '200': description: OK content: application/json: schema: $ref: '#/components/schemas/CustomFieldGroup' /rest/v2/tasks/model: get: tags: - Task summary: Retrieve Task Model description: 'Get the custom fields for the Task object
Note: Custom Fields for Tasks, Classic Appointments and Notes are combined.' operationId: retrieveTaskModel responses: '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: Not Found content: application/json: schema: $ref: '#/components/schemas/Error' '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/Error' '409': description: Conflict content: application/json: schema: $ref: '#/components/schemas/Error' '500': description: Internal Server Error content: application/json: schema: $ref: '#/components/schemas/Error' '501': description: Method Not Implemented content: application/json: schema: $ref: '#/components/schemas/Error' '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/Error' '405': description: Method Not Allowed content: application/json: schema: $ref: '#/components/schemas/Error' '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ObjectModel' components: schemas: CreateCustomFieldGroupRequest: type: object properties: name: type: string tab_id: type: string CreateCustomFieldOptionRequest: type: object properties: label: type: string CreateCustomFieldRequest: type: object properties: label: type: string options: type: array items: $ref: '#/components/schemas/CreateCustomFieldOptionRequest' field_type: type: string enum: - CURRENCY - DATE - DATE_TIME - DAY_OF_WEEK - DECIMAL_NUMBER - DRILLDOWN - DROPDOWN - EMAIL - LIST_BOX - MONTH - NAME - PERCENT - PHONE_NUMBER - RADIO - SOCIAL_SECURITY_NUMBER - STATE - TEXT - TEXT_AREA - USER - USER_LIST_BOX - WEBSITE - WHOLE_NUMBER - YEAR - YES_NO group_id: type: string description: An optional tab group to place the field under in the interface. If not specified, will default to the 'Custom Fields' tab. user_group_id: type: string description: An optional user group to choose from when selecting values for User or UserListBox fields. required: - field_type - label CreateCustomFieldResponse: type: object properties: custom_field: $ref: '#/components/schemas/CustomFieldMetaData' CreateCustomFieldTabRequest: type: object properties: name: type: string CreateTaskRequest: type: object description: task properties: title: type: string description: Task title example: Follow up on proposal description: type: string description: Task description example: Review client feedback type: type: string description: Task type example: CALL priority: type: string description: Task priority enum: - CRITICAL - ESSENTIAL - NONESSENTIAL example: ESSENTIAL completed: type: boolean description: Whether task is completed example: false completion_time: type: string description: Completion timestamp (ISO-8601) example: '2024-03-20T14:00:00Z' due_time: type: string description: Due date/time (ISO-8601) example: '2024-03-18T17:00:00Z' remind_time_mins: type: integer format: int32 description: Value in minutes before start_date to show pop-up reminder. enum: - '5' - '10' - '15' - '30' - '60' - '120' - '240' - '480' - '1440' - '2880' example: 30 assigned_to_user_id: type: string description: Assigned user ID example: 456 contact_id: type: string description: Associated contact ID example: 1001 opportunity_id: type: string description: Associated opportunity ID example: 553 accepted: type: boolean description: Whether the task has been accepted. example: true custom_fields: type: array description: Custom field values for the task. An empty array resets all custom fields to their defaults. example: - id: '1' content: Red items: $ref: '#/components/schemas/CustomFieldValueObject' required: - assigned_to_user_id CreateUpdateTaskRequest: type: object description: task properties: title: type: string description: Task title example: Follow up on proposal description: type: string description: Task description example: Review client feedback type: type: string description: Task type example: CALL priority: type: string description: Task priority enum: - CRITICAL - ESSENTIAL - NONESSENTIAL example: ESSENTIAL completed: type: boolean description: Whether task is completed example: false completion_time: type: string description: Completion timestamp (ISO-8601) example: '2024-03-20T14:00:00Z' due_time: type: string description: Due date/time (ISO-8601) example: '2024-03-18T17:00:00Z' remind_time_mins: type: integer format: int32 description: Value in minutes before start_date to show pop-up reminder. enum: - '5' - '10' - '15' - '30' - '60' - '120' - '240' - '480' - '1440' - '2880' example: 30 assigned_to_user_id: type: string description: Assigned user ID example: 456 contact_id: type: string description: Associated contact ID example: 1001 opportunity_id: type: string description: Associated opportunity ID example: 77 accepted: type: boolean description: Whether the task has been accepted. Defaults to false example: true custom_fields: type: array description: Custom field values for the task. An empty array resets all custom fields to their defaults. example: - id: '1' content: Red items: $ref: '#/components/schemas/CustomFieldValueObject' CustomFieldGroup: type: object properties: id: type: string name: type: string order: type: integer format: int32 tab_id: type: string record_type: type: string enum: - CONTACT - REFERRAL_PARTNER - OPPORTUNITY - TASK_NOTE_APPOINTMENT - COMPANY - ORDER - SUBSCRIPTION CustomFieldMetaData: type: object description: Metadata describing a custom field, including its type and options properties: id: type: string description: The unique identifier of the custom field example: 123 label: type: string description: The display label of the custom field example: Favorite Color options: type: array description: The list of available options for select/radio/multiselect/drilldown field types items: $ref: '#/components/schemas/CustomFieldOption' record_type: type: string description: The entity type this custom field belongs to (e.g. CONTACT, COMPANY) enum: - CONTACT - REFERRAL_PARTNER - OPPORTUNITY - TASK_NOTE_APPOINTMENT - COMPANY - ORDER - SUBSCRIPTION field_type: type: string description: The data type of the custom field (e.g. Text, Number, Date, Select) enum: - CURRENCY - DATE - DATE_TIME - DAY_OF_WEEK - DECIMAL_NUMBER - DRILLDOWN - DROPDOWN - EMAIL - LIST_BOX - MONTH - NAME - PERCENT - PHONE_NUMBER - RADIO - SOCIAL_SECURITY_NUMBER - STATE - TEXT - TEXT_AREA - USER - USER_LIST_BOX - WEBSITE - WHOLE_NUMBER - YEAR - YES_NO default_value: type: string description: The default value for this custom field, if any group_id: type: string description: The ID of the group this custom field belongs to example: 45 group_name: type: string description: The name of the group this custom field belongs to example: Personal Info field_name: type: string description: The database column name for this custom field. Use this value when filtering contacts (e.g. for field_name 'firstName1', filter with 'firstName1==John'). example: firstName1 CustomFieldOption: type: object properties: id: type: string label: type: string CustomFieldTab: type: object properties: id: type: string description: The unique identifier of the custom field tab example: 123 name: type: string description: The name of the custom field tab example: Personal Info order: type: integer format: int32 description: The display order of the tab example: 1 record_type: type: string description: The record type this tab belongs to (e.g., CONTACT, COMPANY, OPPORTUNITY, REFERRAL_PARTNER, ORDER, SUBSCRIPTION, TASK_NOTE_APPOINTMENT) enum: - CONTACT - REFERRAL_PARTNER - OPPORTUNITY - TASK_NOTE_APPOINTMENT - COMPANY - ORDER - SUBSCRIPTION example: CONTACT CustomFieldValueObject: type: object properties: id: type: string content: description: The value of the custom field. Text custom field values have a maximum length of 65535 characters. Error: type: object properties: code: type: integer format: int32 message: type: string status: type: string details: type: array items: $ref: '#/components/schemas/ErrorDetails' ErrorDetails: type: object properties: domain: type: string resource: type: string ListCustomFieldGroupsResponse: type: object properties: groups: type: array items: $ref: '#/components/schemas/CustomFieldGroup' ListCustomFieldTabsResponse: type: object properties: tabs: type: array items: $ref: '#/components/schemas/CustomFieldTab' ListTasksResponse: type: object properties: tasks: type: array items: $ref: '#/components/schemas/Task' next_page_token: type: string ObjectModel: type: object properties: custom_fields: type: array items: $ref: '#/components/schemas/CustomFieldMetaData' optional_properties: type: array description: These fields are not transmitted by default on this model, but can be requested by specifying them in a comma-separated list in the optional_properties query parameter. items: type: string uniqueItems: true Task: type: object properties: id: type: string description: Task ID example: 123 title: type: string description: Task title example: Follow up on proposal description: type: string description: Task description. Legacy XML-RPC name for this field was `CreationNotes` example: Review and respond to client feedback. type: type: string description: Task type example: CALL priority: type: string description: Task priority enum: - CRITICAL - ESSENTIAL - NONESSENTIAL example: CRITICAL completed: type: boolean description: Whether task is completed example: false create_time: type: string description: Creation timestamp (ISO-8601) example: '2024-01-10T08:00:00Z' modification_time: type: string description: Last modification timestamp (ISO-8601) example: '2024-03-15T10:30:00Z' completion_time: type: string description: Completion timestamp (ISO-8601) example: '2024-03-20T14:00:00Z' due_time: type: string description: Due date/time (ISO-8601) example: '2024-03-18T17:00:00Z' remind_time_mins: type: integer format: int32 description: Reminder minutes before due. enum: - '5' - '10' - '15' - '30' - '60' - '120' - '240' - '480' - '1440' - '2880' example: 30 assigned_to_user_id: type: string description: Assigned user ID example: 456 created_by_user_id: type: string description: Creator user ID example: 789 last_updated_by_user_id: type: string description: User who last updated the task. example: 77 contact_id: type: string description: Associated contact ID example: 1001 opportunity_id: type: string description: Associated opportunity ID example: 321 accepted: type: boolean description: Whether the task has been accepted example: true custom_fields: type: array description: Custom field values for the task example: - id: '1' content: Red - id: '2' content: Preferred items: $ref: '#/components/schemas/CustomFieldValueObject' UpdateCustomFieldGroupRequest: type: object properties: name: type: string order: type: integer format: int32 tab_id: type: string UpdateCustomFieldMetaDataRequest: type: object properties: label: type: string options: type: array items: $ref: '#/components/schemas/CustomFieldOption' group_id: type: string required: - group_id UpdateCustomFieldTabRequest: type: object properties: name: type: string order: type: integer format: int32 UpdateTaskResponse: type: object properties: id: type: string description: Task ID example: 123 title: type: string description: Task title example: Follow up on proposal description: type: string description: Task description. Legacy XML-RPC name for this field was `CreationNotes` example: Review and respond to client feedback. type: type: string description: Task type example: CALL priority: type: string description: Task priority enum: - CRITICAL - ESSENTIAL - NONESSENTIAL example: CRITICAL completed: type: boolean description: Whether task is completed example: false create_time: type: string description: Creation timestamp (ISO-8601) example: '2024-01-10T08:00:00Z' modification_time: type: string description: Last modification timestamp (ISO-8601) example: '2024-03-15T10:30:00Z' completion_time: type: string description: Completion timestamp (ISO-8601) example: '2024-03-20T14:00:00Z' due_time: type: string description: Due date/time (ISO-8601) example: '2024-03-18T17:00:00Z' remind_time_mins: type: integer format: int32 description: Reminder minutes before due. enum: - '5' - '10' - '15' - '30' - '60' - '120' - '240' - '480' - '1440' - '2880' example: 30 assigned_to_user_id: type: string description: Assigned user ID example: 456 created_by_user_id: type: string description: Creator user ID example: 789 last_updated_by_user_id: type: string description: User who last updated the task. example: 77 contact_id: type: string description: Associated contact ID example: 1001 opportunity_id: type: string description: Associated opportunity ID example: 321 accepted: type: boolean description: Whether the task has been accepted example: true custom_fields: type: array description: Custom field values for the task example: - id: '1' content: Red - id: '2' content: Preferred items: $ref: '#/components/schemas/CustomFieldValueObject' securitySchemes: oauth2: type: oauth2 flows: authorizationCode: authorizationUrl: https://accounts.infusionsoft.com/app/oauth/authorize tokenUrl: https://api.infusionsoft.com/token scopes: {} security: - oauth2: []