Replies
Open as markdownFor AI agents: the docs index is at /llms.txt, and every page is also served as markdown at its URL plus .md.
Replies from prospects. An opt out is caught by a fixed rule before any model runs. A reply that asks for a meeting can be booked from here.
Base URL: YOUR_API_BASE_URL. Every request and response is JSON. Errors use one envelope.
| Operation | What it does |
|---|---|
POST /v1/replies | Record a reply. Opt-outs are suppressed by a fixed rule before any AI runs. |
POST /v1/replies/{id}/meeting | Book a meeting for a reply through the booking calendar. 503 until configured. |
POST/v1/replies#
Record a reply. Opt-outs are suppressed by a fixed rule before any AI runs.
A fixed rule looks for opt-out wording first. If it matches, the intent is opt_out, the address is suppressed, and no model runs.
Authentication: send your API key as a bearer token. See Authentication.
Request body#
Send a JSON object.
| Field | Type | Required | Notes |
|---|---|---|---|
campaign_id | string | Yes | Id of a campaign, such as cmp_2LmQx7RtVw3ZbN1pEs9fKd. |
email | string | Yes | An email address. It is trimmed and lowercased. |
subject | string | Yes | Up to 300 characters. |
body | string | Yes | Up to 20000 characters. |
Example body:
{
"campaign_id": "cmp_2LmQx7RtVw3ZbN1pEs9fKd",
"email": "jordan@northwind.example",
"subject": "Re: Outbound without the busywork",
"body": "Sounds useful. Can we talk Thursday?"
}Response#
Status 201 Created.
{
"reply_id": "rpl_Vw3ZbN1pEs9fKd2LmQx7Rt",
"intent": "interested",
"classified_by": "ai",
"suppressed": false
}intentis one ofinterested,not_interested,out_of_office,opt_out,questionorother, ornullwhen classification is unavailable.classified_byisrule,aiorunavailable. When it isunavailable, aclassification_noteexplains why and the reply is still stored.
Errors#
unauthorized, HTTP 401: The API key is missing, malformed, revoked or unknown.invalid_input, HTTP 400: A body that is empty, is not JSON or fails validation also answers this, and the message names the field.payload_too_large, HTTP 413: The body is over 256 KiB.unknown_product, HTTP 404: No such campaign on this account.rate_limited, HTTP 429: Too many requests for this key. Wait the number of seconds inRetry-After.
Example request#
curl -X POST YOUR_API_BASE_URL/v1/replies \
-H "Authorization: Bearer $COLDMEETINGS_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"campaign_id": "cmp_2LmQx7RtVw3ZbN1pEs9fKd",
"email": "jordan@northwind.example",
"subject": "Re: Outbound without the busywork",
"body": "Sounds useful. Can we talk Thursday?"
}'POST/v1/replies/{id}/meeting#
Book a meeting for a reply through the booking calendar. 503 until configured.
Books a meeting with the person who sent the reply. The attendee email is taken from the reply.
Authentication: send your API key as a bearer token. See Authentication.
Path parameters#
| Name | Type | Notes |
|---|---|---|
id | string | Id of the reply. |
Request body#
Send a JSON object.
| Field | Type | Required | Notes |
|---|---|---|---|
attendee_name | string | Yes | Up to 120 characters. |
starts_at | string | Yes | Format: date-time. |
timezone | string | Yes | At least 3 characters. Up to 64 characters. |
Example body:
{
"attendee_name": "Jordan Lee",
"starts_at": "2026-10-22T15:00:00Z",
"timezone": "America/New_York"
}Response#
Status 201 Created.
{
"booking_id": "bk_5Qw8Lm2Zx"
}Errors#
unauthorized, HTTP 401: The API key is missing, malformed, revoked or unknown.invalid_input, HTTP 400: The address is on the do-not-contact list, a meeting is already booked for this reply, or the body is invalid. A body that is empty, is not JSON or fails validation also answers this, and the message names the field.payload_too_large, HTTP 413: The body is over 256 KiB.unknown_product, HTTP 404: No such reply on this account.provider_unavailable, HTTP 503: The booking calendar could not be reached.rate_limited, HTTP 429: Too many requests for this key. Wait the number of seconds inRetry-After.
Example request#
curl -X POST YOUR_API_BASE_URL/v1/replies/rpl_Vw3ZbN1pEs9fKd2LmQx7Rt/meeting \
-H "Authorization: Bearer $COLDMEETINGS_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"attendee_name": "Jordan Lee",
"starts_at": "2026-10-22T15:00:00Z",
"timezone": "America/New_York"
}'