AgencyZoom Thread API
The Thread API from AgencyZoom — 10 operation(s) for thread.
The Thread API from AgencyZoom — 10 operation(s) for thread.
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-thread-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 Thread 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: Thread
paths:
/v1/api/email-thread/list:
post:
tags:
- Thread
summary: Search Email Threads
operationId: searchEmailThreadList
requestBody:
description: notification search request
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/SearchThreadRequest'
responses:
'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'
'200':
description: Retrieved successfully
content:
application/json:
schema:
$ref: '#/components/schemas/SearchThreadResponse'
security:
- bearer: []
/v1/api/email-thread/unread-thread:
post:
tags:
- Thread
summary: Unread Thread
operationId: unreadEmailThread
requestBody:
description: unread thread request
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/UnreadThreadRequest'
responses:
'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'
'200':
description: Retrieved successfully
content:
application/json:
schema:
$ref: '#/components/schemas/UnreadThreadResponse'
security:
- bearer: []
/v1/api/email-thread/delete-thread:
post:
tags:
- Thread
summary: Delete Thread
operationId: deleteEmailThread
requestBody:
description: unread thread request
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/DeleteThreadRequest'
responses:
'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'
'200':
description: delete successfully
content:
application/json:
schema:
$ref: '#/components/schemas/GenericSuccessResponse'
security:
- bearer: []
/v1/api/email-thread/email-thread-detail:
post:
tags:
- Thread
summary: Get thread details
operationId: searchEmailThreadDetail
requestBody:
description: messages search request
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/SearchMessageRequest'
responses:
'200':
description: Thread Detailed Information
content:
application/json:
schema:
$ref: '#/components/schemas/SearchMessageResponse'
'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/email-thread/delete-message:
post:
tags:
- Thread
summary: Delete Message
operationId: deleteMessage
requestBody:
description: delete message request
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/DeleteMessageRequest'
responses:
'200':
description: Thread Detailed Information
content:
application/json:
schema:
$ref: '#/components/schemas/SearchMessageResponse'
'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/text-thread/list:
post:
tags:
- Thread
summary: Search SMS Threads
operationId: searchTextThreadList
requestBody:
description: notification search request
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/SearchSmsThreadRequest'
responses:
'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'
'200':
description: Retrieved successfully
content:
application/json:
schema:
$ref: '#/components/schemas/SearchThreadResponse'
security:
- bearer: []
/v1/api/text-thread/producer:
get:
tags:
- Thread
summary: Get a list of producer
operationId: producers
responses:
'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'
'200':
description: Retrieved successfully
content:
application/json:
schema:
$ref: '#/components/schemas/ProducersResponse'
security:
- bearer: []
/v1/api/text-thread/unread-thread:
post:
tags:
- Thread
summary: Unread Thread
operationId: unreadThread
requestBody:
description: unread thread request
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/UnreadThreadRequest'
responses:
'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'
'200':
description: Retrieved successfully
content:
application/json:
schema:
$ref: '#/components/schemas/UnreadThreadResponse'
security:
- bearer: []
/v1/api/text-thread/delete-thread:
post:
tags:
- Thread
summary: Delete Thread
operationId: deleteThread
requestBody:
description: unread thread request
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/DeleteThreadRequest'
responses:
'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'
'200':
description: delete successfully
content:
application/json:
schema:
$ref: '#/components/schemas/GenericSuccessResponse'
security:
- bearer: []
/v1/api/text-thread/text-thread-detail:
post:
tags:
- Thread
summary: Text Detail Thread
operationId: searchTextThreadDetail
requestBody:
description: messages search request
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/SearchMessageRequest'
responses:
'200':
description: Thread Detailed Information
content:
application/json:
schema:
$ref: '#/components/schemas/SearchMessageResponse'
'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:
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
ProducerInfo:
description: Text conversation producer model
properties:
id:
description: The agent id
type: string
name:
description: full name
type: string
type: object
UnreadThreadRequest:
description: Unread Thread
properties:
threadId:
description: thread id
type: string
markUnread:
description: mark unread
type: boolean
type: object
SearchThreadRequest:
description: Search Thread
allOf:
- $ref: '#/components/schemas/BaseSearchRequest'
- properties:
searchTerm:
description: search term
type: string
from:
description: from filter
type: string
status:
description: status
type: integer
lastDateUTC:
description: last date
type: string
accountId:
description: accountId
type: string
isIncludeEmptyThreads:
description: whether include empty threads
type: boolean
unreadOnly:
description: whether unread only
type: boolean
SearchSmsThreadRequest:
description: Search SMS Thread
allOf:
- $ref: '#/components/schemas/SearchThreadRequest'
- properties:
agentSelect:
description: agent filter
type: string
FieldError:
description: Form field error model.
properties:
field:
description: The field ID
type: string
error:
description: The error message
type: string
type: object
EmailAddressInfo:
description: Email address info
properties:
email:
description: address
type: string
name:
description: name
type: string
type: object
DeleteThreadRequest:
description: Delete Thread
allOf:
- $ref: '#/components/schemas/BaseSearchRequest'
- properties:
threadId:
description: thread id
type: string
FileInfo:
description: file info model
properties:
id:
description: The file id
type: integer
filename:
description: The file name
type: string
size:
description: The file size
type: integer
url:
description: The file url
type: string
vendorId:
description: The vendor id of file(Nylas)
type: string
docFileName:
description: The file name
type: string
docMediaType:
description: The file media type
type: string
type: object
BaseSearchRequest:
properties:
pageSize:
description: 'Page size: number of results returned. The maximum is 500'
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
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
MessageInfo:
description: message info model
properties:
id:
description: The message id
type: integer
messageId:
description: The synced message id
type: string
threadId:
description: The synced message thread id
type: string
contactId:
description: customerReferral id or household id
type: integer
contactName:
description: customerReferral name or household name
type: string
agentFirstname:
description: agent first name
type: string
agentLastname:
description: agent last name
type: string
outbound:
description: 'Lead status (0: receive, 1: send'
type: boolean
enum:
- 0
- 1
messageDate:
description: message created date
type: string
example: '2019-01-01'
messageDateUTC:
description: message local date
type: string
example: '2019-01-01'
status:
description: customerEmail tracking status
type: string
subject:
description: message subject
type: string
example: <body>hello</body>
snippet:
description: message snippet
type: string
example: <body>hello 1</body>
contactType:
description: contact type
type: string
example: customer, lead, contact
body:
description: message body
type: string
example: <body>hello</body>
senderName:
description: az or other email provider
type: string
contactEmail:
description: contact name
type: string
contactPhone:
description: contact phone
type: string
providerSmsMessageSid:
description: The providerSmsMessageSid
type: varchar
files:
description: A list of files
type: array
items:
$ref: '#/components/schemas/FileInfo'
imageFiles:
description: A list of image files
type: array
items:
$ref: '#/components/schemas/FileInfo'
froms:
description: A list of email addresses
type: array
items:
$ref: '#/components/schemas/EmailAddressInfo'
tos:
description: A list of email addresses
type: array
items:
$ref: '#/components/schemas/EmailAddressInfo'
cc:
description: A list of email cc addresses
type: array
items:
$ref: '#/components/schemas/EmailAddressInfo'
bcc:
description: A list of email bcc addresses
type: array
items:
$ref: '#/components/schemas/EmailAddressInfo'
downloadAllAttUrl:
description: Download all attachments url
type: string
type: object
ThreadInfo:
description: ThreadInfo model
properties:
id:
description: The thread ID
type: string
subject:
description: subject
type: string
snippet:
description: snippet
type: string
lastMessageDate:
description: lastMessageDate
type: string
lastMessageDateUTC:
description: lastMessageDateUTC
type: string
contactId:
description: contact Id
type: integer
contactName:
description: contact Name
type: string
contactEmail:
description: contact email
type: string
contactType:
description: contact type
type: string
unread:
description: unread
type: boolean
phoneNumber:
description: phonenumber
type: string
type: object
ProducersResponse:
description: conversation producer response model
properties:
producers:
description: The producer list
type: array
items:
$ref: '#/components/schemas/ProducerInfo'
type: object
SearchMessageRequest:
description: search messages list model
allOf:
- $ref: '#/components/schemas/BaseSearchRequest'
- properties:
threadId:
description: thread id
type: string
searchTerm:
description: search param
type: string
status:
description: 'Lead status (0: all status, 2: all except trash, 100: trash,)'
type: integer
enum:
- 0
- 2
- 100
lastDateUTC:
description: message last date by UTC
type: string
example: '2019-01-01'
DeleteMessageRequest:
description: Delete Message
allOf:
- $ref: '#/components/schemas/BaseSearchRequest'
- properties:
messageId:
description: message id
type: string
SearchThreadResponse:
description: Search thread response model
properties:
threadInfo:
description: The thread list
type: array
items:
$ref: '#/components/schemas/ThreadInfo'
type: object
UnreadThreadResponse:
description: Unread thread response model
properties:
threadId:
description: thread id
type: string
success:
description: mark unread result
type: boolean
type: object
SearchMessageResponse:
description: messages list model
properties:
messageInfo:
description: The message list
type: array
items:
$ref: '#/components/schemas/MessageInfo'
messageCount:
description: The messages count of a thread
type: integer
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)