openapi: 3.1.0
info:
title: API Explorer
description: The entire API V2 documentation is interactive and can be tested here. To the right side of every endpoint
you will see a box with an example request. You can click on the "Try it" button to send a request to the server right
from the docs. You will need to provide an API key by clicking the `ApiKeyAuth_token` blue text.
version: 2.0.0
components:
securitySchemes:
ApiKeyAuth:
type: http
scheme: bearer
schemas:
Account:
title: Account
description: An email account that can be used to send campaigns
x-tags:
- Schemas
- Account
type: object
properties:
email:
type: string
description: Email address of the account
format: email
example: user@example.com
timestamp_created:
type: string
description: Timestamp when the account was created
readOnly: true
format: date-time
example: '2026-08-13T11:11:58.093Z'
timestamp_updated:
type: string
description: Timestamp when the account was last updated
readOnly: true
format: date-time
example: '2026-08-13T11:11:58.093Z'
first_name:
type: string
description: First name associated with the account
example: John
last_name:
type: string
description: Last name associated with the account
example: Doe
warmup:
type: object
description: Warmup configuration for the account
properties:
limit:
type: number
description: Email sending limit for the account
example: 100
advanced:
type: object
description: Advanced settings for the account
properties:
warm_ctd:
type: boolean
description: Whether the account is in warm CTD mode
example: false
open_rate:
type: number
description: Email open rate for the account
example: 0.95
important_rate:
type: number
description: Important email rate for the account
example: 0.8
read_emulation:
type: boolean
description: Whether read emulation is enabled
example: true
spam_save_rate:
type: number
description: Spam save rate for the account
example: 0.02
weekday_only:
type: boolean
description: Whether to send emails only on weekdays
example: true
warmup_custom_ftag:
type: string
description: Custom tag for the account
example: warmup
increment:
type: string
enum:
- disabled
- '0'
- '1'
- '2'
- '3'
- '4'
x-enumDescriptions:
'0': '0'
'1': '1'
'2': '2'
'3': '3'
'4': '4'
disabled: Disabled
description: Daily increment added to the sending limit, starting from 0, until the full daily limit is reached
(slow ramp). Gradually increases sending volume to improve deliverability. Set to `disabled` to send at the
full daily limit from day one.
example: disabled
reply_rate:
type: number
description: Reply rate for the account
example: 0.1
added_by:
type:
- 'null'
- string
description: User ID who added the account
readOnly: true
format: uuid
example: 019ffad2-5c8d-7f3d-bee3-56986ea16c41
daily_limit:
type:
- 'null'
- number
description: Daily email sending limit
example: 100
daily_limit_max:
type:
- 'null'
- number
description: Maximum daily email sending limit for AirMail accounts
readOnly: true
example: 100
warmup_limit_max:
type:
- 'null'
- number
description: Maximum daily warmup sending limit for AirMail accounts
readOnly: true
example: 100
modified_by:
type:
- 'null'
- string
description: User ID who last modified the account
readOnly: true
format: uuid
example: 019ffad2-5c8d-7f3d-bee3-56990262e845
tracking_domain_name:
type:
- 'null'
- string
description: Tracking domain
example: example.com
tracking_domain_status:
type:
- 'null'
- string
description: Tracking domain status
example: active
status:
type: number
description: Current status of the account
readOnly: true
enum:
- 1
- 2
- 3
- -1
- -2
- -3
x-enumDescriptions:
'1': Active
'2': Paused
'3': Temporarily paused for maintenance; will be automatically resumed shortly
'-1': Connection Error
'-2': Soft Bounce Error
'-3': Sending Error
example: 1
enable_slow_ramp:
type:
- 'null'
- boolean
description: Whether to enable slow ramp up for sending limits
example: false
inbox_placement_test_limit:
type:
- 'null'
- number
description: The limit for inbox placement tests
minimum: 0
example: 10
organization:
type: string
description: Organization ID that owns this account
readOnly: true
format: uuid
example: 019ffad2-5c8d-7f3d-bee3-569acb8bcc4f
warmup_status:
type: number
description: Current warmup status of the account
readOnly: true
enum:
- 0
- 1
- -1
- -2
- -3
x-enumDescriptions:
'0': Paused
'1': Active
'-1': Banned
'-2': Spam Folder Unknown
'-3': Permanent Suspension
example: 1
status_message:
type: object
description: Status message for the account
readOnly: true
properties:
code:
type: string
example: EENVELOPE
command:
type: string
example: DATA
response:
type: string
example: 550-5.4.5 Daily user sending limit exceeded. For more information on Gmai
e_message:
type: string
example: 'error: data command failed: 550-5.4.5 daily user sending limit exceeded'
responseCode:
type: number
example: 550
additionalProperties: true
timestamp_warmup_start:
type:
- 'null'
- string
description: Timestamp when warmup was started
readOnly: true
format: date-time
example: '2026-08-13T11:11:58.093Z'
provider_code:
type: number
description: Provider code for the account. Please make sure to specify the right provider code, otherwise your
account will not work.
enum:
- 1
- 2
- 3
- 4
- 8
- 11
x-enumDescriptions:
'1': Custom IMAP/SMTP
'2': Google
'3': Microsoft
'4': AWS
'8': AirMail
'11': Airmail Instant
example: 2
setup_pending:
type: boolean
description: Whether account setup is pending
readOnly: true
example: false
is_managed_account:
type: boolean
description: Whether this is a managed account
readOnly: true
example: false
stat_warmup_score:
type:
- 'null'
- number
description: Warmup score for the account
readOnly: true
example: 85
sending_gap:
type: number
description: The gap between emails sent from this account in minutes (minimum wait time when used with multiple
campaigns)
minimum: 0
maximum: 1440
example: 10
signature:
type:
- 'null'
- string
description: Email signature for the account
example: Best regards, John Doe
reply_to:
type:
- 'null'
- string
description: Custom reply-to email address for the account
format: email
example: reply@example.com
autofix_failed:
type:
- 'null'
- boolean
description: Whether automatic reconnection attempts have failed. null = in progress, true = failed, false = succeeded.
readOnly: true
example: false
required:
- email
- timestamp_created
- timestamp_updated
- first_name
- last_name
- organization
- warmup_status
- provider_code
- setup_pending
- is_managed_account
additionalProperties: false
Campaign:
title: Campaign
description: A campaign that can be sent to a list of recipients
x-tags:
- Schemas
- Campaign
type: object
properties:
id:
type: string
description: Unique identifier for the campaign
readOnly: true
format: uuid
example: 019ffad2-5c4b-761a-9bc4-0599e8a95bea
name:
type: string
description: Name of the campaign
example: My First Campaign
pl_value:
type:
- 'null'
- number
description: Value of every positive lead
example: 100
status:
type: number
description: Campaign Status
readOnly: true
enum:
- -99
- -1
- -2
- 0
- 1
- 2
- 3
- 4
x-enumDescriptions:
'0': Draft
'1': Active
'2': Paused
'3': Completed
'4': Running Subsequences
'-99': Account Suspended
'-1': Accounts Unhealthy
'-2': Bounce Protect
example: 1
is_evergreen:
type:
- 'null'
- boolean
description: Whether the campaign is evergreen
example: false
campaign_schedule:
type: object
description: Campaign schedule
properties:
start_date:
type:
- 'null'
- string
format: date
description: Start date in YYYY-MM-DD format. Uses the campaign's timezone.
example: '2025-09-25'
end_date:
type:
- 'null'
- string
format: date
description: End date in YYYY-MM-DD format. Uses the campaign's timezone.
example: '2025-09-25'
schedules:
type: array
items:
type: object
properties:
name:
type: string
example: My Schedule
timing:
type: object
properties:
from:
type: string
pattern: ^([01][0-9]|2[0-3]):([0-5][0-9])$
example: 09:00
to:
type: string
pattern: ^([01][0-9]|2[0-3]):([0-5][0-9])$
example: '17:00'
required:
- from
- to
days:
type: object
minProperties: 1
properties:
'0':
type: boolean
example: true
'1':
type: boolean
example: true
'2':
type: boolean
example: true
'3':
type: boolean
example: true
'4':
type: boolean
example: true
'5':
type: boolean
example: false
'6':
type: boolean
example: false
timezone:
type: string
enum:
- Etc/GMT+12
- Etc/GMT+11
- Etc/GMT+10
- America/Anchorage
- America/Dawson
- America/Creston
- America/Chihuahua
- America/Boise
- America/Belize
- America/Chicago
- America/Bahia_Banderas
- America/Regina
- America/Bogota
- America/Detroit
- America/Indiana/Marengo
- America/Caracas
- America/Asuncion
- America/Glace_Bay
- America/Campo_Grande
- America/Anguilla
- America/Santiago
- America/St_Johns
- America/Sao_Paulo
- America/Argentina/La_Rioja
- America/Araguaina
- America/Godthab
- America/Montevideo
- America/Bahia
- America/Noronha
- America/Scoresbysund
- Atlantic/Cape_Verde
- Africa/Casablanca
- America/Danmarkshavn
- Europe/Isle_of_Man
- Atlantic/Canary
- Africa/Abidjan
- Arctic/Longyearbyen
- Europe/Belgrade
- Africa/Ceuta
- Europe/Sarajevo
- Africa/Algiers
- Africa/Windhoek
- Asia/Nicosia
- Asia/Beirut
- Africa/Cairo
- Asia/Damascus
- Europe/Bucharest
- Africa/Blantyre
- Europe/Helsinki
- Europe/Istanbul
- Asia/Jerusalem
- Africa/Tripoli
- Asia/Amman
- Asia/Baghdad
- Europe/Kaliningrad
- Asia/Aden
- Africa/Addis_Ababa
- Europe/Kirov
- Europe/Astrakhan
- Asia/Tehran
- Asia/Dubai
- Asia/Baku
- Indian/Mahe
- Asia/Tbilisi
- Asia/Yerevan
- Asia/Kabul
- Antarctica/Mawson
- Asia/Yekaterinburg
- Asia/Karachi
- Asia/Kolkata
- Asia/Colombo
- Asia/Kathmandu
- Antarctica/Vostok
- Asia/Dhaka
- Asia/Rangoon
- Antarctica/Davis
- Asia/Novokuznetsk
- Asia/Hong_Kong
- Asia/Krasnoyarsk
- Asia/Brunei
- Australia/Perth
- Asia/Taipei
- Asia/Choibalsan
- Asia/Irkutsk
- Asia/Dili
- Asia/Pyongyang
- Australia/Adelaide
- Australia/Darwin
- Australia/Brisbane
- Australia/Melbourne
- Antarctica/DumontDUrville
- Australia/Currie
- Asia/Chita
- Antarctica/Macquarie
- Asia/Sakhalin
- Pacific/Auckland
- Etc/GMT-12
- Pacific/Fiji
- Asia/Anadyr
- Asia/Kamchatka
- Etc/GMT-13
- Pacific/Apia
example: Etc/GMT+12
required:
- name
- timing
- days
- timezone
minItems: 1
required:
- schedules
sequences:
type: array
description: List of sequences (the actual email copy). Even though this field is an array, only the first element
is used, so please provide only one array item, and add the steps to that array
items:
type: object
properties:
steps:
type: array
items:
type: object
properties:
type:
type: string
enum:
- email
x-enumDescriptions:
email: This steps represents an email
description: Type of step. This has to be 'email' always - it's the only supported type for now
example: email
delay:
type: number
description: The delay value before sending the NEXT email. The unit is determined by the delay_unit
field (defaults to days).
example: 2
delay_unit:
type: string
enum:
- minutes
- hours
- days
default: days
description: The unit of time for the delay value (minutes, hours, or days). Defaults to days for backward
compatibility.
example: days
pre_delay:
type: number
description: The delay value before sending the FIRST email in a subsequence. **Only applicable to subsequences**
- this field is ignored for regular campaigns. The unit is determined by the pre_delay_unit field
(defaults to days).
example: 2
pre_delay_unit:
type: string
enum:
- minutes
- hours
- days
default: days
description: The unit of time for the pre_delay value (minutes, hours, or days). **Only applicable to
subsequences** - this field is ignored for regular campaigns. Defaults to days for backward compatibility.
example: days
variants:
type: array
items:
type: object
properties:
subject:
type: string
example: Hello {{firstName}}
body:
type: string
description: Email body HTML. Use `
` tags for delivered email line breaks.
example: Hey {{firstName}},
I hope you are doing well.
v_disabled:
type: boolean
description: Whether this variant is disabled. By default, all the variants are enabled. Please
set this to true if you want to disable this variant
example: true
required:
- subject
- body
required:
- type
- delay
- variants
required:
- steps
timestamp_created:
type: string
description: Timestamp when the campaign was created
readOnly: true
example: '2026-08-13T11:11:58.027Z'
timestamp_updated:
type: string
description: Timestamp when the campaign was last updated
readOnly: true
example: '2026-08-13T11:11:58.027Z'
email_gap:
type:
- 'null'
- number
description: The gap between emails in minutes
example: 10
random_wait_max:
type:
- 'null'
- number
description: The maximum random wait time in minutes
example: 10
text_only:
type:
- 'null'
- boolean
description: Whether the campaign is text only
example: false
first_email_text_only:
type:
- 'null'
- boolean
description: Whether the campaign is send the first email as a text only
example: false
email_list:
type: array
description: List of accounts to use for sending emails
items:
type: string
example: john@doe.com
daily_limit:
type:
- 'null'
- number
description: The daily limit for sending emails
example: 100
stop_on_reply:
type:
- 'null'
- boolean
description: Whether to stop the campaign on reply
example: false
email_tag_list:
type: array
description: List of tags to use for sending emails
items:
type: string
format: uuid
example: 019ffad2-5c4b-761a-9bc4-059ac4b3a8a9
link_tracking:
type:
- 'null'
- boolean
description: Whether to track links in emails
example: true
open_tracking:
type: boolean
description: Whether to track opens in emails
example: true
stop_on_auto_reply:
type:
- 'null'
- boolean
description: Whether to stop the campaign on auto reply
example: false
daily_max_leads:
type:
- 'null'
- integer
description: The daily maximum new leads to contact
minimum: 0
example: 100
prioritize_new_leads:
type:
- 'null'
- boolean
description: Whether to prioritize new leads
example: false
auto_variant_select:
type:
- 'null'
- object
description: Auto variant select settings
properties:
trigger:
type: string
enum:
- reply_rate
- click_rate
- open_rate
examples:
- click_rate
example: click_rate
required:
- trigger
match_lead_esp:
type:
- 'null'
- boolean
description: Whether to match leads by ESP
example: false
not_sending_status:
type:
- 'null'
- number
description: Campaign not sending status
readOnly: true
enum:
- 1
- 2
- 3
- 4
- 99
x-enumDescriptions:
'1': Campaign is currently not within its sending schedule.
'2': Campaign is currently waiting for a lead to process.
'3': Campaign has reached its daily sending limit.
'4': All sending accounts for this campaign have reached their daily sending limit.
'99': Campaign is currently not sending due to an error. Please contact support for assistance.
example: 2
stop_for_company:
type:
- 'null'
- boolean
description: Whether to stop the campaign for the entire company(domain) when a lead replies
example: false
core_variables:
type:
- 'null'
- object
description: Campaign core variables
readOnly: true
additionalProperties: true
custom_variables:
type:
- 'null'
- object
description: Campaign custom variables
readOnly: true
additionalProperties: true
insert_unsubscribe_header:
type:
- 'null'
- boolean
description: Whether to insert an unsubscribe header in emails
example: false
allow_risky_contacts:
type:
- 'null'
- boolean
description: Whether to allow risky contacts
example: false
disable_bounce_protect:
type:
- 'null'
- boolean
description: Whether to disable bounce protection
example: false
limit_emails_per_company_override:
type:
- 'null'
- object
description: Overrides the workspace-wide limit emails per company setting for this campaign.
properties:
mode:
type: string
enum:
- custom
- disabled
examples:
- custom
example: custom
daily_limit:
type: number
minimum: 1
examples:
- 3
example: 3
scope:
type: string
enum:
- per_campaign
- across_workspace
examples:
- per_campaign
example: per_campaign
required:
- mode
cc_list:
type: array
description: List of accounts to CC on emails
items:
type: string
format: email
example: john@doe.com
bcc_list:
type: array
description: List of accounts to BCC on emails
items:
type: string
format: email
example: john@doe.com
organization:
type:
- 'null'
- string
description: Organization ID
readOnly: true
format: uuid
example: 019ffad2-5c4b-761a-9bc4-059bb9fa11bf
owned_by:
type:
- 'null'
- string
description: Owner ID
format: uuid
example: 019ffad2-5c4b-761a-9bc4-059c036e479a
ai_sdr_id:
type:
- 'null'
- string
description: AI Sales Agent ID that created this campaign
format: uuid
example: 019ffad2-5c4b-761a-9bc4-059dc9a58653
provider_routing_rules:
type: array
description: Auto variant select settings
items:
type: object
properties:
action:
type: string
enum:
- send
- do_not_send
example: send
recipient_esp:
type: array
items:
type: string
enum:
- all
- google
- outlook
- other
example: all
sender_esp:
type: array
items:
type: string
enum:
- all
- google
- outlook
- other
example: all
required:
- action
- recipient_esp
- sender_esp
required:
- id
- name
- status
- campaign_schedule
- timestamp_created
- timestamp_updated
additionalProperties: false
Email:
title: Email
description: A campaign email, a reply, a manually sent email, or any other email that's visible in the Unibox
x-tags:
- Schemas
- Email
type: object
properties:
id:
type: string
description: A Unique identifier
readOnly: true
format: uuid
example: 019ffad2-5c98-7531-9735-e1a09d243ff0
timestamp_created:
type: string
description: Timestamp when the email was added to our database. This is not the timestamp of the email itself,
since the email could have been sent at a different time. Please check the `timestamp_email` field for the timestamp
of the email.
readOnly: true
format: date-time
example: '2026-08-13T11:11:58.104Z'
timestamp_email:
type: string
description: The timestamp of the email, as provided by the email server. Please note that the timestamp is not
always accurate, as it can be manipulated by the sender or the email server.
readOnly: true
format: date-time
example: '2026-08-13T11:11:58.104Z'
message_id:
type: string
description: Unique email ID from the email server
readOnly: true
example:
subject:
type: string
description: Subject line of the email message
example: 'Re: Your inquiry'
from_address_email:
type:
- 'null'
- string
description: The sender email address, populated based on the eaccount
readOnly: true
format: email
example: sender@example.com
to_address_email_list:
type: string
description: Comma-separated list of recipient email addresses
example: recipient@example.com
cc_address_email_list:
type:
- 'null'
- string
description: Comma-separated list of CC email addresses
example: cc@example.com
bcc_address_email_list:
type:
- 'null'
- string
description: Comma-separated list of BCC email addresses
example: bcc@example.com
reply_to:
type:
- 'null'
- string
description: Reply-to email address
example: replyto@example.com
body:
type: object
description: An object containing the email body in HTML and text format
readOnly: true
properties:
text:
type: string
description: Plain-text representation of the email body. Newline characters are preserved as line breaks in
this text view.
example: This is a test email
html:
type: string
description: HTML content of the email. Use `
` tags for delivered email line breaks.
example: This is a test email.
Second line.
organization_id:
type: string
description: The workspace ID
readOnly: true
format: uuid
example: 019ffad2-5c98-7531-9735-e1a19020dfa8
campaign_id:
type:
- 'null'
- string
description: The id of the campaign that the email is associated with (it can be null for manually sent emails)
format: uuid
example: 019ffad2-5c98-7531-9735-e1a2d5f98274
subsequence_id:
type:
- 'null'
- string
description: The id of the campaign subsequence that the email is associated with (it can be null for manually sent
emails)
format: uuid
example: 019ffad2-5c98-7531-9735-e1a378631cf2
list_id:
type:
- 'null'
- string
description: The id of the list (if the lead is part of a list)
format: uuid
example: 019ffad2-5c98-7531-9735-e1a45f3d96df
lead:
type:
- 'null'
- string
description: The email address of the lead that the email is associated with
example: jondoe@example.com
lead_id:
type:
- 'null'
- string
description: The lead id (if any)
format: uuid
example: 019ffad2-5c98-7531-9735-e1a5378a5b47
eaccount:
type: string
description: The email account that was used to send the email. This needs to be validated to make sure it exists
in the user workspace
example: eaccount-123
ue_type:
type:
- 'null'
- number
description: Email type based on the life cycle of the email
enum:
- 1
- 2
- 3
- 4
x-enumDescriptions:
'1': Sent from campaign
'2': Received
'3': Sent
'4': Scheduled
example: 3
step:
type:
- 'null'
- string
description: The campaign step that the email is associated with
example: step-123
is_unread:
type:
- 'null'
- number
description: Indicates if the email is unread
example: 1
is_auto_reply:
type:
- 'null'
- number
description: Indicates if the email is an auto-reply. 0 (zero) - is false, and 1 is true
readOnly: true
example: 0
reminder_ts:
type:
- 'null'
- string
description: Timestamp for the reminder.
format: date-time
example: '2026-08-13T11:11:58.104Z'
ai_interest_value:
type:
- 'null'
- number
description: AI interest value
example: 0.75
ai_assisted:
type:
- 'null'
- number
description: Indicates if AI assistance was used
example: 1
is_focused:
type:
- 'null'
- number
description: Indicates if the email is focused (is in the primary tab in the Unibox)
example: 1
i_status:
type:
- 'null'
- number
description: Indicates the interest status of the email
example: 0
thread_id:
type:
- 'null'
- string
description: Identifier for the email thread. All the emails in the same thread have the same thread ID
format: uuid
example: 019ffad2-5c98-7531-9735-e1a632e2c947
content_preview:
type:
- 'null'
- string
description: A short preview of the email content (usually the first few lines of the email)
example: This is a preview of the email content.
attachment_json:
type:
- 'null'
- object
description: Attachment metadata for the email. This field is null when there are no attachments.
readOnly: true
properties:
files:
type: array
items:
type: object
additionalProperties: false
required:
- filename
properties:
filename:
type: string
description: Attachment file name
examples:
- attachment.pdf
example: attachment.pdf
size:
type: number
description: Attachment file size in bytes
examples:
- 1927
example: 1927
type:
type: string
description: Attachment MIME type
examples:
- application/pdf
example: application/pdf
url:
type: string
format: uri
description: Download URL when available
examples:
- https://cdn.instantly.ai/example-attachment/file.pdf
example: https://cdn.instantly.ai/example-attachment/file.pdf
error:
type:
- 'null'
- string
description: Error description when the attachment failed to upload
examples:
- Upload failed
example: Upload failed
required:
- files
additionalProperties: false
example:
files:
- filename: attachment
size: 1927
type: text/css
url: https://cdn.instantly.ai/example-attachment/
error: null
from_address_json:
type:
- 'null'
- array
description: List of from address details
to_address_json:
type:
- 'null'
- array
description: List of to address details
cc_address_json:
type:
- 'null'
- array
description: List of CC address details
ai_agent_id:
type:
- 'null'
- string
description: ID of the AI agent that sent this email (if applicable)
format: uuid
example: 019ffad2-5c98-7531-9735-e1a721735ad8
required:
- id
- timestamp_created
- timestamp_email
- message_id
- subject
- to_address_email_list
- body
- organization_id
- eaccount
additionalProperties: false
EmailVerification:
title: Email Verification
description: A single email verification
x-tags:
- Schemas
- EmailVerification
type: object
properties:
status:
type:
- 'null'
- string
description: The request status. Do not use this field to determine the verification status. Please use `verification_status`
instead to check the verification status
readOnly: true
enum:
- success
- error
x-enumDescriptions:
success: The verification was successful
error: The verification was unsuccessful
example: success
email:
type: string
description: The email address to verify
example: example@example.com
verification_status:
type: string
description: The verification status.
readOnly: true
enum:
- pending
- verified
- invalid
x-enumDescriptions:
pending: The verification is pending
verified: The verification is verified
invalid: The verification is invalid
example: pending
catch_all:
type:
- boolean
- string
description: Whether this is a catch-all email address
readOnly: true
enum:
- true
- false
- pending
x-enumDescriptions:
'false': The email is not a catch-all
'true': The email is a catch-all
pending: The catch-all status is pending
example: true
credits:
type:
- 'null'
- number
description: The number of verification credits available after the verification
readOnly: true
example: 100
credits_used:
type:
- 'null'
- number
description: The number of verification credits used
readOnly: true
example: 1
required:
- email
- verification_status
additionalProperties: false
LeadList:
title: Lead List
description: A list used to store leads
x-tags:
- Schemas
- LeadList
type: object
properties:
id:
type: string
description: Unique identifier for the lead list
readOnly: true
format: uuid
example: 019ffad2-5c79-7b95-8be2-2dc5f047c029
organization_id:
type: string
description: Organization ID that owns this lead list
readOnly: true
format: uuid
example: 019ffad2-5c79-7b95-8be2-2dc6dc8d3540
has_enrichment_task:
type:
- 'null'
- boolean
description: Whether this list runs the enrichment process on every added lead or not
example: false
owned_by:
type:
- 'null'
- string
description: User ID of the owner of this lead list. Defaults to the user that created the list
format: uuid
example: 019ffad2-5c79-7b95-8be2-2dc717cc24c7
name:
type: string
description: Name of the lead list
example: My Lead List
timestamp_created:
type: string
description: Timestamp when the lead list was created
readOnly: true
format: date-time
example: '2026-08-13T11:11:58.073Z'
required:
- id
- organization_id
- name
- timestamp_created
additionalProperties: false
InboxPlacementTest:
title: Inbox Placement Test
description: An inbox placement test
x-tags:
- Schemas
- InboxPlacementTest
type: object
properties:
id:
type: string
description: Unique identifier for the inbox placement test
readOnly: true
format: uuid
example: 019ffad2-5c60-726e-9fc3-156305e5dc50
organization_id:
type: string
description: Organization ID
readOnly: true
format: uuid
example: 019ffad2-5c60-726e-9fc3-1564f8d27eb8
name:
type: string
description: Name of the inbox placement test
example: My Inbox Placement Test
delivery_mode:
type:
- 'null'
- number
description: Whether to send emails one by one or all together
enum:
- 1
- 2
- null
x-enumDescriptions:
'1': One by one
'2': All together
example: 1
description:
type:
- 'null'
- string
description: Description of the inbox placement test
example: This is a test description
schedule:
type: object
description: Specifies the date and time when the automated inbox placement tests will be sent.
properties:
days:
type: object
description: Days of the week when the test will run, where keys are integers (0-6, 0 = Sunday) and values are
booleans indicating active days.
additionalProperties:
type: boolean
examples:
- false
example: false
example:
'0': false
'1': false
'2': true
'3': true
'4': false
'5': false
'6': false
timing:
type: object
properties:
from:
type: string
description: The time of day when the test will start (24-hour format).
example: 02:30
description: Timing configuration for the scheduled test.
timezone:
type: string
enum:
- Etc/GMT+12
- Etc/GMT+11
- Etc/GMT+10
- America/Anchorage
- America/Dawson
- America/Creston
- America/Chihuahua
- America/Boise
- America/Belize
- America/Chicago
- America/Bahia_Banderas
- America/Regina
- America/Bogota
- America/Detroit
- America/Indiana/Marengo
- America/Caracas
- America/Asuncion
- America/Glace_Bay
- America/Campo_Grande
- America/Anguilla
- America/Santiago
- America/St_Johns
- America/Sao_Paulo
- America/Argentina/La_Rioja
- America/Araguaina
- America/Godthab
- America/Montevideo
- America/Bahia
- America/Noronha
- America/Scoresbysund
- Atlantic/Cape_Verde
- Africa/Casablanca
- America/Danmarkshavn
- Europe/Isle_of_Man
- Atlantic/Canary
- Africa/Abidjan
- Arctic/Longyearbyen
- Europe/Belgrade
- Africa/Ceuta
- Europe/Sarajevo
- Africa/Algiers
- Africa/Windhoek
- Asia/Nicosia
- Asia/Beirut
- Africa/Cairo
- Asia/Damascus
- Europe/Bucharest
- Africa/Blantyre
- Europe/Helsinki
- Europe/Istanbul
- Asia/Jerusalem
- Africa/Tripoli
- Asia/Amman
- Asia/Baghdad
- Europe/Kaliningrad
- Asia/Aden
- Africa/Addis_Ababa
- Europe/Kirov
- Europe/Astrakhan
- Asia/Tehran
- Asia/Dubai
- Asia/Baku
- Indian/Mahe
- Asia/Tbilisi
- Asia/Yerevan
- Asia/Kabul
- Antarctica/Mawson
- Asia/Yekaterinburg
- Asia/Karachi
- Asia/Kolkata
- Asia/Colombo
- Asia/Kathmandu
- Antarctica/Vostok
- Asia/Dhaka
- Asia/Rangoon
- Antarctica/Davis
- Asia/Novokuznetsk
- Asia/Hong_Kong
- Asia/Krasnoyarsk
- Asia/Brunei
- Australia/Perth
- Asia/Taipei
- Asia/Choibalsan
- Asia/Irkutsk
- Asia/Dili
- Asia/Pyongyang
- Australia/Adelaide
- Australia/Darwin
- Australia/Brisbane
- Australia/Melbourne
- Antarctica/DumontDUrville
- Australia/Currie
- Asia/Chita
- Antarctica/Macquarie
- Asia/Sakhalin
- Pacific/Auckland
- Etc/GMT-12
- Pacific/Fiji
- Asia/Anadyr
- Asia/Kamchatka
- Etc/GMT-13
- Pacific/Apia
description: Timezone in which the schedule is set, in IANA timezone format.
example: Etc/GMT+12
example:
days:
'2': true
'3': true
timing:
from: 02:30
timezone: America/Chihuahua
type:
type: number
description: Whether the inbox placement test is a one-time test or an automated test
enum:
- 1
- 2
example: 1
sending_method:
type: number
description: Whether the inbox placement test will be sent from Instantly or from outside Instantly
enum:
- 1
- 2
x-enumDescriptions:
'1': From Instantly
'2': From Outside Instantly
example: 1
campaign_id:
type:
- 'null'
- string
description: Campaign ID
format: uuid
example: 019ffad2-5c60-726e-9fc3-15653478693e
email_subject:
type: string
description: Email subject of the inbox placement test
example: My Email Subject
email_body:
type: string
description: Email body of the inbox placement test
example: Hi, this is my email body
emails:
type: array
description: Emails to send the inbox placement test to
items:
type: string
example: john@doe.com
test_code:
type:
- 'null'
- string
description: Code for identifying inbox placement tests sent from outside Instantly. Use ptid_ followed by letters,
numbers, hyphens, or underscores. When creating a test, the ptid_ prefix is added automatically if omitted. The
full code must be at most 50 characters.
pattern: ^ptid_(?!ptid_)[A-Za-z0-9_-]{1,45}$
example: ptid_N6qbXRzw9CPCjgownKFUa
tags:
type:
- 'null'
- array
description: List of tag IDs to use for sending emails
items:
type: string
format: uuid
examples:
- 019ffad2-5c60-726e-9fc3-156656386a64
example: 019ffad2-5c60-726e-9fc3-156656386a64
text_only:
type:
- 'null'
- boolean
description: Disables open tracking
example: true
recipients:
type: array
readOnly: true
items:
type: string
example: johndoe@instantly.ai
recipients_labels:
type: array
description: 'A list of email providers and their corresponding types to which emails will be sent. To retrieve
the available options, use the `GET: /inbox-placement-tests/email-service-provider-options` endpoint'
items:
type: object
properties:
region:
type: string
description: The region to send emails to
example: North America
sub_region:
type: string
description: The sub-region to send emails to
example: US
type:
type: string
description: The type of email to send
example: Professional
esp:
type: string
description: The Email Service Provider (ESP) to send emails to
example: Google
required:
- region
- sub_region
- type
- esp
timestamp_created:
type: string
description: Timestamp when the inbox placement test was created
readOnly: true
example: '2026-08-13T11:11:58.048Z'
timestamp_next_run:
type:
- 'null'
- string
description: Timestamp when the inbox placement test will run next
example: '2026-08-13T11:11:58.048Z'
automations:
type:
- 'null'
- array
description: Optional automations to trigger based on conditions
minItems: 0
items:
type: object
properties:
when:
type: object
properties:
condition:
type: string
description: Condition for automation trigger
enum:
- placement_goes_below
- placement_goes_above
- added_to_blacklists
- removed_from_blacklists
examples:
- placement_goes_below
example: placement_goes_below
condition_value:
type:
- 'null'
- number
description: Value for condition, if applicable
examples:
- 80
example: 80
required:
- condition
then:
type: object
properties:
webhook_url:
type: string
examples:
- https://example.com/webhook
example: https://example.com/webhook
pause_sending_campaigns_for:
type: number
description: Number of days to pause sending campaigns for
examples:
- 14
example: 14
pause:
type: boolean
examples:
- true
example: true
enable_slow_ramp:
type: boolean
examples:
- true
example: true
disable_slow_ramp:
type: boolean
examples:
- true
example: true
add_tags:
type: array
items:
type: string
format: uuid
examples:
- 019ffad2-5c60-726e-9fc3-156754df5bd1
example: 019ffad2-5c60-726e-9fc3-156754df5bd1
examples:
- - 019ffad2-5c60-726e-9fc3-1568473f684f
example:
- 019ffad2-5c60-726e-9fc3-1568473f684f
remove_tags:
type: array
items:
type: string
format: uuid
examples:
- 019ffad2-5c60-726e-9fc3-156972a16746
example: 019ffad2-5c60-726e-9fc3-156972a16746
minProperties: 1
description: Actions to take when condition is met
required:
- when
- then
status:
type:
- 'null'
- number
description: Status of the inbox placement test
enum:
- 1
- 2
- 3
x-enumDescriptions:
'1': Active
'2': Paused
'3': Completed
example: 1
not_sending_status:
type:
- 'null'
- string
description: Why the inbox placement test is currently not sending. It will be an empty string if there are no issues.
enum:
- daily_limits_hit
- other
x-enumDescriptions:
daily_limits_hit: Daily limits hit
other: Other reason
example: daily_limits_hit
required:
- id
- organization_id
- name
- type
- sending_method
- email_subject
- email_body
- emails
- recipients
- timestamp_created
additionalProperties: false
InboxPlacementAnalytics:
title: Inbox Placement Analytics
description: Analytics data for individual emails in inbox placement tests
x-tags:
- Schemas
- InboxPlacementAnalytics
type: object
properties:
id:
type: string
description: Unique identifier for the inbox placement analytics entry
readOnly: true
format: uuid
example: 019ffad2-5c4f-7ddc-8443-b57a2353f89f
timestamp_created:
type: string
description: Timestamp when the inbox placement analytics was created
readOnly: true
example: '2026-08-13T11:11:58.031Z'
timestamp_created_date:
type: string
description: Date when the inbox placement analytics was created
readOnly: true
example: '2026-08-13'
organization_id:
type: string
description: Organization ID
readOnly: true
format: uuid
example: 019ffad2-5c4f-7ddc-8443-b57b2ee32344
test_id:
type: string
description: Inbox Placement Test ID
format: uuid
example: 019ffad2-5c4f-7ddc-8443-b57c259f81c8
is_spam:
type:
- 'null'
- boolean
description: Indicates if the email landed in spam (null if not determined). Only present when record_type is 2
(received).
example: true
has_category:
type:
- 'null'
- boolean
description: Indicates if the email was categorized like promotions, social, etc. (null if not determined). Only
present when record_type is 2 (received).
example: true
sender_email:
type:
- 'null'
- string
description: Email address of the sender
example: sender@example.com
sender_esp:
type:
- 'null'
- number
description: The sender ESP (Email Service Provider). Only present when record_type is 2 (received).
enum:
- 1
- 2
- 8
- 12
- 13
x-enumDescriptions:
'1': Google
'2': Microsoft
'8': AirMail
'12': Web.de
'13': Libero.it
example: 1
recipient_email:
type:
- 'null'
- string
description: Email address of the recipient
example: recipient@example.com
recipient_esp:
type:
- 'null'
- number
description: The recipient ESP (Email Service Provider)
enum:
- 1
- 2
- 8
- 12
- 13
x-enumDescriptions:
'1': Google
'2': Microsoft
'8': AirMail
'12': Web.de
'13': Libero.it
example: 1
recipient_geo:
type:
- 'null'
- number
description: The geographic location of the recipient
enum:
- 1
- 2
- 3
- 4
x-enumDescriptions:
'1': United States
'2': Italy
'3': Germany
'4': France
example: 1
recipient_type:
type:
- 'null'
- number
description: The type of recipient
enum:
- 1
- 2
x-enumDescriptions:
'1': Professional
'2': Personal
example: 1
spf_pass:
type:
- 'null'
- boolean
description: Indicates if the email passed SPF validation. Only present when record_type is 2 (received).
example: true
dkim_pass:
type:
- 'null'
- boolean
description: Indicates if the email passed DKIM validation. Only present when record_type is 2 (received).
example: true
dmarc_pass:
type:
- 'null'
- boolean
description: Indicates if the email passed DMARC validation. Only present when record_type is 2 (received).
example: true
smtp_ip_blacklist_report:
type:
- 'null'
- object
description: Blacklist report for the SMTP IP address. Only present when record_type is 2 (received).
authentication_failure_results:
type:
- 'null'
- object
description: Details of authentication failures for SPF, DKIM, and DMARC. Only present when record_type is 2 (received).
properties:
authentication_results:
type: string
description: Authentication results
examples:
- "Authentication-Results: smtp.local;\r\n\tdkim=pass header.d=gappssmtp.com\r\n header.b=ABC123"
example: "Authentication-Results: smtp.local;\r\n\tdkim=pass header.d=gappssmtp.com\r\n header.b=ABC123"
dkim_signature:
type: string
description: DKIM signature
examples:
- "DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gappssmtp.com; s=20161025;\r\n h=mime-version:from:date:message-id:subject:to;\
\ bh=ABC123; b=ABC123"
example: "DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gappssmtp.com; s=20161025;\r\n h=mime-version:from:date:message-id:subject:to;\
\ bh=ABC123; b=ABC123"
received_spf:
type: string
description: Received SPF
examples:
- 'Received-SPF: pass'
example: 'Received-SPF: pass'
record_type:
type:
- 'null'
- number
description: The type of record (sent or received)
enum:
- 1
- 2
x-enumDescriptions:
'1': Sent
'2': Received
example: 1
required:
- id
- timestamp_created
- timestamp_created_date
- organization_id
- test_id
additionalProperties: false
InboxPlacementBlacklistAndSpamAssassinReport:
title: Inbox Placement Blacklist And SpamAssassin Report
description: Report data for an inbox placement test
x-tags:
- Schemas
- InboxPlacementBlacklistAndSpamAssassinReport
type: object
properties:
id:
type: string
description: Unique identifier for the inbox placement report entry
readOnly: true
format: uuid
example: 019ffad2-5c52-70f7-81a6-709dae117dbb
timestamp_created:
type: string
description: Timestamp when the inbox placement report was created
readOnly: true
example: '2026-08-13T11:11:58.034Z'
timestamp_created_date:
type: string
description: Date when the inbox placement report was created
readOnly: true
example: '2026-08-13'
organization_id:
type: string
description: Organization ID
readOnly: true
format: uuid
example: 019ffad2-5c52-70f7-81a6-709e680e5268
test_id:
type: string
description: Inbox Placement Test ID
readOnly: true
format: uuid
example: 019ffad2-5c52-70f7-81a6-709f3b185dc1
domain_blacklist_count:
type:
- 'null'
- number
description: Count of blacklists the domain is listed on
readOnly: true
example: 5
domain:
type: string
description: Domain of the inbox placement report
readOnly: true
example: growinstantly.com
domain_ip:
type: string
description: IP address of the domain
readOnly: true
example: 192.168.1.1
domain_ip_blacklist_count:
type:
- 'null'
- number
description: Count of blacklists the domain IP is listed on
readOnly: true
example: 3
spam_assassin_score:
type: number
description: SpamAssassin score for the email, indicating spam likelihood
readOnly: true
example: 2.5
spam_assassin_report:
type: object
description: Detailed SpamAssassin analysis report
readOnly: true
properties:
is_spam:
type: boolean
description: Indicates if the message is classified as spam by SpamAssassin
example: false
report:
type: array
description: List of individual SpamAssassin rule evaluations
items:
type: object
properties:
description:
type: string
description: The section or type of the rule triggered
example: BODY
name:
type: string
description: The name of the SpamAssassin rule
example: HTML_MESSAGE
score:
type: string
description: The score assigned to this rule evaluation
example: '0.0'
required:
- description
- name
- score
spam_score:
type: integer
description: Overall spam score assigned to the message by SpamAssassin
example: 0
blacklist_report:
type: object
description: Detailed blacklist report for the domain or IP
readOnly: true
properties:
address:
type: string
description: The address or domain associated with the report
example: growinstantly.com
blacklisted_count:
type: integer
description: The count of blacklists the address is listed on
example: 5
details:
type: array
description: List of individual blacklist details
items:
properties:
blacklist:
type: string
description: The name of the blacklist
example: zen.spamhaus.org
is_listed:
type: boolean
description: Whether the address is listed on this blacklist
example: true
test_type:
type: string
description: The type of test
example: ip
type: object
ip:
type: string
description: The IP address associated with the blacklist check
example: 104.21.62.47
is_blacklisted:
type: boolean
description: Overall status indicating if the address is blacklisted
example: true
is_domain:
type: boolean
description: Whether the address is a domain
example: true
required:
- id
- timestamp_created
- timestamp_created_date
- organization_id
- test_id
- domain
- domain_ip
- spam_assassin_score
additionalProperties: false
APIKey:
title: API Key
description: API Key
x-tags:
- Schemas
- APIKey
type: object
properties:
id:
type: string
readOnly: true
format: uuid
example: 019ffad2-5c30-79ee-b624-f5375e5b650b
name:
type: string
example: My API Key
scopes:
type: array
items:
type: string
enum:
- all:all
- all:create
- all:read
- all:update
- all:delete
- ai_agents:all
- ai_agents:create
- ai_agents:read
- ai_agents:update
- ai_agents:delete
- api_keys:all
- api_keys:create
- api_keys:read
- api_keys:update
- api_keys:delete
- audit_logs:all
- audit_logs:create
- audit_logs:read
- audit_logs:update
- audit_logs:delete
- custom_prompt_templates:all
- custom_prompt_templates:create
- custom_prompt_templates:read
- custom_prompt_templates:update
- custom_prompt_templates:delete
- account_campaign_mappings:all
- account_campaign_mappings:create
- account_campaign_mappings:read
- account_campaign_mappings:update
- account_campaign_mappings:delete
- campaigns:all
- campaigns:create
- campaigns:read
- campaigns:update
- campaigns:delete
- inbox_placement_tests:all
- inbox_placement_tests:create
- inbox_placement_tests:read
- inbox_placement_tests:update
- inbox_placement_tests:delete
- inbox_placement_analytics:all
- inbox_placement_analytics:create
- inbox_placement_analytics:read
- inbox_placement_analytics:update
- inbox_placement_analytics:delete
- inbox_placement_reports:all
- inbox_placement_reports:create
- inbox_placement_reports:read
- inbox_placement_reports:update
- inbox_placement_reports:delete
- lead_lists:all
- lead_lists:create
- lead_lists:read
- lead_lists:update
- lead_lists:delete
- leads:all
- leads:create
- leads:read
- leads:update
- leads:delete
- background-jobs:all
- background-jobs:create
- background-jobs:read
- background-jobs:update
- background-jobs:delete
- custom_tags:all
- custom_tags:create
- custom_tags:read
- custom_tags:update
- custom_tags:delete
- custom_tag_mappings:all
- custom_tag_mappings:create
- custom_tag_mappings:read
- custom_tag_mappings:update
- custom_tag_mappings:delete
- crm_actions:all
- crm_actions:create
- crm_actions:read
- crm_actions:update
- crm_actions:delete
- accounts:all
- accounts:create
- accounts:read
- accounts:update
- accounts:delete
- block_list_entries:all
- block_list_entries:create
- block_list_entries:read
- block_list_entries:update
- block_list_entries:delete
- lead-labels:all
- lead-labels:create
- lead-labels:read
- lead-labels:update
- lead-labels:delete
- email_verifications:all
- email_verifications:create
- email_verifications:read
- emails:all
- emails:create
- emails:read
- emails:update
- emails:delete
- email_templates:all
- email_templates:create
- email_templates:read
- email_templates:update
- email_templates:delete
- workspaces:all
- workspaces:create
- workspaces:read
- workspaces:update
- workspaces:delete
- workspace_billing:all
- workspace_billing:create
- workspace_billing:read
- workspace_billing:update
- workspace_billing:delete
- workspace_group_members:all
- workspace_group_members:create
- workspace_group_members:read
- workspace_group_members:update
- workspace_group_members:delete
- workspace_members:all
- workspace_members:create
- workspace_members:read
- workspace_members:update
- workspace_members:delete
- subsequences:all
- subsequences:create
- subsequences:read
- subsequences:update
- subsequences:delete
- ai_sdr:all
- ai_sdr:create
- ai_sdr:read
- ai_sdr:update
- ai_sdr:delete
- ai_sdr_replies:all
- ai_sdr_replies:create
- ai_sdr_replies:read
- ai_sdr_replies:update
- ai_sdr_replies:delete
- ai_inbox_manager_analytics:all
- ai_inbox_manager_analytics:create
- ai_inbox_manager_analytics:read
- ai_inbox_manager_analytics:update
- ai_inbox_manager_analytics:delete
- sales_flows:all
- sales_flows:create
- sales_flows:read
- sales_flows:update
- sales_flows:delete
- webhooks:all
- webhooks:create
- webhooks:read
- webhooks:update
- webhooks:delete
- webhook_events:all
- webhook_events:create
- webhook_events:read
- webhook_events:update
- webhook_events:delete
- security_tokens:all
- security_tokens:create
- security_tokens:read
- security_tokens:update
- security_tokens:delete
- dfy_email_account_orders:all
- dfy_email_account_orders:create
- dfy_email_account_orders:read
- dfy_email_account_orders:update
- dfy_email_account_orders:delete
- auth:all
- auth:create
- auth:read
- auth:update
- auth:delete
example: campaigns:create
key:
type: string
readOnly: true
example: a1b2c3d4e5f6g7h8i9j0
organization_id:
type: string
readOnly: true
format: uuid
example: 019ffad2-5c3e-7d8a-963d-6ecaf1ba9999
timestamp_created:
type: string
readOnly: true
format: date-time
example: '2026-08-13T11:11:58.015Z'
timestamp_updated:
type: string
readOnly: true
format: date-time
example: '2026-08-13T11:11:58.015Z'
required:
- id
- name
- scopes
- key
- organization_id
- timestamp_created
- timestamp_updated
additionalProperties: false
AccountCampaignMapping:
title: Account Campaign Mapping
description: Account Campaign Mapping
x-tags:
- Schemas
- AccountCampaignMapping
type: object
properties:
campaign_id:
type: string
format: uuid
example: 019ffad2-5c2e-7160-bab9-7ce54936e379
campaign_name:
type: string
example: Campaign Name
timestamp_created:
type: string
description: Timestamp when the campaign was created
readOnly: true
example: '2026-08-13T11:11:57.998Z'
status:
type: number
description: Campaign Status
enum:
- -99
- -1
- -2
- 0
- 1
- 2
- 3
- 4
x-enumDescriptions:
'0': Draft
'1': Active
'2': Paused
'3': Completed
'4': Running Subsequences
'-99': Account Suspended
'-1': Accounts Unhealthy
'-2': Bounce Protect
example: 1
required:
- campaign_id
- campaign_name
- timestamp_created
additionalProperties: false
Lead:
title: Lead
description: A lead entity representing an individual lead
x-tags:
- Schemas
- Lead
type: object
properties:
id:
type: string
description: Unique identifier for the lead
readOnly: true
format: uuid
example: 019ffad2-53a1-7acf-9ae0-404312bcab56
timestamp_created:
type: string
description: Timestamp when the lead was created
readOnly: true
format: date-time
example: '2026-08-13T11:11:55.811Z'
timestamp_updated:
type: string
description: Timestamp when the lead was last updated
readOnly: true
format: date-time
example: '2026-08-13T11:11:55.811Z'
organization:
type: string
description: Organization ID associated with the lead
readOnly: true
format: uuid
example: 019ffad2-53a3-7590-935f-b48baa581e0d
campaign:
type:
- 'null'
- string
description: Campaign ID associated with the lead
format: uuid
example: 019ffad2-53a3-7590-935f-b48cddbf2d9e
status:
type: number
description: Status of the lead
readOnly: true
enum:
- 1
- 2
- 3
- -1
- -2
- -3
x-enumDescriptions:
'1': Active
'2': Paused
'3': Completed
'-1': Bounced
'-2': Unsubscribed
'-3': Skipped
example: 1
email:
type:
- 'null'
- string
description: Email address of the lead
example: example@example.com
personalization:
type:
- 'null'
- string
description: Personalization of the lead
example: Hello, how are you?
website:
type:
- 'null'
- string
description: Website of the lead
example: https://example.com
last_name:
type:
- 'null'
- string
description: Last name of the lead
example: Doe
first_name:
type:
- 'null'
- string
description: First name of the lead
example: John
company_name:
type:
- 'null'
- string
description: Company name of the lead
example: Example Inc.
job_title:
type:
- 'null'
- string
description: Job title of the lead
example: Head of Growth
phone:
type:
- 'null'
- string
description: Phone number of the lead
example: '+1234567890'
email_open_count:
type: number
description: Number of times the email was opened
readOnly: true
example: 0
email_reply_count:
type: number
description: Number of times the email was replied to
readOnly: true
example: 0
email_click_count:
type: number
description: Number of times the email was clicked
readOnly: true
example: 0
company_domain:
type: string
description: Company domain of the lead
readOnly: true
example: example.com
status_summary:
type: object
description: Status summary of the lead
readOnly: true
properties:
lastStep:
type: object
properties:
from:
type: string
example: campaign
stepID:
type: string
example: 019ffad2-53a3-7590-935f-b48d6ba341ae
timestamp_executed:
type: string
format: date-time
example: '2026-08-13T11:11:55.811Z'
domain_complete:
type: boolean
example: true
payload:
type:
- 'null'
- object
description: Lead custom variables. This object can contain any key, but the values have to be of type string, number,
boolean, or null. We do NOT allow objects or arrays as values.
readOnly: true
properties:
firstName:
type: string
examples:
- John
example: John
lastName:
type: string
examples:
- Doe
example: Doe
companyName:
type: string
examples:
- Acme Corp
example: Acme Corp
jobTitle:
type: string
examples:
- Head of Growth
example: Head of Growth
website:
type: string
examples:
- https://example.com
example: https://example.com
phone:
type: string
examples:
- '+1234567890'
example: '+1234567890'
personalization:
type: string
examples:
- Hi {{first_name}}, I noticed you work at {{company_name}}...
example: Hi {{first_name}}, I noticed you work at {{company_name}}...
additionalProperties:
type:
- 'null'
- string
- number
- boolean
- object
status_summary_subseq:
type: object
description: Subsequence status summary of the lead
readOnly: true
properties:
from:
type: string
example: campaign
stepID:
type: string
example: 019ffad2-53a3-7590-935f-b48e2d8c05ea
timestampExecuted:
type: string
format: date-time
example: '2026-08-13T11:11:55.811Z'
last_step_from:
type:
- 'null'
- string
description: Source of the last step
readOnly: true
example: campaign
last_step_id:
type:
- 'null'
- string
description: ID of the last step
readOnly: true
format: uuid
example: 019ffad2-53a3-7590-935f-b48fcb4f5d3c
last_step_timestamp_executed:
type:
- 'null'
- string
description: Timestamp when the last step was executed
readOnly: true
format: date-time
example: '2026-08-13T11:11:55.811Z'
email_opened_step:
type:
- 'null'
- number
description: Last email step opened by the lead
readOnly: true
example: 1
email_opened_variant:
type:
- 'null'
- number
description: Last step variant opened by the lead
readOnly: true
example: 1
email_replied_step:
type:
- 'null'
- number
description: Last email step the lead has replied to
readOnly: true
example: 1
email_replied_variant:
type:
- 'null'
- number
description: Last step variant the lead has replied to
readOnly: true
example: 1
email_clicked_step:
type:
- 'null'
- number
description: Last email step the lead has clicked
readOnly: true
example: 1
email_clicked_variant:
type:
- 'null'
- number
description: Last step variant the lead has clicked
readOnly: true
example: 1
lt_interest_status:
type: number
description: Lead interest status. It can be either a static value (check below), or a custom status interest value
enum:
- 1
- 2
- 3
- 4
- 0
- -1
- -2
- -3
- -4
x-enumDescriptions:
'0': Out of Office
'1': Interested
'2': Meeting Booked
'3': Meeting Completed
'4': Won
'-1': Not Interested
'-2': Wrong Person
'-3': Lost
'-4': No Show
example: 1
subsequence_id:
type:
- 'null'
- string
description: ID of the subsequence
readOnly: true
example: 019ffad2-53a3-7590-935f-b490c41e66e7
verification_status:
type: number
description: Verification status of the lead
readOnly: true
enum:
- 1
- -1
- -2
- -3
- -4
- 11
- 12
x-enumDescriptions:
'1': Verified
'11': Pending
'12': Pending Verification Job
'-1': Invalid
'-2': Risky
'-3': Catch All
'-4': Job Change
example: 1
pl_value_lead:
type:
- 'null'
- string
description: Potential value of the lead
example: High
timestamp_added_subsequence:
type:
- 'null'
- string
description: Timestamp when the lead was added to the subsequence
readOnly: true
format: date-time
example: '2026-08-13T11:11:55.811Z'
timestamp_last_contact:
type:
- 'null'
- string
description: Timestamp of the last contact with the lead
readOnly: true
format: date-time
example: '2026-08-13T11:11:55.811Z'
timestamp_last_open:
type:
- 'null'
- string
description: Timestamp of the last email open
readOnly: true
format: date-time
example: '2026-08-13T11:11:55.811Z'
timestamp_last_reply:
type:
- 'null'
- string
description: Timestamp of the last email reply
readOnly: true
format: date-time
example: '2026-08-13T11:11:55.811Z'
timestamp_last_interest_change:
type:
- 'null'
- string
description: Timestamp of the last interest status change
readOnly: true
format: date-time
example: '2026-08-13T11:11:55.811Z'
timestamp_last_click:
type:
- 'null'
- string
description: Timestamp of the last email click
readOnly: true
format: date-time
example: '2026-08-13T11:11:55.811Z'
enrichment_status:
type: number
description: Enrichment status of the lead
readOnly: true
enum:
- 1
- -1
- 11
- -2
x-enumDescriptions:
'1': Enriched
'11': Pending
'-1': Enrichment data not available
'-2': Error
example: 1
list_id:
type:
- 'null'
- string
description: List ID associated with the lead
format: uuid
example: 019ffad2-53a3-7590-935f-b491178cb297
last_contacted_from:
type:
- 'null'
- string
description: Source of the last contact
readOnly: true
example: email
uploaded_by_user:
type:
- 'null'
- string
description: ID of the user who uploaded the lead
readOnly: true
format: uuid
example: 019ffad2-53a3-7590-935f-b492c5a4251f
upload_method:
type: string
description: Method used to upload the lead
readOnly: true
enum:
- manual
- api
- website-visitor
x-enumDescriptions:
manual: Manual
api: API
website-visitor: Website Visitor
example: manual
assigned_to:
type:
- 'null'
- string
description: ID of the user assigned to the lead
format: uuid
example: 019ffad2-53a3-7590-935f-b4938179e96d
is_website_visitor:
type:
- 'null'
- boolean
description: Indicates if the lead is a website visitor
readOnly: true
example: true
timestamp_last_touch:
type:
- 'null'
- string
description: Timestamp of the last touch with the lead
readOnly: true
format: date-time
example: '2026-08-13T11:11:55.811Z'
esp_code:
type: number
description: ESP code associated with the lead
readOnly: true
enum:
- 0
- 1
- 2
- 3
- 8
- 9
- 10
- 12
- 13
- 999
- 1000
x-enumDescriptions:
'0': In Queue
'1': Google
'2': Microsoft
'3': Zoho
'8': AirMail
'9': Yahoo
'10': Yandex
'12': Web.de
'13': Libero.it
'999': Other
'1000': Not Found
example: 1
esg_code:
type: number
description: ESG code associated with the lead
readOnly: true
enum:
- 0
- 1
- 2
- 3
- 4
x-enumDescriptions:
'0': In Queue
'1': Barracuda
'2': Mimecast
'3': Proofpoint
'4': Cisco
example: 1
required:
- id
- timestamp_created
- timestamp_updated
- organization
- status
- email_open_count
- email_reply_count
- email_click_count
- company_domain
- status_summary
additionalProperties: false
BackgroundJob:
title: Background Job
description: A background job that can be used to perform long-running tasks
x-tags:
- Schemas
- BackgroundJob
type: object
properties:
id:
type: string
description: Unique identifier for the background job
readOnly: true
example: 675266e304a8e55b17f0228b
workspace_id:
type: string
description: Workspace ID
readOnly: true
format: uuid
example: 019ffad2-5c7d-70c2-b6ec-8a2d0ca3333c
user_id:
type:
- 'null'
- string
description: The id of the user that triggered the action that created the job
readOnly: true
format: uuid
example: 019ffad2-5c7d-70c2-b6ec-8a2e0ec0b7f1
type:
type: string
description: Type of background job
enum:
- move-leads
- import-leads
- export-leads
- update-warmup-accounts
- rename-variable
- broadcast-ai-generate
- broadcast-website-scrape
- import-subscribers-from-crm
- resync-subscriber-crm-tags
x-enumDescriptions:
move-leads: Move Leads
import-leads: Import Leads
export-leads: Export Leads
update-warmup-accounts: Update Warmup Accounts
rename-variable: Rename Variable
broadcast-ai-generate: AI broadcast generation
broadcast-website-scrape: Broadcast website analysis
import-subscribers-from-crm: Import Subscribers From CRM
resync-subscriber-crm-tags: Re-sync Subscriber CRM Tags
example: move-leads
entity_id:
type:
- 'null'
- string
description: The id of the entity that the job is related to
format: uuid
example: 019ffad2-5c7d-70c2-b6ec-8a2f7b30b3ce
entity_type:
type: string
description: Type of entity
enum:
- list
- campaign
- workspace
- broadcast
- subscriber-group-sync
- subscriber-group
x-enumDescriptions:
list: The entity is a lead list
campaign: The entity is a campaign
workspace: The entity is a workspace
broadcast: The entity is an email-marketing broadcast
subscriber-group-sync: The entity is a subscriber-group sync
subscriber-group: The entity is a subscriber group
example: list
data:
type: object
description: Data about the job, used to store any additional information we need to process the job
properties:
moved_lead_emails:
type: array
description: For `move-leads` jobs, up to the first 10,000 email addresses of leads that actually moved or copied
to the destination after all filters were applied. Use `moved_leads` for the full count.
items:
type: string
format: email
example: jane@example.com
example:
- jane@example.com
- john@example.com
additionalProperties: true
progress:
type: number
description: Progress of the job as a percentage (from 0 to 100)
minimum: 0
maximum: 100
example: 0
status:
type: string
description: Job status
enum:
- pending
- in-progress
- success
- failed
- draining
- paused
- cancelled
x-enumDescriptions:
pending: The background job is waiting in the queue to be processed
in-progress: The background job is being processed
success: The background job has been successfully processed
failed: The background job has failed
draining: The background job is replaying deferred live events
paused: The background job is paused (e.g. waiting for quota or auth)
cancelled: The background job was cancelled by the user
example: pending
created_at:
type: string
description: Timestamp when the job was created
example: '2026-08-13T11:11:58.077Z'
updated_at:
type: string
description: Timestamp when the job was last updated
example: '2026-08-13T11:11:58.077Z'
required:
- id
- workspace_id
- type
- progress
- status
- created_at
- updated_at
additionalProperties: false
CustomTag:
title: Custom Tag
description: A custom tag for organizing and categorizing accounts and campaigns. You can use them as filters in apis
that list accounts and campaigns.
x-tags:
- Schemas
- CustomTag
type: object
properties:
id:
type: string
description: Unique identifier for the custom tag
readOnly: true
format: uuid
example: 019ffad2-5c81-7249-9039-cc6326ab04d5
timestamp_created:
type: string
description: Timestamp when the custom tag was created
readOnly: true
format: date-time
example: '2026-08-13T11:11:58.081Z'
timestamp_updated:
type: string
description: Timestamp when the custom tag was last updated
readOnly: true
format: date-time
example: '2026-08-13T11:11:58.081Z'
organization_id:
type: string
description: Organization ID that owns this custom tag
readOnly: true
format: uuid
example: 019ffad2-5c81-7249-9039-cc64ecc57a50
label:
type: string
description: Display label for the custom tag. Must be unique per workspace after trimming whitespace.
minLength: 1
pattern: .*\S.*
example: Important
description:
type:
- 'null'
- string
description: Detailed description of the custom tag purpose
example: Used for marking important items
required:
- id
- timestamp_created
- timestamp_updated
- organization_id
- label
additionalProperties: false
CustomTagMapping:
title: Custom Tag Mapping
description: This entity represents a tag being assigned to a specific campaign or email account. When an email account
is assigned a tag, a new custom tag mapping entry is created, which connects the tag (`tag_id` field) with the email
account (`resource_id` field). You can use it to see which tag si connected to which resource.
x-tags:
- Schemas
- CustomTagMapping
type: object
properties:
id:
type: string
description: A Unique identifier
readOnly: true
format: uuid
example: 019ffad2-5d0f-78fe-84ff-6c9de04ca9eb
tag_id:
type: string
description: ID of the tag this custom mapping belongs to
readOnly: true
format: uuid
example: 019ffad2-5d0f-78fe-84ff-6c9ef57a3dd5
resource_id:
type: string
description: ID of the resource custom tag mapping belongs to, resource_type determines the type of resource
readOnly: true
format: uuid
example: 019ffad2-5d0f-78fe-84ff-6c9f619d8285
resource_type:
type: number
description: Resource type of custom tag, can be 1 for campaigns or 2 for accounts
readOnly: true
enum:
- 1
- 2
x-enumDescriptions:
'1': Account
'2': Campaign
example: 1
timestamp_created:
type: string
description: Timestamp when the custom tag mapping was created
readOnly: true
format: date-time
example: '2026-08-13T11:11:58.223Z'
organization_id:
type: string
description: Organization ID that owns this custom tag mapping
readOnly: true
format: uuid
example: 019ffad2-5d0f-78fe-84ff-6ca0b62afe64
required:
- id
- tag_id
- resource_id
- resource_type
- timestamp_created
- organization_id
additionalProperties: false
BlockListEntry:
title: Block List Entry
description: A blocked email or domain
x-tags:
- Schemas
- BlockListEntry
type: object
properties:
id:
type: string
description: Unique identifier for the block list entry
readOnly: true
format: uuid
example: 019ffad2-5c92-7661-8a8c-f217e75a6de9
timestamp_created:
type: string
description: Timestamp when the block list entry was created
readOnly: true
format: date-time
example: '2026-08-13T11:11:58.098Z'
organization_id:
type: string
description: Organization ID that owns this block list entry
readOnly: true
format: uuid
example: 019ffad2-5c92-7661-8a8c-f21814c7d520
bl_value:
type: string
description: The email or domain to block
example: example.com
is_domain:
type: boolean
description: Whether this entry blocks an entire domain
readOnly: true
example: true
required:
- id
- timestamp_created
- organization_id
- bl_value
- is_domain
additionalProperties: false
LeadLabel:
title: Lead Label
description: A custom label for categorizing and managing leads
x-tags:
- Schemas
- LeadLabel
type: object
properties:
id:
type: string
description: Unique identifier for the custom lead label
readOnly: true
format: uuid
example: 019ffad2-5c9b-7ff3-9287-8976b56d4ef2
timestamp_created:
type: string
description: Timestamp when the custom lead label was created
readOnly: true
format: date-time
example: '2026-08-13T11:11:58.107Z'
created_by:
type: string
description: User ID of the creator of this label
readOnly: true
format: uuid
example: 019ffad2-5c9b-7ff3-9287-897737ef85de
organization_id:
type: string
description: Organization ID that owns this custom lead label
readOnly: true
format: uuid
example: 019ffad2-5c9b-7ff3-9287-897806175ea0
label:
type: string
description: Display label for the custom lead label
example: Hot Lead
interest_status_label:
type: string
description: Interest status label associated with this label
enum:
- positive
- negative
- neutral
x-enumDescriptions:
positive: Positive
negative: Negative
neutral: Neutral
example: positive
interest_status:
type: number
description: Interest status associated with this label. This is generated automatically by us.
readOnly: true
example: 1
description:
type:
- 'null'
- string
description: Detailed description of the custom lead label purpose
example: Used for marking high-priority leads
use_with_ai:
type:
- 'null'
- boolean
description: Whether this label should be used with AI features
example: false
required:
- id
- timestamp_created
- created_by
- organization_id
- label
- interest_status_label
- interest_status
additionalProperties: false
Workspace:
title: Workspace
description: A workspace entity representing a workspace
x-tags:
- Schemas
- Workspace
type: object
properties:
id:
type: string
description: Unique identifier for the workspace
readOnly: true
format: uuid
example: 019ffad2-5cac-7fb9-a336-43df778ad26c
timestamp_created:
type: string
description: Timestamp when the workspace was created
readOnly: true
format: date-time
example: '2026-08-13T11:11:58.124Z'
timestamp_updated:
type: string
description: Timestamp when the workspace was last updated
readOnly: true
format: date-time
example: '2026-08-13T11:11:58.124Z'
scheduled_for_removal_at:
type:
- 'null'
- string
description: Timestamp when this workspace is scheduled to be removed
readOnly: true
format: date-time
example: '2026-08-13T11:11:58.124Z'
owner:
type: string
description: User ID of the workspace owner
readOnly: true
format: uuid
example: 019ffad2-5cac-7fb9-a336-43e00eee8acc
name:
type: string
description: Name of the workspace
example: My Workspace
plan_id:
type:
- 'null'
- string
description: Plan ID for workspace
readOnly: true
example: pid_hg_v1
plan_id_bundle:
type:
- 'null'
- string
description: Plan ID for workspace bundle
readOnly: true
example: pid_bundle_scale_v2
add_unsub_to_block:
type:
- 'null'
- boolean
description: Whether to add unsubscribes to block list
example: false
default_opportunity_value:
type:
- 'null'
- number
description: Default value for opportunities
example: 250
plan_id_leadfinder:
type:
- 'null'
- string
description: Plan ID for leadfinder
readOnly: true
example: pid_lf_ls_v1
plan_id_verification:
type: object
description: Plan ID for verification service
readOnly: true
properties:
quantity:
type: number
example: 5
product_id:
type: string
example: pid_verify_v1_monthly
timestamp_updated:
type: string
format: date-time
example: '2024-07-22T05:56:58.667Z'
org_logo_url:
type:
- 'null'
- string
description: URL to workspace logo
example: https://example.com/logo.png
org_client_domain:
type:
- 'null'
- string
description: The domain for the white label agency mode
readOnly: true
example: example.com
plan_id_crm:
type:
- 'null'
- string
description: Plan ID for CRM
readOnly: true
example: pid_crm_v1
plan_id_website_visitor:
type:
- 'null'
- string
description: Plan ID for website visitor tracking
readOnly: true
example: pid_wvw_v1
plan_id_inbox_placement:
type:
- 'null'
- string
description: Plan ID for inbox placement
readOnly: true
example: pid_ip_v1
required:
- id
- timestamp_created
- timestamp_updated
- owner
- name
additionalProperties: false
SuperSearchEnrichment:
title: SuperSearch Enrichment
description: An enrichment can take different forms, such as email enrichment or LinkedIn enrichment. Leads may be imported
from SuperSearch using the dedicated endpoint, or enriched directly within a list or campaign by attaching an enrichment
to it.
x-tags:
- Schemas
- SuperSearchEnrichment
type: object
properties:
id:
type: string
description: Unique identifier for the enrichment
readOnly: true
example: 01234567-89ab-cdef-0123-456789abcdef
limit:
type:
- 'null'
- number
description: The maximum number of leads to enrich
example: 100
organization_id:
type: string
description: Organization ID that created this enrichment
readOnly: true
format: uuid
example: 01234567-89ab-cdef-0123-456789abcdef
enrichment_payload:
type: object
description: Enrichment payload
additionalProperties: true
auto_update:
type:
- 'null'
- boolean
description: Whether new leads added to the resource will be automatically enriched using these same settings
example: true
skip_rows_without_email:
type:
- 'null'
- boolean
description: Whether the fully enriched profile enrichment will run even if we don't find an email
example: true
in_progress:
type:
- 'null'
- boolean
description: Whether the enrichment is in progress
example: true
type:
type: string
description: Enrichment type to add to the resource
enum:
- work_email_enrichment
- fully_enriched_profile
- email_verification
- joblisting
- technologies
- news
- funding
- engagement_score
- ai_enrichment
- custom_flow
x-enumDescriptions:
work_email_enrichment: Work Email Enrichment
fully_enriched_profile: LinkedIn Enrichment
email_verification: Email Verification
joblisting: Job Listing Enrichment
technologies: Technologies Enrichment
news: News Enrichment
funding: Funding Enrichment
ai_enrichment: AI Enrichment
custom_flow: Custom Flow Enrichment
example: email_verification
resource_id:
type: string
description: Unique identifier for the entity to enrich leads into
readOnly: true
format: uuid
example: 01234567-89ab-cdef-0123-456789abcdef
resource_type:
type: number
description: Type of the entity to enrich leads into
readOnly: true
enum:
- 1
- 2
x-enumDescriptions:
'1': Campaign
'2': List
example: 1
required:
- id
- organization_id
- resource_id
- resource_type
additionalProperties: false
WorkspaceGroupMember:
title: Workspace Group Member
description: A member of a workspace group. You can use the endpoints within this entity to manage the members of a
workspace group.
x-tags:
- Schemas
- WorkspaceGroupMember
type: object
properties:
id:
type: string
description: The unique identifier of the workspace group member
readOnly: true
format: uuid
example: 019ffad2-5cb9-7412-a999-64692fd736c0
admin_workspace_id:
type: string
description: The id of the admin workspace
readOnly: true
format: uuid
example: 019ffad2-5cb9-7412-a999-646a93637819
sub_workspace_id:
type: string
description: The id of the sub workspace
format: uuid
example: 019ffad2-5cb9-7412-a999-646b69b0d7b4
status:
type: string
enum:
- pending
- accepted
- rejected
x-enumDescriptions:
pending: The member has been invited to the workspace group but has not yet accepted the invitation.
accepted: The member has accepted the invitation to the workspace group.
rejected: The member has rejected the invitation to the workspace group.
example: accepted
timestamp_created:
type: string
readOnly: true
format: date-time
example: '2026-08-13T11:11:58.137Z'
timestamp_updated:
type: string
readOnly: true
format: date-time
example: '2026-08-13T11:11:58.137Z'
sub_workspace_name:
type:
- 'null'
- string
description: The name of the sub workspace.
readOnly: true
example: My Workspace
admin_workspace_name:
type:
- 'null'
- string
description: The name of the admin workspace.
readOnly: true
example: My Workspace
required:
- id
- admin_workspace_id
- sub_workspace_id
- status
- timestamp_created
- timestamp_updated
additionalProperties: false
WorkspaceMember:
title: Workspace Member
description: A member of a workspace with associated user details
x-tags:
- Schemas
- WorkspaceMember
type: object
properties:
id:
type: string
description: Unique identifier for the workspace member
readOnly: true
format: uuid
example: 019ffad2-5cbe-7e77-99c9-572e4c014d26
email:
type: string
description: Email address of the workspace member
format: email
example: user@example.com
user_id:
type: string
description: User ID of the workspace member
readOnly: true
format: uuid
example: 019ffad2-5cbe-7e77-99c9-572f77591cee
user_email:
type:
- 'null'
- string
description: Email address of the user
format: email
example: user@example.com
nickname:
type:
- 'null'
- string
description: Private workspace member nickname visible only to the workspace owner
maxLength: 80
example: Finance lead
name:
type: object
readOnly: true
properties:
first:
type: string
description: Workspace member first name
example: John
last:
type: string
description: Workspace member last name
example: Smith
role:
type: string
description: THe role of the workspace member defining their access level. While the "owner" role is listed in the
enum, it cannot be created via the API, and is only assigned to the user who creates the workspace.
enum:
- owner
- admin
- editor
- view
- client
x-enumDescriptions:
owner: Owner - Full access and workspace management
admin: Admin - Full access except workspace deletion
editor: Editor - Can edit but not manage workspace settings
view: View - Read-only access
client: This is a special role for users in the whitelabel (agency) view. It is not available in the API.
example: editor
timestamp_created:
type: string
description: Timestamp when the workspace member was created
readOnly: true
format: date-time
example: '2026-08-13T11:11:58.142Z'
workspace_id:
type: string
description: ID of the workspace this member belongs to
readOnly: true
format: uuid
example: 019ffad2-5cbe-7e77-99c9-57309a0d4904
accepted:
type: boolean
description: Whether the member has accepted the workspace invitation
readOnly: true
example: false
issuer_id:
type:
- 'null'
- string
description: ID of the user who added this member to the workspace
readOnly: true
format: uuid
example: 019ffad2-5cbe-7e77-99c9-57317b39276f
permissions:
type:
- 'null'
- array
description: The permissions for this workspace member. Used in the app to restrict access to certain sections
items:
type: string
enum:
- dashboard.view
- campaigns.view
- campaigns.create
- campaigns.edit
- campaigns.delete
- organization.manage
- organization.integrations
- organization.billing
- organization.users.manage
- leadFinder.view
- customLeadLabels.create
- customLeadLabels.edit
- customLeadLabels.delete
- unibox.all
- analytics.view
- websiteChat.view
- websiteChat.manage
- agency.manage
- accounts.view
- accounts.manage
- leadManagement.view
- leads.move
- crm.view
- websiteVisitors.view
- blocklist.manage
- preferences.manage
- inboxPlacement.view
- aiAgents.manage
- workspaceGroupMembers.invite
- workspaceGroupMembers.remove
- workspaceGroupMembers.leave
examples:
- unibox.all
x-enumDescriptions:
dashboard.view: View the dashboard
campaigns.view: View campaigns
campaigns.create: Create campaigns
campaigns.edit: Edit campaigns
campaigns.delete: Delete campaigns
organization.manage: Manage organization
organization.integrations: Manage organization integrations
organization.billing: Manage organization billing
organization.users.manage: Manage organization users
leadFinder.view: View lead finder
customLeadLabels.create: Create custom lead labels
customLeadLabels.edit: Edit custom lead labels
customLeadLabels.delete: Delete custom lead labels
unibox.all: View all unibox
analytics.view: View analytics
websiteChat.view: View Website Chat configuration
websiteChat.manage: Manage Website Chat configuration
agency.manage: Manage agency
accounts.view: View accounts
accounts.manage: Manage accounts
leadManagement.view: View lead management
leads.move: Move leads
crm.view: View CRM
websiteVisitors.view: View website visitors
blocklist.manage: Manage blocklist
preferences.manage: Manage preferences
inboxPlacement.view: Manage inbox placement
aiAgents.manage: Manage AI agents
workspaceGroupMembers.invite: Invite workspace group members
workspaceGroupMembers.remove: Remove workspace group members
workspaceGroupMembers.leave: Leave workspace group
example: unibox.all
required:
- id
- email
- user_id
- role
- timestamp_created
- workspace_id
- accepted
additionalProperties: false
CampaignSubsequence:
title: Campaign Subsequence
description: A subsequence entity representing a follow-up sequence
x-tags:
- Schemas
- CampaignSubsequence
type: object
properties:
id:
type: string
description: Unique identifier for the subsequence
readOnly: true
format: uuid
example: 019ffad2-5cc7-76f5-9fd3-25f814e7aa6b
timestamp_created:
type: string
description: Timestamp when the subsequence was created
readOnly: true
format: date-time
example: '2026-08-13T11:11:58.151Z'
parent_campaign:
type: string
description: ID of the parent campaign
format: uuid
example: 019ffad2-5cc7-76f5-9fd3-25f990e43646
workspace:
type: string
description: ID of the workspace this subsequence belongs to
readOnly: true
format: uuid
example: 019ffad2-5cc7-76f5-9fd3-25fa299a0c6f
status:
type: number
description: Status of the subsequence
readOnly: true
enum:
- -99
- -1
- -2
- 0
- 1
- 2
- 3
- 4
x-enumDescriptions:
'0': Draft - The subsequence is in draft mode and not yet active
'1': Active - The subsequence is currently running
'2': Paused - The subsequence has been manually paused
'3': Completed - The subsequence has finished running
'4': Running Subsequences - The subsequence has active child sequences
'-99': Account Suspended - The subsequence is suspended due to account issues
'-1': Accounts Unhealthy - The subsequence is paused due to unhealthy sending accounts
'-2': Bounce Protection - The subsequence is paused due to high bounce rates
example: 0
timestamp_leads_updated:
type: string
description: Timestamp when the leads were last updated
readOnly: true
format: date-time
example: '2026-08-13T11:11:58.151Z'
name:
type: string
description: Name of the subsequence
example: Follow-up sequence
conditions:
type: object
description: Conditions that trigger the subsequence
properties:
crm_status:
type: array
description: Lead CRM statuses that trigger the subsequence. Accepts the built-in statuses listed below, or
the interest status of a custom lead label.
items:
type: number
minimum: -30000
maximum: 30000
x-enumDescriptions:
'0': Out of Office
'1': Interested
'2': Meeting Booked
'3': Meeting Completed
'4': Won
'-1': Not Interested
'-2': Wrong Person
'-3': Lost
'-4': No Show
example: 1
lead_activity:
type: array
description: Lead activities that trigger the subsequence.
items:
type: number
enum:
- 4
- 91
- 2
x-enumDescriptions:
'2': Email Opened - Triggered when a lead opens an email
'4': Email Link Clicked - Triggered when a lead clicks a link in an email
'91': Campaign Completed Without Reply - Triggered when a campaign completes for a lead without receiving
a reply
example: 4
reply_contains:
type: string
example: 'yes'
subsequence_schedule:
type: object
description: Schedule configuration for the subsequence. When omitted on create, inherits the parent campaign's
schedule.
properties:
start_date:
type:
- 'null'
- string
format: date
description: Start date in YYYY-MM-DD format. Uses the campaign's timezone.
example: '2025-09-25'
end_date:
type:
- 'null'
- string
format: date
description: End date in YYYY-MM-DD format. Uses the campaign's timezone.
example: '2025-09-25'
schedules:
type: array
items:
type: object
properties:
name:
type: string
example: My Schedule
timing:
type: object
properties:
from:
type: string
pattern: ^([01][0-9]|2[0-3]):([0-5][0-9])$
example: 09:00
to:
type: string
pattern: ^([01][0-9]|2[0-3]):([0-5][0-9])$
example: '17:00'
required:
- from
- to
days:
type: object
minProperties: 1
properties:
'0':
type: boolean
example: true
'1':
type: boolean
example: true
'2':
type: boolean
example: true
'3':
type: boolean
example: true
'4':
type: boolean
example: true
'5':
type: boolean
example: false
'6':
type: boolean
example: false
timezone:
type: string
enum:
- Etc/GMT+12
- Etc/GMT+11
- Etc/GMT+10
- America/Anchorage
- America/Dawson
- America/Creston
- America/Chihuahua
- America/Boise
- America/Belize
- America/Chicago
- America/Bahia_Banderas
- America/Regina
- America/Bogota
- America/Detroit
- America/Indiana/Marengo
- America/Caracas
- America/Asuncion
- America/Glace_Bay
- America/Campo_Grande
- America/Anguilla
- America/Santiago
- America/St_Johns
- America/Sao_Paulo
- America/Argentina/La_Rioja
- America/Araguaina
- America/Godthab
- America/Montevideo
- America/Bahia
- America/Noronha
- America/Scoresbysund
- Atlantic/Cape_Verde
- Africa/Casablanca
- America/Danmarkshavn
- Europe/Isle_of_Man
- Atlantic/Canary
- Africa/Abidjan
- Arctic/Longyearbyen
- Europe/Belgrade
- Africa/Ceuta
- Europe/Sarajevo
- Africa/Algiers
- Africa/Windhoek
- Asia/Nicosia
- Asia/Beirut
- Africa/Cairo
- Asia/Damascus
- Europe/Bucharest
- Africa/Blantyre
- Europe/Helsinki
- Europe/Istanbul
- Asia/Jerusalem
- Africa/Tripoli
- Asia/Amman
- Asia/Baghdad
- Europe/Kaliningrad
- Asia/Aden
- Africa/Addis_Ababa
- Europe/Kirov
- Europe/Astrakhan
- Asia/Tehran
- Asia/Dubai
- Asia/Baku
- Indian/Mahe
- Asia/Tbilisi
- Asia/Yerevan
- Asia/Kabul
- Antarctica/Mawson
- Asia/Yekaterinburg
- Asia/Karachi
- Asia/Kolkata
- Asia/Colombo
- Asia/Kathmandu
- Antarctica/Vostok
- Asia/Dhaka
- Asia/Rangoon
- Antarctica/Davis
- Asia/Novokuznetsk
- Asia/Hong_Kong
- Asia/Krasnoyarsk
- Asia/Brunei
- Australia/Perth
- Asia/Taipei
- Asia/Choibalsan
- Asia/Irkutsk
- Asia/Dili
- Asia/Pyongyang
- Australia/Adelaide
- Australia/Darwin
- Australia/Brisbane
- Australia/Melbourne
- Antarctica/DumontDUrville
- Australia/Currie
- Asia/Chita
- Antarctica/Macquarie
- Asia/Sakhalin
- Pacific/Auckland
- Etc/GMT-12
- Pacific/Fiji
- Asia/Anadyr
- Asia/Kamchatka
- Etc/GMT-13
- Pacific/Apia
example: Etc/GMT+12
required:
- name
- timing
- days
- timezone
minItems: 1
required:
- schedules
sequences:
type: array
description: List of sequences (the actual email copy). Even though this field is an array, only the first element
is used, so please provide only one array item, and add the steps to that array
items:
type: object
properties:
steps:
type: array
items:
type: object
properties:
type:
type: string
enum:
- email
x-enumDescriptions:
email: This steps represents an email
description: Type of step. This has to be 'email' always - it's the only supported type for now
example: email
delay:
type: number
description: The delay value before sending the NEXT email. The unit is determined by the delay_unit
field (defaults to days).
example: 2
delay_unit:
type: string
enum:
- minutes
- hours
- days
default: days
description: The unit of time for the delay value (minutes, hours, or days). Defaults to days for backward
compatibility.
example: days
pre_delay:
type: number
description: The delay value before sending the FIRST email in a subsequence. **Only applicable to subsequences**
- this field is ignored for regular campaigns. The unit is determined by the pre_delay_unit field
(defaults to days).
example: 2
pre_delay_unit:
type: string
enum:
- minutes
- hours
- days
default: days
description: The unit of time for the pre_delay value (minutes, hours, or days). **Only applicable to
subsequences** - this field is ignored for regular campaigns. Defaults to days for backward compatibility.
example: days
variants:
type: array
items:
type: object
properties:
subject:
type: string
example: Hello {{firstName}}
body:
type: string
description: Email body HTML. Use `
` tags for delivered email line breaks.
example: Hey {{firstName}},
I hope you are doing well.
v_disabled:
type: boolean
description: Whether this variant is disabled. By default, all the variants are enabled. Please
set this to true if you want to disable this variant
example: true
required:
- subject
- body
minItems: 1
maxItems: 26
contains:
type: object
not:
properties:
v_disabled:
enum:
- true
required:
- v_disabled
required:
- type
- delay
- variants
required:
- steps
auto_variant_select:
type:
- 'null'
- object
description: Automatically select the winning variant for each step using open, click, or reply rate. Set to `null`
to disable automatic selection.
properties:
trigger:
type: string
enum:
- reply_rate
- click_rate
- open_rate
examples:
- click_rate
example: click_rate
required:
- trigger
daily_limit_mode:
type: string
description: Daily limit mode for the subsequence. "inherit" uses the parent campaign limit, "custom" uses a subsequence-specific
limit, "unlimited" bypasses the campaign-level daily limit.
enum:
- inherit
- custom
- unlimited
example: inherit
daily_limit:
type:
- 'null'
- number
description: Custom daily limit for the subsequence. Only used when `daily_limit_mode` is "custom".
example: 50
ignore_account_daily_limit:
type: boolean
description: When enabled, the subsequence will send even when sending accounts have reached their daily limit.
example: false
required:
- id
- timestamp_created
- parent_campaign
- workspace
- status
- timestamp_leads_updated
- name
- conditions
additionalProperties: false
AuditLog:
title: Audit Log
description: Audit log records for tracking system activities
x-tags:
- Schemas
- AuditLog
type: object
properties:
id:
type: string
readOnly: true
format: uuid
example: 01234567-89ab-cdef-0123-456789abcdef
timestamp:
type: string
description: When the activity occurred
readOnly: true
format: date-time
example: '2026-08-13T11:11:58.168Z'
organization_id:
type: string
description: Organization ID associated with the activity
readOnly: true
format: uuid
example: 01234567-89ab-cdef-0123-456789abcdef
activity_type:
type: number
description: Type of activity performed
readOnly: true
enum:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
x-enumDescriptions:
'1': User login
'2': Lead deletion
'3': Campaign deletion
'4': Campaign launch
'5': Campaign pause
'6': Account addition
'7': Account deletion
'8': Lead moved
'9': Lead added
'10': Lead merged
'11': Campaign update
'12': Subsequence update
'18': Webhook created
'19': Webhook updated
'20': Webhook marked as error
'21': Webhook resumed
'22': TOTP enrollment started
'23': TOTP enabled
'24': TOTP replacement started
'25': TOTP replaced
'26': TOTP disabled
'27': MFA recovery codes generated
'28': MFA recovery code used
'29': MFA login challenge failed
'30': MFA login challenge failed too many times
'31': MFA login succeeded
'32': Subscriber import started
'33': Subscriber import cancelled
'34': Lead exported
'35': SuperSearch enrichment created
'36': Account update
'37': API key created
'38': API key deleted
example: 1
user_agent:
type:
- 'null'
- string
description: User agent of the client that performed the activity
readOnly: true
example: Mozilla/5.0...
user_id:
type:
- 'null'
- string
description: ID of the user who performed the activity
readOnly: true
format: uuid
example: 01234567-89ab-cdef-0123-456789abcdef
ip_address:
type: string
description: IP address from which the activity was performed
readOnly: true
example: 127.0.0.1
from_api:
type: boolean
description: Whether the activity was performed via API
readOnly: true
example: false
api_key_id:
type:
- 'null'
- string
description: API key ID that performed the activity, when available
readOnly: true
format: uuid
example: 01234567-89ab-cdef-0123-456789abcdef
affected_count:
type:
- 'null'
- number
description: Number of items affected by the activity
readOnly: true
example: 1
campaign_id:
type:
- 'null'
- string
description: Associated campaign ID if applicable
readOnly: true
format: uuid
example: 01234567-89ab-cdef-0123-456789abcdef
webhook_id:
type:
- 'null'
- string
description: Associated webhook ID if applicable
readOnly: true
format: uuid
example: 01234567-89ab-cdef-0123-456789abcdef
subsequence_id:
type:
- 'null'
- string
description: Associated subsequence ID if applicable
readOnly: true
format: uuid
example: 01234567-89ab-cdef-0123-456789abcdef
list_id:
type:
- 'null'
- string
description: Associated list ID if applicable
readOnly: true
format: uuid
example: 01234567-89ab-cdef-0123-456789abcdef
audit_metadata:
type: object
description: Sanitized metadata about the audit log
readOnly: true
additionalProperties: true
user_name:
type:
- 'null'
- string
description: Name of the user who performed the activity
readOnly: true
example: John Doe
required:
- id
- timestamp
- organization_id
- activity_type
- ip_address
- from_api
additionalProperties: false
Webhook:
title: Webhook
description: A webhook subscription for receiving event notifications
x-tags:
- Schemas
- Webhook
type: object
properties:
id:
type: string
description: Unique identifier for the webhook (UUID)
readOnly: true
format: uuid
example: 019ffad2-5cf8-732d-8cf0-4144af749c8b
organization:
type: string
description: Organization (workspace) UUID that owns this webhook
readOnly: true
format: uuid
example: 019ffad2-5cf8-732d-8cf0-4145e239bac6
campaign:
type:
- 'null'
- string
description: Optional campaign UUID to filter events (null = all campaigns in workspace)
format: uuid
example: 019ffad2-5cf8-732d-8cf0-41466f7573b6
name:
type:
- 'null'
- string
description: Optional user-defined name for the webhook
example: Zapier Positive Replies
target_hook_url:
type: string
description: Target URL to send webhook payloads
format: uri
pattern: ^https?://
example: https://webhook.site/unique-url
event_type:
type:
- 'null'
- string
description: Type of event to trigger the webhook (null for custom label events). Set to "all_events" to subscribe
to all events - including custom label events
enum:
- all_events
- email_sent
- email_opened
- email_link_clicked
- reply_received
- email_bounced
- lead_unsubscribed
- campaign_completed
- account_error
- lead_neutral
- lead_interested
- lead_not_interested
- lead_meeting_booked
- lead_meeting_completed
- lead_closed
- lead_out_of_office
- lead_wrong_person
- lead_no_show
- supersearch_enrichment_completed
example: email_sent
custom_interest_value:
type:
- 'null'
- number
description: Custom interest value - corresponds to LeadLabel.interest_status (used for custom label events)
example: 1
headers:
type:
- 'null'
- object
description: Optional HTTP headers to include when delivering webhook payloads (key-value pairs)
additionalProperties:
type: string
examples:
- Basic dXNlcm5hbWU6cGFzc3dvcmQ=
example: Basic dXNlcm5hbWU6cGFzc3dvcmQ=
example:
Authorization: Basic dXNlcm5hbWU6cGFzc3dvcmQ=
timestamp_created:
type: string
description: Timestamp when the webhook was created
readOnly: true
format: date-time
example: '2026-08-13T11:11:58.201Z'
status:
type:
- 'null'
- number
description: 'Webhook status: 1 = active, -1 = error (disabled due to delivery failures)'
readOnly: true
example: 1
timestamp_error:
type:
- 'null'
- string
description: Timestamp when webhook was disabled due to delivery failures (null if active)
readOnly: true
format: date-time
example: '2026-08-13T11:11:58.201Z'
required:
- id
- organization
- target_hook_url
- timestamp_created
additionalProperties: false
WebhookEvent:
title: Webhook Event
description: A webhook event that was sent or attempted to be sent
x-tags:
- Schemas
- WebhookEvent
type: object
properties:
id:
type: string
description: Unique identifier for the webhook event (UUID)
readOnly: true
format: uuid
example: 019ffad2-5d00-702c-b737-7642203d0bba
timestamp_created:
type: string
description: Timestamp when the webhook event was created
readOnly: true
format: date-time
example: '2026-08-13T11:11:58.208Z'
timestamp_created_date:
type: string
description: Date when the webhook event was created (for partitioning)
readOnly: true
format: date
example: '2024-01-15'
organization_id:
type: string
description: Organization (workspace) UUID that owns this webhook event
readOnly: true
format: uuid
example: 019ffad2-5d00-702c-b737-76437f425f66
payload:
type: object
description: JSON payload that was sent/attempted to be sent
readOnly: true
additionalProperties: true
success:
type: boolean
description: Whether the webhook call was successful
readOnly: true
example: true
retry_count:
type: number
description: Number of retry attempts made
readOnly: true
example: 0
will_retry:
type: boolean
description: Whether the webhook will be retried
readOnly: true
example: false
webhook_url:
type: string
description: Target URL where the webhook was sent
readOnly: true
example: https://webhook.site/unique-url
status_code:
type:
- 'null'
- number
description: HTTP status code received from the webhook endpoint (if any)
readOnly: true
example: 200
error_message:
type:
- 'null'
- string
description: Error message if the webhook failed
readOnly: true
example: Connection timeout
timestamp_next_retry:
type:
- 'null'
- string
description: Timestamp for the next retry attempt (if applicable)
readOnly: true
format: date-time
example: '2026-08-13T11:11:58.208Z'
retry_group_id:
type:
- 'null'
- string
description: UUID for grouping retry attempts
readOnly: true
format: uuid
example: 019ffad2-5d00-702c-b737-764407a691d8
retry_successful:
type:
- 'null'
- boolean
description: Whether the retry was successful (for retry events)
readOnly: true
example: true
lead_email:
type:
- 'null'
- string
description: Email address of the lead associated with this webhook event
readOnly: true
example: lead@example.com
response_time_ms:
type:
- 'null'
- number
description: Response time in milliseconds for the webhook call
readOnly: true
example: 150
required:
- id
- timestamp_created
- timestamp_created_date
- organization_id
- success
- retry_count
- will_retry
- webhook_url
additionalProperties: false
DFYEmailAccountOrder:
title: DFY Email Account Order
description: A Done-For-You email account order
x-tags:
- Schemas
- DFYEmailAccountOrder
type: object
properties:
workspace_id:
type: string
description: ID of the workspace associated with the email account order
readOnly: true
example: workspace_12345
domain:
type: string
description: Domain of the email account
readOnly: true
example: example.com
forwarding_domain:
type:
- 'null'
- string
description: Forwarding domain for the email account, if any
example: forward.example.com
forwarding_mode:
type:
- 'null'
- string
description: How the forwarding domain is applied. Null when no forwarding is configured.
enum:
- redirect
- stealth
- null
x-enumDescriptions:
redirect: Visitors are redirected and the browser URL changes to the forwarding domain
stealth: Visitors stay on this domain while the content is proxied from the forwarding domain
example: redirect
is_pre_warmed_up:
type:
- 'null'
- boolean
description: Indicates if the account is pre-warmed up
example: true
timestamp_cancelled:
type:
- 'null'
- string
description: Timestamp when the order was cancelled, if applicable
readOnly: true
format: date-time
example: '2026-08-13T11:11:58.212Z'
timestamp_created:
type: string
description: Timestamp when the order was created
readOnly: true
format: date-time
example: '2026-08-13T11:11:58.212Z'
required:
- workspace_id
- domain
- timestamp_created
additionalProperties: false
CustomPromptTemplate:
title: Custom Prompt Template
description: Custom prompt templates for creating custom prompts
x-tags:
- Schemas
- CustomPromptTemplate
type: object
properties:
id:
type: string
readOnly: true
example: '1'
workspace_id:
type: string
readOnly: true
format: uuid
example: 019ffad2-5d18-7489-ad6d-cb03bac5336a
created_by:
type: string
readOnly: true
format: uuid
example: 019ffad2-5d18-7489-ad6d-cb04732e9705
name:
type: string
example: Prompt template name
description:
type:
- 'null'
- string
example: Prompt template description
category:
type: number
description: Prompt Custom template category
enum:
- 1
- 2
- 3
- 4
- 5
- 6
x-enumDescriptions:
'1': Copywriting
'2': Cleaning
'3': Sales
'4': Marketing
'5': Other
'6': Personalization
example: 1
properties:
type:
- 'null'
- array
items:
type: object
properties:
name:
type: string
examples:
- Property name
example: Property name
property:
type: string
examples:
- '{{property1}}'
example: '{{property1}}'
prompt:
type: string
example: Generate a name using {{property_1}} and {{property_2}} combination.
is_public:
type: boolean
example: true
model_version:
type: string
enum:
- '3.5'
- gpt-5
- gpt-5.4
- gpt-5-mini
- gpt-5-nano
- '4.0'
- 4.0-Omni
- gpt-4o
- o3
- gpt-4.1
- gpt-4.1-mini
- claude-4.5-sonnet
- claude-4.6-sonnet
- r1
- grok-4.3
- gemini-3.0-flash
- gemini-3.5-flash
- instantly-ai-lightspeed-agent
- sonar
- sonar-pro
x-enumDescriptions:
'3.5': GPT-3.5
gpt-5: GPT-5
gpt-5.4: GPT-5.4
gpt-5-mini: GPT-5 Mini
gpt-5-nano: GPT-5 Nano
'4.0': GPT-4.0
4.0-Omni: GPT-4.0 Omni
gpt-4o: GPT-4O
o3: O3
gpt-4.1: GPT-4.1
gpt-4.1-mini: GPT-4.1 Mini
claude-4.5-sonnet: Claude 4.5 Sonnet
claude-4.6-sonnet: Claude 4.6 Sonnet
r1: R1
grok-4.3: Grok 4.3
gemini-3.0-flash: Gemini 3.0 Flash
gemini-3.5-flash: Gemini 3.5 Flash
sonar: Sonar
sonar-pro: Sonar Pro
instantly-ai-lightspeed-agent: Instantly AI Lightspeed Agent
example: '3.5'
from_shared:
type:
- 'null'
- boolean
example: false
like_count:
type:
- 'null'
- number
readOnly: true
example: 50
execution_count:
type:
- 'null'
- number
readOnly: true
example: 20
liked:
type:
- 'null'
- boolean
readOnly: true
example: true
template_type:
type:
- 'null'
- string
description: Custom Prompt template type
enum:
- custom
- public
x-enumDescriptions:
custom: custom
public: public
example: public
created_by_instantly:
type:
- 'null'
- boolean
readOnly: true
example: true
creator:
type:
- 'null'
- object
readOnly: true
properties:
id:
type: string
examples:
- 019ffad2-5d18-7489-ad6d-cb05c58f160c
example: 019ffad2-5d18-7489-ad6d-cb05c58f160c
payload:
type: object
properties:
name:
type: object
properties:
first:
type: string
examples:
- John
example: John
last:
type: string
examples:
- Smith
example: Smith
required:
- id
- workspace_id
- created_by
- name
- category
- prompt
- is_public
additionalProperties: false
SalesFlow:
title: Sales Flow
description: Manages how sales users view and interact with campaign and lead lists within the sales flow.
x-tags:
- Schemas
- SalesFlow
type: object
properties:
id:
type: string
readOnly: true
format: uuid
example: 019ffad2-5d0a-74f6-a6a9-8fb9d6f9393d
timestamp_created:
type: string
description: Date and time when sales flow created
readOnly: true
format: date-time
example: '2026-08-13T11:11:58.218Z'
organization_id:
type: string
description: Organization ID associated with the sales flow
readOnly: true
format: uuid
example: 019ffad2-5d0a-74f6-a6a9-8fbacdfb104c
name:
type: string
description: Name of the sales flow
example: Smart view name
is_default:
type:
- 'null'
- boolean
description: Indicates whether this sales flow is set as the default one for the user or workspace.
example: true
queries:
type: array
description: An object containing the sales flow queries
items:
type: object
required:
- actionType
- values
description: Smart view query to filter leads
properties:
actionType:
type: string
enum:
- reply
- email-open
- last-contacted
- link-click
- lead-status
- lead-status-change
example: email-open
values:
type: object
properties:
occurrence-days:
type: number
example: 1
occurrence-count:
type: object
properties:
condition:
type: string
enum:
- more
- less
- equal
example: more
count:
type: number
example: 1
lead-status:
type: object
properties:
status:
type: number
example: 1
condition:
type: string
enum:
- is
- is-not
example: is
example:
actionType: email-open
values:
occurrence-days: 1
created_by:
type: string
description: UUID of the user who created the sales flow.
readOnly: true
format: uuid
example: 019ffad2-5d0a-74f6-a6a9-8fbbeac6eb7a
list_id:
type:
- 'null'
- string
description: The ID of the list, can be "all-lists" in case of all.
example: 019ffad2-5d0a-74f6-a6a9-8fbc47402eee
campaign_id:
type:
- 'null'
- string
description: The ID of the campaign. Set to null when "all-campaigns" is passed.
example: 019ffad2-5d0a-74f6-a6a9-8fbdec23b3dc
list_name:
type:
- 'null'
- string
description: 'The name of the list. '
readOnly: true
example: List name
campaign_name:
type:
- 'null'
- string
description: The name of the campaign.
readOnly: true
example: 'Campaign #1'
required:
- id
- timestamp_created
- organization_id
- name
- queries
- created_by
additionalProperties: false
EmailTemplate:
title: Email Template
description: A campaign email template
x-tags:
- Schemas
- EmailTemplate
type: object
properties:
id:
type: string
description: A Unique identifier
readOnly: true
format: uuid
example: 019ffad2-5d20-7532-823e-50669487dcd3
timestamp_created:
type: string
description: Timestamp when the email template was added to our database.
readOnly: true
format: date-time
example: '2026-08-13T11:11:58.240Z'
body:
type: string
description: An body of the email template on html or text format
example: This is a test email
name:
type: string
description: An email template name
example: Test Email Template
subject:
type:
- 'null'
- string
description: An email template subject
example: Test Email template Subject
organization:
type: string
description: The workspace ID
readOnly: true
format: uuid
example: 019ffad2-5d20-7532-823e-50675bcc2284
required:
- id
- timestamp_created
- body
- name
- organization
additionalProperties: false
WorkspaceBilling:
title: Workspace Billing
description: Workspace Billing
x-tags:
- Schemas
- WorkspaceBilling
type: object
properties: {}
required: []
additionalProperties: false
CRMActions:
title: CRM Actions
description: CRM related actions
x-tags:
- Schemas
- CRMActions
type: object
properties: {}
required: []
additionalProperties: false
paths:
/api/v2/account-campaign-mappings/{email}:
get:
operationId: getAccountCampaignMapping
summary: Get campaigns associated with an email
tags:
- AccountCampaignMapping
description: 'Requires one of the following scopes: `account_campaign_mappings:read`, `account_campaign_mappings:all`,
`all:read`, `all:all`'
parameters:
- schema:
type: number
example: 10
example: 10
in: query
name: limit
required: false
- schema:
type: string
example: '2025-03-07T00:00:00.000Z'
example: '2025-03-07T00:00:00.000Z'
in: query
name: starting_after
required: false
- schema:
type: string
example: user@example.com
example: user@example.com
in: path
name: email
required: true
description: Email
responses:
'200':
description: The list of Account Campaign Mapping
content:
application/json:
schema:
type: object
properties:
items:
type: array
description: The list of Account Campaign Mapping
items:
$ref: '#/components/schemas/AccountCampaignMapping'
next_starting_after:
type: string
examples:
- 019ffad2-9b0b-7bd4-8720-103e786cf662
- '2026-08-13T11:12:14.091Z'
description: The filter for getting the next items after this one, this could either be a UUID, a timestamp,
on an email depending on the specific API
example: 019ffad2-9b0b-7bd4-8720-103e786cf662
additionalProperties: false
required:
- items
'401':
description: This request is unauthorized (either the Authorization header is missing or invalid, or the API key
has been revoked)
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 401
examples:
- 401
example: 401
error:
type: string
enum:
- Unauthorized
examples:
- Unauthorized
example: Unauthorized
message:
type: string
examples:
- Missing Authorization header
example: Missing Authorization header
required:
- statusCode
- error
- message
'402':
description: This request cannot be fulfilled because the workspace does not have an active paid plan
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 402
examples:
- 402
example: 402
error:
type: string
enum:
- Payment Required
examples:
- Payment Required
example: Payment Required
message:
type: string
examples:
- Workspace does not have an active paid plan
example: Workspace does not have an active paid plan
required:
- statusCode
- error
- message
'404':
description: The requested resource was not found
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 404
examples:
- 404
example: 404
error:
type: string
enum:
- Not Found
examples:
- Not Found
example: Not Found
message:
type: string
examples:
- Resource not found
example: Resource not found
required:
- statusCode
- error
- message
'429':
description: You have exceeded the rate limit. Please check the rate limit docs for more information.
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 429
examples:
- 429
example: 429
error:
type: string
enum:
- Too Many Requests
examples:
- Too Many Requests
example: Too Many Requests
message:
type: string
examples:
- Rate limit exceeded
example: Rate limit exceeded
required:
- statusCode
- error
- message
/api/v2/accounts:
post:
operationId: createAccount
summary: Create account
tags:
- Account
description: 'Requires one of the following scopes: `accounts:create`, `accounts:all`, `all:create`, `all:all`'
requestBody:
content:
application/json:
schema:
title: CreateAccount
description: The Account to create
type: object
properties:
email:
type: string
description: Email address of the account
format: email
example: user@example.com
first_name:
type: string
description: First name associated with the account
example: John
last_name:
type: string
description: Last name associated with the account
example: Doe
warmup:
type: object
description: Warmup configuration for the account
properties:
limit:
type: number
description: Email sending limit for the account
example: 100
advanced:
type: object
description: Advanced settings for the account
properties:
warm_ctd:
type: boolean
description: Whether the account is in warm CTD mode
example: false
open_rate:
type: number
description: Email open rate for the account
example: 0.95
important_rate:
type: number
description: Important email rate for the account
example: 0.8
read_emulation:
type: boolean
description: Whether read emulation is enabled
example: true
spam_save_rate:
type: number
description: Spam save rate for the account
example: 0.02
weekday_only:
type: boolean
description: Whether to send emails only on weekdays
example: true
warmup_custom_ftag:
type: string
description: Custom tag for the account
example: warmup
increment:
type: string
enum:
- disabled
- '0'
- '1'
- '2'
- '3'
- '4'
x-enumDescriptions:
'0': '0'
'1': '1'
'2': '2'
'3': '3'
'4': '4'
disabled: Disabled
description: Daily increment added to the sending limit, starting from 0, until the full daily limit
is reached (slow ramp). Gradually increases sending volume to improve deliverability. Set to `disabled`
to send at the full daily limit from day one.
example: disabled
reply_rate:
type: number
description: Reply rate for the account
example: 0.1
daily_limit:
type:
- number
- 'null'
description: Daily email sending limit
example: 100
tracking_domain_name:
type:
- string
- 'null'
description: Tracking domain
example: example.com
tracking_domain_status:
type:
- string
- 'null'
description: Tracking domain status
example: active
enable_slow_ramp:
type:
- boolean
- 'null'
description: Whether to enable slow ramp up for sending limits
example: false
inbox_placement_test_limit:
type:
- number
- 'null'
description: The limit for inbox placement tests
minimum: 0
example: 10
provider_code:
type: number
description: Provider code for the account. Please make sure to specify the right provider code, otherwise
your account will not work.
enum:
- 1
- 2
- 3
- 4
- 8
- 11
x-enumDescriptions:
'1': Custom IMAP/SMTP
'2': Google
'3': Microsoft
'4': AWS
'8': AirMail
'11': Airmail Instant
example: 2
sending_gap:
type: number
description: The gap between emails sent from this account in minutes (minimum wait time when used with
multiple campaigns)
minimum: 0
maximum: 1440
example: 10
signature:
type:
- string
- 'null'
description: Email signature for the account
example: Best regards, John Doe
reply_to:
type: string
example: reply@example.com
imap_username:
type: string
example: username
imap_password:
type: string
example: password
imap_host:
type: string
example: imap.gmail.com
imap_port:
type: number
example: 993
smtp_username:
type: string
example: username
smtp_password:
type: string
example: password
smtp_host:
type: string
example: smtp.gmail.com
smtp_port:
type: number
example: 587
warmup_custom_ftag:
type: string
example: warmup
skip_cname_check:
type: boolean
example: false
required:
- email
- first_name
- last_name
- provider_code
- imap_username
- imap_password
- imap_host
- imap_port
- smtp_username
- smtp_password
- smtp_host
- smtp_port
additionalProperties: false
required: true
description: The Account to create
responses:
'200':
description: The Account
content:
application/json:
schema:
$ref: '#/components/schemas/Account'
'400':
description: Invalid request body (e.g. missing required fields, or invalid field values)
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 400
examples:
- 400
example: 400
error:
type: string
enum:
- Bad Request
examples:
- Bad Request
example: Bad Request
message:
type: string
examples:
- body must have required property 'name'
example: body must have required property 'name'
required:
- statusCode
- error
- message
'401':
description: This request is unauthorized (either the Authorization header is missing or invalid, or the API key
has been revoked)
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 401
examples:
- 401
example: 401
error:
type: string
enum:
- Unauthorized
examples:
- Unauthorized
example: Unauthorized
message:
type: string
examples:
- Missing Authorization header
example: Missing Authorization header
required:
- statusCode
- error
- message
'402':
description: This request cannot be fulfilled because the workspace does not have an active paid plan
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 402
examples:
- 402
example: 402
error:
type: string
enum:
- Payment Required
examples:
- Payment Required
example: Payment Required
message:
type: string
examples:
- Workspace does not have an active paid plan
example: Workspace does not have an active paid plan
required:
- statusCode
- error
- message
'404':
description: The requested resource was not found
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 404
examples:
- 404
example: 404
error:
type: string
enum:
- Not Found
examples:
- Not Found
example: Not Found
message:
type: string
examples:
- Resource not found
example: Resource not found
required:
- statusCode
- error
- message
'429':
description: You have exceeded the rate limit. Please check the rate limit docs for more information.
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 429
examples:
- 429
example: 429
error:
type: string
enum:
- Too Many Requests
examples:
- Too Many Requests
example: Too Many Requests
message:
type: string
examples:
- Rate limit exceeded
example: Rate limit exceeded
required:
- statusCode
- error
- message
get:
operationId: listAccount
summary: List account
tags:
- Account
description: 'Requires one of the following scopes: `accounts:read`, `accounts:all`, `all:read`, `all:all`'
parameters:
- schema:
type: integer
minimum: 1
maximum: 100
example: 10
example: 10
in: query
name: limit
required: false
description: The number of items to return
- schema:
type: string
example: 2026-01-01T00:00:00.000Z&jon@doe.com
example: 2026-01-01T00:00:00.000Z&jon@doe.com
in: query
name: starting_after
required: false
description: Pagination cursor from `next_starting_after`, in `timestamp_created&email` format. Legacy ISO date-time
cursor is still supported.
- schema:
type: string
example: gmail.com
example: gmail.com
in: query
name: search
required: false
- schema:
type: number
enum:
- 1
- 2
- 3
- -1
- -2
- -3
x-enumDescriptions:
'1': Active
'2': Paused
'3': Temporarily paused for maintenance; will be automatically resumed shortly
'-1': Connection Error
'-2': Soft Bounce Error
'-3': Sending Error
example: 1
example: 1
in: query
name: status
required: false
- schema:
type: number
enum:
- 1
- 2
- 3
- 4
- 8
- 11
x-enumDescriptions:
'1': Custom IMAP/SMTP
'2': Google
'3': Microsoft
'4': AWS
'8': AirMail
'11': Airmail Instant
example: 2
example: 2
in: query
name: provider_code
required: false
- schema:
type: string
example: 019ffad2-9b14-7491-94e1-412827f38846, 019ffad2-9b14-7491-94e1-41295cf52579
example: 019ffad2-9b14-7491-94e1-412827f38846, 019ffad2-9b14-7491-94e1-41295cf52579
in: query
name: tag_ids
required: false
description: Filter accounts by tag ids. Returns accounts that have any of the specified tags assigned. You can specify
multiple tag ids by separating them with a comma.
- schema:
type: string
example: 019ffad2-9b14-7491-94e1-412a55965922, 019ffad2-9b14-7491-94e1-412b9974b398
example: 019ffad2-9b14-7491-94e1-412a55965922, 019ffad2-9b14-7491-94e1-412b9974b398
in: query
name: tag_ids_all
required: false
description: Filter accounts by tag ids with AND logic. Returns only accounts that have all of the specified tags
assigned. You can specify multiple tag ids by separating them with a comma.
- schema:
type: boolean
example: true
example: true
in: query
name: include_tags
required: false
description: Include tags in the response. If true, the response will include the tags assigned to each account.
- schema:
type: string
enum:
- ACC_FILTER_PAUSED
- ACC_FILTER_ERROR
- ACC_FILTER_NO_CTD
- ACC_FILTER_PW_ACCOUNTS
- ACC_FILTER_DFY
- ACC_FILTER_DFY_SETUP_PENDING
- ACC_FILTER_W_ACTIVE
- ACC_FILTER_W_PAUSED
- ACC_FILTER_W_ERROR
x-enumDescriptions:
ACC_FILTER_PAUSED: Paused
ACC_FILTER_ERROR: Has errors
ACC_FILTER_NO_CTD: No custom tracking domain
ACC_FILTER_PW_ACCOUNTS: Pre-warmed accounts
ACC_FILTER_DFY: DFY accounts
ACC_FILTER_DFY_SETUP_PENDING: DFY Setup Pending
ACC_FILTER_W_ACTIVE: Warmup active
ACC_FILTER_W_PAUSED: Warmup paused
ACC_FILTER_W_ERROR: Warmup has errors
example: ACC_FILTER_PAUSED
examples:
ACC_FILTER_PAUSED:
value: ACC_FILTER_PAUSED
ACC_FILTER_ERROR:
value: ACC_FILTER_ERROR
ACC_FILTER_NO_CTD:
value: ACC_FILTER_NO_CTD
ACC_FILTER_PW_ACCOUNTS:
value: ACC_FILTER_PW_ACCOUNTS
ACC_FILTER_DFY:
value: ACC_FILTER_DFY
ACC_FILTER_DFY_SETUP_PENDING:
value: ACC_FILTER_DFY_SETUP_PENDING
ACC_FILTER_W_ACTIVE:
value: ACC_FILTER_W_ACTIVE
ACC_FILTER_W_PAUSED:
value: ACC_FILTER_W_PAUSED
ACC_FILTER_W_ERROR:
value: ACC_FILTER_W_ERROR
in: query
name: filter
required: false
description: The filter to apply to the accounts.
- schema:
type: string
enum:
- timestamp_created
- email
- stat_warmup_score
- status
example: stat_warmup_score
example: stat_warmup_score
in: query
name: sort_by
required: false
description: Column to sort results by.
- schema:
type: string
enum:
- asc
- desc
example: desc
example: desc
in: query
name: sort_order
required: false
description: Sort direction. Defaults to `desc` when `sort_by` is provided.
- schema:
type: integer
minimum: 0
example: 0
example: 0
in: query
name: skip
required: false
description: Number of items to skip for offset-based pagination. Used with `sort_by` when cursor pagination is not
available.
responses:
'200':
description: The list of Account
content:
application/json:
schema:
type: object
properties:
items:
type: array
description: The list of Account
items:
allOf:
- $ref: '#/components/schemas/Account'
- type: object
properties:
tags:
type:
- array
- 'null'
description: Tags associated with the account, set to `include_tags` to populate
items:
type: object
properties:
id:
type: string
description: Unique identifier for the custom tag
examples:
- 019ffad2-9b14-7491-94e1-412c61f2fe27
example: 019ffad2-9b14-7491-94e1-412c61f2fe27
label:
type: string
description: Display label for the custom tag
examples:
- Important tag
example: Important tag
description:
type:
- string
- 'null'
description: Detailed description of the custom tag purpose
examples:
- null
example: null
next_starting_after:
type: string
examples:
- 019ffad2-9b15-755e-8b3d-9a147b6321a1
- '2026-08-13T11:12:14.101Z'
description: The filter for getting the next items after this one, this could either be a UUID, a timestamp,
on an email depending on the specific API
example: 019ffad2-9b15-755e-8b3d-9a147b6321a1
additionalProperties: false
required:
- items
'401':
description: This request is unauthorized (either the Authorization header is missing or invalid, or the API key
has been revoked)
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 401
examples:
- 401
example: 401
error:
type: string
enum:
- Unauthorized
examples:
- Unauthorized
example: Unauthorized
message:
type: string
examples:
- Missing Authorization header
example: Missing Authorization header
required:
- statusCode
- error
- message
'402':
description: This request cannot be fulfilled because the workspace does not have an active paid plan
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 402
examples:
- 402
example: 402
error:
type: string
enum:
- Payment Required
examples:
- Payment Required
example: Payment Required
message:
type: string
examples:
- Workspace does not have an active paid plan
example: Workspace does not have an active paid plan
required:
- statusCode
- error
- message
'404':
description: The requested resource was not found
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 404
examples:
- 404
example: 404
error:
type: string
enum:
- Not Found
examples:
- Not Found
example: Not Found
message:
type: string
examples:
- Resource not found
example: Resource not found
required:
- statusCode
- error
- message
'429':
description: You have exceeded the rate limit. Please check the rate limit docs for more information.
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 429
examples:
- 429
example: 429
error:
type: string
enum:
- Too Many Requests
examples:
- Too Many Requests
example: Too Many Requests
message:
type: string
examples:
- Rate limit exceeded
example: Rate limit exceeded
required:
- statusCode
- error
- message
/api/v2/accounts/{email}:
get:
operationId: getAccount
summary: Get account
tags:
- Account
description: 'Requires one of the following scopes: `accounts:read`, `accounts:all`, `all:read`, `all:all`'
parameters:
- schema:
type: string
example: jon@doe.com
example: jon@doe.com
in: path
name: email
required: true
description: The email of the account to get
responses:
'200':
description: The requested Account
content:
application/json:
schema:
$ref: '#/components/schemas/Account'
'401':
description: This request is unauthorized (either the Authorization header is missing or invalid, or the API key
has been revoked)
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 401
examples:
- 401
example: 401
error:
type: string
enum:
- Unauthorized
examples:
- Unauthorized
example: Unauthorized
message:
type: string
examples:
- Missing Authorization header
example: Missing Authorization header
required:
- statusCode
- error
- message
'402':
description: This request cannot be fulfilled because the workspace does not have an active paid plan
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 402
examples:
- 402
example: 402
error:
type: string
enum:
- Payment Required
examples:
- Payment Required
example: Payment Required
message:
type: string
examples:
- Workspace does not have an active paid plan
example: Workspace does not have an active paid plan
required:
- statusCode
- error
- message
'404':
description: The requested resource was not found
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 404
examples:
- 404
example: 404
error:
type: string
enum:
- Not Found
examples:
- Not Found
example: Not Found
message:
type: string
examples:
- Resource not found
example: Resource not found
required:
- statusCode
- error
- message
'429':
description: You have exceeded the rate limit. Please check the rate limit docs for more information.
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 429
examples:
- 429
example: 429
error:
type: string
enum:
- Too Many Requests
examples:
- Too Many Requests
example: Too Many Requests
message:
type: string
examples:
- Rate limit exceeded
example: Rate limit exceeded
required:
- statusCode
- error
- message
patch:
operationId: patchAccount
summary: Patch account
tags:
- Account
description: 'Requires one of the following scopes: `accounts:update`, `accounts:all`, `all:update`, `all:all`'
requestBody:
content:
application/json:
schema:
type: object
properties:
first_name:
type: string
description: First name associated with the account
example: John
last_name:
type: string
description: Last name associated with the account
example: Doe
warmup:
type: object
description: Warmup configuration for the account
properties:
limit:
type: number
description: Email sending limit for the account
example: 100
advanced:
type: object
description: Advanced settings for the account
properties:
warm_ctd:
type: boolean
description: Whether the account is in warm CTD mode
example: false
open_rate:
type: number
description: Email open rate for the account
example: 0.95
important_rate:
type: number
description: Important email rate for the account
example: 0.8
read_emulation:
type: boolean
description: Whether read emulation is enabled
example: true
spam_save_rate:
type: number
description: Spam save rate for the account
example: 0.02
weekday_only:
type: boolean
description: Whether to send emails only on weekdays
example: true
warmup_custom_ftag:
type: string
description: Custom tag for the account
example: warmup
increment:
type: string
enum:
- disabled
- '0'
- '1'
- '2'
- '3'
- '4'
x-enumDescriptions:
'0': '0'
'1': '1'
'2': '2'
'3': '3'
'4': '4'
disabled: Disabled
description: Daily increment added to the sending limit, starting from 0, until the full daily limit
is reached (slow ramp). Gradually increases sending volume to improve deliverability. Set to `disabled`
to send at the full daily limit from day one.
example: disabled
reply_rate:
type: number
description: Reply rate for the account
example: 0.1
daily_limit:
type:
- number
- 'null'
description: Daily email sending limit
example: 100
tracking_domain_name:
type:
- string
- 'null'
description: Tracking domain
example: example.com
tracking_domain_status:
type:
- string
- 'null'
description: Tracking domain status
example: active
enable_slow_ramp:
type:
- boolean
- 'null'
description: Whether to enable slow ramp up for sending limits
example: false
inbox_placement_test_limit:
type:
- number
- 'null'
description: The limit for inbox placement tests
minimum: 0
example: 10
sending_gap:
type: number
description: The gap between emails sent from this account in minutes (minimum wait time when used with
multiple campaigns)
minimum: 0
maximum: 1440
example: 10
signature:
type:
- string
- 'null'
description: Email signature for the account
example: Best regards, John Doe
reply_to:
type:
- string
- 'null'
description: Custom reply-to email address for the account
format: email
example: reply@example.com
skip_cname_check:
type: boolean
example: false
remove_tracking_domain:
type: boolean
example: false
required: []
additionalProperties: false
minProperties: 1
parameters:
- schema:
type: string
example: jon@doe.com
example: jon@doe.com
in: path
name: email
required: true
description: The email of the account to update
responses:
'200':
description: The updated Account
content:
application/json:
schema:
$ref: '#/components/schemas/Account'
'401':
description: This request is unauthorized (either the Authorization header is missing or invalid, or the API key
has been revoked)
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 401
examples:
- 401
example: 401
error:
type: string
enum:
- Unauthorized
examples:
- Unauthorized
example: Unauthorized
message:
type: string
examples:
- Missing Authorization header
example: Missing Authorization header
required:
- statusCode
- error
- message
'402':
description: This request cannot be fulfilled because the workspace does not have an active paid plan
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 402
examples:
- 402
example: 402
error:
type: string
enum:
- Payment Required
examples:
- Payment Required
example: Payment Required
message:
type: string
examples:
- Workspace does not have an active paid plan
example: Workspace does not have an active paid plan
required:
- statusCode
- error
- message
'404':
description: The requested resource was not found
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 404
examples:
- 404
example: 404
error:
type: string
enum:
- Not Found
examples:
- Not Found
example: Not Found
message:
type: string
examples:
- Resource not found
example: Resource not found
required:
- statusCode
- error
- message
'429':
description: You have exceeded the rate limit. Please check the rate limit docs for more information.
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 429
examples:
- 429
example: 429
error:
type: string
enum:
- Too Many Requests
examples:
- Too Many Requests
example: Too Many Requests
message:
type: string
examples:
- Rate limit exceeded
example: Rate limit exceeded
required:
- statusCode
- error
- message
delete:
operationId: deleteAccount
summary: Delete account
tags:
- Account
description: 'Requires one of the following scopes: `accounts:delete`, `accounts:all`, `all:delete`, `all:all`'
requestBody:
content:
application/json:
schema:
type: 'null'
example: null
parameters:
- schema:
type: string
example: jon@doe.com
example: jon@doe.com
in: path
name: email
required: true
description: The email of the account to get
responses:
'200':
description: The deleted Account
content:
application/json:
schema:
$ref: '#/components/schemas/Account'
'401':
description: This request is unauthorized (either the Authorization header is missing or invalid, or the API key
has been revoked)
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 401
examples:
- 401
example: 401
error:
type: string
enum:
- Unauthorized
examples:
- Unauthorized
example: Unauthorized
message:
type: string
examples:
- Missing Authorization header
example: Missing Authorization header
required:
- statusCode
- error
- message
'402':
description: This request cannot be fulfilled because the workspace does not have an active paid plan
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 402
examples:
- 402
example: 402
error:
type: string
enum:
- Payment Required
examples:
- Payment Required
example: Payment Required
message:
type: string
examples:
- Workspace does not have an active paid plan
example: Workspace does not have an active paid plan
required:
- statusCode
- error
- message
'404':
description: The requested resource was not found
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 404
examples:
- 404
example: 404
error:
type: string
enum:
- Not Found
examples:
- Not Found
example: Not Found
message:
type: string
examples:
- Resource not found
example: Resource not found
required:
- statusCode
- error
- message
'429':
description: You have exceeded the rate limit. Please check the rate limit docs for more information.
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 429
examples:
- 429
example: 429
error:
type: string
enum:
- Too Many Requests
examples:
- Too Many Requests
example: Too Many Requests
message:
type: string
examples:
- Rate limit exceeded
example: Rate limit exceeded
required:
- statusCode
- error
- message
/api/v2/accounts/warmup/enable:
post:
operationId: enableWarmupForAccounts
summary: Enable warmup for accounts
tags:
- Account
description: 'Initiates a background job to enable warmup for the specified accounts. The response will contain the
initial background job object. You can monitor the job''s progress by polling the `GET: /api/v2/background-jobs/:id`
endpoint.'
requestBody:
content:
application/json:
schema:
type: object
properties:
emails:
type: array
items:
type: string
example: user@example.com
maxItems: 100
description: List of emails to enable warmup accounts for. The emails should be attached to accounts in
your workspace.
include_all_emails:
type: boolean
description: If true, it will enable warmup to all accounts
example: true
excluded_emails:
type: array
items:
type: string
example: user@example.com
maxItems: 100
description: List of emails to exclude when `include_all_emails` is `true`.
filter:
type:
- object
- 'null'
description: Optional filter to apply when `include_all_emails` is `true`. Can contain tag_id or other filter
criteria.
properties:
tag_id:
type: string
description: The ID of the tag to filter accounts by.
examples:
- 019ffad2-9b17-780f-b2d3-34839d49bf0b
example: 019ffad2-9b17-780f-b2d3-34839d49bf0b
filter:
type:
- string
- 'null'
description: The filter to apply to the accounts.
examples:
- ACC_FILTER_PAUSED
enum:
- ACC_FILTER_PAUSED
- ACC_FILTER_ERROR
- ACC_FILTER_NO_CTD
- ACC_FILTER_PW_ACCOUNTS
- ACC_FILTER_DFY
- ACC_FILTER_DFY_SETUP_PENDING
- ACC_FILTER_W_ACTIVE
- ACC_FILTER_W_PAUSED
- ACC_FILTER_W_ERROR
- null
x-enumDescriptions:
ACC_FILTER_PAUSED: Paused
ACC_FILTER_ERROR: Has errors
ACC_FILTER_NO_CTD: No custom tracking domain
ACC_FILTER_PW_ACCOUNTS: Pre-warmed accounts
ACC_FILTER_DFY: DFY accounts
ACC_FILTER_DFY_SETUP_PENDING: DFY Setup Pending
ACC_FILTER_W_ACTIVE: Warmup active
ACC_FILTER_W_PAUSED: Warmup paused
ACC_FILTER_W_ERROR: Warmup has errors
'null': No filter
example: ACC_FILTER_PAUSED
search:
type: string
description: Optional search query to filter accounts when `include_all_emails` is `true`.
example: gmail.com
responses:
'200':
description: The requested Background Job
content:
application/json:
schema:
$ref: '#/components/schemas/BackgroundJob'
'401':
description: This request is unauthorized (either the Authorization header is missing or invalid, or the API key
has been revoked)
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 401
examples:
- 401
example: 401
error:
type: string
enum:
- Unauthorized
examples:
- Unauthorized
example: Unauthorized
message:
type: string
examples:
- Missing Authorization header
example: Missing Authorization header
required:
- statusCode
- error
- message
'402':
description: This request cannot be fulfilled because the workspace does not have an active paid plan
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 402
examples:
- 402
example: 402
error:
type: string
enum:
- Payment Required
examples:
- Payment Required
example: Payment Required
message:
type: string
examples:
- Workspace does not have an active paid plan
example: Workspace does not have an active paid plan
required:
- statusCode
- error
- message
'404':
description: The requested resource was not found
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 404
examples:
- 404
example: 404
error:
type: string
enum:
- Not Found
examples:
- Not Found
example: Not Found
message:
type: string
examples:
- Resource not found
example: Resource not found
required:
- statusCode
- error
- message
'429':
description: You have exceeded the rate limit. Please check the rate limit docs for more information.
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 429
examples:
- 429
example: 429
error:
type: string
enum:
- Too Many Requests
examples:
- Too Many Requests
example: Too Many Requests
message:
type: string
examples:
- Rate limit exceeded
example: Rate limit exceeded
required:
- statusCode
- error
- message
/api/v2/accounts/warmup/disable:
post:
operationId: disableWarmupForAccounts
summary: Disable warmup for accounts
tags:
- Account
description: 'Initiates a background job to disable warmup for the specified accounts. The response will contain the
initial background job object. You can monitor the job''s progress by polling the `GET: /api/v2/background-jobs/:id`
endpoint.'
requestBody:
content:
application/json:
schema:
type: object
properties:
emails:
type: array
items:
type: string
example: user@example.com
maxItems: 100
description: List of emails to disable warmup accounts for. The emails should be attached to accounts in
your workspace.
include_all_emails:
type: boolean
description: If true, it will disable warmup to all accounts
example: true
excluded_emails:
type: array
items:
type: string
example: user@example.com
maxItems: 100
description: List of emails to exclude when `include_all_emails` is `true`.
filter:
type:
- object
- 'null'
description: Optional filter to apply when `include_all_emails` is `true`. Can contain tag_id or other filter
criteria.
additionalProperties: true
properties:
tag_id:
type: string
description: The ID of the tag to filter accounts by.
examples:
- 019ffad2-9b17-780f-b2d3-3485e1c2623a
example: 019ffad2-9b17-780f-b2d3-3485e1c2623a
filter:
type:
- string
- 'null'
description: The filter to apply to the accounts.
examples:
- ACC_FILTER_PAUSED
enum:
- ACC_FILTER_PAUSED
- ACC_FILTER_ERROR
- ACC_FILTER_NO_CTD
- ACC_FILTER_PW_ACCOUNTS
- ACC_FILTER_DFY
- ACC_FILTER_DFY_SETUP_PENDING
- ACC_FILTER_W_ACTIVE
- ACC_FILTER_W_PAUSED
- ACC_FILTER_W_ERROR
- null
x-enumDescriptions:
ACC_FILTER_PAUSED: Paused
ACC_FILTER_ERROR: Has errors
ACC_FILTER_NO_CTD: No custom tracking domain
ACC_FILTER_PW_ACCOUNTS: Pre-warmed accounts
ACC_FILTER_DFY: DFY accounts
ACC_FILTER_DFY_SETUP_PENDING: DFY Setup Pending
ACC_FILTER_W_ACTIVE: Warmup active
ACC_FILTER_W_PAUSED: Warmup paused
ACC_FILTER_W_ERROR: Warmup has errors
'null': No filter
example: ACC_FILTER_PAUSED
search:
type: string
description: Optional search query to filter accounts when `include_all_emails` is `true`.
example: gmail.com
responses:
'200':
description: The requested Background Job
content:
application/json:
schema:
$ref: '#/components/schemas/BackgroundJob'
'401':
description: This request is unauthorized (either the Authorization header is missing or invalid, or the API key
has been revoked)
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 401
examples:
- 401
example: 401
error:
type: string
enum:
- Unauthorized
examples:
- Unauthorized
example: Unauthorized
message:
type: string
examples:
- Missing Authorization header
example: Missing Authorization header
required:
- statusCode
- error
- message
'402':
description: This request cannot be fulfilled because the workspace does not have an active paid plan
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 402
examples:
- 402
example: 402
error:
type: string
enum:
- Payment Required
examples:
- Payment Required
example: Payment Required
message:
type: string
examples:
- Workspace does not have an active paid plan
example: Workspace does not have an active paid plan
required:
- statusCode
- error
- message
'404':
description: The requested resource was not found
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 404
examples:
- 404
example: 404
error:
type: string
enum:
- Not Found
examples:
- Not Found
example: Not Found
message:
type: string
examples:
- Resource not found
example: Resource not found
required:
- statusCode
- error
- message
'429':
description: You have exceeded the rate limit. Please check the rate limit docs for more information.
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 429
examples:
- 429
example: 429
error:
type: string
enum:
- Too Many Requests
examples:
- Too Many Requests
example: Too Many Requests
message:
type: string
examples:
- Rate limit exceeded
example: Rate limit exceeded
required:
- statusCode
- error
- message
/api/v2/accounts/warmup-analytics:
post:
operationId: getWarmupAnalytics
summary: Get warmup analytics
tags:
- Account
- Analytics
description: 'Requires one of the following scopes: `accounts:read`, `accounts:all`, `all:read`, `all:all`'
requestBody:
content:
application/json:
schema:
type: object
properties:
emails:
type: array
items:
type: string
example: user@example.com
maxItems: 100
minItems: 1
description: List of emails to get warmup analytics for. The emails should be attached to accounts in your
workspace.
required:
- emails
required: true
responses:
'200':
description: Default Response
content:
application/json:
schema:
type: object
properties:
email_date_data:
type: object
additionalProperties:
type: object
additionalProperties:
type: object
properties:
sent:
type: number
example: 100
landed_inbox:
type: number
example: 50
landed_spam:
type: number
example: 10
received:
type: number
example: 100
aggregate_data:
type: object
additionalProperties:
type: object
properties:
sent:
type: number
examples:
- 100
example: 100
received:
type: number
examples:
- 100
example: 100
landed_inbox:
type: number
examples:
- 50
example: 50
landed_spam:
type: number
examples:
- 10
example: 10
health_score_label:
type: string
examples:
- Good
example: Good
health_score:
type: number
examples:
- 90
example: 90
example:
email_date_data:
example1@example.com:
'2023-10-01':
sent: 10
landed_inbox: 8
landed_spam: 2
received: 10
'2023-10-02':
sent: 5
landed_inbox: 5
received: 5
example2@example.com:
'2023-10-01':
sent: 7
landed_inbox: 7
received: 7
aggregate_data:
example1@example.com:
sent: 15
landed_inbox: 13
landed_spam: 2
received: 15
health_score_label: 87%
health_score: 87
example2@example.com:
sent: 7
landed_inbox: 7
health_score_label: 100%
health_score: 100
'401':
description: This request is unauthorized (either the Authorization header is missing or invalid, or the API key
has been revoked)
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 401
examples:
- 401
example: 401
error:
type: string
enum:
- Unauthorized
examples:
- Unauthorized
example: Unauthorized
message:
type: string
examples:
- Missing Authorization header
example: Missing Authorization header
required:
- statusCode
- error
- message
'402':
description: This request cannot be fulfilled because the workspace does not have an active paid plan
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 402
examples:
- 402
example: 402
error:
type: string
enum:
- Payment Required
examples:
- Payment Required
example: Payment Required
message:
type: string
examples:
- Workspace does not have an active paid plan
example: Workspace does not have an active paid plan
required:
- statusCode
- error
- message
'404':
description: The requested resource was not found
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 404
examples:
- 404
example: 404
error:
type: string
enum:
- Not Found
examples:
- Not Found
example: Not Found
message:
type: string
examples:
- Resource not found
example: Resource not found
required:
- statusCode
- error
- message
'429':
description: You have exceeded the rate limit. Please check the rate limit docs for more information.
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 429
examples:
- 429
example: 429
error:
type: string
enum:
- Too Many Requests
examples:
- Too Many Requests
example: Too Many Requests
message:
type: string
examples:
- Rate limit exceeded
example: Rate limit exceeded
required:
- statusCode
- error
- message
/api/v2/accounts/analytics/daily:
get:
operationId: getDailyAccountAnalytics
summary: Get daily account analytics
tags:
- Account
- Analytics
description: Get daily account analytics showing the number of emails sent per day for each email account. Useful for
tracking daily sending activity across your accounts.
parameters:
- schema:
type: string
example: '2024-01-01'
examples:
'2024-01-01':
value: '2024-01-01'
'2024-01-01T00:00:00.000Z':
value: '2024-01-01T00:00:00.000Z'
in: query
name: start_date
required: false
description: Start date for the analytics period. Defaults to a 30-day window ending at end_date. The maximum range
is 31 days.
- schema:
type: string
example: '2024-01-31'
examples:
'2024-01-31':
value: '2024-01-31'
'2024-01-31T00:00:00.000Z':
value: '2024-01-31T00:00:00.000Z'
in: query
name: end_date
required: false
description: End date for the analytics period. Defaults to the current date.
- schema:
type: array
minItems: 1
maxItems: 200
items:
type: string
examples:
- user@example.com
example: user@example.com
in: query
name: emails
required: false
description: Email accounts to include. This filter is required and accepts at most 200 unique accounts.
responses:
'200':
description: Default Response
content:
application/json:
schema:
type: array
items:
type: object
properties:
date:
type: string
description: The date of the analytics entry, in YYYY-MM-DD format
example: '2024-01-15'
email_account:
type: string
description: The email account that sent the emails
example: user@example.com
sent:
type: integer
description: The total number of campaign emails sent on this date by this account, including emails
for subsequences
example: 150
bounced:
type: integer
description: The number of emails that bounced on this date for this account for campaigns - including
subsequences
example: 3
contacted:
type: integer
description: The total number of unique contacts who received an email on this date from this account
example: 120
new_leads_contacted:
type: integer
description: The total number of new leads contacted on this date from this account
example: 50
opened:
type: integer
description: The total number of opened emails on this date for this account
example: 99
unique_opened:
type: integer
description: The total number of unique opened emails on this date for this account
example: 60
replies:
type: integer
description: The total number of replies received on this date for this account
example: 8
unique_replies:
type: integer
description: The total number of unique replies received on this date for this account
example: 7
replies_automatic:
type: integer
description: The total number of automatic replies detected on this date for this account
example: 2
unique_replies_automatic:
type: integer
description: The total number of unique automatic replies detected on this date for this account
example: 1
clicks:
type: integer
description: The total number of links clicked on this date for this account
example: 30
unique_clicks:
type: integer
description: The total number of unique links clicked on this date for this account. Unique meaning
from unique leads, not unique links
example: 20
required:
- date
- email_account
- sent
- bounced
- contacted
- new_leads_contacted
- opened
- unique_opened
- replies
- unique_replies
- replies_automatic
- unique_replies_automatic
- clicks
- unique_clicks
'400':
description: Default Response
content:
application/json:
schema:
type: object
properties:
message:
type: string
description: The error message
example: Start Date must be earlier than End Date
'401':
description: This request is unauthorized (either the Authorization header is missing or invalid, or the API key
has been revoked)
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 401
examples:
- 401
example: 401
error:
type: string
enum:
- Unauthorized
examples:
- Unauthorized
example: Unauthorized
message:
type: string
examples:
- Missing Authorization header
example: Missing Authorization header
required:
- statusCode
- error
- message
'402':
description: This request cannot be fulfilled because the workspace does not have an active paid plan
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 402
examples:
- 402
example: 402
error:
type: string
enum:
- Payment Required
examples:
- Payment Required
example: Payment Required
message:
type: string
examples:
- Workspace does not have an active paid plan
example: Workspace does not have an active paid plan
required:
- statusCode
- error
- message
'404':
description: The requested resource was not found
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 404
examples:
- 404
example: 404
error:
type: string
enum:
- Not Found
examples:
- Not Found
example: Not Found
message:
type: string
examples:
- Resource not found
example: Resource not found
required:
- statusCode
- error
- message
'413':
description: The analytics request is too large for the requested workspace or date range.
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 413
examples:
- 413
example: 413
error:
type: string
enum:
- Payload Too Large
examples:
- Payload Too Large
example: Payload Too Large
message:
type: string
examples:
- Analytics request is too large for this workspace. Add an emails filter or request a smaller date range.
example: Analytics request is too large for this workspace. Add an emails filter or request a smaller
date range.
required:
- statusCode
- error
- message
'429':
description: You have exceeded the rate limit. Please check the rate limit docs for more information.
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 429
examples:
- 429
example: 429
error:
type: string
enum:
- Too Many Requests
examples:
- Too Many Requests
example: Too Many Requests
message:
type: string
examples:
- Rate limit exceeded
example: Rate limit exceeded
required:
- statusCode
- error
- message
/api/v2/accounts/pause:
post:
operationId: pauseAccounts
summary: Pause multiple accounts
tags:
- Account
description: 'Pauses up to 100 email accounts in the authenticated workspace. Each unique email is returned in either
`paused_emails` or `failed_emails`.
Requires one of the following scopes: `accounts:update`, `accounts:all`, `all:update`, `all:all`'
requestBody:
content:
application/json:
schema:
type: object
additionalProperties: false
properties:
emails:
type: array
description: Email addresses to pause. Duplicate values are ignored.
items:
type: string
example: user@example.com
minItems: 1
maxItems: 100
required:
- emails
required: true
responses:
'200':
description: The result of the bulk pause operation.
content:
application/json:
schema:
type: object
additionalProperties: false
description: The result of the bulk pause operation.
properties:
paused_emails:
type: array
description: Email addresses whose accounts were successfully paused.
items:
type: string
example: paused@example.com
failed_emails:
type: array
description: Email addresses that were invalid or whose account status was not changed.
items:
type: string
example: failed@example.com
required:
- paused_emails
- failed_emails
'401':
description: This request is unauthorized (either the Authorization header is missing or invalid, or the API key
has been revoked)
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 401
examples:
- 401
example: 401
error:
type: string
enum:
- Unauthorized
examples:
- Unauthorized
example: Unauthorized
message:
type: string
examples:
- Missing Authorization header
example: Missing Authorization header
required:
- statusCode
- error
- message
'402':
description: This request cannot be fulfilled because the workspace does not have an active paid plan
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 402
examples:
- 402
example: 402
error:
type: string
enum:
- Payment Required
examples:
- Payment Required
example: Payment Required
message:
type: string
examples:
- Workspace does not have an active paid plan
example: Workspace does not have an active paid plan
required:
- statusCode
- error
- message
'404':
description: The requested resource was not found
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 404
examples:
- 404
example: 404
error:
type: string
enum:
- Not Found
examples:
- Not Found
example: Not Found
message:
type: string
examples:
- Resource not found
example: Resource not found
required:
- statusCode
- error
- message
'429':
description: You have exceeded the rate limit. Please check the rate limit docs for more information.
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 429
examples:
- 429
example: 429
error:
type: string
enum:
- Too Many Requests
examples:
- Too Many Requests
example: Too Many Requests
message:
type: string
examples:
- Rate limit exceeded
example: Rate limit exceeded
required:
- statusCode
- error
- message
/api/v2/accounts/{email}/pause:
post:
operationId: pauseAccount
summary: Pause an account
tags:
- Account
description: 'Requires one of the following scopes: `accounts:update`, `accounts:all`, `all:update`, `all:all`'
parameters:
- schema:
type: string
example: user@example.com
example: user@example.com
in: path
name: email
required: true
description: The email of the account to pause
responses:
'200':
description: The requested Account
content:
application/json:
schema:
$ref: '#/components/schemas/Account'
'401':
description: This request is unauthorized (either the Authorization header is missing or invalid, or the API key
has been revoked)
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 401
examples:
- 401
example: 401
error:
type: string
enum:
- Unauthorized
examples:
- Unauthorized
example: Unauthorized
message:
type: string
examples:
- Missing Authorization header
example: Missing Authorization header
required:
- statusCode
- error
- message
'402':
description: This request cannot be fulfilled because the workspace does not have an active paid plan
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 402
examples:
- 402
example: 402
error:
type: string
enum:
- Payment Required
examples:
- Payment Required
example: Payment Required
message:
type: string
examples:
- Workspace does not have an active paid plan
example: Workspace does not have an active paid plan
required:
- statusCode
- error
- message
'404':
description: The requested resource was not found
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 404
examples:
- 404
example: 404
error:
type: string
enum:
- Not Found
examples:
- Not Found
example: Not Found
message:
type: string
examples:
- Resource not found
example: Resource not found
required:
- statusCode
- error
- message
'429':
description: You have exceeded the rate limit. Please check the rate limit docs for more information.
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 429
examples:
- 429
example: 429
error:
type: string
enum:
- Too Many Requests
examples:
- Too Many Requests
example: Too Many Requests
message:
type: string
examples:
- Rate limit exceeded
example: Rate limit exceeded
required:
- statusCode
- error
- message
/api/v2/accounts/{email}/resume:
post:
operationId: resumeAccount
summary: Resume a paused account
tags:
- Account
description: 'Requires one of the following scopes: `accounts:update`, `accounts:all`, `all:update`, `all:all`'
parameters:
- schema:
type: string
example: user@example.com
example: user@example.com
in: path
name: email
required: true
description: Account email
responses:
'200':
description: The requested Account
content:
application/json:
schema:
$ref: '#/components/schemas/Account'
'401':
description: This request is unauthorized (either the Authorization header is missing or invalid, or the API key
has been revoked)
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 401
examples:
- 401
example: 401
error:
type: string
enum:
- Unauthorized
examples:
- Unauthorized
example: Unauthorized
message:
type: string
examples:
- Missing Authorization header
example: Missing Authorization header
required:
- statusCode
- error
- message
'402':
description: This request cannot be fulfilled because the workspace does not have an active paid plan
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 402
examples:
- 402
example: 402
error:
type: string
enum:
- Payment Required
examples:
- Payment Required
example: Payment Required
message:
type: string
examples:
- Workspace does not have an active paid plan
example: Workspace does not have an active paid plan
required:
- statusCode
- error
- message
'404':
description: The requested resource was not found
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 404
examples:
- 404
example: 404
error:
type: string
enum:
- Not Found
examples:
- Not Found
example: Not Found
message:
type: string
examples:
- Resource not found
example: Resource not found
required:
- statusCode
- error
- message
'429':
description: You have exceeded the rate limit. Please check the rate limit docs for more information.
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 429
examples:
- 429
example: 429
error:
type: string
enum:
- Too Many Requests
examples:
- Too Many Requests
example: Too Many Requests
message:
type: string
examples:
- Rate limit exceeded
example: Rate limit exceeded
required:
- statusCode
- error
- message
/api/v2/accounts/{email}/mark-fixed:
post:
operationId: markAccountFixed
summary: Mark an account as fixed
tags:
- Account
description: 'Requires one of the following scopes: `accounts:update`, `accounts:all`, `all:update`, `all:all`'
parameters:
- schema:
type: string
example: user@example.com
example: user@example.com
in: path
name: email
required: true
description: Account email
responses:
'200':
description: The requested Account
content:
application/json:
schema:
$ref: '#/components/schemas/Account'
'401':
description: This request is unauthorized (either the Authorization header is missing or invalid, or the API key
has been revoked)
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 401
examples:
- 401
example: 401
error:
type: string
enum:
- Unauthorized
examples:
- Unauthorized
example: Unauthorized
message:
type: string
examples:
- Missing Authorization header
example: Missing Authorization header
required:
- statusCode
- error
- message
'402':
description: This request cannot be fulfilled because the workspace does not have an active paid plan
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 402
examples:
- 402
example: 402
error:
type: string
enum:
- Payment Required
examples:
- Payment Required
example: Payment Required
message:
type: string
examples:
- Workspace does not have an active paid plan
example: Workspace does not have an active paid plan
required:
- statusCode
- error
- message
'404':
description: The requested resource was not found
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 404
examples:
- 404
example: 404
error:
type: string
enum:
- Not Found
examples:
- Not Found
example: Not Found
message:
type: string
examples:
- Resource not found
example: Resource not found
required:
- statusCode
- error
- message
'429':
description: You have exceeded the rate limit. Please check the rate limit docs for more information.
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 429
examples:
- 429
example: 429
error:
type: string
enum:
- Too Many Requests
examples:
- Too Many Requests
example: Too Many Requests
message:
type: string
examples:
- Rate limit exceeded
example: Rate limit exceeded
required:
- statusCode
- error
- message
/api/v2/accounts/ctd/status:
get:
operationId: getCtdStatus
summary: Get custom tracking domain status
tags:
- Account
description: 'Requires one of the following scopes: `accounts:read`, `accounts:all`, `all:read`, `all:all`'
parameters:
- schema:
type: string
example: example.com
example: example.com
in: query
name: host
required: true
description: Custom tracking domain host
responses:
'200':
description: Default Response
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
example: true
ssl:
type: boolean
example: true
cname:
type: boolean
example: true
host:
type: string
example: example.com
'400':
description: Default Response
content:
application/json:
schema:
type: object
properties:
status:
type: string
example: error
message:
type: string
example: Error message
host:
type: string
example: example.com
'401':
description: This request is unauthorized (either the Authorization header is missing or invalid, or the API key
has been revoked)
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 401
examples:
- 401
example: 401
error:
type: string
enum:
- Unauthorized
examples:
- Unauthorized
example: Unauthorized
message:
type: string
examples:
- Missing Authorization header
example: Missing Authorization header
required:
- statusCode
- error
- message
'402':
description: This request cannot be fulfilled because the workspace does not have an active paid plan
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 402
examples:
- 402
example: 402
error:
type: string
enum:
- Payment Required
examples:
- Payment Required
example: Payment Required
message:
type: string
examples:
- Workspace does not have an active paid plan
example: Workspace does not have an active paid plan
required:
- statusCode
- error
- message
'404':
description: The requested resource was not found
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 404
examples:
- 404
example: 404
error:
type: string
enum:
- Not Found
examples:
- Not Found
example: Not Found
message:
type: string
examples:
- Resource not found
example: Resource not found
required:
- statusCode
- error
- message
'429':
description: You have exceeded the rate limit. Please check the rate limit docs for more information.
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 429
examples:
- 429
example: 429
error:
type: string
enum:
- Too Many Requests
examples:
- Too Many Requests
example: Too Many Requests
message:
type: string
examples:
- Rate limit exceeded
example: Rate limit exceeded
required:
- statusCode
- error
- message
/api/v2/accounts/test/vitals:
post:
operationId: testAccountVitals
summary: Test account vitals
tags:
- Account
- Analytics
description: 'Requires one of the following scopes: `accounts:read`, `accounts:all`, `all:read`, `all:all`'
requestBody:
content:
application/json:
schema:
type: object
properties:
accounts:
type: array
items:
type: string
example: user@example.com
required: []
responses:
'200':
description: Default Response
content:
application/json:
schema:
type: object
properties:
status:
type: string
example: success
success_list:
type: array
items:
type: object
properties:
domain:
type: string
example: example.com
allPass:
type: boolean
example: true
mx:
type: boolean
example: true
spf:
type: boolean
example: true
dkim:
type: boolean
example: true
dmarc:
type: boolean
example: true
failure_list:
type: array
items:
type: object
properties:
domain:
type: string
example: example.com
allPass:
type: boolean
example: false
mx:
type: boolean
example: false
spf:
type: boolean
example: false
dkim:
type: boolean
example: false
dmarc:
type: boolean
example: false
'400':
description: Default Response
content:
application/json:
schema:
type: object
properties:
error:
type: string
example: Bad request - no emails sent
'401':
description: This request is unauthorized (either the Authorization header is missing or invalid, or the API key
has been revoked)
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 401
examples:
- 401
example: 401
error:
type: string
enum:
- Unauthorized
examples:
- Unauthorized
example: Unauthorized
message:
type: string
examples:
- Missing Authorization header
example: Missing Authorization header
required:
- statusCode
- error
- message
'402':
description: This request cannot be fulfilled because the workspace does not have an active paid plan
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 402
examples:
- 402
example: 402
error:
type: string
enum:
- Payment Required
examples:
- Payment Required
example: Payment Required
message:
type: string
examples:
- Workspace does not have an active paid plan
example: Workspace does not have an active paid plan
required:
- statusCode
- error
- message
'404':
description: The requested resource was not found
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 404
examples:
- 404
example: 404
error:
type: string
enum:
- Not Found
examples:
- Not Found
example: Not Found
message:
type: string
examples:
- Resource not found
example: Resource not found
required:
- statusCode
- error
- message
'429':
description: You have exceeded the rate limit. Please check the rate limit docs for more information.
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 429
examples:
- 429
example: 429
error:
type: string
enum:
- Too Many Requests
examples:
- Too Many Requests
example: Too Many Requests
message:
type: string
examples:
- Rate limit exceeded
example: Rate limit exceeded
required:
- statusCode
- error
- message
/api/v2/accounts/move:
post:
operationId: moveAccounts
summary: Move accounts between workspaces
tags:
- Account
description: 'Move accounts between workspaces. IMPORTANT: this endpoint should be called ONLY with an ADMIN workspace
API key (check the workspace group docs: https://developer.instantly.ai/workspace-group), and both the source and
destination workspaces must have the same admin workspace.'
requestBody:
content:
application/json:
schema:
type: object
properties:
emails:
type: array
description: Array of email addresses of the accounts to move
items:
type: string
description: Email address of the account to move
example: user@example.com
minItems: 1
source_workspace_id:
type: string
description: ID of the source workspace (the workspace that the accounts are currently in)
example: 019ffad2-9b1e-7b67-98a0-1fe266b16991
destination_workspace_id:
type: string
description: ID of the destination workspace (the workspace that the accounts will be moved to)
example: 019ffad2-9b1e-7b67-98a0-1fe35b1c0040
required:
- emails
- source_workspace_id
- destination_workspace_id
required: true
responses:
'200':
description: Default Response
content:
application/json:
schema:
type: object
properties:
status:
type: string
enum:
- success
x-enumDescriptions:
success: 'The accounts were moved successfully '
example: success
'401':
description: This request is unauthorized (either the Authorization header is missing or invalid, or the API key
has been revoked)
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 401
examples:
- 401
example: 401
error:
type: string
enum:
- Unauthorized
examples:
- Unauthorized
example: Unauthorized
message:
type: string
examples:
- Missing Authorization header
example: Missing Authorization header
required:
- statusCode
- error
- message
'402':
description: This request cannot be fulfilled because the workspace does not have an active paid plan
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 402
examples:
- 402
example: 402
error:
type: string
enum:
- Payment Required
examples:
- Payment Required
example: Payment Required
message:
type: string
examples:
- Workspace does not have an active paid plan
example: Workspace does not have an active paid plan
required:
- statusCode
- error
- message
'404':
description: The requested resource was not found
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 404
examples:
- 404
example: 404
error:
type: string
enum:
- Not Found
examples:
- Not Found
example: Not Found
message:
type: string
examples:
- Resource not found
example: Resource not found
required:
- statusCode
- error
- message
'429':
description: You have exceeded the rate limit. Please check the rate limit docs for more information.
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 429
examples:
- 429
example: 429
error:
type: string
enum:
- Too Many Requests
examples:
- Too Many Requests
example: Too Many Requests
message:
type: string
examples:
- Rate limit exceeded
example: Rate limit exceeded
required:
- statusCode
- error
- message
/api/v2/api-keys:
post:
operationId: createAPIKey
summary: Create api key
tags:
- APIKey
description: 'Requires one of the following scopes: `api_keys:create`, `api_keys:all`, `all:create`, `all:all`'
requestBody:
content:
application/json:
schema:
title: CreateAPI Key
description: The API Key to create
type: object
properties:
name:
type: string
example: My API Key
scopes:
type: array
items:
type: string
enum:
- all:all
- all:create
- all:read
- all:update
- all:delete
- ai_agents:all
- ai_agents:create
- ai_agents:read
- ai_agents:update
- ai_agents:delete
- api_keys:all
- api_keys:create
- api_keys:read
- api_keys:update
- api_keys:delete
- audit_logs:all
- audit_logs:create
- audit_logs:read
- audit_logs:update
- audit_logs:delete
- custom_prompt_templates:all
- custom_prompt_templates:create
- custom_prompt_templates:read
- custom_prompt_templates:update
- custom_prompt_templates:delete
- account_campaign_mappings:all
- account_campaign_mappings:create
- account_campaign_mappings:read
- account_campaign_mappings:update
- account_campaign_mappings:delete
- campaigns:all
- campaigns:create
- campaigns:read
- campaigns:update
- campaigns:delete
- inbox_placement_tests:all
- inbox_placement_tests:create
- inbox_placement_tests:read
- inbox_placement_tests:update
- inbox_placement_tests:delete
- inbox_placement_analytics:all
- inbox_placement_analytics:create
- inbox_placement_analytics:read
- inbox_placement_analytics:update
- inbox_placement_analytics:delete
- inbox_placement_reports:all
- inbox_placement_reports:create
- inbox_placement_reports:read
- inbox_placement_reports:update
- inbox_placement_reports:delete
- lead_lists:all
- lead_lists:create
- lead_lists:read
- lead_lists:update
- lead_lists:delete
- leads:all
- leads:create
- leads:read
- leads:update
- leads:delete
- background-jobs:all
- background-jobs:create
- background-jobs:read
- background-jobs:update
- background-jobs:delete
- custom_tags:all
- custom_tags:create
- custom_tags:read
- custom_tags:update
- custom_tags:delete
- custom_tag_mappings:all
- custom_tag_mappings:create
- custom_tag_mappings:read
- custom_tag_mappings:update
- custom_tag_mappings:delete
- crm_actions:all
- crm_actions:create
- crm_actions:read
- crm_actions:update
- crm_actions:delete
- accounts:all
- accounts:create
- accounts:read
- accounts:update
- accounts:delete
- block_list_entries:all
- block_list_entries:create
- block_list_entries:read
- block_list_entries:update
- block_list_entries:delete
- lead-labels:all
- lead-labels:create
- lead-labels:read
- lead-labels:update
- lead-labels:delete
- email_verifications:all
- email_verifications:create
- email_verifications:read
- emails:all
- emails:create
- emails:read
- emails:update
- emails:delete
- email_templates:all
- email_templates:create
- email_templates:read
- email_templates:update
- email_templates:delete
- workspaces:all
- workspaces:create
- workspaces:read
- workspaces:update
- workspaces:delete
- workspace_billing:all
- workspace_billing:create
- workspace_billing:read
- workspace_billing:update
- workspace_billing:delete
- workspace_group_members:all
- workspace_group_members:create
- workspace_group_members:read
- workspace_group_members:update
- workspace_group_members:delete
- workspace_members:all
- workspace_members:create
- workspace_members:read
- workspace_members:update
- workspace_members:delete
- subsequences:all
- subsequences:create
- subsequences:read
- subsequences:update
- subsequences:delete
- ai_sdr:all
- ai_sdr:create
- ai_sdr:read
- ai_sdr:update
- ai_sdr:delete
- ai_sdr_replies:all
- ai_sdr_replies:create
- ai_sdr_replies:read
- ai_sdr_replies:update
- ai_sdr_replies:delete
- ai_inbox_manager_analytics:all
- ai_inbox_manager_analytics:create
- ai_inbox_manager_analytics:read
- ai_inbox_manager_analytics:update
- ai_inbox_manager_analytics:delete
- sales_flows:all
- sales_flows:create
- sales_flows:read
- sales_flows:update
- sales_flows:delete
- webhooks:all
- webhooks:create
- webhooks:read
- webhooks:update
- webhooks:delete
- webhook_events:all
- webhook_events:create
- webhook_events:read
- webhook_events:update
- webhook_events:delete
- security_tokens:all
- security_tokens:create
- security_tokens:read
- security_tokens:update
- security_tokens:delete
- dfy_email_account_orders:all
- dfy_email_account_orders:create
- dfy_email_account_orders:read
- dfy_email_account_orders:update
- dfy_email_account_orders:delete
- auth:all
- auth:create
- auth:read
- auth:update
- auth:delete
example: campaigns:create
required:
- name
- scopes
additionalProperties: false
required: true
description: The API Key to create
responses:
'200':
description: The API Key
content:
application/json:
schema:
$ref: '#/components/schemas/APIKey'
'400':
description: Invalid request body (e.g. missing required fields, or invalid field values)
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 400
examples:
- 400
example: 400
error:
type: string
enum:
- Bad Request
examples:
- Bad Request
example: Bad Request
message:
type: string
examples:
- body must have required property 'name'
example: body must have required property 'name'
required:
- statusCode
- error
- message
'401':
description: This request is unauthorized (either the Authorization header is missing or invalid, or the API key
has been revoked)
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 401
examples:
- 401
example: 401
error:
type: string
enum:
- Unauthorized
examples:
- Unauthorized
example: Unauthorized
message:
type: string
examples:
- Missing Authorization header
example: Missing Authorization header
required:
- statusCode
- error
- message
'402':
description: This request cannot be fulfilled because the workspace does not have an active paid plan
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 402
examples:
- 402
example: 402
error:
type: string
enum:
- Payment Required
examples:
- Payment Required
example: Payment Required
message:
type: string
examples:
- Workspace does not have an active paid plan
example: Workspace does not have an active paid plan
required:
- statusCode
- error
- message
'404':
description: The requested resource was not found
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 404
examples:
- 404
example: 404
error:
type: string
enum:
- Not Found
examples:
- Not Found
example: Not Found
message:
type: string
examples:
- Resource not found
example: Resource not found
required:
- statusCode
- error
- message
'429':
description: You have exceeded the rate limit. Please check the rate limit docs for more information.
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 429
examples:
- 429
example: 429
error:
type: string
enum:
- Too Many Requests
examples:
- Too Many Requests
example: Too Many Requests
message:
type: string
examples:
- Rate limit exceeded
example: Rate limit exceeded
required:
- statusCode
- error
- message
get:
operationId: listAPIKey
summary: List api key
tags:
- APIKey
description: 'Requires one of the following scopes: `api_keys:read`, `api_keys:all`, `all:read`, `all:all`'
parameters:
- schema:
type: integer
minimum: 1
maximum: 100
example: 10
example: 10
in: query
name: limit
required: false
description: The number of items to return
- schema:
type: string
example: 01956fbd-0eb1-72db-a565-82977a586084
example: 01956fbd-0eb1-72db-a565-82977a586084
in: query
name: starting_after
required: false
description: The ID of the last item in the previous page - used for pagination. You can use the value of the `next_starting_after`
field from the previous response.
responses:
'200':
description: The list of API Key
content:
application/json:
schema:
type: object
properties:
items:
type: array
description: The list of API Key
items:
$ref: '#/components/schemas/APIKey'
next_starting_after:
type: string
examples:
- 019ffad2-9b7c-7dab-88fd-fd23eae3fdec
- '2026-08-13T11:12:14.204Z'
description: The filter for getting the next items after this one, this could either be a UUID, a timestamp,
on an email depending on the specific API
example: 019ffad2-9b7c-7dab-88fd-fd23eae3fdec
additionalProperties: false
required:
- items
'401':
description: This request is unauthorized (either the Authorization header is missing or invalid, or the API key
has been revoked)
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 401
examples:
- 401
example: 401
error:
type: string
enum:
- Unauthorized
examples:
- Unauthorized
example: Unauthorized
message:
type: string
examples:
- Missing Authorization header
example: Missing Authorization header
required:
- statusCode
- error
- message
'402':
description: This request cannot be fulfilled because the workspace does not have an active paid plan
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 402
examples:
- 402
example: 402
error:
type: string
enum:
- Payment Required
examples:
- Payment Required
example: Payment Required
message:
type: string
examples:
- Workspace does not have an active paid plan
example: Workspace does not have an active paid plan
required:
- statusCode
- error
- message
'404':
description: The requested resource was not found
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 404
examples:
- 404
example: 404
error:
type: string
enum:
- Not Found
examples:
- Not Found
example: Not Found
message:
type: string
examples:
- Resource not found
example: Resource not found
required:
- statusCode
- error
- message
'429':
description: You have exceeded the rate limit. Please check the rate limit docs for more information.
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 429
examples:
- 429
example: 429
error:
type: string
enum:
- Too Many Requests
examples:
- Too Many Requests
example: Too Many Requests
message:
type: string
examples:
- Rate limit exceeded
example: Rate limit exceeded
required:
- statusCode
- error
- message
/api/v2/api-keys/{id}:
delete:
operationId: deleteAPIKey
summary: Delete api key
tags:
- APIKey
description: 'Requires one of the following scopes: `api_keys:delete`, `api_keys:all`, `all:delete`, `all:all`'
requestBody:
content:
application/json:
schema:
type: 'null'
example: null
parameters:
- schema:
type: string
format: uuid
example: 019ffad2-9b7d-7279-a70d-81e4b5ba7965
example: 019ffad2-9b7d-7279-a70d-81e4b5ba7965
in: path
name: id
required: true
description: The ID of the item to delete
responses:
'200':
description: The deleted API Key
content:
application/json:
schema:
$ref: '#/components/schemas/APIKey'
'401':
description: This request is unauthorized (either the Authorization header is missing or invalid, or the API key
has been revoked)
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 401
examples:
- 401
example: 401
error:
type: string
enum:
- Unauthorized
examples:
- Unauthorized
example: Unauthorized
message:
type: string
examples:
- Missing Authorization header
example: Missing Authorization header
required:
- statusCode
- error
- message
'402':
description: This request cannot be fulfilled because the workspace does not have an active paid plan
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 402
examples:
- 402
example: 402
error:
type: string
enum:
- Payment Required
examples:
- Payment Required
example: Payment Required
message:
type: string
examples:
- Workspace does not have an active paid plan
example: Workspace does not have an active paid plan
required:
- statusCode
- error
- message
'404':
description: The requested resource was not found
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 404
examples:
- 404
example: 404
error:
type: string
enum:
- Not Found
examples:
- Not Found
example: Not Found
message:
type: string
examples:
- Resource not found
example: Resource not found
required:
- statusCode
- error
- message
'429':
description: You have exceeded the rate limit. Please check the rate limit docs for more information.
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 429
examples:
- 429
example: 429
error:
type: string
enum:
- Too Many Requests
examples:
- Too Many Requests
example: Too Many Requests
message:
type: string
examples:
- Rate limit exceeded
example: Rate limit exceeded
required:
- statusCode
- error
- message
/api/v2/audit-logs:
get:
operationId: listAuditLog
summary: List audit log
tags:
- AuditLog
description: 'Requires one of the following scopes: `audit_logs:read`, `audit_logs:all`, `all:read`, `all:all`'
parameters:
- schema:
type: integer
minimum: 1
maximum: 1000
example: 10
example: 10
in: query
name: limit
required: false
description: The number of items to return
- schema:
type: string
example: 01956fbd-0eb1-72db-a565-82977a586084
example: 01956fbd-0eb1-72db-a565-82977a586084
in: query
name: starting_after
required: false
description: The ID of the last item in the previous page - used for pagination. You can use the value of the `next_starting_after`
field from the previous response.
- schema:
type: number
example: 1
example: 1
in: query
name: activity_type
required: false
description: Filter by activity type
- schema:
type: string
example: login
example: login
in: query
name: search
required: false
description: Search term to filter logs
- schema:
type: string
example: '2024-01-01'
example: '2024-01-01'
in: query
name: start_date
required: false
description: Start date to filter logs
- schema:
type: string
example: '2024-01-01'
example: '2024-01-01'
in: query
name: end_date
required: false
description: End date to filter logs
responses:
'200':
description: The list of Audit Log
content:
application/json:
schema:
type: object
properties:
items:
type: array
description: The list of Audit Log
items:
$ref: '#/components/schemas/AuditLog'
next_starting_after:
type: string
examples:
- 019ffad2-9b83-7eb2-a5c2-72f6cc563775
- '2026-08-13T11:12:14.211Z'
description: The filter for getting the next items after this one, this could either be a UUID, a timestamp,
on an email depending on the specific API
example: 019ffad2-9b83-7eb2-a5c2-72f6cc563775
additionalProperties: false
required:
- items
'401':
description: This request is unauthorized (either the Authorization header is missing or invalid, or the API key
has been revoked)
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 401
examples:
- 401
example: 401
error:
type: string
enum:
- Unauthorized
examples:
- Unauthorized
example: Unauthorized
message:
type: string
examples:
- Missing Authorization header
example: Missing Authorization header
required:
- statusCode
- error
- message
'402':
description: This request cannot be fulfilled because the workspace does not have an active paid plan
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 402
examples:
- 402
example: 402
error:
type: string
enum:
- Payment Required
examples:
- Payment Required
example: Payment Required
message:
type: string
examples:
- Workspace does not have an active paid plan
example: Workspace does not have an active paid plan
required:
- statusCode
- error
- message
'404':
description: The requested resource was not found
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 404
examples:
- 404
example: 404
error:
type: string
enum:
- Not Found
examples:
- Not Found
example: Not Found
message:
type: string
examples:
- Resource not found
example: Resource not found
required:
- statusCode
- error
- message
'429':
description: You have exceeded the rate limit. Please check the rate limit docs for more information.
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 429
examples:
- 429
example: 429
error:
type: string
enum:
- Too Many Requests
examples:
- Too Many Requests
example: Too Many Requests
message:
type: string
examples:
- Rate limit exceeded
example: Rate limit exceeded
required:
- statusCode
- error
- message
/api/v2/background-jobs:
get:
operationId: listBackgroundJob
summary: List background job
tags:
- BackgroundJob
description: 'Requires one of the following scopes: `background-jobs:read`, `background-jobs:all`, `all:read`, `all:all`'
parameters:
- schema:
type: integer
minimum: 1
maximum: 100
example: 10
example: 10
in: query
name: limit
required: false
description: The number of items to return
- schema:
type: string
example: 507f1f77bcf86cd799439011
example: 507f1f77bcf86cd799439011
in: query
name: starting_after
required: false
- schema:
type: string
example: 676f3caadedbfe9abea3bab4
example: 676f3caadedbfe9abea3bab4
in: query
name: ids
required: false
description: The ID of the job. Multiple IDs can be provided as a comma-separated list
- schema:
type: string
example: 676f3caadedbfe9abea3bab4
example: 676f3caadedbfe9abea3bab4
in: query
name: included_ids
required: false
description: The ID of the job to be included in the response. Multiple IDs can be provided as a comma-separated list
- schema:
type: string
example: 676f3caadedbfe9abea3bab4
example: 676f3caadedbfe9abea3bab4
in: query
name: excluded_ids
required: false
description: The ID of the job to be excluded from the response. Multiple IDs can be provided as a comma-separated
list
- schema:
type: string
enum:
- move-leads
- import-leads
- export-leads
- update-warmup-accounts
- rename-variable
- broadcast-ai-generate
- broadcast-website-scrape
- import-subscribers-from-crm
- resync-subscriber-crm-tags
example: move-leads
example: move-leads
in: query
name: type
required: false
description: The type of the job
- schema:
type: string
enum:
- list
- campaign
- workspace
- broadcast
- subscriber-group-sync
- subscriber-group
example: list
example: list
in: query
name: entity_type
required: false
description: The type of the entity
- schema:
type: string
example: 676f3caadedbfe9abea3bab4
example: 676f3caadedbfe9abea3bab4
in: query
name: entity_id
required: false
description: The ID of the entity. Multiple IDs can be provided as a comma-separated list
- schema:
type: string
example: pending,in-progress
example: pending,in-progress
in: query
name: status
required: false
description: 'The status of the job. Multiple statuses can be provided as a comma-separated list. Valid statuses are:
pending, in-progress, success, failed, draining, paused, cancelled'
- schema:
type: string
enum:
- created_at
- updated_at
x-enumDescriptions:
created_at: Created at
updated_at: Updated at
example: created_at
example: created_at
in: query
name: sort_column
required: false
description: The column to sort the results by
- schema:
type: string
enum:
- asc
- desc
x-enumDescriptions:
asc: Ascending
desc: Descending
example: desc
example: desc
in: query
name: sort_order
required: false
description: The order to sort the results by
responses:
'200':
description: The list of Background Job
content:
application/json:
schema:
type: object
properties:
items:
type: array
description: The list of Background Job
items:
$ref: '#/components/schemas/BackgroundJob'
next_starting_after:
type: string
examples:
- 019ffad2-9b89-77a5-91d0-e7e5db28afca
- '2026-08-13T11:12:14.217Z'
description: The filter for getting the next items after this one, this could either be a UUID, a timestamp,
on an email depending on the specific API
example: 019ffad2-9b89-77a5-91d0-e7e5db28afca
additionalProperties: false
required:
- items
'401':
description: This request is unauthorized (either the Authorization header is missing or invalid, or the API key
has been revoked)
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 401
examples:
- 401
example: 401
error:
type: string
enum:
- Unauthorized
examples:
- Unauthorized
example: Unauthorized
message:
type: string
examples:
- Missing Authorization header
example: Missing Authorization header
required:
- statusCode
- error
- message
'402':
description: This request cannot be fulfilled because the workspace does not have an active paid plan
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 402
examples:
- 402
example: 402
error:
type: string
enum:
- Payment Required
examples:
- Payment Required
example: Payment Required
message:
type: string
examples:
- Workspace does not have an active paid plan
example: Workspace does not have an active paid plan
required:
- statusCode
- error
- message
'404':
description: The requested resource was not found
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 404
examples:
- 404
example: 404
error:
type: string
enum:
- Not Found
examples:
- Not Found
example: Not Found
message:
type: string
examples:
- Resource not found
example: Resource not found
required:
- statusCode
- error
- message
'429':
description: You have exceeded the rate limit. Please check the rate limit docs for more information.
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 429
examples:
- 429
example: 429
error:
type: string
enum:
- Too Many Requests
examples:
- Too Many Requests
example: Too Many Requests
message:
type: string
examples:
- Rate limit exceeded
example: Rate limit exceeded
required:
- statusCode
- error
- message
/api/v2/background-jobs/{id}:
get:
operationId: getBackgroundJob
summary: Get background job
tags:
- BackgroundJob
description: 'Requires one of the following scopes: `background-jobs:read`, `background-jobs:all`, `all:read`, `all:all`'
parameters:
- schema:
type: string
example: success_count,failed_count,total_to_process
examples:
success_count,failed_count,total_to_process:
value: success_count,failed_count,total_to_process
moved_lead_emails,moved_leads:
value: moved_lead_emails,moved_leads
in: query
name: data_fields
required: false
description: Comma-separated list of fields to include from the `data` object (e.g., "success_count,failed_count"
or "moved_lead_emails,moved_leads"). For `move-leads` jobs, `moved_lead_emails` is capped at 10,000 entries.
- schema:
type: string
example: 6a7da68ed583d899a375b4ea
example: 6a7da68ed583d899a375b4ea
in: path
name: id
required: true
description: The ID of the requested item
responses:
'200':
description: The requested Background Job
content:
application/json:
schema:
$ref: '#/components/schemas/BackgroundJob'
'401':
description: This request is unauthorized (either the Authorization header is missing or invalid, or the API key
has been revoked)
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 401
examples:
- 401
example: 401
error:
type: string
enum:
- Unauthorized
examples:
- Unauthorized
example: Unauthorized
message:
type: string
examples:
- Missing Authorization header
example: Missing Authorization header
required:
- statusCode
- error
- message
'402':
description: This request cannot be fulfilled because the workspace does not have an active paid plan
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 402
examples:
- 402
example: 402
error:
type: string
enum:
- Payment Required
examples:
- Payment Required
example: Payment Required
message:
type: string
examples:
- Workspace does not have an active paid plan
example: Workspace does not have an active paid plan
required:
- statusCode
- error
- message
'404':
description: The requested resource was not found
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 404
examples:
- 404
example: 404
error:
type: string
enum:
- Not Found
examples:
- Not Found
example: Not Found
message:
type: string
examples:
- Resource not found
example: Resource not found
required:
- statusCode
- error
- message
'429':
description: You have exceeded the rate limit. Please check the rate limit docs for more information.
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 429
examples:
- 429
example: 429
error:
type: string
enum:
- Too Many Requests
examples:
- Too Many Requests
example: Too Many Requests
message:
type: string
examples:
- Rate limit exceeded
example: Rate limit exceeded
required:
- statusCode
- error
- message
/api/v2/block-lists-entries:
post:
operationId: createBlockListEntry
summary: Create block list entry
tags:
- BlockListEntry
description: 'Requires one of the following scopes: `block_list_entries:create`, `block_list_entries:all`, `all:create`,
`all:all`'
requestBody:
content:
application/json:
schema:
title: CreateBlock List Entry
description: The Block List Entry to create
type: object
properties:
bl_value:
type: string
description: The email or domain to block
example: example.com
required:
- bl_value
additionalProperties: false
required: true
description: The Block List Entry to create
responses:
'200':
description: The Block List Entry
content:
application/json:
schema:
$ref: '#/components/schemas/BlockListEntry'
'400':
description: Invalid request body (e.g. missing required fields, or invalid field values)
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 400
examples:
- 400
example: 400
error:
type: string
enum:
- Bad Request
examples:
- Bad Request
example: Bad Request
message:
type: string
examples:
- body must have required property 'name'
example: body must have required property 'name'
required:
- statusCode
- error
- message
'401':
description: This request is unauthorized (either the Authorization header is missing or invalid, or the API key
has been revoked)
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 401
examples:
- 401
example: 401
error:
type: string
enum:
- Unauthorized
examples:
- Unauthorized
example: Unauthorized
message:
type: string
examples:
- Missing Authorization header
example: Missing Authorization header
required:
- statusCode
- error
- message
'402':
description: This request cannot be fulfilled because the workspace does not have an active paid plan
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 402
examples:
- 402
example: 402
error:
type: string
enum:
- Payment Required
examples:
- Payment Required
example: Payment Required
message:
type: string
examples:
- Workspace does not have an active paid plan
example: Workspace does not have an active paid plan
required:
- statusCode
- error
- message
'404':
description: The requested resource was not found
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 404
examples:
- 404
example: 404
error:
type: string
enum:
- Not Found
examples:
- Not Found
example: Not Found
message:
type: string
examples:
- Resource not found
example: Resource not found
required:
- statusCode
- error
- message
'429':
description: You have exceeded the rate limit. Please check the rate limit docs for more information.
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 429
examples:
- 429
example: 429
error:
type: string
enum:
- Too Many Requests
examples:
- Too Many Requests
example: Too Many Requests
message:
type: string
examples:
- Rate limit exceeded
example: Rate limit exceeded
required:
- statusCode
- error
- message
get:
operationId: listBlockListEntry
summary: List block list entry
tags:
- BlockListEntry
description: 'Requires one of the following scopes: `block_list_entries:read`, `block_list_entries:all`, `all:read`,
`all:all`'
parameters:
- schema:
type: integer
minimum: 1
maximum: 100
example: 10
example: 10
in: query
name: limit
required: false
description: The number of items to return
- schema:
type: string
example: 01956fbd-0eb1-72db-a565-82977a586084
example: 01956fbd-0eb1-72db-a565-82977a586084
in: query
name: starting_after
required: false
description: The ID of the last item in the previous page - used for pagination. You can use the value of the `next_starting_after`
field from the previous response.
- schema:
type: boolean
example: true
examples:
'true':
value: true
'false':
value: false
in: query
name: domains_only
required: false
description: Filter by domain
- schema:
type: string
example: example.com
examples:
example.com:
value: example.com
example.org:
value: example.org
in: query
name: search
required: false
description: Search by value
responses:
'200':
description: The list of Block List Entry
content:
application/json:
schema:
type: object
properties:
items:
type: array
description: The list of Block List Entry
items:
$ref: '#/components/schemas/BlockListEntry'
next_starting_after:
type: string
examples:
- 019ffad2-9b91-7359-ae30-3dff1fe118ba
- '2026-08-13T11:12:14.225Z'
description: The filter for getting the next items after this one, this could either be a UUID, a timestamp,
on an email depending on the specific API
example: 019ffad2-9b91-7359-ae30-3dff1fe118ba
additionalProperties: false
required:
- items
'401':
description: This request is unauthorized (either the Authorization header is missing or invalid, or the API key
has been revoked)
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 401
examples:
- 401
example: 401
error:
type: string
enum:
- Unauthorized
examples:
- Unauthorized
example: Unauthorized
message:
type: string
examples:
- Missing Authorization header
example: Missing Authorization header
required:
- statusCode
- error
- message
'402':
description: This request cannot be fulfilled because the workspace does not have an active paid plan
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 402
examples:
- 402
example: 402
error:
type: string
enum:
- Payment Required
examples:
- Payment Required
example: Payment Required
message:
type: string
examples:
- Workspace does not have an active paid plan
example: Workspace does not have an active paid plan
required:
- statusCode
- error
- message
'404':
description: The requested resource was not found
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 404
examples:
- 404
example: 404
error:
type: string
enum:
- Not Found
examples:
- Not Found
example: Not Found
message:
type: string
examples:
- Resource not found
example: Resource not found
required:
- statusCode
- error
- message
'429':
description: You have exceeded the rate limit. Please check the rate limit docs for more information.
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 429
examples:
- 429
example: 429
error:
type: string
enum:
- Too Many Requests
examples:
- Too Many Requests
example: Too Many Requests
message:
type: string
examples:
- Rate limit exceeded
example: Rate limit exceeded
required:
- statusCode
- error
- message
delete:
operationId: deleteallBlockListEntry
summary: Delete all block list entries
tags:
- BlockListEntry
description: 'Requires one of the following scopes: `block_list_entries:delete`, `block_list_entries:all`, `all:delete`,
`all:all`'
requestBody:
content:
application/json:
schema:
type: 'null'
example: null
parameters:
- schema:
type: boolean
example: true
examples:
'true':
value: true
'false':
value: false
in: query
name: domains_only
required: false
description: Filter by domain
- schema:
type: string
example: example.com
examples:
example.com:
value: example.com
user@example.org:
value: user@example.org
in: query
name: search
required: false
description: Search by value
responses:
'200':
description: List of deleted Block List Entry
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/BlockListEntry'
'401':
description: This request is unauthorized (either the Authorization header is missing or invalid, or the API key
has been revoked)
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 401
examples:
- 401
example: 401
error:
type: string
enum:
- Unauthorized
examples:
- Unauthorized
example: Unauthorized
message:
type: string
examples:
- Missing Authorization header
example: Missing Authorization header
required:
- statusCode
- error
- message
'402':
description: This request cannot be fulfilled because the workspace does not have an active paid plan
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 402
examples:
- 402
example: 402
error:
type: string
enum:
- Payment Required
examples:
- Payment Required
example: Payment Required
message:
type: string
examples:
- Workspace does not have an active paid plan
example: Workspace does not have an active paid plan
required:
- statusCode
- error
- message
'404':
description: The requested resource was not found
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 404
examples:
- 404
example: 404
error:
type: string
enum:
- Not Found
examples:
- Not Found
example: Not Found
message:
type: string
examples:
- Resource not found
example: Resource not found
required:
- statusCode
- error
- message
'429':
description: You have exceeded the rate limit. Please check the rate limit docs for more information.
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 429
examples:
- 429
example: 429
error:
type: string
enum:
- Too Many Requests
examples:
- Too Many Requests
example: Too Many Requests
message:
type: string
examples:
- Rate limit exceeded
example: Rate limit exceeded
required:
- statusCode
- error
- message
/api/v2/block-lists-entries/{id}:
get:
operationId: getBlockListEntry
summary: Get block list entry
tags:
- BlockListEntry
description: 'Requires one of the following scopes: `block_list_entries:read`, `block_list_entries:all`, `all:read`,
`all:all`'
parameters:
- schema:
type: string
format: uuid
example: 019ffad2-9b90-7dbc-9495-c09051a2b55f
example: 019ffad2-9b90-7dbc-9495-c09051a2b55f
in: path
name: id
required: true
description: The ID of the requested item
responses:
'200':
description: The requested Block List Entry
content:
application/json:
schema:
$ref: '#/components/schemas/BlockListEntry'
'401':
description: This request is unauthorized (either the Authorization header is missing or invalid, or the API key
has been revoked)
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 401
examples:
- 401
example: 401
error:
type: string
enum:
- Unauthorized
examples:
- Unauthorized
example: Unauthorized
message:
type: string
examples:
- Missing Authorization header
example: Missing Authorization header
required:
- statusCode
- error
- message
'402':
description: This request cannot be fulfilled because the workspace does not have an active paid plan
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 402
examples:
- 402
example: 402
error:
type: string
enum:
- Payment Required
examples:
- Payment Required
example: Payment Required
message:
type: string
examples:
- Workspace does not have an active paid plan
example: Workspace does not have an active paid plan
required:
- statusCode
- error
- message
'404':
description: The requested resource was not found
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 404
examples:
- 404
example: 404
error:
type: string
enum:
- Not Found
examples:
- Not Found
example: Not Found
message:
type: string
examples:
- Resource not found
example: Resource not found
required:
- statusCode
- error
- message
'429':
description: You have exceeded the rate limit. Please check the rate limit docs for more information.
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 429
examples:
- 429
example: 429
error:
type: string
enum:
- Too Many Requests
examples:
- Too Many Requests
example: Too Many Requests
message:
type: string
examples:
- Rate limit exceeded
example: Rate limit exceeded
required:
- statusCode
- error
- message
patch:
operationId: patchBlockListEntry
summary: Patch block list entry
tags:
- BlockListEntry
description: 'Requires one of the following scopes: `block_list_entries:update`, `block_list_entries:all`, `all:update`,
`all:all`'
requestBody:
content:
application/json:
schema:
type: object
properties:
bl_value:
type: string
description: The email or domain to block
example: example.com
required: []
additionalProperties: false
minProperties: 1
parameters:
- schema:
type: string
format: uuid
example: 019ffad2-9b92-77a9-9e42-5db4e7a2716a
example: 019ffad2-9b92-77a9-9e42-5db4e7a2716a
in: path
name: id
required: true
description: The ID of the item to update
responses:
'200':
description: The updated Block List Entry
content:
application/json:
schema:
$ref: '#/components/schemas/BlockListEntry'
'401':
description: This request is unauthorized (either the Authorization header is missing or invalid, or the API key
has been revoked)
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 401
examples:
- 401
example: 401
error:
type: string
enum:
- Unauthorized
examples:
- Unauthorized
example: Unauthorized
message:
type: string
examples:
- Missing Authorization header
example: Missing Authorization header
required:
- statusCode
- error
- message
'402':
description: This request cannot be fulfilled because the workspace does not have an active paid plan
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 402
examples:
- 402
example: 402
error:
type: string
enum:
- Payment Required
examples:
- Payment Required
example: Payment Required
message:
type: string
examples:
- Workspace does not have an active paid plan
example: Workspace does not have an active paid plan
required:
- statusCode
- error
- message
'404':
description: The requested resource was not found
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 404
examples:
- 404
example: 404
error:
type: string
enum:
- Not Found
examples:
- Not Found
example: Not Found
message:
type: string
examples:
- Resource not found
example: Resource not found
required:
- statusCode
- error
- message
'429':
description: You have exceeded the rate limit. Please check the rate limit docs for more information.
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 429
examples:
- 429
example: 429
error:
type: string
enum:
- Too Many Requests
examples:
- Too Many Requests
example: Too Many Requests
message:
type: string
examples:
- Rate limit exceeded
example: Rate limit exceeded
required:
- statusCode
- error
- message
delete:
operationId: deleteBlockListEntry
summary: Delete block list entry
tags:
- BlockListEntry
description: 'Requires one of the following scopes: `block_list_entries:delete`, `block_list_entries:all`, `all:delete`,
`all:all`'
requestBody:
content:
application/json:
schema:
type: 'null'
example: null
parameters:
- schema:
type: string
format: uuid
example: 019ffad2-9b92-77a9-9e42-5db507f610df
example: 019ffad2-9b92-77a9-9e42-5db507f610df
in: path
name: id
required: true
description: The ID of the item to delete
responses:
'200':
description: The deleted Block List Entry
content:
application/json:
schema:
$ref: '#/components/schemas/BlockListEntry'
'401':
description: This request is unauthorized (either the Authorization header is missing or invalid, or the API key
has been revoked)
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 401
examples:
- 401
example: 401
error:
type: string
enum:
- Unauthorized
examples:
- Unauthorized
example: Unauthorized
message:
type: string
examples:
- Missing Authorization header
example: Missing Authorization header
required:
- statusCode
- error
- message
'402':
description: This request cannot be fulfilled because the workspace does not have an active paid plan
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 402
examples:
- 402
example: 402
error:
type: string
enum:
- Payment Required
examples:
- Payment Required
example: Payment Required
message:
type: string
examples:
- Workspace does not have an active paid plan
example: Workspace does not have an active paid plan
required:
- statusCode
- error
- message
'404':
description: The requested resource was not found
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 404
examples:
- 404
example: 404
error:
type: string
enum:
- Not Found
examples:
- Not Found
example: Not Found
message:
type: string
examples:
- Resource not found
example: Resource not found
required:
- statusCode
- error
- message
'429':
description: You have exceeded the rate limit. Please check the rate limit docs for more information.
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 429
examples:
- 429
example: 429
error:
type: string
enum:
- Too Many Requests
examples:
- Too Many Requests
example: Too Many Requests
message:
type: string
examples:
- Rate limit exceeded
example: Rate limit exceeded
required:
- statusCode
- error
- message
/api/v2/block-lists-entries/bulk-create:
post:
operationId: createblukBlockListEntry
summary: Bulk create block list entry
tags:
- BlockListEntry
description: 'Requires one of the following scopes: `block_list_entries:create`, `block_list_entries:all`, `all:create`,
`all:all`'
requestBody:
content:
application/json:
schema:
title: BulkCreate Block List Entry
description: Domains or emails to block
type: object
required:
- bl_values
properties:
bl_values:
type: array
description: List of domains or emails to block
example:
- example.com
- user@example.com
items:
type: string
minItems: 1
maxItems: 1000
required: true
description: Domains or emails to block
responses:
'200':
description: List of created Block List Entry
content:
application/json:
schema:
title: Bulk Created Block List Entries
type: object
required:
- items
- valid_count
- invalid_count
properties:
items:
type: array
items:
$ref: '#/components/schemas/BlockListEntry'
valid_count:
type: number
description: Number of valid entries
example: 1
invalid_count:
type: number
description: Number of invalid entries
example: 0
'400':
description: Invalid request body (e.g. missing required fields, or invalid field values)
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 400
examples:
- 400
example: 400
error:
type: string
enum:
- Bad Request
examples:
- Bad Request
example: Bad Request
message:
type: string
examples:
- body must have required property 'name'
example: body must have required property 'name'
required:
- statusCode
- error
- message
'401':
description: This request is unauthorized (either the Authorization header is missing or invalid, or the API key
has been revoked)
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 401
examples:
- 401
example: 401
error:
type: string
enum:
- Unauthorized
examples:
- Unauthorized
example: Unauthorized
message:
type: string
examples:
- Missing Authorization header
example: Missing Authorization header
required:
- statusCode
- error
- message
'402':
description: This request cannot be fulfilled because the workspace does not have an active paid plan
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 402
examples:
- 402
example: 402
error:
type: string
enum:
- Payment Required
examples:
- Payment Required
example: Payment Required
message:
type: string
examples:
- Workspace does not have an active paid plan
example: Workspace does not have an active paid plan
required:
- statusCode
- error
- message
'404':
description: The requested resource was not found
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 404
examples:
- 404
example: 404
error:
type: string
enum:
- Not Found
examples:
- Not Found
example: Not Found
message:
type: string
examples:
- Resource not found
example: Resource not found
required:
- statusCode
- error
- message
'429':
description: You have exceeded the rate limit. Please check the rate limit docs for more information.
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 429
examples:
- 429
example: 429
error:
type: string
enum:
- Too Many Requests
examples:
- Too Many Requests
example: Too Many Requests
message:
type: string
examples:
- Rate limit exceeded
example: Rate limit exceeded
required:
- statusCode
- error
- message
/api/v2/block-lists-entries/bulk-delete:
post:
operationId: deletebulkBlockListEntry
summary: Bulk delete block list entry
tags:
- BlockListEntry
description: 'Requires one of the following scopes: `block_list_entries:delete`, `block_list_entries:all`, `all:delete`,
`all:all`'
requestBody:
content:
application/json:
schema:
title: Bulk Delete Block List Entry
description: Block list entry ids to delete
type: object
required:
- ids
properties:
ids:
type: array
description: List block list entry ids to delete
example:
- 019c0e38-b39d-7504-93ef-1e032de54779
- 019c0e38-b39d-7504-93ef-1e022fed2086
items:
type: string
minItems: 1
maxItems: 1000
required: true
description: Block list entry ids to delete
responses:
'200':
description: List of deleted Block List Entry
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/BlockListEntry'
'401':
description: This request is unauthorized (either the Authorization header is missing or invalid, or the API key
has been revoked)
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 401
examples:
- 401
example: 401
error:
type: string
enum:
- Unauthorized
examples:
- Unauthorized
example: Unauthorized
message:
type: string
examples:
- Missing Authorization header
example: Missing Authorization header
required:
- statusCode
- error
- message
'402':
description: This request cannot be fulfilled because the workspace does not have an active paid plan
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 402
examples:
- 402
example: 402
error:
type: string
enum:
- Payment Required
examples:
- Payment Required
example: Payment Required
message:
type: string
examples:
- Workspace does not have an active paid plan
example: Workspace does not have an active paid plan
required:
- statusCode
- error
- message
'404':
description: The requested resource was not found
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 404
examples:
- 404
example: 404
error:
type: string
enum:
- Not Found
examples:
- Not Found
example: Not Found
message:
type: string
examples:
- Resource not found
example: Resource not found
required:
- statusCode
- error
- message
'429':
description: You have exceeded the rate limit. Please check the rate limit docs for more information.
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 429
examples:
- 429
example: 429
error:
type: string
enum:
- Too Many Requests
examples:
- Too Many Requests
example: Too Many Requests
message:
type: string
examples:
- Rate limit exceeded
example: Rate limit exceeded
required:
- statusCode
- error
- message
/api/v2/block-lists-entries/download:
get:
operationId: downloadBlockListEntry
summary: Download all block list entries as CSV
tags:
- BlockListEntry
description: 'Requires one of the following scopes: `block_list_entries:read`, `block_list_entries:all`, `all:read`,
`all:all`'
parameters:
- schema:
type: boolean
example: true
examples:
'true':
value: true
'false':
value: false
in: query
name: domains_only
required: false
description: Filter by domain
- schema:
type: string
example: example.com
examples:
example.com:
value: example.com
user@example.org:
value: user@example.org
in: query
name: search
required: false
description: Search by value
responses:
'200':
description: The list of Block List Entry
content:
text/csv:
schema:
type: string
example: "Blocked Email,Date\r\nexample.com,2023-09-15T12:00:00Z\r\nuser@example.org,2023-09-15T12:00:00Z"
'401':
description: This request is unauthorized (either the Authorization header is missing or invalid, or the API key
has been revoked)
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 401
examples:
- 401
example: 401
error:
type: string
enum:
- Unauthorized
examples:
- Unauthorized
example: Unauthorized
message:
type: string
examples:
- Missing Authorization header
example: Missing Authorization header
required:
- statusCode
- error
- message
'402':
description: This request cannot be fulfilled because the workspace does not have an active paid plan
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 402
examples:
- 402
example: 402
error:
type: string
enum:
- Payment Required
examples:
- Payment Required
example: Payment Required
message:
type: string
examples:
- Workspace does not have an active paid plan
example: Workspace does not have an active paid plan
required:
- statusCode
- error
- message
'404':
description: The requested resource was not found
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 404
examples:
- 404
example: 404
error:
type: string
enum:
- Not Found
examples:
- Not Found
example: Not Found
message:
type: string
examples:
- Resource not found
example: Resource not found
required:
- statusCode
- error
- message
'429':
description: You have exceeded the rate limit. Please check the rate limit docs for more information.
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 429
examples:
- 429
example: 429
error:
type: string
enum:
- Too Many Requests
examples:
- Too Many Requests
example: Too Many Requests
message:
type: string
examples:
- Rate limit exceeded
example: Rate limit exceeded
required:
- statusCode
- error
- message
/api/v2/campaigns:
post:
operationId: createCampaign
summary: Create campaign
tags:
- Campaign
description: 'Requires one of the following scopes: `campaigns:create`, `campaigns:all`, `all:create`, `all:all`'
requestBody:
content:
application/json:
schema:
title: CreateCampaign
description: The Campaign to create
type: object
properties:
name:
type: string
description: Name of the campaign
example: My First Campaign
pl_value:
type:
- number
- 'null'
description: Value of every positive lead
example: 100
is_evergreen:
type:
- boolean
- 'null'
description: Whether the campaign is evergreen
example: false
campaign_schedule:
type: object
description: Campaign schedule
properties:
start_date:
type:
- string
- 'null'
format: date
description: Start date in YYYY-MM-DD format. Uses the campaign's timezone.
example: '2025-09-25'
end_date:
type:
- string
- 'null'
format: date
description: End date in YYYY-MM-DD format. Uses the campaign's timezone.
example: '2025-09-25'
schedules:
type: array
items:
type: object
properties:
name:
type: string
example: My Schedule
timing:
type: object
properties:
from:
type: string
pattern: ^([01][0-9]|2[0-3]):([0-5][0-9])$
example: 09:00
to:
type: string
pattern: ^([01][0-9]|2[0-3]):([0-5][0-9])$
example: '17:00'
required:
- from
- to
days:
type: object
minProperties: 1
properties:
'0':
type: boolean
example: true
'1':
type: boolean
example: true
'2':
type: boolean
example: true
'3':
type: boolean
example: true
'4':
type: boolean
example: true
'5':
type: boolean
example: false
'6':
type: boolean
example: false
timezone:
type: string
enum:
- Etc/GMT+12
- Etc/GMT+11
- Etc/GMT+10
- America/Anchorage
- America/Dawson
- America/Creston
- America/Chihuahua
- America/Boise
- America/Belize
- America/Chicago
- America/Bahia_Banderas
- America/Regina
- America/Bogota
- America/Detroit
- America/Indiana/Marengo
- America/Caracas
- America/Asuncion
- America/Glace_Bay
- America/Campo_Grande
- America/Anguilla
- America/Santiago
- America/St_Johns
- America/Sao_Paulo
- America/Argentina/La_Rioja
- America/Araguaina
- America/Godthab
- America/Montevideo
- America/Bahia
- America/Noronha
- America/Scoresbysund
- Atlantic/Cape_Verde
- Africa/Casablanca
- America/Danmarkshavn
- Europe/Isle_of_Man
- Atlantic/Canary
- Africa/Abidjan
- Arctic/Longyearbyen
- Europe/Belgrade
- Africa/Ceuta
- Europe/Sarajevo
- Africa/Algiers
- Africa/Windhoek
- Asia/Nicosia
- Asia/Beirut
- Africa/Cairo
- Asia/Damascus
- Europe/Bucharest
- Africa/Blantyre
- Europe/Helsinki
- Europe/Istanbul
- Asia/Jerusalem
- Africa/Tripoli
- Asia/Amman
- Asia/Baghdad
- Europe/Kaliningrad
- Asia/Aden
- Africa/Addis_Ababa
- Europe/Kirov
- Europe/Astrakhan
- Asia/Tehran
- Asia/Dubai
- Asia/Baku
- Indian/Mahe
- Asia/Tbilisi
- Asia/Yerevan
- Asia/Kabul
- Antarctica/Mawson
- Asia/Yekaterinburg
- Asia/Karachi
- Asia/Kolkata
- Asia/Colombo
- Asia/Kathmandu
- Antarctica/Vostok
- Asia/Dhaka
- Asia/Rangoon
- Antarctica/Davis
- Asia/Novokuznetsk
- Asia/Hong_Kong
- Asia/Krasnoyarsk
- Asia/Brunei
- Australia/Perth
- Asia/Taipei
- Asia/Choibalsan
- Asia/Irkutsk
- Asia/Dili
- Asia/Pyongyang
- Australia/Adelaide
- Australia/Darwin
- Australia/Brisbane
- Australia/Melbourne
- Antarctica/DumontDUrville
- Australia/Currie
- Asia/Chita
- Antarctica/Macquarie
- Asia/Sakhalin
- Pacific/Auckland
- Etc/GMT-12
- Pacific/Fiji
- Asia/Anadyr
- Asia/Kamchatka
- Etc/GMT-13
- Pacific/Apia
example: Etc/GMT+12
required:
- name
- timing
- days
- timezone
minItems: 1
required:
- schedules
sequences:
type: array
description: List of sequences (the actual email copy). Even though this field is an array, only the first
element is used, so please provide only one array item, and add the steps to that array
items:
type: object
properties:
steps:
type: array
items:
type: object
properties:
type:
type: string
enum:
- email
x-enumDescriptions:
email: This steps represents an email
description: Type of step. This has to be 'email' always - it's the only supported type for
now
example: email
delay:
type: number
description: The delay value before sending the NEXT email. The unit is determined by the delay_unit
field (defaults to days).
example: 2
delay_unit:
type: string
enum:
- minutes
- hours
- days
default: days
description: The unit of time for the delay value (minutes, hours, or days). Defaults to days
for backward compatibility.
example: days
pre_delay:
type: number
description: The delay value before sending the FIRST email in a subsequence. **Only applicable
to subsequences** - this field is ignored for regular campaigns. The unit is determined by
the pre_delay_unit field (defaults to days).
example: 2
pre_delay_unit:
type: string
enum:
- minutes
- hours
- days
default: days
description: The unit of time for the pre_delay value (minutes, hours, or days). **Only applicable
to subsequences** - this field is ignored for regular campaigns. Defaults to days for backward
compatibility.
example: days
variants:
type: array
items:
type: object
properties:
subject:
type: string
example: Hello {{firstName}}
body:
type: string
description: Email body HTML. Use `
` tags for delivered email line breaks.
example: Hey {{firstName}},
I hope you are doing well.
v_disabled:
type: boolean
description: Whether this variant is disabled. By default, all the variants are enabled.
Please set this to true if you want to disable this variant
example: true
required:
- subject
- body
required:
- type
- delay
- variants
required:
- steps
email_gap:
type:
- number
- 'null'
description: The gap between emails in minutes
example: 10
random_wait_max:
type:
- number
- 'null'
description: The maximum random wait time in minutes
example: 10
text_only:
type:
- boolean
- 'null'
description: Whether the campaign is text only
example: false
first_email_text_only:
type:
- boolean
- 'null'
description: Whether the campaign is send the first email as a text only
example: false
email_list:
type: array
description: List of accounts to use for sending emails
items:
type: string
example: john@doe.com
daily_limit:
type:
- number
- 'null'
description: The daily limit for sending emails
example: 100
stop_on_reply:
type:
- boolean
- 'null'
description: Whether to stop the campaign on reply
example: false
email_tag_list:
type: array
description: List of tags to use for sending emails
items:
type: string
format: uuid
example: 019ffad2-5c4b-761a-9bc4-059ac4b3a8a9
link_tracking:
type:
- boolean
- 'null'
description: Whether to track links in emails
example: true
open_tracking:
type: boolean
description: Whether to track opens in emails
example: true
stop_on_auto_reply:
type:
- boolean
- 'null'
description: Whether to stop the campaign on auto reply
example: false
daily_max_leads:
type:
- integer
- 'null'
description: The daily maximum new leads to contact
minimum: 0
example: 100
prioritize_new_leads:
type:
- boolean
- 'null'
description: Whether to prioritize new leads
example: false
auto_variant_select:
type:
- object
- 'null'
description: Auto variant select settings
properties:
trigger:
type: string
enum:
- reply_rate
- click_rate
- open_rate
examples:
- click_rate
example: click_rate
required:
- trigger
match_lead_esp:
type:
- boolean
- 'null'
description: Whether to match leads by ESP
example: false
stop_for_company:
type:
- boolean
- 'null'
description: Whether to stop the campaign for the entire company(domain) when a lead replies
example: false
insert_unsubscribe_header:
type:
- boolean
- 'null'
description: Whether to insert an unsubscribe header in emails
example: false
allow_risky_contacts:
type:
- boolean
- 'null'
description: Whether to allow risky contacts
example: false
disable_bounce_protect:
type:
- boolean
- 'null'
description: Whether to disable bounce protection
example: false
limit_emails_per_company_override:
type:
- object
- 'null'
description: Overrides the workspace-wide limit emails per company setting for this campaign.
properties:
mode:
type: string
enum:
- custom
- disabled
examples:
- custom
example: custom
daily_limit:
type: number
minimum: 1
examples:
- 3
example: 3
scope:
type: string
enum:
- per_campaign
- across_workspace
examples:
- per_campaign
example: per_campaign
required:
- mode
cc_list:
type: array
description: List of accounts to CC on emails
items:
type: string
format: email
example: john@doe.com
bcc_list:
type: array
description: List of accounts to BCC on emails
items:
type: string
format: email
example: john@doe.com
owned_by:
type:
- string
- 'null'
description: Owner ID
format: uuid
example: 019ffad2-5c4b-761a-9bc4-059c036e479a
ai_sdr_id:
type:
- string
- 'null'
description: AI Sales Agent ID that created this campaign
format: uuid
example: 019ffad2-5c4b-761a-9bc4-059dc9a58653
provider_routing_rules:
type: array
description: Auto variant select settings
items:
type: object
properties:
action:
type: string
enum:
- send
- do_not_send
example: send
recipient_esp:
type: array
items:
type: string
enum:
- all
- google
- outlook
- other
example: all
sender_esp:
type: array
items:
type: string
enum:
- all
- google
- outlook
- other
example: all
required:
- action
- recipient_esp
- sender_esp
required:
- name
- campaign_schedule
additionalProperties: false
required: true
description: The Campaign to create
responses:
'200':
description: The Campaign
content:
application/json:
schema:
$ref: '#/components/schemas/Campaign'
'400':
description: Invalid request body (e.g. missing required fields, or invalid field values)
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 400
examples:
- 400
example: 400
error:
type: string
enum:
- Bad Request
examples:
- Bad Request
example: Bad Request
message:
type: string
examples:
- body must have required property 'name'
example: body must have required property 'name'
required:
- statusCode
- error
- message
'401':
description: This request is unauthorized (either the Authorization header is missing or invalid, or the API key
has been revoked)
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 401
examples:
- 401
example: 401
error:
type: string
enum:
- Unauthorized
examples:
- Unauthorized
example: Unauthorized
message:
type: string
examples:
- Missing Authorization header
example: Missing Authorization header
required:
- statusCode
- error
- message
'402':
description: This request cannot be fulfilled because the workspace does not have an active paid plan
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 402
examples:
- 402
example: 402
error:
type: string
enum:
- Payment Required
examples:
- Payment Required
example: Payment Required
message:
type: string
examples:
- Workspace does not have an active paid plan
example: Workspace does not have an active paid plan
required:
- statusCode
- error
- message
'404':
description: The requested resource was not found
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 404
examples:
- 404
example: 404
error:
type: string
enum:
- Not Found
examples:
- Not Found
example: Not Found
message:
type: string
examples:
- Resource not found
example: Resource not found
required:
- statusCode
- error
- message
'429':
description: You have exceeded the rate limit. Please check the rate limit docs for more information.
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 429
examples:
- 429
example: 429
error:
type: string
enum:
- Too Many Requests
examples:
- Too Many Requests
example: Too Many Requests
message:
type: string
examples:
- Rate limit exceeded
example: Rate limit exceeded
required:
- statusCode
- error
- message
get:
operationId: listCampaign
summary: List campaign
tags:
- Campaign
description: 'Requires one of the following scopes: `campaigns:read`, `campaigns:all`, `all:read`, `all:all`'
parameters:
- schema:
type: integer
minimum: 1
maximum: 100
example: 10
example: 10
in: query
name: limit
required: false
description: The number of items to return
- schema:
type: string
example: 01956fbd-0eb1-72db-a565-82977a586084
example: 01956fbd-0eb1-72db-a565-82977a586084
in: query
name: starting_after
required: false
description: The ID of the last item in the previous page - used for pagination. You can use the value of the `next_starting_after`
field from the previous response.
- schema:
type: string
example: Summer Sale Campaign
example: Summer Sale Campaign
in: query
name: search
required: false
description: Search by campaign name
- schema:
type: string
example: 019ffad2-9b9f-79cc-82ca-2b31778b13de,019ffad2-9b9f-79cc-82ca-2b3271f21ade
example: 019ffad2-9b9f-79cc-82ca-2b31778b13de,019ffad2-9b9f-79cc-82ca-2b3271f21ade
in: query
name: tag_ids
required: false
description: Filter campaigns by tag ids. Returns campaigns that have any of the specified tags assigned. You can
specify multiple tag ids by separating them with a comma.
- schema:
type: string
format: uuid
example: 019ffad2-9b9f-79cc-82ca-2b33348f0860
example: 019ffad2-9b9f-79cc-82ca-2b33348f0860
in: query
name: ai_sales_agent_id
required: false
description: Filter campaigns by AI Sales Agent ID. Returns campaigns that were created by the specified AI Sales
Agent.
- schema:
type: number
enum:
- -99
- -1
- -2
- 0
- 1
- 2
- 3
- 4
x-enumDescriptions:
'0': Draft
'1': Active
'2': Paused
'3': Completed
'4': Running Subsequences
'-99': Account Suspended
'-1': Accounts Unhealthy
'-2': Bounce Protect
example: 1
examples:
'1':
value: 1
'2':
value: 2
in: query
name: status
required: false
description: Filter campaigns by status using the campaign status enum value (e.g., ACTIVE, PAUSED).
- schema:
type: number
enum:
- -99
- -1
- -2
- 0
- 1
- 2
- 3
- 4
x-enumDescriptions:
'0': Draft
'1': Active
'2': Paused
'3': Completed
'4': Running Subsequences
'-99': Account Suspended
'-1': Accounts Unhealthy
'-2': Bounce Protect
example: 1
example: 1
in: query
name: exclude_status
required: false
description: Exclude campaigns with this status using the campaign status enum value (e.g., exclude ACTIVE to list
only campaigns that are not currently active).
responses:
'200':
description: The list of Campaign
content:
application/json:
schema:
type: object
properties:
items:
type: array
description: The list of Campaign
items:
$ref: '#/components/schemas/Campaign'
next_starting_after:
type: string
examples:
- 019ffad2-9ba0-7ae4-8d2d-0588c0a8454e
- '2026-08-13T11:12:14.240Z'
description: The filter for getting the next items after this one, this could either be a UUID, a timestamp,
on an email depending on the specific API
example: 019ffad2-9ba0-7ae4-8d2d-0588c0a8454e
additionalProperties: false
required:
- items
'401':
description: This request is unauthorized (either the Authorization header is missing or invalid, or the API key
has been revoked)
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 401
examples:
- 401
example: 401
error:
type: string
enum:
- Unauthorized
examples:
- Unauthorized
example: Unauthorized
message:
type: string
examples:
- Missing Authorization header
example: Missing Authorization header
required:
- statusCode
- error
- message
'402':
description: This request cannot be fulfilled because the workspace does not have an active paid plan
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 402
examples:
- 402
example: 402
error:
type: string
enum:
- Payment Required
examples:
- Payment Required
example: Payment Required
message:
type: string
examples:
- Workspace does not have an active paid plan
example: Workspace does not have an active paid plan
required:
- statusCode
- error
- message
'404':
description: The requested resource was not found
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 404
examples:
- 404
example: 404
error:
type: string
enum:
- Not Found
examples:
- Not Found
example: Not Found
message:
type: string
examples:
- Resource not found
example: Resource not found
required:
- statusCode
- error
- message
'429':
description: You have exceeded the rate limit. Please check the rate limit docs for more information.
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 429
examples:
- 429
example: 429
error:
type: string
enum:
- Too Many Requests
examples:
- Too Many Requests
example: Too Many Requests
message:
type: string
examples:
- Rate limit exceeded
example: Rate limit exceeded
required:
- statusCode
- error
- message
/api/v2/campaigns/{id}/activate:
post:
operationId: activateCampaign
summary: Activate(start), or resume a campaign
tags:
- Campaign
description: 'Requires one of the following scopes: `campaigns:update`, `campaigns:all`, `all:update`, `all:all`'
parameters:
- schema:
type: string
format: uuid
example: 019ffad2-9b9d-70ff-a76b-0e093eb63e6c
example: 019ffad2-9b9d-70ff-a76b-0e093eb63e6c
in: path
name: id
required: true
description: Campaign ID
responses:
'200':
description: The requested Campaign
content:
application/json:
schema:
$ref: '#/components/schemas/Campaign'
'400':
description: The requested resource was not found
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 404
examples:
- 404
example: 404
error:
type: string
enum:
- Not Found
examples:
- Not Found
example: Not Found
message:
type: string
examples:
- Resource not found
example: Resource not found
required:
- statusCode
- error
- message
'401':
description: This request is unauthorized (either the Authorization header is missing or invalid, or the API key
has been revoked)
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 401
examples:
- 401
example: 401
error:
type: string
enum:
- Unauthorized
examples:
- Unauthorized
example: Unauthorized
message:
type: string
examples:
- Missing Authorization header
example: Missing Authorization header
required:
- statusCode
- error
- message
'402':
description: This request cannot be fulfilled because the workspace does not have an active paid plan
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 402
examples:
- 402
example: 402
error:
type: string
enum:
- Payment Required
examples:
- Payment Required
example: Payment Required
message:
type: string
examples:
- Workspace does not have an active paid plan
example: Workspace does not have an active paid plan
required:
- statusCode
- error
- message
'404':
description: The requested resource was not found
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 404
examples:
- 404
example: 404
error:
type: string
enum:
- Not Found
examples:
- Not Found
example: Not Found
message:
type: string
examples:
- Resource not found
example: Resource not found
required:
- statusCode
- error
- message
'429':
description: You have exceeded the rate limit. Please check the rate limit docs for more information.
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 429
examples:
- 429
example: 429
error:
type: string
enum:
- Too Many Requests
examples:
- Too Many Requests
example: Too Many Requests
message:
type: string
examples:
- Rate limit exceeded
example: Rate limit exceeded
required:
- statusCode
- error
- message
/api/v2/campaigns/{id}/pause:
post:
operationId: pauseCampaign
summary: Stop(or pause) a campaign
tags:
- Campaign
description: 'Requires one of the following scopes: `campaigns:update`, `campaigns:all`, `all:update`, `all:all`'
parameters:
- schema:
type: string
format: uuid
example: 019ffad2-9b9d-70ff-a76b-0e0a921defd2
example: 019ffad2-9b9d-70ff-a76b-0e0a921defd2
in: path
name: id
required: true
description: Campaign ID
responses:
'200':
description: The requested Campaign
content:
application/json:
schema:
$ref: '#/components/schemas/Campaign'
'400':
description: The requested resource was not found
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 404
examples:
- 404
example: 404
error:
type: string
enum:
- Not Found
examples:
- Not Found
example: Not Found
message:
type: string
examples:
- Resource not found
example: Resource not found
required:
- statusCode
- error
- message
'401':
description: This request is unauthorized (either the Authorization header is missing or invalid, or the API key
has been revoked)
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 401
examples:
- 401
example: 401
error:
type: string
enum:
- Unauthorized
examples:
- Unauthorized
example: Unauthorized
message:
type: string
examples:
- Missing Authorization header
example: Missing Authorization header
required:
- statusCode
- error
- message
'402':
description: This request cannot be fulfilled because the workspace does not have an active paid plan
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 402
examples:
- 402
example: 402
error:
type: string
enum:
- Payment Required
examples:
- Payment Required
example: Payment Required
message:
type: string
examples:
- Workspace does not have an active paid plan
example: Workspace does not have an active paid plan
required:
- statusCode
- error
- message
'404':
description: The requested resource was not found
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 404
examples:
- 404
example: 404
error:
type: string
enum:
- Not Found
examples:
- Not Found
example: Not Found
message:
type: string
examples:
- Resource not found
example: Resource not found
required:
- statusCode
- error
- message
'429':
description: You have exceeded the rate limit. Please check the rate limit docs for more information.
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 429
examples:
- 429
example: 429
error:
type: string
enum:
- Too Many Requests
examples:
- Too Many Requests
example: Too Many Requests
message:
type: string
examples:
- Rate limit exceeded
example: Rate limit exceeded
required:
- statusCode
- error
- message
/api/v2/campaigns/{id}:
get:
operationId: getCampaign
summary: Get campaign
tags:
- Campaign
description: 'Requires one of the following scopes: `campaigns:read`, `campaigns:all`, `all:read`, `all:all`'
parameters:
- schema:
type: string
format: uuid
example: 019ffad2-9b9f-79cc-82ca-2b30de64279d
example: 019ffad2-9b9f-79cc-82ca-2b30de64279d
in: path
name: id
required: true
description: The ID of the requested item
responses:
'200':
description: The requested Campaign
content:
application/json:
schema:
$ref: '#/components/schemas/Campaign'
'401':
description: This request is unauthorized (either the Authorization header is missing or invalid, or the API key
has been revoked)
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 401
examples:
- 401
example: 401
error:
type: string
enum:
- Unauthorized
examples:
- Unauthorized
example: Unauthorized
message:
type: string
examples:
- Missing Authorization header
example: Missing Authorization header
required:
- statusCode
- error
- message
'402':
description: This request cannot be fulfilled because the workspace does not have an active paid plan
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 402
examples:
- 402
example: 402
error:
type: string
enum:
- Payment Required
examples:
- Payment Required
example: Payment Required
message:
type: string
examples:
- Workspace does not have an active paid plan
example: Workspace does not have an active paid plan
required:
- statusCode
- error
- message
'404':
description: The requested resource was not found
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 404
examples:
- 404
example: 404
error:
type: string
enum:
- Not Found
examples:
- Not Found
example: Not Found
message:
type: string
examples:
- Resource not found
example: Resource not found
required:
- statusCode
- error
- message
'429':
description: You have exceeded the rate limit. Please check the rate limit docs for more information.
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 429
examples:
- 429
example: 429
error:
type: string
enum:
- Too Many Requests
examples:
- Too Many Requests
example: Too Many Requests
message:
type: string
examples:
- Rate limit exceeded
example: Rate limit exceeded
required:
- statusCode
- error
- message
patch:
operationId: patchCampaign
summary: Patch campaign
tags:
- Campaign
description: 'Requires one of the following scopes: `campaigns:update`, `campaigns:all`, `all:update`, `all:all`'
requestBody:
content:
application/json:
schema:
type: object
properties:
name:
type: string
description: Name of the campaign
example: My First Campaign
pl_value:
type:
- number
- 'null'
description: Value of every positive lead
example: 100
is_evergreen:
type:
- boolean
- 'null'
description: Whether the campaign is evergreen
example: false
campaign_schedule:
type: object
description: Campaign schedule
properties:
start_date:
type:
- string
- 'null'
format: date
description: Start date in YYYY-MM-DD format. Uses the campaign's timezone.
example: '2025-09-25'
end_date:
type:
- string
- 'null'
format: date
description: End date in YYYY-MM-DD format. Uses the campaign's timezone.
example: '2025-09-25'
schedules:
type: array
items:
type: object
properties:
name:
type: string
example: My Schedule
timing:
type: object
properties:
from:
type: string
pattern: ^([01][0-9]|2[0-3]):([0-5][0-9])$
example: 09:00
to:
type: string
pattern: ^([01][0-9]|2[0-3]):([0-5][0-9])$
example: '17:00'
required:
- from
- to
days:
type: object
minProperties: 1
properties:
'0':
type: boolean
example: true
'1':
type: boolean
example: true
'2':
type: boolean
example: true
'3':
type: boolean
example: true
'4':
type: boolean
example: true
'5':
type: boolean
example: false
'6':
type: boolean
example: false
timezone:
type: string
enum:
- Etc/GMT+12
- Etc/GMT+11
- Etc/GMT+10
- America/Anchorage
- America/Dawson
- America/Creston
- America/Chihuahua
- America/Boise
- America/Belize
- America/Chicago
- America/Bahia_Banderas
- America/Regina
- America/Bogota
- America/Detroit
- America/Indiana/Marengo
- America/Caracas
- America/Asuncion
- America/Glace_Bay
- America/Campo_Grande
- America/Anguilla
- America/Santiago
- America/St_Johns
- America/Sao_Paulo
- America/Argentina/La_Rioja
- America/Araguaina
- America/Godthab
- America/Montevideo
- America/Bahia
- America/Noronha
- America/Scoresbysund
- Atlantic/Cape_Verde
- Africa/Casablanca
- America/Danmarkshavn
- Europe/Isle_of_Man
- Atlantic/Canary
- Africa/Abidjan
- Arctic/Longyearbyen
- Europe/Belgrade
- Africa/Ceuta
- Europe/Sarajevo
- Africa/Algiers
- Africa/Windhoek
- Asia/Nicosia
- Asia/Beirut
- Africa/Cairo
- Asia/Damascus
- Europe/Bucharest
- Africa/Blantyre
- Europe/Helsinki
- Europe/Istanbul
- Asia/Jerusalem
- Africa/Tripoli
- Asia/Amman
- Asia/Baghdad
- Europe/Kaliningrad
- Asia/Aden
- Africa/Addis_Ababa
- Europe/Kirov
- Europe/Astrakhan
- Asia/Tehran
- Asia/Dubai
- Asia/Baku
- Indian/Mahe
- Asia/Tbilisi
- Asia/Yerevan
- Asia/Kabul
- Antarctica/Mawson
- Asia/Yekaterinburg
- Asia/Karachi
- Asia/Kolkata
- Asia/Colombo
- Asia/Kathmandu
- Antarctica/Vostok
- Asia/Dhaka
- Asia/Rangoon
- Antarctica/Davis
- Asia/Novokuznetsk
- Asia/Hong_Kong
- Asia/Krasnoyarsk
- Asia/Brunei
- Australia/Perth
- Asia/Taipei
- Asia/Choibalsan
- Asia/Irkutsk
- Asia/Dili
- Asia/Pyongyang
- Australia/Adelaide
- Australia/Darwin
- Australia/Brisbane
- Australia/Melbourne
- Antarctica/DumontDUrville
- Australia/Currie
- Asia/Chita
- Antarctica/Macquarie
- Asia/Sakhalin
- Pacific/Auckland
- Etc/GMT-12
- Pacific/Fiji
- Asia/Anadyr
- Asia/Kamchatka
- Etc/GMT-13
- Pacific/Apia
example: Etc/GMT+12
required:
- name
- timing
- days
- timezone
minItems: 1
required:
- schedules
sequences:
type: array
description: List of sequences (the actual email copy). Even though this field is an array, only the first
element is used, so please provide only one array item, and add the steps to that array
items:
type: object
properties:
steps:
type: array
items:
type: object
properties:
type:
type: string
enum:
- email
x-enumDescriptions:
email: This steps represents an email
description: Type of step. This has to be 'email' always - it's the only supported type for
now
example: email
delay:
type: number
description: The delay value before sending the NEXT email. The unit is determined by the delay_unit
field (defaults to days).
example: 2
delay_unit:
type: string
enum:
- minutes
- hours
- days
default: days
description: The unit of time for the delay value (minutes, hours, or days). Defaults to days
for backward compatibility.
example: days
pre_delay:
type: number
description: The delay value before sending the FIRST email in a subsequence. **Only applicable
to subsequences** - this field is ignored for regular campaigns. The unit is determined by
the pre_delay_unit field (defaults to days).
example: 2
pre_delay_unit:
type: string
enum:
- minutes
- hours
- days
default: days
description: The unit of time for the pre_delay value (minutes, hours, or days). **Only applicable
to subsequences** - this field is ignored for regular campaigns. Defaults to days for backward
compatibility.
example: days
variants:
type: array
items:
type: object
properties:
subject:
type: string
example: Hello {{firstName}}
body:
type: string
description: Email body HTML. Use `
` tags for delivered email line breaks.
example: Hey {{firstName}},
I hope you are doing well.
v_disabled:
type: boolean
description: Whether this variant is disabled. By default, all the variants are enabled.
Please set this to true if you want to disable this variant
example: true
required:
- subject
- body
required:
- type
- delay
- variants
required:
- steps
email_gap:
type:
- number
- 'null'
description: The gap between emails in minutes
example: 10
random_wait_max:
type:
- number
- 'null'
description: The maximum random wait time in minutes
example: 10
text_only:
type:
- boolean
- 'null'
description: Whether the campaign is text only
example: false
first_email_text_only:
type:
- boolean
- 'null'
description: Whether the campaign is send the first email as a text only
example: false
email_list:
type: array
description: List of accounts to use for sending emails
items:
type: string
example: john@doe.com
daily_limit:
type:
- number
- 'null'
description: The daily limit for sending emails
example: 100
stop_on_reply:
type:
- boolean
- 'null'
description: Whether to stop the campaign on reply
example: false
email_tag_list:
type: array
description: List of tags to use for sending emails
items:
type: string
format: uuid
example: 019ffad2-5c4b-761a-9bc4-059ac4b3a8a9
link_tracking:
type:
- boolean
- 'null'
description: Whether to track links in emails
example: true
open_tracking:
type: boolean
description: Whether to track opens in emails
example: true
stop_on_auto_reply:
type:
- boolean
- 'null'
description: Whether to stop the campaign on auto reply
example: false
daily_max_leads:
type:
- integer
- 'null'
description: The daily maximum new leads to contact
minimum: 0
example: 100
prioritize_new_leads:
type:
- boolean
- 'null'
description: Whether to prioritize new leads
example: false
auto_variant_select:
type:
- object
- 'null'
description: Auto variant select settings
properties:
trigger:
type: string
enum:
- reply_rate
- click_rate
- open_rate
examples:
- click_rate
example: click_rate
required:
- trigger
match_lead_esp:
type:
- boolean
- 'null'
description: Whether to match leads by ESP
example: false
stop_for_company:
type:
- boolean
- 'null'
description: Whether to stop the campaign for the entire company(domain) when a lead replies
example: false
insert_unsubscribe_header:
type:
- boolean
- 'null'
description: Whether to insert an unsubscribe header in emails
example: false
allow_risky_contacts:
type:
- boolean
- 'null'
description: Whether to allow risky contacts
example: false
disable_bounce_protect:
type:
- boolean
- 'null'
description: Whether to disable bounce protection
example: false
limit_emails_per_company_override:
type:
- object
- 'null'
description: Overrides the workspace-wide limit emails per company setting for this campaign.
properties:
mode:
type: string
enum:
- custom
- disabled
examples:
- custom
example: custom
daily_limit:
type: number
minimum: 1
examples:
- 3
example: 3
scope:
type: string
enum:
- per_campaign
- across_workspace
examples:
- per_campaign
example: per_campaign
required:
- mode
cc_list:
type: array
description: List of accounts to CC on emails
items:
type: string
format: email
example: john@doe.com
bcc_list:
type: array
description: List of accounts to BCC on emails
items:
type: string
format: email
example: john@doe.com
owned_by:
type:
- string
- 'null'
description: Owner ID
format: uuid
example: 019ffad2-5c4b-761a-9bc4-059c036e479a
provider_routing_rules:
type: array
description: Auto variant select settings
items:
type: object
properties:
action:
type: string
enum:
- send
- do_not_send
example: send
recipient_esp:
type: array
items:
type: string
enum:
- all
- google
- outlook
- other
example: all
sender_esp:
type: array
items:
type: string
enum:
- all
- google
- outlook
- other
example: all
required:
- action
- recipient_esp
- sender_esp
required: []
additionalProperties: false
minProperties: 1
parameters:
- schema:
type: string
format: uuid
example: 019ffad2-9ba8-71a6-b963-856f0012c6e2
example: 019ffad2-9ba8-71a6-b963-856f0012c6e2
in: path
name: id
required: true
description: The ID of the item to update
responses:
'200':
description: The updated Campaign
content:
application/json:
schema:
$ref: '#/components/schemas/Campaign'
'401':
description: This request is unauthorized (either the Authorization header is missing or invalid, or the API key
has been revoked)
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 401
examples:
- 401
example: 401
error:
type: string
enum:
- Unauthorized
examples:
- Unauthorized
example: Unauthorized
message:
type: string
examples:
- Missing Authorization header
example: Missing Authorization header
required:
- statusCode
- error
- message
'402':
description: This request cannot be fulfilled because the workspace does not have an active paid plan
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 402
examples:
- 402
example: 402
error:
type: string
enum:
- Payment Required
examples:
- Payment Required
example: Payment Required
message:
type: string
examples:
- Workspace does not have an active paid plan
example: Workspace does not have an active paid plan
required:
- statusCode
- error
- message
'404':
description: The requested resource was not found
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 404
examples:
- 404
example: 404
error:
type: string
enum:
- Not Found
examples:
- Not Found
example: Not Found
message:
type: string
examples:
- Resource not found
example: Resource not found
required:
- statusCode
- error
- message
'429':
description: You have exceeded the rate limit. Please check the rate limit docs for more information.
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 429
examples:
- 429
example: 429
error:
type: string
enum:
- Too Many Requests
examples:
- Too Many Requests
example: Too Many Requests
message:
type: string
examples:
- Rate limit exceeded
example: Rate limit exceeded
required:
- statusCode
- error
- message
delete:
operationId: deleteCampaign
summary: Delete campaign
tags:
- Campaign
description: 'Requires one of the following scopes: `campaigns:delete`, `campaigns:all`, `all:delete`, `all:all`'
requestBody:
content:
application/json:
schema:
type: 'null'
example: null
parameters:
- schema:
type: string
format: uuid
example: 019ffad2-9ba8-71a6-b963-8570cd39c0c2
example: 019ffad2-9ba8-71a6-b963-8570cd39c0c2
in: path
name: id
required: true
description: The ID of the item to delete
responses:
'200':
description: The deleted Campaign
content:
application/json:
schema:
$ref: '#/components/schemas/Campaign'
'401':
description: This request is unauthorized (either the Authorization header is missing or invalid, or the API key
has been revoked)
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 401
examples:
- 401
example: 401
error:
type: string
enum:
- Unauthorized
examples:
- Unauthorized
example: Unauthorized
message:
type: string
examples:
- Missing Authorization header
example: Missing Authorization header
required:
- statusCode
- error
- message
'402':
description: This request cannot be fulfilled because the workspace does not have an active paid plan
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 402
examples:
- 402
example: 402
error:
type: string
enum:
- Payment Required
examples:
- Payment Required
example: Payment Required
message:
type: string
examples:
- Workspace does not have an active paid plan
example: Workspace does not have an active paid plan
required:
- statusCode
- error
- message
'404':
description: The requested resource was not found
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 404
examples:
- 404
example: 404
error:
type: string
enum:
- Not Found
examples:
- Not Found
example: Not Found
message:
type: string
examples:
- Resource not found
example: Resource not found
required:
- statusCode
- error
- message
'429':
description: You have exceeded the rate limit. Please check the rate limit docs for more information.
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 429
examples:
- 429
example: 429
error:
type: string
enum:
- Too Many Requests
examples:
- Too Many Requests
example: Too Many Requests
message:
type: string
examples:
- Rate limit exceeded
example: Rate limit exceeded
required:
- statusCode
- error
- message
/api/v2/campaigns/search-by-contact:
get:
operationId: searchByContact
summary: Search campaigns by lead email
tags:
- Campaign
description: 'Requires one of the following scopes: `campaigns:read`, `campaigns:all`, `all:read`, `all:all`'
parameters:
- schema:
type: string
example: lead-email@example.com
example: lead-email@example.com
in: query
name: search
required: false
description: Search by lead email
- schema:
type: string
default: timestamp_created
example: timestamp_created
examples:
timestamp_created:
value: timestamp_created
name:
value: name
in: query
name: sort_column
required: false
description: Sort campaigns by column name
- schema:
type: string
default: asc
example: asc
examples:
asc:
value: asc
desc:
value: desc
in: query
name: sort_order
required: false
description: Sort direction
responses:
'200':
description: Default Response
content:
application/json:
schema:
type: object
properties:
items:
type: array
items:
$ref: '#/components/schemas/Campaign'
'401':
description: This request is unauthorized (either the Authorization header is missing or invalid, or the API key
has been revoked)
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 401
examples:
- 401
example: 401
error:
type: string
enum:
- Unauthorized
examples:
- Unauthorized
example: Unauthorized
message:
type: string
examples:
- Missing Authorization header
example: Missing Authorization header
required:
- statusCode
- error
- message
'402':
description: This request cannot be fulfilled because the workspace does not have an active paid plan
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 402
examples:
- 402
example: 402
error:
type: string
enum:
- Payment Required
examples:
- Payment Required
example: Payment Required
message:
type: string
examples:
- Workspace does not have an active paid plan
example: Workspace does not have an active paid plan
required:
- statusCode
- error
- message
'404':
description: The requested resource was not found
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 404
examples:
- 404
example: 404
error:
type: string
enum:
- Not Found
examples:
- Not Found
example: Not Found
message:
type: string
examples:
- Resource not found
example: Resource not found
required:
- statusCode
- error
- message
'429':
description: You have exceeded the rate limit. Please check the rate limit docs for more information.
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 429
examples:
- 429
example: 429
error:
type: string
enum:
- Too Many Requests
examples:
- Too Many Requests
example: Too Many Requests
message:
type: string
examples:
- Rate limit exceeded
example: Rate limit exceeded
required:
- statusCode
- error
- message
/api/v2/campaigns/analytics:
get:
operationId: getCampaignAnalytics
summary: Get campaign(s) analytics
tags:
- Campaign
- Analytics
description: Get analytics for one or multiple campaigns. Specify the `id` field to get the analytics for a single campaign,
or leave it empty to get the analytics for all campaigns
parameters:
- schema:
type: string
format: uuid
example: 019ffad2-9ba1-7bc9-8d59-2dbf9cad03cd
example: 019ffad2-9ba1-7bc9-8d59-2dbf9cad03cd
in: query
name: id
required: false
description: A campaign ID to get the analytics for. Leave this field empty to get the analytics for all campaigns
- schema:
type: array
items:
type: string
description: 'A list of campaign IDs to get the analytics for. Leave this field empty to get the analytics for
all campaigns. You can specify multiple IDs by adding the same parameter multiple times, for instance: `/campaigns/analytics?ids=123&ids=456`'
format: uuid
examples:
- 019ffad2-9ba1-7bc9-8d59-2dc06bc9bc75
example: 019ffad2-9ba1-7bc9-8d59-2dc06bc9bc75
in: query
name: ids
required: false
- schema:
type: string
example: '2024-01-01'
examples:
'2024-01-01':
value: '2024-01-01'
'2024-01-01T00:00:00.000Z':
value: '2024-01-01T00:00:00.000Z'
in: query
name: start_date
required: false
description: Start of the analytics range. Accepts a date-only value (`YYYY-MM-DD`) or a full ISO 8601 timestamp.
Date-only values are interpreted as UTC midnight — e.g. `2026-04-07` is treated as `2026-04-07T00:00:00.000Z`.
- schema:
type: string
example: '2024-01-01'
examples:
'2024-01-01':
value: '2024-01-01'
'2024-01-01T00:00:00.000Z':
value: '2024-01-01T00:00:00.000Z'
in: query
name: end_date
required: false
description: End of the analytics range. Accepts a date-only value (`YYYY-MM-DD`) or a full ISO 8601 timestamp. Date-only
values are interpreted as UTC midnight — e.g. `2026-04-07` is treated as `2026-04-07T00:00:00.000Z`.
- schema:
type: boolean
default: false
example: true
example: true
in: query
name: exclude_total_leads_count
required: false
description: Exclude the total leads from the result. Setting this to true will considerably decrease the response
time
responses:
'200':
description: Default Response
content:
application/json:
schema:
type: array
items:
type: object
properties:
campaign_name:
type: string
description: The name of the campaign
example: My Test Campaign
campaign_id:
type: string
description: The ID of the campaign
format: uuid
example: 019ffad2-9ba1-7bc9-8d59-2dc1d3f0cbdd
campaign_status:
type: number
description: The campaign status
x-enumDescriptions:
'0': Draft
'1': Active
'2': Paused
'3': Completed
'4': Running Subsequences
'-99': Account Suspended
'-1': Accounts Unhealthy
'-2': Bounce Protect
example: 1
campaign_is_evergreen:
type: boolean
description: Whether the campaign is evergreen
example: true
leads_count:
type: integer
description: The total number of leads
example: 1500
contacted_count:
type: integer
description: Number of leads for whom the sequence has started
example: 1200
emails_sent_count:
type: integer
description: The total number of sent emails
example: 5000
new_leads_contacted_count:
type: integer
description: The total number of new leads contacted
example: 200
open_count:
type: integer
description: The number of leads that opened at least one email
example: 800
open_count_unique:
type: integer
description: The number of unique email opens (first open per lead)
example: 750
open_count_unique_by_step:
type: integer
description: The number of unique email opens per step (first open per lead per step)
example: 900
reply_count:
type: integer
description: The total number of replies received (if a lead replies multiple times, each reply is counted)
example: 300
reply_count_unique:
type: integer
description: The number of unique replies (first reply per lead). Excludes automatic replies.
example: 280
reply_count_unique_by_step:
type: integer
description: The number of unique replies per step (first reply per lead per step). Excludes automatic
replies.
example: 350
reply_count_automatic:
type: integer
description: The total number of automatic replies detected
example: 15
reply_count_automatic_unique:
type: integer
description: The number of unique automatic replies (first automatic reply per lead)
example: 12
reply_count_automatic_unique_by_step:
type: integer
description: The number of unique automatic replies per step
example: 18
link_click_count:
type: integer
description: The number of links that got clicked
example: 800
link_click_count_unique:
type: integer
description: The number of unique link clicks (first click per lead)
example: 600
link_click_count_unique_by_step:
type: integer
description: The number of unique link clicks per step (first click per lead per step)
example: 720
bounced_count:
type: integer
description: The number of bounced leads
example: 50
unsubscribed_count:
type: integer
description: The number of unsubscribed leads
example: 20
completed_count:
type: integer
description: The number of leads that the campaign was completed for
example: 1100
total_opportunities:
type: integer
description: The total number of unique opportunities created
example: 10
total_opportunity_value:
type: number
description: The total value of opportunities created
example: 1000
required:
- campaign_name
- campaign_id
- campaign_status
- campaign_is_evergreen
- leads_count
- contacted_count
- open_count
- reply_count
- link_click_count
- bounced_count
- unsubscribed_count
- completed_count
- emails_sent_count
- new_leads_contacted_count
- total_opportunities
- total_opportunity_value
'400':
description: Default Response
content:
application/json:
schema:
type: object
properties:
message:
type: string
description: The error message
example: Start Date must be earlier than End Date
'401':
description: This request is unauthorized (either the Authorization header is missing or invalid, or the API key
has been revoked)
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 401
examples:
- 401
example: 401
error:
type: string
enum:
- Unauthorized
examples:
- Unauthorized
example: Unauthorized
message:
type: string
examples:
- Missing Authorization header
example: Missing Authorization header
required:
- statusCode
- error
- message
'402':
description: This request cannot be fulfilled because the workspace does not have an active paid plan
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 402
examples:
- 402
example: 402
error:
type: string
enum:
- Payment Required
examples:
- Payment Required
example: Payment Required
message:
type: string
examples:
- Workspace does not have an active paid plan
example: Workspace does not have an active paid plan
required:
- statusCode
- error
- message
'404':
description: The requested resource was not found
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 404
examples:
- 404
example: 404
error:
type: string
enum:
- Not Found
examples:
- Not Found
example: Not Found
message:
type: string
examples:
- Resource not found
example: Resource not found
required:
- statusCode
- error
- message
'429':
description: You have exceeded the rate limit. Please check the rate limit docs for more information.
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 429
examples:
- 429
example: 429
error:
type: string
enum:
- Too Many Requests
examples:
- Too Many Requests
example: Too Many Requests
message:
type: string
examples:
- Rate limit exceeded
example: Rate limit exceeded
required:
- statusCode
- error
- message
/api/v2/campaigns/analytics/overview:
get:
operationId: getCampaignAnalyticsOverview
summary: Get campaign(s) analytics overview
tags:
- Campaign
- Analytics
description: 'Get analytics overview for one or multiple campaigns. Specify the `id` field to get the analytics overview
for a single campaign, or leave it empty to get the analytics overview for all campaigns.
Note regarding the interest status totals (interested, meeting booked, meeting completed, closed): these are calculated
based on the first occurrence of each event per contact by default. To change this behavior and calculate the totals
based on all occurrences of the events, set the `expand_crm_events` parameter to `true`. Additionally, there is a
10 minute time window after you change a lead status in which the subsequent updates will NOT insert new analytics
events to avoid duplicates from rapid status changes and avoid false inflation of the analytics numbers.'
parameters:
- schema:
type: string
format: uuid
example: 019ffad2-9ba2-7890-9f7c-574e4193fe4e
example: 019ffad2-9ba2-7890-9f7c-574e4193fe4e
in: query
name: id
required: false
description: A campaign ID to get the analytics overview for. Leave this field empty to get the analytics overview
for all campaigns
- schema:
type: array
items:
type: string
description: 'A list of campaign IDs to get the analytics overview for. Leave this field empty to get the analytics
overview for all campaigns. You can specify multiple IDs by adding the same parameter multiple times, for instance:
`/campaigns/analytics/overview?ids=123&ids=456`'
format: uuid
examples:
- 019ffad2-9ba2-7890-9f7c-574f7d9cc984
example: 019ffad2-9ba2-7890-9f7c-574f7d9cc984
in: query
name: ids
required: false
- schema:
type: string
example: '2024-01-01'
examples:
'2024-01-01':
value: '2024-01-01'
'2024-01-01T00:00:00.000Z':
value: '2024-01-01T00:00:00.000Z'
in: query
name: start_date
required: false
description: Start of the analytics range. Accepts a date-only value (`YYYY-MM-DD`) or a full ISO 8601 timestamp.
Date-only values are interpreted as UTC midnight — e.g. `2026-04-07` is treated as `2026-04-07T00:00:00.000Z`.
- schema:
type: string
example: '2024-01-01'
examples:
'2024-01-01':
value: '2024-01-01'
'2024-01-01T00:00:00.000Z':
value: '2024-01-01T00:00:00.000Z'
in: query
name: end_date
required: false
description: End of the analytics range. Accepts a date-only value (`YYYY-MM-DD`) or a full ISO 8601 timestamp. Date-only
values are interpreted as UTC midnight — e.g. `2026-04-07` is treated as `2026-04-07T00:00:00.000Z`.
- schema:
type: number
enum:
- -99
- -1
- -2
- 0
- 1
- 2
- 3
- 4
x-enumDescriptions:
'0': Draft
'1': Active
'2': Paused
'3': Completed
'4': Running Subsequences
'-99': Account Suspended
'-1': Accounts Unhealthy
'-2': Bounce Protect
example: 1
examples:
'1':
value: 1
'2':
value: 2
'3':
value: 3
in: query
name: campaign_status
required: false
description: Filter by campaign status (only the analytics for the campaigns with the specified status will be returned)
- schema:
type: boolean
default: false
example: true
example: true
in: query
name: expand_crm_events
required: false
description: 'When `true`, calculates the total of all the lead interest status update events instead of only the
first occurrence for each contact. This will affect the following fields: `total_opportunities`, `total_interested`,
`total_meeting_booked`, `total_meeting_completed`, and `total_closed`. Example: if a lead goes from interested to
meeting booked to closed, it will count as 3 events (total_interested: 1, total_meeting_booked_1, and total_closed:
1) when this parameter is set to true, and as 1 event (total_interested) when it is set to false (default).'
responses:
'200':
description: Default Response
content:
application/json:
schema:
type: object
properties:
open_count:
type: integer
description: The total number of times the emails were opened, including duplicates
example: 800
open_count_unique:
type: integer
description: The number of emails that got opened (for the first time only)
example: 800
open_count_unique_by_step:
type: integer
description: The unique number of times the emails were opened (counted once per lead, step, and campaign)
example: 800
link_click_count:
type: integer
description: The number of links that got clicked
example: 800
link_click_count_unique:
type: integer
description: The number of links that got clicked (for the first time)
example: 800
link_click_count_unique_by_step:
type: integer
description: The unique number of links that got clicked, per step (counted once per lead, step, and campaign)
example: 800
reply_count:
type: integer
description: The total number of replies received (if a lead replies multiple times, each reply is counted)
example: 300
reply_count_unique:
type: integer
description: The number of unique replies (first reply per lead). Excludes automatic replies.
example: 300
reply_count_unique_by_step:
type: integer
description: The number of unique replies per step (first reply per lead per step). Excludes automatic
replies.
example: 300
reply_count_automatic:
type: integer
description: The total number of automatic replies received (e.g., out-of-office)
example: 50
reply_count_automatic_unique:
type: integer
description: The number of unique leads that sent automatic replies
example: 45
reply_count_automatic_unique_by_step:
type: integer
description: The unique number of automatic replies per step (counted once per lead, step, and campaign)
example: 45
bounced_count:
type: integer
description: The number of bounced leads
example: 50
unsubscribed_count:
type: integer
description: The number of unsubscribed leads
example: 20
completed_count:
type: integer
description: The number of leads that the campaign was completed for
example: 1100
emails_sent_count:
type: integer
description: The total number of sent emails
example: 5000
contacted_count:
type: integer
description: The total number of unique leads contacted
example: 4500
new_leads_contacted_count:
type: integer
description: The total number of new leads contacted
example: 200
total_opportunities:
type: integer
description: The total number of unique opportunities created
example: 10
total_opportunity_value:
type: number
description: The total value of opportunities created
example: 1000
total_interested:
type: integer
description: The total number of interested opportunities created
example: 103
total_meeting_booked:
type: integer
description: The total number of meeting booked opportunities created
example: 45
total_meeting_completed:
type: integer
description: The total number of meeting completed opportunities created
example: 12
total_closed:
type: integer
description: The total number of closed opportunities created
example: 10
'400':
description: Default Response
content:
application/json:
schema:
type: object
properties:
message:
type: string
description: The error message
example: Start Date must be earlier than End Date
'401':
description: This request is unauthorized (either the Authorization header is missing or invalid, or the API key
has been revoked)
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 401
examples:
- 401
example: 401
error:
type: string
enum:
- Unauthorized
examples:
- Unauthorized
example: Unauthorized
message:
type: string
examples:
- Missing Authorization header
example: Missing Authorization header
required:
- statusCode
- error
- message
'402':
description: This request cannot be fulfilled because the workspace does not have an active paid plan
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 402
examples:
- 402
example: 402
error:
type: string
enum:
- Payment Required
examples:
- Payment Required
example: Payment Required
message:
type: string
examples:
- Workspace does not have an active paid plan
example: Workspace does not have an active paid plan
required:
- statusCode
- error
- message
'404':
description: The requested resource was not found
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 404
examples:
- 404
example: 404
error:
type: string
enum:
- Not Found
examples:
- Not Found
example: Not Found
message:
type: string
examples:
- Resource not found
example: Resource not found
required:
- statusCode
- error
- message
'429':
description: You have exceeded the rate limit. Please check the rate limit docs for more information.
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 429
examples:
- 429
example: 429
error:
type: string
enum:
- Too Many Requests
examples:
- Too Many Requests
example: Too Many Requests
message:
type: string
examples:
- Rate limit exceeded
example: Rate limit exceeded
required:
- statusCode
- error
- message
/api/v2/campaigns/analytics/daily:
get:
operationId: getDailyCampaignAnalytics
summary: Get daily campaign analytics
tags:
- Campaign
- Analytics
description: Get campaign daily analytics
parameters:
- schema:
type: string
format: uuid
example: 019ffad2-9ba2-7890-9f7c-5750de86de7e
example: 019ffad2-9ba2-7890-9f7c-5750de86de7e
in: query
name: campaign_id
required: false
description: Campaign ID (optional). Leave this field empty to get the analytics for all campaigns
- schema:
type: string
example: '2024-01-01'
example: '2024-01-01'
in: query
name: start_date
required: false
description: Start of the analytics range. Accepts a date-only value (`YYYY-MM-DD`) or a full ISO 8601 timestamp.
Date-only values are interpreted as UTC midnight — e.g. `2026-04-07` is treated as `2026-04-07T00:00:00.000Z`.
- schema:
type: string
example: '2024-01-01'
example: '2024-01-01'
in: query
name: end_date
required: false
description: End of the analytics range. Accepts a date-only value (`YYYY-MM-DD`) or a full ISO 8601 timestamp. Date-only
values are interpreted as UTC midnight — e.g. `2026-04-07` is treated as `2026-04-07T00:00:00.000Z`.
- schema:
type: number
enum:
- -99
- -1
- -2
- 0
- 1
- 2
- 3
- 4
x-enumDescriptions:
'0': Draft
'1': Active
'2': Paused
'3': Completed
'4': Running Subsequences
'-99': Account Suspended
'-1': Accounts Unhealthy
'-2': Bounce Protect
example: 1
examples:
'1':
value: 1
'2':
value: 2
'3':
value: 3
in: query
name: campaign_status
required: false
description: Filter by campaign status (only the analytics for the campaigns with the specified status will be returned)
responses:
'200':
description: Default Response
content:
application/json:
schema:
type: array
items:
type: object
properties:
date:
type: string
description: The date of the analytics entry, in YYYY-MM-DD format
example: '2025-03-01'
sent:
type: integer
description: The total number of sent emails
example: 5421
contacted:
type: integer
description: The total number of unique contacts who received an email that day
example: 5000
new_leads_contacted:
type: integer
description: The total number of new leads contacted that day
example: 200
opened:
type: integer
description: The total number of opened emails
example: 99
unique_opened:
type: integer
description: The total number of unique opened emails
example: 60
replies:
type: integer
description: The total number of replies
example: 60
unique_replies:
type: integer
description: The total number of unique replies
example: 60
replies_automatic:
type: integer
description: The total number of automatic replies detected
example: 5
unique_replies_automatic:
type: integer
description: The total number of unique automatic replies detected
example: 4
clicks:
type: integer
description: The total number of links clicked
example: 60
unique_clicks:
type: integer
description: The total number of unique links clicked. Unique meaning from unique leads, not unique
links. For instance, if a lead clicked a link 3 times, it will be counted as 1 unique click. If a
lead clicked 3 different links, it will still be counted as 1 unique click
example: 60
opportunities:
type: integer
description: The total number of unique opportunities created from the campaign on that day
example: 5
unique_opportunities:
type: integer
description: The total number of unique opportunities created from unique leads from the campaign on
that day
example: 3
'400':
description: Default Response
content:
application/json:
schema:
type: object
properties:
message:
type: string
description: The error message
example: Start Date must be earlier than End Date
'401':
description: This request is unauthorized (either the Authorization header is missing or invalid, or the API key
has been revoked)
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 401
examples:
- 401
example: 401
error:
type: string
enum:
- Unauthorized
examples:
- Unauthorized
example: Unauthorized
message:
type: string
examples:
- Missing Authorization header
example: Missing Authorization header
required:
- statusCode
- error
- message
'402':
description: This request cannot be fulfilled because the workspace does not have an active paid plan
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 402
examples:
- 402
example: 402
error:
type: string
enum:
- Payment Required
examples:
- Payment Required
example: Payment Required
message:
type: string
examples:
- Workspace does not have an active paid plan
example: Workspace does not have an active paid plan
required:
- statusCode
- error
- message
'404':
description: The requested resource was not found
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 404
examples:
- 404
example: 404
error:
type: string
enum:
- Not Found
examples:
- Not Found
example: Not Found
message:
type: string
examples:
- Resource not found
example: Resource not found
required:
- statusCode
- error
- message
'429':
description: You have exceeded the rate limit. Please check the rate limit docs for more information.
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 429
examples:
- 429
example: 429
error:
type: string
enum:
- Too Many Requests
examples:
- Too Many Requests
example: Too Many Requests
message:
type: string
examples:
- Rate limit exceeded
example: Rate limit exceeded
required:
- statusCode
- error
- message
/api/v2/campaigns/analytics/steps:
get:
operationId: getCampaignStepsAnalytics
summary: Get campaign steps analytics
tags:
- Campaign
- Analytics
description: Get campaign steps analytics
parameters:
- schema:
type: string
format: uuid
example: 019ffad2-9ba3-7a9b-ac87-cd7e663fa784
example: 019ffad2-9ba3-7a9b-ac87-cd7e663fa784
in: query
name: campaign_id
required: false
description: Campaign ID (optional). Leave this field empty to get the analytics for all campaigns
- schema:
type: string
example: '2024-01-01'
examples:
'2024-01-01':
value: '2024-01-01'
'2024-01-01T00:00:00.000Z':
value: '2024-01-01T00:00:00.000Z'
in: query
name: start_date
required: false
description: Start of the analytics range. Accepts a date-only value (`YYYY-MM-DD`) or a full ISO 8601 timestamp.
Date-only values are interpreted as UTC midnight — e.g. `2026-04-07` is treated as `2026-04-07T00:00:00.000Z`.
- schema:
type: string
example: '2024-01-01'
examples:
'2024-01-01':
value: '2024-01-01'
'2024-01-01T00:00:00.000Z':
value: '2024-01-01T00:00:00.000Z'
in: query
name: end_date
required: false
description: End of the analytics range. Accepts a date-only value (`YYYY-MM-DD`) or a full ISO 8601 timestamp. Date-only
values are interpreted as UTC midnight — e.g. `2026-04-07` is treated as `2026-04-07T00:00:00.000Z`.
- schema:
type: boolean
default: false
example: true
example: true
in: query
name: include_opportunities_count
required: false
description: Whether to include the opportunities count per step. If this field is true then `opportunities`, `unique_opportunities`,
`meetings_booked`, and `won` fields will be included in the response
responses:
'200':
description: Default Response
content:
application/json:
schema:
type: array
items:
type: object
properties:
step:
type:
- 'null'
- string
description: The step number. When null it means we couldn't determine the step number for the event,
for instance for list leads, which are not part of a campaign.
example: '1'
variant:
type:
- 'null'
- string
description: The variant number, starting from 0. 0 = A, 1 = B, 2 = C, etc. When null it means we couldn't
determine the variant for the event.
example: '0'
sent:
type: integer
description: The total number of sent emails
example: 5421
opened:
type: integer
description: The total number of opened emails
example: 99
unique_opened:
type: integer
description: The total number of opened emails
example: 60
replies:
type: integer
description: The total number of replies
example: 60
unique_replies:
type: integer
description: The total number of replies
example: 60
replies_automatic:
type: integer
description: The total number of automatic replies detected
example: 5
unique_replies_automatic:
type: integer
description: The total number of unique automatic replies detected
example: 4
clicks:
type: integer
description: The total number of links clicked
example: 60
unique_clicks:
type: integer
description: The total number of unique links clicked. Unique meaning from unique leads, not unique
links. For instance, if a lead clicked a link 3 times, it will be counted as 1 unique click. If a
lead clicked 3 different links, it will still be counted as 1 unique click
example: 60
opportunities:
type: integer
description: The total number of opportunities created from this step. Included only if `include_opportunities_count`
is `true`
example: 10
unique_opportunities:
type: integer
description: The total number of unique opportunities created from this step. Unique meaning unique
per lead. If a lead has multiple opportunities, it will be counted as 1 unique opportunity. Included
only if `include_opportunities_count` is `true`
example: 8
meetings_booked:
type: integer
description: The total number of opportunities from this step whose current CRM status is Meeting Booked.
Included only if `include_opportunities_count` is `true`
example: 2
won:
type: integer
description: The total number of opportunities from this step whose current CRM status is Won. Included
only if `include_opportunities_count` is `true`
example: 1
required:
- step
- variant
- sent
- opened
- unique_opened
- replies
- unique_replies
- replies_automatic
- unique_replies_automatic
- clicks
- unique_clicks
'400':
description: Default Response
content:
application/json:
schema:
type: object
properties:
message:
type: string
description: The error message
example: Start Date must be earlier than End Date
'401':
description: This request is unauthorized (either the Authorization header is missing or invalid, or the API key
has been revoked)
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 401
examples:
- 401
example: 401
error:
type: string
enum:
- Unauthorized
examples:
- Unauthorized
example: Unauthorized
message:
type: string
examples:
- Missing Authorization header
example: Missing Authorization header
required:
- statusCode
- error
- message
'402':
description: This request cannot be fulfilled because the workspace does not have an active paid plan
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 402
examples:
- 402
example: 402
error:
type: string
enum:
- Payment Required
examples:
- Payment Required
example: Payment Required
message:
type: string
examples:
- Workspace does not have an active paid plan
example: Workspace does not have an active paid plan
required:
- statusCode
- error
- message
'404':
description: The requested resource was not found
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 404
examples:
- 404
example: 404
error:
type: string
enum:
- Not Found
examples:
- Not Found
example: Not Found
message:
type: string
examples:
- Resource not found
example: Resource not found
required:
- statusCode
- error
- message
'429':
description: You have exceeded the rate limit. Please check the rate limit docs for more information.
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 429
examples:
- 429
example: 429
error:
type: string
enum:
- Too Many Requests
examples:
- Too Many Requests
example: Too Many Requests
message:
type: string
examples:
- Rate limit exceeded
example: Rate limit exceeded
required:
- statusCode
- error
- message
/api/v2/campaigns/{id}/share:
post:
operationId: shareCampaign
summary: Share a campaign
tags:
- Campaign
description: Share a campaign. This allows other users to create new campaigns based on this campaign. The campaign
is being shared for 7 days, after which you'll have to call this endpoint again if you want to enable sharing on the
campaign
parameters:
- schema:
type: string
format: uuid
example: 019ffad2-9ba8-71a6-b963-85717ac0bf95
example: 019ffad2-9ba8-71a6-b963-85717ac0bf95
in: path
name: id
required: true
description: Campaign ID
responses:
'204':
description: Default Response
content:
application/json:
schema: {}
'401':
description: This request is unauthorized (either the Authorization header is missing or invalid, or the API key
has been revoked)
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 401
examples:
- 401
example: 401
error:
type: string
enum:
- Unauthorized
examples:
- Unauthorized
example: Unauthorized
message:
type: string
examples:
- Missing Authorization header
example: Missing Authorization header
required:
- statusCode
- error
- message
'402':
description: This request cannot be fulfilled because the workspace does not have an active paid plan
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 402
examples:
- 402
example: 402
error:
type: string
enum:
- Payment Required
examples:
- Payment Required
example: Payment Required
message:
type: string
examples:
- Workspace does not have an active paid plan
example: Workspace does not have an active paid plan
required:
- statusCode
- error
- message
'404':
description: The requested resource was not found
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 404
examples:
- 404
example: 404
error:
type: string
enum:
- Not Found
examples:
- Not Found
example: Not Found
message:
type: string
examples:
- Resource not found
example: Resource not found
required:
- statusCode
- error
- message
'429':
description: You have exceeded the rate limit. Please check the rate limit docs for more information.
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 429
examples:
- 429
example: 429
error:
type: string
enum:
- Too Many Requests
examples:
- Too Many Requests
example: Too Many Requests
message:
type: string
examples:
- Rate limit exceeded
example: Rate limit exceeded
required:
- statusCode
- error
- message
/api/v2/campaigns/{id}/from-export:
post:
operationId: createFromExport
summary: Create campaign from shared one
tags:
- Campaign
description: 'Requires one of the following scopes: `campaigns:create`, `campaigns:all`, `all:create`, `all:all`'
parameters:
- schema:
type: string
format: uuid
example: 019ffad2-9ba9-7958-8902-ac39b45afe52
example: 019ffad2-9ba9-7958-8902-ac39b45afe52
in: path
name: id
required: true
description: Campaign ID
responses:
'200':
description: The requested Campaign
content:
application/json:
schema:
$ref: '#/components/schemas/Campaign'
'401':
description: This request is unauthorized (either the Authorization header is missing or invalid, or the API key
has been revoked)
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 401
examples:
- 401
example: 401
error:
type: string
enum:
- Unauthorized
examples:
- Unauthorized
example: Unauthorized
message:
type: string
examples:
- Missing Authorization header
example: Missing Authorization header
required:
- statusCode
- error
- message
'402':
description: This request cannot be fulfilled because the workspace does not have an active paid plan
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 402
examples:
- 402
example: 402
error:
type: string
enum:
- Payment Required
examples:
- Payment Required
example: Payment Required
message:
type: string
examples:
- Workspace does not have an active paid plan
example: Workspace does not have an active paid plan
required:
- statusCode
- error
- message
'403':
description: The requested campaign not shared
content:
application/json:
schema:
type: object
description: The requested campaign not shared
properties:
message:
type: string
example: The requested campaign not shared
'404':
description: The requested resource was not found
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 404
examples:
- 404
example: 404
error:
type: string
enum:
- Not Found
examples:
- Not Found
example: Not Found
message:
type: string
examples:
- Resource not found
example: Resource not found
required:
- statusCode
- error
- message
'429':
description: You have exceeded the rate limit. Please check the rate limit docs for more information.
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 429
examples:
- 429
example: 429
error:
type: string
enum:
- Too Many Requests
examples:
- Too Many Requests
example: Too Many Requests
message:
type: string
examples:
- Rate limit exceeded
example: Rate limit exceeded
required:
- statusCode
- error
- message
/api/v2/campaigns/{id}/export:
post:
operationId: exportCampaign
summary: Export campaign to JSON format
tags:
- Campaign
description: 'Requires one of the following scopes: `campaigns:read`, `campaigns:all`, `all:read`, `all:all`'
parameters:
- schema:
type: string
format: uuid
example: 019ffad2-9ba9-7958-8902-ac3ad80e868c
example: 019ffad2-9ba9-7958-8902-ac3ad80e868c
in: path
name: id
required: true
description: Campaign ID
responses:
'200':
description: The requested Campaign
content:
application/json:
schema:
$ref: '#/components/schemas/Campaign'
'401':
description: This request is unauthorized (either the Authorization header is missing or invalid, or the API key
has been revoked)
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 401
examples:
- 401
example: 401
error:
type: string
enum:
- Unauthorized
examples:
- Unauthorized
example: Unauthorized
message:
type: string
examples:
- Missing Authorization header
example: Missing Authorization header
required:
- statusCode
- error
- message
'402':
description: This request cannot be fulfilled because the workspace does not have an active paid plan
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 402
examples:
- 402
example: 402
error:
type: string
enum:
- Payment Required
examples:
- Payment Required
example: Payment Required
message:
type: string
examples:
- Workspace does not have an active paid plan
example: Workspace does not have an active paid plan
required:
- statusCode
- error
- message
'404':
description: The requested resource was not found
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 404
examples:
- 404
example: 404
error:
type: string
enum:
- Not Found
examples:
- Not Found
example: Not Found
message:
type: string
examples:
- Resource not found
example: Resource not found
required:
- statusCode
- error
- message
'429':
description: You have exceeded the rate limit. Please check the rate limit docs for more information.
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 429
examples:
- 429
example: 429
error:
type: string
enum:
- Too Many Requests
examples:
- Too Many Requests
example: Too Many Requests
message:
type: string
examples:
- Rate limit exceeded
example: Rate limit exceeded
required:
- statusCode
- error
- message
/api/v2/campaigns/{id}/duplicate:
post:
operationId: duplicate
summary: Duplicate campaign
tags:
- Campaign
description: 'Requires one of the following scopes: `campaigns:create`, `campaigns:all`, `all:create`, `all:all`'
requestBody:
content:
application/json:
schema:
type: object
properties:
name:
type: string
description: Campaign new name (optional). If not provided, it will default to CAMPAIGN NAME (copy).
example: Campaign new name
parameters:
- schema:
type: string
format: uuid
example: 019ffad2-9baa-7b24-b673-febcf19e6996
example: 019ffad2-9baa-7b24-b673-febcf19e6996
in: path
name: id
required: true
description: Campaign ID
responses:
'200':
description: The requested Campaign
content:
application/json:
schema:
$ref: '#/components/schemas/Campaign'
'400':
description: Duplication failed
content:
application/json:
schema:
type: object
description: Duplication failed
properties:
message:
type: string
description: The error message
example: New campaign name is required
'401':
description: This request is unauthorized (either the Authorization header is missing or invalid, or the API key
has been revoked)
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 401
examples:
- 401
example: 401
error:
type: string
enum:
- Unauthorized
examples:
- Unauthorized
example: Unauthorized
message:
type: string
examples:
- Missing Authorization header
example: Missing Authorization header
required:
- statusCode
- error
- message
'402':
description: This request cannot be fulfilled because the workspace does not have an active paid plan
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 402
examples:
- 402
example: 402
error:
type: string
enum:
- Payment Required
examples:
- Payment Required
example: Payment Required
message:
type: string
examples:
- Workspace does not have an active paid plan
example: Workspace does not have an active paid plan
required:
- statusCode
- error
- message
'404':
description: The requested resource was not found
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 404
examples:
- 404
example: 404
error:
type: string
enum:
- Not Found
examples:
- Not Found
example: Not Found
message:
type: string
examples:
- Resource not found
example: Resource not found
required:
- statusCode
- error
- message
'429':
description: You have exceeded the rate limit. Please check the rate limit docs for more information.
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 429
examples:
- 429
example: 429
error:
type: string
enum:
- Too Many Requests
examples:
- Too Many Requests
example: Too Many Requests
message:
type: string
examples:
- Rate limit exceeded
example: Rate limit exceeded
required:
- statusCode
- error
- message
/api/v2/campaigns/count-launched:
get:
operationId: countLaunched
summary: Get launched campaigns count
tags:
- Campaign
description: 'Requires one of the following scopes: `campaigns:read`, `campaigns:all`, `all:read`, `all:all`'
responses:
'200':
description: Default Response
content:
application/json:
schema:
type: object
properties:
count:
type: number
example: 2
required:
- count
'401':
description: This request is unauthorized (either the Authorization header is missing or invalid, or the API key
has been revoked)
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 401
examples:
- 401
example: 401
error:
type: string
enum:
- Unauthorized
examples:
- Unauthorized
example: Unauthorized
message:
type: string
examples:
- Missing Authorization header
example: Missing Authorization header
required:
- statusCode
- error
- message
'402':
description: This request cannot be fulfilled because the workspace does not have an active paid plan
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 402
examples:
- 402
example: 402
error:
type: string
enum:
- Payment Required
examples:
- Payment Required
example: Payment Required
message:
type: string
examples:
- Workspace does not have an active paid plan
example: Workspace does not have an active paid plan
required:
- statusCode
- error
- message
'404':
description: The requested resource was not found
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 404
examples:
- 404
example: 404
error:
type: string
enum:
- Not Found
examples:
- Not Found
example: Not Found
message:
type: string
examples:
- Resource not found
example: Resource not found
required:
- statusCode
- error
- message
'429':
description: You have exceeded the rate limit. Please check the rate limit docs for more information.
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 429
examples:
- 429
example: 429
error:
type: string
enum:
- Too Many Requests
examples:
- Too Many Requests
example: Too Many Requests
message:
type: string
examples:
- Rate limit exceeded
example: Rate limit exceeded
required:
- statusCode
- error
- message
/api/v2/campaigns/{id}/variables:
post:
operationId: addVariables
summary: Add campaign variables
tags:
- Campaign
description: 'Requires one of the following scopes: `campaigns:update`, `campaigns:all`, `all:update`, `all:all`'
requestBody:
content:
application/json:
schema:
type: object
properties:
variables:
type: array
items:
type: string
description: Custom or core variable names
example: firstName
required:
- variables
required: true
parameters:
- schema:
type: string
format: uuid
example: 019ffad2-9bab-7567-9b5c-ceeb1b706e72
example: 019ffad2-9bab-7567-9b5c-ceeb1b706e72
in: path
name: id
required: true
description: Campaign ID
responses:
'200':
description: A campaign that can be sent to a list of recipients
content:
application/json:
schema:
$ref: '#/components/schemas/Campaign'
'401':
description: This request is unauthorized (either the Authorization header is missing or invalid, or the API key
has been revoked)
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 401
examples:
- 401
example: 401
error:
type: string
enum:
- Unauthorized
examples:
- Unauthorized
example: Unauthorized
message:
type: string
examples:
- Missing Authorization header
example: Missing Authorization header
required:
- statusCode
- error
- message
'402':
description: This request cannot be fulfilled because the workspace does not have an active paid plan
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 402
examples:
- 402
example: 402
error:
type: string
enum:
- Payment Required
examples:
- Payment Required
example: Payment Required
message:
type: string
examples:
- Workspace does not have an active paid plan
example: Workspace does not have an active paid plan
required:
- statusCode
- error
- message
'404':
description: The requested resource was not found
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 404
examples:
- 404
example: 404
error:
type: string
enum:
- Not Found
examples:
- Not Found
example: Not Found
message:
type: string
examples:
- Resource not found
example: Resource not found
required:
- statusCode
- error
- message
'429':
description: You have exceeded the rate limit. Please check the rate limit docs for more information.
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 429
examples:
- 429
example: 429
error:
type: string
enum:
- Too Many Requests
examples:
- Too Many Requests
example: Too Many Requests
message:
type: string
examples:
- Rate limit exceeded
example: Rate limit exceeded
required:
- statusCode
- error
- message
/api/v2/campaigns/{id}/sending-status:
get:
operationId: getCampaignSendingStatus
summary: Get campaign sending status
tags:
- Campaign
description: 'Returns sending status data explaining why a campaign may not be sending emails or is sending slower than
expected. Note: Some fields may be missing when the campaign is out of schedule. Always-present fields: campaign_id,
last_updated, status, issue_tracking.
Requires one of the following scopes: `campaigns:read`, `campaigns:all`, `all:read`, `all:all`'
parameters:
- schema:
type: boolean
default: false
example: false
example: false
in: query
name: with_ai_summary
required: false
description: Include AI-generated summary
- schema:
type: string
format: uuid
example: 019ffad2-9bab-7567-9b5c-ceec78f572ca
example: 019ffad2-9bab-7567-9b5c-ceec78f572ca
in: path
name: id
required: true
description: Campaign ID
responses:
'200':
description: Sending status data with human-readable summary. Returns null for both fields if no data is available.
content:
application/json:
schema:
type: object
description: Sending status data with human-readable summary. Returns null for both fields if no data is available.
properties:
diagnostics:
type:
- 'null'
- object
additionalProperties: true
description: Raw sending status data. Some fields may be missing when campaign is out of schedule.
properties:
campaign_id:
type: string
description: The campaign ID
examples:
- 019ffad2-8d52-7649-baa5-1601894e64fd
example: 019ffad2-8d52-7649-baa5-1601894e64fd
subsequence_id:
type: string
description: The subsequence ID (only present for subsequence endpoints)
examples:
- 019ffad2-8d52-7649-baa5-16026b2682a3
example: 019ffad2-8d52-7649-baa5-16026b2682a3
last_updated:
type: string
description: ISO timestamp of when this data was last updated
examples:
- '2026-08-13T11:12:10.578Z'
example: '2026-08-13T11:12:10.578Z'
status:
type:
- 'null'
- string
description: Status code explaining why the campaign is not sending or sending slower
enum:
- campaign_paused
- campaign_draft
- campaign_completed
- campaign_running_subsequences
- campaign_bounce_protect
- campaign_accounts_unhealthy
- campaign_account_suspended
- out_of_schedule
- waiting_for_leads
- daily_limit_met
- account_daily_limit_met
- new_lead_limit_met
- all_accounts_unhealthy
- waiting_for_esp_match
- domain_limit_reached
- follow_up_delay_not_met
- no_accounts_available
- healthy
examples:
- healthy
example: healthy
issue_tracking:
type: object
description: Tracks persistence of the current issue
properties:
current_status_code:
type:
- 'null'
- string
description: Current status code
examples:
- healthy
example: healthy
issue_first_seen_at:
type:
- 'null'
- string
description: ISO timestamp when the issue was first detected
examples:
- '2026-08-13T11:12:10.578Z'
example: '2026-08-13T11:12:10.578Z'
consecutive_loops_with_issue:
type: number
description: Number of consecutive processing loops with this issue
examples:
- 0
example: 0
last_healthy_send_at:
type:
- 'null'
- string
description: ISO timestamp of last successful send
examples:
- '2026-08-13T11:12:10.578Z'
example: '2026-08-13T11:12:10.578Z'
accounts_summary:
type: object
description: Summary of sending account availability. May be missing when campaign is out of schedule.
properties:
total_connected:
type: number
description: Total number of connected sending accounts
examples:
- 5
example: 5
available:
type: number
description: Number of accounts available to send
examples:
- 3
example: 3
unavailable:
type: object
description: Breakdown of unavailable accounts by reason
properties:
daily_limit_hit:
type: number
description: Accounts that hit their configured daily sending limit
examples:
- 1
example: 1
slow_ramp_limit_hit:
type: number
description: Accounts that hit the dynamic slow ramp limit (warmup feature)
examples:
- 0
example: 0
disconnected:
type: number
description: Accounts that are disconnected
examples:
- 1
example: 1
global_gap_not_met:
type: number
description: Accounts waiting for global sending gap
examples:
- 0
example: 0
campaign_daily_limit:
type: object
description: Campaign daily sending limit status. May be missing when campaign is out of schedule.
properties:
limit:
type: number
description: Configured daily sending limit
examples:
- 100
example: 100
sent:
type: number
description: Number of emails sent today
examples:
- 50
example: 50
limit_hit:
type: boolean
description: Whether the daily limit has been reached
examples:
- false
example: false
new_lead_limit:
type: object
description: New lead daily limit status. May be missing when campaign is out of schedule.
properties:
enabled:
type: boolean
description: Whether new lead limiting is enabled
examples:
- true
example: true
limit:
type:
- 'null'
- number
description: Configured new lead limit per day
examples:
- 50
example: 50
contacted:
type: number
description: Number of new leads contacted today
examples:
- 25
example: 25
limit_hit:
type: boolean
description: Whether the new lead limit has been reached
examples:
- false
example: false
schedule_status:
type: object
description: Campaign schedule status
properties:
in_schedule:
type: boolean
description: Whether the campaign is currently within scheduled sending hours
examples:
- true
example: true
send_one_by_one:
type: object
description: Send one-by-one settings. May be missing when campaign is out of schedule.
properties:
enabled:
type: boolean
description: Whether send one-by-one mode is enabled
examples:
- false
example: false
single_account_per_wait_gap:
type: boolean
description: Whether to use single account per wait gap
examples:
- false
example: false
follow_ups_waiting:
type: object
description: Follow-up emails waiting status. May be missing when campaign is out of schedule.
properties:
count:
type: number
description: Number of follow-ups waiting to be sent
examples:
- 10
example: 10
earliest_wait_time_seconds:
type:
- 'null'
- number
description: Seconds until the earliest follow-up can be sent
examples:
- 3600
example: 3600
esp_routing_status:
type: object
description: ESP routing status. May be missing when campaign is out of schedule.
properties:
enabled:
type: boolean
description: Whether ESP routing is enabled
examples:
- false
example: false
waiting_for_match:
type: boolean
description: Whether waiting for an ESP-matched account
examples:
- false
example: false
connected_esps:
type: array
items:
type: number
examples:
- 1
example: 1
description: List of connected ESP IDs
domain_limiter:
type: object
description: Per-domain sending limit status. May be missing when campaign is out of schedule.
properties:
active:
type: boolean
description: Whether domain limiting is active
examples:
- false
example: false
domains_at_limit:
type: number
description: Number of domains that have reached their limit
examples:
- 0
example: 0
leads_status:
type: object
description: Lead availability status. May be missing when campaign is out of schedule.
properties:
no_leads_ready:
type: boolean
description: Whether there are no leads ready to receive emails
examples:
- false
example: false
account_unavailable_skips:
type: number
description: Number of leads skipped due to account unavailability
examples:
- 0
example: 0
delay_not_met_skips:
type: number
description: Number of leads skipped due to delay requirements not met
examples:
- 0
example: 0
summary:
type:
- 'null'
- object
additionalProperties: true
description: Human-readable summary of the sending status
properties:
status:
type:
- 'null'
- string
description: The status code
examples:
- healthy
example: healthy
status_message:
type:
- 'null'
- string
description: Human-readable message explaining the status
examples:
- Campaign is sending normally
example: Campaign is sending normally
issue_started_at:
type:
- 'null'
- string
description: ISO timestamp when the issue was first detected
examples:
- '2026-08-13T11:12:10.578Z'
example: '2026-08-13T11:12:10.578Z'
last_healthy_send_at:
type:
- 'null'
- string
description: ISO timestamp of last successful send
examples:
- '2026-08-13T11:12:10.578Z'
example: '2026-08-13T11:12:10.578Z'
ai_summary:
type:
- 'null'
- string
description: AI-generated plain-English summary (only when with_ai_summary=true)
examples:
- Your campaign is sending emails normally.
example: Your campaign is sending emails normally.
'401':
description: This request is unauthorized (either the Authorization header is missing or invalid, or the API key
has been revoked)
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 401
examples:
- 401
example: 401
error:
type: string
enum:
- Unauthorized
examples:
- Unauthorized
example: Unauthorized
message:
type: string
examples:
- Missing Authorization header
example: Missing Authorization header
required:
- statusCode
- error
- message
'402':
description: This request cannot be fulfilled because the workspace does not have an active paid plan
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 402
examples:
- 402
example: 402
error:
type: string
enum:
- Payment Required
examples:
- Payment Required
example: Payment Required
message:
type: string
examples:
- Workspace does not have an active paid plan
example: Workspace does not have an active paid plan
required:
- statusCode
- error
- message
'404':
description: The requested resource was not found
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 404
examples:
- 404
example: 404
error:
type: string
enum:
- Not Found
examples:
- Not Found
example: Not Found
message:
type: string
examples:
- Resource not found
example: Resource not found
required:
- statusCode
- error
- message
'429':
description: You have exceeded the rate limit. Please check the rate limit docs for more information.
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 429
examples:
- 429
example: 429
error:
type: string
enum:
- Too Many Requests
examples:
- Too Many Requests
example: Too Many Requests
message:
type: string
examples:
- Rate limit exceeded
example: Rate limit exceeded
required:
- statusCode
- error
- message
/api/v2/crm-actions/phone-numbers:
get:
operationId: listPhoneNumbers
summary: List phone numbers
tags:
- CRMActions
description: 'Retrieve all phone numbers associated with the current organization.
Requires one of the following scopes: `crm_actions:read`, `crm_actions:all`, `all:read`, `all:all`'
responses:
'200':
description: Default Response
content:
application/json:
schema:
type: array
items:
type: object
properties:
id:
type: string
description: Unique identifier of the phone number record.
example: 019ffad2-9bc5-721c-93a2-b2d6078d7bff
timestamp_created:
type: string
format: date-time
description: Timestamp when the phone number record was created.
example: '2026-08-13T11:12:14.277Z'
organization_id:
type: string
description: Identifier of the organization that owns this phone number.
example: 019ffad2-9bc5-721c-93a2-b2d71c075939
phone_number:
type: string
description: The phone number in international E.164 format.
example: '+15551234567'
country:
type: string
description: Country code where the phone number is registered.
example: US
locality:
type: string
description: City or region associated with the phone number.
example: San Francisco
subscription_id:
type: string
description: Billing subscription ID linked to this phone number.
example: sub_1PuaE1B3VEKBA0ygDAKk7QVc
twilio_sid:
type: string
description: Twilio resource SID for the phone number.
example: PN998dda028e07a49c8038b2206341d463
renewal_date:
type: string
format: date
description: Next renewal date for the phone number subscription.
example: '2026-08-13T11:12:14.277Z'
price:
type: number
description: Monthly price for this phone number (USD).
example: 1
'401':
description: This request is unauthorized (either the Authorization header is missing or invalid, or the API key
has been revoked)
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 401
examples:
- 401
example: 401
error:
type: string
enum:
- Unauthorized
examples:
- Unauthorized
example: Unauthorized
message:
type: string
examples:
- Missing Authorization header
example: Missing Authorization header
required:
- statusCode
- error
- message
'402':
description: This request cannot be fulfilled because the workspace does not have an active paid plan
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 402
examples:
- 402
example: 402
error:
type: string
enum:
- Payment Required
examples:
- Payment Required
example: Payment Required
message:
type: string
examples:
- Workspace does not have an active paid plan
example: Workspace does not have an active paid plan
required:
- statusCode
- error
- message
'404':
description: The requested resource was not found
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 404
examples:
- 404
example: 404
error:
type: string
enum:
- Not Found
examples:
- Not Found
example: Not Found
message:
type: string
examples:
- Resource not found
example: Resource not found
required:
- statusCode
- error
- message
'429':
description: You have exceeded the rate limit. Please check the rate limit docs for more information.
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 429
examples:
- 429
example: 429
error:
type: string
enum:
- Too Many Requests
examples:
- Too Many Requests
example: Too Many Requests
message:
type: string
examples:
- Rate limit exceeded
example: Rate limit exceeded
required:
- statusCode
- error
- message
/api/v2/crm-actions/phone-numbers/{id}:
delete:
operationId: deletePhoneNumber
summary: Delete phone number
tags:
- CRMActions
description: 'Delete a specific phone number from the organization.
Requires one of the following scopes: `crm_actions:delete`, `crm_actions:all`, `all:delete`, `all:all`'
parameters:
- schema:
type: string
example: 019ffad2-9bc6-7ab6-a6df-429c878f0cf6
example: 019ffad2-9bc6-7ab6-a6df-429c878f0cf6
in: path
name: id
required: true
description: The phone number record id to delete
responses:
'200':
description: Default Response
content:
application/json:
schema:
type: object
properties:
id:
type: string
description: Unique identifier of the deleted phone number record.
example: 019ffad2-9bc6-7ab6-a6df-429d2e8fd925
timestamp_created:
type: string
format: date-time
description: Timestamp when the deleted record was originally created.
example: '2026-08-13T11:12:14.278Z'
organization_id:
type: string
description: Identifier of the organization that owned the phone number.
example: 019ffad2-9bc6-7ab6-a6df-429ea3825b7b
phone_number:
type: string
description: The deleted phone number.
example: '+15551234567'
country:
type: string
description: Country code of the deleted phone number.
example: US
locality:
type: string
description: Region or city associated with the deleted phone number.
example: San Francisco
subscription_id:
type: string
description: Billing subscription ID associated with this number (if any).
example: sub_1PuaE1B3VEKBA0ygDAKk7QVc
twilio_sid:
type: string
description: Twilio SID of the deleted number.
example: PN998dda028e07a49c8038b2206341d463
'401':
description: This request is unauthorized (either the Authorization header is missing or invalid, or the API key
has been revoked)
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 401
examples:
- 401
example: 401
error:
type: string
enum:
- Unauthorized
examples:
- Unauthorized
example: Unauthorized
message:
type: string
examples:
- Missing Authorization header
example: Missing Authorization header
required:
- statusCode
- error
- message
'402':
description: This request cannot be fulfilled because the workspace does not have an active paid plan
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 402
examples:
- 402
example: 402
error:
type: string
enum:
- Payment Required
examples:
- Payment Required
example: Payment Required
message:
type: string
examples:
- Workspace does not have an active paid plan
example: Workspace does not have an active paid plan
required:
- statusCode
- error
- message
'404':
description: The requested resource was not found
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 404
examples:
- 404
example: 404
error:
type: string
enum:
- Not Found
examples:
- Not Found
example: Not Found
message:
type: string
examples:
- Resource not found
example: Resource not found
required:
- statusCode
- error
- message
'429':
description: You have exceeded the rate limit. Please check the rate limit docs for more information.
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 429
examples:
- 429
example: 429
error:
type: string
enum:
- Too Many Requests
examples:
- Too Many Requests
example: Too Many Requests
message:
type: string
examples:
- Rate limit exceeded
example: Rate limit exceeded
required:
- statusCode
- error
- message
/api/v2/custom-tag-mappings:
get:
operationId: listCustomTagMapping
summary: List custom tag mapping
tags:
- CustomTagMapping
description: 'Requires one of the following scopes: `custom_tag_mappings:read`, `custom_tag_mappings:all`, `all:read`,
`all:all`'
parameters:
- schema:
type: integer
minimum: 1
maximum: 100
example: 10
example: 10
in: query
name: limit
required: false
description: The number of items to return
- schema:
type: string
example: 01956fbd-0eb1-72db-a565-82977a586084
example: 01956fbd-0eb1-72db-a565-82977a586084
in: query
name: starting_after
required: false
description: The ID of the last item in the previous page - used for pagination. You can use the value of the `next_starting_after`
field from the previous response.
- schema:
type: string
example: id1,id2,id3
example: id1,id2,id3
in: query
name: resource_ids
required: false
description: The list of resource ids to filter custom tag mappings by. A resource id is the id of an account or a
campaign.
responses:
'200':
description: The list of Custom Tag Mapping
content:
application/json:
schema:
type: object
properties:
items:
type: array
description: The list of Custom Tag Mapping
items:
$ref: '#/components/schemas/CustomTagMapping'
next_starting_after:
type: string
examples:
- 019ffad2-9bd3-72ed-a9b6-865b150cdcc1
- '2026-08-13T11:12:14.291Z'
description: The filter for getting the next items after this one, this could either be a UUID, a timestamp,
on an email depending on the specific API
example: 019ffad2-9bd3-72ed-a9b6-865b150cdcc1
additionalProperties: false
required:
- items
'401':
description: This request is unauthorized (either the Authorization header is missing or invalid, or the API key
has been revoked)
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 401
examples:
- 401
example: 401
error:
type: string
enum:
- Unauthorized
examples:
- Unauthorized
example: Unauthorized
message:
type: string
examples:
- Missing Authorization header
example: Missing Authorization header
required:
- statusCode
- error
- message
'402':
description: This request cannot be fulfilled because the workspace does not have an active paid plan
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 402
examples:
- 402
example: 402
error:
type: string
enum:
- Payment Required
examples:
- Payment Required
example: Payment Required
message:
type: string
examples:
- Workspace does not have an active paid plan
example: Workspace does not have an active paid plan
required:
- statusCode
- error
- message
'404':
description: The requested resource was not found
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 404
examples:
- 404
example: 404
error:
type: string
enum:
- Not Found
examples:
- Not Found
example: Not Found
message:
type: string
examples:
- Resource not found
example: Resource not found
required:
- statusCode
- error
- message
'429':
description: You have exceeded the rate limit. Please check the rate limit docs for more information.
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 429
examples:
- 429
example: 429
error:
type: string
enum:
- Too Many Requests
examples:
- Too Many Requests
example: Too Many Requests
message:
type: string
examples:
- Rate limit exceeded
example: Rate limit exceeded
required:
- statusCode
- error
- message
/api/v2/custom-tags:
post:
operationId: createCustomTag
summary: Create custom tag
tags:
- CustomTag
description: 'Requires one of the following scopes: `custom_tags:create`, `custom_tags:all`, `all:create`, `all:all`'
requestBody:
content:
application/json:
schema:
title: CreateCustom Tag
description: The Custom Tag to create
type: object
properties:
label:
type: string
description: Display label for the custom tag. Must be unique per workspace after trimming whitespace.
minLength: 1
pattern: .*\S.*
example: Important
description:
type:
- string
- 'null'
description: Detailed description of the custom tag purpose
example: Used for marking important items
required:
- label
additionalProperties: false
required: true
description: The Custom Tag to create
responses:
'200':
description: The Custom Tag
content:
application/json:
schema:
$ref: '#/components/schemas/CustomTag'
'400':
description: Invalid request body (e.g. missing required fields, or invalid field values)
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 400
examples:
- 400
example: 400
error:
type: string
enum:
- Bad Request
examples:
- Bad Request
example: Bad Request
message:
type: string
examples:
- body must have required property 'name'
example: body must have required property 'name'
required:
- statusCode
- error
- message
'401':
description: This request is unauthorized (either the Authorization header is missing or invalid, or the API key
has been revoked)
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 401
examples:
- 401
example: 401
error:
type: string
enum:
- Unauthorized
examples:
- Unauthorized
example: Unauthorized
message:
type: string
examples:
- Missing Authorization header
example: Missing Authorization header
required:
- statusCode
- error
- message
'402':
description: This request cannot be fulfilled because the workspace does not have an active paid plan
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 402
examples:
- 402
example: 402
error:
type: string
enum:
- Payment Required
examples:
- Payment Required
example: Payment Required
message:
type: string
examples:
- Workspace does not have an active paid plan
example: Workspace does not have an active paid plan
required:
- statusCode
- error
- message
'404':
description: The requested resource was not found
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 404
examples:
- 404
example: 404
error:
type: string
enum:
- Not Found
examples:
- Not Found
example: Not Found
message:
type: string
examples:
- Resource not found
example: Resource not found
required:
- statusCode
- error
- message
'409':
description: A tag with the same normalized label already exists in this workspace
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 409
examples:
- 409
example: 409
error:
type: string
enum:
- Conflict
examples:
- Conflict
example: Conflict
message:
type: string
examples:
- A tag with this name already exists.
example: A tag with this name already exists.
required:
- statusCode
- error
- message
'429':
description: You have exceeded the rate limit. Please check the rate limit docs for more information.
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 429
examples:
- 429
example: 429
error:
type: string
enum:
- Too Many Requests
examples:
- Too Many Requests
example: Too Many Requests
message:
type: string
examples:
- Rate limit exceeded
example: Rate limit exceeded
required:
- statusCode
- error
- message
get:
operationId: listCustomTag
summary: List custom tag
tags:
- CustomTag
description: 'Requires one of the following scopes: `custom_tags:read`, `custom_tags:all`, `all:read`, `all:all`'
parameters:
- schema:
type: integer
minimum: 1
maximum: 100
example: 10
example: 10
in: query
name: limit
required: false
description: The number of items to return
- schema:
type: string
example: 01956fbd-0eb1-72db-a565-82977a586084
example: 01956fbd-0eb1-72db-a565-82977a586084
in: query
name: starting_after
required: false
description: The ID of the last item in the previous page - used for pagination. You can use the value of the `next_starting_after`
field from the previous response.
- schema:
type: string
example: Important
example: Important
in: query
name: search
required: false
description: The search query to filter custom tags.
- schema:
type: string
example: id1,id2,id3
example: id1,id2,id3
in: query
name: resource_ids
required: false
description: The list of resource ids to filter custom tags by. A resource id is the id of an account or a campaign.
- schema:
type: string
example: id1,id2,id3
example: id1,id2,id3
in: query
name: tag_ids
required: false
description: The list of tag ids to filter custom tags by.
responses:
'200':
description: The list of Custom Tag
content:
application/json:
schema:
type: object
properties:
items:
type: array
description: The list of Custom Tag
items:
$ref: '#/components/schemas/CustomTag'
next_starting_after:
type: string
examples:
- 019ffad2-9bda-7b11-a331-384690f21765
- '2026-08-13T11:12:14.298Z'
description: The filter for getting the next items after this one, this could either be a UUID, a timestamp,
on an email depending on the specific API
example: 019ffad2-9bda-7b11-a331-384690f21765
additionalProperties: false
required:
- items
'401':
description: This request is unauthorized (either the Authorization header is missing or invalid, or the API key
has been revoked)
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 401
examples:
- 401
example: 401
error:
type: string
enum:
- Unauthorized
examples:
- Unauthorized
example: Unauthorized
message:
type: string
examples:
- Missing Authorization header
example: Missing Authorization header
required:
- statusCode
- error
- message
'402':
description: This request cannot be fulfilled because the workspace does not have an active paid plan
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 402
examples:
- 402
example: 402
error:
type: string
enum:
- Payment Required
examples:
- Payment Required
example: Payment Required
message:
type: string
examples:
- Workspace does not have an active paid plan
example: Workspace does not have an active paid plan
required:
- statusCode
- error
- message
'404':
description: The requested resource was not found
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 404
examples:
- 404
example: 404
error:
type: string
enum:
- Not Found
examples:
- Not Found
example: Not Found
message:
type: string
examples:
- Resource not found
example: Resource not found
required:
- statusCode
- error
- message
'429':
description: You have exceeded the rate limit. Please check the rate limit docs for more information.
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 429
examples:
- 429
example: 429
error:
type: string
enum:
- Too Many Requests
examples:
- Too Many Requests
example: Too Many Requests
message:
type: string
examples:
- Rate limit exceeded
example: Rate limit exceeded
required:
- statusCode
- error
- message
/api/v2/custom-tags/{id}:
get:
operationId: getCustomTag
summary: Get custom tag
tags:
- CustomTag
description: 'Requires one of the following scopes: `custom_tags:read`, `custom_tags:all`, `all:read`, `all:all`'
parameters:
- schema:
type: string
format: uuid
example: 019ffad2-9bda-7b11-a331-3847659da2b6
example: 019ffad2-9bda-7b11-a331-3847659da2b6
in: path
name: id
required: true
description: The ID of the requested item
responses:
'200':
description: The requested Custom Tag
content:
application/json:
schema:
$ref: '#/components/schemas/CustomTag'
'401':
description: This request is unauthorized (either the Authorization header is missing or invalid, or the API key
has been revoked)
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 401
examples:
- 401
example: 401
error:
type: string
enum:
- Unauthorized
examples:
- Unauthorized
example: Unauthorized
message:
type: string
examples:
- Missing Authorization header
example: Missing Authorization header
required:
- statusCode
- error
- message
'402':
description: This request cannot be fulfilled because the workspace does not have an active paid plan
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 402
examples:
- 402
example: 402
error:
type: string
enum:
- Payment Required
examples:
- Payment Required
example: Payment Required
message:
type: string
examples:
- Workspace does not have an active paid plan
example: Workspace does not have an active paid plan
required:
- statusCode
- error
- message
'404':
description: The requested resource was not found
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 404
examples:
- 404
example: 404
error:
type: string
enum:
- Not Found
examples:
- Not Found
example: Not Found
message:
type: string
examples:
- Resource not found
example: Resource not found
required:
- statusCode
- error
- message
'429':
description: You have exceeded the rate limit. Please check the rate limit docs for more information.
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 429
examples:
- 429
example: 429
error:
type: string
enum:
- Too Many Requests
examples:
- Too Many Requests
example: Too Many Requests
message:
type: string
examples:
- Rate limit exceeded
example: Rate limit exceeded
required:
- statusCode
- error
- message
patch:
operationId: patchCustomTag
summary: Patch custom tag
tags:
- CustomTag
description: 'Requires one of the following scopes: `custom_tags:update`, `custom_tags:all`, `all:update`, `all:all`'
requestBody:
content:
application/json:
schema:
type: object
properties:
label:
type: string
description: Display label for the custom tag. Must be unique per workspace after trimming whitespace.
minLength: 1
pattern: .*\S.*
example: Important
description:
type:
- string
- 'null'
description: Detailed description of the custom tag purpose
example: Used for marking important items
required: []
additionalProperties: false
minProperties: 1
parameters:
- schema:
type: string
format: uuid
example: 019ffad2-9bd9-75cc-9859-143662e74842
example: 019ffad2-9bd9-75cc-9859-143662e74842
in: path
name: id
required: true
description: The ID of the item to update
responses:
'200':
description: The updated Custom Tag
content:
application/json:
schema:
$ref: '#/components/schemas/CustomTag'
'401':
description: This request is unauthorized (either the Authorization header is missing or invalid, or the API key
has been revoked)
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 401
examples:
- 401
example: 401
error:
type: string
enum:
- Unauthorized
examples:
- Unauthorized
example: Unauthorized
message:
type: string
examples:
- Missing Authorization header
example: Missing Authorization header
required:
- statusCode
- error
- message
'402':
description: This request cannot be fulfilled because the workspace does not have an active paid plan
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 402
examples:
- 402
example: 402
error:
type: string
enum:
- Payment Required
examples:
- Payment Required
example: Payment Required
message:
type: string
examples:
- Workspace does not have an active paid plan
example: Workspace does not have an active paid plan
required:
- statusCode
- error
- message
'404':
description: The requested resource was not found
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 404
examples:
- 404
example: 404
error:
type: string
enum:
- Not Found
examples:
- Not Found
example: Not Found
message:
type: string
examples:
- Resource not found
example: Resource not found
required:
- statusCode
- error
- message
'409':
description: A tag with the same normalized label already exists in this workspace
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 409
examples:
- 409
example: 409
error:
type: string
enum:
- Conflict
examples:
- Conflict
example: Conflict
message:
type: string
examples:
- A tag with this name already exists.
example: A tag with this name already exists.
required:
- statusCode
- error
- message
'429':
description: You have exceeded the rate limit. Please check the rate limit docs for more information.
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 429
examples:
- 429
example: 429
error:
type: string
enum:
- Too Many Requests
examples:
- Too Many Requests
example: Too Many Requests
message:
type: string
examples:
- Rate limit exceeded
example: Rate limit exceeded
required:
- statusCode
- error
- message
delete:
operationId: deleteCustomTag
summary: Delete custom tag
tags:
- CustomTag
description: 'Requires one of the following scopes: `custom_tags:delete`, `custom_tags:all`, `all:delete`, `all:all`'
requestBody:
content:
application/json:
schema:
type: 'null'
example: null
parameters:
- schema:
type: string
format: uuid
example: 019ffad2-9bdc-7129-a946-92c917a430e6
example: 019ffad2-9bdc-7129-a946-92c917a430e6
in: path
name: id
required: true
description: The ID of the item to delete
responses:
'200':
description: The deleted Custom Tag
content:
application/json:
schema:
$ref: '#/components/schemas/CustomTag'
'401':
description: This request is unauthorized (either the Authorization header is missing or invalid, or the API key
has been revoked)
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 401
examples:
- 401
example: 401
error:
type: string
enum:
- Unauthorized
examples:
- Unauthorized
example: Unauthorized
message:
type: string
examples:
- Missing Authorization header
example: Missing Authorization header
required:
- statusCode
- error
- message
'402':
description: This request cannot be fulfilled because the workspace does not have an active paid plan
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 402
examples:
- 402
example: 402
error:
type: string
enum:
- Payment Required
examples:
- Payment Required
example: Payment Required
message:
type: string
examples:
- Workspace does not have an active paid plan
example: Workspace does not have an active paid plan
required:
- statusCode
- error
- message
'404':
description: The requested resource was not found
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 404
examples:
- 404
example: 404
error:
type: string
enum:
- Not Found
examples:
- Not Found
example: Not Found
message:
type: string
examples:
- Resource not found
example: Resource not found
required:
- statusCode
- error
- message
'429':
description: You have exceeded the rate limit. Please check the rate limit docs for more information.
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 429
examples:
- 429
example: 429
error:
type: string
enum:
- Too Many Requests
examples:
- Too Many Requests
example: Too Many Requests
message:
type: string
examples:
- Rate limit exceeded
example: Rate limit exceeded
required:
- statusCode
- error
- message
/api/v2/custom-tags/toggle-resource:
post:
operationId: toggleTagResource
summary: Assign or unassign tags to resources
tags:
- CustomTag
description: This can be used for both accounts and campaigns. Please check the `resource_type` field for more information.
requestBody:
content:
application/json:
schema:
type: object
additionalProperties: false
properties:
tag_ids:
type: array
minItems: 1
items:
type: string
format: uuid
example: 019ffad2-9bdb-7827-9248-8c35500ac3c5
description: The list of tag ids to assign or unassign
resource_type:
type: number
enum:
- 1
- 2
description: The resource type to assign or unassign the tags to
x-enumDescriptions:
'1': Account
'2': Campaign
example: 1
resource_ids:
type: array
minItems: 1
items:
type: string
example: resource-1
description: The list of resource ids to assign or unassign. A resource id is the id of an account or a
campaign. Required unless `selected_all` is `true`.
excluded_resource_ids:
type: array
minItems: 1
items:
type: string
example: resource-1
description: Optional list of resource ids to exclude when `selected_all` is `true`.
assign:
type: boolean
description: Whether to assign the tags to the resources.
example: true
selected_all:
type: boolean
description: Whether to select all resources.
example: false
filter:
oneOf:
- type:
- string
- 'null'
examples:
- ACC_FILTER_PAUSED
enum:
- ACC_FILTER_PAUSED
- ACC_FILTER_ERROR
- ACC_FILTER_NO_CTD
- ACC_FILTER_PW_ACCOUNTS
- ACC_FILTER_DFY
- ACC_FILTER_DFY_SETUP_PENDING
- ACC_FILTER_W_ACTIVE
- ACC_FILTER_W_PAUSED
- ACC_FILTER_W_ERROR
- null
x-enumDescriptions:
ACC_FILTER_PAUSED: Paused
ACC_FILTER_ERROR: Error
ACC_FILTER_NO_CTD: No CTD
ACC_FILTER_PW_ACCOUNTS: PW Accounts
ACC_FILTER_DFY: DFY
ACC_FILTER_DFY_SETUP_PENDING: DFY Setup Pending
ACC_FILTER_W_ACTIVE: W Active
ACC_FILTER_W_PAUSED: W Paused
ACC_FILTER_W_ERROR: W Error
'null': No filter
example: ACC_FILTER_PAUSED
- type: object
additionalProperties: false
properties:
tag_id:
oneOf:
- type: string
format: uuid
examples:
- 019ffad2-8faf-7bd3-a109-efd683507585
example: 019ffad2-8faf-7bd3-a109-efd683507585
- type: string
enum:
- no-tag
examples:
- no-tag
example: no-tag
tag_ids:
type: array
minItems: 1
items:
type: string
format: uuid
examples:
- 019ffad2-8fb0-70ac-a1d9-fe8b077f12d3
example: 019ffad2-8fb0-70ac-a1d9-fe8b077f12d3
tag_ids_all:
type: array
minItems: 1
items:
type: string
format: uuid
examples:
- 019ffad2-8fb0-70ac-a1d9-fe8cf36017ed
example: 019ffad2-8fb0-70ac-a1d9-fe8cf36017ed
filter:
type:
- string
- 'null'
examples:
- ACC_FILTER_PAUSED
enum:
- ACC_FILTER_PAUSED
- ACC_FILTER_ERROR
- ACC_FILTER_NO_CTD
- ACC_FILTER_PW_ACCOUNTS
- ACC_FILTER_DFY
- ACC_FILTER_DFY_SETUP_PENDING
- ACC_FILTER_W_ACTIVE
- ACC_FILTER_W_PAUSED
- ACC_FILTER_W_ERROR
- null
x-enumDescriptions:
ACC_FILTER_PAUSED: Paused
ACC_FILTER_ERROR: Error
ACC_FILTER_NO_CTD: No CTD
ACC_FILTER_PW_ACCOUNTS: PW Accounts
ACC_FILTER_DFY: DFY
ACC_FILTER_DFY_SETUP_PENDING: DFY Setup Pending
ACC_FILTER_W_ACTIVE: W Active
ACC_FILTER_W_PAUSED: W Paused
ACC_FILTER_W_ERROR: W Error
'null': No filter
example: ACC_FILTER_PAUSED
search:
type: string
examples:
- jon@doe.com
example: jon@doe.com
description: Optional selected-all filter. Accepts the existing account-status string shape and the merged
object shape for account status, tag, any-tag, all-tags, and search criteria.
search:
type: string
description: Optional selected-all search query. If omitted, `filter.search` is used when present.
example: jon@doe.com
required:
- tag_ids
- resource_type
- assign
required: true
responses:
'200':
description: Default Response
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
example: true
'401':
description: This request is unauthorized (either the Authorization header is missing or invalid, or the API key
has been revoked)
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 401
examples:
- 401
example: 401
error:
type: string
enum:
- Unauthorized
examples:
- Unauthorized
example: Unauthorized
message:
type: string
examples:
- Missing Authorization header
example: Missing Authorization header
required:
- statusCode
- error
- message
'402':
description: This request cannot be fulfilled because the workspace does not have an active paid plan
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 402
examples:
- 402
example: 402
error:
type: string
enum:
- Payment Required
examples:
- Payment Required
example: Payment Required
message:
type: string
examples:
- Workspace does not have an active paid plan
example: Workspace does not have an active paid plan
required:
- statusCode
- error
- message
'404':
description: The requested resource was not found
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 404
examples:
- 404
example: 404
error:
type: string
enum:
- Not Found
examples:
- Not Found
example: Not Found
message:
type: string
examples:
- Resource not found
example: Resource not found
required:
- statusCode
- error
- message
'429':
description: You have exceeded the rate limit. Please check the rate limit docs for more information.
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 429
examples:
- 429
example: 429
error:
type: string
enum:
- Too Many Requests
examples:
- Too Many Requests
example: Too Many Requests
message:
type: string
examples:
- Rate limit exceeded
example: Rate limit exceeded
required:
- statusCode
- error
- message
/api/v2/dfy-email-account-orders:
post:
operationId: createDFYEmailAccountOrder
summary: Place a DFY email account order
tags:
- DFYEmailAccountOrder
description: 'Place a Done-For-You (DFY) email account order for your workspace.
**Order types**
- `dfy`: Buy new DFY accounts on new custom domains.
- `pre_warmed_up`: Buy available pre-warmed domains returned by `/dfy-email-account-orders/domains/pre-warmed-up-list`.
- `extra_accounts`: Add mailboxes to domains you already ordered. All active accounts on a domain must use the same
`email_provider`.
**Provider limits and pricing**
- `1` Google: up to 5 mailboxes per domain; per-mailbox monthly pricing.
- `2` AirMail: up to 5 mailboxes per domain; per-mailbox monthly pricing.
- `3` Microsoft/Outlook: 50-100 mailboxes per new DFY domain; per-domain monthly pricing; extra-account orders are
not supported.
**Before ordering**
- Regular DFY domains must use supported TLDs: .com, .org.
- Check new-domain availability with `/dfy-email-account-orders/domains/check`.
- Domains containing trademarks of well-known companies are restricted and cannot be ordered.
- For pre-warmed orders, choose a domain from `/dfy-email-account-orders/domains/pre-warmed-up-list`; if none are
available, use a regular `dfy` order instead.
- The workspace must have an active free trial, paid CRM plan, or Outreach entitlement, and a default payment method.
Requires one of the following scopes: `dfy_email_account_orders:create`, `dfy_email_account_orders:all`, `all:create`,
`all:all`'
requestBody:
content:
application/json:
schema:
type: object
properties:
items:
type: array
description: List of domains and accounts to order
items:
type: object
properties:
domain:
type: string
description: The domain to use for the email accounts.For regular DFY accounts the only allowed domain
extensions (tlds) are .com and .org.For regular DFY accounts - you can check the domain availability
using the /dfy-email-account-orders/domains/check endpoint before placing an order.For pre-warmed
up domains - use the /dfy-email-account-orders/domains endpoint to get a list of available domains.Domains
containing trademarks of well-known companies are restricted and cannot be ordered.
example: example.com
email_provider:
type: number
description: 'The mailbox product to order. Defaults to Google when omitted.
Options:
- 1: Google. Up to 5 mailboxes per domain; priced per mailbox monthly.
- 2: AirMail. Up to 5 mailboxes per domain; priced per mailbox monthly.
- 3: Microsoft/Outlook. 50-100 mailboxes per new DFY domain; priced per domain monthly.'
enum:
- 1
- 2
- 3
x-enumDescriptions:
'1': Google
'2': AirMail
'3': Microsoft/Outlook
default: 1
example: 1
forwarding_domain:
type: string
description: An optional domain to forward emails to. This domain must be different from the main
domain.
example: forward-to-this-domain.com
accounts:
type: array
description: List of email accounts to create (only if `pre_warmed_up` field is false). For pre-warmed
up domains this field will be ignored because the accounts are already created and can't be changed.
Please provide minimum 1 and maximum 5 accounts per domain for Google or AirMail, or 50-100 for
Microsoft/Outlook.
items:
type: object
properties:
email_address_prefix:
type: string
description: The prefix for the email address (the part before the @). For instance, if the
email address is "john.doe@example.com", then the email_address_prefix is "john.doe".
example: john.doe
first_name:
type: string
description: The first name of the account owner
example: John
last_name:
type: string
description: The last name of the account owner
example: Doe
required:
- email_address_prefix
- first_name
- last_name
default: []
maxItems: 100
required:
- domain
order_type:
type: string
description: The type of order to place. Please check the docs because this endpoint performs different
actions based on the order type.
enum:
- dfy
- pre_warmed_up
- extra_accounts
x-enumDescriptions:
dfy: Regular DFY accounts - it will place an order to buy new DFY accounts
pre_warmed_up: Pre-warmed up accounts - it will place an order to buy new pre-warmed up accounts
extra_accounts: Extra accounts - it will place an order to add extra accounts to already ordered domains
example: dfy
simulation:
type: boolean
description: Whether to run a simulation of the order ot not. If set to true, the order will NOT be placed,
your card will NOT be charged, and only a price quote will be returned. We will still check the validity
of the order and the accounts, and return the results of the validation (if the order_is_valid field is
true, then the order would be valid and could be placed).
default: false
example: false
required:
- items
- order_type
required: true
responses:
'200':
description: Default Response
content:
application/json:
schema:
type: object
properties:
order_placed:
type: boolean
description: Whether the order was placed or not. If true, then the order was placed successfully. If
false, then the order was not placed due to an error or simulation mode was enabled.
example: true
order_is_valid:
type: boolean
description: Whether the order is valid or not. If true, then the order is valid and can be placed. If
false, then the order is not valid and cannot be placed. Use this field when you run a simulation to
understand whether a real order would be valid.
example: true
order_error:
type: string
description: The error that occurred if the order was not placed. If the order was placed successfully,
then this field will be omitted.
enum:
- unavailable_domains
- blacklist_domains
- invalid_domains
- invalid_forwarding_domains
- invalid_accounts
- payment_failed
- missing_domain_orders
- domains_without_accounts
- provider_mismatch
- unsupported_provider
- provider_unavailable
x-enumDescriptions:
unavailable_domains: Some domains are not available for order - check the `unavailable_domains` field
blacklist_domains: Some domains are blacklisted - check the `blacklist_domains` field
invalid_domains: Some domains are invalid - check the `invalid_domains` field
invalid_forwarding_domains: Some forwarding domains are invalid - check the `invalid_forwarding_domains`
field
invalid_accounts: Some accounts are invalid - check the `invalid_accounts` field the list of invalid
accounts
payment_failed: The payment failed - please make sure you have enough funds in your payment method
missing_domain_orders: Some domains are missing orders (when you set the `order_type` to `extra_accounts`,
all the domains you want to add extra accounts to must be already ordered) - check the `missing_domain_orders`
field
domains_without_accounts: Some domains are missing accounts - check the `domains_without_accounts` field
provider_mismatch: Some domains received an `email_provider` that does not match the existing accounts
on that domain, or the domain is in a mixed provider state — check the `provider_mismatch_domains`
field. All accounts for a domain must use the same provider.
unsupported_provider: Some domains use an existing provider that does not support extra-account orders
through this endpoint - check the `unsupported_provider_domains` field.
provider_unavailable: One or more requested email providers are not available for ordering right now
- check the `unavailable_email_providers` field.
example: unavailable_domains
payment_failure_reason:
type: string
description: A safe, provider-independent payment failure reason. Present only when a payment attempt
failed.
enum:
- payment_method_not_supported
- authentication_required
- card_expired
- generic_decline
example: payment_method_not_supported
unavailable_domains:
type: array
items:
type: string
example: example.com
description: The list of unavailable domains (if any)
blacklist_domains:
type: array
items:
type: string
example: example.com
description: The list of blacklisted domains (if any)
example:
- example.com
- acme.com
blacklist_keywords:
type: array
items:
type: string
example: google
description: The restricted keywords matched in `blacklist_domains` (if any)
example:
- google
- equifax
invalid_domains:
type: array
items:
type: string
example: example.com
description: The list of invalid domains (if any)
example:
- example.com
- acme.com
invalid_forwarding_domains:
type: array
items:
type: string
example: example.com
description: The list of invalid forwarding domains (if any)
example:
- example.com
- acme.com
missing_domain_orders:
type: array
items:
type: string
example: example.com
description: The list of domains that are missing order (if any). Can happen when you order extra accounts
for domains that you didn't order before.
provider_mismatch_domains:
type: array
items:
type: string
example: example.com
description: The list of domains whose requested `email_provider` does not match the existing active provider
for that domain, or that are already in a mixed provider state in our records. All accounts for a domain
must use the same provider.
unsupported_provider_domains:
type: array
items:
type: string
example: example.com
description: The list of domains that cannot receive extra accounts through this endpoint because their
existing provider is not supported for public API extra-account orders.
unavailable_email_providers:
type: array
items:
type: number
enum:
- 1
- 2
- 3
x-enumDescriptions:
'1': Google
'2': AirMail
'3': Microsoft/Outlook
example: 2
description: The requested email providers that are not available for ordering right now.
example:
- 2
domains_without_accounts:
type: array
items:
type: string
example: example.com
description: The list of domains without accounts (if any). The `accounts` field for items in the `items`
array for these domains was empty.
example:
- example.com
- acme.com
invalid_accounts:
type: array
items:
type: object
properties:
domain:
type: string
description: The domain
example: example.com
first_name:
type: string
description: The account first name
example: John
last_name:
type: string
description: The account last name
example: Doe
email:
type: string
description: The account email
example: john.doe@example.com
reason:
type: string
description: The reason why the account is invalid
example: First name is required
required:
- domain
- first_name
- last_name
- email
- reason
description: The list of invalid accounts (if any)
free_domains:
type: array
items:
type: string
example: example.com
description: The list of domains that are free (domains can be free during promotions)
example:
- example.com
- acme.com
number_of_domains_ordered:
type: number
description: The number of domains ordered
example: 1
number_of_accounts_ordered:
type: number
description: The number of accounts ordered
example: 1
price_per_account_per_month:
type:
- 'null'
- number
description: Legacy monthly price charged per mailbox. Null for mixed mailbox-provider orders; use `price_per_account_per_month_by_account_type`
and `order_items[].accounts[].price` for provider-specific prices. For Microsoft/Outlook orders mailboxes
are NOT charged individually — see `price_per_domain_per_month` instead.
example: null
price_per_account_per_month_by_account_type:
type: object
additionalProperties:
type: number
examples:
- 4
example: 4
description: Provider-specific monthly mailbox prices keyed by account type. Present when the order contains
per-account providers with different mailbox prices.
example:
'1': 5
'2': 4
price_per_domain_per_month:
type:
- 'null'
- number
description: 'The monthly price charged per domain. Populated only when the order contains Microsoft/Outlook
items (domain-level billing: $20/month/domain for 50-100 mailboxes). Null for Google / AirMail-only
orders.'
example: 20
price_per_domain_per_year:
type: number
description: The price per domain per year
example: 100
total_domains_price_per_year:
type: number
description: The total price per domain per year
example: 100
total_accounts_price_per_month:
type: number
description: The total monthly price charged for accounts in the order. For Google / AirMail this is `per-account
price × mailbox count`. For Microsoft/Outlook it is `$20 × domain count` (domain-level billing for 50-100
mailboxes per domain).
example: 10
total_price_per_month:
type: number
description: The total price per month you will have to pay for the order
example: 100
total_price_per_year:
type: number
description: The total price per year you will have to pay for the order
example: 100
total_price:
type: number
description: The total price you will have to pay for the order at the moment. This is the sum of the
`total_accounts_price_per_month` and the `total_domains_price_per_year` fields.
example: 100
total_discount:
type: number
description: The total discount you will get for the order at the moment. Discounts are applied automatically
when we're running promotions.
example: 100
payment_method_last_4_digits:
type: string
description: The last 4 digits of the payment method used for the order
example: '1234'
payment_method_brand:
type: string
description: The brand of the payment method used for the order
example: Visa
payment_method_name_on_card:
type: string
description: The name on the card used for the order
example: John Doe
checkout_required:
type: boolean
description: Whether the order requires payment through a hosted checkout before it can be placed.
example: true
checkout_url:
type: string
description: The hosted checkout URL. Returned only for browser-authenticated orders that require a payment
method.
example: https://checkout.stripe.com/c/pay/example
cart_order_id:
type: string
description: The identifier used to fulfill the order after hosted checkout payment succeeds.
example: 123e4567-e89b-12d3-a456-426614174000
simulation:
type: boolean
description: Whether to run the request in simulation mode or not. If set to true, the order will NOT
be placed, your card will NOT be charged, and only a price quote will be returned. We will still check
the validity of the order and the accounts, and return the results of the validation (if the order_is_valid
field is true, then the order would be valid and could be placed).
example: true
order_items:
type: array
description: The list of items that were ordered, with the pricing information for each item.
items:
type: object
properties:
domain:
type: string
description: The domain to use for the email accounts.
example: example.com
accounts:
type: array
description: The list of accounts that were ordered for the domain.
items:
type: object
properties:
email_address_prefix:
type: string
description: The email address prefix of the account.
example: john.doe
first_name:
type: string
description: The account first name.
example: John
last_name:
type: string
description: The account last name.
example: Doe
required:
- email_address_prefix
- first_name
- last_name
email_provider:
type: number
description: 'The mailbox product to order. Defaults to Google when omitted.
Options:
- 1: Google. Up to 5 mailboxes per domain; priced per mailbox monthly.
- 2: AirMail. Up to 5 mailboxes per domain; priced per mailbox monthly.
- 3: Microsoft/Outlook. 50-100 mailboxes per new DFY domain; priced per domain monthly.'
enum:
- 1
- 2
- 3
x-enumDescriptions:
'1': Google
'2': AirMail
'3': Microsoft/Outlook
example: 1
forwarding_domain:
type: string
description: The forwarding domain to use for the domain.
example: example.com
domain_price:
type: number
description: The price for the domain.
example: 100
accounts_price:
type: number
description: The total price for the accounts in the item. For Google / AirMail this is `per-account
price × mailbox count`. For Microsoft/Outlook it is the flat `$20` per-domain bundle.
example: 20
domain_monthly_price:
type:
- 'null'
- number
description: The monthly price for the domain bundle. Populated only for providers whose billing
is domain-level (Microsoft/Outlook — $20/month/domain, 50-100 mailboxes). Null for per-account
providers.
example: 20
total_price:
type: number
description: The total price for the item.
example: 100
total_discount:
type: number
description: The total discount for the item.
example: 100
required:
- domain
- accounts
- email_provider
- domain_price
- accounts_price
- total_price
- total_discount
required:
- order_placed
- order_is_valid
- unavailable_domains
- blacklist_domains
- invalid_domains
- invalid_forwarding_domains
- invalid_accounts
- missing_domain_orders
- provider_mismatch_domains
- unsupported_provider_domains
- unavailable_email_providers
- domains_without_accounts
- free_domains
- number_of_domains_ordered
- number_of_accounts_ordered
- price_per_account_per_month
- price_per_domain_per_year
- total_domains_price_per_year
- total_accounts_price_per_month
- total_price_per_month
- total_price_per_year
- total_price
- total_discount
- simulation
- order_items
- payment_method_last_4_digits
- payment_method_brand
- payment_method_name_on_card
'401':
description: This request is unauthorized (either the Authorization header is missing or invalid, or the API key
has been revoked)
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 401
examples:
- 401
example: 401
error:
type: string
enum:
- Unauthorized
examples:
- Unauthorized
example: Unauthorized
message:
type: string
examples:
- Missing Authorization header
example: Missing Authorization header
required:
- statusCode
- error
- message
'402':
description: This request cannot be fulfilled because the workspace does not have an active paid plan
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 402
examples:
- 402
example: 402
error:
type: string
enum:
- Payment Required
examples:
- Payment Required
example: Payment Required
message:
type: string
examples:
- Workspace does not have an active paid plan
example: Workspace does not have an active paid plan
required:
- statusCode
- error
- message
'404':
description: The requested resource was not found
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 404
examples:
- 404
example: 404
error:
type: string
enum:
- Not Found
examples:
- Not Found
example: Not Found
message:
type: string
examples:
- Resource not found
example: Resource not found
required:
- statusCode
- error
- message
'429':
description: You have exceeded the rate limit. Please check the rate limit docs for more information.
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 429
examples:
- 429
example: 429
error:
type: string
enum:
- Too Many Requests
examples:
- Too Many Requests
example: Too Many Requests
message:
type: string
examples:
- Rate limit exceeded
example: Rate limit exceeded
required:
- statusCode
- error
- message
get:
operationId: listDFYEmailAccountOrder
summary: List dfy email account order
tags:
- DFYEmailAccountOrder
description: 'Requires one of the following scopes: `dfy_email_account_orders:read`, `dfy_email_account_orders:all`,
`all:read`, `all:all`'
parameters:
- schema:
type: integer
minimum: 1
maximum: 100
example: 10
example: 10
in: query
name: limit
required: false
description: The number of items to return
- schema:
type: string
example: 01956fbd-0eb1-72db-a565-82977a586084
example: 01956fbd-0eb1-72db-a565-82977a586084
in: query
name: starting_after
required: false
description: The ID of the last item in the previous page - used for pagination. You can use the value of the `next_starting_after`
field from the previous response.
responses:
'200':
description: The list of DFY Email Account Order
content:
application/json:
schema:
type: object
properties:
items:
type: array
description: The list of DFY Email Account Order
items:
$ref: '#/components/schemas/DFYEmailAccountOrder'
next_starting_after:
type: string
examples:
- 019ffad2-9be6-7dfb-9fd5-eb4f69b27f33
- '2026-08-13T11:12:14.310Z'
description: The filter for getting the next items after this one, this could either be a UUID, a timestamp,
on an email depending on the specific API
example: 019ffad2-9be6-7dfb-9fd5-eb4f69b27f33
additionalProperties: false
required:
- items
'401':
description: This request is unauthorized (either the Authorization header is missing or invalid, or the API key
has been revoked)
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 401
examples:
- 401
example: 401
error:
type: string
enum:
- Unauthorized
examples:
- Unauthorized
example: Unauthorized
message:
type: string
examples:
- Missing Authorization header
example: Missing Authorization header
required:
- statusCode
- error
- message
'402':
description: This request cannot be fulfilled because the workspace does not have an active paid plan
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 402
examples:
- 402
example: 402
error:
type: string
enum:
- Payment Required
examples:
- Payment Required
example: Payment Required
message:
type: string
examples:
- Workspace does not have an active paid plan
example: Workspace does not have an active paid plan
required:
- statusCode
- error
- message
'404':
description: The requested resource was not found
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 404
examples:
- 404
example: 404
error:
type: string
enum:
- Not Found
examples:
- Not Found
example: Not Found
message:
type: string
examples:
- Resource not found
example: Resource not found
required:
- statusCode
- error
- message
'429':
description: You have exceeded the rate limit. Please check the rate limit docs for more information.
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 429
examples:
- 429
example: 429
error:
type: string
enum:
- Too Many Requests
examples:
- Too Many Requests
example: Too Many Requests
message:
type: string
examples:
- Rate limit exceeded
example: Rate limit exceeded
required:
- statusCode
- error
- message
/api/v2/dfy-email-account-orders/domains/similar:
post:
operationId: generateSimilarDomains
summary: Generate similar available domains
tags:
- DFYEmailAccountOrder
description: 'This endpoint will generate a list of similar AND available domains based on the provided domain.. It
will return a maximum number of 67 suggestions per extension (tld) requested.. All the returned domains will be available
for order.. Domains containing trademarks of well-known companies are restricted and cannot be ordered.
Requires one of the following scopes: `dfy_email_account_orders:create`, `dfy_email_account_orders:all`, `all:create`,
`all:all`'
requestBody:
content:
application/json:
schema:
type: object
properties:
domain:
type: string
description: The domain to base the suggestions on
example: example.com
tlds:
type: array
description: The extensions (tlds) to use for generating similar domains. By default, we will use com and
org.
items:
type: string
enum:
- com
- org
maximum: 2
x-enumDescriptions:
com: .com domain
org: .org domain
example: com
default:
- com
- org
required:
- domain
required: true
responses:
'200':
description: Default Response
content:
application/json:
schema:
type: object
properties:
domains:
type: array
items:
type: string
example: acme.com
description: List of similar and available domains
'400':
description: Default Response
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
example: 400
error:
type: string
example: Bad Request
message:
type: string
example: 'The provided domain contains a restricted keyword: "example". Please choose another domain.'
code:
type: string
enum:
- restricted_domain
example: restricted_domain
keyword:
type: string
example: example
'401':
description: This request is unauthorized (either the Authorization header is missing or invalid, or the API key
has been revoked)
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 401
examples:
- 401
example: 401
error:
type: string
enum:
- Unauthorized
examples:
- Unauthorized
example: Unauthorized
message:
type: string
examples:
- Missing Authorization header
example: Missing Authorization header
required:
- statusCode
- error
- message
'402':
description: This request cannot be fulfilled because the workspace does not have an active paid plan
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 402
examples:
- 402
example: 402
error:
type: string
enum:
- Payment Required
examples:
- Payment Required
example: Payment Required
message:
type: string
examples:
- Workspace does not have an active paid plan
example: Workspace does not have an active paid plan
required:
- statusCode
- error
- message
'404':
description: The requested resource was not found
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 404
examples:
- 404
example: 404
error:
type: string
enum:
- Not Found
examples:
- Not Found
example: Not Found
message:
type: string
examples:
- Resource not found
example: Resource not found
required:
- statusCode
- error
- message
'429':
description: You have exceeded the rate limit. Please check the rate limit docs for more information.
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 429
examples:
- 429
example: 429
error:
type: string
enum:
- Too Many Requests
examples:
- Too Many Requests
example: Too Many Requests
message:
type: string
examples:
- Rate limit exceeded
example: Rate limit exceeded
required:
- statusCode
- error
- message
/api/v2/dfy-email-account-orders/domains/check:
post:
operationId: checkDomainsAvailability
summary: Check domains availability
tags:
- DFYEmailAccountOrder
description: 'This endpoint will check the availability of the provided domains.. It will return a list of domains with
their availability status.
. The only supported extensions (tlds) are: .com, .org.
. Domains containing trademarks of well-known companies are restricted and cannot be ordered.
. Please do not abuse this endpoint and do not use it for anything other than checking availability before ordering
a domain.. This request has a rate limit of 30 request per minute, or 900 requests per hour.
Requires one of the following scopes: `dfy_email_account_orders:create`, `dfy_email_account_orders:all`, `all:create`,
`all:all`'
requestBody:
content:
application/json:
schema:
type: object
properties:
domains:
type: array
description: List of domains to check
items:
type: string
example: example.com
maxItems: 50
required:
- domains
required: true
responses:
'200':
description: Default Response
content:
application/json:
schema:
type: object
properties:
results:
type: array
items:
type: object
properties:
domain:
type: string
description: The domain name
example: example.com
available:
type: boolean
description: Whether the domain is available or not
example: true
unavailable_reason:
type: string
enum:
- restricted
description: Present when a domain is unavailable because it is restricted
example: restricted
restricted_keyword:
type: string
description: The restricted keyword matched when `unavailable_reason` is `restricted`
example: equifax
description: List of domains with their availability status
'401':
description: This request is unauthorized (either the Authorization header is missing or invalid, or the API key
has been revoked)
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 401
examples:
- 401
example: 401
error:
type: string
enum:
- Unauthorized
examples:
- Unauthorized
example: Unauthorized
message:
type: string
examples:
- Missing Authorization header
example: Missing Authorization header
required:
- statusCode
- error
- message
'402':
description: This request cannot be fulfilled because the workspace does not have an active paid plan
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 402
examples:
- 402
example: 402
error:
type: string
enum:
- Payment Required
examples:
- Payment Required
example: Payment Required
message:
type: string
examples:
- Workspace does not have an active paid plan
example: Workspace does not have an active paid plan
required:
- statusCode
- error
- message
'404':
description: The requested resource was not found
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 404
examples:
- 404
example: 404
error:
type: string
enum:
- Not Found
examples:
- Not Found
example: Not Found
message:
type: string
examples:
- Resource not found
example: Resource not found
required:
- statusCode
- error
- message
'429':
description: You have exceeded the rate limit. Please check the rate limit docs for more information.
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 429
examples:
- 429
example: 429
error:
type: string
enum:
- Too Many Requests
examples:
- Too Many Requests
example: Too Many Requests
message:
type: string
examples:
- Rate limit exceeded
example: Rate limit exceeded
required:
- statusCode
- error
- message
/api/v2/dfy-email-account-orders/domains/pre-warmed-up-list:
post:
operationId: preWarmedUpDomainsList
summary: Get pre-warmed up domains
tags:
- DFYEmailAccountOrder
description: 'This endpoint will return a list of pre-warmed up domains available for order.
These domains are set
up and configured in advance, allowing for quick deployment of email services.
Use this endpoint to retrieve available
pre-warmed up domains before placing an order.
IMPORTANT: if the endpoint returns a list of empty domains
- it''s not a bug, please don''t retry right away or report this as a bug - it simply means that there are no available
pre-warmed up domains at the moment.
Requires one of the following scopes: `dfy_email_account_orders:read`, `dfy_email_account_orders:all`, `all:read`,
`all:all`'
requestBody:
content:
application/json:
schema:
type: object
properties:
extensions:
type: array
description: A list of domain extensions to filter the results by. If not provided, all available extensions
will be returned.
items:
type: string
enum:
- com
- org
- co
x-enumDescriptions:
com: .com domain
org: .org domain
co: .co domain
example: com
default:
- com
- org
- co
search:
type: string
description: A search string to filter the domains by. This can be a partial or full domain name.
example: acme.com
description: This endpoint does not require any parameters in the request body.
description: This endpoint does not require any parameters in the request body.
responses:
'200':
description: Default Response
content:
application/json:
schema:
type: object
properties:
domains:
type: array
items:
type: string
example: acme.com
description: List of pre-warmed up domains available for order
domains_with_type:
type: array
items:
type: object
properties:
domain:
type: string
example: acme.com
account_type:
type: number
description: 'The mailbox product to order. Defaults to Google when omitted.
Options:
- 1: Google. Up to 5 mailboxes per domain; priced per mailbox monthly.
- 2: AirMail. Up to 5 mailboxes per domain; priced per mailbox monthly.
- 3: Microsoft/Outlook. 50-100 mailboxes per new DFY domain; priced per domain monthly.'
enum:
- 1
- 2
- 3
x-enumDescriptions:
'1': Google
'2': AirMail
'3': Microsoft/Outlook
example: 2
required:
- domain
- account_type
description: Pre-warmed up domains annotated with their underlying email provider
'401':
description: This request is unauthorized (either the Authorization header is missing or invalid, or the API key
has been revoked)
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 401
examples:
- 401
example: 401
error:
type: string
enum:
- Unauthorized
examples:
- Unauthorized
example: Unauthorized
message:
type: string
examples:
- Missing Authorization header
example: Missing Authorization header
required:
- statusCode
- error
- message
'402':
description: This request cannot be fulfilled because the workspace does not have an active paid plan
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 402
examples:
- 402
example: 402
error:
type: string
enum:
- Payment Required
examples:
- Payment Required
example: Payment Required
message:
type: string
examples:
- Workspace does not have an active paid plan
example: Workspace does not have an active paid plan
required:
- statusCode
- error
- message
'404':
description: The requested resource was not found
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 404
examples:
- 404
example: 404
error:
type: string
enum:
- Not Found
examples:
- Not Found
example: Not Found
message:
type: string
examples:
- Resource not found
example: Resource not found
required:
- statusCode
- error
- message
'429':
description: You have exceeded the rate limit. Please check the rate limit docs for more information.
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 429
examples:
- 429
example: 429
error:
type: string
enum:
- Too Many Requests
examples:
- Too Many Requests
example: Too Many Requests
message:
type: string
examples:
- Rate limit exceeded
example: Rate limit exceeded
required:
- statusCode
- error
- message
/api/v2/dfy-email-account-orders/accounts:
get:
operationId: listDFYEmailAccountOrdersAccounts
summary: List DFY ordered email accounts
tags:
- DFYEmailAccountOrder
description: 'This endpoint will return a list of DFY email accounts ordered
Requires one of the following scopes: `dfy_email_account_orders:read`, `dfy_email_account_orders:all`, `all:read`,
`all:all`'
parameters:
- schema:
type: integer
minimum: 1
maximum: 100
example: 10
example: 10
in: query
name: limit
required: false
description: The number of items to return
- schema:
type: string
example: 01956fbd-0eb1-72db-a565-82977a586084
example: 01956fbd-0eb1-72db-a565-82977a586084
in: query
name: starting_after
required: false
description: The ID of the last item in the previous page - used for pagination. You can use the value of the `next_starting_after`
field from the previous response.
- schema:
type: boolean
example: true
examples:
'true':
value: true
'false':
value: false
in: query
name: with_passwords
required: false
description: Whether to include passwords in the response
responses:
'200':
description: The list of accounts
content:
application/json:
schema:
type: object
properties:
items:
type: array
description: The list of accounts
items:
type: object
properties:
id:
type: string
description: The unique identifier of the email account order
examples:
- 123e4567-e89b-12d3-a456-426614174000
example: 123e4567-e89b-12d3-a456-426614174000
domain:
type: string
description: The domain associated with the email account
examples:
- example.com
example: example.com
email:
type: string
description: The email address of the account
examples:
- user@example.com
example: user@example.com
email_provider:
type: number
description: 'The mailbox product to order. Defaults to Google when omitted.
Options:
- 1: Google. Up to 5 mailboxes per domain; priced per mailbox monthly.
- 2: AirMail. Up to 5 mailboxes per domain; priced per mailbox monthly.
- 3: Microsoft/Outlook. 50-100 mailboxes per new DFY domain; priced per domain monthly.'
enum:
- 1
- 2
- 3
x-enumDescriptions:
'1': Google
'2': AirMail
'3': Microsoft/Outlook
examples:
- 1
example: 1
first_name:
type: string
description: The first name of the account
examples:
- John
example: John
last_name:
type: string
description: The last name of the account
examples:
- Doe
example: Doe
is_pre_warmed_up:
type: boolean
description: Whether the account is pre-warmed up
examples:
- true
- false
example: true
timestamp_cancelled:
type: string
description: The timestamp when the account was cancelled
examples:
- '2025-01-01T00:00:00.000Z'
example: '2025-01-01T00:00:00.000Z'
timestamp_created:
type: string
description: The timestamp when the account was created
examples:
- '2025-01-01T00:00:00.000Z'
example: '2025-01-01T00:00:00.000Z'
password:
type: string
description: The password of the account (returned only if `with_passwords` is true). This field
can be empty if the accounts are not ready yet.
examples:
- password
example: password
required:
- id
- domain
- email
- email_provider
- first_name
- last_name
- is_pre_warmed_up
- timestamp_cancelled
- timestamp_created
next_starting_after:
type: string
description: The filter for getting the next items after this one, this could either be a UUID, a timestamp,
on an email depending on the specific API
examples:
- 123e4567-e89b-12d3-a456-426614174000:2025-01-01T00:00:00.000Z
example: 123e4567-e89b-12d3-a456-426614174000:2025-01-01T00:00:00.000Z
additionalProperties: false
required:
- items
'401':
description: This request is unauthorized (either the Authorization header is missing or invalid, or the API key
has been revoked)
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 401
examples:
- 401
example: 401
error:
type: string
enum:
- Unauthorized
examples:
- Unauthorized
example: Unauthorized
message:
type: string
examples:
- Missing Authorization header
example: Missing Authorization header
required:
- statusCode
- error
- message
'402':
description: This request cannot be fulfilled because the workspace does not have an active paid plan
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 402
examples:
- 402
example: 402
error:
type: string
enum:
- Payment Required
examples:
- Payment Required
example: Payment Required
message:
type: string
examples:
- Workspace does not have an active paid plan
example: Workspace does not have an active paid plan
required:
- statusCode
- error
- message
'404':
description: The requested resource was not found
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 404
examples:
- 404
example: 404
error:
type: string
enum:
- Not Found
examples:
- Not Found
example: Not Found
message:
type: string
examples:
- Resource not found
example: Resource not found
required:
- statusCode
- error
- message
'429':
description: You have exceeded the rate limit. Please check the rate limit docs for more information.
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 429
examples:
- 429
example: 429
error:
type: string
enum:
- Too Many Requests
examples:
- Too Many Requests
example: Too Many Requests
message:
type: string
examples:
- Rate limit exceeded
example: Rate limit exceeded
required:
- statusCode
- error
- message
/api/v2/dfy-email-account-orders/accounts/cancel:
post:
operationId: cancelDFYEmailAccounts
summary: Cancel dfy email accounts
tags:
- DFYEmailAccountOrder
description: 'This endpoint will cancel the DFY email accounts based on the provided email addresses. Cancelling permanently
deletes all Unibox emails and conversations associated with the cancelled accounts. This cannot be undone.
Requires one of the following scopes: `dfy_email_account_orders:delete`, `dfy_email_account_orders:all`, `all:delete`,
`all:all`'
requestBody:
content:
application/json:
schema:
type: object
properties:
accounts:
type: array
items:
type: string
example: test@test.com
minItems: 1
description: List of emails to cancel the DFY email accounts for.
required:
- accounts
required: true
responses:
'200':
description: Default Response
content:
application/json:
schema:
type: object
properties:
items:
type: array
description: The list of cancelled email accounts.
items:
type: object
properties:
id:
type: string
description: The unique identifier of the email account order
example: 123e4567-e89b-12d3-a456-426614174000
domain:
type: string
description: The domain associated with the email account
example: example.com
email:
type: string
description: The email address of the account
example: user@example.com
email_provider:
type: number
description: 'The mailbox product to order. Defaults to Google when omitted.
Options:
- 1: Google. Up to 5 mailboxes per domain; priced per mailbox monthly.
- 2: AirMail. Up to 5 mailboxes per domain; priced per mailbox monthly.
- 3: Microsoft/Outlook. 50-100 mailboxes per new DFY domain; priced per domain monthly.'
enum:
- 1
- 2
- 3
x-enumDescriptions:
'1': Google
'2': AirMail
'3': Microsoft/Outlook
example: 1
first_name:
type: string
description: The first name of the account
example: John
last_name:
type: string
description: The last name of the account
example: Doe
is_pre_warmed_up:
type: boolean
description: Whether the account is pre-warmed up
example: true
timestamp_cancelled:
type: string
description: The timestamp when the account was cancelled
example: '2025-01-01T00:00:00.000Z'
timestamp_created:
type: string
description: The timestamp when the account was created
example: '2025-01-01T00:00:00.000Z'
required:
- id
- domain
- email
- email_provider
- first_name
- last_name
- is_pre_warmed_up
- timestamp_cancelled
- timestamp_created
required:
- items
'401':
description: This request is unauthorized (either the Authorization header is missing or invalid, or the API key
has been revoked)
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 401
examples:
- 401
example: 401
error:
type: string
enum:
- Unauthorized
examples:
- Unauthorized
example: Unauthorized
message:
type: string
examples:
- Missing Authorization header
example: Missing Authorization header
required:
- statusCode
- error
- message
'402':
description: This request cannot be fulfilled because the workspace does not have an active paid plan
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 402
examples:
- 402
example: 402
error:
type: string
enum:
- Payment Required
examples:
- Payment Required
example: Payment Required
message:
type: string
examples:
- Workspace does not have an active paid plan
example: Workspace does not have an active paid plan
required:
- statusCode
- error
- message
'404':
description: The requested resource was not found
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 404
examples:
- 404
example: 404
error:
type: string
enum:
- Not Found
examples:
- Not Found
example: Not Found
message:
type: string
examples:
- Resource not found
example: Resource not found
required:
- statusCode
- error
- message
'429':
description: You have exceeded the rate limit. Please check the rate limit docs for more information.
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 429
examples:
- 429
example: 429
error:
type: string
enum:
- Too Many Requests
examples:
- Too Many Requests
example: Too Many Requests
message:
type: string
examples:
- Rate limit exceeded
example: Rate limit exceeded
required:
- statusCode
- error
- message
/api/v2/emails/test:
post:
operationId: sendTestEmail
summary: Send a test email
tags:
- Email
description: 'Send a preview/test email without creating an email entity in Unibox. Rate limit: 10 requests per minute
per workspace.
Requires one of the following scopes: `emails:create`, `emails:all`, `all:create`, `all:all`'
requestBody:
content:
application/json:
schema:
type: object
properties:
eaccount:
type: string
description: The email account that will be used to send this email. It has to be an email account connected
to your workspace.
example: jondoe@example.com
to_address_email_list:
type: string
description: Comma-separated list of recipients that will receive the test email.
example: recipient@example.com,recipient2@example.com
subject:
type: string
description: Subject line of the test email.
example: Test email subject
body:
type: object
description: HTML body of the test email. Use `
` tags for delivered email line breaks.
properties:
html:
type: string
description: HTML body of the test email. Use `
` tags for delivered email line breaks.
example: This is a test email.
Second line.
required:
- html
required:
- eaccount
- to_address_email_list
- subject
- body
required: true
responses:
'200':
description: Default Response
content:
application/json:
schema:
oneOf:
- type: object
properties:
status:
type: string
enum:
- success
examples:
- success
example: success
required:
- status
- type: object
properties:
error:
type: string
enum:
- ACC_AUTH_ERROR
- ACC_NOT_FOUND
- ACC_UNKNOWN_ERROR
examples:
- ACC_AUTH_ERROR
example: ACC_AUTH_ERROR
required:
- error
'401':
description: This request is unauthorized (either the Authorization header is missing or invalid, or the API key
has been revoked)
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 401
examples:
- 401
example: 401
error:
type: string
enum:
- Unauthorized
examples:
- Unauthorized
example: Unauthorized
message:
type: string
examples:
- Missing Authorization header
example: Missing Authorization header
required:
- statusCode
- error
- message
'402':
description: This request cannot be fulfilled because the workspace does not have an active paid plan
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 402
examples:
- 402
example: 402
error:
type: string
enum:
- Payment Required
examples:
- Payment Required
example: Payment Required
message:
type: string
examples:
- Workspace does not have an active paid plan
example: Workspace does not have an active paid plan
required:
- statusCode
- error
- message
'404':
description: The requested resource was not found
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 404
examples:
- 404
example: 404
error:
type: string
enum:
- Not Found
examples:
- Not Found
example: Not Found
message:
type: string
examples:
- Resource not found
example: Resource not found
required:
- statusCode
- error
- message
'429':
description: You have exceeded the rate limit. Please check the rate limit docs for more information.
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 429
examples:
- 429
example: 429
error:
type: string
enum:
- Too Many Requests
examples:
- Too Many Requests
example: Too Many Requests
message:
type: string
examples:
- Rate limit exceeded
example: Rate limit exceeded
required:
- statusCode
- error
- message
/api/v2/emails/reply:
post:
operationId: replyToEmail
summary: Reply to an email
tags:
- Email
description: 'Send a reply to an email. This endpoint can be used to send an email only as a reply to an existing email.
In order to reply to an email, please specify the `reyply_to_uuid` field, and your email will be sent as a reply to
that email. The `reyply_to_uuid` field represents the `id` field of an existing email, which is being returned to
you in all the `/email` endpoints
Requires one of the following scopes: `emails:create`, `emails:all`, `all:create`, `all:all`'
requestBody:
content:
application/json:
schema:
type: object
properties:
eaccount:
type: string
description: The email account that will be used to send this email. It has to be an email account connected
to your workspace
example: jondoe@example.com
reply_to_uuid:
type: string
description: The id of the email to reply to
example: 123e4567-e89b-12d3-a456-426614174000
subject:
type: string
description: Subject line of the email message
example: 'Re: Your inquiry'
body:
description: The email body. You can specify either the `html` or the `text` field, or both. Use `
`
tags for delivered email line breaks.
type: object
properties:
html:
type: string
description: HTML body of the email message. Use `
` tags for delivered email line breaks.
example: Hello, how are you?
Looking forward to hearing from you.
text:
type: string
description: Text body of the email message. For delivered email line breaks, use `html` with `
`
tags.
example: Hello, how are you?
additional_recipients:
type: array
items:
type: string
format: email
example: recipient@example.com
description: Optional list of extra recipient email addresses to include in the reply, in addition to the
default recipient (the sender of the email being replied to).
example:
- recipient@example.com
cc_address_email_list:
type: string
description: Comma-separated list of CC email addresses
example: cc@example.com
bcc_address_email_list:
type: string
description: Comma-separated list of BCC email addresses
example: bcc@example.com
reminder_ts:
type: string
format: date-time
description: If provided then a reminder will be attached to this email, you will see this reminder in the
Unibox in the web app
example: '2026-08-13T11:12:14.329Z'
assigned_to:
type: string
format: uuid
description: The user id assigned to the lead
example: 019ffad2-9bf9-7714-aea0-ea27573f0b7e
required:
- reply_to_uuid
- eaccount
- subject
- body
required: true
responses:
'200':
description: The requested Email
content:
application/json:
schema:
$ref: '#/components/schemas/Email'
'401':
description: This request is unauthorized (either the Authorization header is missing or invalid, or the API key
has been revoked)
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 401
examples:
- 401
example: 401
error:
type: string
enum:
- Unauthorized
examples:
- Unauthorized
example: Unauthorized
message:
type: string
examples:
- Missing Authorization header
example: Missing Authorization header
required:
- statusCode
- error
- message
'402':
description: This request cannot be fulfilled because the workspace does not have an active paid plan
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 402
examples:
- 402
example: 402
error:
type: string
enum:
- Payment Required
examples:
- Payment Required
example: Payment Required
message:
type: string
examples:
- Workspace does not have an active paid plan
example: Workspace does not have an active paid plan
required:
- statusCode
- error
- message
'404':
description: The requested resource was not found
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 404
examples:
- 404
example: 404
error:
type: string
enum:
- Not Found
examples:
- Not Found
example: Not Found
message:
type: string
examples:
- Resource not found
example: Resource not found
required:
- statusCode
- error
- message
'429':
description: You have exceeded the rate limit. Please check the rate limit docs for more information.
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 429
examples:
- 429
example: 429
error:
type: string
enum:
- Too Many Requests
examples:
- Too Many Requests
example: Too Many Requests
message:
type: string
examples:
- Rate limit exceeded
example: Rate limit exceeded
required:
- statusCode
- error
- message
/api/v2/emails/forward:
post:
operationId: forwardEmail
summary: Forward an email
tags:
- Email
description: 'Forward an existing email to another recipient. You must specify the `reply_to_uuid` field, which represents
the `id` of an existing email returned by the `/emails` endpoints. By default only the provided body is sent. Set
`include_original_body` to `true` to append the original email context.
Requires one of the following scopes: `emails:create`, `emails:all`, `all:create`, `all:all`'
requestBody:
content:
application/json:
schema:
type: object
properties:
eaccount:
type: string
description: The email account that will be used to send this email. It has to be an email account connected
to your workspace
example: jondoe@example.com
reply_to_uuid:
type: string
description: The id of the email you want to forward
example: 123e4567-e89b-12d3-a456-426614174000
to_address_email_list:
type: string
description: Comma-separated list of recipients that will receive the forwarded email
example: recipient@example.com
subject:
type: string
description: Subject line of the forwarded email message
example: 'Fwd: Interesting update'
body:
type: object
description: Optional body content for the forwarded email. When `include_original_body` is `true`, this
can be used as a note before the appended original email content. You can specify either the `html` or
the `text` field, or both. For HTML content, Use `
` tags for delivered email line breaks. For text
content, Newline characters are preserved as delivered line breaks.
properties:
html:
type: string
description: HTML body of the forwarded email. Use `
` tags for delivered email line breaks.
example: Sharing this with you.
Let me know what you think.
text:
type: string
description: Text body of the forwarded email. Newline characters are preserved as delivered line breaks.
example: Sharing this with you.
cc_address_email_list:
type: string
description: Comma-separated list of CC email addresses
example: cc@example.com
bcc_address_email_list:
type: string
description: Comma-separated list of BCC email addresses
example: bcc@example.com
reply_to:
type: string
format: email
description: Reply-to email address that recipients should use when replying
example: reply@example.com
forwarded_attachments:
type: string
description: JSON-encoded forwarded attachment metadata from the original email
example: '[{"filename":"attachment.pdf","url":"https://cdn.instantly.ai/example-attachment/file.pdf"}]'
include_original_body:
type: boolean
description: 'When true, append the original email headers and content after the provided body. Default:
false.'
example: true
assigned_to:
type: string
format: uuid
description: The user id assigned to the lead
example: 019ffad2-9bf9-7714-aea0-ea28a73066ef
required:
- reply_to_uuid
- to_address_email_list
- eaccount
- subject
anyOf:
- required:
- body
properties:
body:
type: object
properties:
html:
type: string
text:
type: string
anyOf:
- required:
- html
properties:
html:
type: string
minLength: 1
- required:
- text
properties:
text:
type: string
minLength: 1
- required:
- include_original_body
properties:
include_original_body:
type: boolean
enum:
- true
required: true
responses:
'200':
description: The requested Email
content:
application/json:
schema:
$ref: '#/components/schemas/Email'
'401':
description: This request is unauthorized (either the Authorization header is missing or invalid, or the API key
has been revoked)
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 401
examples:
- 401
example: 401
error:
type: string
enum:
- Unauthorized
examples:
- Unauthorized
example: Unauthorized
message:
type: string
examples:
- Missing Authorization header
example: Missing Authorization header
required:
- statusCode
- error
- message
'402':
description: This request cannot be fulfilled because the workspace does not have an active paid plan
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 402
examples:
- 402
example: 402
error:
type: string
enum:
- Payment Required
examples:
- Payment Required
example: Payment Required
message:
type: string
examples:
- Workspace does not have an active paid plan
example: Workspace does not have an active paid plan
required:
- statusCode
- error
- message
'404':
description: The requested resource was not found
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 404
examples:
- 404
example: 404
error:
type: string
enum:
- Not Found
examples:
- Not Found
example: Not Found
message:
type: string
examples:
- Resource not found
example: Resource not found
required:
- statusCode
- error
- message
'429':
description: You have exceeded the rate limit. Please check the rate limit docs for more information.
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 429
examples:
- 429
example: 429
error:
type: string
enum:
- Too Many Requests
examples:
- Too Many Requests
example: Too Many Requests
message:
type: string
examples:
- Rate limit exceeded
example: Rate limit exceeded
required:
- statusCode
- error
- message
/api/v2/emails:
get:
operationId: listEmail
summary: List email
tags:
- Email
description: '**Rate Limit:** This endpoint has a rate limit of 20 requests per minute, unlike other API endpoints.
Requires one of the following scopes: `emails:read`, `emails:all`, `all:read`, `all:all`'
parameters:
- schema:
type: integer
minimum: 1
maximum: 100
example: 10
example: 10
in: query
name: limit
required: false
description: The number of items to return
- schema:
type: string
example: 01956fbd-0eb1-72db-a565-82977a586084
example: 01956fbd-0eb1-72db-a565-82977a586084
in: query
name: starting_after
required: false
description: The ID of the last item in the previous page - used for pagination. You can use the value of the `next_starting_after`
field from the previous response.
- schema:
type: string
example: search term
example: search term
in: query
name: search
required: false
description: The search query to filter emails. It can be an email address (the lead email address), or a special
string that starts with "thread:" to search for emails in a specific thread. If you want to search for emails in
a specific thread, use the "thread:" prefix followed by the thread ID (e.g., "thread:123e4567-e89b-12d3-a456-426614174000").
- schema:
type: string
format: uuid
example: 123e4567-e89b-12d3-a456-426614174000
example: 123e4567-e89b-12d3-a456-426614174000
in: query
name: campaign_id
required: false
description: The ID of the campaign to filter emails by.
- schema:
type: string
format: uuid
example: 123e4567-e89b-12d3-a456-426614174000
example: 123e4567-e89b-12d3-a456-426614174000
in: query
name: list_id
required: false
description: The ID of the lead list to filter emails by.
- schema:
type: number
example: 1
examples:
'1':
value: 1
'2':
value: 2
'3':
value: 3
in: query
name: i_status
required: false
description: The status of the emails to filter by.
- schema:
type: string
example: jon@example.com
examples:
jon@example.com:
value: jon@example.com
jon@example.com,alex@example.com:
value: jon@example.com,alex@example.com
in: query
name: eaccount
required: false
description: The email account that was used to send this email. You can filter by multiple email accounts by providing
a comma-separated list of email addresses.
- schema:
type: boolean
example: true
examples:
'true':
value: true
'false':
value: false
in: query
name: is_unread
required: false
description: Whether the email is unread.
- schema:
type: boolean
example: true
examples:
'true':
value: true
'false':
value: false
in: query
name: has_reminder
required: false
- schema:
type: string
enum:
- emode_focused
- emode_others
- emode_all
example: emode_focused
example: emode_focused
in: query
name: mode
required: false
description: The mode to filter emails by.
- schema:
type: boolean
example: true
examples:
'true':
value: true
'false':
value: false
in: query
name: preview_only
required: false
description: Whether to only return the preview of the emails.
- schema:
type: string
enum:
- asc
- desc
example: asc
examples:
asc:
value: asc
desc:
value: desc
in: query
name: sort_order
required: false
description: The order to sort the emails by (based on the email creation date). Default is "desc".
- schema:
type: boolean
example: true
examples:
'true':
value: true
'false':
value: false
in: query
name: scheduled_only
required: false
description: Whether to only return the scheduled emails.
- schema:
type: string
example: 123e4567-e89b-12d3-a456-426614174000
example: 123e4567-e89b-12d3-a456-426614174000
in: query
name: assigned_to
required: false
description: The ID of the user to filter emails by.
- schema:
type: string
example: jondoe@example.com
example: jondoe@example.com
in: query
name: lead
required: false
description: The email of the lead to filter emails by.
- schema:
type: string
example: example.com
example: example.com
in: query
name: company_domain
required: false
description: The domain of the company to filter emails by.
- schema:
type: boolean
example: true
examples:
'true':
value: true
'false':
value: false
in: query
name: marked_as_done
required: false
description: Whether the email is marked as done.
- schema:
type: string
enum:
- received
- sent
- manual
example: received
examples:
received:
value: received
sent:
value: sent
manual:
value: manual
in: query
name: email_type
required: false
description: The type of the email to filter by.
- schema:
type: string
example: '2026-08-13T11:12:14.330Z'
example: '2026-08-13T11:12:14.330Z'
in: query
name: min_timestamp_created
required: false
description: Filter emails created after this timestamp (ISO format)
- schema:
type: string
example: '2026-08-13T11:12:14.330Z'
example: '2026-08-13T11:12:14.330Z'
in: query
name: max_timestamp_created
required: false
description: Filter emails created before this timestamp (ISO format)
- schema:
type: boolean
example: true
examples:
'true':
value: true
'false':
value: false
in: query
name: latest_of_thread
required: false
description: Whether to only return the latest email in each thread.
responses:
'200':
description: The list of Email
content:
application/json:
schema:
type: object
properties:
items:
type: array
description: The list of Email
items:
$ref: '#/components/schemas/Email'
next_starting_after:
type: string
examples:
- 019ffad2-9bfa-76fa-903e-f9e449c44ff5
- '2026-08-13T11:12:14.330Z'
description: The filter for getting the next items after this one, this could either be a UUID, a timestamp,
on an email depending on the specific API
example: 019ffad2-9bfa-76fa-903e-f9e449c44ff5
additionalProperties: false
required:
- items
'401':
description: This request is unauthorized (either the Authorization header is missing or invalid, or the API key
has been revoked)
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 401
examples:
- 401
example: 401
error:
type: string
enum:
- Unauthorized
examples:
- Unauthorized
example: Unauthorized
message:
type: string
examples:
- Missing Authorization header
example: Missing Authorization header
required:
- statusCode
- error
- message
'402':
description: This request cannot be fulfilled because the workspace does not have an active paid plan
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 402
examples:
- 402
example: 402
error:
type: string
enum:
- Payment Required
examples:
- Payment Required
example: Payment Required
message:
type: string
examples:
- Workspace does not have an active paid plan
example: Workspace does not have an active paid plan
required:
- statusCode
- error
- message
'404':
description: The requested resource was not found
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 404
examples:
- 404
example: 404
error:
type: string
enum:
- Not Found
examples:
- Not Found
example: Not Found
message:
type: string
examples:
- Resource not found
example: Resource not found
required:
- statusCode
- error
- message
'429':
description: You have exceeded the rate limit. Please check the rate limit docs for more information.
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 429
examples:
- 429
example: 429
error:
type: string
enum:
- Too Many Requests
examples:
- Too Many Requests
example: Too Many Requests
message:
type: string
examples:
- Rate limit exceeded
example: Rate limit exceeded
required:
- statusCode
- error
- message
/api/v2/emails/{id}:
get:
operationId: getEmail
summary: Get email
tags:
- Email
description: 'Requires one of the following scopes: `emails:read`, `emails:all`, `all:read`, `all:all`'
parameters:
- schema:
type: string
format: uuid
example: 019ffad2-9bfb-7349-9fce-172a71e47d90
example: 019ffad2-9bfb-7349-9fce-172a71e47d90
in: path
name: id
required: true
description: The ID of the requested item
responses:
'200':
description: The requested Email
content:
application/json:
schema:
$ref: '#/components/schemas/Email'
'401':
description: This request is unauthorized (either the Authorization header is missing or invalid, or the API key
has been revoked)
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 401
examples:
- 401
example: 401
error:
type: string
enum:
- Unauthorized
examples:
- Unauthorized
example: Unauthorized
message:
type: string
examples:
- Missing Authorization header
example: Missing Authorization header
required:
- statusCode
- error
- message
'402':
description: This request cannot be fulfilled because the workspace does not have an active paid plan
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 402
examples:
- 402
example: 402
error:
type: string
enum:
- Payment Required
examples:
- Payment Required
example: Payment Required
message:
type: string
examples:
- Workspace does not have an active paid plan
example: Workspace does not have an active paid plan
required:
- statusCode
- error
- message
'404':
description: The requested resource was not found
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 404
examples:
- 404
example: 404
error:
type: string
enum:
- Not Found
examples:
- Not Found
example: Not Found
message:
type: string
examples:
- Resource not found
example: Resource not found
required:
- statusCode
- error
- message
'429':
description: You have exceeded the rate limit. Please check the rate limit docs for more information.
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 429
examples:
- 429
example: 429
error:
type: string
enum:
- Too Many Requests
examples:
- Too Many Requests
example: Too Many Requests
message:
type: string
examples:
- Rate limit exceeded
example: Rate limit exceeded
required:
- statusCode
- error
- message
patch:
operationId: patchEmail
summary: Patch email
tags:
- Email
description: 'Requires one of the following scopes: `emails:update`, `emails:all`, `all:update`, `all:all`'
requestBody:
content:
application/json:
schema:
type: object
properties:
is_unread:
type:
- number
- 'null'
description: Indicates if the email is unread
example: 1
reminder_ts:
type:
- string
- 'null'
description: Timestamp for the reminder.
format: date-time
example: '2026-08-13T11:11:58.104Z'
required: []
additionalProperties: false
minProperties: 1
parameters:
- schema:
type: string
format: uuid
example: 019ffad2-9bfb-7349-9fce-172b525f7146
example: 019ffad2-9bfb-7349-9fce-172b525f7146
in: path
name: id
required: true
description: The ID of the item to update
responses:
'200':
description: The updated Email
content:
application/json:
schema:
$ref: '#/components/schemas/Email'
'401':
description: This request is unauthorized (either the Authorization header is missing or invalid, or the API key
has been revoked)
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 401
examples:
- 401
example: 401
error:
type: string
enum:
- Unauthorized
examples:
- Unauthorized
example: Unauthorized
message:
type: string
examples:
- Missing Authorization header
example: Missing Authorization header
required:
- statusCode
- error
- message
'402':
description: This request cannot be fulfilled because the workspace does not have an active paid plan
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 402
examples:
- 402
example: 402
error:
type: string
enum:
- Payment Required
examples:
- Payment Required
example: Payment Required
message:
type: string
examples:
- Workspace does not have an active paid plan
example: Workspace does not have an active paid plan
required:
- statusCode
- error
- message
'404':
description: The requested resource was not found
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 404
examples:
- 404
example: 404
error:
type: string
enum:
- Not Found
examples:
- Not Found
example: Not Found
message:
type: string
examples:
- Resource not found
example: Resource not found
required:
- statusCode
- error
- message
'429':
description: You have exceeded the rate limit. Please check the rate limit docs for more information.
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 429
examples:
- 429
example: 429
error:
type: string
enum:
- Too Many Requests
examples:
- Too Many Requests
example: Too Many Requests
message:
type: string
examples:
- Rate limit exceeded
example: Rate limit exceeded
required:
- statusCode
- error
- message
delete:
operationId: deleteEmail
summary: Delete email
tags:
- Email
description: 'Requires one of the following scopes: `emails:delete`, `emails:all`, `all:delete`, `all:all`'
requestBody:
content:
application/json:
schema:
type: 'null'
example: null
parameters:
- schema:
type: string
format: uuid
example: 019ffad2-9bfc-7100-861f-3daed3baa09b
example: 019ffad2-9bfc-7100-861f-3daed3baa09b
in: path
name: id
required: true
description: The ID of the item to delete
responses:
'200':
description: The deleted Email
content:
application/json:
schema:
$ref: '#/components/schemas/Email'
'401':
description: This request is unauthorized (either the Authorization header is missing or invalid, or the API key
has been revoked)
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 401
examples:
- 401
example: 401
error:
type: string
enum:
- Unauthorized
examples:
- Unauthorized
example: Unauthorized
message:
type: string
examples:
- Missing Authorization header
example: Missing Authorization header
required:
- statusCode
- error
- message
'402':
description: This request cannot be fulfilled because the workspace does not have an active paid plan
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 402
examples:
- 402
example: 402
error:
type: string
enum:
- Payment Required
examples:
- Payment Required
example: Payment Required
message:
type: string
examples:
- Workspace does not have an active paid plan
example: Workspace does not have an active paid plan
required:
- statusCode
- error
- message
'404':
description: The requested resource was not found
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 404
examples:
- 404
example: 404
error:
type: string
enum:
- Not Found
examples:
- Not Found
example: Not Found
message:
type: string
examples:
- Resource not found
example: Resource not found
required:
- statusCode
- error
- message
'429':
description: You have exceeded the rate limit. Please check the rate limit docs for more information.
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 429
examples:
- 429
example: 429
error:
type: string
enum:
- Too Many Requests
examples:
- Too Many Requests
example: Too Many Requests
message:
type: string
examples:
- Rate limit exceeded
example: Rate limit exceeded
required:
- statusCode
- error
- message
/api/v2/emails/unread/count:
get:
operationId: countUnreadEmails
summary: Count unread emails
tags:
- Email
description: 'Requires one of the following scopes: `emails:read`, `emails:all`, `all:read`, `all:all`'
responses:
'200':
description: Default Response
content:
application/json:
schema:
type: object
properties:
count:
type: number
example: 100
'401':
description: This request is unauthorized (either the Authorization header is missing or invalid, or the API key
has been revoked)
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 401
examples:
- 401
example: 401
error:
type: string
enum:
- Unauthorized
examples:
- Unauthorized
example: Unauthorized
message:
type: string
examples:
- Missing Authorization header
example: Missing Authorization header
required:
- statusCode
- error
- message
'402':
description: This request cannot be fulfilled because the workspace does not have an active paid plan
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 402
examples:
- 402
example: 402
error:
type: string
enum:
- Payment Required
examples:
- Payment Required
example: Payment Required
message:
type: string
examples:
- Workspace does not have an active paid plan
example: Workspace does not have an active paid plan
required:
- statusCode
- error
- message
'404':
description: The requested resource was not found
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 404
examples:
- 404
example: 404
error:
type: string
enum:
- Not Found
examples:
- Not Found
example: Not Found
message:
type: string
examples:
- Resource not found
example: Resource not found
required:
- statusCode
- error
- message
'429':
description: You have exceeded the rate limit. Please check the rate limit docs for more information.
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 429
examples:
- 429
example: 429
error:
type: string
enum:
- Too Many Requests
examples:
- Too Many Requests
example: Too Many Requests
message:
type: string
examples:
- Rate limit exceeded
example: Rate limit exceeded
required:
- statusCode
- error
- message
/api/v2/emails/threads/{thread_id}/mark-as-read:
post:
operationId: markThreadAsRead
summary: Mark all emails in a thread as read
tags:
- Email
description: 'Requires one of the following scopes: `emails:update`, `emails:all`, `all:update`, `all:all`'
parameters:
- schema:
type: string
example: 123e4567-e89b-12d3-a456-426614174000
example: 123e4567-e89b-12d3-a456-426614174000
in: path
name: thread_id
required: true
responses:
'200':
description: Default Response
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
example: true
'401':
description: This request is unauthorized (either the Authorization header is missing or invalid, or the API key
has been revoked)
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 401
examples:
- 401
example: 401
error:
type: string
enum:
- Unauthorized
examples:
- Unauthorized
example: Unauthorized
message:
type: string
examples:
- Missing Authorization header
example: Missing Authorization header
required:
- statusCode
- error
- message
'402':
description: This request cannot be fulfilled because the workspace does not have an active paid plan
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 402
examples:
- 402
example: 402
error:
type: string
enum:
- Payment Required
examples:
- Payment Required
example: Payment Required
message:
type: string
examples:
- Workspace does not have an active paid plan
example: Workspace does not have an active paid plan
required:
- statusCode
- error
- message
'404':
description: The requested resource was not found
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 404
examples:
- 404
example: 404
error:
type: string
enum:
- Not Found
examples:
- Not Found
example: Not Found
message:
type: string
examples:
- Resource not found
example: Resource not found
required:
- statusCode
- error
- message
'429':
description: You have exceeded the rate limit. Please check the rate limit docs for more information.
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 429
examples:
- 429
example: 429
error:
type: string
enum:
- Too Many Requests
examples:
- Too Many Requests
example: Too Many Requests
message:
type: string
examples:
- Rate limit exceeded
example: Rate limit exceeded
required:
- statusCode
- error
- message
/api/v2/inbox-placement-analytics:
get:
operationId: listInboxPlacementAnalytics
summary: List inbox placement analytics
tags:
- InboxPlacementAnalytics
description: 'Requires one of the following scopes: `inbox_placement_analytics:read`, `inbox_placement_analytics:all`,
`all:read`, `all:all`'
parameters:
- schema:
type: integer
minimum: 1
maximum: 100
example: 10
example: 10
in: query
name: limit
required: false
description: The number of items to return
- schema:
type: string
example: 01956fbd-0eb1-72db-a565-82977a586084
example: 01956fbd-0eb1-72db-a565-82977a586084
in: query
name: starting_after
required: false
description: The ID of the last item in the previous page - used for pagination. You can use the value of the `next_starting_after`
field from the previous response.
- schema:
type: string
format: uuid
example: 019ffad2-9c10-7031-b800-4c42ddf964b4
example: 019ffad2-9c10-7031-b800-4c42ddf964b4
in: query
name: test_id
required: true
- schema:
type: string
example: '2026-08-13T11:12:14.352Z'
example: '2026-08-13T11:12:14.352Z'
in: query
name: date_from
required: false
- schema:
type: string
example: '2026-08-13T11:12:14.352Z'
example: '2026-08-13T11:12:14.352Z'
in: query
name: date_to
required: false
- schema:
type: string
example: 1,2
example: 1,2
in: query
name: recipient_geo
required: false
description: A comma-separated list of recipient geo values.
- schema:
type: string
example: 1,2
example: 1,2
in: query
name: recipient_type
required: false
description: A comma-separated list of recipient type values.
- schema:
type: string
example: 1,2
example: 1,2
in: query
name: recipient_esp
required: false
description: A comma-separated list of recipient ESP values.
- schema:
type: string
example: john@doe.com
example: john@doe.com
in: query
name: sender_email
required: false
responses:
'200':
description: The list of Inbox Placement Analytics
content:
application/json:
schema:
type: object
properties:
items:
type: array
description: The list of Inbox Placement Analytics
items:
$ref: '#/components/schemas/InboxPlacementAnalytics'
next_starting_after:
type: string
examples:
- 019ffad2-9c10-7031-b800-4c432391ac4d
- '2026-08-13T11:12:14.352Z'
description: The filter for getting the next items after this one, this could either be a UUID, a timestamp,
on an email depending on the specific API
example: 019ffad2-9c10-7031-b800-4c432391ac4d
additionalProperties: false
required:
- items
'401':
description: This request is unauthorized (either the Authorization header is missing or invalid, or the API key
has been revoked)
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 401
examples:
- 401
example: 401
error:
type: string
enum:
- Unauthorized
examples:
- Unauthorized
example: Unauthorized
message:
type: string
examples:
- Missing Authorization header
example: Missing Authorization header
required:
- statusCode
- error
- message
'402':
description: This request cannot be fulfilled because the workspace does not have an active paid plan
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 402
examples:
- 402
example: 402
error:
type: string
enum:
- Payment Required
examples:
- Payment Required
example: Payment Required
message:
type: string
examples:
- Workspace does not have an active paid plan
example: Workspace does not have an active paid plan
required:
- statusCode
- error
- message
'404':
description: The requested resource was not found
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 404
examples:
- 404
example: 404
error:
type: string
enum:
- Not Found
examples:
- Not Found
example: Not Found
message:
type: string
examples:
- Resource not found
example: Resource not found
required:
- statusCode
- error
- message
'429':
description: You have exceeded the rate limit. Please check the rate limit docs for more information.
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 429
examples:
- 429
example: 429
error:
type: string
enum:
- Too Many Requests
examples:
- Too Many Requests
example: Too Many Requests
message:
type: string
examples:
- Rate limit exceeded
example: Rate limit exceeded
required:
- statusCode
- error
- message
/api/v2/inbox-placement-analytics/{id}:
get:
operationId: getInboxPlacementAnalytics
summary: Get inbox placement analytics
tags:
- InboxPlacementAnalytics
description: 'Requires one of the following scopes: `inbox_placement_analytics:read`, `inbox_placement_analytics:all`,
`all:read`, `all:all`'
parameters:
- schema:
type: string
format: uuid
example: 019ffad2-9c11-761e-8be7-8204f980e956
example: 019ffad2-9c11-761e-8be7-8204f980e956
in: path
name: id
required: true
description: The ID of the requested item
responses:
'200':
description: The requested Inbox Placement Analytics
content:
application/json:
schema:
$ref: '#/components/schemas/InboxPlacementAnalytics'
'401':
description: This request is unauthorized (either the Authorization header is missing or invalid, or the API key
has been revoked)
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 401
examples:
- 401
example: 401
error:
type: string
enum:
- Unauthorized
examples:
- Unauthorized
example: Unauthorized
message:
type: string
examples:
- Missing Authorization header
example: Missing Authorization header
required:
- statusCode
- error
- message
'402':
description: This request cannot be fulfilled because the workspace does not have an active paid plan
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 402
examples:
- 402
example: 402
error:
type: string
enum:
- Payment Required
examples:
- Payment Required
example: Payment Required
message:
type: string
examples:
- Workspace does not have an active paid plan
example: Workspace does not have an active paid plan
required:
- statusCode
- error
- message
'404':
description: The requested resource was not found
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 404
examples:
- 404
example: 404
error:
type: string
enum:
- Not Found
examples:
- Not Found
example: Not Found
message:
type: string
examples:
- Resource not found
example: Resource not found
required:
- statusCode
- error
- message
'429':
description: You have exceeded the rate limit. Please check the rate limit docs for more information.
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 429
examples:
- 429
example: 429
error:
type: string
enum:
- Too Many Requests
examples:
- Too Many Requests
example: Too Many Requests
message:
type: string
examples:
- Rate limit exceeded
example: Rate limit exceeded
required:
- statusCode
- error
- message
/api/v2/inbox-placement-analytics/stats-by-test-id:
post:
operationId: getInboxPlacementAnalyticsStatsByTestId
summary: Retrieve inbox placement analytics stats by test id
tags:
- InboxPlacementAnalytics
description: 'Provides aggregated inbox, spam and category counts for specified test IDs
Requires one of the following scopes: `inbox_placement_analytics:read`, `inbox_placement_analytics:all`, `all:read`,
`all:all`'
requestBody:
content:
application/json:
schema:
type: object
properties:
test_ids:
type: array
items:
type: string
format: uuid
example: 019ffad2-9c11-761e-8be7-8205dfb9980e
minItems: 1
date_from:
type: string
example: '2026-08-13T11:12:14.353Z'
date_to:
type: string
example: '2026-08-13T11:12:14.353Z'
recipient_geo:
type: array
items:
type: number
enum:
- 1
- 2
- 3
- 4
x-enumDescriptions:
'1': United States
'2': Italy
'3': Germany
'4': France
example: 1
example:
- 1
recipient_type:
type: array
items:
type: number
enum:
- 1
- 2
x-enumDescriptions:
'1': Professional
'2': Personal
example: 1
example:
- 1
recipient_esp:
type: array
items:
type: number
enum:
- 1
- 2
- 8
- 12
- 13
x-enumDescriptions:
'1': Google
'2': Microsoft
'8': AirMail
'12': Web.de
'13': Libero.it
example: 1
example:
- 1
- 2
sender_email:
type: string
example: john@doe.com
required:
- test_ids
required: true
responses:
'200':
description: Default Response
content:
application/json:
schema:
type: array
items:
type: object
properties:
test_id:
type: string
format: uuid
example: 019ffad2-9c11-761e-8be7-8206b9663293
count:
type: number
example: 1
spam_count:
type: number
example: 1
spam_percent:
type: number
example: 1
inbox_count:
type: number
example: 1
inbox_percent:
type: number
example: 1
category_count:
type: number
example: 1
category_percent:
type: number
example: 1
required:
- test_id
- count
- spam_count
- spam_percent
- inbox_count
- inbox_percent
- category_count
- category_percent
'401':
description: This request is unauthorized (either the Authorization header is missing or invalid, or the API key
has been revoked)
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 401
examples:
- 401
example: 401
error:
type: string
enum:
- Unauthorized
examples:
- Unauthorized
example: Unauthorized
message:
type: string
examples:
- Missing Authorization header
example: Missing Authorization header
required:
- statusCode
- error
- message
'402':
description: This request cannot be fulfilled because the workspace does not have an active paid plan
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 402
examples:
- 402
example: 402
error:
type: string
enum:
- Payment Required
examples:
- Payment Required
example: Payment Required
message:
type: string
examples:
- Workspace does not have an active paid plan
example: Workspace does not have an active paid plan
required:
- statusCode
- error
- message
'404':
description: The requested resource was not found
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 404
examples:
- 404
example: 404
error:
type: string
enum:
- Not Found
examples:
- Not Found
example: Not Found
message:
type: string
examples:
- Resource not found
example: Resource not found
required:
- statusCode
- error
- message
'429':
description: You have exceeded the rate limit. Please check the rate limit docs for more information.
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 429
examples:
- 429
example: 429
error:
type: string
enum:
- Too Many Requests
examples:
- Too Many Requests
example: Too Many Requests
message:
type: string
examples:
- Rate limit exceeded
example: Rate limit exceeded
required:
- statusCode
- error
- message
/api/v2/inbox-placement-analytics/deliverability-insights:
post:
operationId: getInboxPlacementAnalyticsDeliverabilityInsights
summary: Retrieve inbox placement analytics deliverability insights
tags:
- InboxPlacementAnalytics
description: 'Provides deliverability insights for a specific inbox placement test
Requires one of the following scopes: `inbox_placement_analytics:read`, `inbox_placement_analytics:all`, `all:read`,
`all:all`'
requestBody:
content:
application/json:
schema:
type: object
properties:
test_id:
type: string
format: uuid
example: 019ffad2-9c12-7627-a335-4988c0aa83fd
date_from:
type: string
example: '2026-08-13T11:12:14.354Z'
date_to:
type: string
example: '2026-08-13T11:12:14.354Z'
previous_date_from:
type: string
example: '2026-08-13T11:12:14.354Z'
previous_date_to:
type: string
example: '2026-08-13T11:12:14.354Z'
show_previous:
type: boolean
example: true
recipient_geo:
type: array
items:
type: number
enum:
- 1
- 2
- 3
- 4
x-enumDescriptions:
'1': United States
'2': Italy
'3': Germany
'4': France
example: 1
example:
- 1
recipient_type:
type: array
items:
type: number
enum:
- 1
- 2
x-enumDescriptions:
'1': Professional
'2': Personal
example: 1
example:
- 1
recipient_esp:
type: array
items:
type: number
enum:
- 1
- 2
- 8
- 12
- 13
x-enumDescriptions:
'1': Google
'2': Microsoft
'8': AirMail
'12': Web.de
'13': Libero.it
example: 1
example:
- 1
- 2
required:
- test_id
required: true
responses:
'200':
description: Default Response
content:
application/json:
schema:
type: array
items:
type: object
properties:
test_id:
type: string
format: uuid
example: 019ffad2-9c12-7627-a335-49891053917b
from:
type:
- 'null'
- string
example: '2024-01-01'
to:
type:
- 'null'
- string
example: '2024-01-01'
previous_from:
type:
- 'null'
- string
example: '2023-01-01'
previous_to:
type:
- 'null'
- string
example: '2023-01-01'
sender_esp:
type: number
enum:
- 1
- 2
- 8
- 12
- 13
x-enumDescriptions:
'1': Google
'2': Microsoft
'8': AirMail
'12': Web.de
'13': Libero.it
example: 1
recipient_esp:
type: number
enum:
- 1
- 2
- 8
- 12
- 13
x-enumDescriptions:
'1': Google
'2': Microsoft
'8': AirMail
'12': Web.de
'13': Libero.it
example: 1
spam_percentage:
type:
- 'null'
- number
example: 10
inbox_percentage:
type:
- 'null'
- number
example: 20
category_percentage:
type:
- 'null'
- number
example: 70
prev_spam_percentage:
type:
- 'null'
- number
example: 10
prev_inbox_percentage:
type:
- 'null'
- number
example: 56.67
prev_category_percentage:
type:
- 'null'
- number
example: 33.33
'401':
description: This request is unauthorized (either the Authorization header is missing or invalid, or the API key
has been revoked)
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 401
examples:
- 401
example: 401
error:
type: string
enum:
- Unauthorized
examples:
- Unauthorized
example: Unauthorized
message:
type: string
examples:
- Missing Authorization header
example: Missing Authorization header
required:
- statusCode
- error
- message
'402':
description: This request cannot be fulfilled because the workspace does not have an active paid plan
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 402
examples:
- 402
example: 402
error:
type: string
enum:
- Payment Required
examples:
- Payment Required
example: Payment Required
message:
type: string
examples:
- Workspace does not have an active paid plan
example: Workspace does not have an active paid plan
required:
- statusCode
- error
- message
'404':
description: The requested resource was not found
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 404
examples:
- 404
example: 404
error:
type: string
enum:
- Not Found
examples:
- Not Found
example: Not Found
message:
type: string
examples:
- Resource not found
example: Resource not found
required:
- statusCode
- error
- message
'429':
description: You have exceeded the rate limit. Please check the rate limit docs for more information.
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 429
examples:
- 429
example: 429
error:
type: string
enum:
- Too Many Requests
examples:
- Too Many Requests
example: Too Many Requests
message:
type: string
examples:
- Rate limit exceeded
example: Rate limit exceeded
required:
- statusCode
- error
- message
/api/v2/inbox-placement-analytics/stats-by-date:
post:
operationId: getInboxPlacementAnalyticsStatsByDate
summary: Get inbox placement analytics stats by date
tags:
- InboxPlacementAnalytics
description: 'Provides a time series representing the distribution of emails sent to inbox, spam, or category folders
for scheduled inbox placement tests.
Requires one of the following scopes: `inbox_placement_analytics:read`, `inbox_placement_analytics:all`, `all:read`,
`all:all`'
requestBody:
content:
application/json:
schema:
type: object
properties:
test_id:
type: string
format: uuid
example: 019ffad2-9c13-7365-81db-d29875d4a700
date_from:
type: string
example: '2026-08-13T11:12:14.355Z'
date_to:
type: string
example: '2026-08-13T11:12:14.355Z'
recipient_geo:
type: array
items:
type: number
enum:
- 1
- 2
- 3
- 4
x-enumDescriptions:
'1': United States
'2': Italy
'3': Germany
'4': France
example: 1
example:
- 1
recipient_type:
type: array
items:
type: number
enum:
- 1
- 2
x-enumDescriptions:
'1': Professional
'2': Personal
example: 1
example:
- 1
recipient_esp:
type: array
items:
type: number
enum:
- 1
- 2
- 8
- 12
- 13
x-enumDescriptions:
'1': Google
'2': Microsoft
'8': AirMail
'12': Web.de
'13': Libero.it
example: 1
example:
- 1
- 2
sender_email:
type: string
example: john@doe.com
required:
- test_id
required: true
responses:
'200':
description: Default Response
content:
application/json:
schema:
type: array
items:
type: object
properties:
timestamp_created_date:
type: string
example: '2026-08-13T11:12:14.355Z'
sent_count:
type: number
example: 1
received_count:
type: number
example: 1
spam_count:
type: number
example: 1
inbox_count:
type: number
example: 1
category_count:
type: number
example: 1
required:
- timestamp_created_date
- sent_count
- received_count
- spam_count
- inbox_count
- category_count
'401':
description: This request is unauthorized (either the Authorization header is missing or invalid, or the API key
has been revoked)
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 401
examples:
- 401
example: 401
error:
type: string
enum:
- Unauthorized
examples:
- Unauthorized
example: Unauthorized
message:
type: string
examples:
- Missing Authorization header
example: Missing Authorization header
required:
- statusCode
- error
- message
'402':
description: This request cannot be fulfilled because the workspace does not have an active paid plan
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 402
examples:
- 402
example: 402
error:
type: string
enum:
- Payment Required
examples:
- Payment Required
example: Payment Required
message:
type: string
examples:
- Workspace does not have an active paid plan
example: Workspace does not have an active paid plan
required:
- statusCode
- error
- message
'404':
description: The requested resource was not found
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 404
examples:
- 404
example: 404
error:
type: string
enum:
- Not Found
examples:
- Not Found
example: Not Found
message:
type: string
examples:
- Resource not found
example: Resource not found
required:
- statusCode
- error
- message
'429':
description: You have exceeded the rate limit. Please check the rate limit docs for more information.
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 429
examples:
- 429
example: 429
error:
type: string
enum:
- Too Many Requests
examples:
- Too Many Requests
example: Too Many Requests
message:
type: string
examples:
- Rate limit exceeded
example: Rate limit exceeded
required:
- statusCode
- error
- message
/api/v2/inbox-placement-reports:
get:
operationId: listInboxPlacementBlacklistAndSpamAssassinReport
summary: List inbox placement blacklist and spamassassin report
tags:
- InboxPlacementBlacklistAndSpamAssassinReport
description: 'Requires one of the following scopes: `inbox_placement_reports:read`, `inbox_placement_reports:all`, `all:read`,
`all:all`'
parameters:
- schema:
type: integer
minimum: 1
maximum: 100
example: 10
example: 10
in: query
name: limit
required: false
description: The number of items to return
- schema:
type: string
example: 01956fbd-0eb1-72db-a565-82977a586084
example: 01956fbd-0eb1-72db-a565-82977a586084
in: query
name: starting_after
required: false
description: The ID of the last item in the previous page - used for pagination. You can use the value of the `next_starting_after`
field from the previous response.
- schema:
type: string
format: uuid
example: d290f1ee-6c54-4b01-90e6-d701748f0851
example: d290f1ee-6c54-4b01-90e6-d701748f0851
in: query
name: test_id
required: true
- schema:
type: string
example: '2026-08-13T11:12:14.361Z'
example: '2026-08-13T11:12:14.361Z'
in: query
name: date_from
required: false
- schema:
type: string
example: '2026-08-13T11:12:14.361Z'
example: '2026-08-13T11:12:14.361Z'
in: query
name: date_to
required: false
- schema:
type: boolean
example: false
example: false
in: query
name: skip_spam_assassin_report
required: false
description: Flag to skip including spam_assassin_report JSON
- schema:
type: boolean
example: false
example: false
in: query
name: skip_blacklist_report
required: false
description: Flag to skip including blacklist_report JSON
responses:
'200':
description: The list of Inbox Placement Blacklist And SpamAssassin Report
content:
application/json:
schema:
type: object
properties:
items:
type: array
description: The list of Inbox Placement Blacklist And SpamAssassin Report
items:
$ref: '#/components/schemas/InboxPlacementBlacklistAndSpamAssassinReport'
next_starting_after:
type: string
examples:
- 019ffad2-9c19-7615-a53a-6de1bd9632b6
- '2026-08-13T11:12:14.361Z'
description: The filter for getting the next items after this one, this could either be a UUID, a timestamp,
on an email depending on the specific API
example: 019ffad2-9c19-7615-a53a-6de1bd9632b6
additionalProperties: false
required:
- items
'401':
description: This request is unauthorized (either the Authorization header is missing or invalid, or the API key
has been revoked)
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 401
examples:
- 401
example: 401
error:
type: string
enum:
- Unauthorized
examples:
- Unauthorized
example: Unauthorized
message:
type: string
examples:
- Missing Authorization header
example: Missing Authorization header
required:
- statusCode
- error
- message
'402':
description: This request cannot be fulfilled because the workspace does not have an active paid plan
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 402
examples:
- 402
example: 402
error:
type: string
enum:
- Payment Required
examples:
- Payment Required
example: Payment Required
message:
type: string
examples:
- Workspace does not have an active paid plan
example: Workspace does not have an active paid plan
required:
- statusCode
- error
- message
'404':
description: The requested resource was not found
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 404
examples:
- 404
example: 404
error:
type: string
enum:
- Not Found
examples:
- Not Found
example: Not Found
message:
type: string
examples:
- Resource not found
example: Resource not found
required:
- statusCode
- error
- message
'429':
description: You have exceeded the rate limit. Please check the rate limit docs for more information.
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 429
examples:
- 429
example: 429
error:
type: string
enum:
- Too Many Requests
examples:
- Too Many Requests
example: Too Many Requests
message:
type: string
examples:
- Rate limit exceeded
example: Rate limit exceeded
required:
- statusCode
- error
- message
/api/v2/inbox-placement-reports/{id}:
get:
operationId: getInboxPlacementBlacklistAndSpamAssassinReport
summary: Get inbox placement blacklist and spamassassin report
tags:
- InboxPlacementBlacklistAndSpamAssassinReport
description: 'Requires one of the following scopes: `inbox_placement_reports:read`, `inbox_placement_reports:all`, `all:read`,
`all:all`'
parameters:
- schema:
type: string
format: uuid
example: 019ffad2-9c19-7615-a53a-6de2fc41cc49
example: 019ffad2-9c19-7615-a53a-6de2fc41cc49
in: path
name: id
required: true
description: The ID of the requested item
responses:
'200':
description: The requested Inbox Placement Blacklist And SpamAssassin Report
content:
application/json:
schema:
$ref: '#/components/schemas/InboxPlacementBlacklistAndSpamAssassinReport'
'401':
description: This request is unauthorized (either the Authorization header is missing or invalid, or the API key
has been revoked)
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 401
examples:
- 401
example: 401
error:
type: string
enum:
- Unauthorized
examples:
- Unauthorized
example: Unauthorized
message:
type: string
examples:
- Missing Authorization header
example: Missing Authorization header
required:
- statusCode
- error
- message
'402':
description: This request cannot be fulfilled because the workspace does not have an active paid plan
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 402
examples:
- 402
example: 402
error:
type: string
enum:
- Payment Required
examples:
- Payment Required
example: Payment Required
message:
type: string
examples:
- Workspace does not have an active paid plan
example: Workspace does not have an active paid plan
required:
- statusCode
- error
- message
'404':
description: The requested resource was not found
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 404
examples:
- 404
example: 404
error:
type: string
enum:
- Not Found
examples:
- Not Found
example: Not Found
message:
type: string
examples:
- Resource not found
example: Resource not found
required:
- statusCode
- error
- message
'429':
description: You have exceeded the rate limit. Please check the rate limit docs for more information.
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 429
examples:
- 429
example: 429
error:
type: string
enum:
- Too Many Requests
examples:
- Too Many Requests
example: Too Many Requests
message:
type: string
examples:
- Rate limit exceeded
example: Rate limit exceeded
required:
- statusCode
- error
- message
/api/v2/inbox-placement-tests:
post:
operationId: createInboxPlacementTest
summary: Create inbox placement test
tags:
- InboxPlacementTest
description: 'Requires one of the following scopes: `inbox_placement_tests:create`, `inbox_placement_tests:all`, `all:create`,
`all:all`'
requestBody:
content:
application/json:
schema:
title: CreateInbox Placement Test
description: The Inbox Placement Test to create
type: object
properties:
name:
type: string
description: Name of the inbox placement test
example: My Inbox Placement Test
delivery_mode:
type:
- 'null'
- number
description: Whether to send emails one by one or all together
enum:
- 1
- 2
- null
x-enumDescriptions:
'1': One by one
'2': All together
example: 1
description:
type:
- string
- 'null'
description: Description of the inbox placement test
example: This is a test description
schedule:
type: object
description: Specifies the date and time when the automated inbox placement tests will be sent.
properties:
days:
type: object
description: Days of the week when the test will run, where keys are integers (0-6, 0 = Sunday) and
values are booleans indicating active days.
additionalProperties:
type: boolean
examples:
- false
example: false
example:
'0': false
'1': false
'2': true
'3': true
'4': false
'5': false
'6': false
timing:
type: object
properties:
from:
type: string
description: The time of day when the test will start (24-hour format).
example: 02:30
description: Timing configuration for the scheduled test.
timezone:
type: string
enum:
- Etc/GMT+12
- Etc/GMT+11
- Etc/GMT+10
- America/Anchorage
- America/Dawson
- America/Creston
- America/Chihuahua
- America/Boise
- America/Belize
- America/Chicago
- America/Bahia_Banderas
- America/Regina
- America/Bogota
- America/Detroit
- America/Indiana/Marengo
- America/Caracas
- America/Asuncion
- America/Glace_Bay
- America/Campo_Grande
- America/Anguilla
- America/Santiago
- America/St_Johns
- America/Sao_Paulo
- America/Argentina/La_Rioja
- America/Araguaina
- America/Godthab
- America/Montevideo
- America/Bahia
- America/Noronha
- America/Scoresbysund
- Atlantic/Cape_Verde
- Africa/Casablanca
- America/Danmarkshavn
- Europe/Isle_of_Man
- Atlantic/Canary
- Africa/Abidjan
- Arctic/Longyearbyen
- Europe/Belgrade
- Africa/Ceuta
- Europe/Sarajevo
- Africa/Algiers
- Africa/Windhoek
- Asia/Nicosia
- Asia/Beirut
- Africa/Cairo
- Asia/Damascus
- Europe/Bucharest
- Africa/Blantyre
- Europe/Helsinki
- Europe/Istanbul
- Asia/Jerusalem
- Africa/Tripoli
- Asia/Amman
- Asia/Baghdad
- Europe/Kaliningrad
- Asia/Aden
- Africa/Addis_Ababa
- Europe/Kirov
- Europe/Astrakhan
- Asia/Tehran
- Asia/Dubai
- Asia/Baku
- Indian/Mahe
- Asia/Tbilisi
- Asia/Yerevan
- Asia/Kabul
- Antarctica/Mawson
- Asia/Yekaterinburg
- Asia/Karachi
- Asia/Kolkata
- Asia/Colombo
- Asia/Kathmandu
- Antarctica/Vostok
- Asia/Dhaka
- Asia/Rangoon
- Antarctica/Davis
- Asia/Novokuznetsk
- Asia/Hong_Kong
- Asia/Krasnoyarsk
- Asia/Brunei
- Australia/Perth
- Asia/Taipei
- Asia/Choibalsan
- Asia/Irkutsk
- Asia/Dili
- Asia/Pyongyang
- Australia/Adelaide
- Australia/Darwin
- Australia/Brisbane
- Australia/Melbourne
- Antarctica/DumontDUrville
- Australia/Currie
- Asia/Chita
- Antarctica/Macquarie
- Asia/Sakhalin
- Pacific/Auckland
- Etc/GMT-12
- Pacific/Fiji
- Asia/Anadyr
- Asia/Kamchatka
- Etc/GMT-13
- Pacific/Apia
description: Timezone in which the schedule is set, in IANA timezone format.
example: Etc/GMT+12
example:
days:
'2': true
'3': true
timing:
from: 02:30
timezone: America/Chihuahua
type:
type: number
description: Whether the inbox placement test is a one-time test or an automated test
enum:
- 1
- 2
example: 1
sending_method:
type: number
description: Whether the inbox placement test will be sent from Instantly or from outside Instantly
enum:
- 1
- 2
x-enumDescriptions:
'1': From Instantly
'2': From Outside Instantly
example: 1
campaign_id:
type:
- 'null'
- string
description: Campaign ID
format: uuid
example: 019ffad2-5c60-726e-9fc3-15653478693e
email_subject:
type: string
description: Email subject of the inbox placement test
example: My Email Subject
email_body:
type: string
description: Email body of the inbox placement test
example: Hi, this is my email body
emails:
type: array
description: Emails to send the inbox placement test to
items:
type: string
example: john@doe.com
test_code:
type:
- string
- 'null'
description: Code for identifying inbox placement tests sent from outside Instantly. Use ptid_ followed
by letters, numbers, hyphens, or underscores. When creating a test, the ptid_ prefix is added automatically
if omitted. The full code must be at most 50 characters.
pattern: ^\s*$|^(ptid_)?(?!ptid_)[A-Za-z0-9_-]{1,45}$
example: ptid_abc_DEF-123
tags:
type:
- array
- 'null'
description: List of tag IDs to use for sending emails
items:
type: string
format: uuid
examples:
- 019ffad2-5c60-726e-9fc3-156656386a64
example: 019ffad2-5c60-726e-9fc3-156656386a64
text_only:
type:
- boolean
- 'null'
description: Disables open tracking
example: true
recipients_labels:
type: array
description: 'A list of email providers and their corresponding types to which emails will be sent. To retrieve
the available options, use the `GET: /inbox-placement-tests/email-service-provider-options` endpoint'
items:
type: object
properties:
region:
type: string
description: The region to send emails to
example: North America
sub_region:
type: string
description: The sub-region to send emails to
example: US
type:
type: string
description: The type of email to send
example: Professional
esp:
type: string
description: The Email Service Provider (ESP) to send emails to
example: Google
required:
- region
- sub_region
- type
- esp
timestamp_next_run:
type:
- string
- 'null'
description: Timestamp when the inbox placement test will run next
example: '2026-08-13T11:11:58.048Z'
automations:
type:
- 'null'
- array
description: Optional automations to trigger based on conditions
minItems: 0
items:
type: object
properties:
when:
type: object
properties:
condition:
type: string
description: Condition for automation trigger
enum:
- placement_goes_below
- placement_goes_above
- added_to_blacklists
- removed_from_blacklists
examples:
- placement_goes_below
example: placement_goes_below
condition_value:
type:
- 'null'
- number
description: Value for condition, if applicable
examples:
- 80
example: 80
required:
- condition
then:
type: object
properties:
webhook_url:
type: string
examples:
- https://example.com/webhook
example: https://example.com/webhook
pause_sending_campaigns_for:
type: number
description: Number of days to pause sending campaigns for
examples:
- 14
example: 14
pause:
type: boolean
examples:
- true
example: true
enable_slow_ramp:
type: boolean
examples:
- true
example: true
disable_slow_ramp:
type: boolean
examples:
- true
example: true
add_tags:
type: array
items:
type: string
format: uuid
examples:
- 019ffad2-5c60-726e-9fc3-156754df5bd1
example: 019ffad2-5c60-726e-9fc3-156754df5bd1
examples:
- - 019ffad2-5c60-726e-9fc3-1568473f684f
example:
- 019ffad2-5c60-726e-9fc3-1568473f684f
remove_tags:
type: array
items:
type: string
format: uuid
examples:
- 019ffad2-5c60-726e-9fc3-156972a16746
example: 019ffad2-5c60-726e-9fc3-156972a16746
minProperties: 1
description: Actions to take when condition is met
required:
- when
- then
status:
type:
- number
- 'null'
description: Status of the inbox placement test
enum:
- 1
- 2
- 3
x-enumDescriptions:
'1': Active
'2': Paused
'3': Completed
example: 1
not_sending_status:
type:
- string
- 'null'
description: Why the inbox placement test is currently not sending. It will be an empty string if there
are no issues.
enum:
- daily_limits_hit
- other
x-enumDescriptions:
daily_limits_hit: Daily limits hit
other: Other reason
example: daily_limits_hit
run_immediately:
type: boolean
description: Run the test immediately after creation, as well as on the schedule
example: true
required:
- name
- type
- sending_method
- email_subject
- email_body
- emails
additionalProperties: false
required: true
description: The Inbox Placement Test to create
responses:
'200':
description: The Inbox Placement Test
content:
application/json:
schema:
$ref: '#/components/schemas/InboxPlacementTest'
'400':
description: Invalid request body (e.g. missing required fields, or invalid field values)
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 400
examples:
- 400
example: 400
error:
type: string
enum:
- Bad Request
examples:
- Bad Request
example: Bad Request
message:
type: string
examples:
- body must have required property 'name'
example: body must have required property 'name'
required:
- statusCode
- error
- message
'401':
description: This request is unauthorized (either the Authorization header is missing or invalid, or the API key
has been revoked)
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 401
examples:
- 401
example: 401
error:
type: string
enum:
- Unauthorized
examples:
- Unauthorized
example: Unauthorized
message:
type: string
examples:
- Missing Authorization header
example: Missing Authorization header
required:
- statusCode
- error
- message
'402':
description: This request cannot be fulfilled because the workspace does not have an active paid plan
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 402
examples:
- 402
example: 402
error:
type: string
enum:
- Payment Required
examples:
- Payment Required
example: Payment Required
message:
type: string
examples:
- Workspace does not have an active paid plan
example: Workspace does not have an active paid plan
required:
- statusCode
- error
- message
'404':
description: The requested resource was not found
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 404
examples:
- 404
example: 404
error:
type: string
enum:
- Not Found
examples:
- Not Found
example: Not Found
message:
type: string
examples:
- Resource not found
example: Resource not found
required:
- statusCode
- error
- message
'429':
description: You have exceeded the rate limit. Please check the rate limit docs for more information.
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 429
examples:
- 429
example: 429
error:
type: string
enum:
- Too Many Requests
examples:
- Too Many Requests
example: Too Many Requests
message:
type: string
examples:
- Rate limit exceeded
example: Rate limit exceeded
required:
- statusCode
- error
- message
get:
operationId: listInboxPlacementTest
summary: List inbox placement test
tags:
- InboxPlacementTest
description: 'Requires one of the following scopes: `inbox_placement_tests:read`, `inbox_placement_tests:all`, `all:read`,
`all:all`'
parameters:
- schema:
type: integer
minimum: 1
maximum: 100
example: 10
example: 10
in: query
name: limit
required: false
description: The number of items to return
- schema:
type: string
example: 01956fbd-0eb1-72db-a565-82977a586084
example: 01956fbd-0eb1-72db-a565-82977a586084
in: query
name: starting_after
required: false
description: The ID of the last item in the previous page - used for pagination. You can use the value of the `next_starting_after`
field from the previous response.
- schema:
type: string
example: test
example: test
in: query
name: search
required: false
- schema:
type: number
enum:
- 1
- 2
- 3
example: 1
example: 1
in: query
name: status
required: false
- schema:
type: string
enum:
- asc
- desc
example: desc
example: desc
in: query
name: sort_order
required: false
description: Sort order for the results. Results are always sorted by id (which is timestamp-sorted due to UUIDv7).
responses:
'200':
description: The list of Inbox Placement Test
content:
application/json:
schema:
type: object
properties:
items:
type: array
description: The list of Inbox Placement Test
items:
$ref: '#/components/schemas/InboxPlacementTest'
next_starting_after:
type: string
examples:
- 019ffad2-9c20-7006-b991-2c7e70d37037
- '2026-08-13T11:12:14.368Z'
description: The filter for getting the next items after this one, this could either be a UUID, a timestamp,
on an email depending on the specific API
example: 019ffad2-9c20-7006-b991-2c7e70d37037
additionalProperties: false
required:
- items
'401':
description: This request is unauthorized (either the Authorization header is missing or invalid, or the API key
has been revoked)
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 401
examples:
- 401
example: 401
error:
type: string
enum:
- Unauthorized
examples:
- Unauthorized
example: Unauthorized
message:
type: string
examples:
- Missing Authorization header
example: Missing Authorization header
required:
- statusCode
- error
- message
'402':
description: This request cannot be fulfilled because the workspace does not have an active paid plan
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 402
examples:
- 402
example: 402
error:
type: string
enum:
- Payment Required
examples:
- Payment Required
example: Payment Required
message:
type: string
examples:
- Workspace does not have an active paid plan
example: Workspace does not have an active paid plan
required:
- statusCode
- error
- message
'404':
description: The requested resource was not found
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 404
examples:
- 404
example: 404
error:
type: string
enum:
- Not Found
examples:
- Not Found
example: Not Found
message:
type: string
examples:
- Resource not found
example: Resource not found
required:
- statusCode
- error
- message
'429':
description: You have exceeded the rate limit. Please check the rate limit docs for more information.
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 429
examples:
- 429
example: 429
error:
type: string
enum:
- Too Many Requests
examples:
- Too Many Requests
example: Too Many Requests
message:
type: string
examples:
- Rate limit exceeded
example: Rate limit exceeded
required:
- statusCode
- error
- message
/api/v2/inbox-placement-tests/{id}:
get:
operationId: getInboxPlacementTest
summary: Get inbox placement test
tags:
- InboxPlacementTest
description: 'Requires one of the following scopes: `inbox_placement_tests:read`, `inbox_placement_tests:all`, `all:read`,
`all:all`'
parameters:
- schema:
type: boolean
example: true
example: true
in: query
name: with_metadata
required: false
description: Whether to include additional metadata about the inbox placement test
- schema:
type: string
format: uuid
example: 019ffad2-9c21-77f6-8946-d2ec2874ba8d
example: 019ffad2-9c21-77f6-8946-d2ec2874ba8d
in: path
name: id
required: true
description: The ID of the requested item
responses:
'200':
description: The requested Inbox Placement Test
content:
application/json:
schema:
properties:
id:
type: string
description: Unique identifier for the inbox placement test
examples:
- 019ffad2-5c60-726e-9fc3-156305e5dc50
readOnly: true
format: uuid
example: 019ffad2-5c60-726e-9fc3-156305e5dc50
organization_id:
type: string
description: Organization ID
examples:
- 019ffad2-5c60-726e-9fc3-1564f8d27eb8
readOnly: true
format: uuid
example: 019ffad2-5c60-726e-9fc3-1564f8d27eb8
name:
type: string
description: Name of the inbox placement test
examples:
- My Inbox Placement Test
example: My Inbox Placement Test
delivery_mode:
type:
- 'null'
- number
description: Whether to send emails one by one or all together
examples:
- 1
enum:
- 1
- 2
- null
x-enumDescriptions:
'1': One by one
'2': All together
example: 1
description:
type:
- 'null'
- string
description: Description of the inbox placement test
examples:
- This is a test description
example: This is a test description
schedule:
type: object
description: Specifies the date and time when the automated inbox placement tests will be sent.
examples:
- null
properties:
days:
type: object
description: Days of the week when the test will run, where keys are integers (0-6, 0 = Sunday) and
values are booleans indicating active days.
additionalProperties:
type: boolean
examples:
- false
example: false
example:
'0': false
'1': false
'2': true
'3': true
'4': false
'5': false
'6': false
timing:
type: object
properties:
from:
type: string
description: The time of day when the test will start (24-hour format).
examples:
- 02:30
example: 02:30
description: Timing configuration for the scheduled test.
timezone:
type: string
enum:
- Etc/GMT+12
- Etc/GMT+11
- Etc/GMT+10
- America/Anchorage
- America/Dawson
- America/Creston
- America/Chihuahua
- America/Boise
- America/Belize
- America/Chicago
- America/Bahia_Banderas
- America/Regina
- America/Bogota
- America/Detroit
- America/Indiana/Marengo
- America/Caracas
- America/Asuncion
- America/Glace_Bay
- America/Campo_Grande
- America/Anguilla
- America/Santiago
- America/St_Johns
- America/Sao_Paulo
- America/Argentina/La_Rioja
- America/Araguaina
- America/Godthab
- America/Montevideo
- America/Bahia
- America/Noronha
- America/Scoresbysund
- Atlantic/Cape_Verde
- Africa/Casablanca
- America/Danmarkshavn
- Europe/Isle_of_Man
- Atlantic/Canary
- Africa/Abidjan
- Arctic/Longyearbyen
- Europe/Belgrade
- Africa/Ceuta
- Europe/Sarajevo
- Africa/Algiers
- Africa/Windhoek
- Asia/Nicosia
- Asia/Beirut
- Africa/Cairo
- Asia/Damascus
- Europe/Bucharest
- Africa/Blantyre
- Europe/Helsinki
- Europe/Istanbul
- Asia/Jerusalem
- Africa/Tripoli
- Asia/Amman
- Asia/Baghdad
- Europe/Kaliningrad
- Asia/Aden
- Africa/Addis_Ababa
- Europe/Kirov
- Europe/Astrakhan
- Asia/Tehran
- Asia/Dubai
- Asia/Baku
- Indian/Mahe
- Asia/Tbilisi
- Asia/Yerevan
- Asia/Kabul
- Antarctica/Mawson
- Asia/Yekaterinburg
- Asia/Karachi
- Asia/Kolkata
- Asia/Colombo
- Asia/Kathmandu
- Antarctica/Vostok
- Asia/Dhaka
- Asia/Rangoon
- Antarctica/Davis
- Asia/Novokuznetsk
- Asia/Hong_Kong
- Asia/Krasnoyarsk
- Asia/Brunei
- Australia/Perth
- Asia/Taipei
- Asia/Choibalsan
- Asia/Irkutsk
- Asia/Dili
- Asia/Pyongyang
- Australia/Adelaide
- Australia/Darwin
- Australia/Brisbane
- Australia/Melbourne
- Antarctica/DumontDUrville
- Australia/Currie
- Asia/Chita
- Antarctica/Macquarie
- Asia/Sakhalin
- Pacific/Auckland
- Etc/GMT-12
- Pacific/Fiji
- Asia/Anadyr
- Asia/Kamchatka
- Etc/GMT-13
- Pacific/Apia
examples:
- Etc/GMT+12
description: Timezone in which the schedule is set, in IANA timezone format.
example: Etc/GMT+12
example:
days:
'2': true
'3': true
timing:
from: 02:30
timezone: America/Chihuahua
type:
type: number
description: Whether the inbox placement test is a one-time test or an automated test
examples:
- 1
enum:
- 1
- 2
example: 1
sending_method:
type: number
description: Whether the inbox placement test will be sent from Instantly or from outside Instantly
examples:
- 1
enum:
- 1
- 2
x-enumDescriptions:
'1': From Instantly
'2': From Outside Instantly
example: 1
campaign_id:
type:
- 'null'
- string
description: Campaign ID
examples:
- 019ffad2-5c60-726e-9fc3-15653478693e
format: uuid
example: 019ffad2-5c60-726e-9fc3-15653478693e
email_subject:
type: string
description: Email subject of the inbox placement test
examples:
- My Email Subject
example: My Email Subject
email_body:
type: string
description: Email body of the inbox placement test
examples:
- Hi, this is my email body
example: Hi, this is my email body
emails:
type: array
description: Emails to send the inbox placement test to
examples:
- null
items:
type: string
examples:
- john@doe.com
example: john@doe.com
test_code:
type:
- 'null'
- string
description: Code for identifying inbox placement tests sent from outside Instantly. Use ptid_ followed
by letters, numbers, hyphens, or underscores. When creating a test, the ptid_ prefix is added automatically
if omitted. The full code must be at most 50 characters.
examples:
- ptid_N6qbXRzw9CPCjgownKFUa
pattern: ^ptid_(?!ptid_)[A-Za-z0-9_-]{1,45}$
example: ptid_N6qbXRzw9CPCjgownKFUa
tags:
type:
- 'null'
- array
description: List of tag IDs to use for sending emails
examples:
- null
items:
type: string
format: uuid
examples:
- 019ffad2-5c60-726e-9fc3-156656386a64
example: 019ffad2-5c60-726e-9fc3-156656386a64
text_only:
type:
- 'null'
- boolean
description: Disables open tracking
examples:
- true
example: true
recipients:
type: array
examples:
- null
readOnly: true
items:
type: string
examples:
- johndoe@instantly.ai
example: johndoe@instantly.ai
recipients_labels:
type: array
description: 'A list of email providers and their corresponding types to which emails will be sent. To
retrieve the available options, use the `GET: /inbox-placement-tests/email-service-provider-options`
endpoint'
examples:
- null
items:
type: object
properties:
region:
type: string
description: The region to send emails to
examples:
- North America
example: North America
sub_region:
type: string
description: The sub-region to send emails to
examples:
- US
example: US
type:
type: string
description: The type of email to send
examples:
- Professional
example: Professional
esp:
type: string
description: The Email Service Provider (ESP) to send emails to
examples:
- Google
example: Google
required:
- region
- sub_region
- type
- esp
timestamp_created:
type: string
description: Timestamp when the inbox placement test was created
examples:
- '2026-08-13T11:11:58.048Z'
readOnly: true
example: '2026-08-13T11:11:58.048Z'
timestamp_next_run:
type:
- 'null'
- string
description: Timestamp when the inbox placement test will run next
examples:
- '2026-08-13T11:11:58.048Z'
example: '2026-08-13T11:11:58.048Z'
automations:
type:
- 'null'
- array
description: Optional automations to trigger based on conditions
examples:
- null
minItems: 0
items:
type: object
properties:
when:
type: object
properties:
condition:
type: string
description: Condition for automation trigger
enum:
- placement_goes_below
- placement_goes_above
- added_to_blacklists
- removed_from_blacklists
examples:
- placement_goes_below
example: placement_goes_below
condition_value:
type:
- 'null'
- number
description: Value for condition, if applicable
examples:
- 80
example: 80
required:
- condition
then:
type: object
properties:
webhook_url:
type: string
examples:
- https://example.com/webhook
example: https://example.com/webhook
pause_sending_campaigns_for:
type: number
description: Number of days to pause sending campaigns for
examples:
- 14
example: 14
pause:
type: boolean
examples:
- true
example: true
enable_slow_ramp:
type: boolean
examples:
- true
example: true
disable_slow_ramp:
type: boolean
examples:
- true
example: true
add_tags:
type: array
items:
type: string
format: uuid
examples:
- 019ffad2-5c60-726e-9fc3-156754df5bd1
example: 019ffad2-5c60-726e-9fc3-156754df5bd1
examples:
- - 019ffad2-5c60-726e-9fc3-1568473f684f
example:
- 019ffad2-5c60-726e-9fc3-1568473f684f
remove_tags:
type: array
items:
type: string
format: uuid
examples:
- 019ffad2-5c60-726e-9fc3-156972a16746
example: 019ffad2-5c60-726e-9fc3-156972a16746
minProperties: 1
description: Actions to take when condition is met
required:
- when
- then
status:
type:
- 'null'
- number
description: Status of the inbox placement test
examples:
- 1
enum:
- 1
- 2
- 3
x-enumDescriptions:
'1': Active
'2': Paused
'3': Completed
example: 1
not_sending_status:
type:
- 'null'
- string
description: Why the inbox placement test is currently not sending. It will be an empty string if there
are no issues.
examples:
- daily_limits_hit
enum:
- daily_limits_hit
- other
x-enumDescriptions:
daily_limits_hit: Daily limits hit
other: Other reason
example: daily_limits_hit
metadata:
type: object
description: Included only when the `with_metadata` parameter is `true`. Contains additional information
about the inbox placement test as associated campaign details and tags.
examples:
- campaign:
id: campaign-id
name: Campaign Name
tags:
tag-id:
id: tag-id
label: Tag Label
properties:
campaign:
description: The campaign associated with the inbox placement test
type: object
properties:
id:
type: string
examples:
- campaign-id
example: campaign-id
name:
type: string
examples:
- Campaign Name
example: Campaign Name
tags:
type: object
description: The tags associated with the inbox placement test
additionalProperties:
type: object
properties:
id:
type: string
examples:
- tag-id
example: tag-id
label:
type: string
examples:
- Tag Label
example: Tag Label
required:
- id
- label
example:
campaign:
id: campaign-id
name: Campaign Name
tags:
tag-id:
id: tag-id
label: Tag Label
type: object
'401':
description: This request is unauthorized (either the Authorization header is missing or invalid, or the API key
has been revoked)
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 401
examples:
- 401
example: 401
error:
type: string
enum:
- Unauthorized
examples:
- Unauthorized
example: Unauthorized
message:
type: string
examples:
- Missing Authorization header
example: Missing Authorization header
required:
- statusCode
- error
- message
'402':
description: This request cannot be fulfilled because the workspace does not have an active paid plan
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 402
examples:
- 402
example: 402
error:
type: string
enum:
- Payment Required
examples:
- Payment Required
example: Payment Required
message:
type: string
examples:
- Workspace does not have an active paid plan
example: Workspace does not have an active paid plan
required:
- statusCode
- error
- message
'404':
description: The requested resource was not found
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 404
examples:
- 404
example: 404
error:
type: string
enum:
- Not Found
examples:
- Not Found
example: Not Found
message:
type: string
examples:
- Resource not found
example: Resource not found
required:
- statusCode
- error
- message
'429':
description: You have exceeded the rate limit. Please check the rate limit docs for more information.
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 429
examples:
- 429
example: 429
error:
type: string
enum:
- Too Many Requests
examples:
- Too Many Requests
example: Too Many Requests
message:
type: string
examples:
- Rate limit exceeded
example: Rate limit exceeded
required:
- statusCode
- error
- message
delete:
operationId: deleteInboxPlacementTest
summary: Delete inbox placement test
tags:
- InboxPlacementTest
description: 'Requires one of the following scopes: `inbox_placement_tests:delete`, `inbox_placement_tests:all`, `all:delete`,
`all:all`'
requestBody:
content:
application/json:
schema:
type: 'null'
example: null
parameters:
- schema:
type: string
format: uuid
example: 019ffad2-9c22-74d5-9554-95835e972f0c
example: 019ffad2-9c22-74d5-9554-95835e972f0c
in: path
name: id
required: true
description: The ID of the item to delete
responses:
'200':
description: The deleted Inbox Placement Test
content:
application/json:
schema:
$ref: '#/components/schemas/InboxPlacementTest'
'401':
description: This request is unauthorized (either the Authorization header is missing or invalid, or the API key
has been revoked)
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 401
examples:
- 401
example: 401
error:
type: string
enum:
- Unauthorized
examples:
- Unauthorized
example: Unauthorized
message:
type: string
examples:
- Missing Authorization header
example: Missing Authorization header
required:
- statusCode
- error
- message
'402':
description: This request cannot be fulfilled because the workspace does not have an active paid plan
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 402
examples:
- 402
example: 402
error:
type: string
enum:
- Payment Required
examples:
- Payment Required
example: Payment Required
message:
type: string
examples:
- Workspace does not have an active paid plan
example: Workspace does not have an active paid plan
required:
- statusCode
- error
- message
'404':
description: The requested resource was not found
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 404
examples:
- 404
example: 404
error:
type: string
enum:
- Not Found
examples:
- Not Found
example: Not Found
message:
type: string
examples:
- Resource not found
example: Resource not found
required:
- statusCode
- error
- message
'429':
description: You have exceeded the rate limit. Please check the rate limit docs for more information.
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 429
examples:
- 429
example: 429
error:
type: string
enum:
- Too Many Requests
examples:
- Too Many Requests
example: Too Many Requests
message:
type: string
examples:
- Rate limit exceeded
example: Rate limit exceeded
required:
- statusCode
- error
- message
patch:
operationId: patchInboxPlacementTest
summary: Patch inbox placement test
tags:
- InboxPlacementTest
description: 'Requires one of the following scopes: `inbox_placement_tests:update`, `inbox_placement_tests:all`, `all:update`,
`all:all`'
requestBody:
content:
application/json:
schema:
type: object
properties:
name:
type: string
description: Name of the inbox placement test
example: My Inbox Placement Test
schedule:
type: object
description: Specifies the date and time when the automated inbox placement tests will be sent.
properties:
days:
type: object
description: Days of the week when the test will run, where keys are integers (0-6, 0 = Sunday) and
values are booleans indicating active days.
additionalProperties:
type: boolean
examples:
- false
example: false
example:
'0': false
'1': false
'2': true
'3': true
'4': false
'5': false
'6': false
timing:
type: object
properties:
from:
type: string
description: The time of day when the test will start (24-hour format).
example: 02:30
description: Timing configuration for the scheduled test.
timezone:
type: string
enum:
- Etc/GMT+12
- Etc/GMT+11
- Etc/GMT+10
- America/Anchorage
- America/Dawson
- America/Creston
- America/Chihuahua
- America/Boise
- America/Belize
- America/Chicago
- America/Bahia_Banderas
- America/Regina
- America/Bogota
- America/Detroit
- America/Indiana/Marengo
- America/Caracas
- America/Asuncion
- America/Glace_Bay
- America/Campo_Grande
- America/Anguilla
- America/Santiago
- America/St_Johns
- America/Sao_Paulo
- America/Argentina/La_Rioja
- America/Araguaina
- America/Godthab
- America/Montevideo
- America/Bahia
- America/Noronha
- America/Scoresbysund
- Atlantic/Cape_Verde
- Africa/Casablanca
- America/Danmarkshavn
- Europe/Isle_of_Man
- Atlantic/Canary
- Africa/Abidjan
- Arctic/Longyearbyen
- Europe/Belgrade
- Africa/Ceuta
- Europe/Sarajevo
- Africa/Algiers
- Africa/Windhoek
- Asia/Nicosia
- Asia/Beirut
- Africa/Cairo
- Asia/Damascus
- Europe/Bucharest
- Africa/Blantyre
- Europe/Helsinki
- Europe/Istanbul
- Asia/Jerusalem
- Africa/Tripoli
- Asia/Amman
- Asia/Baghdad
- Europe/Kaliningrad
- Asia/Aden
- Africa/Addis_Ababa
- Europe/Kirov
- Europe/Astrakhan
- Asia/Tehran
- Asia/Dubai
- Asia/Baku
- Indian/Mahe
- Asia/Tbilisi
- Asia/Yerevan
- Asia/Kabul
- Antarctica/Mawson
- Asia/Yekaterinburg
- Asia/Karachi
- Asia/Kolkata
- Asia/Colombo
- Asia/Kathmandu
- Antarctica/Vostok
- Asia/Dhaka
- Asia/Rangoon
- Antarctica/Davis
- Asia/Novokuznetsk
- Asia/Hong_Kong
- Asia/Krasnoyarsk
- Asia/Brunei
- Australia/Perth
- Asia/Taipei
- Asia/Choibalsan
- Asia/Irkutsk
- Asia/Dili
- Asia/Pyongyang
- Australia/Adelaide
- Australia/Darwin
- Australia/Brisbane
- Australia/Melbourne
- Antarctica/DumontDUrville
- Australia/Currie
- Asia/Chita
- Antarctica/Macquarie
- Asia/Sakhalin
- Pacific/Auckland
- Etc/GMT-12
- Pacific/Fiji
- Asia/Anadyr
- Asia/Kamchatka
- Etc/GMT-13
- Pacific/Apia
description: Timezone in which the schedule is set, in IANA timezone format.
example: Etc/GMT+12
example:
days:
'2': true
'3': true
timing:
from: 02:30
timezone: America/Chihuahua
automations:
type:
- 'null'
- array
description: Optional automations to trigger based on conditions
minItems: 0
items:
type: object
properties:
when:
type: object
properties:
condition:
type: string
description: Condition for automation trigger
enum:
- placement_goes_below
- placement_goes_above
- added_to_blacklists
- removed_from_blacklists
examples:
- placement_goes_below
example: placement_goes_below
condition_value:
type:
- 'null'
- number
description: Value for condition, if applicable
examples:
- 80
example: 80
required:
- condition
then:
type: object
properties:
webhook_url:
type: string
examples:
- https://example.com/webhook
example: https://example.com/webhook
pause_sending_campaigns_for:
type: number
description: Number of days to pause sending campaigns for
examples:
- 14
example: 14
pause:
type: boolean
examples:
- true
example: true
enable_slow_ramp:
type: boolean
examples:
- true
example: true
disable_slow_ramp:
type: boolean
examples:
- true
example: true
add_tags:
type: array
items:
type: string
format: uuid
examples:
- 019ffad2-5c60-726e-9fc3-156754df5bd1
example: 019ffad2-5c60-726e-9fc3-156754df5bd1
examples:
- - 019ffad2-5c60-726e-9fc3-1568473f684f
example:
- 019ffad2-5c60-726e-9fc3-1568473f684f
remove_tags:
type: array
items:
type: string
format: uuid
examples:
- 019ffad2-5c60-726e-9fc3-156972a16746
example: 019ffad2-5c60-726e-9fc3-156972a16746
minProperties: 1
description: Actions to take when condition is met
required:
- when
- then
status:
type:
- number
- 'null'
description: Status of the inbox placement test
enum:
- 1
- 2
- 3
x-enumDescriptions:
'1': Active
'2': Paused
'3': Completed
example: 1
required: []
additionalProperties: false
minProperties: 1
parameters:
- schema:
type: string
format: uuid
example: 019ffad2-9c22-74d5-9554-9584bfecfdd8
example: 019ffad2-9c22-74d5-9554-9584bfecfdd8
in: path
name: id
required: true
description: The ID of the item to update
responses:
'200':
description: The updated Inbox Placement Test
content:
application/json:
schema:
$ref: '#/components/schemas/InboxPlacementTest'
'401':
description: This request is unauthorized (either the Authorization header is missing or invalid, or the API key
has been revoked)
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 401
examples:
- 401
example: 401
error:
type: string
enum:
- Unauthorized
examples:
- Unauthorized
example: Unauthorized
message:
type: string
examples:
- Missing Authorization header
example: Missing Authorization header
required:
- statusCode
- error
- message
'402':
description: This request cannot be fulfilled because the workspace does not have an active paid plan
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 402
examples:
- 402
example: 402
error:
type: string
enum:
- Payment Required
examples:
- Payment Required
example: Payment Required
message:
type: string
examples:
- Workspace does not have an active paid plan
example: Workspace does not have an active paid plan
required:
- statusCode
- error
- message
'404':
description: The requested resource was not found
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 404
examples:
- 404
example: 404
error:
type: string
enum:
- Not Found
examples:
- Not Found
example: Not Found
message:
type: string
examples:
- Resource not found
example: Resource not found
required:
- statusCode
- error
- message
'429':
description: You have exceeded the rate limit. Please check the rate limit docs for more information.
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 429
examples:
- 429
example: 429
error:
type: string
enum:
- Too Many Requests
examples:
- Too Many Requests
example: Too Many Requests
message:
type: string
examples:
- Rate limit exceeded
example: Rate limit exceeded
required:
- statusCode
- error
- message
/api/v2/inbox-placement-tests/email-service-provider-options:
get:
operationId: getInboxPlacementTestESPOptions
summary: Get ESP options
tags:
- InboxPlacementTest
description: Provides a list of available email service providers for inbox placement tests.
responses:
'200':
description: Default Response
content:
application/json:
schema:
type: array
items:
type: object
properties:
region:
type: string
example: North America
sub_region:
type: string
example: US
type:
type: string
example: Professional
esp:
type: string
example: Google
required:
- region
- sub_region
- type
- esp
'401':
description: This request is unauthorized (either the Authorization header is missing or invalid, or the API key
has been revoked)
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 401
examples:
- 401
example: 401
error:
type: string
enum:
- Unauthorized
examples:
- Unauthorized
example: Unauthorized
message:
type: string
examples:
- Missing Authorization header
example: Missing Authorization header
required:
- statusCode
- error
- message
'402':
description: This request cannot be fulfilled because the workspace does not have an active paid plan
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 402
examples:
- 402
example: 402
error:
type: string
enum:
- Payment Required
examples:
- Payment Required
example: Payment Required
message:
type: string
examples:
- Workspace does not have an active paid plan
example: Workspace does not have an active paid plan
required:
- statusCode
- error
- message
'404':
description: The requested resource was not found
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 404
examples:
- 404
example: 404
error:
type: string
enum:
- Not Found
examples:
- Not Found
example: Not Found
message:
type: string
examples:
- Resource not found
example: Resource not found
required:
- statusCode
- error
- message
'429':
description: You have exceeded the rate limit. Please check the rate limit docs for more information.
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 429
examples:
- 429
example: 429
error:
type: string
enum:
- Too Many Requests
examples:
- Too Many Requests
example: Too Many Requests
message:
type: string
examples:
- Rate limit exceeded
example: Rate limit exceeded
required:
- statusCode
- error
- message
/api/v2/lead-labels:
post:
operationId: createLeadLabel
summary: Create lead label
tags:
- LeadLabel
description: 'Requires one of the following scopes: `lead-labels:create`, `lead-labels:all`, `all:create`, `all:all`'
requestBody:
content:
application/json:
schema:
title: CreateLead Label
description: The Lead Label to create
type: object
properties:
label:
type: string
description: Display label for the custom lead label
example: Hot Lead
interest_status_label:
type: string
description: Interest status label associated with this label
enum:
- positive
- negative
- neutral
x-enumDescriptions:
positive: Positive
negative: Negative
neutral: Neutral
example: positive
description:
type:
- string
- 'null'
description: Detailed description of the custom lead label purpose
example: Used for marking high-priority leads
use_with_ai:
type:
- boolean
- 'null'
description: Whether this label should be used with AI features
example: false
required:
- label
- interest_status_label
additionalProperties: false
required: true
description: The Lead Label to create
responses:
'200':
description: The Lead Label
content:
application/json:
schema:
$ref: '#/components/schemas/LeadLabel'
'400':
description: Invalid request body (e.g. missing required fields, or invalid field values)
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 400
examples:
- 400
example: 400
error:
type: string
enum:
- Bad Request
examples:
- Bad Request
example: Bad Request
message:
type: string
examples:
- body must have required property 'name'
example: body must have required property 'name'
required:
- statusCode
- error
- message
'401':
description: This request is unauthorized (either the Authorization header is missing or invalid, or the API key
has been revoked)
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 401
examples:
- 401
example: 401
error:
type: string
enum:
- Unauthorized
examples:
- Unauthorized
example: Unauthorized
message:
type: string
examples:
- Missing Authorization header
example: Missing Authorization header
required:
- statusCode
- error
- message
'402':
description: This request cannot be fulfilled because the workspace does not have an active paid plan
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 402
examples:
- 402
example: 402
error:
type: string
enum:
- Payment Required
examples:
- Payment Required
example: Payment Required
message:
type: string
examples:
- Workspace does not have an active paid plan
example: Workspace does not have an active paid plan
required:
- statusCode
- error
- message
'404':
description: The requested resource was not found
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 404
examples:
- 404
example: 404
error:
type: string
enum:
- Not Found
examples:
- Not Found
example: Not Found
message:
type: string
examples:
- Resource not found
example: Resource not found
required:
- statusCode
- error
- message
'429':
description: You have exceeded the rate limit. Please check the rate limit docs for more information.
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 429
examples:
- 429
example: 429
error:
type: string
enum:
- Too Many Requests
examples:
- Too Many Requests
example: Too Many Requests
message:
type: string
examples:
- Rate limit exceeded
example: Rate limit exceeded
required:
- statusCode
- error
- message
get:
operationId: listLeadLabel
summary: List lead label
tags:
- LeadLabel
description: 'Requires one of the following scopes: `lead-labels:read`, `lead-labels:all`, `all:read`, `all:all`'
parameters:
- schema:
type: integer
minimum: 1
maximum: 100
example: 10
example: 10
in: query
name: limit
required: false
description: The number of items to return
- schema:
type: string
example: '2025-03-07T00:00:00.000Z'
example: '2025-03-07T00:00:00.000Z'
in: query
name: starting_after
required: false
description: The starting after timestamp to filter lead labels by.
- schema:
type: string
example: Hot Lead
example: Hot Lead
in: query
name: search
required: false
description: The search query to filter lead labels.
- schema:
type: string
enum:
- positive
- neutral
- negative
example: positive
example: positive
in: query
name: interest_status
required: false
description: The interest status to filter lead labels by.
responses:
'200':
description: The list of Lead Label
content:
application/json:
schema:
type: object
properties:
items:
type: array
description: The list of Lead Label
items:
$ref: '#/components/schemas/LeadLabel'
next_starting_after:
type: string
examples:
- 019ffad2-9c33-720b-b2c0-a2f792c0db40
- '2026-08-13T11:12:14.387Z'
description: The filter for getting the next items after this one, this could either be a UUID, a timestamp,
on an email depending on the specific API
example: 019ffad2-9c33-720b-b2c0-a2f792c0db40
additionalProperties: false
required:
- items
'401':
description: This request is unauthorized (either the Authorization header is missing or invalid, or the API key
has been revoked)
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 401
examples:
- 401
example: 401
error:
type: string
enum:
- Unauthorized
examples:
- Unauthorized
example: Unauthorized
message:
type: string
examples:
- Missing Authorization header
example: Missing Authorization header
required:
- statusCode
- error
- message
'402':
description: This request cannot be fulfilled because the workspace does not have an active paid plan
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 402
examples:
- 402
example: 402
error:
type: string
enum:
- Payment Required
examples:
- Payment Required
example: Payment Required
message:
type: string
examples:
- Workspace does not have an active paid plan
example: Workspace does not have an active paid plan
required:
- statusCode
- error
- message
'404':
description: The requested resource was not found
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 404
examples:
- 404
example: 404
error:
type: string
enum:
- Not Found
examples:
- Not Found
example: Not Found
message:
type: string
examples:
- Resource not found
example: Resource not found
required:
- statusCode
- error
- message
'429':
description: You have exceeded the rate limit. Please check the rate limit docs for more information.
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 429
examples:
- 429
example: 429
error:
type: string
enum:
- Too Many Requests
examples:
- Too Many Requests
example: Too Many Requests
message:
type: string
examples:
- Rate limit exceeded
example: Rate limit exceeded
required:
- statusCode
- error
- message
/api/v2/lead-labels/{id}:
get:
operationId: getLeadLabel
summary: Get lead label
tags:
- LeadLabel
description: 'Requires one of the following scopes: `lead-labels:read`, `lead-labels:all`, `all:read`, `all:all`'
parameters:
- schema:
type: string
format: uuid
example: 019ffad2-9c34-7f68-8145-ec292e79cfac
example: 019ffad2-9c34-7f68-8145-ec292e79cfac
in: path
name: id
required: true
description: The ID of the requested item
responses:
'200':
description: The requested Lead Label
content:
application/json:
schema:
$ref: '#/components/schemas/LeadLabel'
'401':
description: This request is unauthorized (either the Authorization header is missing or invalid, or the API key
has been revoked)
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 401
examples:
- 401
example: 401
error:
type: string
enum:
- Unauthorized
examples:
- Unauthorized
example: Unauthorized
message:
type: string
examples:
- Missing Authorization header
example: Missing Authorization header
required:
- statusCode
- error
- message
'402':
description: This request cannot be fulfilled because the workspace does not have an active paid plan
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 402
examples:
- 402
example: 402
error:
type: string
enum:
- Payment Required
examples:
- Payment Required
example: Payment Required
message:
type: string
examples:
- Workspace does not have an active paid plan
example: Workspace does not have an active paid plan
required:
- statusCode
- error
- message
'404':
description: The requested resource was not found
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 404
examples:
- 404
example: 404
error:
type: string
enum:
- Not Found
examples:
- Not Found
example: Not Found
message:
type: string
examples:
- Resource not found
example: Resource not found
required:
- statusCode
- error
- message
'429':
description: You have exceeded the rate limit. Please check the rate limit docs for more information.
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 429
examples:
- 429
example: 429
error:
type: string
enum:
- Too Many Requests
examples:
- Too Many Requests
example: Too Many Requests
message:
type: string
examples:
- Rate limit exceeded
example: Rate limit exceeded
required:
- statusCode
- error
- message
patch:
operationId: patchLeadLabel
summary: Patch lead label
tags:
- LeadLabel
description: 'Requires one of the following scopes: `lead-labels:update`, `lead-labels:all`, `all:update`, `all:all`'
requestBody:
content:
application/json:
schema:
type: object
properties:
label:
type: string
description: Display label for the custom lead label
example: Hot Lead
interest_status_label:
type: string
description: Interest status label associated with this label
enum:
- positive
- negative
- neutral
x-enumDescriptions:
positive: Positive
negative: Negative
neutral: Neutral
example: positive
description:
type:
- string
- 'null'
description: Detailed description of the custom lead label purpose
example: Used for marking high-priority leads
use_with_ai:
type:
- boolean
- 'null'
description: Whether this label should be used with AI features
example: false
required: []
additionalProperties: false
minProperties: 1
parameters:
- schema:
type: string
format: uuid
example: 019ffad2-9c34-7f68-8145-ec2a406f5831
example: 019ffad2-9c34-7f68-8145-ec2a406f5831
in: path
name: id
required: true
description: The ID of the item to update
responses:
'200':
description: The updated Lead Label
content:
application/json:
schema:
$ref: '#/components/schemas/LeadLabel'
'401':
description: This request is unauthorized (either the Authorization header is missing or invalid, or the API key
has been revoked)
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 401
examples:
- 401
example: 401
error:
type: string
enum:
- Unauthorized
examples:
- Unauthorized
example: Unauthorized
message:
type: string
examples:
- Missing Authorization header
example: Missing Authorization header
required:
- statusCode
- error
- message
'402':
description: This request cannot be fulfilled because the workspace does not have an active paid plan
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 402
examples:
- 402
example: 402
error:
type: string
enum:
- Payment Required
examples:
- Payment Required
example: Payment Required
message:
type: string
examples:
- Workspace does not have an active paid plan
example: Workspace does not have an active paid plan
required:
- statusCode
- error
- message
'404':
description: The requested resource was not found
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 404
examples:
- 404
example: 404
error:
type: string
enum:
- Not Found
examples:
- Not Found
example: Not Found
message:
type: string
examples:
- Resource not found
example: Resource not found
required:
- statusCode
- error
- message
'429':
description: You have exceeded the rate limit. Please check the rate limit docs for more information.
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 429
examples:
- 429
example: 429
error:
type: string
enum:
- Too Many Requests
examples:
- Too Many Requests
example: Too Many Requests
message:
type: string
examples:
- Rate limit exceeded
example: Rate limit exceeded
required:
- statusCode
- error
- message
delete:
operationId: deleteLeadLabel
summary: Delete lead label
tags:
- LeadLabel
description: 'Requires one of the following scopes: `lead-labels:delete`, `lead-labels:all`, `all:delete`, `all:all`'
requestBody:
content:
application/json:
schema:
properties:
reassigned_status:
type: number
examples:
- 1
description: The interest status to reassign leads and emails to.
example: 1
parameters:
- schema:
type: string
format: uuid
example: 019ffad2-9c34-7f68-8145-ec2b40927309
example: 019ffad2-9c34-7f68-8145-ec2b40927309
in: path
name: id
required: true
description: The ID of the item to delete
responses:
'200':
description: The deleted Lead Label
content:
application/json:
schema:
$ref: '#/components/schemas/LeadLabel'
'401':
description: This request is unauthorized (either the Authorization header is missing or invalid, or the API key
has been revoked)
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 401
examples:
- 401
example: 401
error:
type: string
enum:
- Unauthorized
examples:
- Unauthorized
example: Unauthorized
message:
type: string
examples:
- Missing Authorization header
example: Missing Authorization header
required:
- statusCode
- error
- message
'402':
description: This request cannot be fulfilled because the workspace does not have an active paid plan
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 402
examples:
- 402
example: 402
error:
type: string
enum:
- Payment Required
examples:
- Payment Required
example: Payment Required
message:
type: string
examples:
- Workspace does not have an active paid plan
example: Workspace does not have an active paid plan
required:
- statusCode
- error
- message
'404':
description: The requested resource was not found
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 404
examples:
- 404
example: 404
error:
type: string
enum:
- Not Found
examples:
- Not Found
example: Not Found
message:
type: string
examples:
- Resource not found
example: Resource not found
required:
- statusCode
- error
- message
'429':
description: You have exceeded the rate limit. Please check the rate limit docs for more information.
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 429
examples:
- 429
example: 429
error:
type: string
enum:
- Too Many Requests
examples:
- Too Many Requests
example: Too Many Requests
message:
type: string
examples:
- Rate limit exceeded
example: Rate limit exceeded
required:
- statusCode
- error
- message
/api/v2/lead-labels/ai-reply-label:
post:
operationId: testAiReplyLabelLeadLabels
summary: Test AI reply label prediction
tags:
- LeadLabel
description: 'Returns the AI-predicted lead label for a reply text. This simulates how AI auto-tagging would label an
incoming reply for testing custom labels and descriptions. Rate limit: 500 requests per 30 days per workspace. This
rate limit applies only to this testing endpoint; live reply processing does not use this limiter.
Requires one of the following scopes: `lead-labels:read`, `lead-labels:all`, `all:read`, `all:all`'
requestBody:
content:
application/json:
schema:
type: object
properties:
reply_text:
type: string
description: The reply text to classify.
example: Thanks for reaching out. I am interested in learning more.
required:
- reply_text
required: true
responses:
'200':
description: Default Response
content:
application/json:
schema:
type: object
properties:
result:
type: string
description: The predicted lead label.
example: Hot Lead
custom_labels_considered:
type: array
items:
type: string
example: Hot Lead
description: AI-enabled custom labels considered during classification.
example:
- Hot Lead
- Needs Follow-up
'401':
description: This request is unauthorized (either the Authorization header is missing or invalid, or the API key
has been revoked)
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 401
examples:
- 401
example: 401
error:
type: string
enum:
- Unauthorized
examples:
- Unauthorized
example: Unauthorized
message:
type: string
examples:
- Missing Authorization header
example: Missing Authorization header
required:
- statusCode
- error
- message
'402':
description: This request cannot be fulfilled because the workspace does not have an active paid plan
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 402
examples:
- 402
example: 402
error:
type: string
enum:
- Payment Required
examples:
- Payment Required
example: Payment Required
message:
type: string
examples:
- Workspace does not have an active paid plan
example: Workspace does not have an active paid plan
required:
- statusCode
- error
- message
'404':
description: The requested resource was not found
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 404
examples:
- 404
example: 404
error:
type: string
enum:
- Not Found
examples:
- Not Found
example: Not Found
message:
type: string
examples:
- Resource not found
example: Resource not found
required:
- statusCode
- error
- message
'429':
description: Default Response
content:
application/json:
schema:
type: object
properties:
error:
type: string
example: Rate limit exceeded
'500':
description: Default Response
content:
application/json:
schema:
type: object
properties:
error:
type: string
example: Classification failed
/api/v2/lead-lists:
post:
operationId: createLeadList
summary: Create lead list
tags:
- LeadList
description: 'Requires one of the following scopes: `lead_lists:create`, `lead_lists:all`, `all:create`, `all:all`'
requestBody:
content:
application/json:
schema:
title: CreateLead List
description: The Lead List to create
type: object
properties:
has_enrichment_task:
type:
- boolean
- 'null'
description: Whether this list runs the enrichment process on every added lead or not
example: false
owned_by:
type:
- string
- 'null'
description: User ID of the owner of this lead list. Defaults to the user that created the list
format: uuid
example: 019ffad2-5c79-7b95-8be2-2dc717cc24c7
name:
type: string
description: Name of the lead list
example: My Lead List
required:
- name
additionalProperties: false
required: true
description: The Lead List to create
responses:
'200':
description: The Lead List
content:
application/json:
schema:
$ref: '#/components/schemas/LeadList'
'400':
description: Invalid request body (e.g. missing required fields, or invalid field values)
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 400
examples:
- 400
example: 400
error:
type: string
enum:
- Bad Request
examples:
- Bad Request
example: Bad Request
message:
type: string
examples:
- body must have required property 'name'
example: body must have required property 'name'
required:
- statusCode
- error
- message
'401':
description: This request is unauthorized (either the Authorization header is missing or invalid, or the API key
has been revoked)
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 401
examples:
- 401
example: 401
error:
type: string
enum:
- Unauthorized
examples:
- Unauthorized
example: Unauthorized
message:
type: string
examples:
- Missing Authorization header
example: Missing Authorization header
required:
- statusCode
- error
- message
'402':
description: This request cannot be fulfilled because the workspace does not have an active paid plan
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 402
examples:
- 402
example: 402
error:
type: string
enum:
- Payment Required
examples:
- Payment Required
example: Payment Required
message:
type: string
examples:
- Workspace does not have an active paid plan
example: Workspace does not have an active paid plan
required:
- statusCode
- error
- message
'404':
description: The requested resource was not found
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 404
examples:
- 404
example: 404
error:
type: string
enum:
- Not Found
examples:
- Not Found
example: Not Found
message:
type: string
examples:
- Resource not found
example: Resource not found
required:
- statusCode
- error
- message
'429':
description: You have exceeded the rate limit. Please check the rate limit docs for more information.
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 429
examples:
- 429
example: 429
error:
type: string
enum:
- Too Many Requests
examples:
- Too Many Requests
example: Too Many Requests
message:
type: string
examples:
- Rate limit exceeded
example: Rate limit exceeded
required:
- statusCode
- error
- message
get:
operationId: listLeadList
summary: List lead list
tags:
- LeadList
description: 'Requires one of the following scopes: `lead_lists:read`, `lead_lists:all`, `all:read`, `all:all`'
parameters:
- schema:
type: integer
minimum: 1
maximum: 100
example: 10
example: 10
in: query
name: limit
required: false
description: The number of items to return
- schema:
type: string
example: '2025-03-07T00:00:00.000Z'
example: '2025-03-07T00:00:00.000Z'
in: query
name: starting_after
required: false
description: The starting after timestamp to filter lead lists by.
- schema:
type: boolean
example: true
example: true
in: query
name: has_enrichment_task
required: false
description: Whether the list has an enrichment task.
- schema:
type: string
example: Summer 2025 List
example: Summer 2025 List
in: query
name: search
required: false
description: The search query to filter lead lists by.
responses:
'200':
description: The list of Lead List
content:
application/json:
schema:
type: object
properties:
items:
type: array
description: The list of Lead List
items:
$ref: '#/components/schemas/LeadList'
next_starting_after:
type: string
examples:
- 019ffad2-9c3a-776c-8b48-37e10199c288
- '2026-08-13T11:12:14.394Z'
description: The filter for getting the next items after this one, this could either be a UUID, a timestamp,
on an email depending on the specific API
example: 019ffad2-9c3a-776c-8b48-37e10199c288
additionalProperties: false
required:
- items
'401':
description: This request is unauthorized (either the Authorization header is missing or invalid, or the API key
has been revoked)
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 401
examples:
- 401
example: 401
error:
type: string
enum:
- Unauthorized
examples:
- Unauthorized
example: Unauthorized
message:
type: string
examples:
- Missing Authorization header
example: Missing Authorization header
required:
- statusCode
- error
- message
'402':
description: This request cannot be fulfilled because the workspace does not have an active paid plan
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 402
examples:
- 402
example: 402
error:
type: string
enum:
- Payment Required
examples:
- Payment Required
example: Payment Required
message:
type: string
examples:
- Workspace does not have an active paid plan
example: Workspace does not have an active paid plan
required:
- statusCode
- error
- message
'404':
description: The requested resource was not found
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 404
examples:
- 404
example: 404
error:
type: string
enum:
- Not Found
examples:
- Not Found
example: Not Found
message:
type: string
examples:
- Resource not found
example: Resource not found
required:
- statusCode
- error
- message
'429':
description: You have exceeded the rate limit. Please check the rate limit docs for more information.
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 429
examples:
- 429
example: 429
error:
type: string
enum:
- Too Many Requests
examples:
- Too Many Requests
example: Too Many Requests
message:
type: string
examples:
- Rate limit exceeded
example: Rate limit exceeded
required:
- statusCode
- error
- message
/api/v2/lead-lists/{id}:
get:
operationId: getLeadList
summary: Get lead list
tags:
- LeadList
description: 'Requires one of the following scopes: `lead_lists:read`, `lead_lists:all`, `all:read`, `all:all`'
parameters:
- schema:
type: string
format: uuid
example: 019ffad2-9c3b-7cc8-976d-4ad656e3bf47
example: 019ffad2-9c3b-7cc8-976d-4ad656e3bf47
in: path
name: id
required: true
description: The ID of the requested item
responses:
'200':
description: The requested Lead List
content:
application/json:
schema:
$ref: '#/components/schemas/LeadList'
'401':
description: This request is unauthorized (either the Authorization header is missing or invalid, or the API key
has been revoked)
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 401
examples:
- 401
example: 401
error:
type: string
enum:
- Unauthorized
examples:
- Unauthorized
example: Unauthorized
message:
type: string
examples:
- Missing Authorization header
example: Missing Authorization header
required:
- statusCode
- error
- message
'402':
description: This request cannot be fulfilled because the workspace does not have an active paid plan
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 402
examples:
- 402
example: 402
error:
type: string
enum:
- Payment Required
examples:
- Payment Required
example: Payment Required
message:
type: string
examples:
- Workspace does not have an active paid plan
example: Workspace does not have an active paid plan
required:
- statusCode
- error
- message
'404':
description: The requested resource was not found
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 404
examples:
- 404
example: 404
error:
type: string
enum:
- Not Found
examples:
- Not Found
example: Not Found
message:
type: string
examples:
- Resource not found
example: Resource not found
required:
- statusCode
- error
- message
'429':
description: You have exceeded the rate limit. Please check the rate limit docs for more information.
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 429
examples:
- 429
example: 429
error:
type: string
enum:
- Too Many Requests
examples:
- Too Many Requests
example: Too Many Requests
message:
type: string
examples:
- Rate limit exceeded
example: Rate limit exceeded
required:
- statusCode
- error
- message
patch:
operationId: patchLeadList
summary: Patch lead list
tags:
- LeadList
description: 'Requires one of the following scopes: `lead_lists:update`, `lead_lists:all`, `all:update`, `all:all`'
requestBody:
content:
application/json:
schema:
type: object
properties:
has_enrichment_task:
type:
- boolean
- 'null'
description: Whether this list runs the enrichment process on every added lead or not
example: false
owned_by:
type:
- string
- 'null'
description: User ID of the owner of this lead list. Defaults to the user that created the list
format: uuid
example: 019ffad2-5c79-7b95-8be2-2dc717cc24c7
name:
type: string
description: Name of the lead list
example: My Lead List
required: []
additionalProperties: false
minProperties: 1
parameters:
- schema:
type: string
format: uuid
example: 019ffad2-9c3b-7cc8-976d-4ad7004c6ee4
example: 019ffad2-9c3b-7cc8-976d-4ad7004c6ee4
in: path
name: id
required: true
description: The ID of the item to update
responses:
'200':
description: The updated Lead List
content:
application/json:
schema:
$ref: '#/components/schemas/LeadList'
'401':
description: This request is unauthorized (either the Authorization header is missing or invalid, or the API key
has been revoked)
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 401
examples:
- 401
example: 401
error:
type: string
enum:
- Unauthorized
examples:
- Unauthorized
example: Unauthorized
message:
type: string
examples:
- Missing Authorization header
example: Missing Authorization header
required:
- statusCode
- error
- message
'402':
description: This request cannot be fulfilled because the workspace does not have an active paid plan
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 402
examples:
- 402
example: 402
error:
type: string
enum:
- Payment Required
examples:
- Payment Required
example: Payment Required
message:
type: string
examples:
- Workspace does not have an active paid plan
example: Workspace does not have an active paid plan
required:
- statusCode
- error
- message
'404':
description: The requested resource was not found
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 404
examples:
- 404
example: 404
error:
type: string
enum:
- Not Found
examples:
- Not Found
example: Not Found
message:
type: string
examples:
- Resource not found
example: Resource not found
required:
- statusCode
- error
- message
'429':
description: You have exceeded the rate limit. Please check the rate limit docs for more information.
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 429
examples:
- 429
example: 429
error:
type: string
enum:
- Too Many Requests
examples:
- Too Many Requests
example: Too Many Requests
message:
type: string
examples:
- Rate limit exceeded
example: Rate limit exceeded
required:
- statusCode
- error
- message
delete:
operationId: deleteLeadList
summary: Delete lead list
tags:
- LeadList
description: 'Requires one of the following scopes: `lead_lists:delete`, `lead_lists:all`, `all:delete`, `all:all`'
requestBody:
content:
application/json:
schema:
type: 'null'
example: null
parameters:
- schema:
type: string
format: uuid
example: 019ffad2-9c3c-7701-b23e-bcb362d6d1c6
example: 019ffad2-9c3c-7701-b23e-bcb362d6d1c6
in: path
name: id
required: true
description: The ID of the item to delete
responses:
'200':
description: The deleted Lead List
content:
application/json:
schema:
$ref: '#/components/schemas/LeadList'
'401':
description: This request is unauthorized (either the Authorization header is missing or invalid, or the API key
has been revoked)
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 401
examples:
- 401
example: 401
error:
type: string
enum:
- Unauthorized
examples:
- Unauthorized
example: Unauthorized
message:
type: string
examples:
- Missing Authorization header
example: Missing Authorization header
required:
- statusCode
- error
- message
'402':
description: This request cannot be fulfilled because the workspace does not have an active paid plan
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 402
examples:
- 402
example: 402
error:
type: string
enum:
- Payment Required
examples:
- Payment Required
example: Payment Required
message:
type: string
examples:
- Workspace does not have an active paid plan
example: Workspace does not have an active paid plan
required:
- statusCode
- error
- message
'404':
description: The requested resource was not found
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 404
examples:
- 404
example: 404
error:
type: string
enum:
- Not Found
examples:
- Not Found
example: Not Found
message:
type: string
examples:
- Resource not found
example: Resource not found
required:
- statusCode
- error
- message
'429':
description: You have exceeded the rate limit. Please check the rate limit docs for more information.
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 429
examples:
- 429
example: 429
error:
type: string
enum:
- Too Many Requests
examples:
- Too Many Requests
example: Too Many Requests
message:
type: string
examples:
- Rate limit exceeded
example: Rate limit exceeded
required:
- statusCode
- error
- message
/api/v2/lead-lists/{id}/verification-stats:
get:
operationId: getVerificationStats
summary: Get verification statistics for a lead list
tags:
- LeadList
description: Get verification statistics for a lead list
parameters:
- schema:
type: string
format: uuid
example: 019ffad2-9c3c-7701-b23e-bcb4770f23b9
example: 019ffad2-9c3c-7701-b23e-bcb4770f23b9
in: path
name: id
required: true
responses:
'200':
description: Default Response
content:
application/json:
schema:
type: object
properties:
stats:
type: object
properties:
verified:
type: number
description: Count of verified leads
example: 150
invalid:
type: number
description: Count of invalid leads
example: 25
risky:
type: number
description: Count of risky leads
example: 10
catch_all:
type: number
description: Count of catch all leads
example: 5
job_change:
type: number
description: Count of job change leads
example: 2
verification_job_pending_leadfinder:
type: number
description: Count of verification job pending leads for leadfinder
example: 11
verification_job_pending_user:
type: number
description: Count of verification job pending leads for user
example: 12
description: Sums up the leads by their verification status
example:
verified: 150
invalid: 25
risky: 10
catch_all: 5
job_change: 2
verification_job_pending_leadfinder: 11
verification_job_pending_user: 12
total_leads:
type: number
description: Total number of leads in the list
example: 203
required:
- stats
- total_leads
'401':
description: This request is unauthorized (either the Authorization header is missing or invalid, or the API key
has been revoked)
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 401
examples:
- 401
example: 401
error:
type: string
enum:
- Unauthorized
examples:
- Unauthorized
example: Unauthorized
message:
type: string
examples:
- Missing Authorization header
example: Missing Authorization header
required:
- statusCode
- error
- message
'402':
description: This request cannot be fulfilled because the workspace does not have an active paid plan
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 402
examples:
- 402
example: 402
error:
type: string
enum:
- Payment Required
examples:
- Payment Required
example: Payment Required
message:
type: string
examples:
- Workspace does not have an active paid plan
example: Workspace does not have an active paid plan
required:
- statusCode
- error
- message
'404':
description: The requested resource was not found
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 404
examples:
- 404
example: 404
error:
type: string
enum:
- Not Found
examples:
- Not Found
example: Not Found
message:
type: string
examples:
- Resource not found
example: Resource not found
required:
- statusCode
- error
- message
'429':
description: You have exceeded the rate limit. Please check the rate limit docs for more information.
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 429
examples:
- 429
example: 429
error:
type: string
enum:
- Too Many Requests
examples:
- Too Many Requests
example: Too Many Requests
message:
type: string
examples:
- Rate limit exceeded
example: Rate limit exceeded
required:
- statusCode
- error
- message
/api/v2/leads:
post:
operationId: createLead
summary: Create lead
tags:
- Lead
description: 'Requires one of the following scopes: `leads:create`, `leads:all`, `all:create`, `all:all`'
requestBody:
content:
application/json:
schema:
title: CreateLead
description: 'When using `campaign`: The `email` field is required. When using `list_id`: The `email` field
is optional, but at least one of the following must be provided: `email`, `first_name`, or `last_name`.'
type: object
properties:
campaign:
type:
- string
- 'null'
description: Campaign ID associated with the lead
format: uuid
example: 019ffad2-53a3-7590-935f-b48cddbf2d9e
email:
type:
- string
- 'null'
description: Email address of the lead
example: example@example.com
personalization:
type:
- string
- 'null'
description: Personalization of the lead
example: Hello, how are you?
website:
type:
- string
- 'null'
description: Website of the lead
example: https://example.com
last_name:
type:
- string
- 'null'
description: Last name of the lead
example: Doe
first_name:
type:
- string
- 'null'
description: First name of the lead
example: John
company_name:
type:
- string
- 'null'
description: Company name of the lead
example: Example Inc.
job_title:
type:
- string
- 'null'
description: Job title of the lead
example: Head of Growth
phone:
type:
- string
- 'null'
description: Phone number of the lead
example: '+1234567890'
lt_interest_status:
type: number
description: Lead interest status. It can be either a static value (check below), or a custom status interest
value
enum:
- 1
- 2
- 3
- 4
- 0
- -1
- -2
- -3
- -4
x-enumDescriptions:
'0': Out of Office
'1': Interested
'2': Meeting Booked
'3': Meeting Completed
'4': Won
'-1': Not Interested
'-2': Wrong Person
'-3': Lost
'-4': No Show
example: 1
pl_value_lead:
type:
- string
- 'null'
description: Potential value of the lead
example: High
list_id:
type:
- string
- 'null'
description: List ID associated with the lead
format: uuid
example: 019ffad2-53a3-7590-935f-b491178cb297
assigned_to:
type:
- string
- 'null'
description: ID of the user assigned to the lead
format: uuid
example: 019ffad2-53a3-7590-935f-b4938179e96d
skip_if_in_workspace:
type: boolean
description: Whether to skip if the lead is already in the workspace.
example: true
skip_if_in_campaign:
type: boolean
description: Whether to skip if the lead is already in the campaign.
example: true
skip_if_in_list:
type: boolean
description: Whether to skip if the lead is already in the list.
example: true
blocklist_id:
type: string
format: uuid
description: The ID of the blocklist to check for the lead.
example: 019ffad2-9c48-7618-b387-b7a401aae5fc
verify_leads_for_lead_finder:
type: boolean
description: Whether to verify the leads for the lead finder.
example: true
verify_leads_on_import:
type: boolean
description: Whether to verify the leads on import.
example: true
custom_variables:
type: object
additionalProperties:
type:
- string
- number
- boolean
- 'null'
description: Custom variables can include any metadata about the lead that is relevant to the campaign,
the campaign will be updated to allow all the other leads in the campaign to have the same custom variables.
The custom variables will be added to the lead payload field
example:
past_customer: true
has_tried_competitors: false
required: []
additionalProperties: false
description: 'When using `campaign`: The `email` field is required. When using `list_id`: The `email` field is optional,
but at least one of the following must be provided: `email`, `first_name`, or `last_name`.'
responses:
'200':
description: The Lead
content:
application/json:
schema:
$ref: '#/components/schemas/Lead'
'400':
description: Invalid request body (e.g. missing required fields, or invalid field values)
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 400
examples:
- 400
example: 400
error:
type: string
enum:
- Bad Request
examples:
- Bad Request
example: Bad Request
message:
type: string
examples:
- body must have required property 'name'
example: body must have required property 'name'
required:
- statusCode
- error
- message
'401':
description: This request is unauthorized (either the Authorization header is missing or invalid, or the API key
has been revoked)
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 401
examples:
- 401
example: 401
error:
type: string
enum:
- Unauthorized
examples:
- Unauthorized
example: Unauthorized
message:
type: string
examples:
- Missing Authorization header
example: Missing Authorization header
required:
- statusCode
- error
- message
'402':
description: This request cannot be fulfilled because the workspace does not have an active paid plan
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 402
examples:
- 402
example: 402
error:
type: string
enum:
- Payment Required
examples:
- Payment Required
example: Payment Required
message:
type: string
examples:
- Workspace does not have an active paid plan
example: Workspace does not have an active paid plan
required:
- statusCode
- error
- message
'404':
description: The requested resource was not found
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 404
examples:
- 404
example: 404
error:
type: string
enum:
- Not Found
examples:
- Not Found
example: Not Found
message:
type: string
examples:
- Resource not found
example: Resource not found
required:
- statusCode
- error
- message
'429':
description: You have exceeded the rate limit. Please check the rate limit docs for more information.
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 429
examples:
- 429
example: 429
error:
type: string
enum:
- Too Many Requests
examples:
- Too Many Requests
example: Too Many Requests
message:
type: string
examples:
- Rate limit exceeded
example: Rate limit exceeded
required:
- statusCode
- error
- message
delete:
operationId: bulkDeleteLeads
summary: Delete leads in bulk
tags:
- Lead
description: 'Delete multiple leads from a campaign or list based on filters. You must provide either `campaign_id`
or `list_id`. Optionally filter by status or specific IDs.
Requires one of the following scopes: `leads:delete`, `leads:all`, `all:delete`, `all:all`'
requestBody:
content:
application/json:
schema:
type: object
properties:
campaign_id:
type: string
format: uuid
description: The ID of the campaign to delete leads from. Required if `list_id` is not provided.
example: 019ffad2-9c4c-7079-b87c-ef3272fbbda1
list_id:
type: string
format: uuid
description: The ID of the list to delete leads from. Required if `campaign_id` is not provided.
example: 019ffad2-9c4c-7079-b87c-ef33fbdf5eac
status:
type: number
enum:
- 1
- 2
- 3
- -1
- -2
- -3
x-enumDescriptions:
'1': Active
'2': Paused
'3': Completed
'-1': Bounced
'-2': Unsubscribed
'-3': Skipped
description: Optional status filter. Only delete leads with this status.
example: 3
ids:
type: array
items:
type: string
format: uuid
example: 019ffad2-9c4c-7079-b87c-ef348efbb1c9
description: Optional array of specific lead IDs to delete. When provided, only these leads will be deleted
from the specified campaign or list.
limit:
type: integer
minimum: 1
maximum: 10000
description: Maximum number of leads to delete. If not specified, all matching leads will be deleted.
example: 100
anyOf:
- required:
- campaign_id
- required:
- list_id
responses:
'200':
description: Default Response
content:
application/json:
schema:
type: object
properties:
count:
type: integer
description: Number of leads successfully deleted.
example: 5
'401':
description: This request is unauthorized (either the Authorization header is missing or invalid, or the API key
has been revoked)
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 401
examples:
- 401
example: 401
error:
type: string
enum:
- Unauthorized
examples:
- Unauthorized
example: Unauthorized
message:
type: string
examples:
- Missing Authorization header
example: Missing Authorization header
required:
- statusCode
- error
- message
'402':
description: This request cannot be fulfilled because the workspace does not have an active paid plan
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 402
examples:
- 402
example: 402
error:
type: string
enum:
- Payment Required
examples:
- Payment Required
example: Payment Required
message:
type: string
examples:
- Workspace does not have an active paid plan
example: Workspace does not have an active paid plan
required:
- statusCode
- error
- message
'404':
description: The requested resource was not found
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 404
examples:
- 404
example: 404
error:
type: string
enum:
- Not Found
examples:
- Not Found
example: Not Found
message:
type: string
examples:
- Resource not found
example: Resource not found
required:
- statusCode
- error
- message
'429':
description: You have exceeded the rate limit. Please check the rate limit docs for more information.
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 429
examples:
- 429
example: 429
error:
type: string
enum:
- Too Many Requests
examples:
- Too Many Requests
example: Too Many Requests
message:
type: string
examples:
- Rate limit exceeded
example: Rate limit exceeded
required:
- statusCode
- error
- message
/api/v2/leads/list:
post:
operationId: listLeads
summary: List leads
tags:
- Lead
description: 'This endpoint is a POST endpoint, instead of GET - a deviation from the REST APIs standards we’re following
because of the complex arguments it accepts, which would be too hard to express through query parameters. Results
are ordered by each lead''s `id` field in ascending order (or by `contact` when distinct_contacts is true) so clients
can paginate chronologically by reusing the cursor returned in `next_starting_after`. Leads created on or after October
15, 2025 respect this chronological ordering; older records may appear out of sequence when sorted by ID.
Requires one of the following scopes: `leads:read`, `leads:all`, `all:read`, `all:all`'
requestBody:
content:
application/json:
schema:
type: object
properties:
search:
type: string
description: A search string to search the leads against - can be First Name, Last Name, or Email
example: John Doe
filter:
type: string
x-enumDescriptions:
FILTER_VAL_CONTACTED: Filter for contacted leads
FILTER_VAL_NOT_CONTACTED: Filter for not contacted leads
FILTER_VAL_COMPLETED: Filter for completed leads
FILTER_VAL_UNSUBSCRIBED: Filter for unsubscribed leads
FILTER_VAL_ACTIVE: Filter for active leads
FILTER_LEAD_INTERESTED: Filter for interested leads
FILTER_LEAD_NOT_INTERESTED: Filter for not interested leads
FILTER_LEAD_MEETING_BOOKED: Filter for leads with meeting booked
FILTER_LEAD_MEETING_COMPLETED: Filter for leads with meeting completed
FILTER_LEAD_CLOSED: Filter for closed leads
FILTER_LEAD_OUT_OF_OFFICE: Filter for leads out of office
FILTER_LEAD_WRONG_PERSON: Filter for wrong person leads
FILTER_LEAD_LOST: Filter for lost leads
FILTER_LEAD_NO_SHOW: Filter for no show leads
FILTER_LEAD_CUSTOM_LABEL_POSITIVE: Filter for leads with positive custom label
FILTER_LEAD_CUSTOM_LABEL_NEGATIVE: Filter for leads with negative custom label
FILTER_VAL_BOUNCED: Filter for bounced leads
FILTER_VAL_SKIPPED: Filter for skipped leads
FILTER_VAL_RISKY: Filter for risky leads
FILTER_VAL_INVALID: Filter for invalid leads
FILTER_VAL_VALID: Filter for valid leads
FILTER_VAL_IN_SUBSEQUENCE: Filter for leads in subsequence
FILTER_VAL_OPENED_NO_REPLY: Filter for leads with opened emails but no reply
FILTER_VAL_COMPLETED_NO_REPLY: Filter for leads with completed sequence but no reply
FILTER_VAL_NO_OPENS: Filter for leads with no opened emails
FILTER_VAL_REPLIED: Filter for leads that replied
FILTER_VAL_LINK_CLICKED: Filter for leads that clicked a link
description: Filter criteria for leads. For custom lead labels, use the `interest_status` field.
example: FILTER_VAL_CONTACTED
campaign:
type: string
format: uuid
description: Campaign ID to filter leads
example: 019ffad2-90b0-7d6d-b877-e244a0d3d2b2
list_id:
type: string
format: uuid
description: List ID to filter leads
example: 019ffad2-90b0-7d6d-b877-e24585b902a6
in_campaign:
type: boolean
description: Whether the lead is in a campaign
example: true
in_list:
type: boolean
description: Whether the lead is in a list
example: true
ids:
type: array
items:
type: string
format: uuid
example: 019ffad2-90b0-7d6d-b877-e246e5ba5796
description: Array of lead IDs to include
queries:
type: array
items:
type: object
required:
- actionType
- values
description: Smart view query to filter leads
properties:
actionType:
type: string
enum:
- reply
- email-open
- last-contacted
- link-click
- lead-status
- lead-status-change
example: email-open
values:
type: object
properties:
occurrence-days:
type: number
example: 1
occurrence-count:
type: object
properties:
condition:
type: string
enum:
- more
- less
- equal
example: more
count:
type: number
example: 1
lead-status:
type: object
properties:
status:
type: number
example: 1
condition:
type: string
enum:
- is
- is-not
example: is
example:
actionType: email-open
values:
occurrence-days: 1
excluded_ids:
type: array
items:
type: string
format: uuid
example: 019ffad2-90b0-7d6d-b877-e2478776f0c0
description: Array of lead IDs to exclude
contacts:
type: array
items:
type: string
format: email
example: test@test.com
description: Array of emails the leads needs to have
limit:
type: integer
minimum: 1
maximum: 100
description: The number of items to return
example: 10
starting_after:
type: string
description: Forward pagination cursor. When distinct_contacts is false, provide the `id` value from the
last lead of the previous page; when true, provide the lead's email.
example: 019ffad2-9c48-7618-b387-b7a5991d1b2a
organization_user_ids:
type: array
items:
type: string
format: uuid
example: 019ffad2-9c48-7618-b387-b7a6d551ef2e
description: Array of organization user IDs to filter leads
smart_view_id:
type: string
format: uuid
description: Smart view ID to filter leads
example: 019ffad2-9c48-7618-b387-b7a7119afa1a
is_website_visitor:
type: boolean
description: Whether the lead is a website visitor
example: true
distinct_contacts:
type: boolean
description: Whether to return distinct contacts
example: true
enrichment_status:
type: number
enum:
- 1
- -1
- 11
- -2
x-enumDescriptions:
'1': The lead has been successfully enriched
'11': The lead is pending enrichment
'-1': Enrichment data is not available for the lead
'-2': An error occurred during the enrichment process
description: Enrichment status to filter leads
example: 1
esg_code:
type: string
enum:
- '0'
- '1'
- '2'
- '3'
- '4'
- all
- none
x-enumDescriptions:
'0': In Queue
'1': Barracuda
'2': Mimecast
'3': Proofpoint
'4': Cisco
all: All
none: None
description: ESG code to filter leads
example: '1'
responses:
'200':
description: The list of Lead
content:
application/json:
schema:
type: object
properties:
items:
type: array
description: The list of Lead
items:
$ref: '#/components/schemas/Lead'
next_starting_after:
type: string
examples:
- 019ffad2-9c48-7618-b387-b7a889cb0c87
- '2026-08-13T11:12:14.408Z'
description: The filter for getting the next items after this one, this could either be a UUID, a timestamp,
on an email depending on the specific API
example: 019ffad2-9c48-7618-b387-b7a889cb0c87
additionalProperties: false
required:
- items
'400':
description: Invalid request body (e.g. missing required fields, or invalid field values)
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 400
examples:
- 400
example: 400
error:
type: string
enum:
- Bad Request
examples:
- Bad Request
example: Bad Request
message:
type: string
examples:
- body must have required property 'name'
example: body must have required property 'name'
required:
- statusCode
- error
- message
'401':
description: This request is unauthorized (either the Authorization header is missing or invalid, or the API key
has been revoked)
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 401
examples:
- 401
example: 401
error:
type: string
enum:
- Unauthorized
examples:
- Unauthorized
example: Unauthorized
message:
type: string
examples:
- Missing Authorization header
example: Missing Authorization header
required:
- statusCode
- error
- message
'402':
description: This request cannot be fulfilled because the workspace does not have an active paid plan
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 402
examples:
- 402
example: 402
error:
type: string
enum:
- Payment Required
examples:
- Payment Required
example: Payment Required
message:
type: string
examples:
- Workspace does not have an active paid plan
example: Workspace does not have an active paid plan
required:
- statusCode
- error
- message
'404':
description: The requested resource was not found
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 404
examples:
- 404
example: 404
error:
type: string
enum:
- Not Found
examples:
- Not Found
example: Not Found
message:
type: string
examples:
- Resource not found
example: Resource not found
required:
- statusCode
- error
- message
'429':
description: You have exceeded the rate limit. Please check the rate limit docs for more information.
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 429
examples:
- 429
example: 429
error:
type: string
enum:
- Too Many Requests
examples:
- Too Many Requests
example: Too Many Requests
message:
type: string
examples:
- Rate limit exceeded
example: Rate limit exceeded
required:
- statusCode
- error
- message
/api/v2/leads/{id}:
get:
operationId: getLead
summary: Get lead
tags:
- Lead
description: 'Requires one of the following scopes: `leads:read`, `leads:all`, `all:read`, `all:all`'
parameters:
- schema:
type: string
format: uuid
example: 019ffad2-9c49-7d93-989e-749770a7c9b8
example: 019ffad2-9c49-7d93-989e-749770a7c9b8
in: path
name: id
required: true
description: The ID of the requested item
responses:
'200':
description: The requested Lead
content:
application/json:
schema:
$ref: '#/components/schemas/Lead'
'401':
description: This request is unauthorized (either the Authorization header is missing or invalid, or the API key
has been revoked)
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 401
examples:
- 401
example: 401
error:
type: string
enum:
- Unauthorized
examples:
- Unauthorized
example: Unauthorized
message:
type: string
examples:
- Missing Authorization header
example: Missing Authorization header
required:
- statusCode
- error
- message
'402':
description: This request cannot be fulfilled because the workspace does not have an active paid plan
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 402
examples:
- 402
example: 402
error:
type: string
enum:
- Payment Required
examples:
- Payment Required
example: Payment Required
message:
type: string
examples:
- Workspace does not have an active paid plan
example: Workspace does not have an active paid plan
required:
- statusCode
- error
- message
'404':
description: The requested resource was not found
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 404
examples:
- 404
example: 404
error:
type: string
enum:
- Not Found
examples:
- Not Found
example: Not Found
message:
type: string
examples:
- Resource not found
example: Resource not found
required:
- statusCode
- error
- message
'429':
description: You have exceeded the rate limit. Please check the rate limit docs for more information.
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 429
examples:
- 429
example: 429
error:
type: string
enum:
- Too Many Requests
examples:
- Too Many Requests
example: Too Many Requests
message:
type: string
examples:
- Rate limit exceeded
example: Rate limit exceeded
required:
- statusCode
- error
- message
patch:
operationId: patchLead
summary: Patch lead
tags:
- Lead
description: 'Requires one of the following scopes: `leads:update`, `leads:all`, `all:update`, `all:all`'
requestBody:
content:
application/json:
schema:
type: object
properties:
personalization:
type:
- string
- 'null'
description: Personalization of the lead
example: Hello, how are you?
website:
type:
- string
- 'null'
description: Website of the lead
example: https://example.com
last_name:
type:
- string
- 'null'
description: Last name of the lead
example: Doe
first_name:
type:
- string
- 'null'
description: First name of the lead
example: John
company_name:
type:
- string
- 'null'
description: Company name of the lead
example: Example Inc.
job_title:
type:
- string
- 'null'
description: Job title of the lead
example: Head of Growth
phone:
type:
- string
- 'null'
description: Phone number of the lead
example: '+1234567890'
lt_interest_status:
type: number
description: Lead interest status. It can be either a static value (check below), or a custom status interest
value
enum:
- 1
- 2
- 3
- 4
- 0
- -1
- -2
- -3
- -4
x-enumDescriptions:
'0': Out of Office
'1': Interested
'2': Meeting Booked
'3': Meeting Completed
'4': Won
'-1': Not Interested
'-2': Wrong Person
'-3': Lost
'-4': No Show
example: 1
pl_value_lead:
type:
- string
- 'null'
description: Potential value of the lead
example: High
assigned_to:
type:
- string
- 'null'
description: ID of the user assigned to the lead
format: uuid
example: 019ffad2-53a3-7590-935f-b4938179e96d
custom_variables:
type: object
additionalProperties:
type:
- string
- number
- boolean
- 'null'
description: Custom variables can include any metadata about the lead that is relevant to the campaign,
the campaign will be updated to allow all the other leads in the campaign to have the same custom variables.
The custom variables will be added to the lead payload field
example:
past_customer: true
has_tried_competitors: false
required: []
additionalProperties: false
minProperties: 1
parameters:
- schema:
type: string
format: uuid
example: 019ffad2-9c4a-73b2-bd72-f47d2bdfc6ad
example: 019ffad2-9c4a-73b2-bd72-f47d2bdfc6ad
in: path
name: id
required: true
description: The ID of the item to update
responses:
'200':
description: The updated Lead
content:
application/json:
schema:
$ref: '#/components/schemas/Lead'
'401':
description: This request is unauthorized (either the Authorization header is missing or invalid, or the API key
has been revoked)
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 401
examples:
- 401
example: 401
error:
type: string
enum:
- Unauthorized
examples:
- Unauthorized
example: Unauthorized
message:
type: string
examples:
- Missing Authorization header
example: Missing Authorization header
required:
- statusCode
- error
- message
'402':
description: This request cannot be fulfilled because the workspace does not have an active paid plan
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 402
examples:
- 402
example: 402
error:
type: string
enum:
- Payment Required
examples:
- Payment Required
example: Payment Required
message:
type: string
examples:
- Workspace does not have an active paid plan
example: Workspace does not have an active paid plan
required:
- statusCode
- error
- message
'404':
description: The requested resource was not found
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 404
examples:
- 404
example: 404
error:
type: string
enum:
- Not Found
examples:
- Not Found
example: Not Found
message:
type: string
examples:
- Resource not found
example: Resource not found
required:
- statusCode
- error
- message
'429':
description: You have exceeded the rate limit. Please check the rate limit docs for more information.
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 429
examples:
- 429
example: 429
error:
type: string
enum:
- Too Many Requests
examples:
- Too Many Requests
example: Too Many Requests
message:
type: string
examples:
- Rate limit exceeded
example: Rate limit exceeded
required:
- statusCode
- error
- message
delete:
operationId: deleteLead
summary: Delete lead
tags:
- Lead
description: 'Requires one of the following scopes: `leads:delete`, `leads:all`, `all:delete`, `all:all`'
requestBody:
content:
application/json:
schema:
type: 'null'
example: null
parameters:
- schema:
type: string
format: uuid
example: 019ffad2-9c4b-7871-94ec-7c3756e96217
example: 019ffad2-9c4b-7871-94ec-7c3756e96217
in: path
name: id
required: true
description: The ID of the item to delete
responses:
'200':
description: The deleted Lead
content:
application/json:
schema:
$ref: '#/components/schemas/Lead'
'401':
description: This request is unauthorized (either the Authorization header is missing or invalid, or the API key
has been revoked)
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 401
examples:
- 401
example: 401
error:
type: string
enum:
- Unauthorized
examples:
- Unauthorized
example: Unauthorized
message:
type: string
examples:
- Missing Authorization header
example: Missing Authorization header
required:
- statusCode
- error
- message
'402':
description: This request cannot be fulfilled because the workspace does not have an active paid plan
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 402
examples:
- 402
example: 402
error:
type: string
enum:
- Payment Required
examples:
- Payment Required
example: Payment Required
message:
type: string
examples:
- Workspace does not have an active paid plan
example: Workspace does not have an active paid plan
required:
- statusCode
- error
- message
'404':
description: The requested resource was not found
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 404
examples:
- 404
example: 404
error:
type: string
enum:
- Not Found
examples:
- Not Found
example: Not Found
message:
type: string
examples:
- Resource not found
example: Resource not found
required:
- statusCode
- error
- message
'429':
description: You have exceeded the rate limit. Please check the rate limit docs for more information.
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 429
examples:
- 429
example: 429
error:
type: string
enum:
- Too Many Requests
examples:
- Too Many Requests
example: Too Many Requests
message:
type: string
examples:
- Rate limit exceeded
example: Rate limit exceeded
required:
- statusCode
- error
- message
/api/v2/leads/merge:
post:
operationId: mergeLeads
summary: Merge two leads
tags:
- Lead
description: 'Merge two leads
Requires one of the following scopes: `leads:update`, `leads:all`, `all:update`, `all:all`'
requestBody:
content:
application/json:
schema:
type: object
properties:
lead_id:
type: string
format: uuid
description: The ID of the lead to merge.
example: 019ffad2-9c49-7d93-989e-7498e67442e1
destination_lead_id:
type: string
format: uuid
description: The ID of the destination lead to merge into.
example: 019ffad2-9c49-7d93-989e-74993a8ce350
required:
- lead_id
- destination_lead_id
required: true
responses:
'200':
description: The requested Lead
content:
application/json:
schema:
$ref: '#/components/schemas/Lead'
'401':
description: This request is unauthorized (either the Authorization header is missing or invalid, or the API key
has been revoked)
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 401
examples:
- 401
example: 401
error:
type: string
enum:
- Unauthorized
examples:
- Unauthorized
example: Unauthorized
message:
type: string
examples:
- Missing Authorization header
example: Missing Authorization header
required:
- statusCode
- error
- message
'402':
description: This request cannot be fulfilled because the workspace does not have an active paid plan
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 402
examples:
- 402
example: 402
error:
type: string
enum:
- Payment Required
examples:
- Payment Required
example: Payment Required
message:
type: string
examples:
- Workspace does not have an active paid plan
example: Workspace does not have an active paid plan
required:
- statusCode
- error
- message
'404':
description: The requested resource was not found
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 404
examples:
- 404
example: 404
error:
type: string
enum:
- Not Found
examples:
- Not Found
example: Not Found
message:
type: string
examples:
- Resource not found
example: Resource not found
required:
- statusCode
- error
- message
'429':
description: You have exceeded the rate limit. Please check the rate limit docs for more information.
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 429
examples:
- 429
example: 429
error:
type: string
enum:
- Too Many Requests
examples:
- Too Many Requests
example: Too Many Requests
message:
type: string
examples:
- Rate limit exceeded
example: Rate limit exceeded
required:
- statusCode
- error
- message
/api/v2/leads/update-interest-status:
post:
operationId: updateLeadInterestStatus
summary: Update the interest status of a lead
tags:
- Lead
description: Update the interest status of a lead
requestBody:
content:
application/json:
schema:
type: object
properties:
lead_email:
type: string
description: The email of the lead to update the interest status of.
example: test@test.com
interest_value:
type:
- number
- 'null'
description: Set this field to "null" to reset the lead value to "Lead". This is the same as moving the
lead to the "Lead" status in the web app. Please check the `lt_interest_status` field for the list of
possible values.
example: 1
campaign_id:
type: string
description: The ID of the campaign to update the interest status of.
example: 019ffad2-9c4a-73b2-bd72-f47b348fa012
ai_interest_value:
type: number
description: The AI interest value to set for the lead.
example: 1
disable_auto_interest:
type: boolean
description: Whether to disable the auto interest.
example: true
list_id:
type: string
description: The ID of the list to update the interest status of.
example: 019ffad2-9c4a-73b2-bd72-f47c19a878c1
required:
- lead_email
- interest_value
required: true
responses:
'202':
description: Default Response
content:
application/json:
schema:
type: object
properties:
message:
type: string
example: Lead interest status update background job submitted
'400':
description: Default Response
content:
application/json:
schema:
type: object
properties:
error:
type: string
example: Invalid lead email
'401':
description: This request is unauthorized (either the Authorization header is missing or invalid, or the API key
has been revoked)
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 401
examples:
- 401
example: 401
error:
type: string
enum:
- Unauthorized
examples:
- Unauthorized
example: Unauthorized
message:
type: string
examples:
- Missing Authorization header
example: Missing Authorization header
required:
- statusCode
- error
- message
'402':
description: This request cannot be fulfilled because the workspace does not have an active paid plan
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 402
examples:
- 402
example: 402
error:
type: string
enum:
- Payment Required
examples:
- Payment Required
example: Payment Required
message:
type: string
examples:
- Workspace does not have an active paid plan
example: Workspace does not have an active paid plan
required:
- statusCode
- error
- message
'404':
description: The requested resource was not found
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 404
examples:
- 404
example: 404
error:
type: string
enum:
- Not Found
examples:
- Not Found
example: Not Found
message:
type: string
examples:
- Resource not found
example: Resource not found
required:
- statusCode
- error
- message
'429':
description: You have exceeded the rate limit. Please check the rate limit docs for more information.
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 429
examples:
- 429
example: 429
error:
type: string
enum:
- Too Many Requests
examples:
- Too Many Requests
example: Too Many Requests
message:
type: string
examples:
- Rate limit exceeded
example: Rate limit exceeded
required:
- statusCode
- error
- message
/api/v2/leads/subsequence/remove:
post:
operationId: removeLeadFromSubsequence
summary: Remove a lead from a subsequence
tags:
- Lead
description: 'Remove a lead from a subsequence
Requires one of the following scopes: `leads:update`, `leads:all`, `all:update`, `all:all`'
requestBody:
content:
application/json:
schema:
type: object
properties:
id:
type: string
format: uuid
description: The ID of the lead to remove from the subsequence.
example: 019ffad2-9c4a-73b2-bd72-f47eb9982146
required:
- id
required: true
responses:
'200':
description: The requested Lead
content:
application/json:
schema:
$ref: '#/components/schemas/Lead'
'401':
description: This request is unauthorized (either the Authorization header is missing or invalid, or the API key
has been revoked)
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 401
examples:
- 401
example: 401
error:
type: string
enum:
- Unauthorized
examples:
- Unauthorized
example: Unauthorized
message:
type: string
examples:
- Missing Authorization header
example: Missing Authorization header
required:
- statusCode
- error
- message
'402':
description: This request cannot be fulfilled because the workspace does not have an active paid plan
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 402
examples:
- 402
example: 402
error:
type: string
enum:
- Payment Required
examples:
- Payment Required
example: Payment Required
message:
type: string
examples:
- Workspace does not have an active paid plan
example: Workspace does not have an active paid plan
required:
- statusCode
- error
- message
'404':
description: The requested resource was not found
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 404
examples:
- 404
example: 404
error:
type: string
enum:
- Not Found
examples:
- Not Found
example: Not Found
message:
type: string
examples:
- Resource not found
example: Resource not found
required:
- statusCode
- error
- message
'429':
description: You have exceeded the rate limit. Please check the rate limit docs for more information.
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 429
examples:
- 429
example: 429
error:
type: string
enum:
- Too Many Requests
examples:
- Too Many Requests
example: Too Many Requests
message:
type: string
examples:
- Rate limit exceeded
example: Rate limit exceeded
required:
- statusCode
- error
- message
/api/v2/leads/bulk-assign:
post:
operationId: bulkAssignLeads
summary: Bulk assign leads to organization users
tags:
- Lead
description: Bulk assign leads to organization users
requestBody:
content:
application/json:
schema:
type: object
properties:
search:
type: string
description: The search query to filter leads by.
example: test
filter:
type: string
enum:
- FILTER_VAL_CONTACTED
- FILTER_VAL_NOT_CONTACTED
- FILTER_VAL_COMPLETED
- FILTER_VAL_UNSUBSCRIBED
- FILTER_VAL_ACTIVE
- FILTER_LEAD_INTERESTED
- FILTER_LEAD_NOT_INTERESTED
- FILTER_LEAD_MEETING_BOOKED
- FILTER_LEAD_MEETING_COMPLETED
- FILTER_LEAD_CLOSED
- FILTER_LEAD_OUT_OF_OFFICE
- FILTER_LEAD_WRONG_PERSON
- FILTER_LEAD_LOST
- FILTER_LEAD_NO_SHOW
- FILTER_LEAD_CUSTOM_LABEL_POSITIVE
- FILTER_LEAD_CUSTOM_LABEL_NEGATIVE
- FILTER_VAL_BOUNCED
- FILTER_VAL_SKIPPED
- FILTER_VAL_RISKY
- FILTER_VAL_INVALID
- FILTER_VAL_VALID
- FILTER_VAL_IN_SUBSEQUENCE
- FILTER_VAL_OPENED_NO_REPLY
- FILTER_VAL_COMPLETED_NO_REPLY
- FILTER_VAL_NO_OPENS
- FILTER_VAL_REPLIED
- FILTER_VAL_LINK_CLICKED
description: The filter to apply to the leads.
example: FILTER_LEAD_CLOSED
campaign:
type: string
format: uuid
description: The ID of the campaign to filter leads by.
example: 019ffad2-9c4b-7871-94ec-7c3113254b8f
list_id:
type: string
format: uuid
description: The ID of the list to filter leads by.
example: 019ffad2-9c4b-7871-94ec-7c32b22f5b96
in_campaign:
type: boolean
description: Whether the leads are in the campaign.
example: true
in_list:
type: boolean
description: Whether the leads are in the list.
example: true
organization_user_ids:
type: array
items:
type: string
format: uuid
example: 019ffad2-9c4b-7871-94ec-7c3334c55b26
minItems: 1
smart_view_id:
type: string
format: uuid
description: The ID of the smart view to filter leads by.
example: 019ffad2-9c4b-7871-94ec-7c34c7724780
ids:
type: array
items:
type: string
format: uuid
example: 019ffad2-9c4b-7871-94ec-7c35f4f00a6b
description: The IDs of the leads to filter by.
limit:
type: integer
minimum: 0
description: The limit of the number of leads to return.
example: 10
queries:
type: array
items:
type: object
properties:
actionType:
type: string
enum:
- reply
- email-open
- last-contacted
- link-click
- lead-status
- lead-status-change
x-enumDescriptions:
reply: Reply
email-open: Email Opened
last-contacted: Last Contacted
link-click: Link Click
lead-status: Lead Status
lead-status-change: Lead Status Change
example: email-open
values:
type: object
properties:
occurrence-days:
type: number
example: 5
occurrence-count:
type: object
properties:
condition:
type: string
enum:
- more
- less
- equal
x-enumDescriptions:
more: More than the count
less: Less than the count
equal: Equal to the count
example: more
count:
type: number
example: 5
lead-status:
type: object
properties:
status:
type: number
example: 5
condition:
type: string
enum:
- is
- is-not
x-enumDescriptions:
is: Is
is-not: Is Not
example: is
required:
- actionType
- values
assigned_to:
type: string
format: uuid
description: Filter leads by their current owner (the user they are currently assigned to).
example: 019ffad2-9c4b-7871-94ec-7c36f676e920
has_clause:
type: boolean
description: Whether this endpoint should list data based on the filters currently applied in the web app.
example: true
required:
- organization_user_ids
required: true
responses:
'202':
description: Default Response
content:
application/json:
schema:
type: object
properties:
status:
type: string
example: accepted
message:
type: string
example: Your request will be processed in a background job
'400':
description: Default Response
content:
application/json:
schema:
type: object
properties:
message:
type: string
example: Invalid ID on `organization_user_ids` field
'401':
description: This request is unauthorized (either the Authorization header is missing or invalid, or the API key
has been revoked)
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 401
examples:
- 401
example: 401
error:
type: string
enum:
- Unauthorized
examples:
- Unauthorized
example: Unauthorized
message:
type: string
examples:
- Missing Authorization header
example: Missing Authorization header
required:
- statusCode
- error
- message
'402':
description: This request cannot be fulfilled because the workspace does not have an active paid plan
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 402
examples:
- 402
example: 402
error:
type: string
enum:
- Payment Required
examples:
- Payment Required
example: Payment Required
message:
type: string
examples:
- Workspace does not have an active paid plan
example: Workspace does not have an active paid plan
required:
- statusCode
- error
- message
'404':
description: The requested resource was not found
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 404
examples:
- 404
example: 404
error:
type: string
enum:
- Not Found
examples:
- Not Found
example: Not Found
message:
type: string
examples:
- Resource not found
example: Resource not found
required:
- statusCode
- error
- message
'429':
description: You have exceeded the rate limit. Please check the rate limit docs for more information.
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 429
examples:
- 429
example: 429
error:
type: string
enum:
- Too Many Requests
examples:
- Too Many Requests
example: Too Many Requests
message:
type: string
examples:
- Rate limit exceeded
example: Rate limit exceeded
required:
- statusCode
- error
- message
/api/v2/leads/move:
post:
operationId: moveLeads
summary: Move leads to a campaign or list
tags:
- Lead
description: 'Move leads to a different campaign or list. This endpoint will return a background job that will process
the move. The job will be processed in the background and the leads will be moved to the destination campaign or list.
You can use the `/background-jobs/:id` endpoint to check the job status. Note: When using the `ids` parameter, you
must also provide either `campaign` or `list_id` to specify which campaign or list to filter the leads from.
Requires one of the following scopes: `leads:update`, `leads:all`, `all:update`, `all:all`'
requestBody:
content:
application/json:
schema:
type: object
properties:
search:
type: string
description: A search string to search the leads against - can be First Name, Last Name, or Email
example: John Doe
filter:
type: string
x-enumDescriptions:
FILTER_VAL_CONTACTED: Filter for contacted leads
FILTER_VAL_NOT_CONTACTED: Filter for not contacted leads
FILTER_VAL_COMPLETED: Filter for completed leads
FILTER_VAL_UNSUBSCRIBED: Filter for unsubscribed leads
FILTER_VAL_ACTIVE: Filter for active leads
FILTER_LEAD_INTERESTED: Filter for interested leads
FILTER_LEAD_NOT_INTERESTED: Filter for not interested leads
FILTER_LEAD_MEETING_BOOKED: Filter for leads with meeting booked
FILTER_LEAD_MEETING_COMPLETED: Filter for leads with meeting completed
FILTER_LEAD_CLOSED: Filter for closed leads
FILTER_LEAD_OUT_OF_OFFICE: Filter for leads out of office
FILTER_LEAD_WRONG_PERSON: Filter for wrong person leads
FILTER_LEAD_LOST: Filter for lost leads
FILTER_LEAD_NO_SHOW: Filter for no show leads
FILTER_LEAD_CUSTOM_LABEL_POSITIVE: Filter for leads with positive custom label
FILTER_LEAD_CUSTOM_LABEL_NEGATIVE: Filter for leads with negative custom label
FILTER_VAL_BOUNCED: Filter for bounced leads
FILTER_VAL_SKIPPED: Filter for skipped leads
FILTER_VAL_RISKY: Filter for risky leads
FILTER_VAL_INVALID: Filter for invalid leads
FILTER_VAL_VALID: Filter for valid leads
FILTER_VAL_IN_SUBSEQUENCE: Filter for leads in subsequence
FILTER_VAL_OPENED_NO_REPLY: Filter for leads with opened emails but no reply
FILTER_VAL_COMPLETED_NO_REPLY: Filter for leads with completed sequence but no reply
FILTER_VAL_NO_OPENS: Filter for leads with no opened emails
FILTER_VAL_REPLIED: Filter for leads that replied
FILTER_VAL_LINK_CLICKED: Filter for leads that clicked a link
description: Filter criteria for leads. For custom lead labels, use the `interest_status` field.
example: FILTER_VAL_CONTACTED
campaign:
type: string
format: uuid
description: Campaign ID to filter leads
example: 019ffad2-90b0-7d6d-b877-e244a0d3d2b2
list_id:
type: string
format: uuid
description: List ID to filter leads
example: 019ffad2-90b0-7d6d-b877-e24585b902a6
in_campaign:
type: boolean
description: Whether the lead is in a campaign
example: true
in_list:
type: boolean
description: Whether the lead is in a list
example: true
ids:
type: array
items:
type: string
format: uuid
example: 019ffad2-9c4c-7079-b87c-ef35c018077d
description: Array of lead IDs to include. When using this parameter, you must provide either `campaign`
or `list_id` to specify which campaign or list to filter the leads from. This parameter acts as a filter
within the specified campaign or list, not as a standalone way to select leads.
queries:
type: array
items:
type: object
required:
- actionType
- values
description: Smart view query to filter leads
properties:
actionType:
type: string
enum:
- reply
- email-open
- last-contacted
- link-click
- lead-status
- lead-status-change
example: email-open
values:
type: object
properties:
occurrence-days:
type: number
example: 1
occurrence-count:
type: object
properties:
condition:
type: string
enum:
- more
- less
- equal
example: more
count:
type: number
example: 1
lead-status:
type: object
properties:
status:
type: number
example: 1
condition:
type: string
enum:
- is
- is-not
example: is
example:
actionType: email-open
values:
occurrence-days: 1
excluded_ids:
type: array
items:
type: string
format: uuid
example: 019ffad2-90b0-7d6d-b877-e2478776f0c0
description: Array of lead IDs to exclude
contacts:
type: array
items:
type: string
format: email
example: test@test.com
description: Array of emails the leads needs to have
to_campaign_id:
type: string
format: uuid
description: The ID of the campaign to move the leads to.
example: 019ffad2-9c4c-7079-b87c-ef369e41d982
to_list_id:
type: string
format: uuid
description: The ID of the list to move the leads to.
example: 019ffad2-9c4c-7079-b87c-ef37822d2f35
ignore_resource_filter_clauses:
type: boolean
description: Whether to ignore saved lead-finder clauses for the source campaign/list when selecting leads
to move.
example: true
check_duplicates_in_campaigns:
type: boolean
description: Whether to check duplicates in campaigns.
example: true
skip_leads_in_verification:
type: boolean
description: Whether to skip leads in verification.
example: true
limit:
type: number
description: The limit of the number of leads to move.
example: 10
assigned_to:
type: string
format: uuid
description: The ID of the user to assign the leads to.
example: 019ffad2-9c4c-7079-b87c-ef386e7ad0ff
esp_code:
type: number
enum:
- 0
- 1
- 2
- 3
- 8
- 9
- 10
- 12
- 13
- 999
- 1000
x-enumDescriptions:
'0': In Queue
'1': Google
'2': Microsoft
'3': Zoho
'8': AirMail
'9': Yahoo
'10': Yandex
'12': Webde
'13': Liberoit
'999': Other
'1000': Not Found
description: The ESP code to move the leads for.
example: 1
esg_code:
type: string
enum:
- '0'
- '1'
- '2'
- '3'
- '4'
- all
- none
x-enumDescriptions:
'0': In Queue
'1': Barracuda
'2': Mimecast
'3': Proofpoint
'4': Cisco
all: All
none: None
description: The ESG code to move the leads for.
example: '1'
copy_leads:
type: boolean
description: Whether to copy the leads.
example: true
check_duplicates:
type: boolean
description: Whether to check duplicates.
example: true
reset_interest_status:
type: boolean
description: Whether to reset the interest status of leads when moving or copying them. When true, the interest
status will be reset. When false, the existing interest status will be preserved; for non-copy campaign-to-campaign
moves, opportunities will also be migrated to the target campaign.
example: true
responses:
'200':
description: The requested Background Job
content:
application/json:
schema:
$ref: '#/components/schemas/BackgroundJob'
'401':
description: This request is unauthorized (either the Authorization header is missing or invalid, or the API key
has been revoked)
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 401
examples:
- 401
example: 401
error:
type: string
enum:
- Unauthorized
examples:
- Unauthorized
example: Unauthorized
message:
type: string
examples:
- Missing Authorization header
example: Missing Authorization header
required:
- statusCode
- error
- message
'402':
description: This request cannot be fulfilled because the workspace does not have an active paid plan
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 402
examples:
- 402
example: 402
error:
type: string
enum:
- Payment Required
examples:
- Payment Required
example: Payment Required
message:
type: string
examples:
- Workspace does not have an active paid plan
example: Workspace does not have an active paid plan
required:
- statusCode
- error
- message
'404':
description: The requested resource was not found
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 404
examples:
- 404
example: 404
error:
type: string
enum:
- Not Found
examples:
- Not Found
example: Not Found
message:
type: string
examples:
- Resource not found
example: Resource not found
required:
- statusCode
- error
- message
'429':
description: You have exceeded the rate limit. Please check the rate limit docs for more information.
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 429
examples:
- 429
example: 429
error:
type: string
enum:
- Too Many Requests
examples:
- Too Many Requests
example: Too Many Requests
message:
type: string
examples:
- Rate limit exceeded
example: Rate limit exceeded
required:
- statusCode
- error
- message
/api/v2/leads/subsequence/move:
post:
operationId: moveLeadToSubsequence
summary: Move a lead to a subsequence
tags:
- Lead
description: 'Move a lead to a subsequence
Requires one of the following scopes: `leads:update`, `leads:all`, `all:update`, `all:all`'
requestBody:
content:
application/json:
schema:
type: object
properties:
subsequence_id:
type: string
format: uuid
example: 019ffad2-9c4d-7fe7-ac18-6d802bf71d6b
id:
type: string
format: uuid
example: 019ffad2-9c4d-7fe7-ac18-6d810b8002c8
required:
- id
- subsequence_id
required: true
responses:
'200':
description: The requested Lead
content:
application/json:
schema:
$ref: '#/components/schemas/Lead'
'401':
description: This request is unauthorized (either the Authorization header is missing or invalid, or the API key
has been revoked)
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 401
examples:
- 401
example: 401
error:
type: string
enum:
- Unauthorized
examples:
- Unauthorized
example: Unauthorized
message:
type: string
examples:
- Missing Authorization header
example: Missing Authorization header
required:
- statusCode
- error
- message
'402':
description: This request cannot be fulfilled because the workspace does not have an active paid plan
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 402
examples:
- 402
example: 402
error:
type: string
enum:
- Payment Required
examples:
- Payment Required
example: Payment Required
message:
type: string
examples:
- Workspace does not have an active paid plan
example: Workspace does not have an active paid plan
required:
- statusCode
- error
- message
'404':
description: The requested resource was not found
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 404
examples:
- 404
example: 404
error:
type: string
enum:
- Not Found
examples:
- Not Found
example: Not Found
message:
type: string
examples:
- Resource not found
example: Resource not found
required:
- statusCode
- error
- message
'429':
description: You have exceeded the rate limit. Please check the rate limit docs for more information.
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 429
examples:
- 429
example: 429
error:
type: string
enum:
- Too Many Requests
examples:
- Too Many Requests
example: Too Many Requests
message:
type: string
examples:
- Rate limit exceeded
example: Rate limit exceeded
required:
- statusCode
- error
- message
/api/v2/leads/add:
post:
operationId: bulkAddLeads
summary: Add leads in bulk to a campaign or list
tags:
- Lead
description: 'Adds up to 1000 leads to either a campaign or a list. You must provide a `campaign_id` or a `list_id`,
but not both. The endpoint validates emails, checks against blocklists and existing leads.
Requires one of the following scopes: `leads:create`, `leads:all`, `all:create`, `all:all`'
requestBody:
content:
application/json:
schema:
type: object
properties:
campaign_id:
type: string
format: uuid
description: The unique identifier for the campaign to add leads to. Use this field OR `list_id`, but not
both.
example: 019ffad2-9c4e-7be6-8364-ed444afb02d5
list_id:
type: string
format: uuid
description: The unique identifier for the list to add leads to. Use this field OR `campaign_id`, but not
both.
example: 019ffad2-9c4e-7be6-8364-ed45ac8115bc
leads:
type: array
minItems: 1
maxItems: 1000
description: 'An array of lead objects to create. When using `campaign_id`: Each lead object must contain
an `email`. When using `list_id` Each lead object must contain at least one of the following: `email`,
`first_name`, or `last_name`.'
items:
type: object
properties:
email:
type:
- string
- 'null'
description: Email address of the lead
example: example@example.com
personalization:
type:
- string
- 'null'
description: Personalization of the lead
example: Hello, how are you?
website:
type:
- string
- 'null'
description: Website of the lead
example: https://example.com
last_name:
type:
- string
- 'null'
description: Last name of the lead
example: Doe
first_name:
type:
- string
- 'null'
description: First name of the lead
example: John
company_name:
type:
- string
- 'null'
description: Company name of the lead
example: Example Inc.
job_title:
type:
- string
- 'null'
description: Job title of the lead
example: Head of Growth
phone:
type:
- string
- 'null'
description: Phone number of the lead
example: '+1234567890'
lt_interest_status:
type: number
description: Lead interest status. It can be either a static value (check below), or a custom status
interest value
enum:
- 1
- 2
- 3
- 4
- 0
- -1
- -2
- -3
- -4
x-enumDescriptions:
'0': Out of Office
'1': Interested
'2': Meeting Booked
'3': Meeting Completed
'4': Won
'-1': Not Interested
'-2': Wrong Person
'-3': Lost
'-4': No Show
example: 1
pl_value_lead:
type:
- string
- 'null'
description: Potential value of the lead
example: High
assigned_to:
type:
- string
- 'null'
description: ID of the user assigned to the lead
format: uuid
example: 019ffad2-53a3-7590-935f-b4938179e96d
custom_variables:
type: object
additionalProperties:
type:
- string
- number
- boolean
- 'null'
description: Custom variables can include any metadata about the lead that is relevant to the campaign,
the campaign will be updated to allow all the other leads in the campaign to have the same custom
variables. The custom variables will be added to the lead payload field
example:
past_customer: true
has_tried_competitors: false
required: []
additionalProperties: false
blocklist_id:
type:
- string
- 'null'
format: uuid
description: Optional blocklist ID to check leads against. If omitted, the workspace default blocklist is
used.
example: 019ffad2-9c4e-7be6-8364-ed46732be598
assigned_to:
type: string
format: uuid
description: Optional user ID to assign all imported leads to. If omitted, leads are assigned to the campaign
owner when `campaign_id` is defined, or the user making the request.
example: 019ffad2-9c4e-7be6-8364-ed4744ef5f11
verify_leads_on_import:
type: boolean
description: If true, a background job will be created to verify the email addresses of the imported leads.
example: false
skip_if_in_workspace:
type: boolean
description: If true, any lead that already exists anywhere in your workspace (in any campaign or list)
will be skipped. This option overrides the other "skip_if" flags.
example: true
skip_if_in_campaign:
type: boolean
description: If true, any lead that already exists in ANY campaign in your workspace will be skipped.
example: false
skip_if_in_list:
type: boolean
description: If true, any lead that already exists in ANY list in your workspace will be skipped.
example: false
required:
- leads
required: true
responses:
'200':
description: A summary of the bulk import operation.
content:
application/json:
schema:
description: A summary of the bulk import operation.
type: object
properties:
status:
type: string
description: Indicates the request was processed.
example: success
total_sent:
type: integer
description: The total number of leads included in the request payload.
example: 10
leads_uploaded:
type: integer
description: The number of leads that were successfully created.
example: 7
in_blocklist:
type: integer
description: The number of leads that were skipped because their email was found on the blocklist.
example: 1
blocklist_used:
type:
- 'null'
- string
description: The ID of the blocklist that was used for the check.
example: 019ffad2-9c4e-7be6-8364-ed48f0bbb5d8
duplicated_leads:
type: integer
description: The number of leads that were already in this specific campaign or list and were not re-added.
example: 0
skipped_count:
type: integer
description: The number of leads skipped due to the `skip_if_in_...` flags being enabled.
example: 1
invalid_email_count:
type: integer
description: The number of leads skipped due to an invalid email format or a missing email address.
example: 1
incomplete_count:
type: integer
description: The number of leads skipped due to missing email and names. Only calculated for lists.
example: 1
duplicate_email_count:
type: integer
description: The number of leads skipped because their email was duplicated within the request payload
itself.
example: 0
remaining_in_plan:
type:
- 'null'
- integer
description: The remaining lead uploads in the current billing plan. This value is only present in the
response when a `campaign_id` is provided.
example: 9993
created_leads:
type: array
description: A list of created leads with their summary information. You can use this to map your input
to the created leads.
items:
type: object
properties:
index:
type: integer
description: The index of the lead in the input array. For leads that have no email address you
can use this field as the key to your input leads.
example: 0
id:
type: string
format: uuid
description: The ID of the lead. Use it for GET, DELETE or PATCH operations.
example: 019ffad2-9c4e-7be6-8364-ed4963ebc549
email:
type:
- 'null'
- string
example: test@example.com
first_name:
type:
- 'null'
- string
example: John
last_name:
type:
- 'null'
- string
example: Doe
phone:
type:
- 'null'
- string
example: '+1234567890'
required:
- id
- index
example:
id: 019ffad2-9c4e-7be6-8364-ed4a16affca8
email: test@example.com
index: 0
example:
- id: 019ffad2-9c4e-7be6-8364-ed4b2bc8b6a5
email: test@example.com
index: 0
required:
- status
- total_sent
- leads_uploaded
- in_blocklist
- blocklist_used
- duplicated_leads
- skipped_count
- invalid_email_count
- incomplete_count
- duplicate_email_count
- remaining_in_plan
- created_leads
'401':
description: This request is unauthorized (either the Authorization header is missing or invalid, or the API key
has been revoked)
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 401
examples:
- 401
example: 401
error:
type: string
enum:
- Unauthorized
examples:
- Unauthorized
example: Unauthorized
message:
type: string
examples:
- Missing Authorization header
example: Missing Authorization header
required:
- statusCode
- error
- message
'402':
description: This request cannot be fulfilled because the workspace does not have an active paid plan
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 402
examples:
- 402
example: 402
error:
type: string
enum:
- Payment Required
examples:
- Payment Required
example: Payment Required
message:
type: string
examples:
- Workspace does not have an active paid plan
example: Workspace does not have an active paid plan
required:
- statusCode
- error
- message
'404':
description: The requested resource was not found
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 404
examples:
- 404
example: 404
error:
type: string
enum:
- Not Found
examples:
- Not Found
example: Not Found
message:
type: string
examples:
- Resource not found
example: Resource not found
required:
- statusCode
- error
- message
'429':
description: You have exceeded the rate limit. Please check the rate limit docs for more information.
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 429
examples:
- 429
example: 429
error:
type: string
enum:
- Too Many Requests
examples:
- Too Many Requests
example: Too Many Requests
message:
type: string
examples:
- Rate limit exceeded
example: Rate limit exceeded
required:
- statusCode
- error
- message
/api/v2/oauth/google/init:
post:
operationId: initGoogleOAuth
summary: Initialize google oauth
tags:
- OAuth
description: 'Creates an OAuth session and returns the Google authorization URL. The user should be redirected to auth_url
to complete the OAuth flow. Poll the status endpoint to check for completion.
**Special rate limits (stricter than the standard API rate limit) to comply with upstream Google rate limits:**
- 75 requests per minute per workspace
- 150 requests per minute per IP
If Google''s upstream OAuth service is temporarily unavailable, requests may return 503.'
responses:
'200':
description: Default Response
content:
application/json:
schema:
type: object
properties:
session_id:
type: string
description: Session ID for polling status
example: abc123def456
auth_url:
type: string
description: Google authorization URL to redirect user to
example: https://accounts.google.com/o/oauth2/auth?...
expires_at:
type: string
format: date-time
description: Session expiry time (10 minutes from creation)
example: '2026-01-14T12:30:00.000Z'
'429':
description: Rate limit exceeded — 75 requests per minute per workspace or 150 requests per minute per IP
content:
application/json:
schema:
type: object
description: Rate limit exceeded — 75 requests per minute per workspace or 150 requests per minute per IP
properties:
statusCode:
type: number
enum:
- 429
example: 429
error:
type: string
enum:
- Too Many Requests
example: Too Many Requests
message:
type: string
example: Rate limit exceeded for OAuth session creation
required:
- statusCode
- error
- message
'503':
description: Upstream provider temporarily unavailable — the provider is rate-limiting Instantly. Retry after a
short delay.
content:
application/json:
schema:
type: object
description: Upstream provider temporarily unavailable — the provider is rate-limiting Instantly. Retry after
a short delay.
properties:
statusCode:
type: number
enum:
- 503
example: 503
error:
type: string
enum:
- Service Unavailable
example: Service Unavailable
message:
type: string
example: OAuth is temporarily unavailable, please retry shortly
required:
- statusCode
- error
- message
/api/v2/oauth/microsoft/init:
post:
operationId: initMicrosoftOAuth
summary: Initialize microsoft oauth
tags:
- OAuth
description: 'Creates an OAuth session and returns the Microsoft authorization URL. The user should be redirected to
auth_url to complete the OAuth flow. Poll the status endpoint to check for completion.
**Special rate limits (stricter than the standard API rate limit) to comply with upstream Microsoft rate limits:**
- 75 requests per minute per workspace
- 150 requests per minute per IP
If Microsoft''s upstream OAuth service is temporarily unavailable, requests may return 503.'
responses:
'200':
description: Default Response
content:
application/json:
schema:
type: object
properties:
session_id:
type: string
description: Session ID for polling status
example: abc123def456
auth_url:
type: string
description: Microsoft authorization URL to redirect user to
example: https://login.microsoftonline.com/common/oauth2/v2.0/authorize?...
expires_at:
type: string
format: date-time
description: Session expiry time (10 minutes from creation)
example: '2026-01-14T12:30:00.000Z'
'429':
description: Rate limit exceeded — 75 requests per minute per workspace or 150 requests per minute per IP
content:
application/json:
schema:
type: object
description: Rate limit exceeded — 75 requests per minute per workspace or 150 requests per minute per IP
properties:
statusCode:
type: number
enum:
- 429
example: 429
error:
type: string
enum:
- Too Many Requests
example: Too Many Requests
message:
type: string
example: Rate limit exceeded for OAuth session creation
required:
- statusCode
- error
- message
'503':
description: Upstream provider temporarily unavailable — the provider is rate-limiting Instantly. Retry after a
short delay.
content:
application/json:
schema:
type: object
description: Upstream provider temporarily unavailable — the provider is rate-limiting Instantly. Retry after
a short delay.
properties:
statusCode:
type: number
enum:
- 503
example: 503
error:
type: string
enum:
- Service Unavailable
example: Service Unavailable
message:
type: string
example: OAuth is temporarily unavailable, please retry shortly
required:
- statusCode
- error
- message
/api/v2/oauth/session/status/{sessionId}:
get:
operationId: getOAuthSessionStatus
summary: Get oauth session status
tags:
- OAuth
description: Poll this endpoint to check the OAuth session result. Works for both Google and Microsoft OAuth sessions.
Returns pending while waiting, success with account details when complete, or error if something went wrong. Sessions
expire after 10 minutes.
parameters:
- schema:
type: string
example: abc123def456
in: path
name: sessionId
required: true
description: Session ID from init response
responses:
'200':
description: Default Response
content:
application/json:
schema:
type: object
properties:
status:
type: string
enum:
- pending
- success
- error
- expired
description: Current status of the OAuth session
example: success
email:
type: string
description: Email of the connected account (on success)
example: user@example.com
name:
type: string
description: Name of the account owner (on success)
example: John Doe
error:
type: string
description: Error code (on error)
example: access_denied
error_description:
type: string
description: Human-readable error description (on error)
example: User denied access to the application
/api/v2/supersearch-enrichment/signal-keywords-facet:
post:
operationId: signalKeywordsFacet
summary: Facet keywords for a signal category
tags:
- SuperSearchEnrichment
description: 'Return the top matching keyword tokens for a given signal category and keyword field, aggregated from
the last 90 days of signal data. Powers the Signals filter autocomplete in the Lead Finder. Unknown (category, field)
pairs return 400.
Requires one of the following scopes: `supersearch_enrichments:read`, `supersearch_enrichments:all`, `all:read`, `all:all`'
requestBody:
content:
application/json:
schema:
type: object
required:
- category
- field
properties:
category:
type: string
description: Signal category to facet against (e.g. `linkedin_post_contact`).
example: linkedin_post_contact
field:
type: string
description: Indexed keyword field on `autobound_signals` to aggregate on.
example: tags
prefix:
type: string
description: Optional case-insensitive prefix to narrow the tokens returned.
example: ai
limit:
type: number
description: Max number of keyword buckets to return (1-100).
minimum: 1
maximum: 100
example: 20
required: true
responses:
'200':
description: Default Response
content:
application/json:
schema:
type: object
properties:
keywords:
type: array
description: Keyword tokens ordered by descending frequency.
items:
type: object
properties:
keyword:
type: string
description: The keyword token (lowercased).
example: artificial intelligence
count:
type: number
description: Number of signal records with this token in the last 90 days.
example: 22418
'401':
description: This request is unauthorized (either the Authorization header is missing or invalid, or the API key
has been revoked)
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 401
examples:
- 401
example: 401
error:
type: string
enum:
- Unauthorized
examples:
- Unauthorized
example: Unauthorized
message:
type: string
examples:
- Missing Authorization header
example: Missing Authorization header
required:
- statusCode
- error
- message
'402':
description: This request cannot be fulfilled because the workspace does not have an active paid plan
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 402
examples:
- 402
example: 402
error:
type: string
enum:
- Payment Required
examples:
- Payment Required
example: Payment Required
message:
type: string
examples:
- Workspace does not have an active paid plan
example: Workspace does not have an active paid plan
required:
- statusCode
- error
- message
'404':
description: The requested resource was not found
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 404
examples:
- 404
example: 404
error:
type: string
enum:
- Not Found
examples:
- Not Found
example: Not Found
message:
type: string
examples:
- Resource not found
example: Resource not found
required:
- statusCode
- error
- message
'429':
description: You have exceeded the rate limit. Please check the rate limit docs for more information.
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 429
examples:
- 429
example: 429
error:
type: string
enum:
- Too Many Requests
examples:
- Too Many Requests
example: Too Many Requests
message:
type: string
examples:
- Rate limit exceeded
example: Rate limit exceeded
required:
- statusCode
- error
- message
/api/v2/subsequences:
post:
operationId: createCampaignSubsequence
summary: Create campaign subsequence
tags:
- CampaignSubsequence
description: 'Requires one of the following scopes: `subsequences:create`, `subsequences:all`, `all:create`, `all:all`'
requestBody:
content:
application/json:
schema:
title: CreateCampaign Subsequence
description: The Campaign Subsequence to create
type: object
properties:
parent_campaign:
type: string
description: ID of the parent campaign
format: uuid
example: 019ffad2-5cc7-76f5-9fd3-25f990e43646
name:
type: string
description: Name of the subsequence
example: Follow-up sequence
conditions:
type: object
description: Conditions that trigger the subsequence
properties:
crm_status:
type: array
description: Lead CRM statuses that trigger the subsequence. Accepts the built-in statuses listed below,
or the interest status of a custom lead label.
items:
type: number
minimum: -30000
maximum: 30000
x-enumDescriptions:
'0': Out of Office
'1': Interested
'2': Meeting Booked
'3': Meeting Completed
'4': Won
'-1': Not Interested
'-2': Wrong Person
'-3': Lost
'-4': No Show
example: 1
lead_activity:
type: array
description: Lead activities that trigger the subsequence.
items:
type: number
enum:
- 4
- 91
- 2
x-enumDescriptions:
'2': Email Opened - Triggered when a lead opens an email
'4': Email Link Clicked - Triggered when a lead clicks a link in an email
'91': Campaign Completed Without Reply - Triggered when a campaign completes for a lead without
receiving a reply
example: 4
reply_contains:
type: string
example: 'yes'
subsequence_schedule:
type: object
description: Schedule configuration for the subsequence. When omitted on create, inherits the parent campaign's
schedule.
properties:
start_date:
type:
- string
- 'null'
format: date
description: Start date in YYYY-MM-DD format. Uses the campaign's timezone.
example: '2025-09-25'
end_date:
type:
- string
- 'null'
format: date
description: End date in YYYY-MM-DD format. Uses the campaign's timezone.
example: '2025-09-25'
schedules:
type: array
items:
type: object
properties:
name:
type: string
example: My Schedule
timing:
type: object
properties:
from:
type: string
pattern: ^([01][0-9]|2[0-3]):([0-5][0-9])$
example: 09:00
to:
type: string
pattern: ^([01][0-9]|2[0-3]):([0-5][0-9])$
example: '17:00'
required:
- from
- to
days:
type: object
minProperties: 1
properties:
'0':
type: boolean
example: true
'1':
type: boolean
example: true
'2':
type: boolean
example: true
'3':
type: boolean
example: true
'4':
type: boolean
example: true
'5':
type: boolean
example: false
'6':
type: boolean
example: false
timezone:
type: string
enum:
- Etc/GMT+12
- Etc/GMT+11
- Etc/GMT+10
- America/Anchorage
- America/Dawson
- America/Creston
- America/Chihuahua
- America/Boise
- America/Belize
- America/Chicago
- America/Bahia_Banderas
- America/Regina
- America/Bogota
- America/Detroit
- America/Indiana/Marengo
- America/Caracas
- America/Asuncion
- America/Glace_Bay
- America/Campo_Grande
- America/Anguilla
- America/Santiago
- America/St_Johns
- America/Sao_Paulo
- America/Argentina/La_Rioja
- America/Araguaina
- America/Godthab
- America/Montevideo
- America/Bahia
- America/Noronha
- America/Scoresbysund
- Atlantic/Cape_Verde
- Africa/Casablanca
- America/Danmarkshavn
- Europe/Isle_of_Man
- Atlantic/Canary
- Africa/Abidjan
- Arctic/Longyearbyen
- Europe/Belgrade
- Africa/Ceuta
- Europe/Sarajevo
- Africa/Algiers
- Africa/Windhoek
- Asia/Nicosia
- Asia/Beirut
- Africa/Cairo
- Asia/Damascus
- Europe/Bucharest
- Africa/Blantyre
- Europe/Helsinki
- Europe/Istanbul
- Asia/Jerusalem
- Africa/Tripoli
- Asia/Amman
- Asia/Baghdad
- Europe/Kaliningrad
- Asia/Aden
- Africa/Addis_Ababa
- Europe/Kirov
- Europe/Astrakhan
- Asia/Tehran
- Asia/Dubai
- Asia/Baku
- Indian/Mahe
- Asia/Tbilisi
- Asia/Yerevan
- Asia/Kabul
- Antarctica/Mawson
- Asia/Yekaterinburg
- Asia/Karachi
- Asia/Kolkata
- Asia/Colombo
- Asia/Kathmandu
- Antarctica/Vostok
- Asia/Dhaka
- Asia/Rangoon
- Antarctica/Davis
- Asia/Novokuznetsk
- Asia/Hong_Kong
- Asia/Krasnoyarsk
- Asia/Brunei
- Australia/Perth
- Asia/Taipei
- Asia/Choibalsan
- Asia/Irkutsk
- Asia/Dili
- Asia/Pyongyang
- Australia/Adelaide
- Australia/Darwin
- Australia/Brisbane
- Australia/Melbourne
- Antarctica/DumontDUrville
- Australia/Currie
- Asia/Chita
- Antarctica/Macquarie
- Asia/Sakhalin
- Pacific/Auckland
- Etc/GMT-12
- Pacific/Fiji
- Asia/Anadyr
- Asia/Kamchatka
- Etc/GMT-13
- Pacific/Apia
example: Etc/GMT+12
required:
- name
- timing
- days
- timezone
minItems: 1
required:
- schedules
sequences:
type: array
description: List of sequences (the actual email copy). Even though this field is an array, only the first
element is used, so please provide only one array item, and add the steps to that array
items:
type: object
properties:
steps:
type: array
items:
type: object
properties:
type:
type: string
enum:
- email
x-enumDescriptions:
email: This steps represents an email
description: Type of step. This has to be 'email' always - it's the only supported type for
now
example: email
delay:
type: number
description: The delay value before sending the NEXT email. The unit is determined by the delay_unit
field (defaults to days).
example: 2
delay_unit:
type: string
enum:
- minutes
- hours
- days
default: days
description: The unit of time for the delay value (minutes, hours, or days). Defaults to days
for backward compatibility.
example: days
pre_delay:
type: number
description: The delay value before sending the FIRST email in a subsequence. **Only applicable
to subsequences** - this field is ignored for regular campaigns. The unit is determined by
the pre_delay_unit field (defaults to days).
example: 2
pre_delay_unit:
type: string
enum:
- minutes
- hours
- days
default: days
description: The unit of time for the pre_delay value (minutes, hours, or days). **Only applicable
to subsequences** - this field is ignored for regular campaigns. Defaults to days for backward
compatibility.
example: days
variants:
type: array
items:
type: object
properties:
subject:
type: string
example: Hello {{firstName}}
body:
type: string
description: Email body HTML. Use `
` tags for delivered email line breaks.
example: Hey {{firstName}},
I hope you are doing well.
v_disabled:
type: boolean
description: Whether this variant is disabled. By default, all the variants are enabled.
Please set this to true if you want to disable this variant
example: true
required:
- subject
- body
minItems: 1
maxItems: 26
contains:
type: object
not:
properties:
v_disabled:
enum:
- true
required:
- v_disabled
required:
- type
- delay
- variants
required:
- steps
auto_variant_select:
type:
- object
- 'null'
description: Automatically select the winning variant for each step using open, click, or reply rate. Set
to `null` to disable automatic selection.
properties:
trigger:
type: string
enum:
- reply_rate
- click_rate
- open_rate
examples:
- click_rate
example: click_rate
required:
- trigger
daily_limit_mode:
type: string
description: Daily limit mode for the subsequence. "inherit" uses the parent campaign limit, "custom" uses
a subsequence-specific limit, "unlimited" bypasses the campaign-level daily limit.
enum:
- inherit
- custom
- unlimited
example: inherit
daily_limit:
type:
- number
- 'null'
description: Custom daily limit for the subsequence. Only used when `daily_limit_mode` is "custom".
example: 50
ignore_account_daily_limit:
type: boolean
description: When enabled, the subsequence will send even when sending accounts have reached their daily
limit.
example: false
required:
- parent_campaign
- name
- conditions
additionalProperties: false
required: true
description: The Campaign Subsequence to create
responses:
'200':
description: The Campaign Subsequence
content:
application/json:
schema:
$ref: '#/components/schemas/CampaignSubsequence'
'400':
description: Invalid request body (e.g. missing required fields, or invalid field values)
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 400
examples:
- 400
example: 400
error:
type: string
enum:
- Bad Request
examples:
- Bad Request
example: Bad Request
message:
type: string
examples:
- body must have required property 'name'
example: body must have required property 'name'
required:
- statusCode
- error
- message
'401':
description: This request is unauthorized (either the Authorization header is missing or invalid, or the API key
has been revoked)
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 401
examples:
- 401
example: 401
error:
type: string
enum:
- Unauthorized
examples:
- Unauthorized
example: Unauthorized
message:
type: string
examples:
- Missing Authorization header
example: Missing Authorization header
required:
- statusCode
- error
- message
'402':
description: This request cannot be fulfilled because the workspace does not have an active paid plan
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 402
examples:
- 402
example: 402
error:
type: string
enum:
- Payment Required
examples:
- Payment Required
example: Payment Required
message:
type: string
examples:
- Workspace does not have an active paid plan
example: Workspace does not have an active paid plan
required:
- statusCode
- error
- message
'404':
description: The requested resource was not found
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 404
examples:
- 404
example: 404
error:
type: string
enum:
- Not Found
examples:
- Not Found
example: Not Found
message:
type: string
examples:
- Resource not found
example: Resource not found
required:
- statusCode
- error
- message
'429':
description: You have exceeded the rate limit. Please check the rate limit docs for more information.
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 429
examples:
- 429
example: 429
error:
type: string
enum:
- Too Many Requests
examples:
- Too Many Requests
example: Too Many Requests
message:
type: string
examples:
- Rate limit exceeded
example: Rate limit exceeded
required:
- statusCode
- error
- message
get:
operationId: listCampaignSubsequence
summary: List campaign subsequence
tags:
- CampaignSubsequence
description: 'Requires one of the following scopes: `subsequences:read`, `subsequences:all`, `all:read`, `all:all`'
parameters:
- schema:
type: integer
minimum: 1
maximum: 100
example: 10
example: 10
in: query
name: limit
required: false
description: The number of items to return
- schema:
type: string
example: 01956fbd-0eb1-72db-a565-82977a586084
example: 01956fbd-0eb1-72db-a565-82977a586084
in: query
name: starting_after
required: false
description: The ID of the last item in the previous page - used for pagination. You can use the value of the `next_starting_after`
field from the previous response.
- schema:
type: string
format: uuid
example: 123e4567-e89b-12d3-a456-426614174000
example: 123e4567-e89b-12d3-a456-426614174000
in: query
name: parent_campaign
required: false
description: The ID of the campaign to list the subsequences of.
- schema:
type: string
format: uuid
example: 123e4567-e89b-12d3-a456-426614174000
example: 123e4567-e89b-12d3-a456-426614174000
in: query
name: parent_campaign_not
required: false
description: The ID of a campaign to exclude subsequences of, returning reusable subsequences from the workspace's
other campaigns instead.
- schema:
type: string
example: test
example: test
in: query
name: search
required: false
description: The search query to filter the subsequences by.
responses:
'200':
description: The list of Campaign Subsequence
content:
application/json:
schema:
type: object
properties:
items:
type: array
description: The list of Campaign Subsequence
items:
$ref: '#/components/schemas/CampaignSubsequence'
next_starting_after:
type: string
examples:
- 019ffad2-9c89-793f-9322-7fbe7cac60bb
- '2026-08-13T11:12:14.473Z'
description: The filter for getting the next items after this one, this could either be a UUID, a timestamp,
on an email depending on the specific API
example: 019ffad2-9c89-793f-9322-7fbe7cac60bb
additionalProperties: false
required:
- items
'401':
description: This request is unauthorized (either the Authorization header is missing or invalid, or the API key
has been revoked)
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 401
examples:
- 401
example: 401
error:
type: string
enum:
- Unauthorized
examples:
- Unauthorized
example: Unauthorized
message:
type: string
examples:
- Missing Authorization header
example: Missing Authorization header
required:
- statusCode
- error
- message
'402':
description: This request cannot be fulfilled because the workspace does not have an active paid plan
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 402
examples:
- 402
example: 402
error:
type: string
enum:
- Payment Required
examples:
- Payment Required
example: Payment Required
message:
type: string
examples:
- Workspace does not have an active paid plan
example: Workspace does not have an active paid plan
required:
- statusCode
- error
- message
'404':
description: The requested resource was not found
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 404
examples:
- 404
example: 404
error:
type: string
enum:
- Not Found
examples:
- Not Found
example: Not Found
message:
type: string
examples:
- Resource not found
example: Resource not found
required:
- statusCode
- error
- message
'429':
description: You have exceeded the rate limit. Please check the rate limit docs for more information.
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 429
examples:
- 429
example: 429
error:
type: string
enum:
- Too Many Requests
examples:
- Too Many Requests
example: Too Many Requests
message:
type: string
examples:
- Rate limit exceeded
example: Rate limit exceeded
required:
- statusCode
- error
- message
/api/v2/subsequences/{id}/duplicate:
post:
operationId: duplicateSubsequence
summary: Duplicate a subsequence
tags:
- CampaignSubsequence
description: 'Duplicate a subsequence with the same trigger conditions
Requires one of the following scopes: `subsequences:create`, `subsequences:all`, `all:create`, `all:all`'
requestBody:
content:
application/json:
schema:
type: object
properties:
parent_campaign:
type: string
format: uuid
description: The ID of the campaign to duplicate the subsequence to.
example: 123e4567-e89b-12d3-a456-426614174000
name:
type: string
description: The name of the duplicate subsequence. Defaults to the source subsequence name when omitted.
example: My Duplicate Subsequence
required:
- parent_campaign
required: true
parameters:
- schema:
type: string
format: uuid
example: 123e4567-e89b-12d3-a456-426614174000
example: 123e4567-e89b-12d3-a456-426614174000
in: path
name: id
required: true
description: The ID of the subsequence to duplicate.
responses:
'200':
description: The requested Campaign Subsequence
content:
application/json:
schema:
$ref: '#/components/schemas/CampaignSubsequence'
'401':
description: This request is unauthorized (either the Authorization header is missing or invalid, or the API key
has been revoked)
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 401
examples:
- 401
example: 401
error:
type: string
enum:
- Unauthorized
examples:
- Unauthorized
example: Unauthorized
message:
type: string
examples:
- Missing Authorization header
example: Missing Authorization header
required:
- statusCode
- error
- message
'402':
description: This request cannot be fulfilled because the workspace does not have an active paid plan
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 402
examples:
- 402
example: 402
error:
type: string
enum:
- Payment Required
examples:
- Payment Required
example: Payment Required
message:
type: string
examples:
- Workspace does not have an active paid plan
example: Workspace does not have an active paid plan
required:
- statusCode
- error
- message
'404':
description: The requested resource was not found
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 404
examples:
- 404
example: 404
error:
type: string
enum:
- Not Found
examples:
- Not Found
example: Not Found
message:
type: string
examples:
- Resource not found
example: Resource not found
required:
- statusCode
- error
- message
'429':
description: You have exceeded the rate limit. Please check the rate limit docs for more information.
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 429
examples:
- 429
example: 429
error:
type: string
enum:
- Too Many Requests
examples:
- Too Many Requests
example: Too Many Requests
message:
type: string
examples:
- Rate limit exceeded
example: Rate limit exceeded
required:
- statusCode
- error
- message
/api/v2/subsequences/{id}/pause:
post:
operationId: pauseSubsequence
summary: Pause a subsequence
tags:
- CampaignSubsequence
description: 'Pause a subsequence
Requires one of the following scopes: `subsequences:update`, `subsequences:all`, `all:update`, `all:all`'
parameters:
- schema:
type: string
format: uuid
example: 123e4567-e89b-12d3-a456-426614174000
example: 123e4567-e89b-12d3-a456-426614174000
in: path
name: id
required: true
description: Subsequence ID
responses:
'200':
description: The requested Campaign Subsequence
content:
application/json:
schema:
$ref: '#/components/schemas/CampaignSubsequence'
'401':
description: This request is unauthorized (either the Authorization header is missing or invalid, or the API key
has been revoked)
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 401
examples:
- 401
example: 401
error:
type: string
enum:
- Unauthorized
examples:
- Unauthorized
example: Unauthorized
message:
type: string
examples:
- Missing Authorization header
example: Missing Authorization header
required:
- statusCode
- error
- message
'402':
description: This request cannot be fulfilled because the workspace does not have an active paid plan
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 402
examples:
- 402
example: 402
error:
type: string
enum:
- Payment Required
examples:
- Payment Required
example: Payment Required
message:
type: string
examples:
- Workspace does not have an active paid plan
example: Workspace does not have an active paid plan
required:
- statusCode
- error
- message
'404':
description: The requested resource was not found
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 404
examples:
- 404
example: 404
error:
type: string
enum:
- Not Found
examples:
- Not Found
example: Not Found
message:
type: string
examples:
- Resource not found
example: Resource not found
required:
- statusCode
- error
- message
'429':
description: You have exceeded the rate limit. Please check the rate limit docs for more information.
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 429
examples:
- 429
example: 429
error:
type: string
enum:
- Too Many Requests
examples:
- Too Many Requests
example: Too Many Requests
message:
type: string
examples:
- Rate limit exceeded
example: Rate limit exceeded
required:
- statusCode
- error
- message
/api/v2/subsequences/{id}/resume:
post:
operationId: resumeSubsequence
summary: Resume a paused subsequence
tags:
- CampaignSubsequence
description: 'Resume a paused subsequence
Requires one of the following scopes: `subsequences:update`, `subsequences:all`, `all:update`, `all:all`'
parameters:
- schema:
type: string
format: uuid
example: 123e4567-e89b-12d3-a456-426614174000
example: 123e4567-e89b-12d3-a456-426614174000
in: path
name: id
required: true
description: The ID of the subsequence to resume.
responses:
'200':
description: The requested Campaign Subsequence
content:
application/json:
schema:
$ref: '#/components/schemas/CampaignSubsequence'
'401':
description: This request is unauthorized (either the Authorization header is missing or invalid, or the API key
has been revoked)
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 401
examples:
- 401
example: 401
error:
type: string
enum:
- Unauthorized
examples:
- Unauthorized
example: Unauthorized
message:
type: string
examples:
- Missing Authorization header
example: Missing Authorization header
required:
- statusCode
- error
- message
'402':
description: This request cannot be fulfilled because the workspace does not have an active paid plan
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 402
examples:
- 402
example: 402
error:
type: string
enum:
- Payment Required
examples:
- Payment Required
example: Payment Required
message:
type: string
examples:
- Workspace does not have an active paid plan
example: Workspace does not have an active paid plan
required:
- statusCode
- error
- message
'404':
description: The requested resource was not found
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 404
examples:
- 404
example: 404
error:
type: string
enum:
- Not Found
examples:
- Not Found
example: Not Found
message:
type: string
examples:
- Resource not found
example: Resource not found
required:
- statusCode
- error
- message
'429':
description: You have exceeded the rate limit. Please check the rate limit docs for more information.
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 429
examples:
- 429
example: 429
error:
type: string
enum:
- Too Many Requests
examples:
- Too Many Requests
example: Too Many Requests
message:
type: string
examples:
- Rate limit exceeded
example: Rate limit exceeded
required:
- statusCode
- error
- message
/api/v2/subsequences/analytics:
get:
operationId: getSubsequenceAnalytics
summary: Get subsequence analytics summary
tags:
- CampaignSubsequence
description: 'Returns per-subsequence engagement totals (emails sent, unique opens, unique replies) for the subsequences
of a campaign.
Requires one of the following scopes: `subsequences:read`, `subsequences:all`, `all:read`, `all:all`'
parameters:
- schema:
type: string
format: uuid
example: 123e4567-e89b-12d3-a456-426614174000
example: 123e4567-e89b-12d3-a456-426614174000
in: query
name: campaign_id
required: true
description: The ID of the campaign to fetch subsequence analytics for.
responses:
'200':
description: Per-subsequence analytics totals
content:
application/json:
schema:
type: array
items:
type: object
properties:
subsequence_id:
type: string
format: uuid
examples:
- 123e4567-e89b-12d3-a456-426614174000
example: 123e4567-e89b-12d3-a456-426614174000
emails_sent:
type: number
examples:
- 100
example: 100
unique_opens:
type: number
examples:
- 50
example: 50
unique_replies:
type: number
examples:
- 10
example: 10
required:
- subsequence_id
- emails_sent
- unique_opens
- unique_replies
'401':
description: This request is unauthorized (either the Authorization header is missing or invalid, or the API key
has been revoked)
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 401
examples:
- 401
example: 401
error:
type: string
enum:
- Unauthorized
examples:
- Unauthorized
example: Unauthorized
message:
type: string
examples:
- Missing Authorization header
example: Missing Authorization header
required:
- statusCode
- error
- message
'402':
description: This request cannot be fulfilled because the workspace does not have an active paid plan
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 402
examples:
- 402
example: 402
error:
type: string
enum:
- Payment Required
examples:
- Payment Required
example: Payment Required
message:
type: string
examples:
- Workspace does not have an active paid plan
example: Workspace does not have an active paid plan
required:
- statusCode
- error
- message
'404':
description: The requested resource was not found
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 404
examples:
- 404
example: 404
error:
type: string
enum:
- Not Found
examples:
- Not Found
example: Not Found
message:
type: string
examples:
- Resource not found
example: Resource not found
required:
- statusCode
- error
- message
'429':
description: You have exceeded the rate limit. Please check the rate limit docs for more information.
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 429
examples:
- 429
example: 429
error:
type: string
enum:
- Too Many Requests
examples:
- Too Many Requests
example: Too Many Requests
message:
type: string
examples:
- Rate limit exceeded
example: Rate limit exceeded
required:
- statusCode
- error
- message
/api/v2/subsequences/{id}:
get:
operationId: getCampaignSubsequence
summary: Get campaign subsequence
tags:
- CampaignSubsequence
description: 'Requires one of the following scopes: `subsequences:read`, `subsequences:all`, `all:read`, `all:all`'
parameters:
- schema:
type: string
format: uuid
example: 019ffad2-9c8b-7899-a0d0-1b19c0d82861
example: 019ffad2-9c8b-7899-a0d0-1b19c0d82861
in: path
name: id
required: true
description: The ID of the requested item
responses:
'200':
description: The requested Campaign Subsequence
content:
application/json:
schema:
$ref: '#/components/schemas/CampaignSubsequence'
'401':
description: This request is unauthorized (either the Authorization header is missing or invalid, or the API key
has been revoked)
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 401
examples:
- 401
example: 401
error:
type: string
enum:
- Unauthorized
examples:
- Unauthorized
example: Unauthorized
message:
type: string
examples:
- Missing Authorization header
example: Missing Authorization header
required:
- statusCode
- error
- message
'402':
description: This request cannot be fulfilled because the workspace does not have an active paid plan
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 402
examples:
- 402
example: 402
error:
type: string
enum:
- Payment Required
examples:
- Payment Required
example: Payment Required
message:
type: string
examples:
- Workspace does not have an active paid plan
example: Workspace does not have an active paid plan
required:
- statusCode
- error
- message
'404':
description: The requested resource was not found
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 404
examples:
- 404
example: 404
error:
type: string
enum:
- Not Found
examples:
- Not Found
example: Not Found
message:
type: string
examples:
- Resource not found
example: Resource not found
required:
- statusCode
- error
- message
'429':
description: You have exceeded the rate limit. Please check the rate limit docs for more information.
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 429
examples:
- 429
example: 429
error:
type: string
enum:
- Too Many Requests
examples:
- Too Many Requests
example: Too Many Requests
message:
type: string
examples:
- Rate limit exceeded
example: Rate limit exceeded
required:
- statusCode
- error
- message
patch:
operationId: patchCampaignSubsequence
summary: Patch campaign subsequence
tags:
- CampaignSubsequence
description: 'Requires one of the following scopes: `subsequences:update`, `subsequences:all`, `all:update`, `all:all`'
requestBody:
content:
application/json:
schema:
type: object
properties:
name:
type: string
description: Name of the subsequence
example: Follow-up sequence
conditions:
type: object
description: Conditions that trigger the subsequence
properties:
crm_status:
type: array
description: Lead CRM statuses that trigger the subsequence. Accepts the built-in statuses listed below,
or the interest status of a custom lead label.
items:
type: number
minimum: -30000
maximum: 30000
x-enumDescriptions:
'0': Out of Office
'1': Interested
'2': Meeting Booked
'3': Meeting Completed
'4': Won
'-1': Not Interested
'-2': Wrong Person
'-3': Lost
'-4': No Show
example: 1
lead_activity:
type: array
description: Lead activities that trigger the subsequence.
items:
type: number
enum:
- 4
- 91
- 2
x-enumDescriptions:
'2': Email Opened - Triggered when a lead opens an email
'4': Email Link Clicked - Triggered when a lead clicks a link in an email
'91': Campaign Completed Without Reply - Triggered when a campaign completes for a lead without
receiving a reply
example: 4
reply_contains:
type: string
example: 'yes'
subsequence_schedule:
type: object
description: Schedule configuration for the subsequence. When omitted on create, inherits the parent campaign's
schedule.
properties:
start_date:
type:
- string
- 'null'
format: date
description: Start date in YYYY-MM-DD format. Uses the campaign's timezone.
example: '2025-09-25'
end_date:
type:
- string
- 'null'
format: date
description: End date in YYYY-MM-DD format. Uses the campaign's timezone.
example: '2025-09-25'
schedules:
type: array
items:
type: object
properties:
name:
type: string
example: My Schedule
timing:
type: object
properties:
from:
type: string
pattern: ^([01][0-9]|2[0-3]):([0-5][0-9])$
example: 09:00
to:
type: string
pattern: ^([01][0-9]|2[0-3]):([0-5][0-9])$
example: '17:00'
required:
- from
- to
days:
type: object
minProperties: 1
properties:
'0':
type: boolean
example: true
'1':
type: boolean
example: true
'2':
type: boolean
example: true
'3':
type: boolean
example: true
'4':
type: boolean
example: true
'5':
type: boolean
example: false
'6':
type: boolean
example: false
timezone:
type: string
enum:
- Etc/GMT+12
- Etc/GMT+11
- Etc/GMT+10
- America/Anchorage
- America/Dawson
- America/Creston
- America/Chihuahua
- America/Boise
- America/Belize
- America/Chicago
- America/Bahia_Banderas
- America/Regina
- America/Bogota
- America/Detroit
- America/Indiana/Marengo
- America/Caracas
- America/Asuncion
- America/Glace_Bay
- America/Campo_Grande
- America/Anguilla
- America/Santiago
- America/St_Johns
- America/Sao_Paulo
- America/Argentina/La_Rioja
- America/Araguaina
- America/Godthab
- America/Montevideo
- America/Bahia
- America/Noronha
- America/Scoresbysund
- Atlantic/Cape_Verde
- Africa/Casablanca
- America/Danmarkshavn
- Europe/Isle_of_Man
- Atlantic/Canary
- Africa/Abidjan
- Arctic/Longyearbyen
- Europe/Belgrade
- Africa/Ceuta
- Europe/Sarajevo
- Africa/Algiers
- Africa/Windhoek
- Asia/Nicosia
- Asia/Beirut
- Africa/Cairo
- Asia/Damascus
- Europe/Bucharest
- Africa/Blantyre
- Europe/Helsinki
- Europe/Istanbul
- Asia/Jerusalem
- Africa/Tripoli
- Asia/Amman
- Asia/Baghdad
- Europe/Kaliningrad
- Asia/Aden
- Africa/Addis_Ababa
- Europe/Kirov
- Europe/Astrakhan
- Asia/Tehran
- Asia/Dubai
- Asia/Baku
- Indian/Mahe
- Asia/Tbilisi
- Asia/Yerevan
- Asia/Kabul
- Antarctica/Mawson
- Asia/Yekaterinburg
- Asia/Karachi
- Asia/Kolkata
- Asia/Colombo
- Asia/Kathmandu
- Antarctica/Vostok
- Asia/Dhaka
- Asia/Rangoon
- Antarctica/Davis
- Asia/Novokuznetsk
- Asia/Hong_Kong
- Asia/Krasnoyarsk
- Asia/Brunei
- Australia/Perth
- Asia/Taipei
- Asia/Choibalsan
- Asia/Irkutsk
- Asia/Dili
- Asia/Pyongyang
- Australia/Adelaide
- Australia/Darwin
- Australia/Brisbane
- Australia/Melbourne
- Antarctica/DumontDUrville
- Australia/Currie
- Asia/Chita
- Antarctica/Macquarie
- Asia/Sakhalin
- Pacific/Auckland
- Etc/GMT-12
- Pacific/Fiji
- Asia/Anadyr
- Asia/Kamchatka
- Etc/GMT-13
- Pacific/Apia
example: Etc/GMT+12
required:
- name
- timing
- days
- timezone
minItems: 1
required:
- schedules
sequences:
type: array
description: List of sequences (the actual email copy). Even though this field is an array, only the first
element is used, so please provide only one array item, and add the steps to that array
items:
type: object
properties:
steps:
type: array
items:
type: object
properties:
type:
type: string
enum:
- email
x-enumDescriptions:
email: This steps represents an email
description: Type of step. This has to be 'email' always - it's the only supported type for
now
example: email
delay:
type: number
description: The delay value before sending the NEXT email. The unit is determined by the delay_unit
field (defaults to days).
example: 2
delay_unit:
type: string
enum:
- minutes
- hours
- days
default: days
description: The unit of time for the delay value (minutes, hours, or days). Defaults to days
for backward compatibility.
example: days
pre_delay:
type: number
description: The delay value before sending the FIRST email in a subsequence. **Only applicable
to subsequences** - this field is ignored for regular campaigns. The unit is determined by
the pre_delay_unit field (defaults to days).
example: 2
pre_delay_unit:
type: string
enum:
- minutes
- hours
- days
default: days
description: The unit of time for the pre_delay value (minutes, hours, or days). **Only applicable
to subsequences** - this field is ignored for regular campaigns. Defaults to days for backward
compatibility.
example: days
variants:
type: array
items:
type: object
properties:
subject:
type: string
example: Hello {{firstName}}
body:
type: string
description: Email body HTML. Use `
` tags for delivered email line breaks.
example: Hey {{firstName}},
I hope you are doing well.
v_disabled:
type: boolean
description: Whether this variant is disabled. By default, all the variants are enabled.
Please set this to true if you want to disable this variant
example: true
required:
- subject
- body
minItems: 1
maxItems: 26
contains:
type: object
not:
properties:
v_disabled:
enum:
- true
required:
- v_disabled
required:
- type
- delay
- variants
required:
- steps
auto_variant_select:
type:
- object
- 'null'
description: Automatically select the winning variant for each step using open, click, or reply rate. Set
to `null` to disable automatic selection.
properties:
trigger:
type: string
enum:
- reply_rate
- click_rate
- open_rate
examples:
- click_rate
example: click_rate
required:
- trigger
daily_limit_mode:
type: string
description: Daily limit mode for the subsequence. "inherit" uses the parent campaign limit, "custom" uses
a subsequence-specific limit, "unlimited" bypasses the campaign-level daily limit.
enum:
- inherit
- custom
- unlimited
example: inherit
daily_limit:
type:
- number
- 'null'
description: Custom daily limit for the subsequence. Only used when `daily_limit_mode` is "custom".
example: 50
ignore_account_daily_limit:
type: boolean
description: When enabled, the subsequence will send even when sending accounts have reached their daily
limit.
example: false
required: []
additionalProperties: false
minProperties: 1
parameters:
- schema:
type: string
format: uuid
example: 019ffad2-9c8c-7d69-9bc1-9209e81446e8
example: 019ffad2-9c8c-7d69-9bc1-9209e81446e8
in: path
name: id
required: true
description: The ID of the item to update
responses:
'200':
description: The updated Campaign Subsequence
content:
application/json:
schema:
$ref: '#/components/schemas/CampaignSubsequence'
'401':
description: This request is unauthorized (either the Authorization header is missing or invalid, or the API key
has been revoked)
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 401
examples:
- 401
example: 401
error:
type: string
enum:
- Unauthorized
examples:
- Unauthorized
example: Unauthorized
message:
type: string
examples:
- Missing Authorization header
example: Missing Authorization header
required:
- statusCode
- error
- message
'402':
description: This request cannot be fulfilled because the workspace does not have an active paid plan
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 402
examples:
- 402
example: 402
error:
type: string
enum:
- Payment Required
examples:
- Payment Required
example: Payment Required
message:
type: string
examples:
- Workspace does not have an active paid plan
example: Workspace does not have an active paid plan
required:
- statusCode
- error
- message
'404':
description: The requested resource was not found
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 404
examples:
- 404
example: 404
error:
type: string
enum:
- Not Found
examples:
- Not Found
example: Not Found
message:
type: string
examples:
- Resource not found
example: Resource not found
required:
- statusCode
- error
- message
'429':
description: You have exceeded the rate limit. Please check the rate limit docs for more information.
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 429
examples:
- 429
example: 429
error:
type: string
enum:
- Too Many Requests
examples:
- Too Many Requests
example: Too Many Requests
message:
type: string
examples:
- Rate limit exceeded
example: Rate limit exceeded
required:
- statusCode
- error
- message
delete:
operationId: deleteCampaignSubsequence
summary: Delete campaign subsequence
tags:
- CampaignSubsequence
description: 'Requires one of the following scopes: `subsequences:delete`, `subsequences:all`, `all:delete`, `all:all`'
requestBody:
content:
application/json:
schema:
type: 'null'
example: null
parameters:
- schema:
type: string
format: uuid
example: 019ffad2-9c8c-7d69-9bc1-920a739b3101
example: 019ffad2-9c8c-7d69-9bc1-920a739b3101
in: path
name: id
required: true
description: The ID of the item to delete
responses:
'200':
description: The deleted Campaign Subsequence
content:
application/json:
schema:
$ref: '#/components/schemas/CampaignSubsequence'
'401':
description: This request is unauthorized (either the Authorization header is missing or invalid, or the API key
has been revoked)
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 401
examples:
- 401
example: 401
error:
type: string
enum:
- Unauthorized
examples:
- Unauthorized
example: Unauthorized
message:
type: string
examples:
- Missing Authorization header
example: Missing Authorization header
required:
- statusCode
- error
- message
'402':
description: This request cannot be fulfilled because the workspace does not have an active paid plan
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 402
examples:
- 402
example: 402
error:
type: string
enum:
- Payment Required
examples:
- Payment Required
example: Payment Required
message:
type: string
examples:
- Workspace does not have an active paid plan
example: Workspace does not have an active paid plan
required:
- statusCode
- error
- message
'404':
description: The requested resource was not found
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 404
examples:
- 404
example: 404
error:
type: string
enum:
- Not Found
examples:
- Not Found
example: Not Found
message:
type: string
examples:
- Resource not found
example: Resource not found
required:
- statusCode
- error
- message
'429':
description: You have exceeded the rate limit. Please check the rate limit docs for more information.
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 429
examples:
- 429
example: 429
error:
type: string
enum:
- Too Many Requests
examples:
- Too Many Requests
example: Too Many Requests
message:
type: string
examples:
- Rate limit exceeded
example: Rate limit exceeded
required:
- statusCode
- error
- message
/api/v2/subsequences/{id}/analytics/steps:
get:
operationId: getSubsequenceStepsAnalytics
summary: Get subsequence step and variant analytics
tags:
- CampaignSubsequence
- Analytics
description: 'Returns engagement metrics grouped by zero-based step and variant for one subsequence. Results include
only activity from the requested subsequence, excluding its parent campaign and sibling subsequences.
Requires one of the following scopes: `subsequences:read`, `subsequences:all`, `all:read`, `all:all`'
parameters:
- schema:
type: string
example: '2024-01-01'
examples:
'2024-01-01':
value: '2024-01-01'
'2024-01-01T12:00:00.000Z':
value: '2024-01-01T12:00:00.000Z'
in: query
name: start_date
required: false
description: Inclusive start of the analytics range. Accepts a date-only value (`YYYY-MM-DD`) or an ISO 8601 timestamp.
Timestamps are normalized to their UTC calendar date.
- schema:
type: string
example: '2024-01-31'
examples:
'2024-01-31':
value: '2024-01-31'
'2024-01-31T23:59:59.999Z':
value: '2024-01-31T23:59:59.999Z'
in: query
name: end_date
required: false
description: Inclusive end of the analytics range. Accepts a date-only value (`YYYY-MM-DD`) or an ISO 8601 timestamp.
Timestamps are normalized to their UTC calendar date.
- schema:
type: string
format: uuid
example: 019ffad2-9c8b-7899-a0d0-1b1ac5dedeb4
example: 019ffad2-9c8b-7899-a0d0-1b1ac5dedeb4
in: path
name: id
required: true
description: The ID of the subsequence to analyze.
responses:
'200':
description: Engagement metrics grouped by subsequence step and variant.
content:
application/json:
schema:
type: array
description: Engagement metrics grouped by subsequence step and variant.
items:
type: object
properties:
step:
type:
- 'null'
- string
description: Zero-based step index. `0` is the first step. Null when the event could not be attributed
to a step.
example: '0'
variant:
type:
- 'null'
- string
description: Zero-based variant index. `0` is variant A, `1` is variant B, and so on. Null when the
event could not be attributed to a variant.
example: '0'
sent:
type: integer
description: Total emails sent from this step and variant.
example: 100
opened:
type: integer
description: Total open events attributed to this step and variant.
example: 45
unique_opened:
type: integer
description: Number of unique leads that opened an email from this step and variant.
example: 40
replies:
type: integer
description: Total replies attributed to this step and variant.
example: 12
unique_replies:
type: integer
description: Number of unique leads that replied to this step and variant.
example: 11
replies_automatic:
type: integer
description: Total automatic replies attributed to this step and variant.
example: 2
unique_replies_automatic:
type: integer
description: Number of unique leads that sent an automatic reply to this step and variant.
example: 2
clicks:
type: integer
description: Total link click events attributed to this step and variant.
example: 18
unique_clicks:
type: integer
description: Number of unique leads that clicked a link in this step and variant.
example: 15
required:
- step
- variant
- sent
- opened
- unique_opened
- replies
- unique_replies
- replies_automatic
- unique_replies_automatic
- clicks
- unique_clicks
'400':
description: The request is invalid (e.g. missing required fields, invalid field values, or an invalid state for
the operation)
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 400
examples:
- 400
example: 400
error:
type: string
enum:
- Bad Request
examples:
- Bad Request
example: Bad Request
message:
type: string
examples:
- body must have required property 'name'
example: body must have required property 'name'
required:
- statusCode
- error
- message
'401':
description: This request is unauthorized (either the Authorization header is missing or invalid, or the API key
has been revoked)
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 401
examples:
- 401
example: 401
error:
type: string
enum:
- Unauthorized
examples:
- Unauthorized
example: Unauthorized
message:
type: string
examples:
- Missing Authorization header
example: Missing Authorization header
required:
- statusCode
- error
- message
'402':
description: This request cannot be fulfilled because the workspace does not have an active paid plan
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 402
examples:
- 402
example: 402
error:
type: string
enum:
- Payment Required
examples:
- Payment Required
example: Payment Required
message:
type: string
examples:
- Workspace does not have an active paid plan
example: Workspace does not have an active paid plan
required:
- statusCode
- error
- message
'403':
description: This request is forbidden (the API key scope or workspace plan does not allow this action)
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 403
examples:
- 403
example: 403
error:
type: string
enum:
- Forbidden
examples:
- Forbidden
example: Forbidden
message:
type: string
examples:
- Forbidden
example: Forbidden
required:
- statusCode
- error
- message
'404':
description: The requested resource was not found
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 404
examples:
- 404
example: 404
error:
type: string
enum:
- Not Found
examples:
- Not Found
example: Not Found
message:
type: string
examples:
- Resource not found
example: Resource not found
required:
- statusCode
- error
- message
'429':
description: You have exceeded the rate limit. Please check the rate limit docs for more information.
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 429
examples:
- 429
example: 429
error:
type: string
enum:
- Too Many Requests
examples:
- Too Many Requests
example: Too Many Requests
message:
type: string
examples:
- Rate limit exceeded
example: Rate limit exceeded
required:
- statusCode
- error
- message
/api/v2/subsequences/{id}/sending-status:
get:
operationId: getSubsequenceSendingStatus
summary: Get subsequence sending status
tags:
- CampaignSubsequence
description: 'Returns sending status data explaining why a subsequence may not be sending emails or is sending slower
than expected. Note: Some fields may be missing when the campaign is out of schedule. Always-present fields: campaign_id,
subsequence_id, last_updated, status, issue_tracking.
Requires one of the following scopes: `subsequences:read`, `subsequences:all`, `all:read`, `all:all`'
parameters:
- schema:
type: boolean
default: false
example: false
example: false
in: query
name: with_ai_summary
required: false
description: Include AI-generated summary
- schema:
type: string
format: uuid
example: 019ffad2-9c8d-75ac-a328-bf7520115109
example: 019ffad2-9c8d-75ac-a328-bf7520115109
in: path
name: id
required: true
description: Subsequence ID
responses:
'200':
description: Sending status data with human-readable summary. Returns null for both fields if no data is available.
content:
application/json:
schema:
type: object
description: Sending status data with human-readable summary. Returns null for both fields if no data is available.
properties:
diagnostics:
type:
- 'null'
- object
additionalProperties: true
description: Raw sending status data. Some fields may be missing when campaign is out of schedule.
properties:
campaign_id:
type: string
description: The campaign ID
examples:
- 019ffad2-8d52-7649-baa5-1601894e64fd
example: 019ffad2-8d52-7649-baa5-1601894e64fd
subsequence_id:
type: string
description: The subsequence ID (only present for subsequence endpoints)
examples:
- 019ffad2-8d52-7649-baa5-16026b2682a3
example: 019ffad2-8d52-7649-baa5-16026b2682a3
last_updated:
type: string
description: ISO timestamp of when this data was last updated
examples:
- '2026-08-13T11:12:10.578Z'
example: '2026-08-13T11:12:10.578Z'
status:
type:
- 'null'
- string
description: Status code explaining why the campaign is not sending or sending slower
enum:
- campaign_paused
- campaign_draft
- campaign_completed
- campaign_running_subsequences
- campaign_bounce_protect
- campaign_accounts_unhealthy
- campaign_account_suspended
- out_of_schedule
- waiting_for_leads
- daily_limit_met
- account_daily_limit_met
- new_lead_limit_met
- all_accounts_unhealthy
- waiting_for_esp_match
- domain_limit_reached
- follow_up_delay_not_met
- no_accounts_available
- healthy
examples:
- healthy
example: healthy
issue_tracking:
type: object
description: Tracks persistence of the current issue
properties:
current_status_code:
type:
- 'null'
- string
description: Current status code
examples:
- healthy
example: healthy
issue_first_seen_at:
type:
- 'null'
- string
description: ISO timestamp when the issue was first detected
examples:
- '2026-08-13T11:12:10.578Z'
example: '2026-08-13T11:12:10.578Z'
consecutive_loops_with_issue:
type: number
description: Number of consecutive processing loops with this issue
examples:
- 0
example: 0
last_healthy_send_at:
type:
- 'null'
- string
description: ISO timestamp of last successful send
examples:
- '2026-08-13T11:12:10.578Z'
example: '2026-08-13T11:12:10.578Z'
accounts_summary:
type: object
description: Summary of sending account availability. May be missing when campaign is out of schedule.
properties:
total_connected:
type: number
description: Total number of connected sending accounts
examples:
- 5
example: 5
available:
type: number
description: Number of accounts available to send
examples:
- 3
example: 3
unavailable:
type: object
description: Breakdown of unavailable accounts by reason
properties:
daily_limit_hit:
type: number
description: Accounts that hit their configured daily sending limit
examples:
- 1
example: 1
slow_ramp_limit_hit:
type: number
description: Accounts that hit the dynamic slow ramp limit (warmup feature)
examples:
- 0
example: 0
disconnected:
type: number
description: Accounts that are disconnected
examples:
- 1
example: 1
global_gap_not_met:
type: number
description: Accounts waiting for global sending gap
examples:
- 0
example: 0
campaign_daily_limit:
type: object
description: Campaign daily sending limit status. May be missing when campaign is out of schedule.
properties:
limit:
type: number
description: Configured daily sending limit
examples:
- 100
example: 100
sent:
type: number
description: Number of emails sent today
examples:
- 50
example: 50
limit_hit:
type: boolean
description: Whether the daily limit has been reached
examples:
- false
example: false
new_lead_limit:
type: object
description: New lead daily limit status. May be missing when campaign is out of schedule.
properties:
enabled:
type: boolean
description: Whether new lead limiting is enabled
examples:
- true
example: true
limit:
type:
- 'null'
- number
description: Configured new lead limit per day
examples:
- 50
example: 50
contacted:
type: number
description: Number of new leads contacted today
examples:
- 25
example: 25
limit_hit:
type: boolean
description: Whether the new lead limit has been reached
examples:
- false
example: false
schedule_status:
type: object
description: Campaign schedule status
properties:
in_schedule:
type: boolean
description: Whether the campaign is currently within scheduled sending hours
examples:
- true
example: true
send_one_by_one:
type: object
description: Send one-by-one settings. May be missing when campaign is out of schedule.
properties:
enabled:
type: boolean
description: Whether send one-by-one mode is enabled
examples:
- false
example: false
single_account_per_wait_gap:
type: boolean
description: Whether to use single account per wait gap
examples:
- false
example: false
follow_ups_waiting:
type: object
description: Follow-up emails waiting status. May be missing when campaign is out of schedule.
properties:
count:
type: number
description: Number of follow-ups waiting to be sent
examples:
- 10
example: 10
earliest_wait_time_seconds:
type:
- 'null'
- number
description: Seconds until the earliest follow-up can be sent
examples:
- 3600
example: 3600
esp_routing_status:
type: object
description: ESP routing status. May be missing when campaign is out of schedule.
properties:
enabled:
type: boolean
description: Whether ESP routing is enabled
examples:
- false
example: false
waiting_for_match:
type: boolean
description: Whether waiting for an ESP-matched account
examples:
- false
example: false
connected_esps:
type: array
items:
type: number
examples:
- 1
example: 1
description: List of connected ESP IDs
domain_limiter:
type: object
description: Per-domain sending limit status. May be missing when campaign is out of schedule.
properties:
active:
type: boolean
description: Whether domain limiting is active
examples:
- false
example: false
domains_at_limit:
type: number
description: Number of domains that have reached their limit
examples:
- 0
example: 0
leads_status:
type: object
description: Lead availability status. May be missing when campaign is out of schedule.
properties:
no_leads_ready:
type: boolean
description: Whether there are no leads ready to receive emails
examples:
- false
example: false
account_unavailable_skips:
type: number
description: Number of leads skipped due to account unavailability
examples:
- 0
example: 0
delay_not_met_skips:
type: number
description: Number of leads skipped due to delay requirements not met
examples:
- 0
example: 0
summary:
type:
- 'null'
- object
additionalProperties: true
description: Human-readable summary of the sending status
properties:
status:
type:
- 'null'
- string
description: The status code
examples:
- healthy
example: healthy
status_message:
type:
- 'null'
- string
description: Human-readable message explaining the status
examples:
- Campaign is sending normally
example: Campaign is sending normally
issue_started_at:
type:
- 'null'
- string
description: ISO timestamp when the issue was first detected
examples:
- '2026-08-13T11:12:10.578Z'
example: '2026-08-13T11:12:10.578Z'
last_healthy_send_at:
type:
- 'null'
- string
description: ISO timestamp of last successful send
examples:
- '2026-08-13T11:12:10.578Z'
example: '2026-08-13T11:12:10.578Z'
ai_summary:
type:
- 'null'
- string
description: AI-generated plain-English summary (only when with_ai_summary=true)
examples:
- Your campaign is sending emails normally.
example: Your campaign is sending emails normally.
'401':
description: This request is unauthorized (either the Authorization header is missing or invalid, or the API key
has been revoked)
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 401
examples:
- 401
example: 401
error:
type: string
enum:
- Unauthorized
examples:
- Unauthorized
example: Unauthorized
message:
type: string
examples:
- Missing Authorization header
example: Missing Authorization header
required:
- statusCode
- error
- message
'402':
description: This request cannot be fulfilled because the workspace does not have an active paid plan
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 402
examples:
- 402
example: 402
error:
type: string
enum:
- Payment Required
examples:
- Payment Required
example: Payment Required
message:
type: string
examples:
- Workspace does not have an active paid plan
example: Workspace does not have an active paid plan
required:
- statusCode
- error
- message
'404':
description: The requested resource was not found
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 404
examples:
- 404
example: 404
error:
type: string
enum:
- Not Found
examples:
- Not Found
example: Not Found
message:
type: string
examples:
- Resource not found
example: Resource not found
required:
- statusCode
- error
- message
'429':
description: You have exceeded the rate limit. Please check the rate limit docs for more information.
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 429
examples:
- 429
example: 429
error:
type: string
enum:
- Too Many Requests
examples:
- Too Many Requests
example: Too Many Requests
message:
type: string
examples:
- Rate limit exceeded
example: Rate limit exceeded
required:
- statusCode
- error
- message
/api/v2/email-verification:
post:
operationId: createEmailVerification
summary: Create email verification
tags:
- EmailVerification
description: 'If an email takes longer than 10 seconds to verify, the endpoint will return the status as `pending`.
In that case, you may use the `/email-verification/:email` endpoint to check the status of the verification job.
Alternatively, you can send a `webhook_url` to receive the results instead of polling the status endpoint.
Requires one of the following scopes: `email_verifications:create`
Requires one of the following scopes: `email_verifications:create`, `email_verifications:all`, `all:create`, `all:all`'
requestBody:
content:
application/json:
schema:
title: CreateEmail Verification
description: The Email Verification to create
type: object
properties:
email:
type: string
description: The email address to verify
example: example@example.com
webhook_url:
type: string
description: A webhook URL to receive the verification results. If the email verification takes more than
10 seconds we will send the results to this URL.
example: https://example.com/webhook
required:
- email
additionalProperties: false
required: true
description: The Email Verification to create
responses:
'200':
description: The Email Verification
content:
application/json:
schema:
$ref: '#/components/schemas/EmailVerification'
'400':
description: Invalid request body (e.g. missing required fields, or invalid field values)
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 400
examples:
- 400
example: 400
error:
type: string
enum:
- Bad Request
examples:
- Bad Request
example: Bad Request
message:
type: string
examples:
- body must have required property 'name'
example: body must have required property 'name'
required:
- statusCode
- error
- message
'401':
description: This request is unauthorized (either the Authorization header is missing or invalid, or the API key
has been revoked)
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 401
examples:
- 401
example: 401
error:
type: string
enum:
- Unauthorized
examples:
- Unauthorized
example: Unauthorized
message:
type: string
examples:
- Missing Authorization header
example: Missing Authorization header
required:
- statusCode
- error
- message
'402':
description: This request cannot be fulfilled because the workspace does not have an active paid plan
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 402
examples:
- 402
example: 402
error:
type: string
enum:
- Payment Required
examples:
- Payment Required
example: Payment Required
message:
type: string
examples:
- Workspace does not have an active paid plan
example: Workspace does not have an active paid plan
required:
- statusCode
- error
- message
'404':
description: The requested resource was not found
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 404
examples:
- 404
example: 404
error:
type: string
enum:
- Not Found
examples:
- Not Found
example: Not Found
message:
type: string
examples:
- Resource not found
example: Resource not found
required:
- statusCode
- error
- message
'429':
description: You have exceeded the rate limit. Please check the rate limit docs for more information.
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 429
examples:
- 429
example: 429
error:
type: string
enum:
- Too Many Requests
examples:
- Too Many Requests
example: Too Many Requests
message:
type: string
examples:
- Rate limit exceeded
example: Rate limit exceeded
required:
- statusCode
- error
- message
/api/v2/email-verification/{email}:
get:
operationId: checkVerificationStatus
summary: Check an email verification status
tags:
- EmailVerification
description: 'Requires one of the following scopes: `email_verifications:read`, `email_verifications:all`, `all:read`,
`all:all`'
parameters:
- schema:
type: string
format: email
example: user@example.com
example: user@example.com
in: path
name: email
required: true
description: The email address to verify
responses:
'200':
description: The requested Email Verification
content:
application/json:
schema:
$ref: '#/components/schemas/EmailVerification'
'401':
description: This request is unauthorized (either the Authorization header is missing or invalid, or the API key
has been revoked)
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 401
examples:
- 401
example: 401
error:
type: string
enum:
- Unauthorized
examples:
- Unauthorized
example: Unauthorized
message:
type: string
examples:
- Missing Authorization header
example: Missing Authorization header
required:
- statusCode
- error
- message
'402':
description: This request cannot be fulfilled because the workspace does not have an active paid plan
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 402
examples:
- 402
example: 402
error:
type: string
enum:
- Payment Required
examples:
- Payment Required
example: Payment Required
message:
type: string
examples:
- Workspace does not have an active paid plan
example: Workspace does not have an active paid plan
required:
- statusCode
- error
- message
'404':
description: The requested resource was not found
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 404
examples:
- 404
example: 404
error:
type: string
enum:
- Not Found
examples:
- Not Found
example: Not Found
message:
type: string
examples:
- Resource not found
example: Resource not found
required:
- statusCode
- error
- message
'429':
description: You have exceeded the rate limit. Please check the rate limit docs for more information.
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 429
examples:
- 429
example: 429
error:
type: string
enum:
- Too Many Requests
examples:
- Too Many Requests
example: Too Many Requests
message:
type: string
examples:
- Rate limit exceeded
example: Rate limit exceeded
required:
- statusCode
- error
- message
/api/v2/webhook-events:
get:
operationId: listWebhookEvent
summary: List webhook event
tags:
- WebhookEvent
description: 'Requires one of the following scopes: `webhook_events:read`, `webhook_events:all`, `all:read`, `all:all`'
parameters:
- schema:
type: integer
minimum: 1
maximum: 100
example: 10
example: 10
in: query
name: limit
required: false
description: The number of items to return
- schema:
type: string
example: 01956fbd-0eb1-72db-a565-82977a586084
example: 01956fbd-0eb1-72db-a565-82977a586084
in: query
name: starting_after
required: false
description: The ID of the last item in the previous page - used for pagination. You can use the value of the `next_starting_after`
field from the previous response.
- schema:
type: boolean
example: true
examples:
'true':
value: true
'false':
value: false
in: query
name: success
required: false
description: Filter by success status
- schema:
type: string
format: date
example: '2024-01-01'
example: '2024-01-01'
in: query
name: from
required: false
description: Inclusive start of the window (YYYY-MM-DD).
- schema:
type: string
format: date
example: '2024-01-31'
example: '2024-01-31'
in: query
name: to
required: false
description: Inclusive end of the window (YYYY-MM-DD).
- schema:
type: string
example: https://webhook.site/unique-url
examples:
https://webhook.site/unique-url:
value: https://webhook.site/unique-url
lead@example.com:
value: lead@example.com
in: query
name: search
required: false
description: Search by exact webhook URL or lead email match
responses:
'200':
description: The list of Webhook Event
content:
application/json:
schema:
type: object
properties:
items:
type: array
description: The list of Webhook Event
items:
$ref: '#/components/schemas/WebhookEvent'
next_starting_after:
type: string
examples:
- 019ffad2-9cb3-7392-a3d7-861abf2f6361
- '2026-08-13T11:12:14.515Z'
description: The filter for getting the next items after this one, this could either be a UUID, a timestamp,
on an email depending on the specific API
example: 019ffad2-9cb3-7392-a3d7-861abf2f6361
additionalProperties: false
required:
- items
'401':
description: This request is unauthorized (either the Authorization header is missing or invalid, or the API key
has been revoked)
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 401
examples:
- 401
example: 401
error:
type: string
enum:
- Unauthorized
examples:
- Unauthorized
example: Unauthorized
message:
type: string
examples:
- Missing Authorization header
example: Missing Authorization header
required:
- statusCode
- error
- message
'402':
description: This request cannot be fulfilled because the workspace does not have an active paid plan
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 402
examples:
- 402
example: 402
error:
type: string
enum:
- Payment Required
examples:
- Payment Required
example: Payment Required
message:
type: string
examples:
- Workspace does not have an active paid plan
example: Workspace does not have an active paid plan
required:
- statusCode
- error
- message
'404':
description: The requested resource was not found
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 404
examples:
- 404
example: 404
error:
type: string
enum:
- Not Found
examples:
- Not Found
example: Not Found
message:
type: string
examples:
- Resource not found
example: Resource not found
required:
- statusCode
- error
- message
'429':
description: You have exceeded the rate limit. Please check the rate limit docs for more information.
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 429
examples:
- 429
example: 429
error:
type: string
enum:
- Too Many Requests
examples:
- Too Many Requests
example: Too Many Requests
message:
type: string
examples:
- Rate limit exceeded
example: Rate limit exceeded
required:
- statusCode
- error
- message
/api/v2/webhook-events/{id}:
get:
operationId: getWebhookEvent
summary: Get webhook event
tags:
- WebhookEvent
description: 'Requires one of the following scopes: `webhook_events:read`, `webhook_events:all`, `all:read`, `all:all`'
parameters:
- schema:
type: string
format: uuid
example: 019ffad2-9cb3-7392-a3d7-861b5edf9d23
example: 019ffad2-9cb3-7392-a3d7-861b5edf9d23
in: path
name: id
required: true
description: The ID of the requested item
responses:
'200':
description: The requested Webhook Event
content:
application/json:
schema:
$ref: '#/components/schemas/WebhookEvent'
'401':
description: This request is unauthorized (either the Authorization header is missing or invalid, or the API key
has been revoked)
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 401
examples:
- 401
example: 401
error:
type: string
enum:
- Unauthorized
examples:
- Unauthorized
example: Unauthorized
message:
type: string
examples:
- Missing Authorization header
example: Missing Authorization header
required:
- statusCode
- error
- message
'402':
description: This request cannot be fulfilled because the workspace does not have an active paid plan
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 402
examples:
- 402
example: 402
error:
type: string
enum:
- Payment Required
examples:
- Payment Required
example: Payment Required
message:
type: string
examples:
- Workspace does not have an active paid plan
example: Workspace does not have an active paid plan
required:
- statusCode
- error
- message
'404':
description: The requested resource was not found
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 404
examples:
- 404
example: 404
error:
type: string
enum:
- Not Found
examples:
- Not Found
example: Not Found
message:
type: string
examples:
- Resource not found
example: Resource not found
required:
- statusCode
- error
- message
'429':
description: You have exceeded the rate limit. Please check the rate limit docs for more information.
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 429
examples:
- 429
example: 429
error:
type: string
enum:
- Too Many Requests
examples:
- Too Many Requests
example: Too Many Requests
message:
type: string
examples:
- Rate limit exceeded
example: Rate limit exceeded
required:
- statusCode
- error
- message
/api/v2/webhook-events/summary:
get:
operationId: getWebhookEventsSummary
summary: Get overview aggregates for webhook events
tags:
- WebhookEvent
description: Get overview aggregates for webhook events including success/failure rates
parameters:
- schema:
type: string
format: date
example: '2024-01-01'
example: '2024-01-01'
in: query
name: from
required: false
description: Inclusive start of the window (YYYY-MM-DD).
- schema:
type: string
format: date
example: '2024-01-31'
example: '2024-01-31'
in: query
name: to
required: false
description: Inclusive end of the window (YYYY-MM-DD).
responses:
'200':
description: Default Response
content:
application/json:
schema:
type: object
properties:
total_events:
type: number
description: Total number of webhook events
example: 100
successful_events:
type: number
description: Total number of successful webhook events
example: 100
failed_events:
type: number
description: Total number of failed webhook events
example: 100
success_rate:
type: number
description: Percentage (0-100) of successful webhook calls
example: 50
failure_rate:
type: number
description: Percentage (0-100) of failed webhook calls
example: 50
required:
- total_events
- successful_events
- failed_events
- success_rate
- failure_rate
'401':
description: This request is unauthorized (either the Authorization header is missing or invalid, or the API key
has been revoked)
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 401
examples:
- 401
example: 401
error:
type: string
enum:
- Unauthorized
examples:
- Unauthorized
example: Unauthorized
message:
type: string
examples:
- Missing Authorization header
example: Missing Authorization header
required:
- statusCode
- error
- message
'402':
description: This request cannot be fulfilled because the workspace does not have an active paid plan
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 402
examples:
- 402
example: 402
error:
type: string
enum:
- Payment Required
examples:
- Payment Required
example: Payment Required
message:
type: string
examples:
- Workspace does not have an active paid plan
example: Workspace does not have an active paid plan
required:
- statusCode
- error
- message
'404':
description: The requested resource was not found
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 404
examples:
- 404
example: 404
error:
type: string
enum:
- Not Found
examples:
- Not Found
example: Not Found
message:
type: string
examples:
- Resource not found
example: Resource not found
required:
- statusCode
- error
- message
'429':
description: You have exceeded the rate limit. Please check the rate limit docs for more information.
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 429
examples:
- 429
example: 429
error:
type: string
enum:
- Too Many Requests
examples:
- Too Many Requests
example: Too Many Requests
message:
type: string
examples:
- Rate limit exceeded
example: Rate limit exceeded
required:
- statusCode
- error
- message
/api/v2/webhook-events/summary-by-date:
get:
operationId: getWebhookEventsSummaryByDate
summary: Get overview aggregates for webhook events by date
tags:
- WebhookEvent
description: Get overview aggregates for webhook events by Date for charts
parameters:
- schema:
type: string
format: date
example: '2024-01-01'
example: '2024-01-01'
in: query
name: from
required: false
description: Inclusive start of the window (YYYY-MM-DD).
- schema:
type: string
format: date
example: '2024-01-31'
example: '2024-01-31'
in: query
name: to
required: false
description: Inclusive end of the window (YYYY-MM-DD).
responses:
'200':
description: List of webhook event KPIs grouped by date
content:
application/json:
schema:
type: object
description: List of webhook event KPIs grouped by date
properties:
items:
type: array
items:
type: object
properties:
date:
type: string
format: date
description: Date of the webhook event
example: '2024-01-01'
total_events:
type: number
description: Total number of webhook events
example: 100
successful_events:
type: number
description: Total number of successful webhook events
example: 100
failed_events:
type: number
description: Total number of failed webhook events
example: 100
success_rate:
type: number
description: Success rate of the webhook events
example: 50
required:
- date
- total_events
- successful_events
- failed_events
- success_rate
'401':
description: This request is unauthorized (either the Authorization header is missing or invalid, or the API key
has been revoked)
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 401
examples:
- 401
example: 401
error:
type: string
enum:
- Unauthorized
examples:
- Unauthorized
example: Unauthorized
message:
type: string
examples:
- Missing Authorization header
example: Missing Authorization header
required:
- statusCode
- error
- message
'402':
description: This request cannot be fulfilled because the workspace does not have an active paid plan
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 402
examples:
- 402
example: 402
error:
type: string
enum:
- Payment Required
examples:
- Payment Required
example: Payment Required
message:
type: string
examples:
- Workspace does not have an active paid plan
example: Workspace does not have an active paid plan
required:
- statusCode
- error
- message
'404':
description: The requested resource was not found
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 404
examples:
- 404
example: 404
error:
type: string
enum:
- Not Found
examples:
- Not Found
example: Not Found
message:
type: string
examples:
- Resource not found
example: Resource not found
required:
- statusCode
- error
- message
'429':
description: You have exceeded the rate limit. Please check the rate limit docs for more information.
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 429
examples:
- 429
example: 429
error:
type: string
enum:
- Too Many Requests
examples:
- Too Many Requests
example: Too Many Requests
message:
type: string
examples:
- Rate limit exceeded
example: Rate limit exceeded
required:
- statusCode
- error
- message
/api/v2/webhooks:
get:
operationId: listWebhook
summary: List webhooks
tags:
- Webhook
description: List all webhooks for the workspace with optional filters
parameters:
- schema:
type: integer
minimum: 1
maximum: 100
example: 10
example: 10
in: query
name: limit
required: false
description: The number of items to return
- schema:
type: string
example: 01956fbd-0eb1-72db-a565-82977a586084
example: 01956fbd-0eb1-72db-a565-82977a586084
in: query
name: starting_after
required: false
description: The ID of the last item in the previous page - used for pagination. You can use the value of the `next_starting_after`
field from the previous response.
- schema:
type: string
format: uuid
example: 019ffad2-9cba-73e6-9ae2-c6baedb90d09
example: 019ffad2-9cba-73e6-9ae2-c6baedb90d09
in: query
name: campaign
required: false
description: Filter by campaign ID
- schema:
type: string
enum:
- all_events
- email_sent
- email_opened
- email_link_clicked
- reply_received
- email_bounced
- lead_unsubscribed
- campaign_completed
- account_error
- lead_neutral
- lead_interested
- lead_not_interested
- lead_meeting_booked
- lead_meeting_completed
- lead_closed
- lead_out_of_office
- lead_wrong_person
example: all_events
examples:
all_events:
value: all_events
email_sent:
value: email_sent
in: query
name: event_type
required: false
description: Filter by event type (e.g., email_sent, lead_interested, all_events)
responses:
'200':
description: The list of Webhook
content:
application/json:
schema:
type: object
properties:
items:
type: array
description: The list of Webhook
items:
$ref: '#/components/schemas/Webhook'
next_starting_after:
type: string
examples:
- 019ffad2-9cba-73e6-9ae2-c6bb14cb75ce
- '2026-08-13T11:12:14.522Z'
description: The filter for getting the next items after this one, this could either be a UUID, a timestamp,
on an email depending on the specific API
example: 019ffad2-9cba-73e6-9ae2-c6bb14cb75ce
additionalProperties: false
required:
- items
'401':
description: This request is unauthorized (either the Authorization header is missing or invalid, or the API key
has been revoked)
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 401
examples:
- 401
example: 401
error:
type: string
enum:
- Unauthorized
examples:
- Unauthorized
example: Unauthorized
message:
type: string
examples:
- Missing Authorization header
example: Missing Authorization header
required:
- statusCode
- error
- message
'402':
description: This request cannot be fulfilled because the workspace does not have an active paid plan
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 402
examples:
- 402
example: 402
error:
type: string
enum:
- Payment Required
examples:
- Payment Required
example: Payment Required
message:
type: string
examples:
- Workspace does not have an active paid plan
example: Workspace does not have an active paid plan
required:
- statusCode
- error
- message
'404':
description: The requested resource was not found
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 404
examples:
- 404
example: 404
error:
type: string
enum:
- Not Found
examples:
- Not Found
example: Not Found
message:
type: string
examples:
- Resource not found
example: Resource not found
required:
- statusCode
- error
- message
'429':
description: You have exceeded the rate limit. Please check the rate limit docs for more information.
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 429
examples:
- 429
example: 429
error:
type: string
enum:
- Too Many Requests
examples:
- Too Many Requests
example: Too Many Requests
message:
type: string
examples:
- Rate limit exceeded
example: Rate limit exceeded
required:
- statusCode
- error
- message
post:
operationId: createWebhook
summary: Create webhook
tags:
- Webhook
description: 'Requires one of the following scopes: `webhooks:create`, `webhooks:all`, `all:create`, `all:all`'
requestBody:
content:
application/json:
schema:
title: CreateWebhook
description: The Webhook to create
type: object
properties:
campaign:
type:
- string
- 'null'
description: Optional campaign UUID to filter events (null = all campaigns in workspace)
format: uuid
example: 019ffad2-5cf8-732d-8cf0-41466f7573b6
name:
type:
- string
- 'null'
description: Optional user-defined name for the webhook
example: Zapier Positive Replies
target_hook_url:
type: string
description: Target URL to send webhook payloads
format: uri
pattern: ^https?://
example: https://webhook.site/unique-url
event_type:
type:
- string
- 'null'
description: Type of event to trigger the webhook (null for custom label events). Set to "all_events" to
subscribe to all events - including custom label events
enum:
- all_events
- email_sent
- email_opened
- email_link_clicked
- reply_received
- email_bounced
- lead_unsubscribed
- campaign_completed
- account_error
- lead_neutral
- lead_interested
- lead_not_interested
- lead_meeting_booked
- lead_meeting_completed
- lead_closed
- lead_out_of_office
- lead_wrong_person
- lead_no_show
- supersearch_enrichment_completed
example: email_sent
custom_interest_value:
type:
- number
- 'null'
description: Custom interest value - corresponds to LeadLabel.interest_status (used for custom label events)
example: 1
headers:
type:
- object
- 'null'
description: Optional HTTP headers to include when delivering webhook payloads (key-value pairs)
additionalProperties:
type: string
examples:
- Basic dXNlcm5hbWU6cGFzc3dvcmQ=
example: Basic dXNlcm5hbWU6cGFzc3dvcmQ=
example:
Authorization: Basic dXNlcm5hbWU6cGFzc3dvcmQ=
required:
- target_hook_url
additionalProperties: false
required: true
description: The Webhook to create
responses:
'200':
description: The Webhook
content:
application/json:
schema:
$ref: '#/components/schemas/Webhook'
'400':
description: Invalid request body (e.g. missing required fields, or invalid field values)
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 400
examples:
- 400
example: 400
error:
type: string
enum:
- Bad Request
examples:
- Bad Request
example: Bad Request
message:
type: string
examples:
- body must have required property 'name'
example: body must have required property 'name'
required:
- statusCode
- error
- message
'401':
description: This request is unauthorized (either the Authorization header is missing or invalid, or the API key
has been revoked)
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 401
examples:
- 401
example: 401
error:
type: string
enum:
- Unauthorized
examples:
- Unauthorized
example: Unauthorized
message:
type: string
examples:
- Missing Authorization header
example: Missing Authorization header
required:
- statusCode
- error
- message
'402':
description: This request cannot be fulfilled because the workspace does not have an active paid plan
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 402
examples:
- 402
example: 402
error:
type: string
enum:
- Payment Required
examples:
- Payment Required
example: Payment Required
message:
type: string
examples:
- Workspace does not have an active paid plan
example: Workspace does not have an active paid plan
required:
- statusCode
- error
- message
'404':
description: The requested resource was not found
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 404
examples:
- 404
example: 404
error:
type: string
enum:
- Not Found
examples:
- Not Found
example: Not Found
message:
type: string
examples:
- Resource not found
example: Resource not found
required:
- statusCode
- error
- message
'429':
description: You have exceeded the rate limit. Please check the rate limit docs for more information.
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 429
examples:
- 429
example: 429
error:
type: string
enum:
- Too Many Requests
examples:
- Too Many Requests
example: Too Many Requests
message:
type: string
examples:
- Rate limit exceeded
example: Rate limit exceeded
required:
- statusCode
- error
- message
/api/v2/webhooks/{id}:
get:
operationId: getWebhook
summary: Get webhook
tags:
- Webhook
description: 'Requires one of the following scopes: `webhooks:read`, `webhooks:all`, `all:read`, `all:all`'
parameters:
- schema:
type: string
format: uuid
example: 019ffad2-9cbb-7b55-b289-6f24790a63d9
example: 019ffad2-9cbb-7b55-b289-6f24790a63d9
in: path
name: id
required: true
description: The ID of the requested item
responses:
'200':
description: The requested Webhook
content:
application/json:
schema:
$ref: '#/components/schemas/Webhook'
'401':
description: This request is unauthorized (either the Authorization header is missing or invalid, or the API key
has been revoked)
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 401
examples:
- 401
example: 401
error:
type: string
enum:
- Unauthorized
examples:
- Unauthorized
example: Unauthorized
message:
type: string
examples:
- Missing Authorization header
example: Missing Authorization header
required:
- statusCode
- error
- message
'402':
description: This request cannot be fulfilled because the workspace does not have an active paid plan
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 402
examples:
- 402
example: 402
error:
type: string
enum:
- Payment Required
examples:
- Payment Required
example: Payment Required
message:
type: string
examples:
- Workspace does not have an active paid plan
example: Workspace does not have an active paid plan
required:
- statusCode
- error
- message
'404':
description: The requested resource was not found
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 404
examples:
- 404
example: 404
error:
type: string
enum:
- Not Found
examples:
- Not Found
example: Not Found
message:
type: string
examples:
- Resource not found
example: Resource not found
required:
- statusCode
- error
- message
'429':
description: You have exceeded the rate limit. Please check the rate limit docs for more information.
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 429
examples:
- 429
example: 429
error:
type: string
enum:
- Too Many Requests
examples:
- Too Many Requests
example: Too Many Requests
message:
type: string
examples:
- Rate limit exceeded
example: Rate limit exceeded
required:
- statusCode
- error
- message
patch:
operationId: patchWebhook
summary: Patch webhook
tags:
- Webhook
description: 'Requires one of the following scopes: `webhooks:update`, `webhooks:all`, `all:update`, `all:all`'
requestBody:
content:
application/json:
schema:
type: object
properties:
campaign:
type:
- string
- 'null'
description: Optional campaign UUID to filter events (null = all campaigns in workspace)
format: uuid
example: 019ffad2-5cf8-732d-8cf0-41466f7573b6
name:
type:
- string
- 'null'
description: Optional user-defined name for the webhook
example: Zapier Positive Replies
target_hook_url:
type: string
description: Target URL to send webhook payloads
format: uri
pattern: ^https?://
example: https://webhook.site/unique-url
event_type:
type:
- string
- 'null'
description: Type of event to trigger the webhook (null for custom label events). Set to "all_events" to
subscribe to all events - including custom label events
enum:
- all_events
- email_sent
- email_opened
- email_link_clicked
- reply_received
- email_bounced
- lead_unsubscribed
- campaign_completed
- account_error
- lead_neutral
- lead_interested
- lead_not_interested
- lead_meeting_booked
- lead_meeting_completed
- lead_closed
- lead_out_of_office
- lead_wrong_person
- lead_no_show
- supersearch_enrichment_completed
example: email_sent
custom_interest_value:
type:
- number
- 'null'
description: Custom interest value - corresponds to LeadLabel.interest_status (used for custom label events)
example: 1
headers:
type:
- object
- 'null'
description: Optional HTTP headers to include when delivering webhook payloads (key-value pairs)
additionalProperties:
type: string
examples:
- Basic dXNlcm5hbWU6cGFzc3dvcmQ=
example: Basic dXNlcm5hbWU6cGFzc3dvcmQ=
example:
Authorization: Basic dXNlcm5hbWU6cGFzc3dvcmQ=
required: []
additionalProperties: false
minProperties: 1
parameters:
- schema:
type: string
format: uuid
example: 019ffad2-9cbb-7b55-b289-6f25e7a8b91e
example: 019ffad2-9cbb-7b55-b289-6f25e7a8b91e
in: path
name: id
required: true
description: The ID of the item to update
responses:
'200':
description: The updated Webhook
content:
application/json:
schema:
$ref: '#/components/schemas/Webhook'
'401':
description: This request is unauthorized (either the Authorization header is missing or invalid, or the API key
has been revoked)
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 401
examples:
- 401
example: 401
error:
type: string
enum:
- Unauthorized
examples:
- Unauthorized
example: Unauthorized
message:
type: string
examples:
- Missing Authorization header
example: Missing Authorization header
required:
- statusCode
- error
- message
'402':
description: This request cannot be fulfilled because the workspace does not have an active paid plan
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 402
examples:
- 402
example: 402
error:
type: string
enum:
- Payment Required
examples:
- Payment Required
example: Payment Required
message:
type: string
examples:
- Workspace does not have an active paid plan
example: Workspace does not have an active paid plan
required:
- statusCode
- error
- message
'404':
description: The requested resource was not found
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 404
examples:
- 404
example: 404
error:
type: string
enum:
- Not Found
examples:
- Not Found
example: Not Found
message:
type: string
examples:
- Resource not found
example: Resource not found
required:
- statusCode
- error
- message
'429':
description: You have exceeded the rate limit. Please check the rate limit docs for more information.
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 429
examples:
- 429
example: 429
error:
type: string
enum:
- Too Many Requests
examples:
- Too Many Requests
example: Too Many Requests
message:
type: string
examples:
- Rate limit exceeded
example: Rate limit exceeded
required:
- statusCode
- error
- message
delete:
operationId: deleteWebhook
summary: Delete webhook
tags:
- Webhook
description: 'Requires one of the following scopes: `webhooks:delete`, `webhooks:all`, `all:delete`, `all:all`'
requestBody:
content:
application/json:
schema:
type: 'null'
example: null
parameters:
- schema:
type: string
format: uuid
example: 019ffad2-9cbc-7b8e-b2d3-1bdae53ff2eb
example: 019ffad2-9cbc-7b8e-b2d3-1bdae53ff2eb
in: path
name: id
required: true
description: The ID of the item to delete
responses:
'200':
description: The deleted Webhook
content:
application/json:
schema:
$ref: '#/components/schemas/Webhook'
'401':
description: This request is unauthorized (either the Authorization header is missing or invalid, or the API key
has been revoked)
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 401
examples:
- 401
example: 401
error:
type: string
enum:
- Unauthorized
examples:
- Unauthorized
example: Unauthorized
message:
type: string
examples:
- Missing Authorization header
example: Missing Authorization header
required:
- statusCode
- error
- message
'402':
description: This request cannot be fulfilled because the workspace does not have an active paid plan
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 402
examples:
- 402
example: 402
error:
type: string
enum:
- Payment Required
examples:
- Payment Required
example: Payment Required
message:
type: string
examples:
- Workspace does not have an active paid plan
example: Workspace does not have an active paid plan
required:
- statusCode
- error
- message
'404':
description: The requested resource was not found
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 404
examples:
- 404
example: 404
error:
type: string
enum:
- Not Found
examples:
- Not Found
example: Not Found
message:
type: string
examples:
- Resource not found
example: Resource not found
required:
- statusCode
- error
- message
'429':
description: You have exceeded the rate limit. Please check the rate limit docs for more information.
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 429
examples:
- 429
example: 429
error:
type: string
enum:
- Too Many Requests
examples:
- Too Many Requests
example: Too Many Requests
message:
type: string
examples:
- Rate limit exceeded
example: Rate limit exceeded
required:
- statusCode
- error
- message
/api/v2/webhooks/event-types:
get:
operationId: listWebhookEventTypes
summary: List available event types
tags:
- Webhook
description: Get all available webhook event types including custom labels
responses:
'200':
description: Default Response
content:
application/json:
schema:
type: object
properties:
event_types:
type: array
items:
type: object
properties:
id:
type: string
example: email_sent
label:
type: string
example: Email Sent
type:
type: string
example: standard
'401':
description: This request is unauthorized (either the Authorization header is missing or invalid, or the API key
has been revoked)
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 401
examples:
- 401
example: 401
error:
type: string
enum:
- Unauthorized
examples:
- Unauthorized
example: Unauthorized
message:
type: string
examples:
- Missing Authorization header
example: Missing Authorization header
required:
- statusCode
- error
- message
'402':
description: This request cannot be fulfilled because the workspace does not have an active paid plan
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 402
examples:
- 402
example: 402
error:
type: string
enum:
- Payment Required
examples:
- Payment Required
example: Payment Required
message:
type: string
examples:
- Workspace does not have an active paid plan
example: Workspace does not have an active paid plan
required:
- statusCode
- error
- message
'404':
description: The requested resource was not found
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 404
examples:
- 404
example: 404
error:
type: string
enum:
- Not Found
examples:
- Not Found
example: Not Found
message:
type: string
examples:
- Resource not found
example: Resource not found
required:
- statusCode
- error
- message
'429':
description: You have exceeded the rate limit. Please check the rate limit docs for more information.
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 429
examples:
- 429
example: 429
error:
type: string
enum:
- Too Many Requests
examples:
- Too Many Requests
example: Too Many Requests
message:
type: string
examples:
- Rate limit exceeded
example: Rate limit exceeded
required:
- statusCode
- error
- message
/api/v2/webhooks/{id}/test:
post:
operationId: testWebhook
summary: Test a webhook
tags:
- Webhook
description: Send a test payload to a webhook URL to verify it is working
parameters:
- schema:
type: string
format: uuid
example: 019ffad2-9cbd-765b-a65b-d6d9e55bbb22
example: 019ffad2-9cbd-765b-a65b-d6d9e55bbb22
in: path
name: id
required: true
responses:
'200':
description: Default Response
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
example: true
message:
type: string
example: Webhook test successful
response_time_ms:
type: number
example: 250
status_code:
type: number
example: 200
error:
type: string
example: Connection timeout
'401':
description: This request is unauthorized (either the Authorization header is missing or invalid, or the API key
has been revoked)
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 401
examples:
- 401
example: 401
error:
type: string
enum:
- Unauthorized
examples:
- Unauthorized
example: Unauthorized
message:
type: string
examples:
- Missing Authorization header
example: Missing Authorization header
required:
- statusCode
- error
- message
'402':
description: This request cannot be fulfilled because the workspace does not have an active paid plan
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 402
examples:
- 402
example: 402
error:
type: string
enum:
- Payment Required
examples:
- Payment Required
example: Payment Required
message:
type: string
examples:
- Workspace does not have an active paid plan
example: Workspace does not have an active paid plan
required:
- statusCode
- error
- message
'404':
description: The requested resource was not found
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 404
examples:
- 404
example: 404
error:
type: string
enum:
- Not Found
examples:
- Not Found
example: Not Found
message:
type: string
examples:
- Resource not found
example: Resource not found
required:
- statusCode
- error
- message
'429':
description: You have exceeded the rate limit. Please check the rate limit docs for more information.
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 429
examples:
- 429
example: 429
error:
type: string
enum:
- Too Many Requests
examples:
- Too Many Requests
example: Too Many Requests
message:
type: string
examples:
- Rate limit exceeded
example: Rate limit exceeded
required:
- statusCode
- error
- message
/api/v2/webhooks/{id}/resume:
post:
operationId: resumeWebhook
summary: Resume a webhook
tags:
- Webhook
description: 'Resume a webhook that was disabled due to repeated delivery failures
Requires one of the following scopes: `webhooks:update`, `webhooks:all`, `all:update`, `all:all`'
parameters:
- schema:
type: string
format: uuid
example: 019ffad2-9cbd-765b-a65b-d6da9c5492dd
example: 019ffad2-9cbd-765b-a65b-d6da9c5492dd
in: path
name: id
required: true
responses:
'200':
description: The requested Webhook
content:
application/json:
schema:
$ref: '#/components/schemas/Webhook'
'401':
description: This request is unauthorized (either the Authorization header is missing or invalid, or the API key
has been revoked)
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 401
examples:
- 401
example: 401
error:
type: string
enum:
- Unauthorized
examples:
- Unauthorized
example: Unauthorized
message:
type: string
examples:
- Missing Authorization header
example: Missing Authorization header
required:
- statusCode
- error
- message
'402':
description: This request cannot be fulfilled because the workspace does not have an active paid plan
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 402
examples:
- 402
example: 402
error:
type: string
enum:
- Payment Required
examples:
- Payment Required
example: Payment Required
message:
type: string
examples:
- Workspace does not have an active paid plan
example: Workspace does not have an active paid plan
required:
- statusCode
- error
- message
'404':
description: The requested resource was not found
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 404
examples:
- 404
example: 404
error:
type: string
enum:
- Not Found
examples:
- Not Found
example: Not Found
message:
type: string
examples:
- Resource not found
example: Resource not found
required:
- statusCode
- error
- message
'429':
description: You have exceeded the rate limit. Please check the rate limit docs for more information.
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 429
examples:
- 429
example: 429
error:
type: string
enum:
- Too Many Requests
examples:
- Too Many Requests
example: Too Many Requests
message:
type: string
examples:
- Rate limit exceeded
example: Rate limit exceeded
required:
- statusCode
- error
- message
/api/v2/workspace-billing/plan-details:
get:
operationId: getWorkspacePlanDetails
summary: Get workspace plan details
tags:
- WorkspaceBilling
description: 'Requires one of the following scopes: `workspace_billing:read`, `workspace_billing:all`, `all:read`, `all:all`'
responses:
'200':
description: Default Response
content:
application/json:
schema:
type: object
properties:
organization_id:
type: string
format: uuid
description: The id of workspace
example: 019ffad2-9ce6-7628-b369-14bf11f8efc3
organization_name:
type: string
description: The name of workspace
example: My Default Workspace
subscriptions:
type: object
properties:
outreach:
type: object
properties:
plan_name:
type: string
description: Plan name
example: Free Trial
addons_qty:
type: number
description: Addons total quantity
example: 2
total_lead_limit:
type: number
description: Total Outreach plan limit including addons
example: 100
current_lead_count:
type: number
description: Current number of leads counted toward the plan
example: 10
base_lead_limit:
type: number
description: Base Outreach plan limit without add-ons
example: 25000
interval:
type:
- 'null'
- string
enum:
- day
- week
- month
- year
- null
description: The billing interval of the outreach subscription
example: month
current_period_end:
type:
- 'null'
- number
description: Unix timestamp when the current outreach billing period ends
example: 1704067200
cancel_at_time:
type:
- 'null'
- number
description: Unix timestamp when the outreach subscription will be canceled, null if not scheduled
for cancellation
example: 1704067200
price_in_dollars:
type:
- 'null'
- number
description: The outreach subscription price in dollars
example: 97
product_id:
type:
- 'null'
- string
description: The ID of the outreach plan subscribed to
enum:
- pid_ls_v1
- pid_hg_v1
- pid_g_v1
- pid_g_v2
- pid_nic_v1
- pid_nic_v1_annual
- pid_gic_v1
- pid_gic_v1_annual
- pid_sic_v1
- pid_sic_v1_annual
- pid_hic_v1
- pid_hic_v1_annual
- pid_verify_v1_monthly
- pid_hv_v1
- pid_hv_v1_annual
- pid_lsv_v1
- pid_lsv_v1_annual
- pid_crm_hg
- pid_crm_g
- pid_ip_g
- pid_ip_hg
- pid_addon_25kl_v1
- pid_addon_lf_10k_v1
- pid_addon_ic_50k_v1
- pid_addon_lf_10k_v1_annual
- pid_addon_ic_50k_v1_annual
- pid_bundle_starter_v1
- pid_bundle_scale_v1
- pid_bundle_scale_v2
- pid_bundle_agency_v1
- pid_bundle_agency_v2
- null
x-enumDescriptions:
pid_g_v1: Growth Plan
pid_g_v2: Growth Plan V2
pid_hg_v1: Hypergrowth Plan
pid_ls_v1: LightSpeed Plan
pid_nic_v1: Instantly Credits Nano
pid_nic_v1_annual: Instantly Credits Nano Annual
pid_gic_v1: Instantly Credits Growth
pid_gic_v1_annual: Instantly Credits Growth Annual
pid_sic_v1: Instantly Credits Supersonic
pid_sic_v1_annual: Instantly Credits Supersonic Annual
pid_hic_v1: Instantly Credits Hyper Leads
pid_hic_v1_annual: Instantly Credits Hyper Leads Annual
pid_verify_v1_monthly: Verification Monthly
pid_hv_v1: Website Visitor Hypergrowth Monthly
pid_hv_v1_annual: Website Visitor Hypergrowth Annual
pid_lsv_v1: Website Visitor Lightspeed Monthly
pid_lsv_v1_annual: Website Visitor Lightspeed Annual
pid_crm_hg: CRM
pid_crm_g: Growth CRM
pid_ip_g: Inbox Placement Growth Monthly
pid_ip_hg: Inbox Placement Hypergrowth Monthly
pid_addon_25kl_v1: Addon Lead 25K
pid_addon_lf_10k_v1: Addon Lead Finder
pid_addon_ic_50k_v1: Addon Instantly Credits
pid_addon_lf_10k_v1_annual: Addon Lead Finder Annual
pid_addon_ic_50k_v1_annual: Addon Instantly Credits Annual
pid_bundle_starter_v1: Bundle Starter
pid_bundle_scale_v1: Bundle Scale
pid_bundle_scale_v2: Bundle Scale V2
pid_bundle_agency_v1: Bundle Agency
pid_bundle_agency_v2: Bundle Agency V2
example: pid_g_v1
credits:
type: object
properties:
plan_name:
type: string
description: Instantly Credits plan name
example: Free Trial
total_credits:
type: number
description: Total Instantly Credits included in the current plan
example: 100
available_credits:
type: number
description: Available Instantly Credits balance for the workspace
example: 75
interval:
type:
- 'null'
- string
enum:
- day
- week
- month
- year
- null
description: The billing interval of the Instantly Credits subscription
example: month
current_period_end:
type:
- 'null'
- number
description: Unix timestamp when the current Instantly Credits billing period ends
example: 1704067200
cancel_at_time:
type:
- 'null'
- number
description: Unix timestamp when the Instantly Credits subscription will be canceled, null if
not scheduled for cancellation
example: 1704067200
price_in_dollars:
type:
- 'null'
- number
description: The Instantly Credits subscription price in dollars
example: 97
product_id:
type:
- 'null'
- string
description: The ID of the Instantly Credits plan subscribed to
enum:
- pid_nic_v1
- pid_nic_v1_annual
- pid_gic_v1
- pid_gic_v1_annual
- pid_sic_v1
- pid_sic_v1_annual
- pid_hic_v1
- pid_hic_v1_annual
- null
example: pid_gic_v1
price_option_id:
type:
- 'null'
- string
description: The selected Instantly Credits price option ID
example: growth_2000
bundle:
type: object
properties:
plan_name:
type:
- 'null'
- string
example: Scale Bundle
total_lead_limit:
type: number
description: Total bundled Outreach contact limit
example: 25000
current_lead_count:
type: number
description: Current number of contacts counted toward the bundled Outreach limit
example: 10
base_lead_limit:
type: number
description: Base bundled Outreach contact limit
example: 25000
interval:
type:
- 'null'
- string
enum:
- day
- week
- month
- year
- null
example: month
current_period_end:
type:
- 'null'
- number
example: 1704067200
cancel_at_time:
type:
- 'null'
- number
example: 1704067200
price_in_dollars:
type:
- 'null'
- number
example: 265
product_id:
type:
- 'null'
- string
enum:
- pid_bundle_starter_v1
- pid_bundle_scale_v1
- pid_bundle_scale_v2
- pid_bundle_agency_v1
- pid_bundle_agency_v2
- null
example: pid_bundle_scale_v2
crm:
type: object
properties:
plan_name:
type:
- 'null'
- string
example: Growth CRM
interval:
type:
- 'null'
- string
enum:
- day
- week
- month
- year
- null
example: month
current_period_end:
type:
- 'null'
- number
example: 1704067200
cancel_at_time:
type:
- 'null'
- number
example: 1704067200
price_in_dollars:
type:
- 'null'
- number
example: 47
product_id:
type:
- 'null'
- string
example: pid_crm_g
available_credits:
type:
- 'null'
- number
example: null
plan_limit:
type:
- 'null'
- number
example: null
website_visitors:
type: object
properties:
plan_name:
type:
- 'null'
- string
example: Hyper Visitors
interval:
type:
- 'null'
- string
enum:
- day
- week
- month
- year
- null
example: month
current_period_end:
type:
- 'null'
- number
example: 1704067200
cancel_at_time:
type:
- 'null'
- number
example: 1704067200
price_in_dollars:
type:
- 'null'
- number
example: 97
product_id:
type:
- 'null'
- string
example: pid_hv_v1
available_credits:
type:
- 'null'
- number
example: 280
plan_limit:
type:
- 'null'
- number
example: 500
inbox_placement:
type: object
properties:
plan_name:
type:
- 'null'
- string
example: Growth Inbox Placement
interval:
type:
- 'null'
- string
enum:
- day
- week
- month
- year
- null
example: month
current_period_end:
type:
- 'null'
- number
example: 1704067200
cancel_at_time:
type:
- 'null'
- number
example: 1704067200
price_in_dollars:
type:
- 'null'
- number
example: 47
product_id:
type:
- 'null'
- string
example: pid_ip_g
available_credits:
type:
- 'null'
- number
example: null
plan_limit:
type:
- 'null'
- number
example: null
addons:
type: object
properties:
outreach:
type: object
properties:
product_id:
type: string
enum:
- pid_addon_25kl_v1
description: The product ID for the Outreach add-on.
example: pid_addon_25kl_v1
unit_lead_limit:
type: number
description: Number of additional contacts included in one add-on unit.
example: 25000
existing_quantity:
type: number
description: Current quantity of Outreach add-on units.
example: 2
max_quantity:
type: number
description: Maximum additional units selectable in one update.
example: 20
interval:
type:
- 'null'
- string
enum:
- day
- week
- month
- year
- null
description: The current billing interval for the Outreach add-on subscription.
example: month
can_purchase:
type: boolean
description: Whether the workspace can purchase Outreach add-ons.
example: true
purchase_blocked_reason:
type:
- 'null'
- string
description: Reason add-on purchase is blocked, null when purchase is allowed.
example: advanced_outreach_plan_required
annual_discount_percent:
type: number
description: Annual billing discount percentage.
example: 20
monthly_pricing_tiers:
type: array
items:
type: object
properties:
from_quantity:
type: number
example: 1
to_quantity:
type:
- 'null'
- number
example: 5
price_in_dollars:
type: number
example: 87
credits:
type: object
properties:
product_id:
type: string
enum:
- pid_addon_ic_50k_v1
description: The monthly product ID for the Instantly Credits add-on.
example: pid_addon_ic_50k_v1
annual_product_id:
type: string
enum:
- pid_addon_ic_50k_v1_annual
description: The annual product ID for the Instantly Credits add-on.
example: pid_addon_ic_50k_v1_annual
unit_credits:
type: number
description: Number of additional monthly credits included in one add-on unit.
example: 50000
annual_unit_credits:
type: number
description: Number of additional annual credits included in one add-on unit.
example: 600000
existing_quantity:
type: number
description: Current quantity of Instantly Credits add-on units.
example: 2
max_quantity:
type: number
description: Maximum additional units selectable in one update.
example: 10
interval:
type:
- 'null'
- string
enum:
- day
- week
- month
- year
- null
description: The current billing interval for the Instantly Credits add-on subscription.
example: month
can_purchase:
type: boolean
description: Whether the workspace can purchase Instantly Credits add-ons.
example: true
purchase_blocked_reason:
type:
- 'null'
- string
description: Reason add-on purchase is blocked, null when purchase is allowed.
example: hyper_credits_plan_required
monthly_price_in_dollars:
type: number
description: Monthly price for one Instantly Credits add-on unit in dollars.
example: 425
annual_price_in_dollars:
type: number
description: Annual price for one Instantly Credits add-on unit in dollars.
example: 5100
'401':
description: This request is unauthorized (either the Authorization header is missing or invalid, or the API key
has been revoked)
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 401
examples:
- 401
example: 401
error:
type: string
enum:
- Unauthorized
examples:
- Unauthorized
example: Unauthorized
message:
type: string
examples:
- Missing Authorization header
example: Missing Authorization header
required:
- statusCode
- error
- message
'402':
description: This request cannot be fulfilled because the workspace does not have an active paid plan
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 402
examples:
- 402
example: 402
error:
type: string
enum:
- Payment Required
examples:
- Payment Required
example: Payment Required
message:
type: string
examples:
- Workspace does not have an active paid plan
example: Workspace does not have an active paid plan
required:
- statusCode
- error
- message
'404':
description: The requested resource was not found
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 404
examples:
- 404
example: 404
error:
type: string
enum:
- Not Found
examples:
- Not Found
example: Not Found
message:
type: string
examples:
- Resource not found
example: Resource not found
required:
- statusCode
- error
- message
'429':
description: You have exceeded the rate limit. Please check the rate limit docs for more information.
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 429
examples:
- 429
example: 429
error:
type: string
enum:
- Too Many Requests
examples:
- Too Many Requests
example: Too Many Requests
message:
type: string
examples:
- Rate limit exceeded
example: Rate limit exceeded
required:
- statusCode
- error
- message
/api/v2/workspace-billing/subscription-details:
get:
operationId: getWorkspaceSubscriptionDetails
summary: Get workspace subscription details
tags:
- WorkspaceBilling
description: 'Requires one of the following scopes: `workspace_billing:read`, `workspace_billing:all`, `all:read`, `all:all`'
responses:
'200':
description: Default Response
content:
application/json:
schema:
type: object
properties:
subscriptions:
type: array
items:
type: object
properties:
workspace_id:
type: string
format: uuid
description: The ID of the workspace
example: 019ffad2-9ced-7732-80e2-44f826e6e3cf
interval:
type: string
enum:
- month
- year
description: The billing interval of the subscription
example: month
quantity:
type: number
description: The quantity of subscribed items
example: 1
product_id:
type: string
description: The Id of outreach plan subscribed to
enum:
- pid_ls_v1
- pid_hg_v1
- pid_g_v1
- pid_g_v2
- pid_nic_v1
- pid_nic_v1_annual
- pid_gic_v1
- pid_gic_v1_annual
- pid_sic_v1
- pid_sic_v1_annual
- pid_hic_v1
- pid_hic_v1_annual
- pid_verify_v1_monthly
- pid_hv_v1
- pid_hv_v1_annual
- pid_lsv_v1
- pid_lsv_v1_annual
- pid_crm_hg
- pid_crm_g
- pid_ip_g
- pid_ip_hg
- pid_addon_25kl_v1
- pid_addon_lf_10k_v1
- pid_addon_ic_50k_v1
- pid_addon_lf_10k_v1_annual
- pid_addon_ic_50k_v1_annual
- pid_bundle_starter_v1
- pid_bundle_scale_v1
- pid_bundle_scale_v2
- pid_bundle_agency_v1
- pid_bundle_agency_v2
x-enumDescriptions:
pid_g_v1: Growth Plan
pid_g_v2: Growth Plan V2
pid_hg_v1: Hypergrowth Plan
pid_ls_v1: LightSpeed Plan
pid_nic_v1: Instantly Credits Nano
pid_nic_v1_annual: Instantly Credits Nano Annual
pid_gic_v1: Instantly Credits Growth
pid_gic_v1_annual: Instantly Credits Growth Annual
pid_sic_v1: Instantly Credits Supersonic
pid_sic_v1_annual: Instantly Credits Supersonic Annual
pid_hic_v1: Instantly Credits Hyper Leads
pid_hic_v1_annual: Instantly Credits Hyper Leads Annual
pid_verify_v1_monthly: Verification Monthly
pid_hv_v1: Website Visitor Hypergrowth Monthly
pid_hv_v1_annual: Website Visitor Hypergrowth Annual
pid_lsv_v1: Website Visitor Lightspeed Monthly
pid_lsv_v1_annual: Website Visitor Lightspeed Annual
pid_crm_hg: CRM
pid_crm_g: Growth CRM
pid_ip_g: Inbox Placement Growth Monthly
pid_ip_hg: Inbox Placement Hypergrowth Monthly
pid_addon_25kl_v1: Addon Lead 25K
pid_addon_lf_10k_v1: Addon Lead Finder
pid_addon_ic_50k_v1: Addon Instantly Credits
pid_addon_lf_10k_v1_annual: Addon Lead Finder Annual
pid_addon_ic_50k_v1_annual: Addon Instantly Credits Annual
pid_bundle_starter_v1: Bundle Starter
pid_bundle_scale_v1: Bundle Scale
pid_bundle_scale_v2: Bundle Scale V2
pid_bundle_agency_v1: Bundle Agency
pid_bundle_agency_v2: Bundle Agency V2
example: pid_g_v1
product_type:
type: string
enum:
- prt_outreach
- prt_leadfinder
description: The type of product subscribed to
example: prt_outreach
plan_type:
type: string
enum:
- plt_addon
- plt_primary
description: The type of plan - either primary plan or addon
example: plt_primary
current_period_end:
type: number
description: Unix timestamp when the current billing period ends
example: 1704067200
cancel_at_time:
type:
- 'null'
- number
description: Unix timestamp when the subscription will be canceled, null if not scheduled for cancellation
example: 1704067200
price_in_dollars:
type: number
description: The price of the subscription in dollars
example: 97
price_id:
type: string
description: The Stripe price ID associated with this subscription
example: price_H5UMXtIFH7Rh9K
all_subs_cancelled:
type: boolean
description: Indicates whether all subscriptions are either already canceled or scheduled to be canceled
at the end of their current billing cycles
example: false
'401':
description: This request is unauthorized (either the Authorization header is missing or invalid, or the API key
has been revoked)
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 401
examples:
- 401
example: 401
error:
type: string
enum:
- Unauthorized
examples:
- Unauthorized
example: Unauthorized
message:
type: string
examples:
- Missing Authorization header
example: Missing Authorization header
required:
- statusCode
- error
- message
'402':
description: This request cannot be fulfilled because the workspace does not have an active paid plan
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 402
examples:
- 402
example: 402
error:
type: string
enum:
- Payment Required
examples:
- Payment Required
example: Payment Required
message:
type: string
examples:
- Workspace does not have an active paid plan
example: Workspace does not have an active paid plan
required:
- statusCode
- error
- message
'404':
description: The requested resource was not found
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 404
examples:
- 404
example: 404
error:
type: string
enum:
- Not Found
examples:
- Not Found
example: Not Found
message:
type: string
examples:
- Resource not found
example: Resource not found
required:
- statusCode
- error
- message
'429':
description: You have exceeded the rate limit. Please check the rate limit docs for more information.
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 429
examples:
- 429
example: 429
error:
type: string
enum:
- Too Many Requests
examples:
- Too Many Requests
example: Too Many Requests
message:
type: string
examples:
- Rate limit exceeded
example: Rate limit exceeded
required:
- statusCode
- error
- message
/api/v2/workspace-group-members:
post:
operationId: createWorkspaceGroupMember
summary: Create workspace group member
tags:
- WorkspaceGroupMember
description: 'This endpoint allows you to send an invitation for a sub workspace to join the admin workspace. The sub
workspace will be added as a sub workspace of the admin workspace only if the sub workspace owner accepts the invitation.
Requires one of the following scopes: `workspace_group_members:create`, `workspace_group_members:all`, `all:create`,
`all:all`'
requestBody:
content:
application/json:
schema:
title: CreateWorkspace Group Member
description: The Workspace Group Member to create
type: object
properties:
sub_workspace_id:
type: string
description: The id of the sub workspace
format: uuid
example: 019ffad2-5cb9-7412-a999-646b69b0d7b4
required:
- sub_workspace_id
additionalProperties: false
required: true
description: The Workspace Group Member to create
responses:
'200':
description: The Workspace Group Member
content:
application/json:
schema:
$ref: '#/components/schemas/WorkspaceGroupMember'
'400':
description: Invalid request body (e.g. missing required fields, or invalid field values)
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 400
examples:
- 400
example: 400
error:
type: string
enum:
- Bad Request
examples:
- Bad Request
example: Bad Request
message:
type: string
examples:
- body must have required property 'name'
example: body must have required property 'name'
required:
- statusCode
- error
- message
'401':
description: This request is unauthorized (either the Authorization header is missing or invalid, or the API key
has been revoked)
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 401
examples:
- 401
example: 401
error:
type: string
enum:
- Unauthorized
examples:
- Unauthorized
example: Unauthorized
message:
type: string
examples:
- Missing Authorization header
example: Missing Authorization header
required:
- statusCode
- error
- message
'402':
description: This request cannot be fulfilled because the workspace does not have an active paid plan
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 402
examples:
- 402
example: 402
error:
type: string
enum:
- Payment Required
examples:
- Payment Required
example: Payment Required
message:
type: string
examples:
- Workspace does not have an active paid plan
example: Workspace does not have an active paid plan
required:
- statusCode
- error
- message
'404':
description: The requested resource was not found
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 404
examples:
- 404
example: 404
error:
type: string
enum:
- Not Found
examples:
- Not Found
example: Not Found
message:
type: string
examples:
- Resource not found
example: Resource not found
required:
- statusCode
- error
- message
'409':
description: The requested workspace hierarchy conflicts with an active workspace group relationship
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 409
examples:
- 409
example: 409
error:
type: string
enum:
- Conflict
examples:
- Conflict
example: Conflict
message:
type: string
examples:
- The sub workspace already has an active parent or invitation
example: The sub workspace already has an active parent or invitation
required:
- statusCode
- error
- message
'429':
description: You have exceeded the rate limit. Please check the rate limit docs for more information.
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 429
examples:
- 429
example: 429
error:
type: string
enum:
- Too Many Requests
examples:
- Too Many Requests
example: Too Many Requests
message:
type: string
examples:
- Rate limit exceeded
example: Rate limit exceeded
required:
- statusCode
- error
- message
get:
operationId: listWorkspaceGroupMember
summary: List workspace group member
tags:
- WorkspaceGroupMember
description: 'Requires one of the following scopes: `workspace_group_members:read`, `workspace_group_members:all`, `all:read`,
`all:all`'
parameters:
- schema:
type: integer
minimum: 1
maximum: 100
example: 10
example: 10
in: query
name: limit
required: false
description: The number of items to return
- schema:
type: string
example: 01956fbd-0eb1-72db-a565-82977a586084
example: 01956fbd-0eb1-72db-a565-82977a586084
in: query
name: starting_after
required: false
description: The ID of the last item in the previous page - used for pagination. You can use the value of the `next_starting_after`
field from the previous response.
responses:
'200':
description: The list of Workspace Group Member
content:
application/json:
schema:
type: object
properties:
items:
type: array
description: The list of Workspace Group Member
items:
$ref: '#/components/schemas/WorkspaceGroupMember'
next_starting_after:
type: string
examples:
- 019ffad2-9cff-7528-9711-62f2c972a434
- '2026-08-13T11:12:14.591Z'
description: The filter for getting the next items after this one, this could either be a UUID, a timestamp,
on an email depending on the specific API
example: 019ffad2-9cff-7528-9711-62f2c972a434
additionalProperties: false
required:
- items
'401':
description: This request is unauthorized (either the Authorization header is missing or invalid, or the API key
has been revoked)
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 401
examples:
- 401
example: 401
error:
type: string
enum:
- Unauthorized
examples:
- Unauthorized
example: Unauthorized
message:
type: string
examples:
- Missing Authorization header
example: Missing Authorization header
required:
- statusCode
- error
- message
'402':
description: This request cannot be fulfilled because the workspace does not have an active paid plan
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 402
examples:
- 402
example: 402
error:
type: string
enum:
- Payment Required
examples:
- Payment Required
example: Payment Required
message:
type: string
examples:
- Workspace does not have an active paid plan
example: Workspace does not have an active paid plan
required:
- statusCode
- error
- message
'404':
description: The requested resource was not found
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 404
examples:
- 404
example: 404
error:
type: string
enum:
- Not Found
examples:
- Not Found
example: Not Found
message:
type: string
examples:
- Resource not found
example: Resource not found
required:
- statusCode
- error
- message
'429':
description: You have exceeded the rate limit. Please check the rate limit docs for more information.
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 429
examples:
- 429
example: 429
error:
type: string
enum:
- Too Many Requests
examples:
- Too Many Requests
example: Too Many Requests
message:
type: string
examples:
- Rate limit exceeded
example: Rate limit exceeded
required:
- statusCode
- error
- message
/api/v2/workspace-group-members/{id}:
get:
operationId: getWorkspaceGroupMember
summary: Get workspace group member
tags:
- WorkspaceGroupMember
description: 'Requires one of the following scopes: `workspace_group_members:read`, `workspace_group_members:all`, `all:read`,
`all:all`'
parameters:
- schema:
type: string
format: uuid
example: 019ffad2-9cfe-7630-904f-b0ce5393cd7c
example: 019ffad2-9cfe-7630-904f-b0ce5393cd7c
in: path
name: id
required: true
description: The ID of the requested item
responses:
'200':
description: The requested Workspace Group Member
content:
application/json:
schema:
$ref: '#/components/schemas/WorkspaceGroupMember'
'401':
description: This request is unauthorized (either the Authorization header is missing or invalid, or the API key
has been revoked)
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 401
examples:
- 401
example: 401
error:
type: string
enum:
- Unauthorized
examples:
- Unauthorized
example: Unauthorized
message:
type: string
examples:
- Missing Authorization header
example: Missing Authorization header
required:
- statusCode
- error
- message
'402':
description: This request cannot be fulfilled because the workspace does not have an active paid plan
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 402
examples:
- 402
example: 402
error:
type: string
enum:
- Payment Required
examples:
- Payment Required
example: Payment Required
message:
type: string
examples:
- Workspace does not have an active paid plan
example: Workspace does not have an active paid plan
required:
- statusCode
- error
- message
'404':
description: The requested resource was not found
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 404
examples:
- 404
example: 404
error:
type: string
enum:
- Not Found
examples:
- Not Found
example: Not Found
message:
type: string
examples:
- Resource not found
example: Resource not found
required:
- statusCode
- error
- message
'429':
description: You have exceeded the rate limit. Please check the rate limit docs for more information.
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 429
examples:
- 429
example: 429
error:
type: string
enum:
- Too Many Requests
examples:
- Too Many Requests
example: Too Many Requests
message:
type: string
examples:
- Rate limit exceeded
example: Rate limit exceeded
required:
- statusCode
- error
- message
delete:
operationId: deleteWorkspaceGroupMember
summary: Delete workspace group member
tags:
- WorkspaceGroupMember
description: 'Requires one of the following scopes: `workspace_group_members:delete`, `workspace_group_members:all`,
`all:delete`, `all:all`'
requestBody:
content:
application/json:
schema:
type: 'null'
example: null
parameters:
- schema:
type: string
format: uuid
example: 019ffad2-9d00-7ed8-bb0e-48f7d60799c8
example: 019ffad2-9d00-7ed8-bb0e-48f7d60799c8
in: path
name: id
required: true
description: The ID of the item to delete
responses:
'200':
description: The deleted Workspace Group Member
content:
application/json:
schema:
$ref: '#/components/schemas/WorkspaceGroupMember'
'401':
description: This request is unauthorized (either the Authorization header is missing or invalid, or the API key
has been revoked)
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 401
examples:
- 401
example: 401
error:
type: string
enum:
- Unauthorized
examples:
- Unauthorized
example: Unauthorized
message:
type: string
examples:
- Missing Authorization header
example: Missing Authorization header
required:
- statusCode
- error
- message
'402':
description: This request cannot be fulfilled because the workspace does not have an active paid plan
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 402
examples:
- 402
example: 402
error:
type: string
enum:
- Payment Required
examples:
- Payment Required
example: Payment Required
message:
type: string
examples:
- Workspace does not have an active paid plan
example: Workspace does not have an active paid plan
required:
- statusCode
- error
- message
'404':
description: The requested resource was not found
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 404
examples:
- 404
example: 404
error:
type: string
enum:
- Not Found
examples:
- Not Found
example: Not Found
message:
type: string
examples:
- Resource not found
example: Resource not found
required:
- statusCode
- error
- message
'429':
description: You have exceeded the rate limit. Please check the rate limit docs for more information.
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 429
examples:
- 429
example: 429
error:
type: string
enum:
- Too Many Requests
examples:
- Too Many Requests
example: Too Many Requests
message:
type: string
examples:
- Rate limit exceeded
example: Rate limit exceeded
required:
- statusCode
- error
- message
/api/v2/workspace-group-members/admin:
get:
operationId: getAdminWorkspaceGroupMember
summary: Get the current workspace admin workspace
tags:
- WorkspaceGroupMember
description: Get the details of the admin workspace of the current workspace
responses:
'200':
description: Default Response
content:
application/json:
schema:
type: object
properties:
workspace_name:
description: The workspace name of the admin workspace. When the current workspace has no admin workspace,
the workspace name will be "Undefined".
type: string
example: My Workspace
has_admin_workspace:
description: Whether the current workspace has an admin workspace
type: boolean
example: true
workspace_group_member_id:
description: The id of the workspace group member. You can use it to leave the admin workspace by calling
the DELETE /workspace-group-members/:id endpoint
type: string
example: 019ffad2-9cff-7528-9711-62f3d7673cec
required:
- workspace_name
- has_admin_workspace
'401':
description: This request is unauthorized (either the Authorization header is missing or invalid, or the API key
has been revoked)
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 401
examples:
- 401
example: 401
error:
type: string
enum:
- Unauthorized
examples:
- Unauthorized
example: Unauthorized
message:
type: string
examples:
- Missing Authorization header
example: Missing Authorization header
required:
- statusCode
- error
- message
'402':
description: This request cannot be fulfilled because the workspace does not have an active paid plan
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 402
examples:
- 402
example: 402
error:
type: string
enum:
- Payment Required
examples:
- Payment Required
example: Payment Required
message:
type: string
examples:
- Workspace does not have an active paid plan
example: Workspace does not have an active paid plan
required:
- statusCode
- error
- message
'404':
description: The requested resource was not found
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 404
examples:
- 404
example: 404
error:
type: string
enum:
- Not Found
examples:
- Not Found
example: Not Found
message:
type: string
examples:
- Resource not found
example: Resource not found
required:
- statusCode
- error
- message
'429':
description: You have exceeded the rate limit. Please check the rate limit docs for more information.
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 429
examples:
- 429
example: 429
error:
type: string
enum:
- Too Many Requests
examples:
- Too Many Requests
example: Too Many Requests
message:
type: string
examples:
- Rate limit exceeded
example: Rate limit exceeded
required:
- statusCode
- error
- message
/api/v2/workspace-members:
post:
operationId: createWorkspaceMember
summary: Create workspace member
tags:
- WorkspaceMember
description: 'Requires one of the following scopes: `workspace_members:create`, `workspace_members:all`, `all:create`,
`all:all`'
requestBody:
content:
application/json:
schema:
title: CreateWorkspace Member
description: The Workspace Member to create
type: object
properties:
email:
type: string
description: Email address of the workspace member
format: email
example: user@example.com
user_email:
type:
- string
- 'null'
description: Email address of the user
format: email
example: user@example.com
nickname:
type:
- string
- 'null'
description: Private workspace member nickname visible only to the workspace owner
maxLength: 80
example: Finance lead
role:
type: string
description: THe role of the workspace member defining their access level. While the "owner" role is listed
in the enum, it cannot be created via the API, and is only assigned to the user who creates the workspace.
enum:
- owner
- admin
- editor
- view
- client
x-enumDescriptions:
owner: Owner - Full access and workspace management
admin: Admin - Full access except workspace deletion
editor: Editor - Can edit but not manage workspace settings
view: View - Read-only access
client: This is a special role for users in the whitelabel (agency) view. It is not available in the API.
example: editor
permissions:
type:
- array
- 'null'
description: The permissions for this workspace member. Used in the app to restrict access to certain sections
items:
type: string
enum:
- dashboard.view
- campaigns.view
- campaigns.create
- campaigns.edit
- campaigns.delete
- organization.manage
- organization.integrations
- organization.billing
- organization.users.manage
- leadFinder.view
- customLeadLabels.create
- customLeadLabels.edit
- customLeadLabels.delete
- unibox.all
- analytics.view
- websiteChat.view
- websiteChat.manage
- agency.manage
- accounts.view
- accounts.manage
- leadManagement.view
- leads.move
- crm.view
- websiteVisitors.view
- blocklist.manage
- preferences.manage
- inboxPlacement.view
- aiAgents.manage
- workspaceGroupMembers.invite
- workspaceGroupMembers.remove
- workspaceGroupMembers.leave
examples:
- unibox.all
x-enumDescriptions:
dashboard.view: View the dashboard
campaigns.view: View campaigns
campaigns.create: Create campaigns
campaigns.edit: Edit campaigns
campaigns.delete: Delete campaigns
organization.manage: Manage organization
organization.integrations: Manage organization integrations
organization.billing: Manage organization billing
organization.users.manage: Manage organization users
leadFinder.view: View lead finder
customLeadLabels.create: Create custom lead labels
customLeadLabels.edit: Edit custom lead labels
customLeadLabels.delete: Delete custom lead labels
unibox.all: View all unibox
analytics.view: View analytics
websiteChat.view: View Website Chat configuration
websiteChat.manage: Manage Website Chat configuration
agency.manage: Manage agency
accounts.view: View accounts
accounts.manage: Manage accounts
leadManagement.view: View lead management
leads.move: Move leads
crm.view: View CRM
websiteVisitors.view: View website visitors
blocklist.manage: Manage blocklist
preferences.manage: Manage preferences
inboxPlacement.view: Manage inbox placement
aiAgents.manage: Manage AI agents
workspaceGroupMembers.invite: Invite workspace group members
workspaceGroupMembers.remove: Remove workspace group members
workspaceGroupMembers.leave: Leave workspace group
example: unibox.all
required:
- email
- role
additionalProperties: false
required: true
description: The Workspace Member to create
responses:
'200':
description: The Workspace Member
content:
application/json:
schema:
$ref: '#/components/schemas/WorkspaceMember'
'400':
description: Invalid request body (e.g. missing required fields, or invalid field values)
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 400
examples:
- 400
example: 400
error:
type: string
enum:
- Bad Request
examples:
- Bad Request
example: Bad Request
message:
type: string
examples:
- body must have required property 'name'
example: body must have required property 'name'
required:
- statusCode
- error
- message
'401':
description: This request is unauthorized (either the Authorization header is missing or invalid, or the API key
has been revoked)
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 401
examples:
- 401
example: 401
error:
type: string
enum:
- Unauthorized
examples:
- Unauthorized
example: Unauthorized
message:
type: string
examples:
- Missing Authorization header
example: Missing Authorization header
required:
- statusCode
- error
- message
'402':
description: This request cannot be fulfilled because the workspace does not have an active paid plan
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 402
examples:
- 402
example: 402
error:
type: string
enum:
- Payment Required
examples:
- Payment Required
example: Payment Required
message:
type: string
examples:
- Workspace does not have an active paid plan
example: Workspace does not have an active paid plan
required:
- statusCode
- error
- message
'404':
description: The requested resource was not found
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 404
examples:
- 404
example: 404
error:
type: string
enum:
- Not Found
examples:
- Not Found
example: Not Found
message:
type: string
examples:
- Resource not found
example: Resource not found
required:
- statusCode
- error
- message
'429':
description: You have exceeded the rate limit. Please check the rate limit docs for more information.
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 429
examples:
- 429
example: 429
error:
type: string
enum:
- Too Many Requests
examples:
- Too Many Requests
example: Too Many Requests
message:
type: string
examples:
- Rate limit exceeded
example: Rate limit exceeded
required:
- statusCode
- error
- message
get:
operationId: listWorkspaceMember
summary: List workspace member
tags:
- WorkspaceMember
description: 'Requires one of the following scopes: `workspace_members:read`, `workspace_members:all`, `all:read`, `all:all`'
parameters:
- schema:
type: integer
minimum: 1
maximum: 100
example: 10
example: 10
in: query
name: limit
required: false
description: The number of items to return
- schema:
type: string
example: 01956fbd-0eb1-72db-a565-82977a586084
example: 01956fbd-0eb1-72db-a565-82977a586084
in: query
name: starting_after
required: false
description: The ID of the last item in the previous page - used for pagination. You can use the value of the `next_starting_after`
field from the previous response.
- schema:
type: boolean
example: true
example: true
in: query
name: accepted
required: false
description: Filter workspace members by invitation acceptance status
- schema:
type: string
example: John
example: John
in: query
name: search
required: false
description: Search by name or email
responses:
'200':
description: The list of Workspace Member
content:
application/json:
schema:
type: object
properties:
items:
type: array
description: The list of Workspace Member
items:
$ref: '#/components/schemas/WorkspaceMember'
next_starting_after:
type: string
examples:
- 019ffad2-9d08-7e1e-b9f5-6ca13d5d4312
- '2026-08-13T11:12:14.600Z'
description: The filter for getting the next items after this one, this could either be a UUID, a timestamp,
on an email depending on the specific API
example: 019ffad2-9d08-7e1e-b9f5-6ca13d5d4312
additionalProperties: false
required:
- items
'401':
description: This request is unauthorized (either the Authorization header is missing or invalid, or the API key
has been revoked)
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 401
examples:
- 401
example: 401
error:
type: string
enum:
- Unauthorized
examples:
- Unauthorized
example: Unauthorized
message:
type: string
examples:
- Missing Authorization header
example: Missing Authorization header
required:
- statusCode
- error
- message
'402':
description: This request cannot be fulfilled because the workspace does not have an active paid plan
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 402
examples:
- 402
example: 402
error:
type: string
enum:
- Payment Required
examples:
- Payment Required
example: Payment Required
message:
type: string
examples:
- Workspace does not have an active paid plan
example: Workspace does not have an active paid plan
required:
- statusCode
- error
- message
'404':
description: The requested resource was not found
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 404
examples:
- 404
example: 404
error:
type: string
enum:
- Not Found
examples:
- Not Found
example: Not Found
message:
type: string
examples:
- Resource not found
example: Resource not found
required:
- statusCode
- error
- message
'429':
description: You have exceeded the rate limit. Please check the rate limit docs for more information.
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 429
examples:
- 429
example: 429
error:
type: string
enum:
- Too Many Requests
examples:
- Too Many Requests
example: Too Many Requests
message:
type: string
examples:
- Rate limit exceeded
example: Rate limit exceeded
required:
- statusCode
- error
- message
/api/v2/workspace-members/{id}:
get:
operationId: getWorkspaceMember
summary: Get workspace member
tags:
- WorkspaceMember
description: 'Requires one of the following scopes: `workspace_members:read`, `workspace_members:all`, `all:read`, `all:all`'
parameters:
- schema:
type: string
format: uuid
example: 019ffad2-9d0a-7a1c-bc64-81a346e4de0f
example: 019ffad2-9d0a-7a1c-bc64-81a346e4de0f
in: path
name: id
required: true
description: The ID of the requested item
responses:
'200':
description: The requested Workspace Member
content:
application/json:
schema:
$ref: '#/components/schemas/WorkspaceMember'
'401':
description: This request is unauthorized (either the Authorization header is missing or invalid, or the API key
has been revoked)
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 401
examples:
- 401
example: 401
error:
type: string
enum:
- Unauthorized
examples:
- Unauthorized
example: Unauthorized
message:
type: string
examples:
- Missing Authorization header
example: Missing Authorization header
required:
- statusCode
- error
- message
'402':
description: This request cannot be fulfilled because the workspace does not have an active paid plan
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 402
examples:
- 402
example: 402
error:
type: string
enum:
- Payment Required
examples:
- Payment Required
example: Payment Required
message:
type: string
examples:
- Workspace does not have an active paid plan
example: Workspace does not have an active paid plan
required:
- statusCode
- error
- message
'404':
description: The requested resource was not found
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 404
examples:
- 404
example: 404
error:
type: string
enum:
- Not Found
examples:
- Not Found
example: Not Found
message:
type: string
examples:
- Resource not found
example: Resource not found
required:
- statusCode
- error
- message
'429':
description: You have exceeded the rate limit. Please check the rate limit docs for more information.
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 429
examples:
- 429
example: 429
error:
type: string
enum:
- Too Many Requests
examples:
- Too Many Requests
example: Too Many Requests
message:
type: string
examples:
- Rate limit exceeded
example: Rate limit exceeded
required:
- statusCode
- error
- message
patch:
operationId: patchWorkspaceMember
summary: Patch workspace member
tags:
- WorkspaceMember
description: 'Requires one of the following scopes: `workspace_members:update`, `workspace_members:all`, `all:update`,
`all:all`'
requestBody:
content:
application/json:
schema:
type: object
properties:
nickname:
type:
- string
- 'null'
description: Private workspace member nickname visible only to the workspace owner
maxLength: 80
example: Finance lead
role:
type: string
description: THe role of the workspace member defining their access level. While the "owner" role is listed
in the enum, it cannot be created via the API, and is only assigned to the user who creates the workspace.
enum:
- owner
- admin
- editor
- view
- client
x-enumDescriptions:
owner: Owner - Full access and workspace management
admin: Admin - Full access except workspace deletion
editor: Editor - Can edit but not manage workspace settings
view: View - Read-only access
client: This is a special role for users in the whitelabel (agency) view. It is not available in the API.
example: editor
required: []
additionalProperties: false
minProperties: 1
parameters:
- schema:
type: string
format: uuid
example: 019ffad2-9d0b-756e-98f8-8705778080af
example: 019ffad2-9d0b-756e-98f8-8705778080af
in: path
name: id
required: true
description: The ID of the item to update
responses:
'200':
description: The updated Workspace Member
content:
application/json:
schema:
$ref: '#/components/schemas/WorkspaceMember'
'401':
description: This request is unauthorized (either the Authorization header is missing or invalid, or the API key
has been revoked)
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 401
examples:
- 401
example: 401
error:
type: string
enum:
- Unauthorized
examples:
- Unauthorized
example: Unauthorized
message:
type: string
examples:
- Missing Authorization header
example: Missing Authorization header
required:
- statusCode
- error
- message
'402':
description: This request cannot be fulfilled because the workspace does not have an active paid plan
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 402
examples:
- 402
example: 402
error:
type: string
enum:
- Payment Required
examples:
- Payment Required
example: Payment Required
message:
type: string
examples:
- Workspace does not have an active paid plan
example: Workspace does not have an active paid plan
required:
- statusCode
- error
- message
'404':
description: The requested resource was not found
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 404
examples:
- 404
example: 404
error:
type: string
enum:
- Not Found
examples:
- Not Found
example: Not Found
message:
type: string
examples:
- Resource not found
example: Resource not found
required:
- statusCode
- error
- message
'429':
description: You have exceeded the rate limit. Please check the rate limit docs for more information.
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 429
examples:
- 429
example: 429
error:
type: string
enum:
- Too Many Requests
examples:
- Too Many Requests
example: Too Many Requests
message:
type: string
examples:
- Rate limit exceeded
example: Rate limit exceeded
required:
- statusCode
- error
- message
delete:
operationId: deleteWorkspaceMember
summary: Delete workspace member
tags:
- WorkspaceMember
description: 'Requires one of the following scopes: `workspace_members:delete`, `workspace_members:all`, `all:delete`,
`all:all`'
requestBody:
content:
application/json:
schema:
type: 'null'
example: null
parameters:
- schema:
type: string
format: uuid
example: 019ffad2-9d0b-756e-98f8-87065b662457
example: 019ffad2-9d0b-756e-98f8-87065b662457
in: path
name: id
required: true
description: The ID of the item to delete
responses:
'200':
description: The deleted Workspace Member
content:
application/json:
schema:
$ref: '#/components/schemas/WorkspaceMember'
'401':
description: This request is unauthorized (either the Authorization header is missing or invalid, or the API key
has been revoked)
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 401
examples:
- 401
example: 401
error:
type: string
enum:
- Unauthorized
examples:
- Unauthorized
example: Unauthorized
message:
type: string
examples:
- Missing Authorization header
example: Missing Authorization header
required:
- statusCode
- error
- message
'402':
description: This request cannot be fulfilled because the workspace does not have an active paid plan
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 402
examples:
- 402
example: 402
error:
type: string
enum:
- Payment Required
examples:
- Payment Required
example: Payment Required
message:
type: string
examples:
- Workspace does not have an active paid plan
example: Workspace does not have an active paid plan
required:
- statusCode
- error
- message
'404':
description: The requested resource was not found
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 404
examples:
- 404
example: 404
error:
type: string
enum:
- Not Found
examples:
- Not Found
example: Not Found
message:
type: string
examples:
- Resource not found
example: Resource not found
required:
- statusCode
- error
- message
'429':
description: You have exceeded the rate limit. Please check the rate limit docs for more information.
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 429
examples:
- 429
example: 429
error:
type: string
enum:
- Too Many Requests
examples:
- Too Many Requests
example: Too Many Requests
message:
type: string
examples:
- Rate limit exceeded
example: Rate limit exceeded
required:
- statusCode
- error
- message
/api/v2/workspaces/current:
get:
operationId: getWorkspace
summary: Get workspace
tags:
- Workspace
description: 'Get your current workspace details. Note that this endpoint doesn''t require any parameters. It will return
the workspace based on the API key sent in the headers.
Requires one of the following scopes: `workspaces:read`, `workspaces:all`, `all:read`, `all:all`'
responses:
'200':
description: The requested Workspace
content:
application/json:
schema:
$ref: '#/components/schemas/Workspace'
'401':
description: This request is unauthorized (either the Authorization header is missing or invalid, or the API key
has been revoked)
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 401
examples:
- 401
example: 401
error:
type: string
enum:
- Unauthorized
examples:
- Unauthorized
example: Unauthorized
message:
type: string
examples:
- Missing Authorization header
example: Missing Authorization header
required:
- statusCode
- error
- message
'402':
description: This request cannot be fulfilled because the workspace does not have an active paid plan
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 402
examples:
- 402
example: 402
error:
type: string
enum:
- Payment Required
examples:
- Payment Required
example: Payment Required
message:
type: string
examples:
- Workspace does not have an active paid plan
example: Workspace does not have an active paid plan
required:
- statusCode
- error
- message
'404':
description: The requested resource was not found
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 404
examples:
- 404
example: 404
error:
type: string
enum:
- Not Found
examples:
- Not Found
example: Not Found
message:
type: string
examples:
- Resource not found
example: Resource not found
required:
- statusCode
- error
- message
'429':
description: You have exceeded the rate limit. Please check the rate limit docs for more information.
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 429
examples:
- 429
example: 429
error:
type: string
enum:
- Too Many Requests
examples:
- Too Many Requests
example: Too Many Requests
message:
type: string
examples:
- Rate limit exceeded
example: Rate limit exceeded
required:
- statusCode
- error
- message
patch:
operationId: patchWorkspace
summary: Patch workspace
tags:
- Workspace
description: 'Update your current workspace details. Note that this endpoint doesn''t require any parameters. It will
update the workspace based on the API key sent in the headers.
Requires one of the following scopes: `workspaces:update`, `workspaces:all`, `all:update`, `all:all`'
requestBody:
content:
application/json:
schema:
type: object
properties:
name:
type: string
description: Name of the workspace
example: My Workspace
org_logo_url:
type:
- string
- 'null'
description: URL to workspace logo
example: https://example.com/logo.png
required: []
additionalProperties: false
minProperties: 1
responses:
'200':
description: The updated Workspace
content:
application/json:
schema:
$ref: '#/components/schemas/Workspace'
'401':
description: This request is unauthorized (either the Authorization header is missing or invalid, or the API key
has been revoked)
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 401
examples:
- 401
example: 401
error:
type: string
enum:
- Unauthorized
examples:
- Unauthorized
example: Unauthorized
message:
type: string
examples:
- Missing Authorization header
example: Missing Authorization header
required:
- statusCode
- error
- message
'402':
description: This request cannot be fulfilled because the workspace does not have an active paid plan
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 402
examples:
- 402
example: 402
error:
type: string
enum:
- Payment Required
examples:
- Payment Required
example: Payment Required
message:
type: string
examples:
- Workspace does not have an active paid plan
example: Workspace does not have an active paid plan
required:
- statusCode
- error
- message
'404':
description: The requested resource was not found
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 404
examples:
- 404
example: 404
error:
type: string
enum:
- Not Found
examples:
- Not Found
example: Not Found
message:
type: string
examples:
- Resource not found
example: Resource not found
required:
- statusCode
- error
- message
'429':
description: You have exceeded the rate limit. Please check the rate limit docs for more information.
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 429
examples:
- 429
example: 429
error:
type: string
enum:
- Too Many Requests
examples:
- Too Many Requests
example: Too Many Requests
message:
type: string
examples:
- Rate limit exceeded
example: Rate limit exceeded
required:
- statusCode
- error
- message
/api/v2/workspaces/current/schedule-for-removal:
post:
operationId: scheduleCurrentWorkspaceRemoval
summary: Schedule Current Workspace Removal
tags:
- Workspace
description: 'Schedule the current workspace to be removed in 24 hours.
Requires one of the following scopes: `workspaces:delete`, `workspaces:all`, `all:delete`, `all:all`'
responses:
'200':
description: The requested Workspace
content:
application/json:
schema:
$ref: '#/components/schemas/Workspace'
'401':
description: This request is unauthorized (either the Authorization header is missing or invalid, or the API key
has been revoked)
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 401
examples:
- 401
example: 401
error:
type: string
enum:
- Unauthorized
examples:
- Unauthorized
example: Unauthorized
message:
type: string
examples:
- Missing Authorization header
example: Missing Authorization header
required:
- statusCode
- error
- message
'402':
description: This request cannot be fulfilled because the workspace does not have an active paid plan
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 402
examples:
- 402
example: 402
error:
type: string
enum:
- Payment Required
examples:
- Payment Required
example: Payment Required
message:
type: string
examples:
- Workspace does not have an active paid plan
example: Workspace does not have an active paid plan
required:
- statusCode
- error
- message
'404':
description: The requested resource was not found
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 404
examples:
- 404
example: 404
error:
type: string
enum:
- Not Found
examples:
- Not Found
example: Not Found
message:
type: string
examples:
- Resource not found
example: Resource not found
required:
- statusCode
- error
- message
'429':
description: You have exceeded the rate limit. Please check the rate limit docs for more information.
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 429
examples:
- 429
example: 429
error:
type: string
enum:
- Too Many Requests
examples:
- Too Many Requests
example: Too Many Requests
message:
type: string
examples:
- Rate limit exceeded
example: Rate limit exceeded
required:
- statusCode
- error
- message
delete:
operationId: cancelCurrentWorkspaceRemoval
summary: Cancel Current Workspace Removal
tags:
- Workspace
description: 'Requires one of the following scopes: `workspaces:delete`, `workspaces:all`, `all:delete`, `all:all`'
responses:
'200':
description: The requested Workspace
content:
application/json:
schema:
$ref: '#/components/schemas/Workspace'
'401':
description: This request is unauthorized (either the Authorization header is missing or invalid, or the API key
has been revoked)
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 401
examples:
- 401
example: 401
error:
type: string
enum:
- Unauthorized
examples:
- Unauthorized
example: Unauthorized
message:
type: string
examples:
- Missing Authorization header
example: Missing Authorization header
required:
- statusCode
- error
- message
'402':
description: This request cannot be fulfilled because the workspace does not have an active paid plan
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 402
examples:
- 402
example: 402
error:
type: string
enum:
- Payment Required
examples:
- Payment Required
example: Payment Required
message:
type: string
examples:
- Workspace does not have an active paid plan
example: Workspace does not have an active paid plan
required:
- statusCode
- error
- message
'404':
description: The requested resource was not found
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 404
examples:
- 404
example: 404
error:
type: string
enum:
- Not Found
examples:
- Not Found
example: Not Found
message:
type: string
examples:
- Resource not found
example: Resource not found
required:
- statusCode
- error
- message
'429':
description: You have exceeded the rate limit. Please check the rate limit docs for more information.
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 429
examples:
- 429
example: 429
error:
type: string
enum:
- Too Many Requests
examples:
- Too Many Requests
example: Too Many Requests
message:
type: string
examples:
- Rate limit exceeded
example: Rate limit exceeded
required:
- statusCode
- error
- message
/api/v2/workspaces/current/whitelabel-domain:
post:
operationId: addWorkspaceAgencyDomain
summary: Set the agency domain for the workspace
tags:
- Workspace
description: 'Requires one of the following scopes: `workspaces:update`, `workspaces:all`, `all:update`, `all:all`'
requestBody:
content:
application/json:
schema:
type: object
properties:
domain:
type: string
description: The agency domain to set for the workspace
example: agency.example.com
required:
- domain
required: true
responses:
'200':
description: The requested Workspace
content:
application/json:
schema:
$ref: '#/components/schemas/Workspace'
'401':
description: This request is unauthorized (either the Authorization header is missing or invalid, or the API key
has been revoked)
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 401
examples:
- 401
example: 401
error:
type: string
enum:
- Unauthorized
examples:
- Unauthorized
example: Unauthorized
message:
type: string
examples:
- Missing Authorization header
example: Missing Authorization header
required:
- statusCode
- error
- message
'402':
description: This request cannot be fulfilled because the workspace does not have an active paid plan
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 402
examples:
- 402
example: 402
error:
type: string
enum:
- Payment Required
examples:
- Payment Required
example: Payment Required
message:
type: string
examples:
- Workspace does not have an active paid plan
example: Workspace does not have an active paid plan
required:
- statusCode
- error
- message
'404':
description: The requested resource was not found
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 404
examples:
- 404
example: 404
error:
type: string
enum:
- Not Found
examples:
- Not Found
example: Not Found
message:
type: string
examples:
- Resource not found
example: Resource not found
required:
- statusCode
- error
- message
'429':
description: You have exceeded the rate limit. Please check the rate limit docs for more information.
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 429
examples:
- 429
example: 429
error:
type: string
enum:
- Too Many Requests
examples:
- Too Many Requests
example: Too Many Requests
message:
type: string
examples:
- Rate limit exceeded
example: Rate limit exceeded
required:
- statusCode
- error
- message
get:
operationId: getWorkspaceDomainInfo
summary: Get organization verified agency domain information
tags:
- Workspace
description: 'Requires one of the following scopes: `workspaces:read`, `workspaces:all`, `all:read`, `all:all`'
responses:
'200':
description: Default Response
content:
application/json:
schema:
type: object
properties:
verified:
type: boolean
description: Whether the domain is verified
example: true
name:
type: string
description: The domain name
example: example.com
verification:
type: array
items:
type: object
properties:
type:
type: string
description: The verification type
example: TXT
domain:
type: string
description: The domain name
example: example.com
value:
type: string
description: The verification value
example: vercel-challenge=xyz123
reason:
type: string
description: The reason for the verification
example: TXT record required for domain verification
'401':
description: This request is unauthorized (either the Authorization header is missing or invalid, or the API key
has been revoked)
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 401
examples:
- 401
example: 401
error:
type: string
enum:
- Unauthorized
examples:
- Unauthorized
example: Unauthorized
message:
type: string
examples:
- Missing Authorization header
example: Missing Authorization header
required:
- statusCode
- error
- message
'402':
description: This request cannot be fulfilled because the workspace does not have an active paid plan
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 402
examples:
- 402
example: 402
error:
type: string
enum:
- Payment Required
examples:
- Payment Required
example: Payment Required
message:
type: string
examples:
- Workspace does not have an active paid plan
example: Workspace does not have an active paid plan
required:
- statusCode
- error
- message
'404':
description: The requested resource was not found
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 404
examples:
- 404
example: 404
error:
type: string
enum:
- Not Found
examples:
- Not Found
example: Not Found
message:
type: string
examples:
- Resource not found
example: Resource not found
required:
- statusCode
- error
- message
'429':
description: You have exceeded the rate limit. Please check the rate limit docs for more information.
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 429
examples:
- 429
example: 429
error:
type: string
enum:
- Too Many Requests
examples:
- Too Many Requests
example: Too Many Requests
message:
type: string
examples:
- Rate limit exceeded
example: Rate limit exceeded
required:
- statusCode
- error
- message
delete:
operationId: deleteWorkspaceDomain
summary: Delete organization agency domain
tags:
- Workspace
description: 'Requires one of the following scopes: `workspaces:update`, `workspaces:all`, `all:update`, `all:all`'
responses:
'200':
description: The requested Workspace
content:
application/json:
schema:
$ref: '#/components/schemas/Workspace'
'401':
description: This request is unauthorized (either the Authorization header is missing or invalid, or the API key
has been revoked)
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 401
examples:
- 401
example: 401
error:
type: string
enum:
- Unauthorized
examples:
- Unauthorized
example: Unauthorized
message:
type: string
examples:
- Missing Authorization header
example: Missing Authorization header
required:
- statusCode
- error
- message
'402':
description: This request cannot be fulfilled because the workspace does not have an active paid plan
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 402
examples:
- 402
example: 402
error:
type: string
enum:
- Payment Required
examples:
- Payment Required
example: Payment Required
message:
type: string
examples:
- Workspace does not have an active paid plan
example: Workspace does not have an active paid plan
required:
- statusCode
- error
- message
'404':
description: The requested resource was not found
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 404
examples:
- 404
example: 404
error:
type: string
enum:
- Not Found
examples:
- Not Found
example: Not Found
message:
type: string
examples:
- Resource not found
example: Resource not found
required:
- statusCode
- error
- message
'429':
description: You have exceeded the rate limit. Please check the rate limit docs for more information.
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 429
examples:
- 429
example: 429
error:
type: string
enum:
- Too Many Requests
examples:
- Too Many Requests
example: Too Many Requests
message:
type: string
examples:
- Rate limit exceeded
example: Rate limit exceeded
required:
- statusCode
- error
- message
/api/v2/workspaces/current/change-owner:
post:
operationId: changeWorkspaceOwner
summary: Change workspace owner
tags:
- Workspace
description: 'Requires one of the following scopes: `workspaces:update`, `workspaces:all`, `all:update`, `all:all`'
requestBody:
content:
application/json:
schema:
type: object
properties:
email:
type: string
format: email
example: user@example.com
sec:
type: string
example: SECRET_TOKEN
required:
- email
- sec
required: true
responses:
'200':
description: The requested Workspace
content:
application/json:
schema:
$ref: '#/components/schemas/Workspace'
'401':
description: This request is unauthorized (either the Authorization header is missing or invalid, or the API key
has been revoked)
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 401
examples:
- 401
example: 401
error:
type: string
enum:
- Unauthorized
examples:
- Unauthorized
example: Unauthorized
message:
type: string
examples:
- Missing Authorization header
example: Missing Authorization header
required:
- statusCode
- error
- message
'402':
description: This request cannot be fulfilled because the workspace does not have an active paid plan
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 402
examples:
- 402
example: 402
error:
type: string
enum:
- Payment Required
examples:
- Payment Required
example: Payment Required
message:
type: string
examples:
- Workspace does not have an active paid plan
example: Workspace does not have an active paid plan
required:
- statusCode
- error
- message
'404':
description: The requested resource was not found
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 404
examples:
- 404
example: 404
error:
type: string
enum:
- Not Found
examples:
- Not Found
example: Not Found
message:
type: string
examples:
- Resource not found
example: Resource not found
required:
- statusCode
- error
- message
'429':
description: You have exceeded the rate limit. Please check the rate limit docs for more information.
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 429
examples:
- 429
example: 429
error:
type: string
enum:
- Too Many Requests
examples:
- Too Many Requests
example: Too Many Requests
message:
type: string
examples:
- Rate limit exceeded
example: Rate limit exceeded
required:
- statusCode
- error
- message
/api/v2/supersearch-enrichment/ai:
post:
operationId: createAIEnrichment
summary: Create AI enrichment
tags:
- SuperSearchEnrichment
description: 'Create an AI enrichment for a resource (list or campaign)
Requires one of the following scopes: `supersearch_enrichments:create`, `supersearch_enrichments:all`, `all:create`,
`all:all`'
requestBody:
content:
application/json:
schema:
type: object
required:
- resource_id
- output_column
- resource_type
- model_version
properties:
resource_id:
type: string
format: uuid
description: Id of the resource (list or campaign) to enrich
example: 01234567-89ab-cdef-0123-456789abcdef
output_column:
type: string
description: Name of the column where the AI enrichment results will be stored
example: ai_generated_content
resource_type:
type: number
enum:
- 1
- 2
x-enumDescriptions:
'1': Campaign
'2': List
description: Type of the entity to enrich
example: 2
input_columns:
type: array
items:
type: string
example: first_name
description: List of column names to use as input data for the AI enrichment. These are the fields from
your leads that will be used to generate content.
model_version:
type: string
enum:
- '3.5'
- '4.0'
- gpt-4o
- o3
- gpt-4.1
- gpt-4.1-mini
- gpt-5-mini
- gpt-5-nano
- gpt-5
- gpt-5.4
- claude-4.5-sonnet
- claude-4.6-sonnet
- r1
- grok-4.3
- gemini-3.0-flash
- gemini-3.5-flash
- sonar
- sonar-pro
- instantly-ai-lightspeed-agent-for-web-research
- instantly-ai-lightspeed-agent-for-email-generation
x-enumDescriptions:
'3.5': GPT-3.5 Turbo - OpenAI's standard model with good performance and low cost
gpt-5: GPT-5 is OpenAI’s most advanced model, offering major improvements in reasoning, code quality,
and user experience.
gpt-5.4: GPT-5.4 is the latest generation non-reasoning model, optimized for fast, high-quality responses
at low latency.
gpt-5-mini: GPT-5 Mini is a compact version of GPT-5, designed to handle lighter-weight reasoning tasks.
gpt-5-nano: GPT-5-Nano is the smallest and fastest variant in the GPT-5 system, optimized for developer
tools, rapid interactions, and ultra-low latency environments.
'4.0': GPT-4 - OpenAI's advanced model with improved reasoning
gpt-4o: GPT-4o - OpenAI's optimized model with improved performance
o3: o3 is a well-rounded and powerful model across domains. It sets a new standard for math, science,
coding, and visual reasoning tasks.
gpt-4.1: GPT-4.1 is a flagship large language model optimized for advanced instruction following, real-world
software engineering, and long-context reasoning.
gpt-4.1-mini: GPT-4.1 Mini is a mid-sized model delivering performance competitive with GPT-4o at substantially
lower latency and cost.
claude-4.5-sonnet: Claude Sonnet 4.5 is Anthropic's most advanced Sonnet model to date, optimized for
real-world agents and coding workflows.
claude-4.6-sonnet: Claude Sonnet 4.6 is Anthropic's latest Sonnet model, optimized for real-world agents
and coding workflows.
r1: R1 - Deepseek's advanced chat model
grok-4.3: Grok 4.3 - X AI's latest reasoning model
gemini-3.0-flash: Gemini 3.0 Flash - Is a high speed, high value thinking model designed for agentic workflows,
multi turn chat, and coding assistance
gemini-3.5-flash: Gemini 3.5 Flash - Google's high-speed flash model.
sonar: Sonar - Perplexity's lightweight, affordable, fast, and simple to use model.
sonar-pro: Sonar Pro - Perplexity's most advanced model.
instantly-ai-lightspeed-agent-for-web-research: Instantly AI - LightSpeed Agent for Web Research
instantly-ai-lightspeed-agent-for-email-generation: Instantly AI - LightSpeed Agent for Email Generation
description: Version of the AI model to use for enrichment. Different models have different capabilities,
costs, and token limits.
example: gpt-4o
use_instantly_account:
type: boolean
description: When true, the enrichment will use Instantly's account for API calls. When false, it will use
your own API keys configured in settings.
example: true
overwrite:
type: boolean
description: When true, will overwrite existing values in the output column. When false, only empty fields
will be enriched.
example: false
auto_update:
type: boolean
description: When true, new leads added to the campaign/list will be automatically enriched using these
same settings.
example: true
skip_leads_without_email:
type: boolean
description: When true, leads without an email will be skipped.
example: false
limit:
type: number
description: Maximum number of leads to enrich.
minimum: 1
maximum: 1000000
example: 100
prompt:
type: string
description: Custom prompt to guide the AI enrichment. Use {{variables}} to reference input data. Only used
when templateId is not provided.
example: Write a personalized email to {{first_name}} from {{company_name}} about our new product
template_id:
type: string
description: ID of a predefined AI prompt template to use instead of a custom prompt. Templates are reusable
prompt configurations.
example: '123'
status:
type: number
enum:
- 1
- 2
- 3
- 4
x-enumDescriptions:
'1': Job is pending processing
'2': Job is currently being processed
'3': Job has been completed successfully
'4': Job processing failed
description: Status of the job
example: 1
filters:
type: array
items:
type: object
properties: {}
description: Filters to apply to the enrichment
example:
column_name: email
type: 1
value:
- test@test.com
required: true
responses:
'200':
description: Default Response
content:
application/json:
schema:
type: object
properties:
id:
type: string
description: Unique identifier for the enrichment
example: 01234567-89ab-cdef-0123-456789abcdef
resource_id:
type: string
format: uuid
description: ID of the resource being enriched
example: 01234567-89ab-cdef-0123-456789abcdef
resource_type:
type: number
description: Type of the resource (1 for Campaign, 2 for List)
enum:
- CAMPAIGN
- LIST
- 1
- 2
x-enumDescriptions:
'1': Campaign
'2': List
example: 1
output_column:
type: string
description: Name of the column where results will be stored
example: ai_generated_content
status:
type: number
description: Status of the enrichment job
example: 1
model_version:
type: string
description: AI model version used for enrichment
example: gpt-4o
input_columns:
type: array
items:
type: string
example: first_name
description: Input columns used for enrichment
overwrite:
type: boolean
description: Whether to overwrite existing data
example: false
auto_update:
type: boolean
description: Whether to auto-update new leads
example: true
limit:
type: number
description: Maximum number of leads to process
example: 100
template_id:
type:
- 'null'
- string
description: ID of the prompt template used
example: '15762598695796759'
required:
- id
- resource_id
- resource_type
- output_column
- status
- model_version
- overwrite
- auto_update
additionalProperties: false
'401':
description: This request is unauthorized (either the Authorization header is missing or invalid, or the API key
has been revoked)
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 401
examples:
- 401
example: 401
error:
type: string
enum:
- Unauthorized
examples:
- Unauthorized
example: Unauthorized
message:
type: string
examples:
- Missing Authorization header
example: Missing Authorization header
required:
- statusCode
- error
- message
'402':
description: This request cannot be fulfilled because the workspace does not have an active paid plan
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 402
examples:
- 402
example: 402
error:
type: string
enum:
- Payment Required
examples:
- Payment Required
example: Payment Required
message:
type: string
examples:
- Workspace does not have an active paid plan
example: Workspace does not have an active paid plan
required:
- statusCode
- error
- message
'404':
description: The requested resource was not found
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 404
examples:
- 404
example: 404
error:
type: string
enum:
- Not Found
examples:
- Not Found
example: Not Found
message:
type: string
examples:
- Resource not found
example: Resource not found
required:
- statusCode
- error
- message
'429':
description: You have exceeded the rate limit. Please check the rate limit docs for more information.
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 429
examples:
- 429
example: 429
error:
type: string
enum:
- Too Many Requests
examples:
- Too Many Requests
example: Too Many Requests
message:
type: string
examples:
- Rate limit exceeded
example: Rate limit exceeded
required:
- statusCode
- error
- message
/api/v2/supersearch-enrichment/ai/{resource_id}/in-progress:
get:
operationId: getAiEnrichmentForResource
summary: Get AI enrichment for resource
tags:
- SuperSearchEnrichment
description: 'Get the AI enrichment for a specific resource
Requires one of the following scopes: `supersearch_enrichments:read`, `supersearch_enrichments:all`, `all:read`, `all:all`'
parameters:
- schema:
format: uuid
type: string
example: 123e4567-e89b-12d3-a456-426614174000
example: 123e4567-e89b-12d3-a456-426614174000
in: path
name: resource_id
required: true
description: The ID of the list or campaign to retrieve the AI enrichment.
responses:
'200':
description: Default Response
content:
application/json:
schema:
type: array
items:
type: object
properties:
id:
type: string
description: Unique identifier for the enrichment
example: 01234567-89ab-cdef-0123-456789abcdef
organization_id:
type: string
format: uuid
description: Organization ID that owns this enrichment
example: 01234567-89ab-cdef-0123-456789abcdef
resource_id:
type: string
format: uuid
description: ID of the resource being enriched
example: 01234567-89ab-cdef-0123-456789abcdef
resource_type:
type: number
description: Type of the resource (1 for Campaign, 2 for List)
enum:
- CAMPAIGN
- LIST
- 1
- 2
x-enumDescriptions:
'1': Campaign
'2': List
example: 1
output_column:
type: string
description: Name of the column where results will be stored
example: ai_generated_content
status:
type: number
description: Status of the enrichment job
example: 1
required:
- organization_id
- resource_id
- resource_type
- output_column
- status
'401':
description: This request is unauthorized (either the Authorization header is missing or invalid, or the API key
has been revoked)
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 401
examples:
- 401
example: 401
error:
type: string
enum:
- Unauthorized
examples:
- Unauthorized
example: Unauthorized
message:
type: string
examples:
- Missing Authorization header
example: Missing Authorization header
required:
- statusCode
- error
- message
'402':
description: This request cannot be fulfilled because the workspace does not have an active paid plan
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 402
examples:
- 402
example: 402
error:
type: string
enum:
- Payment Required
examples:
- Payment Required
example: Payment Required
message:
type: string
examples:
- Workspace does not have an active paid plan
example: Workspace does not have an active paid plan
required:
- statusCode
- error
- message
'404':
description: The requested resource was not found
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 404
examples:
- 404
example: 404
error:
type: string
enum:
- Not Found
examples:
- Not Found
example: Not Found
message:
type: string
examples:
- Resource not found
example: Resource not found
required:
- statusCode
- error
- message
'429':
description: You have exceeded the rate limit. Please check the rate limit docs for more information.
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 429
examples:
- 429
example: 429
error:
type: string
enum:
- Too Many Requests
examples:
- Too Many Requests
example: Too Many Requests
message:
type: string
examples:
- Rate limit exceeded
example: Rate limit exceeded
required:
- statusCode
- error
- message
/api/v2/supersearch-enrichment/{resource_id}:
get:
operationId: getEnrichmentForResource
summary: Get enrichment for resource
tags:
- SuperSearchEnrichment
description: Get the enrichment for a specific resource
parameters:
- schema:
format: uuid
type: string
example: 123e4567-e89b-12d3-a456-426614174000
example: 123e4567-e89b-12d3-a456-426614174000
in: path
name: resource_id
required: true
description: The ID of the list or campaign to retrieve the enrichment.
responses:
'200':
description: Default Response
content:
application/json:
schema:
type: object
properties:
resource_id:
type: string
format: uuid
description: ID of the resource being enriched
example: 01234567-89ab-cdef-0123-456789abcdef
in_progress:
type: boolean
description: Whether the enrichment is in progress
example: false
has_no_leads:
type: boolean
description: Whether the enrichment for this resource returned no leads for these search filters. This
is only applicable for enrichments created from SuperSearch.
example: false
exists:
type: boolean
description: Whether the enrichment exists
example: true
enrichment_payload:
type: object
description: Enrichment types
minProperties: 1
properties:
work_email_enrichment:
type: boolean
example: true
fully_enriched_profile:
type: boolean
example: true
email_verification:
type: boolean
example: false
joblisting:
type: boolean
example: true
technologies:
type: boolean
example: true
news:
type: boolean
example: true
funding:
type: boolean
example: true
engagement_score:
type: boolean
example: true
ai_enrichment:
type: object
additionalProperties: true
custom_flow:
type: array
items:
type: string
example: leadmagic
example:
- leadmagic
- prospeo
- hunter
limit:
type: number
description: Maximum number of leads to enrich
example: 10
autofill:
type: boolean
description: Whether to automatically fill in missing lead information
example: true
additionalProperties: true
auto_update:
type: boolean
description: Whether leads added to the list will be automatically enriched
example: false
is_evergreen:
type: boolean
description: Whether the enrichment is evergreen
example: false
search_filters:
type: object
description: Search filters used to create this enrichment (only present for enrichments created from
SuperSearch)
additionalProperties: true
required:
- resource_id
- enrichment_payload
additionalProperties: false
'401':
description: This request is unauthorized (either the Authorization header is missing or invalid, or the API key
has been revoked)
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 401
examples:
- 401
example: 401
error:
type: string
enum:
- Unauthorized
examples:
- Unauthorized
example: Unauthorized
message:
type: string
examples:
- Missing Authorization header
example: Missing Authorization header
required:
- statusCode
- error
- message
'402':
description: This request cannot be fulfilled because the workspace does not have an active paid plan
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 402
examples:
- 402
example: 402
error:
type: string
enum:
- Payment Required
examples:
- Payment Required
example: Payment Required
message:
type: string
examples:
- Workspace does not have an active paid plan
example: Workspace does not have an active paid plan
required:
- statusCode
- error
- message
'404':
description: The requested resource was not found
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 404
examples:
- 404
example: 404
error:
type: string
enum:
- Not Found
examples:
- Not Found
example: Not Found
message:
type: string
examples:
- Resource not found
example: Resource not found
required:
- statusCode
- error
- message
'429':
description: You have exceeded the rate limit. Please check the rate limit docs for more information.
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 429
examples:
- 429
example: 429
error:
type: string
enum:
- Too Many Requests
examples:
- Too Many Requests
example: Too Many Requests
message:
type: string
examples:
- Rate limit exceeded
example: Rate limit exceeded
required:
- statusCode
- error
- message
/api/v2/supersearch-enrichment/:
post:
operationId: createSuperSearchEnrichment
summary: Create an enrichment
tags:
- SuperSearchEnrichment
description: Create an enrichment for a specific resource (list or campaign). This is the main endpoint for adding enrichments
to resources. The enrichments are automatically run after creation.
requestBody:
content:
application/json:
schema:
type: object
required:
- resource_id
properties:
resource_id:
type: string
format: uuid
description: Unique identifier for the resource (list or campaign)
example: 01234567-89ab-cdef-0123-456789abcdef
type:
type: string
enum:
- work_email_enrichment
- fully_enriched_profile
- email_verification
- joblisting
- technologies
- news
- funding
- engagement_score
- ai_enrichment
- custom_flow
x-enumDescriptions:
work_email_enrichment: Work Email Enrichment
fully_enriched_profile: LinkedIn Enrichment
email_verification: Email Verification
joblisting: Job Listing Enrichment
technologies: Technologies Enrichment
news: News Enrichment
funding: Funding Enrichment
ai_enrichment: AI Enrichment
custom_flow: Custom Flow Enrichment
description: Enrichment type to add to the resource
example: email_verification
limit:
type: number
description: Maximum number of leads to enrich.
minimum: 1
maximum: 50000
example: 100
filters:
type: array
description: Filters to apply to the enrichment
items:
type: object
custom_flow:
type: array
description: Custom flow to apply to the enrichment
items:
type: string
example: instantly
integration_actions:
type: object
description: Provider-keyed integration actions to run against the resource. Mutually exclusive with `type`
— either run a built-in enrichment via `type` or supply `integration_actions` to run one or more provider
actions. Outer keys are provider IDs (e.g. `findymail`, `apify`); inner keys are action IDs offered by
that provider (e.g. `findymail_find_email`). Each action requires a `mapping` object whose keys are the
action's declared input fields and whose values are the lead column names to read from.
minProperties: 1
additionalProperties:
type: object
minProperties: 1
additionalProperties:
type: object
required:
- mapping
properties:
mapping:
type: object
description: Maps action input field keys to a lead column name (column inputs) or a literal value
(text/list inputs; a list input takes a comma-separated string).
additionalProperties:
type: string
examples:
- firstName
- lastName
- website
example: firstName
example:
findymail:
findymail_find_email:
mapping:
first_name: firstName
last_name: lastName
domain: website
required: true
responses:
'200':
description: Default Response
content:
application/json:
schema:
type: object
properties:
id:
type: string
description: Unique identifier for the enrichment
example: 01234567-89ab-cdef-0123-456789abcdef
limit:
type: number
description: The maximum number of leads to enrich
example: 100
organization_id:
type: string
format: uuid
description: Organization ID that created this enrichment
example: 01234567-89ab-cdef-0123-456789abcdef
resource_id:
type: string
format: uuid
description: Unique identifier for the entity to enrich leads into
example: 01234567-89ab-cdef-0123-456789abcdef
enrichment_payload:
type: object
description: The enrichment configuration payload
properties:
joblisting:
type: boolean
description: Whether job listing enrichment is enabled
example: true
email_verification:
type: boolean
description: Whether email verification is enabled
example: true
work_email_enrichment:
type: boolean
description: Whether work email enrichment is enabled
example: true
fully_enriched_profile:
type: boolean
description: Whether fully enriched profile is enabled
example: true
custom_flow:
type: array
items:
type: string
example: instantly
additionalProperties: true
required:
- id
- organization_id
- resource_id
additionalProperties: false
'401':
description: This request is unauthorized (either the Authorization header is missing or invalid, or the API key
has been revoked)
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 401
examples:
- 401
example: 401
error:
type: string
enum:
- Unauthorized
examples:
- Unauthorized
example: Unauthorized
message:
type: string
examples:
- Missing Authorization header
example: Missing Authorization header
required:
- statusCode
- error
- message
'402':
description: This request cannot be fulfilled because the workspace does not have an active paid plan
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 402
examples:
- 402
example: 402
error:
type: string
enum:
- Payment Required
examples:
- Payment Required
example: Payment Required
message:
type: string
examples:
- Workspace does not have an active paid plan
example: Workspace does not have an active paid plan
required:
- statusCode
- error
- message
'404':
description: The requested resource was not found
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 404
examples:
- 404
example: 404
error:
type: string
enum:
- Not Found
examples:
- Not Found
example: Not Found
message:
type: string
examples:
- Resource not found
example: Resource not found
required:
- statusCode
- error
- message
'429':
description: You have exceeded the rate limit. Please check the rate limit docs for more information.
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 429
examples:
- 429
example: 429
error:
type: string
enum:
- Too Many Requests
examples:
- Too Many Requests
example: Too Many Requests
message:
type: string
examples:
- Rate limit exceeded
example: Rate limit exceeded
required:
- statusCode
- error
- message
/api/v2/supersearch-enrichment/{resource_id}/settings:
patch:
operationId: updateEnrichmentSettingsForResource
summary: Update enrichment settings for resource
tags:
- SuperSearchEnrichment
description: 'Update auto-update and skip settings for a SuperSearch enrichment tied to a specific resource
Requires one of the following scopes: `supersearch_enrichments:create`, `supersearch_enrichments:all`, `all:create`,
`all:all`'
requestBody:
content:
application/json:
schema:
type: object
properties:
auto_update:
type: boolean
description: Whether new leads added to the resource will be automatically enriched
example: true
skip_rows_without_email:
type: boolean
description: Whether the fully enriched profile enrichment will run even if we don't find an email
example: true
is_evergreen:
type: boolean
description: Whether the enrichment is evergreen
example: true
parameters:
- schema:
type: string
format: uuid
example: 01234567-89ab-cdef-0123-456789abcdef
example: 01234567-89ab-cdef-0123-456789abcdef
in: path
name: resource_id
required: true
description: Unique identifier for the resource (list or campaign)
responses:
'200':
description: The requested SuperSearch Enrichment
content:
application/json:
schema:
$ref: '#/components/schemas/SuperSearchEnrichment'
'401':
description: This request is unauthorized (either the Authorization header is missing or invalid, or the API key
has been revoked)
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 401
examples:
- 401
example: 401
error:
type: string
enum:
- Unauthorized
examples:
- Unauthorized
example: Unauthorized
message:
type: string
examples:
- Missing Authorization header
example: Missing Authorization header
required:
- statusCode
- error
- message
'402':
description: This request cannot be fulfilled because the workspace does not have an active paid plan
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 402
examples:
- 402
example: 402
error:
type: string
enum:
- Payment Required
examples:
- Payment Required
example: Payment Required
message:
type: string
examples:
- Workspace does not have an active paid plan
example: Workspace does not have an active paid plan
required:
- statusCode
- error
- message
'404':
description: The requested resource was not found
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 404
examples:
- 404
example: 404
error:
type: string
enum:
- Not Found
examples:
- Not Found
example: Not Found
message:
type: string
examples:
- Resource not found
example: Resource not found
required:
- statusCode
- error
- message
'429':
description: You have exceeded the rate limit. Please check the rate limit docs for more information.
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 429
examples:
- 429
example: 429
error:
type: string
enum:
- Too Many Requests
examples:
- Too Many Requests
example: Too Many Requests
message:
type: string
examples:
- Rate limit exceeded
example: Rate limit exceeded
required:
- statusCode
- error
- message
/api/v2/supersearch-enrichment/enrich-leads-from-supersearch:
post:
operationId: enrichLeadsFromSupersearch
summary: Enrich leads from supersearch
tags:
- SuperSearchEnrichment
description: Add leads from SuperSearch to a list and enrich them. A list is automatically created if no list is provided.
requestBody:
content:
application/json:
schema:
type: object
required:
- search_filters
- limit
properties:
search_filters:
type: object
description: Search filters to find leads.
properties:
company_list_id:
type: string
pattern: ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$
description: Company-list audience boundary. Only completed lists owned by the caller workspace are
accepted.
example: 018f23b7-92bb-7c64-a3d4-1ba53b8ad971
locations:
oneOf:
- type: array
description: 'Legacy format: Array of locations to include in the search. For new integrations, use
the object format with include/exclude properties.'
items:
oneOf:
- type: object
properties:
place_id:
type: string
examples:
- ChIJN1t_t3uEmsRUso9K6W47H4
description: Google Maps Place ID of the lead's location (https://developers.google.com/maps/documentation/places/web-service/place-id)
example: ChIJN1t_t3uEmsRUso9K6W47H4
label:
type: string
examples:
- San Francisco, CA, USA
description: Label of the lead's location
example: San Francisco, CA, USA
required:
- place_id
additionalProperties: false
- type: object
properties:
city:
type: string
examples:
- San Francisco
description: City of the lead
example: San Francisco
state:
type: string
examples:
- California
description: State of the lead
example: California
country:
type: string
examples:
- United States
description: Country of the lead
example: United States
anyOf:
- required:
- city
- required:
- state
- required:
- country
additionalProperties: false
- type: object
description: Locations to include or exclude in the search
properties:
include:
type: array
items:
oneOf:
- type: object
properties:
place_id:
type: string
examples:
- ChIJN1t_t3uEmsRUso9K6W47H4
description: Google Maps Place ID of the lead's location (https://developers.google.com/maps/documentation/places/web-service/place-id)
example: ChIJN1t_t3uEmsRUso9K6W47H4
label:
type: string
examples:
- San Francisco, CA, USA
description: Label of the lead's location
example: San Francisco, CA, USA
required:
- place_id
additionalProperties: false
- type: object
properties:
city:
type: string
examples:
- San Francisco
description: City of the lead
example: San Francisco
state:
type: string
examples:
- California
description: State of the lead
example: California
country:
type: string
examples:
- United States
description: Country of the lead
example: United States
anyOf:
- required:
- city
- required:
- state
- required:
- country
additionalProperties: false
description: Locations to include in the search
exclude:
type: array
items:
oneOf:
- type: object
properties:
place_id:
type: string
examples:
- ChIJN1t_t3uEmsRUso9K6W47H4
description: Google Maps Place ID of the lead's location (https://developers.google.com/maps/documentation/places/web-service/place-id)
example: ChIJN1t_t3uEmsRUso9K6W47H4
label:
type: string
examples:
- San Francisco, CA, USA
description: Label of the lead's location
example: San Francisco, CA, USA
required:
- place_id
additionalProperties: false
- type: object
properties:
city:
type: string
examples:
- San Francisco
description: City of the lead
example: San Francisco
state:
type: string
examples:
- California
description: State of the lead
example: California
country:
type: string
examples:
- United States
description: Country of the lead
example: United States
anyOf:
- required:
- city
- required:
- state
- required:
- country
additionalProperties: false
description: Locations to exclude from the search
department:
type: array
items:
type: string
enum:
- Engineering
- Finance & Administration
- Human Resources
- IT & IS
- Marketing
- Operations
- Sales
- Support
- Other
x-enumDescriptions:
Engineering: Engineering
Finance & Administration: Finance & Administration
Human Resources: Human Resources
IT & IS: IT & IS
Marketing: Marketing
Operations: Operations
Sales: Sales
Support: Support
Other: Other
description: Department of the lead
example: Engineering
level:
type: array
items:
type: string
enum:
- C-Level
- VP-Level
- Director-Level
- Manager-Level
- Staff
- Entry level
- Mid-Senior level
- Director
- Associate
- Owner
- Executive
- Manager
- Senior
- Chief X Officer (CxO)
- Internship
- Vice President (VP)
- Unpaid / Internship
- Partner
x-enumDescriptions:
C-Level: C-Level
VP-Level: VP-Level
Director-Level: Director-Level
Manager-Level: Manager-Level
Staff: Staff
Entry level: Entry level
Mid-Senior level: Mid-Senior level
Director: Director
Associate: Associate
Owner: Owner
Executive: Executive
Manager: Manager
Senior: Senior
Chief X Officer (CxO): Chief X Officer (CxO)
Internship: Internship
Vice President (VP): Vice President (VP)
Unpaid / Internship: Unpaid / Internship
Partner: Partner
description: Level of the lead
example: Entry level
employeeCount:
type: array
description: Employee count filters.
items:
oneOf:
- type: string
enum:
- 0 - 25
- 25 - 100
- 100 - 250
- 250 - 1000
- 1K - 10K
- 10K - 50K
- 50K - 100K
- '> 100K'
description: 'Legacy format: Predefined employee count range'
x-enumDescriptions:
0 - 25: 0 - 25
25 - 100: 25 - 100
100 - 250: 100 - 250
250 - 1000: 250 - 1000
1K - 10K: 1K - 10K
10K - 50K: 10K - 50K
50K - 100K: 50K - 100K
'> 100K': '> 100K'
examples:
- 0 - 25
example: 0 - 25
- type: object
description: Employee count greater-than-or-equal range
properties:
op:
type: string
enum:
- gte
description: Greater than or equal operation.
examples:
- gte
example: gte
min:
type: number
description: Minimum employee count (inclusive).
examples:
- 50
example: 50
max:
type:
- number
- 'null'
description: Deprecated opposite bound accepted for compatibility and removed during normalization.
required:
- op
- min
additionalProperties: false
- type: object
description: Employee count less-than-or-equal range
properties:
op:
type: string
enum:
- lte
description: Less than or equal operation.
examples:
- lte
example: lte
max:
type: number
description: Maximum employee count (inclusive).
examples:
- 200
example: 200
min:
type:
- number
- 'null'
description: Deprecated opposite bound accepted for compatibility and removed during normalization.
required:
- op
- max
additionalProperties: false
- type: object
description: Custom employee count bounded range
properties:
op:
type: string
enum:
- between
description: Between operation.
examples:
- between
example: between
min:
type:
- number
- 'null'
description: Minimum employee count (inclusive).
examples:
- 50
example: 50
max:
type:
- number
- 'null'
description: Maximum employee count (inclusive).
examples:
- 200
example: 200
required:
- op
anyOf:
- required:
- min
properties:
min:
type: number
- required:
- max
properties:
max:
type: number
additionalProperties: false
- type: object
description: Preset employee count bounded range
properties:
op:
type: string
enum:
- preset_between
description: Preset between operation.
examples:
- preset_between
example: preset_between
min:
type:
- number
- 'null'
description: Minimum employee count (inclusive).
examples:
- 50
example: 50
max:
type:
- number
- 'null'
description: Maximum employee count (inclusive).
examples:
- 200
example: 200
required:
- op
anyOf:
- required:
- min
properties:
min:
type: number
- required:
- max
properties:
max:
type: number
additionalProperties: false
revenue:
type: array
items:
type: string
enum:
- $0 - 1M
- $1 - 10M
- $10 - 50M
- $50 - 100M
- $100 - 250M
- $250 - 500M
- $500M - 1B
- '> $1B'
x-enumDescriptions:
$0 - 1M: $0 - 1M
$1 - 10M: $1M - 10M
$10 - 50M: $10M - 50M
$50 - 100M: $50M - 100M
$100 - 250M: $100M - 250M
$250 - 500M: $250M - 500M
$500M - 1B: $500M - 1B
'> $1B': '> $1B'
description: Revenue of the lead company
example: $1 - 10M
news:
type: array
items:
type: string
enum:
- launches
- expands_offices_to
- hires
- partners_with
- leaves
- receives_financing
- recognized_as
- closes_offices_in
- is_developing
- has_issues_with
- promotes
- opens_new_location
- receives_award
- acquires
- invests_into_assets
- signs_new_client
- increases_headcount_by
- retires_from
- invests_into
- integrates_with
- expands_facilities
- goes_public
- sells_assets_to
- identified_as_competitor_of
- decreases_headcount_by
- expands_offices_in
- files_suit_against
- merges_with
x-enumDescriptions:
launches: Launches
expands_offices_to: Expands Offices To
hires: Hires
partners_with: Partners With
leaves: Leaves
receives_financing: Receives Financing
recognized_as: Recognized As
closes_offices_in: Closes Offices In
is_developing: Is Developing
has_issues_with: Has Issues With
promotes: Promotes
opens_new_location: Opens New Location
receives_award: Receives Award
acquires: Acquires
invests_into_assets: Invests Into Assets
signs_new_client: Signs New Client
increases_headcount_by: Increases Headcount By
retires_from: Retires From
invests_into: Invests Into
integrates_with: Integrates With
expands_facilities: Expands Facilities
goes_public: Goes Public
sells_assets_to: Sells Assets To
identified_as_competitor_of: Identified As Competitor Of
decreases_headcount_by: Decreases Headcount By
expands_offices_in: Expands Offices In
files_suit_against: Files Suit Against
merges_with: Merges With
description: News about the lead company
example: launches
jobListing:
type: array
items:
type: string
example: Software Engineer
description: Canonical filter for companies that are hiring for the specified job titles.
jobListingFilter:
type: array
deprecated: true
items:
type: string
example: Software Engineer
description: Deprecated compatibility key for Job Listing filters. Use `jobListing` instead. If both
keys are present, `jobListing` takes precedence.
title:
type: object
properties:
include:
type: array
items:
type: string
example: CEO
description: Titles of the lead to include in the search
exclude:
type: array
items:
type: string
example: VP
description: Titles of the lead to exclude in the search
name:
type: array
items:
type: string
example: John Doe
description: Names of the lead to include in the search
company_name:
type: object
properties:
include:
type: array
items:
type: string
example: Google
description: Companies of the lead to include in the search
exclude:
type: array
items:
type: string
example: Amazon
description: Companies of the lead to exclude in the search
look_alike:
type: string
description: If set, the lead finder will find companies that are similar to the look-alike domain
example: google.com
lookAlike:
type: string
description: Product-UI alias of `look_alike`; both keys are accepted
example: google.com
lookAlikeMode:
type: string
description: How to interpret the look-alike domain (`targeted` or `broad`). Written by the product
UI.
example: targeted
technologies:
type: array
items:
type: string
example: Salesforce
description: Technologies the lead company uses
fundingType:
type: array
items:
type: string
example: seed
description: Product-UI alias of `funding_type`; both keys are accepted. See `funding_type` for the
canonical values.
locationMode:
type: string
description: Product-UI alias of `location_mode` (`contact` or `company`); both keys are accepted
example: contact
keyword_filter:
type: object
properties:
exclude:
type: string
example: sales
include:
type: string
example: marketing
include_mode:
type: string
enum:
- ANY
- ALL
example: ANY
industry:
type: object
properties:
exclude:
type: array
items:
type: string
enum:
- Agriculture & Mining
- Business Services
- Computers & Electronics
- Consumer Services
- Education
- Energy & Utilities
- Financial Services
- Government
- Healthcare, Pharmaceuticals, & Biotech
- Manufacturing
- Media & Entertainment
- Non-Profit
- Other
- Real Estate & Construction
- Retail
- Software & Internet
- Telecommunications
- Transportation & Storage
- Travel, Recreation, and Leisure
- Wholesale & Distribution
x-enumDescriptions:
Agriculture & Mining: Agriculture & Mining
Business Services: Business Services
Financial Services: Financial Services
Computers & Electronics: Computers & Electronics
Consumer Services: Consumer Services
Education: Education
Energy & Utilities: Energy & Utilities
Healthcare, Pharmaceuticals, & Biotech: Healthcare, Pharmaceuticals, & Biotech
Manufacturing: Manufacturing
Media & Entertainment: Media & Entertainment
Non-Profit: Non-Profit
Other: Other
Real Estate & Construction: Real Estate & Construction
Retail: Retail
Software & Internet: Software & Internet
Telecommunications: Telecommunications
Transportation & Storage: Transportation & Storage
Travel, Recreation, and Leisure: Travel, Recreation, and Leisure
Wholesale & Distribution: Wholesale & Distribution
Government: Government
example: Agriculture & Mining
description: Industries of the lead company to exclude in the search
include:
type: array
items:
type: string
enum:
- Agriculture & Mining
- Business Services
- Computers & Electronics
- Consumer Services
- Education
- Energy & Utilities
- Financial Services
- Government
- Healthcare, Pharmaceuticals, & Biotech
- Manufacturing
- Media & Entertainment
- Non-Profit
- Other
- Real Estate & Construction
- Retail
- Software & Internet
- Telecommunications
- Transportation & Storage
- Travel, Recreation, and Leisure
- Wholesale & Distribution
x-enumDescriptions:
Agriculture & Mining: Agriculture & Mining
Business Services: Business Services
Financial Services: Financial Services
Computers & Electronics: Computers & Electronics
Consumer Services: Consumer Services
Education: Education
Energy & Utilities: Energy & Utilities
Healthcare, Pharmaceuticals, & Biotech: Healthcare, Pharmaceuticals, & Biotech
Manufacturing: Manufacturing
Media & Entertainment: Media & Entertainment
Non-Profit: Non-Profit
Other: Other
Real Estate & Construction: Real Estate & Construction
Retail: Retail
Software & Internet: Software & Internet
Telecommunications: Telecommunications
Transportation & Storage: Transportation & Storage
Travel, Recreation, and Leisure: Travel, Recreation, and Leisure
Wholesale & Distribution: Wholesale & Distribution
Government: Government
description: Industries of the lead company to include in the search
example: Agriculture & Mining
subIndustry:
type: object
properties:
exclude:
type: array
items:
type: string
enum:
- Dairy
- Farming
- Fishery
- Food & Beverages
- Food Production
- Mining & Metals
- Paper & Forest Products
- Ranching
- Tobacco
- Alternative Dispute Resolution
- Animation
- Business Supplies and Equipment
- Design
- Environmental Services
- Events Services
- Executive Office
- Facilities Services
- Fund-Raising
- Graphic Design
- Human Resources
- Import and Export
- Individual & Family Services
- Information Services
- International Trade and Development
- Law Practice
- Legal Services
- Management Consulting
- Market Research
- Marketing and Advertising
- Outsourcing/Offshoring
- Professional Training & Coaching
- Program Development
- Public Relations and Communications
- Public Safety
- Security and Investigations
- Staffing and Recruiting
- Think Tanks
- Translation and Localization
- Writing and Editing
- Computer Games
- Computer Hardware
- Computer Networking
- Consumer Electronics
- Semiconductors
- Consumer Goods
- Consumer Services
- Education Management
- E-Learning
- Higher Education
- Primary/Secondary Education
- Research
- Oil & Energy
- Renewables & Environment
- Utilities
- Accounting
- Banking
- Capital Markets
- Financial Services
- Insurance
- Investment Banking
- Investment Management
- Venture Capital & Private Equity
- Defense & Space
- Government Administration
- Government Relations
- International Affairs
- Judiciary
- Law Enforcement
- Legislative Office
- Military
- Museums and Institutions
- Public Policy
- Alternative Medicine
- Biotechnology
- Health, Wellness and Fitness
- Hospital & Health Care
- Medical Devices
- Medical Practice
- Mental Health Care
- Pharmaceuticals
- Veterinary
- Automotive
- Aviation & Aerospace
- Chemicals
- Electrical/Electronic Manufacturing
- Furniture
- Industrial Automation
- Machinery
- Mechanical or Industrial Engineering
- Plastics
- Railroad Manufacture
- Shipbuilding
- Textiles
- Broadcast Media
- Media Production
- Motion Pictures and Film
- Music
- Newspapers
- Online Media
- Printing
- Publishing
- Civic & Social Organization
- Libraries
- Non-Profit Organization Management
- Philanthropy
- Political Organization
- Religious Institutions
- Arts and Crafts
- Nanotechnology
- Architecture & Planning
- Building Materials
- Civil Engineering
- Commercial Real Estate
- Construction
- Glass, Ceramics & Concrete
- Real Estate
- Apparel & Fashion
- Cosmetics
- Luxury Goods & Jewelry
- Retail
- Supermarkets
- Computer & Network Security
- Computer Software
- Information Technology and Services
- Internet
- Telecommunications
- Wireless
- Airlines/Aviation
- Logistics and Supply Chain
- Maritime
- Package/Freight Delivery
- Packaging and Containers
- Warehousing
- Transportation/Trucking/Railroad
- Entertainment
- Fine Art
- Gambling & Casinos
- Hospitality
- Leisure, Travel & Tourism
- Performing Arts
- Photography
- Recreational Facilities and Services
- Restaurants
- Sporting Goods
- Sports
- Wine and Spirits
- Wholesale
x-enumDescriptions:
Dairy: Dairy
Farming: Farming
Fishery: Fishery
Food & Beverages: Food & Beverages
Food Production: Food Production
Mining & Metals: Mining & Metals
Paper & Forest Products: Paper & Forest Products
Ranching: Ranching
Tobacco: Tobacco
Alternative Dispute Resolution: Alternative Dispute Resolution
Animation: Animation
Business Supplies and Equipment: Business Supplies and Equipment
Design: Design
Environmental Services: Environmental Services
Events Services: Events Services
Executive Office: Executive Office
Facilities Services: Facilities Services
Fund-Raising: Fund-Raising
Graphic Design: Graphic Design
Human Resources: Human Resources
Import and Export: Import and Export
Individual & Family Services: Individual & Family Services
Information Services: Information Services
International Trade and Development: International Trade and Development
Law Practice: Law Practice
Legal Services: Legal Services
Management Consulting: Management Consulting
Market Research: Market Research
Marketing and Advertising: Marketing and Advertising
Outsourcing/Offshoring: Outsourcing/Offshoring
Professional Training & Coaching: Professional Training & Coaching
Program Development: Program Development
Public Relations and Communications: Public Relations and Communications
Public Safety: Public Safety
Security and Investigations: Security and Investigations
Staffing and Recruiting: Staffing and Recruiting
Think Tanks: Think Tanks
Translation and Localization: Translation and Localization
Writing and Editing: Writing and Editing
Computer Games: Computer Games
Computer Hardware: Computer Hardware
Computer Networking: Computer Networking
Consumer Electronics: Consumer Electronics
Semiconductors: Semiconductors
Consumer Goods: Consumer Goods
Consumer Services: Consumer Services
Education Management: Education Management
E-Learning: E-Learning
Higher Education: Higher Education
Primary/Secondary Education: Primary/Secondary Education
Research: Research
Oil & Energy: Oil & Energy
Renewables & Environment: Renewables & Environment
Utilities: Utilities
Accounting: Accounting
Banking: Banking
Capital Markets: Capital Markets
Financial Services: Financial Services
Insurance: Insurance
Investment Banking: Investment Banking
Investment Management: Investment Management
Venture Capital & Private Equity: Venture Capital & Private Equity
Defense & Space: Defense & Space
Government Administration: Government Administration
Government Relations: Government Relations
International Affairs: International Affairs
Judiciary: Judiciary
Law Enforcement: Law Enforcement
Legislative Office: Legislative Office
Military: Military
Museums and Institutions: Museums and Institutions
Public Policy: Public Policy
Alternative Medicine: Alternative Medicine
Biotechnology: Biotechnology
Health, Wellness and Fitness: Health, Wellness and Fitness
Hospital & Health Care: Hospital & Health Care
Medical Devices: Medical Devices
Medical Practice: Medical Practice
Mental Health Care: Mental Health Care
Pharmaceuticals: Pharmaceuticals
Veterinary: Veterinary
Automotive: Automotive
Aviation & Aerospace: Aviation & Aerospace
Chemicals: Chemicals
Electrical/Electronic Manufacturing: Electrical/Electronic Manufacturing
Furniture: Furniture
Industrial Automation: Industrial Automation
Machinery: Machinery
Mechanical or Industrial Engineering: Mechanical or Industrial Engineering
Plastics: Plastics
Railroad Manufacture: Railroad Manufacture
Shipbuilding: Shipbuilding
Textiles: Textiles
Broadcast Media: Broadcast Media
Media Production: Media Production
Motion Pictures and Film: Motion Pictures and Film
Music: Music
Newspapers: Newspapers
Online Media: Online Media
Printing: Printing
Publishing: Publishing
Civic & Social Organization: Civic & Social Organization
Libraries: Libraries
Non-Profit Organization Management: Non-Profit Organization Management
Philanthropy: Philanthropy
Political Organization: Political Organization
Religious Institutions: Religious Institutions
Arts and Crafts: Arts and Crafts
Nanotechnology: Nanotechnology
Architecture & Planning: Architecture & Planning
Building Materials: Building Materials
Civil Engineering: Civil Engineering
Commercial Real Estate: Commercial Real Estate
Construction: Construction
Glass, Ceramics & Concrete: Glass, Ceramics & Concrete
Real Estate: Real Estate
Apparel & Fashion: Apparel & Fashion
Cosmetics: Cosmetics
Luxury Goods & Jewelry: Luxury Goods & Jewelry
Retail: Retail
Supermarkets: Supermarkets
Computer & Network Security: Computer & Network Security
Computer Software: Computer Software
Information Technology and Services: Information Technology and Services
Internet: Internet
Telecommunications: Telecommunications
Wireless: Wireless
Airlines/Aviation: Airlines/Aviation
Logistics and Supply Chain: Logistics and Supply Chain
Maritime: Maritime
Package/Freight Delivery: Package/Freight Delivery
Packaging and Containers: Packaging and Containers
Warehousing: Warehousing
Transportation/Trucking/Railroad: Transportation/Trucking/Railroad
Entertainment: Entertainment
Fine Art: Fine Art
Gambling & Casinos: Gambling & Casinos
Hospitality: Hospitality
Leisure, Travel & Tourism: Leisure, Travel & Tourism
Performing Arts: Performing Arts
Photography: Photography
Recreational Facilities and Services: Recreational Facilities and Services
Restaurants: Restaurants
Sporting Goods: Sporting Goods
Sports: Sports
Wine and Spirits: Wine and Spirits
Wholesale: Wholesale
example: Animation
description: Subindustries of the lead company to exclude in the search
include:
type: array
items:
type: string
enum:
- Dairy
- Farming
- Fishery
- Food & Beverages
- Food Production
- Mining & Metals
- Paper & Forest Products
- Ranching
- Tobacco
- Alternative Dispute Resolution
- Animation
- Business Supplies and Equipment
- Design
- Environmental Services
- Events Services
- Executive Office
- Facilities Services
- Fund-Raising
- Graphic Design
- Human Resources
- Import and Export
- Individual & Family Services
- Information Services
- International Trade and Development
- Law Practice
- Legal Services
- Management Consulting
- Market Research
- Marketing and Advertising
- Outsourcing/Offshoring
- Professional Training & Coaching
- Program Development
- Public Relations and Communications
- Public Safety
- Security and Investigations
- Staffing and Recruiting
- Think Tanks
- Translation and Localization
- Writing and Editing
- Computer Games
- Computer Hardware
- Computer Networking
- Consumer Electronics
- Semiconductors
- Consumer Goods
- Consumer Services
- Education Management
- E-Learning
- Higher Education
- Primary/Secondary Education
- Research
- Oil & Energy
- Renewables & Environment
- Utilities
- Accounting
- Banking
- Capital Markets
- Financial Services
- Insurance
- Investment Banking
- Investment Management
- Venture Capital & Private Equity
- Defense & Space
- Government Administration
- Government Relations
- International Affairs
- Judiciary
- Law Enforcement
- Legislative Office
- Military
- Museums and Institutions
- Public Policy
- Alternative Medicine
- Biotechnology
- Health, Wellness and Fitness
- Hospital & Health Care
- Medical Devices
- Medical Practice
- Mental Health Care
- Pharmaceuticals
- Veterinary
- Automotive
- Aviation & Aerospace
- Chemicals
- Electrical/Electronic Manufacturing
- Furniture
- Industrial Automation
- Machinery
- Mechanical or Industrial Engineering
- Plastics
- Railroad Manufacture
- Shipbuilding
- Textiles
- Broadcast Media
- Media Production
- Motion Pictures and Film
- Music
- Newspapers
- Online Media
- Printing
- Publishing
- Civic & Social Organization
- Libraries
- Non-Profit Organization Management
- Philanthropy
- Political Organization
- Religious Institutions
- Arts and Crafts
- Nanotechnology
- Architecture & Planning
- Building Materials
- Civil Engineering
- Commercial Real Estate
- Construction
- Glass, Ceramics & Concrete
- Real Estate
- Apparel & Fashion
- Cosmetics
- Luxury Goods & Jewelry
- Retail
- Supermarkets
- Computer & Network Security
- Computer Software
- Information Technology and Services
- Internet
- Telecommunications
- Wireless
- Airlines/Aviation
- Logistics and Supply Chain
- Maritime
- Package/Freight Delivery
- Packaging and Containers
- Warehousing
- Transportation/Trucking/Railroad
- Entertainment
- Fine Art
- Gambling & Casinos
- Hospitality
- Leisure, Travel & Tourism
- Performing Arts
- Photography
- Recreational Facilities and Services
- Restaurants
- Sporting Goods
- Sports
- Wine and Spirits
- Wholesale
x-enumDescriptions:
Dairy: Dairy
Farming: Farming
Fishery: Fishery
Food & Beverages: Food & Beverages
Food Production: Food Production
Mining & Metals: Mining & Metals
Paper & Forest Products: Paper & Forest Products
Ranching: Ranching
Tobacco: Tobacco
Alternative Dispute Resolution: Alternative Dispute Resolution
Animation: Animation
Business Supplies and Equipment: Business Supplies and Equipment
Design: Design
Environmental Services: Environmental Services
Events Services: Events Services
Executive Office: Executive Office
Facilities Services: Facilities Services
Fund-Raising: Fund-Raising
Graphic Design: Graphic Design
Human Resources: Human Resources
Import and Export: Import and Export
Individual & Family Services: Individual & Family Services
Information Services: Information Services
International Trade and Development: International Trade and Development
Law Practice: Law Practice
Legal Services: Legal Services
Management Consulting: Management Consulting
Market Research: Market Research
Marketing and Advertising: Marketing and Advertising
Outsourcing/Offshoring: Outsourcing/Offshoring
Professional Training & Coaching: Professional Training & Coaching
Program Development: Program Development
Public Relations and Communications: Public Relations and Communications
Public Safety: Public Safety
Security and Investigations: Security and Investigations
Staffing and Recruiting: Staffing and Recruiting
Think Tanks: Think Tanks
Translation and Localization: Translation and Localization
Writing and Editing: Writing and Editing
Computer Games: Computer Games
Computer Hardware: Computer Hardware
Computer Networking: Computer Networking
Consumer Electronics: Consumer Electronics
Semiconductors: Semiconductors
Consumer Goods: Consumer Goods
Consumer Services: Consumer Services
Education Management: Education Management
E-Learning: E-Learning
Higher Education: Higher Education
Primary/Secondary Education: Primary/Secondary Education
Research: Research
Oil & Energy: Oil & Energy
Renewables & Environment: Renewables & Environment
Utilities: Utilities
Accounting: Accounting
Banking: Banking
Capital Markets: Capital Markets
Financial Services: Financial Services
Insurance: Insurance
Investment Banking: Investment Banking
Investment Management: Investment Management
Venture Capital & Private Equity: Venture Capital & Private Equity
Defense & Space: Defense & Space
Government Administration: Government Administration
Government Relations: Government Relations
International Affairs: International Affairs
Judiciary: Judiciary
Law Enforcement: Law Enforcement
Legislative Office: Legislative Office
Military: Military
Museums and Institutions: Museums and Institutions
Public Policy: Public Policy
Alternative Medicine: Alternative Medicine
Biotechnology: Biotechnology
Health, Wellness and Fitness: Health, Wellness and Fitness
Hospital & Health Care: Hospital & Health Care
Medical Devices: Medical Devices
Medical Practice: Medical Practice
Mental Health Care: Mental Health Care
Pharmaceuticals: Pharmaceuticals
Veterinary: Veterinary
Automotive: Automotive
Aviation & Aerospace: Aviation & Aerospace
Chemicals: Chemicals
Electrical/Electronic Manufacturing: Electrical/Electronic Manufacturing
Furniture: Furniture
Industrial Automation: Industrial Automation
Machinery: Machinery
Mechanical or Industrial Engineering: Mechanical or Industrial Engineering
Plastics: Plastics
Railroad Manufacture: Railroad Manufacture
Shipbuilding: Shipbuilding
Textiles: Textiles
Broadcast Media: Broadcast Media
Media Production: Media Production
Motion Pictures and Film: Motion Pictures and Film
Music: Music
Newspapers: Newspapers
Online Media: Online Media
Printing: Printing
Publishing: Publishing
Civic & Social Organization: Civic & Social Organization
Libraries: Libraries
Non-Profit Organization Management: Non-Profit Organization Management
Philanthropy: Philanthropy
Political Organization: Political Organization
Religious Institutions: Religious Institutions
Arts and Crafts: Arts and Crafts
Nanotechnology: Nanotechnology
Architecture & Planning: Architecture & Planning
Building Materials: Building Materials
Civil Engineering: Civil Engineering
Commercial Real Estate: Commercial Real Estate
Construction: Construction
Glass, Ceramics & Concrete: Glass, Ceramics & Concrete
Real Estate: Real Estate
Apparel & Fashion: Apparel & Fashion
Cosmetics: Cosmetics
Luxury Goods & Jewelry: Luxury Goods & Jewelry
Retail: Retail
Supermarkets: Supermarkets
Computer & Network Security: Computer & Network Security
Computer Software: Computer Software
Information Technology and Services: Information Technology and Services
Internet: Internet
Telecommunications: Telecommunications
Wireless: Wireless
Airlines/Aviation: Airlines/Aviation
Logistics and Supply Chain: Logistics and Supply Chain
Maritime: Maritime
Package/Freight Delivery: Package/Freight Delivery
Packaging and Containers: Packaging and Containers
Warehousing: Warehousing
Transportation/Trucking/Railroad: Transportation/Trucking/Railroad
Entertainment: Entertainment
Fine Art: Fine Art
Gambling & Casinos: Gambling & Casinos
Hospitality: Hospitality
Leisure, Travel & Tourism: Leisure, Travel & Tourism
Performing Arts: Performing Arts
Photography: Photography
Recreational Facilities and Services: Recreational Facilities and Services
Restaurants: Restaurants
Sporting Goods: Sporting Goods
Sports: Sports
Wine and Spirits: Wine and Spirits
Wholesale: Wholesale
example: Animation
description: Subindustries of the lead company to include in the search
domains:
type: array
items:
type: string
description: Domains of the lead company to include in the search
example: google.com
website_visitors:
type: boolean
description: Restrict the search to companies that visited your website (requires a connected Website
Visitors pixel). Combines with `domains` as an intersection.
example: true
funding_type:
type: array
items:
type: string
enum:
- angel
- seed
- pre_seed
- series_a
- pre_series_a
- series_b
- pre_series_b
- series_c
- pre_series_c
- series_d
- pre_series_d
- series_e
- pre_series_e
- series_f
- pre_series_f
- series_g
- pre_series_g
- series_h
- pre_series_h
- series_i
- pre_series_i
- series_j
- pre_series_j
x-enumDescriptions:
angel: Angel
seed: Seed
pre_seed: Pre-Seed
series_a: Series A
series_b: Series B
series_c: Series C
series_d: Series D
series_e: Series E
series_f: Series F
series_g: Series G
series_h: Series H
series_i: Series I
series_j: Series J
pre_series_a: Pre-Series A
pre_series_b: Pre-Series B
pre_series_c: Pre-Series C
pre_series_d: Pre-Series D
pre_series_e: Pre-Series E
pre_series_f: Pre-Series F
pre_series_g: Pre-Series G
pre_series_h: Pre-Series H
pre_series_i: Pre-Series I
pre_series_j: Pre-Series J
description: Funding types of the lead company to include in the search
example: angel
signals:
type: array
items:
oneOf:
- type: string
examples:
- job_change
- traffic_surge
- linkedin_post_company
description: Signal category name. Uses the default 30-day freshness window.
example: job_change
- type: object
required:
- key
properties:
key:
type: string
examples:
- job_change
- traffic_surge
description: Signal category to filter by.
example: job_change
period_days:
type: number
examples:
- 7
- 30
- 90
description: Freshness window in days. Only leads whose most recent signal of this category
is within this window are returned. Defaults to 30 if omitted.
example: 7
keywords:
oneOf:
- type: array
items:
type: string
examples:
- artificial intelligence
- hiring plans
example: artificial intelligence
description: Legacy flat list of keyword tokens (OR-matched across every keyword index field
for the category).
- type: object
description: 'Per-field map of keyword tokens. Each property name is a keyword index field;
each value is the list of tokens to OR-match within that field. Records must have at least
one matching token in EACH selected field — fields act as additional filters. Example: `{
"objection_type": ["security"], "buying_stage": ["consideration"] }`.'
additionalProperties:
type: array
items:
type: string
examples:
- security
- consideration
example: security
additionalProperties: false
description: Filter leads by Autobound signal categories (e.g. job changes, traffic surges, LinkedIn
activity). Leads matching ANY of the specified signals within the per-signal freshness window will
be returned.
skip_owned_leads:
type: boolean
description: If set, the lead finder will skip leads that are owned by the user
example: true
show_one_lead_per_company:
type: boolean
description: If set, the lead finder will show only one lead per company
example: true
location_mode:
type: string
enum:
- contact
- company
description: Whether to filter/display by contact location or company HQ location. Defaults to contact.
example: contact
search_name:
type: string
description: Name of the search
example: Tech CEOs in San Francisco
work_email_enrichment:
type: boolean
description: Enable work email enrichment
example: true
fully_enriched_profile:
type: boolean
description: Enable LinkedIn profile enrichment
example: true
custom_flow:
type: array
description: Ordered list of providers for waterfall enrichment (enabled platforms only)
items:
type: string
example: instantly
example:
- instantly
- findymail
- leadmagic
- icypeas
- prospeo
- wiza
- contactout
signal_enrichment:
type: array
description: Signal categories to enrich from Autobound data. Accepts the legacy plain-string form and the
richer per-signal form with a freshness window and optional keyword filter. The worker fetches matching
signal records for the lead and writes the raw data into the lead payload under the signal_category key.
items:
oneOf:
- type: string
examples:
- job_change
- traffic_surge
- linkedin_post_contact
description: Signal category name. Uses the default 30-day freshness window and no keyword filter.
example: job_change
- type: object
required:
- key
properties:
key:
type: string
examples:
- linkedin_post_contact
- job_change
description: Signal category to enrich.
example: linkedin_post_contact
period_days:
type: number
examples:
- 7
- 30
- 90
description: Freshness window in days. Only signals whose most recent record is within this window
are attached to the lead payload. Defaults to 30 if omitted.
example: 7
keywords:
oneOf:
- type: array
items:
type: string
examples:
- artificial intelligence
- hiring plans
example: artificial intelligence
description: Legacy flat list (OR-matched across every keyword index field for the category).
- type: object
description: 'Per-field map: each property is a keyword index field; tokens within a field are
OR-matched, and fields act as additional filters (records must hit at least one token per selected
field). Example: `{ "objection_type": ["security"], "buying_stage": ["consideration"] }`.'
additionalProperties:
type: array
items:
type: string
examples:
- security
- consideration
example: security
additionalProperties: false
resource_id:
type: string
format: uuid
description: ID of the list to target. A list is automatically created if not provided.
example: 01234567-89ab-cdef-0123-456789abcdef
auto_update:
type: boolean
description: Whether to auto-update new leads
example: true
skip_rows_without_email:
type: boolean
description: Whether to skip leads without email
example: true
list_name:
type: string
description: Name for new list if resource_id not provided
example: My List
limit:
type: number
minimum: 1
maximum: 1000000
description: Maximum number of leads to import
example: 100
ai_enrichment:
type: object
description: AI enrichment configuration. Keys are output column names, values are enrichment details.
additionalProperties: true
required: true
responses:
'200':
description: Default Response
content:
application/json:
schema:
type: object
properties:
id:
type: string
description: Unique identifier for the enrichment
example: 01234567-89ab-cdef-0123-456789abcdef
organization_id:
type: string
format: uuid
description: Organization ID that created this enrichment
example: 01234567-89ab-cdef-0123-456789abcdef
resource_id:
type: string
format: uuid
description: ID of the list
example: 01234567-89ab-cdef-0123-456789abcdef
resource_type:
type: number
description: 'Resource type: 1=Campaign, 2=List (default)'
enum:
- 1
- 2
example: 2
search_filters:
type: object
description: The search filters used for enrichment
additionalProperties: true
limit:
type: number
description: Maximum number of leads to import
example: 100
list_name:
type: string
description: Name of the list created
example: Supersearch List (22 Sep 2025)
custom_flow:
type: array
description: Custom flow to apply to the enrichment
items:
type: string
example: instantly
background_job_id:
type:
- 'null'
- string
description: Identifier of an associated background import job, when one is spawned. `null` when no background
job was created for this request.
example: 6a12f7882bf0c40356be515c
live_list_workflow_id:
type:
- 'null'
- string
description: 'Deprecated: always `null`. Live lists are retired — use a Lead Finder Agent instead.'
example: 01234567-89ab-cdef-0123-456789abcdef
required:
- id
- organization_id
- resource_id
'401':
description: This request is unauthorized (either the Authorization header is missing or invalid, or the API key
has been revoked)
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 401
examples:
- 401
example: 401
error:
type: string
enum:
- Unauthorized
examples:
- Unauthorized
example: Unauthorized
message:
type: string
examples:
- Missing Authorization header
example: Missing Authorization header
required:
- statusCode
- error
- message
'402':
description: This request cannot be fulfilled because the workspace does not have an active paid plan
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 402
examples:
- 402
example: 402
error:
type: string
enum:
- Payment Required
examples:
- Payment Required
example: Payment Required
message:
type: string
examples:
- Workspace does not have an active paid plan
example: Workspace does not have an active paid plan
required:
- statusCode
- error
- message
'404':
description: Default Response
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 404
example: 404
error:
type: string
example: COMPANY_LIST_NOT_FOUND
message:
type: string
example: Company list not found
errorCode:
type: string
enum:
- COMPANY_LIST_NOT_FOUND
example: COMPANY_LIST_NOT_FOUND
required:
- statusCode
- error
- message
'409':
description: Default Response
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 409
example: 409
error:
type: string
example: COMPANY_LIST_NOT_READY
message:
type: string
example: Company list is not ready
errorCode:
type: string
enum:
- COMPANY_LIST_NOT_READY
example: COMPANY_LIST_NOT_READY
required:
- statusCode
- error
- message
'429':
description: You have exceeded the rate limit. Please check the rate limit docs for more information.
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 429
examples:
- 429
example: 429
error:
type: string
enum:
- Too Many Requests
examples:
- Too Many Requests
example: Too Many Requests
message:
type: string
examples:
- Rate limit exceeded
example: Rate limit exceeded
required:
- statusCode
- error
- message
/api/v2/supersearch-enrichment/run:
post:
operationId: runEnrichment
summary: Run enrichment for resource
tags:
- SuperSearchEnrichment
description: Run all enrichments associated with a resource for a list of leads or for all the leads that haven't been
enriched yet
requestBody:
content:
application/json:
schema:
type: object
properties:
resource_id:
type: string
format: uuid
description: The ID of the resource (list or campaign) to run enrichments for
example: 123e4567-e89b-12d3-a456-426614174000
lead_ids:
type: array
items:
type: string
example: 123e4567-e89b-12d3-a456-426614174000
maxItems: 10000
minItems: 1
description: List of lead IDs to enrich (optional)
limit:
type: integer
description: If set, only the first N leads will be enriched
example: 10
column_name:
type: string
description: AI enrichment column to run.
example: email_subject
overwrite:
type: boolean
description: (AI re-run parameter) If true, run even if column has value. If false (default), only process
empty/null columns. Requires column_name.
example: false
starting_row:
type: integer
description: (AI re-run parameter) Starting lead position (inclusive, 1-indexed). Defaults to 1 if not provided.
Requires column_name.
minimum: 1
example: 1
count:
type: integer
description: (AI re-run parameter) How many leads to process. If not provided, processes all remaining leads
from starting_row to the end. Requires column_name.
minimum: 1
example: 10
filters:
type: array
description: Conditional formula filters to apply when processing leads. Only leads matching all filters
will be enriched.
items:
type: object
properties:
column_name:
type: string
description: Lead column key to filter on
example: companyName
type:
type: number
description: Backend filter type enum value
example: 1
value:
type: array
description: Filter values (empty array for is-empty / is-not-empty style filters)
items:
type: string
example: Acme
example:
- Acme
required:
- column_name
- type
- value
additionalProperties: false
example:
- column_name: companyName
type: 1
value:
- Acme
required:
- resource_id
required: true
responses:
'200':
description: Default Response
content:
application/json:
schema:
type: object
properties:
id:
type: string
description: The ID of the enrichment
example: 123e4567-e89b-12d3-a456-426614174000
resource_id:
type: string
description: The ID of the resource (list or campaign) to enrich
example: 123e4567-e89b-12d3-a456-426614174000
enrichment_payload:
type: object
description: The payload of the enrichment
'400':
description: Default Response
content:
application/json:
schema:
type: object
properties:
message:
type: string
example: All the leads have already been enriched
'401':
description: This request is unauthorized (either the Authorization header is missing or invalid, or the API key
has been revoked)
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 401
examples:
- 401
example: 401
error:
type: string
enum:
- Unauthorized
examples:
- Unauthorized
example: Unauthorized
message:
type: string
examples:
- Missing Authorization header
example: Missing Authorization header
required:
- statusCode
- error
- message
'402':
description: This request cannot be fulfilled because the workspace does not have an active paid plan
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 402
examples:
- 402
example: 402
error:
type: string
enum:
- Payment Required
examples:
- Payment Required
example: Payment Required
message:
type: string
examples:
- Workspace does not have an active paid plan
example: Workspace does not have an active paid plan
required:
- statusCode
- error
- message
'404':
description: The requested resource was not found
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 404
examples:
- 404
example: 404
error:
type: string
enum:
- Not Found
examples:
- Not Found
example: Not Found
message:
type: string
examples:
- Resource not found
example: Resource not found
required:
- statusCode
- error
- message
'429':
description: You have exceeded the rate limit. Please check the rate limit docs for more information.
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 429
examples:
- 429
example: 429
error:
type: string
enum:
- Too Many Requests
examples:
- Too Many Requests
example: Too Many Requests
message:
type: string
examples:
- Rate limit exceeded
example: Rate limit exceeded
required:
- statusCode
- error
- message
/api/v2/supersearch-enrichment/count-leads-from-supersearch:
post:
operationId: countLeadsFromSupersearch
summary: Count leads from supersearch
tags:
- SuperSearchEnrichment
description: 'Count the number of leads matching a SuperSearch query without enriching them. This endpoint is intended
to estimate lead availability before running an enrichment.
Requires one of the following scopes: `supersearch_enrichments:read`, `supersearch_enrichments:all`, `all:read`, `all:all`'
requestBody:
content:
application/json:
schema:
type: object
required:
- search_filters
properties:
search_filters:
type: object
description: Search filters to find leads.
properties:
company_list_id:
type: string
pattern: ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$
description: Company-list audience boundary. Only completed lists owned by the caller workspace are
accepted.
example: 018f23b7-92bb-7c64-a3d4-1ba53b8ad971
locations:
oneOf:
- type: array
description: 'Legacy format: Array of locations to include in the search. For new integrations, use
the object format with include/exclude properties.'
items:
oneOf:
- type: object
properties:
place_id:
type: string
examples:
- ChIJN1t_t3uEmsRUso9K6W47H4
description: Google Maps Place ID of the lead's location (https://developers.google.com/maps/documentation/places/web-service/place-id)
example: ChIJN1t_t3uEmsRUso9K6W47H4
label:
type: string
examples:
- San Francisco, CA, USA
description: Label of the lead's location
example: San Francisco, CA, USA
required:
- place_id
additionalProperties: false
- type: object
properties:
city:
type: string
examples:
- San Francisco
description: City of the lead
example: San Francisco
state:
type: string
examples:
- California
description: State of the lead
example: California
country:
type: string
examples:
- United States
description: Country of the lead
example: United States
anyOf:
- required:
- city
- required:
- state
- required:
- country
additionalProperties: false
- type: object
description: Locations to include or exclude in the search
properties:
include:
type: array
items:
oneOf:
- type: object
properties:
place_id:
type: string
examples:
- ChIJN1t_t3uEmsRUso9K6W47H4
description: Google Maps Place ID of the lead's location (https://developers.google.com/maps/documentation/places/web-service/place-id)
example: ChIJN1t_t3uEmsRUso9K6W47H4
label:
type: string
examples:
- San Francisco, CA, USA
description: Label of the lead's location
example: San Francisco, CA, USA
required:
- place_id
additionalProperties: false
- type: object
properties:
city:
type: string
examples:
- San Francisco
description: City of the lead
example: San Francisco
state:
type: string
examples:
- California
description: State of the lead
example: California
country:
type: string
examples:
- United States
description: Country of the lead
example: United States
anyOf:
- required:
- city
- required:
- state
- required:
- country
additionalProperties: false
description: Locations to include in the search
exclude:
type: array
items:
oneOf:
- type: object
properties:
place_id:
type: string
examples:
- ChIJN1t_t3uEmsRUso9K6W47H4
description: Google Maps Place ID of the lead's location (https://developers.google.com/maps/documentation/places/web-service/place-id)
example: ChIJN1t_t3uEmsRUso9K6W47H4
label:
type: string
examples:
- San Francisco, CA, USA
description: Label of the lead's location
example: San Francisco, CA, USA
required:
- place_id
additionalProperties: false
- type: object
properties:
city:
type: string
examples:
- San Francisco
description: City of the lead
example: San Francisco
state:
type: string
examples:
- California
description: State of the lead
example: California
country:
type: string
examples:
- United States
description: Country of the lead
example: United States
anyOf:
- required:
- city
- required:
- state
- required:
- country
additionalProperties: false
description: Locations to exclude from the search
department:
type: array
items:
type: string
enum:
- Engineering
- Finance & Administration
- Human Resources
- IT & IS
- Marketing
- Operations
- Sales
- Support
- Other
x-enumDescriptions:
Engineering: Engineering
Finance & Administration: Finance & Administration
Human Resources: Human Resources
IT & IS: IT & IS
Marketing: Marketing
Operations: Operations
Sales: Sales
Support: Support
Other: Other
description: Department of the lead
example: Engineering
level:
type: array
items:
type: string
enum:
- C-Level
- VP-Level
- Director-Level
- Manager-Level
- Staff
- Entry level
- Mid-Senior level
- Director
- Associate
- Owner
- Executive
- Manager
- Senior
- Chief X Officer (CxO)
- Internship
- Vice President (VP)
- Unpaid / Internship
- Partner
x-enumDescriptions:
C-Level: C-Level
VP-Level: VP-Level
Director-Level: Director-Level
Manager-Level: Manager-Level
Staff: Staff
Entry level: Entry level
Mid-Senior level: Mid-Senior level
Director: Director
Associate: Associate
Owner: Owner
Executive: Executive
Manager: Manager
Senior: Senior
Chief X Officer (CxO): Chief X Officer (CxO)
Internship: Internship
Vice President (VP): Vice President (VP)
Unpaid / Internship: Unpaid / Internship
Partner: Partner
description: Level of the lead
example: Entry level
employeeCount:
type: array
description: Employee count filters.
items:
oneOf:
- type: string
enum:
- 0 - 25
- 25 - 100
- 100 - 250
- 250 - 1000
- 1K - 10K
- 10K - 50K
- 50K - 100K
- '> 100K'
description: 'Legacy format: Predefined employee count range'
x-enumDescriptions:
0 - 25: 0 - 25
25 - 100: 25 - 100
100 - 250: 100 - 250
250 - 1000: 250 - 1000
1K - 10K: 1K - 10K
10K - 50K: 10K - 50K
50K - 100K: 50K - 100K
'> 100K': '> 100K'
examples:
- 0 - 25
example: 0 - 25
- type: object
description: Employee count greater-than-or-equal range
properties:
op:
type: string
enum:
- gte
description: Greater than or equal operation.
examples:
- gte
example: gte
min:
type: number
description: Minimum employee count (inclusive).
examples:
- 50
example: 50
max:
type:
- number
- 'null'
description: Deprecated opposite bound accepted for compatibility and removed during normalization.
required:
- op
- min
additionalProperties: false
- type: object
description: Employee count less-than-or-equal range
properties:
op:
type: string
enum:
- lte
description: Less than or equal operation.
examples:
- lte
example: lte
max:
type: number
description: Maximum employee count (inclusive).
examples:
- 200
example: 200
min:
type:
- number
- 'null'
description: Deprecated opposite bound accepted for compatibility and removed during normalization.
required:
- op
- max
additionalProperties: false
- type: object
description: Custom employee count bounded range
properties:
op:
type: string
enum:
- between
description: Between operation.
examples:
- between
example: between
min:
type:
- number
- 'null'
description: Minimum employee count (inclusive).
examples:
- 50
example: 50
max:
type:
- number
- 'null'
description: Maximum employee count (inclusive).
examples:
- 200
example: 200
required:
- op
anyOf:
- required:
- min
properties:
min:
type: number
- required:
- max
properties:
max:
type: number
additionalProperties: false
- type: object
description: Preset employee count bounded range
properties:
op:
type: string
enum:
- preset_between
description: Preset between operation.
examples:
- preset_between
example: preset_between
min:
type:
- number
- 'null'
description: Minimum employee count (inclusive).
examples:
- 50
example: 50
max:
type:
- number
- 'null'
description: Maximum employee count (inclusive).
examples:
- 200
example: 200
required:
- op
anyOf:
- required:
- min
properties:
min:
type: number
- required:
- max
properties:
max:
type: number
additionalProperties: false
revenue:
type: array
items:
type: string
enum:
- $0 - 1M
- $1 - 10M
- $10 - 50M
- $50 - 100M
- $100 - 250M
- $250 - 500M
- $500M - 1B
- '> $1B'
x-enumDescriptions:
$0 - 1M: $0 - 1M
$1 - 10M: $1M - 10M
$10 - 50M: $10M - 50M
$50 - 100M: $50M - 100M
$100 - 250M: $100M - 250M
$250 - 500M: $250M - 500M
$500M - 1B: $500M - 1B
'> $1B': '> $1B'
description: Revenue of the lead company
example: $1 - 10M
news:
type: array
items:
type: string
enum:
- launches
- expands_offices_to
- hires
- partners_with
- leaves
- receives_financing
- recognized_as
- closes_offices_in
- is_developing
- has_issues_with
- promotes
- opens_new_location
- receives_award
- acquires
- invests_into_assets
- signs_new_client
- increases_headcount_by
- retires_from
- invests_into
- integrates_with
- expands_facilities
- goes_public
- sells_assets_to
- identified_as_competitor_of
- decreases_headcount_by
- expands_offices_in
- files_suit_against
- merges_with
x-enumDescriptions:
launches: Launches
expands_offices_to: Expands Offices To
hires: Hires
partners_with: Partners With
leaves: Leaves
receives_financing: Receives Financing
recognized_as: Recognized As
closes_offices_in: Closes Offices In
is_developing: Is Developing
has_issues_with: Has Issues With
promotes: Promotes
opens_new_location: Opens New Location
receives_award: Receives Award
acquires: Acquires
invests_into_assets: Invests Into Assets
signs_new_client: Signs New Client
increases_headcount_by: Increases Headcount By
retires_from: Retires From
invests_into: Invests Into
integrates_with: Integrates With
expands_facilities: Expands Facilities
goes_public: Goes Public
sells_assets_to: Sells Assets To
identified_as_competitor_of: Identified As Competitor Of
decreases_headcount_by: Decreases Headcount By
expands_offices_in: Expands Offices In
files_suit_against: Files Suit Against
merges_with: Merges With
description: News about the lead company
example: launches
jobListing:
type: array
items:
type: string
example: Software Engineer
description: Canonical filter for companies that are hiring for the specified job titles.
jobListingFilter:
type: array
deprecated: true
items:
type: string
example: Software Engineer
description: Deprecated compatibility key for Job Listing filters. Use `jobListing` instead. If both
keys are present, `jobListing` takes precedence.
title:
type: object
properties:
include:
type: array
items:
type: string
example: CEO
description: Titles of the lead to include in the search
exclude:
type: array
items:
type: string
example: VP
description: Titles of the lead to exclude in the search
name:
type: array
items:
type: string
example: John Doe
description: Names of the lead to include in the search
company_name:
type: object
properties:
include:
type: array
items:
type: string
example: Google
description: Companies of the lead to include in the search
exclude:
type: array
items:
type: string
example: Amazon
description: Companies of the lead to exclude in the search
look_alike:
type: string
description: If set, the lead finder will find companies that are similar to the look-alike domain
example: google.com
lookAlike:
type: string
description: Product-UI alias of `look_alike`; both keys are accepted
example: google.com
lookAlikeMode:
type: string
description: How to interpret the look-alike domain (`targeted` or `broad`). Written by the product
UI.
example: targeted
technologies:
type: array
items:
type: string
example: Salesforce
description: Technologies the lead company uses
fundingType:
type: array
items:
type: string
example: seed
description: Product-UI alias of `funding_type`; both keys are accepted. See `funding_type` for the
canonical values.
locationMode:
type: string
description: Product-UI alias of `location_mode` (`contact` or `company`); both keys are accepted
example: contact
keyword_filter:
type: object
properties:
exclude:
type: string
example: sales
include:
type: string
example: marketing
include_mode:
type: string
enum:
- ANY
- ALL
example: ANY
industry:
type: object
properties:
exclude:
type: array
items:
type: string
enum:
- Agriculture & Mining
- Business Services
- Computers & Electronics
- Consumer Services
- Education
- Energy & Utilities
- Financial Services
- Government
- Healthcare, Pharmaceuticals, & Biotech
- Manufacturing
- Media & Entertainment
- Non-Profit
- Other
- Real Estate & Construction
- Retail
- Software & Internet
- Telecommunications
- Transportation & Storage
- Travel, Recreation, and Leisure
- Wholesale & Distribution
x-enumDescriptions:
Agriculture & Mining: Agriculture & Mining
Business Services: Business Services
Financial Services: Financial Services
Computers & Electronics: Computers & Electronics
Consumer Services: Consumer Services
Education: Education
Energy & Utilities: Energy & Utilities
Healthcare, Pharmaceuticals, & Biotech: Healthcare, Pharmaceuticals, & Biotech
Manufacturing: Manufacturing
Media & Entertainment: Media & Entertainment
Non-Profit: Non-Profit
Other: Other
Real Estate & Construction: Real Estate & Construction
Retail: Retail
Software & Internet: Software & Internet
Telecommunications: Telecommunications
Transportation & Storage: Transportation & Storage
Travel, Recreation, and Leisure: Travel, Recreation, and Leisure
Wholesale & Distribution: Wholesale & Distribution
Government: Government
example: Agriculture & Mining
description: Industries of the lead company to exclude in the search
include:
type: array
items:
type: string
enum:
- Agriculture & Mining
- Business Services
- Computers & Electronics
- Consumer Services
- Education
- Energy & Utilities
- Financial Services
- Government
- Healthcare, Pharmaceuticals, & Biotech
- Manufacturing
- Media & Entertainment
- Non-Profit
- Other
- Real Estate & Construction
- Retail
- Software & Internet
- Telecommunications
- Transportation & Storage
- Travel, Recreation, and Leisure
- Wholesale & Distribution
x-enumDescriptions:
Agriculture & Mining: Agriculture & Mining
Business Services: Business Services
Financial Services: Financial Services
Computers & Electronics: Computers & Electronics
Consumer Services: Consumer Services
Education: Education
Energy & Utilities: Energy & Utilities
Healthcare, Pharmaceuticals, & Biotech: Healthcare, Pharmaceuticals, & Biotech
Manufacturing: Manufacturing
Media & Entertainment: Media & Entertainment
Non-Profit: Non-Profit
Other: Other
Real Estate & Construction: Real Estate & Construction
Retail: Retail
Software & Internet: Software & Internet
Telecommunications: Telecommunications
Transportation & Storage: Transportation & Storage
Travel, Recreation, and Leisure: Travel, Recreation, and Leisure
Wholesale & Distribution: Wholesale & Distribution
Government: Government
description: Industries of the lead company to include in the search
example: Agriculture & Mining
subIndustry:
type: object
properties:
exclude:
type: array
items:
type: string
enum:
- Dairy
- Farming
- Fishery
- Food & Beverages
- Food Production
- Mining & Metals
- Paper & Forest Products
- Ranching
- Tobacco
- Alternative Dispute Resolution
- Animation
- Business Supplies and Equipment
- Design
- Environmental Services
- Events Services
- Executive Office
- Facilities Services
- Fund-Raising
- Graphic Design
- Human Resources
- Import and Export
- Individual & Family Services
- Information Services
- International Trade and Development
- Law Practice
- Legal Services
- Management Consulting
- Market Research
- Marketing and Advertising
- Outsourcing/Offshoring
- Professional Training & Coaching
- Program Development
- Public Relations and Communications
- Public Safety
- Security and Investigations
- Staffing and Recruiting
- Think Tanks
- Translation and Localization
- Writing and Editing
- Computer Games
- Computer Hardware
- Computer Networking
- Consumer Electronics
- Semiconductors
- Consumer Goods
- Consumer Services
- Education Management
- E-Learning
- Higher Education
- Primary/Secondary Education
- Research
- Oil & Energy
- Renewables & Environment
- Utilities
- Accounting
- Banking
- Capital Markets
- Financial Services
- Insurance
- Investment Banking
- Investment Management
- Venture Capital & Private Equity
- Defense & Space
- Government Administration
- Government Relations
- International Affairs
- Judiciary
- Law Enforcement
- Legislative Office
- Military
- Museums and Institutions
- Public Policy
- Alternative Medicine
- Biotechnology
- Health, Wellness and Fitness
- Hospital & Health Care
- Medical Devices
- Medical Practice
- Mental Health Care
- Pharmaceuticals
- Veterinary
- Automotive
- Aviation & Aerospace
- Chemicals
- Electrical/Electronic Manufacturing
- Furniture
- Industrial Automation
- Machinery
- Mechanical or Industrial Engineering
- Plastics
- Railroad Manufacture
- Shipbuilding
- Textiles
- Broadcast Media
- Media Production
- Motion Pictures and Film
- Music
- Newspapers
- Online Media
- Printing
- Publishing
- Civic & Social Organization
- Libraries
- Non-Profit Organization Management
- Philanthropy
- Political Organization
- Religious Institutions
- Arts and Crafts
- Nanotechnology
- Architecture & Planning
- Building Materials
- Civil Engineering
- Commercial Real Estate
- Construction
- Glass, Ceramics & Concrete
- Real Estate
- Apparel & Fashion
- Cosmetics
- Luxury Goods & Jewelry
- Retail
- Supermarkets
- Computer & Network Security
- Computer Software
- Information Technology and Services
- Internet
- Telecommunications
- Wireless
- Airlines/Aviation
- Logistics and Supply Chain
- Maritime
- Package/Freight Delivery
- Packaging and Containers
- Warehousing
- Transportation/Trucking/Railroad
- Entertainment
- Fine Art
- Gambling & Casinos
- Hospitality
- Leisure, Travel & Tourism
- Performing Arts
- Photography
- Recreational Facilities and Services
- Restaurants
- Sporting Goods
- Sports
- Wine and Spirits
- Wholesale
x-enumDescriptions:
Dairy: Dairy
Farming: Farming
Fishery: Fishery
Food & Beverages: Food & Beverages
Food Production: Food Production
Mining & Metals: Mining & Metals
Paper & Forest Products: Paper & Forest Products
Ranching: Ranching
Tobacco: Tobacco
Alternative Dispute Resolution: Alternative Dispute Resolution
Animation: Animation
Business Supplies and Equipment: Business Supplies and Equipment
Design: Design
Environmental Services: Environmental Services
Events Services: Events Services
Executive Office: Executive Office
Facilities Services: Facilities Services
Fund-Raising: Fund-Raising
Graphic Design: Graphic Design
Human Resources: Human Resources
Import and Export: Import and Export
Individual & Family Services: Individual & Family Services
Information Services: Information Services
International Trade and Development: International Trade and Development
Law Practice: Law Practice
Legal Services: Legal Services
Management Consulting: Management Consulting
Market Research: Market Research
Marketing and Advertising: Marketing and Advertising
Outsourcing/Offshoring: Outsourcing/Offshoring
Professional Training & Coaching: Professional Training & Coaching
Program Development: Program Development
Public Relations and Communications: Public Relations and Communications
Public Safety: Public Safety
Security and Investigations: Security and Investigations
Staffing and Recruiting: Staffing and Recruiting
Think Tanks: Think Tanks
Translation and Localization: Translation and Localization
Writing and Editing: Writing and Editing
Computer Games: Computer Games
Computer Hardware: Computer Hardware
Computer Networking: Computer Networking
Consumer Electronics: Consumer Electronics
Semiconductors: Semiconductors
Consumer Goods: Consumer Goods
Consumer Services: Consumer Services
Education Management: Education Management
E-Learning: E-Learning
Higher Education: Higher Education
Primary/Secondary Education: Primary/Secondary Education
Research: Research
Oil & Energy: Oil & Energy
Renewables & Environment: Renewables & Environment
Utilities: Utilities
Accounting: Accounting
Banking: Banking
Capital Markets: Capital Markets
Financial Services: Financial Services
Insurance: Insurance
Investment Banking: Investment Banking
Investment Management: Investment Management
Venture Capital & Private Equity: Venture Capital & Private Equity
Defense & Space: Defense & Space
Government Administration: Government Administration
Government Relations: Government Relations
International Affairs: International Affairs
Judiciary: Judiciary
Law Enforcement: Law Enforcement
Legislative Office: Legislative Office
Military: Military
Museums and Institutions: Museums and Institutions
Public Policy: Public Policy
Alternative Medicine: Alternative Medicine
Biotechnology: Biotechnology
Health, Wellness and Fitness: Health, Wellness and Fitness
Hospital & Health Care: Hospital & Health Care
Medical Devices: Medical Devices
Medical Practice: Medical Practice
Mental Health Care: Mental Health Care
Pharmaceuticals: Pharmaceuticals
Veterinary: Veterinary
Automotive: Automotive
Aviation & Aerospace: Aviation & Aerospace
Chemicals: Chemicals
Electrical/Electronic Manufacturing: Electrical/Electronic Manufacturing
Furniture: Furniture
Industrial Automation: Industrial Automation
Machinery: Machinery
Mechanical or Industrial Engineering: Mechanical or Industrial Engineering
Plastics: Plastics
Railroad Manufacture: Railroad Manufacture
Shipbuilding: Shipbuilding
Textiles: Textiles
Broadcast Media: Broadcast Media
Media Production: Media Production
Motion Pictures and Film: Motion Pictures and Film
Music: Music
Newspapers: Newspapers
Online Media: Online Media
Printing: Printing
Publishing: Publishing
Civic & Social Organization: Civic & Social Organization
Libraries: Libraries
Non-Profit Organization Management: Non-Profit Organization Management
Philanthropy: Philanthropy
Political Organization: Political Organization
Religious Institutions: Religious Institutions
Arts and Crafts: Arts and Crafts
Nanotechnology: Nanotechnology
Architecture & Planning: Architecture & Planning
Building Materials: Building Materials
Civil Engineering: Civil Engineering
Commercial Real Estate: Commercial Real Estate
Construction: Construction
Glass, Ceramics & Concrete: Glass, Ceramics & Concrete
Real Estate: Real Estate
Apparel & Fashion: Apparel & Fashion
Cosmetics: Cosmetics
Luxury Goods & Jewelry: Luxury Goods & Jewelry
Retail: Retail
Supermarkets: Supermarkets
Computer & Network Security: Computer & Network Security
Computer Software: Computer Software
Information Technology and Services: Information Technology and Services
Internet: Internet
Telecommunications: Telecommunications
Wireless: Wireless
Airlines/Aviation: Airlines/Aviation
Logistics and Supply Chain: Logistics and Supply Chain
Maritime: Maritime
Package/Freight Delivery: Package/Freight Delivery
Packaging and Containers: Packaging and Containers
Warehousing: Warehousing
Transportation/Trucking/Railroad: Transportation/Trucking/Railroad
Entertainment: Entertainment
Fine Art: Fine Art
Gambling & Casinos: Gambling & Casinos
Hospitality: Hospitality
Leisure, Travel & Tourism: Leisure, Travel & Tourism
Performing Arts: Performing Arts
Photography: Photography
Recreational Facilities and Services: Recreational Facilities and Services
Restaurants: Restaurants
Sporting Goods: Sporting Goods
Sports: Sports
Wine and Spirits: Wine and Spirits
Wholesale: Wholesale
example: Animation
description: Subindustries of the lead company to exclude in the search
include:
type: array
items:
type: string
enum:
- Dairy
- Farming
- Fishery
- Food & Beverages
- Food Production
- Mining & Metals
- Paper & Forest Products
- Ranching
- Tobacco
- Alternative Dispute Resolution
- Animation
- Business Supplies and Equipment
- Design
- Environmental Services
- Events Services
- Executive Office
- Facilities Services
- Fund-Raising
- Graphic Design
- Human Resources
- Import and Export
- Individual & Family Services
- Information Services
- International Trade and Development
- Law Practice
- Legal Services
- Management Consulting
- Market Research
- Marketing and Advertising
- Outsourcing/Offshoring
- Professional Training & Coaching
- Program Development
- Public Relations and Communications
- Public Safety
- Security and Investigations
- Staffing and Recruiting
- Think Tanks
- Translation and Localization
- Writing and Editing
- Computer Games
- Computer Hardware
- Computer Networking
- Consumer Electronics
- Semiconductors
- Consumer Goods
- Consumer Services
- Education Management
- E-Learning
- Higher Education
- Primary/Secondary Education
- Research
- Oil & Energy
- Renewables & Environment
- Utilities
- Accounting
- Banking
- Capital Markets
- Financial Services
- Insurance
- Investment Banking
- Investment Management
- Venture Capital & Private Equity
- Defense & Space
- Government Administration
- Government Relations
- International Affairs
- Judiciary
- Law Enforcement
- Legislative Office
- Military
- Museums and Institutions
- Public Policy
- Alternative Medicine
- Biotechnology
- Health, Wellness and Fitness
- Hospital & Health Care
- Medical Devices
- Medical Practice
- Mental Health Care
- Pharmaceuticals
- Veterinary
- Automotive
- Aviation & Aerospace
- Chemicals
- Electrical/Electronic Manufacturing
- Furniture
- Industrial Automation
- Machinery
- Mechanical or Industrial Engineering
- Plastics
- Railroad Manufacture
- Shipbuilding
- Textiles
- Broadcast Media
- Media Production
- Motion Pictures and Film
- Music
- Newspapers
- Online Media
- Printing
- Publishing
- Civic & Social Organization
- Libraries
- Non-Profit Organization Management
- Philanthropy
- Political Organization
- Religious Institutions
- Arts and Crafts
- Nanotechnology
- Architecture & Planning
- Building Materials
- Civil Engineering
- Commercial Real Estate
- Construction
- Glass, Ceramics & Concrete
- Real Estate
- Apparel & Fashion
- Cosmetics
- Luxury Goods & Jewelry
- Retail
- Supermarkets
- Computer & Network Security
- Computer Software
- Information Technology and Services
- Internet
- Telecommunications
- Wireless
- Airlines/Aviation
- Logistics and Supply Chain
- Maritime
- Package/Freight Delivery
- Packaging and Containers
- Warehousing
- Transportation/Trucking/Railroad
- Entertainment
- Fine Art
- Gambling & Casinos
- Hospitality
- Leisure, Travel & Tourism
- Performing Arts
- Photography
- Recreational Facilities and Services
- Restaurants
- Sporting Goods
- Sports
- Wine and Spirits
- Wholesale
x-enumDescriptions:
Dairy: Dairy
Farming: Farming
Fishery: Fishery
Food & Beverages: Food & Beverages
Food Production: Food Production
Mining & Metals: Mining & Metals
Paper & Forest Products: Paper & Forest Products
Ranching: Ranching
Tobacco: Tobacco
Alternative Dispute Resolution: Alternative Dispute Resolution
Animation: Animation
Business Supplies and Equipment: Business Supplies and Equipment
Design: Design
Environmental Services: Environmental Services
Events Services: Events Services
Executive Office: Executive Office
Facilities Services: Facilities Services
Fund-Raising: Fund-Raising
Graphic Design: Graphic Design
Human Resources: Human Resources
Import and Export: Import and Export
Individual & Family Services: Individual & Family Services
Information Services: Information Services
International Trade and Development: International Trade and Development
Law Practice: Law Practice
Legal Services: Legal Services
Management Consulting: Management Consulting
Market Research: Market Research
Marketing and Advertising: Marketing and Advertising
Outsourcing/Offshoring: Outsourcing/Offshoring
Professional Training & Coaching: Professional Training & Coaching
Program Development: Program Development
Public Relations and Communications: Public Relations and Communications
Public Safety: Public Safety
Security and Investigations: Security and Investigations
Staffing and Recruiting: Staffing and Recruiting
Think Tanks: Think Tanks
Translation and Localization: Translation and Localization
Writing and Editing: Writing and Editing
Computer Games: Computer Games
Computer Hardware: Computer Hardware
Computer Networking: Computer Networking
Consumer Electronics: Consumer Electronics
Semiconductors: Semiconductors
Consumer Goods: Consumer Goods
Consumer Services: Consumer Services
Education Management: Education Management
E-Learning: E-Learning
Higher Education: Higher Education
Primary/Secondary Education: Primary/Secondary Education
Research: Research
Oil & Energy: Oil & Energy
Renewables & Environment: Renewables & Environment
Utilities: Utilities
Accounting: Accounting
Banking: Banking
Capital Markets: Capital Markets
Financial Services: Financial Services
Insurance: Insurance
Investment Banking: Investment Banking
Investment Management: Investment Management
Venture Capital & Private Equity: Venture Capital & Private Equity
Defense & Space: Defense & Space
Government Administration: Government Administration
Government Relations: Government Relations
International Affairs: International Affairs
Judiciary: Judiciary
Law Enforcement: Law Enforcement
Legislative Office: Legislative Office
Military: Military
Museums and Institutions: Museums and Institutions
Public Policy: Public Policy
Alternative Medicine: Alternative Medicine
Biotechnology: Biotechnology
Health, Wellness and Fitness: Health, Wellness and Fitness
Hospital & Health Care: Hospital & Health Care
Medical Devices: Medical Devices
Medical Practice: Medical Practice
Mental Health Care: Mental Health Care
Pharmaceuticals: Pharmaceuticals
Veterinary: Veterinary
Automotive: Automotive
Aviation & Aerospace: Aviation & Aerospace
Chemicals: Chemicals
Electrical/Electronic Manufacturing: Electrical/Electronic Manufacturing
Furniture: Furniture
Industrial Automation: Industrial Automation
Machinery: Machinery
Mechanical or Industrial Engineering: Mechanical or Industrial Engineering
Plastics: Plastics
Railroad Manufacture: Railroad Manufacture
Shipbuilding: Shipbuilding
Textiles: Textiles
Broadcast Media: Broadcast Media
Media Production: Media Production
Motion Pictures and Film: Motion Pictures and Film
Music: Music
Newspapers: Newspapers
Online Media: Online Media
Printing: Printing
Publishing: Publishing
Civic & Social Organization: Civic & Social Organization
Libraries: Libraries
Non-Profit Organization Management: Non-Profit Organization Management
Philanthropy: Philanthropy
Political Organization: Political Organization
Religious Institutions: Religious Institutions
Arts and Crafts: Arts and Crafts
Nanotechnology: Nanotechnology
Architecture & Planning: Architecture & Planning
Building Materials: Building Materials
Civil Engineering: Civil Engineering
Commercial Real Estate: Commercial Real Estate
Construction: Construction
Glass, Ceramics & Concrete: Glass, Ceramics & Concrete
Real Estate: Real Estate
Apparel & Fashion: Apparel & Fashion
Cosmetics: Cosmetics
Luxury Goods & Jewelry: Luxury Goods & Jewelry
Retail: Retail
Supermarkets: Supermarkets
Computer & Network Security: Computer & Network Security
Computer Software: Computer Software
Information Technology and Services: Information Technology and Services
Internet: Internet
Telecommunications: Telecommunications
Wireless: Wireless
Airlines/Aviation: Airlines/Aviation
Logistics and Supply Chain: Logistics and Supply Chain
Maritime: Maritime
Package/Freight Delivery: Package/Freight Delivery
Packaging and Containers: Packaging and Containers
Warehousing: Warehousing
Transportation/Trucking/Railroad: Transportation/Trucking/Railroad
Entertainment: Entertainment
Fine Art: Fine Art
Gambling & Casinos: Gambling & Casinos
Hospitality: Hospitality
Leisure, Travel & Tourism: Leisure, Travel & Tourism
Performing Arts: Performing Arts
Photography: Photography
Recreational Facilities and Services: Recreational Facilities and Services
Restaurants: Restaurants
Sporting Goods: Sporting Goods
Sports: Sports
Wine and Spirits: Wine and Spirits
Wholesale: Wholesale
example: Animation
description: Subindustries of the lead company to include in the search
domains:
type: array
items:
type: string
description: Domains of the lead company to include in the search
example: google.com
website_visitors:
type: boolean
description: Restrict the search to companies that visited your website (requires a connected Website
Visitors pixel). Combines with `domains` as an intersection.
example: true
funding_type:
type: array
items:
type: string
enum:
- angel
- seed
- pre_seed
- series_a
- pre_series_a
- series_b
- pre_series_b
- series_c
- pre_series_c
- series_d
- pre_series_d
- series_e
- pre_series_e
- series_f
- pre_series_f
- series_g
- pre_series_g
- series_h
- pre_series_h
- series_i
- pre_series_i
- series_j
- pre_series_j
x-enumDescriptions:
angel: Angel
seed: Seed
pre_seed: Pre-Seed
series_a: Series A
series_b: Series B
series_c: Series C
series_d: Series D
series_e: Series E
series_f: Series F
series_g: Series G
series_h: Series H
series_i: Series I
series_j: Series J
pre_series_a: Pre-Series A
pre_series_b: Pre-Series B
pre_series_c: Pre-Series C
pre_series_d: Pre-Series D
pre_series_e: Pre-Series E
pre_series_f: Pre-Series F
pre_series_g: Pre-Series G
pre_series_h: Pre-Series H
pre_series_i: Pre-Series I
pre_series_j: Pre-Series J
description: Funding types of the lead company to include in the search
example: angel
signals:
type: array
items:
oneOf:
- type: string
examples:
- job_change
- traffic_surge
- linkedin_post_company
description: Signal category name. Uses the default 30-day freshness window.
example: job_change
- type: object
required:
- key
properties:
key:
type: string
examples:
- job_change
- traffic_surge
description: Signal category to filter by.
example: job_change
period_days:
type: number
examples:
- 7
- 30
- 90
description: Freshness window in days. Only leads whose most recent signal of this category
is within this window are returned. Defaults to 30 if omitted.
example: 7
keywords:
oneOf:
- type: array
items:
type: string
examples:
- artificial intelligence
- hiring plans
example: artificial intelligence
description: Legacy flat list of keyword tokens (OR-matched across every keyword index field
for the category).
- type: object
description: 'Per-field map of keyword tokens. Each property name is a keyword index field;
each value is the list of tokens to OR-match within that field. Records must have at least
one matching token in EACH selected field — fields act as additional filters. Example: `{
"objection_type": ["security"], "buying_stage": ["consideration"] }`.'
additionalProperties:
type: array
items:
type: string
examples:
- security
- consideration
example: security
additionalProperties: false
description: Filter leads by Autobound signal categories (e.g. job changes, traffic surges, LinkedIn
activity). Leads matching ANY of the specified signals within the per-signal freshness window will
be returned.
skip_owned_leads:
type: boolean
description: If set, the lead finder will skip leads that are owned by the user
example: true
show_one_lead_per_company:
type: boolean
description: If set, the lead finder will show only one lead per company
example: true
location_mode:
type: string
enum:
- contact
- company
description: Whether to filter/display by contact location or company HQ location. Defaults to contact.
example: contact
skip_owned_leads:
type: boolean
description: Skip leads that belong to the current workspace.
example: true
show_one_lead_per_company:
type: boolean
description: Return only one lead per company.
example: true
required: true
responses:
'200':
description: Default Response
content:
application/json:
schema:
type: object
properties:
number_of_leads:
type: number
description: Number of leads found for this specific search. A value of 0 indicates that no leads match
the criteria. Values greater than 1,000,000 are returned as 1,000,000.
example: 100
'401':
description: This request is unauthorized (either the Authorization header is missing or invalid, or the API key
has been revoked)
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 401
examples:
- 401
example: 401
error:
type: string
enum:
- Unauthorized
examples:
- Unauthorized
example: Unauthorized
message:
type: string
examples:
- Missing Authorization header
example: Missing Authorization header
required:
- statusCode
- error
- message
'402':
description: Default Response
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 402
example: 402
error:
type: string
enum:
- Rate limit exceeded
example: Rate limit exceeded
message:
type: string
enum:
- Rate limit exceeded
example: Rate limit exceeded
required:
- statusCode
- error
- message
'404':
description: Default Response
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 404
example: 404
error:
type: string
example: COMPANY_LIST_NOT_FOUND
message:
type: string
example: Company list not found
errorCode:
type: string
enum:
- COMPANY_LIST_NOT_FOUND
example: COMPANY_LIST_NOT_FOUND
required:
- statusCode
- error
- message
'409':
description: Default Response
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 409
example: 409
error:
type: string
example: COMPANY_LIST_NOT_READY
message:
type: string
example: Company list is not ready
errorCode:
type: string
enum:
- COMPANY_LIST_NOT_READY
example: COMPANY_LIST_NOT_READY
required:
- statusCode
- error
- message
'429':
description: Default Response
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 429
example: 429
error:
type: string
enum:
- Rate limit exceeded
example: Rate limit exceeded
message:
type: string
enum:
- Rate limit exceeded
example: Rate limit exceeded
required:
- statusCode
- error
- message
/api/v2/supersearch-enrichment/preview-leads-from-supersearch:
post:
operationId: previewLeadsFromSupersearch
summary: Preview leads from supersearch
tags:
- SuperSearchEnrichment
description: 'Preview the leads matching a SuperSearch query without enriching them
Requires one of the following scopes: `supersearch_enrichments:read`, `supersearch_enrichments:all`, `all:read`, `all:all`'
requestBody:
content:
application/json:
schema:
type: object
required:
- search_filters
properties:
search_filters:
type: object
description: Search filters to find leads.
properties:
company_list_id:
type: string
pattern: ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$
description: Company-list audience boundary. Only completed lists owned by the caller workspace are
accepted.
example: 018f23b7-92bb-7c64-a3d4-1ba53b8ad971
locations:
oneOf:
- type: array
description: 'Legacy format: Array of locations to include in the search. For new integrations, use
the object format with include/exclude properties.'
items:
oneOf:
- type: object
properties:
place_id:
type: string
examples:
- ChIJN1t_t3uEmsRUso9K6W47H4
description: Google Maps Place ID of the lead's location (https://developers.google.com/maps/documentation/places/web-service/place-id)
example: ChIJN1t_t3uEmsRUso9K6W47H4
label:
type: string
examples:
- San Francisco, CA, USA
description: Label of the lead's location
example: San Francisco, CA, USA
required:
- place_id
additionalProperties: false
- type: object
properties:
city:
type: string
examples:
- San Francisco
description: City of the lead
example: San Francisco
state:
type: string
examples:
- California
description: State of the lead
example: California
country:
type: string
examples:
- United States
description: Country of the lead
example: United States
anyOf:
- required:
- city
- required:
- state
- required:
- country
additionalProperties: false
- type: object
description: Locations to include or exclude in the search
properties:
include:
type: array
items:
oneOf:
- type: object
properties:
place_id:
type: string
examples:
- ChIJN1t_t3uEmsRUso9K6W47H4
description: Google Maps Place ID of the lead's location (https://developers.google.com/maps/documentation/places/web-service/place-id)
example: ChIJN1t_t3uEmsRUso9K6W47H4
label:
type: string
examples:
- San Francisco, CA, USA
description: Label of the lead's location
example: San Francisco, CA, USA
required:
- place_id
additionalProperties: false
- type: object
properties:
city:
type: string
examples:
- San Francisco
description: City of the lead
example: San Francisco
state:
type: string
examples:
- California
description: State of the lead
example: California
country:
type: string
examples:
- United States
description: Country of the lead
example: United States
anyOf:
- required:
- city
- required:
- state
- required:
- country
additionalProperties: false
description: Locations to include in the search
exclude:
type: array
items:
oneOf:
- type: object
properties:
place_id:
type: string
examples:
- ChIJN1t_t3uEmsRUso9K6W47H4
description: Google Maps Place ID of the lead's location (https://developers.google.com/maps/documentation/places/web-service/place-id)
example: ChIJN1t_t3uEmsRUso9K6W47H4
label:
type: string
examples:
- San Francisco, CA, USA
description: Label of the lead's location
example: San Francisco, CA, USA
required:
- place_id
additionalProperties: false
- type: object
properties:
city:
type: string
examples:
- San Francisco
description: City of the lead
example: San Francisco
state:
type: string
examples:
- California
description: State of the lead
example: California
country:
type: string
examples:
- United States
description: Country of the lead
example: United States
anyOf:
- required:
- city
- required:
- state
- required:
- country
additionalProperties: false
description: Locations to exclude from the search
department:
type: array
items:
type: string
enum:
- Engineering
- Finance & Administration
- Human Resources
- IT & IS
- Marketing
- Operations
- Sales
- Support
- Other
x-enumDescriptions:
Engineering: Engineering
Finance & Administration: Finance & Administration
Human Resources: Human Resources
IT & IS: IT & IS
Marketing: Marketing
Operations: Operations
Sales: Sales
Support: Support
Other: Other
description: Department of the lead
example: Engineering
level:
type: array
items:
type: string
enum:
- C-Level
- VP-Level
- Director-Level
- Manager-Level
- Staff
- Entry level
- Mid-Senior level
- Director
- Associate
- Owner
- Executive
- Manager
- Senior
- Chief X Officer (CxO)
- Internship
- Vice President (VP)
- Unpaid / Internship
- Partner
x-enumDescriptions:
C-Level: C-Level
VP-Level: VP-Level
Director-Level: Director-Level
Manager-Level: Manager-Level
Staff: Staff
Entry level: Entry level
Mid-Senior level: Mid-Senior level
Director: Director
Associate: Associate
Owner: Owner
Executive: Executive
Manager: Manager
Senior: Senior
Chief X Officer (CxO): Chief X Officer (CxO)
Internship: Internship
Vice President (VP): Vice President (VP)
Unpaid / Internship: Unpaid / Internship
Partner: Partner
description: Level of the lead
example: Entry level
employeeCount:
type: array
description: Employee count filters.
items:
oneOf:
- type: string
enum:
- 0 - 25
- 25 - 100
- 100 - 250
- 250 - 1000
- 1K - 10K
- 10K - 50K
- 50K - 100K
- '> 100K'
description: 'Legacy format: Predefined employee count range'
x-enumDescriptions:
0 - 25: 0 - 25
25 - 100: 25 - 100
100 - 250: 100 - 250
250 - 1000: 250 - 1000
1K - 10K: 1K - 10K
10K - 50K: 10K - 50K
50K - 100K: 50K - 100K
'> 100K': '> 100K'
examples:
- 0 - 25
example: 0 - 25
- type: object
description: Employee count greater-than-or-equal range
properties:
op:
type: string
enum:
- gte
description: Greater than or equal operation.
examples:
- gte
example: gte
min:
type: number
description: Minimum employee count (inclusive).
examples:
- 50
example: 50
max:
type:
- number
- 'null'
description: Deprecated opposite bound accepted for compatibility and removed during normalization.
required:
- op
- min
additionalProperties: false
- type: object
description: Employee count less-than-or-equal range
properties:
op:
type: string
enum:
- lte
description: Less than or equal operation.
examples:
- lte
example: lte
max:
type: number
description: Maximum employee count (inclusive).
examples:
- 200
example: 200
min:
type:
- number
- 'null'
description: Deprecated opposite bound accepted for compatibility and removed during normalization.
required:
- op
- max
additionalProperties: false
- type: object
description: Custom employee count bounded range
properties:
op:
type: string
enum:
- between
description: Between operation.
examples:
- between
example: between
min:
type:
- number
- 'null'
description: Minimum employee count (inclusive).
examples:
- 50
example: 50
max:
type:
- number
- 'null'
description: Maximum employee count (inclusive).
examples:
- 200
example: 200
required:
- op
anyOf:
- required:
- min
properties:
min:
type: number
- required:
- max
properties:
max:
type: number
additionalProperties: false
- type: object
description: Preset employee count bounded range
properties:
op:
type: string
enum:
- preset_between
description: Preset between operation.
examples:
- preset_between
example: preset_between
min:
type:
- number
- 'null'
description: Minimum employee count (inclusive).
examples:
- 50
example: 50
max:
type:
- number
- 'null'
description: Maximum employee count (inclusive).
examples:
- 200
example: 200
required:
- op
anyOf:
- required:
- min
properties:
min:
type: number
- required:
- max
properties:
max:
type: number
additionalProperties: false
revenue:
type: array
items:
type: string
enum:
- $0 - 1M
- $1 - 10M
- $10 - 50M
- $50 - 100M
- $100 - 250M
- $250 - 500M
- $500M - 1B
- '> $1B'
x-enumDescriptions:
$0 - 1M: $0 - 1M
$1 - 10M: $1M - 10M
$10 - 50M: $10M - 50M
$50 - 100M: $50M - 100M
$100 - 250M: $100M - 250M
$250 - 500M: $250M - 500M
$500M - 1B: $500M - 1B
'> $1B': '> $1B'
description: Revenue of the lead company
example: $1 - 10M
news:
type: array
items:
type: string
enum:
- launches
- expands_offices_to
- hires
- partners_with
- leaves
- receives_financing
- recognized_as
- closes_offices_in
- is_developing
- has_issues_with
- promotes
- opens_new_location
- receives_award
- acquires
- invests_into_assets
- signs_new_client
- increases_headcount_by
- retires_from
- invests_into
- integrates_with
- expands_facilities
- goes_public
- sells_assets_to
- identified_as_competitor_of
- decreases_headcount_by
- expands_offices_in
- files_suit_against
- merges_with
x-enumDescriptions:
launches: Launches
expands_offices_to: Expands Offices To
hires: Hires
partners_with: Partners With
leaves: Leaves
receives_financing: Receives Financing
recognized_as: Recognized As
closes_offices_in: Closes Offices In
is_developing: Is Developing
has_issues_with: Has Issues With
promotes: Promotes
opens_new_location: Opens New Location
receives_award: Receives Award
acquires: Acquires
invests_into_assets: Invests Into Assets
signs_new_client: Signs New Client
increases_headcount_by: Increases Headcount By
retires_from: Retires From
invests_into: Invests Into
integrates_with: Integrates With
expands_facilities: Expands Facilities
goes_public: Goes Public
sells_assets_to: Sells Assets To
identified_as_competitor_of: Identified As Competitor Of
decreases_headcount_by: Decreases Headcount By
expands_offices_in: Expands Offices In
files_suit_against: Files Suit Against
merges_with: Merges With
description: News about the lead company
example: launches
jobListing:
type: array
items:
type: string
example: Software Engineer
description: Canonical filter for companies that are hiring for the specified job titles.
jobListingFilter:
type: array
deprecated: true
items:
type: string
example: Software Engineer
description: Deprecated compatibility key for Job Listing filters. Use `jobListing` instead. If both
keys are present, `jobListing` takes precedence.
title:
type: object
properties:
include:
type: array
items:
type: string
example: CEO
description: Titles of the lead to include in the search
exclude:
type: array
items:
type: string
example: VP
description: Titles of the lead to exclude in the search
name:
type: array
items:
type: string
example: John Doe
description: Names of the lead to include in the search
company_name:
type: object
properties:
include:
type: array
items:
type: string
example: Google
description: Companies of the lead to include in the search
exclude:
type: array
items:
type: string
example: Amazon
description: Companies of the lead to exclude in the search
look_alike:
type: string
description: If set, the lead finder will find companies that are similar to the look-alike domain
example: google.com
lookAlike:
type: string
description: Product-UI alias of `look_alike`; both keys are accepted
example: google.com
lookAlikeMode:
type: string
description: How to interpret the look-alike domain (`targeted` or `broad`). Written by the product
UI.
example: targeted
technologies:
type: array
items:
type: string
example: Salesforce
description: Technologies the lead company uses
fundingType:
type: array
items:
type: string
example: seed
description: Product-UI alias of `funding_type`; both keys are accepted. See `funding_type` for the
canonical values.
locationMode:
type: string
description: Product-UI alias of `location_mode` (`contact` or `company`); both keys are accepted
example: contact
keyword_filter:
type: object
properties:
exclude:
type: string
example: sales
include:
type: string
example: marketing
include_mode:
type: string
enum:
- ANY
- ALL
example: ANY
industry:
type: object
properties:
exclude:
type: array
items:
type: string
enum:
- Agriculture & Mining
- Business Services
- Computers & Electronics
- Consumer Services
- Education
- Energy & Utilities
- Financial Services
- Government
- Healthcare, Pharmaceuticals, & Biotech
- Manufacturing
- Media & Entertainment
- Non-Profit
- Other
- Real Estate & Construction
- Retail
- Software & Internet
- Telecommunications
- Transportation & Storage
- Travel, Recreation, and Leisure
- Wholesale & Distribution
x-enumDescriptions:
Agriculture & Mining: Agriculture & Mining
Business Services: Business Services
Financial Services: Financial Services
Computers & Electronics: Computers & Electronics
Consumer Services: Consumer Services
Education: Education
Energy & Utilities: Energy & Utilities
Healthcare, Pharmaceuticals, & Biotech: Healthcare, Pharmaceuticals, & Biotech
Manufacturing: Manufacturing
Media & Entertainment: Media & Entertainment
Non-Profit: Non-Profit
Other: Other
Real Estate & Construction: Real Estate & Construction
Retail: Retail
Software & Internet: Software & Internet
Telecommunications: Telecommunications
Transportation & Storage: Transportation & Storage
Travel, Recreation, and Leisure: Travel, Recreation, and Leisure
Wholesale & Distribution: Wholesale & Distribution
Government: Government
example: Agriculture & Mining
description: Industries of the lead company to exclude in the search
include:
type: array
items:
type: string
enum:
- Agriculture & Mining
- Business Services
- Computers & Electronics
- Consumer Services
- Education
- Energy & Utilities
- Financial Services
- Government
- Healthcare, Pharmaceuticals, & Biotech
- Manufacturing
- Media & Entertainment
- Non-Profit
- Other
- Real Estate & Construction
- Retail
- Software & Internet
- Telecommunications
- Transportation & Storage
- Travel, Recreation, and Leisure
- Wholesale & Distribution
x-enumDescriptions:
Agriculture & Mining: Agriculture & Mining
Business Services: Business Services
Financial Services: Financial Services
Computers & Electronics: Computers & Electronics
Consumer Services: Consumer Services
Education: Education
Energy & Utilities: Energy & Utilities
Healthcare, Pharmaceuticals, & Biotech: Healthcare, Pharmaceuticals, & Biotech
Manufacturing: Manufacturing
Media & Entertainment: Media & Entertainment
Non-Profit: Non-Profit
Other: Other
Real Estate & Construction: Real Estate & Construction
Retail: Retail
Software & Internet: Software & Internet
Telecommunications: Telecommunications
Transportation & Storage: Transportation & Storage
Travel, Recreation, and Leisure: Travel, Recreation, and Leisure
Wholesale & Distribution: Wholesale & Distribution
Government: Government
description: Industries of the lead company to include in the search
example: Agriculture & Mining
subIndustry:
type: object
properties:
exclude:
type: array
items:
type: string
enum:
- Dairy
- Farming
- Fishery
- Food & Beverages
- Food Production
- Mining & Metals
- Paper & Forest Products
- Ranching
- Tobacco
- Alternative Dispute Resolution
- Animation
- Business Supplies and Equipment
- Design
- Environmental Services
- Events Services
- Executive Office
- Facilities Services
- Fund-Raising
- Graphic Design
- Human Resources
- Import and Export
- Individual & Family Services
- Information Services
- International Trade and Development
- Law Practice
- Legal Services
- Management Consulting
- Market Research
- Marketing and Advertising
- Outsourcing/Offshoring
- Professional Training & Coaching
- Program Development
- Public Relations and Communications
- Public Safety
- Security and Investigations
- Staffing and Recruiting
- Think Tanks
- Translation and Localization
- Writing and Editing
- Computer Games
- Computer Hardware
- Computer Networking
- Consumer Electronics
- Semiconductors
- Consumer Goods
- Consumer Services
- Education Management
- E-Learning
- Higher Education
- Primary/Secondary Education
- Research
- Oil & Energy
- Renewables & Environment
- Utilities
- Accounting
- Banking
- Capital Markets
- Financial Services
- Insurance
- Investment Banking
- Investment Management
- Venture Capital & Private Equity
- Defense & Space
- Government Administration
- Government Relations
- International Affairs
- Judiciary
- Law Enforcement
- Legislative Office
- Military
- Museums and Institutions
- Public Policy
- Alternative Medicine
- Biotechnology
- Health, Wellness and Fitness
- Hospital & Health Care
- Medical Devices
- Medical Practice
- Mental Health Care
- Pharmaceuticals
- Veterinary
- Automotive
- Aviation & Aerospace
- Chemicals
- Electrical/Electronic Manufacturing
- Furniture
- Industrial Automation
- Machinery
- Mechanical or Industrial Engineering
- Plastics
- Railroad Manufacture
- Shipbuilding
- Textiles
- Broadcast Media
- Media Production
- Motion Pictures and Film
- Music
- Newspapers
- Online Media
- Printing
- Publishing
- Civic & Social Organization
- Libraries
- Non-Profit Organization Management
- Philanthropy
- Political Organization
- Religious Institutions
- Arts and Crafts
- Nanotechnology
- Architecture & Planning
- Building Materials
- Civil Engineering
- Commercial Real Estate
- Construction
- Glass, Ceramics & Concrete
- Real Estate
- Apparel & Fashion
- Cosmetics
- Luxury Goods & Jewelry
- Retail
- Supermarkets
- Computer & Network Security
- Computer Software
- Information Technology and Services
- Internet
- Telecommunications
- Wireless
- Airlines/Aviation
- Logistics and Supply Chain
- Maritime
- Package/Freight Delivery
- Packaging and Containers
- Warehousing
- Transportation/Trucking/Railroad
- Entertainment
- Fine Art
- Gambling & Casinos
- Hospitality
- Leisure, Travel & Tourism
- Performing Arts
- Photography
- Recreational Facilities and Services
- Restaurants
- Sporting Goods
- Sports
- Wine and Spirits
- Wholesale
x-enumDescriptions:
Dairy: Dairy
Farming: Farming
Fishery: Fishery
Food & Beverages: Food & Beverages
Food Production: Food Production
Mining & Metals: Mining & Metals
Paper & Forest Products: Paper & Forest Products
Ranching: Ranching
Tobacco: Tobacco
Alternative Dispute Resolution: Alternative Dispute Resolution
Animation: Animation
Business Supplies and Equipment: Business Supplies and Equipment
Design: Design
Environmental Services: Environmental Services
Events Services: Events Services
Executive Office: Executive Office
Facilities Services: Facilities Services
Fund-Raising: Fund-Raising
Graphic Design: Graphic Design
Human Resources: Human Resources
Import and Export: Import and Export
Individual & Family Services: Individual & Family Services
Information Services: Information Services
International Trade and Development: International Trade and Development
Law Practice: Law Practice
Legal Services: Legal Services
Management Consulting: Management Consulting
Market Research: Market Research
Marketing and Advertising: Marketing and Advertising
Outsourcing/Offshoring: Outsourcing/Offshoring
Professional Training & Coaching: Professional Training & Coaching
Program Development: Program Development
Public Relations and Communications: Public Relations and Communications
Public Safety: Public Safety
Security and Investigations: Security and Investigations
Staffing and Recruiting: Staffing and Recruiting
Think Tanks: Think Tanks
Translation and Localization: Translation and Localization
Writing and Editing: Writing and Editing
Computer Games: Computer Games
Computer Hardware: Computer Hardware
Computer Networking: Computer Networking
Consumer Electronics: Consumer Electronics
Semiconductors: Semiconductors
Consumer Goods: Consumer Goods
Consumer Services: Consumer Services
Education Management: Education Management
E-Learning: E-Learning
Higher Education: Higher Education
Primary/Secondary Education: Primary/Secondary Education
Research: Research
Oil & Energy: Oil & Energy
Renewables & Environment: Renewables & Environment
Utilities: Utilities
Accounting: Accounting
Banking: Banking
Capital Markets: Capital Markets
Financial Services: Financial Services
Insurance: Insurance
Investment Banking: Investment Banking
Investment Management: Investment Management
Venture Capital & Private Equity: Venture Capital & Private Equity
Defense & Space: Defense & Space
Government Administration: Government Administration
Government Relations: Government Relations
International Affairs: International Affairs
Judiciary: Judiciary
Law Enforcement: Law Enforcement
Legislative Office: Legislative Office
Military: Military
Museums and Institutions: Museums and Institutions
Public Policy: Public Policy
Alternative Medicine: Alternative Medicine
Biotechnology: Biotechnology
Health, Wellness and Fitness: Health, Wellness and Fitness
Hospital & Health Care: Hospital & Health Care
Medical Devices: Medical Devices
Medical Practice: Medical Practice
Mental Health Care: Mental Health Care
Pharmaceuticals: Pharmaceuticals
Veterinary: Veterinary
Automotive: Automotive
Aviation & Aerospace: Aviation & Aerospace
Chemicals: Chemicals
Electrical/Electronic Manufacturing: Electrical/Electronic Manufacturing
Furniture: Furniture
Industrial Automation: Industrial Automation
Machinery: Machinery
Mechanical or Industrial Engineering: Mechanical or Industrial Engineering
Plastics: Plastics
Railroad Manufacture: Railroad Manufacture
Shipbuilding: Shipbuilding
Textiles: Textiles
Broadcast Media: Broadcast Media
Media Production: Media Production
Motion Pictures and Film: Motion Pictures and Film
Music: Music
Newspapers: Newspapers
Online Media: Online Media
Printing: Printing
Publishing: Publishing
Civic & Social Organization: Civic & Social Organization
Libraries: Libraries
Non-Profit Organization Management: Non-Profit Organization Management
Philanthropy: Philanthropy
Political Organization: Political Organization
Religious Institutions: Religious Institutions
Arts and Crafts: Arts and Crafts
Nanotechnology: Nanotechnology
Architecture & Planning: Architecture & Planning
Building Materials: Building Materials
Civil Engineering: Civil Engineering
Commercial Real Estate: Commercial Real Estate
Construction: Construction
Glass, Ceramics & Concrete: Glass, Ceramics & Concrete
Real Estate: Real Estate
Apparel & Fashion: Apparel & Fashion
Cosmetics: Cosmetics
Luxury Goods & Jewelry: Luxury Goods & Jewelry
Retail: Retail
Supermarkets: Supermarkets
Computer & Network Security: Computer & Network Security
Computer Software: Computer Software
Information Technology and Services: Information Technology and Services
Internet: Internet
Telecommunications: Telecommunications
Wireless: Wireless
Airlines/Aviation: Airlines/Aviation
Logistics and Supply Chain: Logistics and Supply Chain
Maritime: Maritime
Package/Freight Delivery: Package/Freight Delivery
Packaging and Containers: Packaging and Containers
Warehousing: Warehousing
Transportation/Trucking/Railroad: Transportation/Trucking/Railroad
Entertainment: Entertainment
Fine Art: Fine Art
Gambling & Casinos: Gambling & Casinos
Hospitality: Hospitality
Leisure, Travel & Tourism: Leisure, Travel & Tourism
Performing Arts: Performing Arts
Photography: Photography
Recreational Facilities and Services: Recreational Facilities and Services
Restaurants: Restaurants
Sporting Goods: Sporting Goods
Sports: Sports
Wine and Spirits: Wine and Spirits
Wholesale: Wholesale
example: Animation
description: Subindustries of the lead company to exclude in the search
include:
type: array
items:
type: string
enum:
- Dairy
- Farming
- Fishery
- Food & Beverages
- Food Production
- Mining & Metals
- Paper & Forest Products
- Ranching
- Tobacco
- Alternative Dispute Resolution
- Animation
- Business Supplies and Equipment
- Design
- Environmental Services
- Events Services
- Executive Office
- Facilities Services
- Fund-Raising
- Graphic Design
- Human Resources
- Import and Export
- Individual & Family Services
- Information Services
- International Trade and Development
- Law Practice
- Legal Services
- Management Consulting
- Market Research
- Marketing and Advertising
- Outsourcing/Offshoring
- Professional Training & Coaching
- Program Development
- Public Relations and Communications
- Public Safety
- Security and Investigations
- Staffing and Recruiting
- Think Tanks
- Translation and Localization
- Writing and Editing
- Computer Games
- Computer Hardware
- Computer Networking
- Consumer Electronics
- Semiconductors
- Consumer Goods
- Consumer Services
- Education Management
- E-Learning
- Higher Education
- Primary/Secondary Education
- Research
- Oil & Energy
- Renewables & Environment
- Utilities
- Accounting
- Banking
- Capital Markets
- Financial Services
- Insurance
- Investment Banking
- Investment Management
- Venture Capital & Private Equity
- Defense & Space
- Government Administration
- Government Relations
- International Affairs
- Judiciary
- Law Enforcement
- Legislative Office
- Military
- Museums and Institutions
- Public Policy
- Alternative Medicine
- Biotechnology
- Health, Wellness and Fitness
- Hospital & Health Care
- Medical Devices
- Medical Practice
- Mental Health Care
- Pharmaceuticals
- Veterinary
- Automotive
- Aviation & Aerospace
- Chemicals
- Electrical/Electronic Manufacturing
- Furniture
- Industrial Automation
- Machinery
- Mechanical or Industrial Engineering
- Plastics
- Railroad Manufacture
- Shipbuilding
- Textiles
- Broadcast Media
- Media Production
- Motion Pictures and Film
- Music
- Newspapers
- Online Media
- Printing
- Publishing
- Civic & Social Organization
- Libraries
- Non-Profit Organization Management
- Philanthropy
- Political Organization
- Religious Institutions
- Arts and Crafts
- Nanotechnology
- Architecture & Planning
- Building Materials
- Civil Engineering
- Commercial Real Estate
- Construction
- Glass, Ceramics & Concrete
- Real Estate
- Apparel & Fashion
- Cosmetics
- Luxury Goods & Jewelry
- Retail
- Supermarkets
- Computer & Network Security
- Computer Software
- Information Technology and Services
- Internet
- Telecommunications
- Wireless
- Airlines/Aviation
- Logistics and Supply Chain
- Maritime
- Package/Freight Delivery
- Packaging and Containers
- Warehousing
- Transportation/Trucking/Railroad
- Entertainment
- Fine Art
- Gambling & Casinos
- Hospitality
- Leisure, Travel & Tourism
- Performing Arts
- Photography
- Recreational Facilities and Services
- Restaurants
- Sporting Goods
- Sports
- Wine and Spirits
- Wholesale
x-enumDescriptions:
Dairy: Dairy
Farming: Farming
Fishery: Fishery
Food & Beverages: Food & Beverages
Food Production: Food Production
Mining & Metals: Mining & Metals
Paper & Forest Products: Paper & Forest Products
Ranching: Ranching
Tobacco: Tobacco
Alternative Dispute Resolution: Alternative Dispute Resolution
Animation: Animation
Business Supplies and Equipment: Business Supplies and Equipment
Design: Design
Environmental Services: Environmental Services
Events Services: Events Services
Executive Office: Executive Office
Facilities Services: Facilities Services
Fund-Raising: Fund-Raising
Graphic Design: Graphic Design
Human Resources: Human Resources
Import and Export: Import and Export
Individual & Family Services: Individual & Family Services
Information Services: Information Services
International Trade and Development: International Trade and Development
Law Practice: Law Practice
Legal Services: Legal Services
Management Consulting: Management Consulting
Market Research: Market Research
Marketing and Advertising: Marketing and Advertising
Outsourcing/Offshoring: Outsourcing/Offshoring
Professional Training & Coaching: Professional Training & Coaching
Program Development: Program Development
Public Relations and Communications: Public Relations and Communications
Public Safety: Public Safety
Security and Investigations: Security and Investigations
Staffing and Recruiting: Staffing and Recruiting
Think Tanks: Think Tanks
Translation and Localization: Translation and Localization
Writing and Editing: Writing and Editing
Computer Games: Computer Games
Computer Hardware: Computer Hardware
Computer Networking: Computer Networking
Consumer Electronics: Consumer Electronics
Semiconductors: Semiconductors
Consumer Goods: Consumer Goods
Consumer Services: Consumer Services
Education Management: Education Management
E-Learning: E-Learning
Higher Education: Higher Education
Primary/Secondary Education: Primary/Secondary Education
Research: Research
Oil & Energy: Oil & Energy
Renewables & Environment: Renewables & Environment
Utilities: Utilities
Accounting: Accounting
Banking: Banking
Capital Markets: Capital Markets
Financial Services: Financial Services
Insurance: Insurance
Investment Banking: Investment Banking
Investment Management: Investment Management
Venture Capital & Private Equity: Venture Capital & Private Equity
Defense & Space: Defense & Space
Government Administration: Government Administration
Government Relations: Government Relations
International Affairs: International Affairs
Judiciary: Judiciary
Law Enforcement: Law Enforcement
Legislative Office: Legislative Office
Military: Military
Museums and Institutions: Museums and Institutions
Public Policy: Public Policy
Alternative Medicine: Alternative Medicine
Biotechnology: Biotechnology
Health, Wellness and Fitness: Health, Wellness and Fitness
Hospital & Health Care: Hospital & Health Care
Medical Devices: Medical Devices
Medical Practice: Medical Practice
Mental Health Care: Mental Health Care
Pharmaceuticals: Pharmaceuticals
Veterinary: Veterinary
Automotive: Automotive
Aviation & Aerospace: Aviation & Aerospace
Chemicals: Chemicals
Electrical/Electronic Manufacturing: Electrical/Electronic Manufacturing
Furniture: Furniture
Industrial Automation: Industrial Automation
Machinery: Machinery
Mechanical or Industrial Engineering: Mechanical or Industrial Engineering
Plastics: Plastics
Railroad Manufacture: Railroad Manufacture
Shipbuilding: Shipbuilding
Textiles: Textiles
Broadcast Media: Broadcast Media
Media Production: Media Production
Motion Pictures and Film: Motion Pictures and Film
Music: Music
Newspapers: Newspapers
Online Media: Online Media
Printing: Printing
Publishing: Publishing
Civic & Social Organization: Civic & Social Organization
Libraries: Libraries
Non-Profit Organization Management: Non-Profit Organization Management
Philanthropy: Philanthropy
Political Organization: Political Organization
Religious Institutions: Religious Institutions
Arts and Crafts: Arts and Crafts
Nanotechnology: Nanotechnology
Architecture & Planning: Architecture & Planning
Building Materials: Building Materials
Civil Engineering: Civil Engineering
Commercial Real Estate: Commercial Real Estate
Construction: Construction
Glass, Ceramics & Concrete: Glass, Ceramics & Concrete
Real Estate: Real Estate
Apparel & Fashion: Apparel & Fashion
Cosmetics: Cosmetics
Luxury Goods & Jewelry: Luxury Goods & Jewelry
Retail: Retail
Supermarkets: Supermarkets
Computer & Network Security: Computer & Network Security
Computer Software: Computer Software
Information Technology and Services: Information Technology and Services
Internet: Internet
Telecommunications: Telecommunications
Wireless: Wireless
Airlines/Aviation: Airlines/Aviation
Logistics and Supply Chain: Logistics and Supply Chain
Maritime: Maritime
Package/Freight Delivery: Package/Freight Delivery
Packaging and Containers: Packaging and Containers
Warehousing: Warehousing
Transportation/Trucking/Railroad: Transportation/Trucking/Railroad
Entertainment: Entertainment
Fine Art: Fine Art
Gambling & Casinos: Gambling & Casinos
Hospitality: Hospitality
Leisure, Travel & Tourism: Leisure, Travel & Tourism
Performing Arts: Performing Arts
Photography: Photography
Recreational Facilities and Services: Recreational Facilities and Services
Restaurants: Restaurants
Sporting Goods: Sporting Goods
Sports: Sports
Wine and Spirits: Wine and Spirits
Wholesale: Wholesale
example: Animation
description: Subindustries of the lead company to include in the search
domains:
type: array
items:
type: string
description: Domains of the lead company to include in the search
example: google.com
website_visitors:
type: boolean
description: Restrict the search to companies that visited your website (requires a connected Website
Visitors pixel). Combines with `domains` as an intersection.
example: true
funding_type:
type: array
items:
type: string
enum:
- angel
- seed
- pre_seed
- series_a
- pre_series_a
- series_b
- pre_series_b
- series_c
- pre_series_c
- series_d
- pre_series_d
- series_e
- pre_series_e
- series_f
- pre_series_f
- series_g
- pre_series_g
- series_h
- pre_series_h
- series_i
- pre_series_i
- series_j
- pre_series_j
x-enumDescriptions:
angel: Angel
seed: Seed
pre_seed: Pre-Seed
series_a: Series A
series_b: Series B
series_c: Series C
series_d: Series D
series_e: Series E
series_f: Series F
series_g: Series G
series_h: Series H
series_i: Series I
series_j: Series J
pre_series_a: Pre-Series A
pre_series_b: Pre-Series B
pre_series_c: Pre-Series C
pre_series_d: Pre-Series D
pre_series_e: Pre-Series E
pre_series_f: Pre-Series F
pre_series_g: Pre-Series G
pre_series_h: Pre-Series H
pre_series_i: Pre-Series I
pre_series_j: Pre-Series J
description: Funding types of the lead company to include in the search
example: angel
signals:
type: array
items:
oneOf:
- type: string
examples:
- job_change
- traffic_surge
- linkedin_post_company
description: Signal category name. Uses the default 30-day freshness window.
example: job_change
- type: object
required:
- key
properties:
key:
type: string
examples:
- job_change
- traffic_surge
description: Signal category to filter by.
example: job_change
period_days:
type: number
examples:
- 7
- 30
- 90
description: Freshness window in days. Only leads whose most recent signal of this category
is within this window are returned. Defaults to 30 if omitted.
example: 7
keywords:
oneOf:
- type: array
items:
type: string
examples:
- artificial intelligence
- hiring plans
example: artificial intelligence
description: Legacy flat list of keyword tokens (OR-matched across every keyword index field
for the category).
- type: object
description: 'Per-field map of keyword tokens. Each property name is a keyword index field;
each value is the list of tokens to OR-match within that field. Records must have at least
one matching token in EACH selected field — fields act as additional filters. Example: `{
"objection_type": ["security"], "buying_stage": ["consideration"] }`.'
additionalProperties:
type: array
items:
type: string
examples:
- security
- consideration
example: security
additionalProperties: false
description: Filter leads by Autobound signal categories (e.g. job changes, traffic surges, LinkedIn
activity). Leads matching ANY of the specified signals within the per-signal freshness window will
be returned.
skip_owned_leads:
type: boolean
description: If set, the lead finder will skip leads that are owned by the user
example: true
show_one_lead_per_company:
type: boolean
description: If set, the lead finder will show only one lead per company
example: true
location_mode:
type: string
enum:
- contact
- company
description: Whether to filter/display by contact location or company HQ location. Defaults to contact.
example: contact
skip_owned_leads:
type: boolean
description: Skip leads that belong to the current workspace
example: true
show_one_lead_per_company:
type: boolean
description: Return only one lead per company
example: true
required: true
responses:
'200':
description: Default Response
content:
application/json:
schema:
type: object
properties:
number_of_leads:
type: number
description: Number of leads found for this specific search. A value of 0 indicates that no leads match
the criteria. Values greater than 1,000,000 are returned as 1,000,000.
example: 100
number_of_redacted_results:
type: number
description: Number of results that were redacted/hidden (for trial users).
example: 0
leads:
type: array
description: The leads matching the search criteria
items:
type: object
properties:
firstName:
type: string
description: The first name of the lead
example: John
lastName:
type: string
description: The last name of the lead
example: Doe
fullName:
type: string
description: The full name of the lead
example: John Doe
jobTitle:
type: string
description: The current job title of the lead
example: Software Engineer
location:
type: string
description: The location of the lead (contact location or company HQ depending on location_mode
filter)
example: San Francisco, California, United States
linkedIn:
type: string
description: LinkedIn profile URL of the lead
example: linkedin.com/in/john-doe
companyName:
type: string
description: The name of the lead’s company
example: Acme Corp
companyLogo:
type: string
description: URL of the company logo
example: https://example.com/logo.png
companyId:
type: string
description: The LinkedIn company ID, used for viewing company details
example: '123456'
isOwned:
type: boolean
description: True when the workspace already owns this lead (previously acquired, e.g. delivered
by Website Visitors) — enriching it will not charge again
example: true
additionalProperties: false
additionalProperties: true
'401':
description: This request is unauthorized (either the Authorization header is missing or invalid, or the API key
has been revoked)
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 401
examples:
- 401
example: 401
error:
type: string
enum:
- Unauthorized
examples:
- Unauthorized
example: Unauthorized
message:
type: string
examples:
- Missing Authorization header
example: Missing Authorization header
required:
- statusCode
- error
- message
'402':
description: Default Response
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 402
example: 402
error:
type: string
enum:
- Rate limit exceeded
example: Rate limit exceeded
message:
type: string
enum:
- Rate limit exceeded
example: Rate limit exceeded
required:
- statusCode
- error
- message
'404':
description: Default Response
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 404
example: 404
error:
type: string
example: COMPANY_LIST_NOT_FOUND
message:
type: string
example: Company list not found
errorCode:
type: string
enum:
- COMPANY_LIST_NOT_FOUND
example: COMPANY_LIST_NOT_FOUND
required:
- statusCode
- error
- message
'409':
description: Default Response
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 409
example: 409
error:
type: string
example: COMPANY_LIST_NOT_READY
message:
type: string
example: Company list is not ready
errorCode:
type: string
enum:
- COMPANY_LIST_NOT_READY
example: COMPANY_LIST_NOT_READY
required:
- statusCode
- error
- message
'429':
description: Default Response
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 429
example: 429
error:
type: string
enum:
- Rate limit exceeded
example: Rate limit exceeded
message:
type: string
enum:
- Rate limit exceeded
example: Rate limit exceeded
required:
- statusCode
- error
- message
/api/v2/supersearch-enrichment/history/{resource_id}:
get:
operationId: getEnrichmentHistory
summary: Get enrichment history
tags:
- SuperSearchEnrichment
description: 'Retrieve the enrichment history for a specific resource
Requires one of the following scopes: `supersearch_enrichments:read`, `supersearch_enrichments:all`, `all:read`, `all:all`'
parameters:
- schema:
type: number
example: 0
example: 0
in: query
name: offset
required: false
- schema:
type: number
example: 10
example: 10
in: query
name: limit
required: false
- schema:
type: string
format: uuid
example: 123e4567-e89b-12d3-a456-426614174000
example: 123e4567-e89b-12d3-a456-426614174000
in: path
name: resource_id
required: true
description: ID of the resource to retrieve
responses:
'200':
description: Default Response
content:
application/json:
schema:
type: array
items:
type: object
additionalProperties: true
'401':
description: This request is unauthorized (either the Authorization header is missing or invalid, or the API key
has been revoked)
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 401
examples:
- 401
example: 401
error:
type: string
enum:
- Unauthorized
examples:
- Unauthorized
example: Unauthorized
message:
type: string
examples:
- Missing Authorization header
example: Missing Authorization header
required:
- statusCode
- error
- message
'402':
description: This request cannot be fulfilled because the workspace does not have an active paid plan
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 402
examples:
- 402
example: 402
error:
type: string
enum:
- Payment Required
examples:
- Payment Required
example: Payment Required
message:
type: string
examples:
- Workspace does not have an active paid plan
example: Workspace does not have an active paid plan
required:
- statusCode
- error
- message
'404':
description: The requested resource was not found
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 404
examples:
- 404
example: 404
error:
type: string
enum:
- Not Found
examples:
- Not Found
example: Not Found
message:
type: string
examples:
- Resource not found
example: Resource not found
required:
- statusCode
- error
- message
'429':
description: You have exceeded the rate limit. Please check the rate limit docs for more information.
content:
application/json:
schema:
type: object
properties:
statusCode:
type: number
enum:
- 429
examples:
- 429
example: 429
error:
type: string
enum:
- Too Many Requests
examples:
- Too Many Requests
example: Too Many Requests
message:
type: string
examples:
- Rate limit exceeded
example: Rate limit exceeded
required:
- statusCode
- error
- message
servers:
- url: https://api.instantly.ai
description: Instantly API Server
security:
- ApiKeyAuth: []
tags:
- name: Analytics
description: Endpoints related to analytics
x-group: Analytics
- name: OAuth
description: OAuth authentication endpoints for connecting Google and Microsoft email accounts
x-group: OAuth
- name: Account
description: An email account that can be used to send campaigns
x-group: Account
- name: Campaign
description: A campaign that can be sent to a list of recipients
x-group: Campaign
- name: Email
description: A campaign email, a reply, a manually sent email, or any other email that's visible in the Unibox
x-group: Email
- name: EmailVerification
description: A single email verification
x-group: Email Verification
- name: LeadList
description: A list used to store leads
x-group: Lead List
- name: InboxPlacementTest
description: An inbox placement test
x-group: Inbox Placement Test
- name: InboxPlacementAnalytics
description: Analytics data for individual emails in inbox placement tests
x-group: Inbox Placement Analytics
- name: InboxPlacementBlacklistAndSpamAssassinReport
description: Report data for an inbox placement test
x-group: Inbox Placement Blacklist And SpamAssassin Report
- name: APIKey
description: API Key
x-group: API Key
- name: AccountCampaignMapping
description: Account Campaign Mapping
x-group: Account Campaign Mapping
- name: Lead
description: A lead entity representing an individual lead
x-group: Lead
- name: BackgroundJob
description: A background job that can be used to perform long-running tasks
x-group: Background Job
- name: CustomTag
description: A custom tag for organizing and categorizing accounts and campaigns. You can use them as filters in apis that
list accounts and campaigns.
x-group: Custom Tag
- name: CustomTagMapping
description: This entity represents a tag being assigned to a specific campaign or email account. When an email account
is assigned a tag, a new custom tag mapping entry is created, which connects the tag (`tag_id` field) with the email account
(`resource_id` field). You can use it to see which tag si connected to which resource.
x-group: Custom Tag Mapping
- name: BlockListEntry
description: A blocked email or domain
x-group: Block List Entry
- name: LeadLabel
description: A custom label for categorizing and managing leads
x-group: Lead Label
- name: Workspace
description: A workspace entity representing a workspace
x-group: Workspace
- name: SuperSearchEnrichment
description: An enrichment can take different forms, such as email enrichment or LinkedIn enrichment. Leads may be imported
from SuperSearch using the dedicated endpoint, or enriched directly within a list or campaign by attaching an enrichment
to it.
x-group: SuperSearch Enrichment
- name: WorkspaceGroupMember
description: A member of a workspace group. You can use the endpoints within this entity to manage the members of a workspace
group.
x-group: Workspace Group Member
- name: WorkspaceMember
description: A member of a workspace with associated user details
x-group: Workspace Member
- name: CampaignSubsequence
description: A subsequence entity representing a follow-up sequence
x-group: Campaign Subsequence
- name: AuditLog
description: Audit log records for tracking system activities
x-group: Audit Log
- name: Webhook
description: A webhook subscription for receiving event notifications
x-group: Webhook
- name: WebhookEvent
description: A webhook event that was sent or attempted to be sent
x-group: Webhook Event
- name: DFYEmailAccountOrder
description: A Done-For-You email account order
x-group: DFY Email Account Order
- name: CustomPromptTemplate
description: Custom prompt templates for creating custom prompts
x-group: Custom Prompt Template
- name: SalesFlow
description: Manages how sales users view and interact with campaign and lead lists within the sales flow.
x-group: Sales Flow
- name: EmailTemplate
description: A campaign email template
x-group: Email Template
- name: WorkspaceBilling
description: Workspace Billing
x-group: Workspace Billing
- name: CRMActions
description: CRM related actions
x-group: CRM Actions