AgencyZoom Task Management API
The Task Management API from AgencyZoom — 6 operation(s) for task management.
The Task Management API from AgencyZoom — 6 operation(s) for task management.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/agencyzoom:agencyzoom-task-management-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: Agencyzoom Task Management API
description: 'Agencyzoom API enables third party applications to integrate with
Agencyzoom to manage lead, customer, policy, and tasks. The management operations
include actions such as creation, retrieval, updating, and deletion.
Currently, Agencyzoom has a rate limit of **120** calls per minute during the day and night as of Aug 17, 2026.
# Getting Started
Using authentication endpoints as described below, the integrator can function on hehalf
of the logged in user. The login endpoint returns a JWT token. Subsequent calls need
pass the token as HTTP header bearer token.
```
Authorization: Bearer
```
Please note, the permissions afforded to the caller are the same as those for the logged
in user. Therefore, the user name used for the integration has to be the agency owner
if the integrated applications would like to access all the functionalities.
# Versioning
Agencyzoom API is backward compatible. Currently there is only one version.
# Change Logs
- ### 2023.11.07
- POST v1/api/leads/list. Fixed bug in sort by `lastActivityDate`. Added 2 additional filters: lastActivityEarliestDate,lastActivityLatestDate
- Increased rate limite for nightly API calls
- POST v1/api/leads/{leadId}/quotes. Fixed bug of missing `Quote ID` response payload
- ### 2023.11.21
- Increased rate limite for daily API calls to 30 per minute
- POST /v1/api/leads/{leadId}/notes. Fixed bug in processing line breaks
- ### 2024.01.10
- New API for contact management - Batch Create Contacts POST `v1/api/contact/batch-create`
- Added the following new fields for PUT `v1/api/customers/{customerId}`
`contactFirstname` `contactLastname` `contactMiddlename` `numberOfEmployees` `annualRevenue` `totalPayroll` `tagNamesbirthday` `csrId` `agentId` `customFields`
- ### 2024.01.18
- New API for Customer management - Get AMS policies for a specific customer `GET: v1/api/customers/{customerId}/ams-policies`
- New API for Customer management - Get policies for a specific customer `GET: v1/api/customers/{customerId}/policies`
- New API for Customer management - Update tags for a specific policy `POST: v1/api/policies/update-tags`
- ### 2024.01.18
- POST `/v1/api/leads/create`. Edit request params `pipelineId` `stageId` as required.
- ### 2024.03.10
- Added two new fields `licenseNumber` `stateLicensed` for POST `v1/api/opportunities/{opportunityId}/driver` GET `v1/api/opportunities/drivers/{driverId}` PUT `v1/api/opportunities/drivers/{driverId}`
- ### 2026.08.7
- Increased rate limite for daily API calls to 90 per minute
- ### 2026.08.17
- Increased rate limite for daily API calls to 120 per minute
Happy coding!'
termsOfService: https://agencyzoom.com/tos/
contact:
email: support@agencyzoom.com
license:
name: Propriety license
version: 1.0.0
servers:
- url: https://api.agencyzoom.com
description: Mobile test server
tags:
- name: Task Management
paths:
/v1/api/tasks/list:
post:
tags:
- Task Management
summary: Search tasks
operationId: searchTasks
requestBody:
description: Task search request
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/TaskSearchRequest'
responses:
'200':
description: Retrieved successfully
content:
application/json:
schema:
$ref: '#/components/schemas/TaskSearchResponse'
'400':
description: Invalid request parameter(s)
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'500':
description: Internal processing error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
security:
- bearer: []
/v1/api/tasks:
post:
tags:
- Task Management
summary: Create Task
operationId: createTask
requestBody:
description: Task create request
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/TaskCreateRequest'
responses:
'200':
description: A confirmation message
content:
application/json:
schema:
$ref: '#/components/schemas/GenericSuccessResponse'
'400':
description: Invalid request parameter(s)
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'500':
description: Internal processing error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
security:
- bearer: []
/v1/api/tasks/{taskId}:
get:
tags:
- Task Management
summary: Get the task details
operationId: getTask
parameters:
- name: taskId
in: path
description: ID of the task
required: true
schema:
type: integer
format: int64
responses:
'200':
description: Task Detailed Information
content:
application/json:
schema:
$ref: '#/components/schemas/Task'
'400':
description: Invalid request parameter(s)
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'500':
description: Internal processing error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
security:
- bearer: []
put:
tags:
- Task Management
summary: Update task
operationId: updateTask
parameters:
- name: taskId
in: path
description: ID of the task
required: true
schema:
type: integer
format: int64
requestBody:
description: Lead data request
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/TaskUpdateRequest'
responses:
'200':
description: A confirmation message
content:
application/json:
schema:
$ref: '#/components/schemas/GenericSuccessResponse'
'400':
description: Invalid request parameter(s)
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'500':
description: Internal processing error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
security:
- bearer: []
delete:
tags:
- Task Management
summary: Delete a task
operationId: deleteTask
parameters:
- name: taskId
in: path
description: ID of the task
required: true
schema:
type: integer
format: int64
responses:
'200':
description: Confirmation message
content:
application/json:
schema:
$ref: '#/components/schemas/GenericSuccessResponse'
'400':
description: Invalid request parameter(s)
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'500':
description: Internal processing error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
security:
- bearer: []
/v1/api/tasks/{taskId}/completed:
put:
tags:
- Task Management
summary: Complete task
operationId: completeTask
parameters:
- name: taskId
in: path
description: ID of the task
required: true
schema:
type: integer
format: int64
responses:
'200':
description: A confirmation message
content:
application/json:
schema:
$ref: '#/components/schemas/GenericSuccessResponse'
'400':
description: Invalid request parameter(s)
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'500':
description: Internal processing error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
security:
- bearer: []
/v1/api/tasks/batch-delete:
post:
tags:
- Task Management
summary: Batch Delete Task
operationId: batchDeleteTask
requestBody:
description: Task create request
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/TaskBatchDeleteRequest'
responses:
'200':
description: A confirmation message
content:
application/json:
schema:
$ref: '#/components/schemas/GenericSuccessResponse'
'400':
description: Invalid request parameter(s)
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'500':
description: Internal processing error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
security:
- bearer: []
/v1/api/tasks/{taskId}/reopened:
put:
tags:
- Task Management
summary: Reopen a task
operationId: reopenTask
parameters:
- name: taskId
in: path
description: ID of the task
required: true
schema:
type: integer
format: int64
requestBody:
description: Task create request
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/TaskReopenRequest'
responses:
'200':
description: A confirmation message
content:
application/json:
schema:
$ref: '#/components/schemas/GenericSuccessResponse'
'400':
description: Invalid request parameter(s)
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'500':
description: Internal processing error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
security:
- bearer: []
components:
schemas:
BaseSearchResponse:
properties:
totalCount:
type: integer
example: 100
page:
type: integer
example: 1
pageSize:
type: integer
example: 50
type: object
TaskSearchResponse:
description: Task search response model
allOf:
- $ref: '#/components/schemas/BaseSearchResponse'
- properties:
tasks:
description: A list of tasks
type: array
items:
$ref: '#/components/schemas/Task'
outstandingCount:
type: integer
example: 100
TaskCreateRequest:
description: Task creation request model
properties:
title:
description: Task title
type: string
example: Example task
dueDatetime:
description: Task due date time
type: string
example: '2020-12-12 00:00:00'
comments:
description: Task notes
type: string
example: This is example comments
assigneeId:
description: Assignee ID
type: integer
example: 6818
lifeProfessionalId:
description: ID of Life & Health Professional
type: integer
contactEmail:
description: Customer/lead email. The email will be used to find the matching lead or customer
type: string
customerId:
description: Customer ID linked the task
type: integer
leadId:
description: Lead ID linked the task
type: integer
example: 240
duration:
description: Duration in minutes
type: integer
example: 60
type:
description: Task type. (todo - To Do, email - Send Email, call - Make Call, meeting - Schedule Meeting)
type: string
enum:
- todo
- email
- call
- meeting
invitees:
description: List of email of invitees
type: array
items:
type: string
example: example@email.com
timeSpecific:
description: If true, then time is applicable for due date
type: boolean
type: object
ErrorResponse:
description: Error response model.
properties:
error:
description: The error message
type: string
fieldErrors:
description: The field errors
type: array
items:
$ref: '#/components/schemas/FieldError'
type: object
GenericSuccessResponse:
description: A generic succss response.
properties:
message:
description: An optional confirmation message
type: string
id:
description: A Model's id
type: integer
result:
description: 'whether success, 1: true, 0: false'
type: boolean
type: object
FieldError:
description: Form field error model.
properties:
field:
description: The field ID
type: string
error:
description: The error message
type: string
type: object
BaseSearchRequestNoComments: {}
TaskUpdateRequest:
description: Task creation request model
allOf:
- $ref: '#/components/schemas/TaskCreateRequest'
- properties:
status:
description: 'Task status. 0: open, 1: completed'
type: integer
enum:
- 0
- 1
User:
description: Agencyzoom user model
properties:
id:
description: The User ID
type: integer
example: 6818
firstname:
description: First name
type: string
example: Michael
lastname:
description: Last name
type: string
example: Jordan
isEmployee:
description: Is the user an employee or an affiliate
type: boolean
default: true
example: true
type: object
Task:
description: Task response model
properties:
id:
description: Task ID
type: integer
example: 2483
title:
description: Task title
type: string
example: Meeting
status:
description: 'Status: 0 - Open, 1 - Done, 2 - Cancelled '
type: integer
enum:
- 0
- 1
- 2
example: 0
createDate:
description: Task Creation Date
type: string
example: '2020-12-12'
dueDate:
description: Task Due Date
type: string
example: '2020-12-12'
taskDateTime:
description: Task Date Time
type: string
example: '2020-12-12'
duration:
description: Duration in minutes
type: integer
example: 60
completeDate:
description: Task Compeletion Date
type: string
example: '2020-12-12'
assignedDate:
description: Task Assigned Date
type: string
example: '2020-12-12'
comments:
description: Task notes
type: string
example: Discuss important things
assignees:
description: List of users who are assigned to the task
type: array
items:
$ref: '#/components/schemas/User'
completedBy:
description: The ID of user who completed this task
type: integer
example: '2020-12-12'
isCompletedByEmployee:
description: Was the task completed by employee or affilate
type: boolean
example: true
timeSpecific:
description: Is the task time specific?
type: boolean
example: true
customerName:
description: The customer name
type: string
example: Michael Jordan
customerId:
description: The customer's ID
type: integer
example: 123
customerType:
description: The type of customer
type: string
enum:
- customer
- lead
example: customer
type: object
TaskReopenRequest:
properties:
comments:
description: The comments
type: string
example: Example comments
type: object
TaskSearchRequest:
description: Task search request model
allOf:
- $ref: '#/components/schemas/BaseSearchRequestNoComments'
- properties:
pageSize:
description: 'Page size: number of results returned. The maximum is 200'
type: integer
default: 20
example: 20
page:
description: The page being returned. Start with 0
type: integer
default: 0
example: 0
sort:
description: Field name used for sorting
type: string
example: id
order:
type: string
enum:
- asc
- desc
location:
description: Location ID
type: string
startDate:
description: Start date of task created
type: string
example: '2019-01-01'
endDate:
description: End date of task created
type: string
example: '2019-01-01'
type:
description: Task type
type: string
enum:
- sales
- onboarding
assigneeId:
description: Assignee ID
type: integer
lifeProfessionalId:
description: ID of Life & Health Professional
type: integer
status:
description: Task status. 0 - open, 1 - completed
type: integer
enum:
- 0
- 1
period:
description: Predefined period
type: string
enum:
- past-due-rotting
- past-due
- remainder-week
- next-week
- today
leadSourceCategoryId:
description: LeadSource category id
type: integer
leadSourceId:
description: LeadSource id
type: integer
TaskBatchDeleteRequest:
description: Task batch delete request model
properties:
taskIds:
description: List of task ID's to be deleted
type: array
items:
type: integer
example: 2834
type: object
securitySchemes:
bearer:
type: http
bearerFormat: JWT
scheme: bearer
x-provenance:
method: harvested
publisher: AgencyZoom
source: https://app.agencyzoom.com/openapi/agencyzoom.yaml
note: split by refine-openapis from the provider's own published document, verified by fetch (openapi/_original/*.fetch.json);
stamped by stamp-openapi-provenance.py (roadmap#793)