Work with this as data
Every API here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for apis
7 MCP tools reach this
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.
Call it yourself
curl for this page
This API
curl "https://apis.io/api/v1/apis/instantly-ai-inboxplacementtest-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
OpenAPI Specification
openapi: 3.2.0
info:
title: Explorer Inbox Placement Test API
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
servers:
- url: https://api.instantly.ai
description: Instantly API Server
security:
- ApiKeyAuth: []
tags:
- name: InboxPlacementTest
description: An inbox placement test
x-group: Inbox Placement Test
paths:
/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
# --- truncated at 32 KB (91 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/instantly-ai/refs/heads/main/openapi/instantly-ai-inboxplacementtest-api-openapi.yml