Keap Email API
Keap Email API — 10 operations across 8 paths on the Keap REST v2 contract, read from Keap's own published OpenAPI 3.1 document.
Keap Email API — 10 operations across 8 paths on the Keap REST v2 contract, read from Keap's own published OpenAPI 3.1 document.
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/keap-email-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: Keap Email API
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
termsOfService: https://www.thryv.com/terms-of-use
version: '1.0'
description: 'Operations tagged Email across 2 of this provider''s published API definitions: keap-v1-openapi.json, keap-v2-openapi.json. Each path carries the servers of the definition it was published in.'
servers:
- url: https://api.infusionsoft.com/crm
security:
- oauth2: []
tags:
- name: Email
description: Emails-Endpoint
paths:
/rest/v1/emails/unsync:
post:
tags:
- Email
summary: Un-sync a batch of Email Records
description: Un-syncs a batch of email records
operationId: deleteEmails
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/SetOfIds'
required: true
responses:
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/ModelAndView'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/ModelAndView'
'500':
description: Internal Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/ModelAndView'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/ModelAndView'
'409':
description: Conflict
content:
application/json:
schema:
$ref: '#/components/schemas/ModelAndView'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/ModelAndView'
'501':
description: Not Implemented
content:
application/json:
schema:
$ref: '#/components/schemas/ModelAndView'
'405':
description: Method Not Allowed
content:
application/json:
schema:
$ref: '#/components/schemas/ModelAndView'
'406':
description: Not Acceptable
content:
application/json:
schema:
$ref: '#/components/schemas/ModelAndView'
'412':
description: Precondition Failed
content:
application/json:
schema:
$ref: '#/components/schemas/ModelAndView'
'200':
description: OK
content:
application/json:
schema:
type: object
additionalProperties:
type: string
servers:
- url: https://api.infusionsoft.com/crm
/rest/v1/emails/sync:
post:
tags:
- Email
summary: Create a set of Email Records
description: Create a set of records of emails sent to contacts, maximum 1000 per transaction.
operationId: createEmails
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/EmailSentCreateListRequest'
required: true
responses:
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/ModelAndView'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/ModelAndView'
'500':
description: Internal Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/ModelAndView'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/ModelAndView'
'409':
description: Conflict
content:
application/json:
schema:
$ref: '#/components/schemas/ModelAndView'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/ModelAndView'
'501':
description: Not Implemented
content:
application/json:
schema:
$ref: '#/components/schemas/ModelAndView'
'405':
description: Method Not Allowed
content:
application/json:
schema:
$ref: '#/components/schemas/ModelAndView'
'406':
description: Not Acceptable
content:
application/json:
schema:
$ref: '#/components/schemas/ModelAndView'
'412':
description: Precondition Failed
content:
application/json:
schema:
$ref: '#/components/schemas/ModelAndView'
'201':
description: Created
content:
application/json:
schema:
$ref: '#/components/schemas/EmailSentCreateListResponse'
servers:
- url: https://api.infusionsoft.com/crm
/rest/v1/emails/queue:
post:
tags:
- Email
summary: Send an Email
description: Send an Email to a list of Contacts
operationId: sendEmail
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/EmailSendRequest'
required: true
responses:
'400':
description: 'Bad Request: invalid email parameters or from address domain is not authenticated'
content:
application/json:
schema:
$ref: '#/components/schemas/ModelAndView'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/ModelAndView'
'500':
description: Internal Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/ModelAndView'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/ModelAndView'
'409':
description: Conflict
content:
application/json:
schema:
$ref: '#/components/schemas/ModelAndView'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/ModelAndView'
'501':
description: Not Implemented
content:
application/json:
schema:
$ref: '#/components/schemas/ModelAndView'
'405':
description: Method Not Allowed
content:
application/json:
schema:
$ref: '#/components/schemas/ModelAndView'
'406':
description: Not Acceptable
content:
application/json:
schema:
$ref: '#/components/schemas/ModelAndView'
'412':
description: Precondition Failed
content:
application/json:
schema:
$ref: '#/components/schemas/ModelAndView'
'202':
description: Accepted
servers:
- url: https://api.infusionsoft.com/crm
/rest/v1/emails:
get:
tags:
- Email
summary: List Emails
description: 'Retrieve a list of emails that have been sent
Keap is currently investigating an issue with degraded performance
of this endpoint with very large (millions of records) record sets'
operationId: listEmails
parameters:
- name: emailSentQueryCommand
in: query
required: true
schema:
$ref: '#/components/schemas/EmailSentQueryCommand'
responses:
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/ModelAndView'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/ModelAndView'
'500':
description: Internal Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/ModelAndView'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/ModelAndView'
'409':
description: Conflict
content:
application/json:
schema:
$ref: '#/components/schemas/ModelAndView'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/ModelAndView'
'501':
description: Not Implemented
content:
application/json:
schema:
$ref: '#/components/schemas/ModelAndView'
'405':
description: Method Not Allowed
content:
application/json:
schema:
$ref: '#/components/schemas/ModelAndView'
'406':
description: Not Acceptable
content:
application/json:
schema:
$ref: '#/components/schemas/ModelAndView'
'412':
description: Precondition Failed
content:
application/json:
schema:
$ref: '#/components/schemas/ModelAndView'
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/EmailSentQueryResultList'
post:
tags:
- Email
summary: Create an Email Record
description: Create a record of an email sent to a contact
operationId: createEmail
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/EmailSentCreate'
required: true
responses:
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/ModelAndView'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/ModelAndView'
'500':
description: Internal Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/ModelAndView'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/ModelAndView'
'409':
description: Conflict
content:
application/json:
schema:
$ref: '#/components/schemas/ModelAndView'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/ModelAndView'
'501':
description: Not Implemented
content:
application/json:
schema:
$ref: '#/components/schemas/ModelAndView'
'405':
description: Method Not Allowed
content:
application/json:
schema:
$ref: '#/components/schemas/ModelAndView'
'406':
description: Not Acceptable
content:
application/json:
schema:
$ref: '#/components/schemas/ModelAndView'
'412':
description: Precondition Failed
content:
application/json:
schema:
$ref: '#/components/schemas/ModelAndView'
'201':
description: Created
content:
application/json:
schema:
$ref: '#/components/schemas/EmailSentCreate'
servers:
- url: https://api.infusionsoft.com/crm
/rest/v1/emails/{id}:
get:
tags:
- Email
summary: Retrieve an Email
description: Retrieves a single email that has been sent
operationId: getEmail
parameters:
- name: id
in: path
required: true
schema:
type: integer
format: int64
responses:
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/ModelAndView'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/ModelAndView'
'500':
description: Internal Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/ModelAndView'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/ModelAndView'
'409':
description: Conflict
content:
application/json:
schema:
$ref: '#/components/schemas/ModelAndView'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/ModelAndView'
'501':
description: Not Implemented
content:
application/json:
schema:
$ref: '#/components/schemas/ModelAndView'
'405':
description: Method Not Allowed
content:
application/json:
schema:
$ref: '#/components/schemas/ModelAndView'
'406':
description: Not Acceptable
content:
application/json:
schema:
$ref: '#/components/schemas/ModelAndView'
'412':
description: Precondition Failed
content:
application/json:
schema:
$ref: '#/components/schemas/ModelAndView'
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/EmailSentQueryResultWithContent'
delete:
tags:
- Email
summary: Delete an Email Record
description: Delete a specific email record
operationId: deleteEmail
parameters:
- name: id
in: path
required: true
schema:
type: integer
format: int64
responses:
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/ModelAndView'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/ModelAndView'
'500':
description: Internal Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/ModelAndView'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/ModelAndView'
'409':
description: Conflict
content:
application/json:
schema:
$ref: '#/components/schemas/ModelAndView'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/ModelAndView'
'501':
description: Not Implemented
content:
application/json:
schema:
$ref: '#/components/schemas/ModelAndView'
'405':
description: Method Not Allowed
content:
application/json:
schema:
$ref: '#/components/schemas/ModelAndView'
'406':
description: Not Acceptable
content:
application/json:
schema:
$ref: '#/components/schemas/ModelAndView'
'412':
description: Precondition Failed
content:
application/json:
schema:
$ref: '#/components/schemas/ModelAndView'
'204':
description: No Content
servers:
- url: https://api.infusionsoft.com/crm
/rest/v2/emails:
get:
tags:
- Email
summary: List Emails
description: Retrieves a list of emails that have been sent
operationId: listEmails
parameters:
- name: filter
in: query
description: 'Filter to apply, allowed fields are:
- (String) contact_id
- (String) email
- (String) start_created_time
- (String) end_created_time
'
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:
- `created_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
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/ListEmailsSentResponse'
post:
tags:
- Email
summary: Create an Email Record
description: Creates a Record of an Email sent to a Contact
operationId: createEmail
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/CreateEmailSentRequest'
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/EmailSentWithContent'
servers:
- url: https://api.infusionsoft.com/crm
/rest/v2/emails:send:
post:
tags:
- Email
summary: Send an Email
description: Sends an Email to a list of Contacts
operationId: sendEmail
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/EmailSendRequest_2'
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'
'202':
description: Accepted
servers:
- url: https://api.infusionsoft.com/crm
/rest/v2/emails:batchRemove:
post:
tags:
- Email
summary: Remove a set of Email Records
description: Removes a set of Email Records
operationId: deleteEmails
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/DeleteEmailsRequest'
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/DeleteEmailsResponse'
servers:
- url: https://api.infusionsoft.com/crm
/rest/v2/emails:batchAdd:
post:
tags:
- Email
summary: Create a set of Email Records
description: Creates a set of Records of Emails sent to Contacts, maximum 1000 per transaction.
operationId: createEmails
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/CreateEmailsSentRequest'
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/EmailsSentList'
servers:
- url: https://api.infusionsoft.com/crm
/rest/v2/emails/templates:send:
post:
tags:
- Email
summary: Send an email based on a template
description: Send an email based on a template
operationId: sendEmailTemplate
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/EmailSendTemplateRequest'
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'
'202':
description: Accepted
servers:
- url: https://api.infusionsoft.com/crm
/rest/v2/emails/{id}:
get:
tags:
- Email
summary: Retrieve an Email
description: Retrieves a single Email that has been sent
operationId: getEmail
parameters:
- name: 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/EmailSentWithContent'
delete:
tags:
- Email
summary: Delete an Email Record
description: Deletes a specific Email Record
operationId: deleteEmail
parameters:
- name: 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:
# --- truncated at 32 KB (66 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/keap/refs/heads/main/openapi/keap-email-api-openapi.yml