API reference

Open as markdown

For AI agents: the docs index is at /llms.txt, and every page is also served as markdown at its URL plus .md.

The ColdMeetings API has 25 operations in 7 groups. This reference is generated from the API's own OpenAPI document, so it lists exactly the routes the API registers. The machine readable copy is at https://coldmeetings.com/openapi.json.

Base URL#

YOUR_API_BASE_URL. Paths below start with /v1, except /health and /plans.

Authentication#

23 of the 25 operations need an API key sent as Authorization: Bearer cm_live_.... The others are public. See Authentication.

Requests and responses#

  • Bodies are JSON. Send Content-Type: application/json. Bodies over 256 KiB are refused.
  • Field names are snake_case. Timestamps are ISO 8601 in UTC.
  • Every response carries an X-Request-Id header. Quote it when you contact support.
  • Authenticated requests are rate limited per key. See Rate limits.
  • Errors share one envelope with a stable code. See Errors.

Resource groups#

GroupOperationsWhat it covers
Account5Your account, its plan and its prospect credits, a full export of your data, plus the two public endpoints that need no key.
Domains4Sending domains. Register a domain you own, publish its records and check that they are live. Only mailboxes on a domain that passes the check may send.
Mailboxes2Mailboxes on your sending domains, and how many messages they may send today. New mailboxes ramp up with real low volume sends.
Campaigns9A campaign is a sequence of steps, a list of prospects and a status. This is where credits are spent: each imported prospect costs one.
Replies2Replies 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.
Events1Delivery events. Bounces and complaints suppress the address at once, and enough complaints pause the campaign.
Suppressions2The do not contact list. Bounces, complaints and opt out replies land here by themselves. You can add an address too.

All operations#

MethodPathWhat it doesKeyPage
GET/healthLiveness check.NoneAccount
GET/plansThe three plans. Prices are set and nothing is charged live.NoneAccount
GET/v1/accountAccount, plan, credit balance, usage and keys.RequiredAccount
GET/v1/account/exportEvery row the account has, as one JSON document: profile, keys (by prefix), credit ledger, invoices, domains, mailboxes, campaigns, prospects, replies and the do-not-contact list. Secrets are left out. Three requests per account every ten minutes.RequiredAccount
POST/v1/billing/checkoutStart a hosted checkout session. The plan starts when the payment is confirmed.RequiredAccount
GET/v1/domainsList sending domains.RequiredDomains
POST/v1/domainsRegister a sending domain you already own and get the DNS records it needs.RequiredDomains
POST/v1/domains/{id}/dnsPublish the required records to your DNS host (Cloudflare). 503 until configured.RequiredDomains
POST/v1/domains/{id}/check-dnsCheck live DNS for SPF, DKIM and DMARC and mark the domain authenticated.RequiredDomains
GET/v1/mailboxesList mailboxes and today's ramp-up send capacity.RequiredMailboxes
POST/v1/mailboxesCreate a mailbox on a sending domain. 503 until configured.RequiredMailboxes
GET/v1/campaignsList campaigns.RequiredCampaigns
POST/v1/campaignsCreate a draft campaign with its sequence.RequiredCampaigns
GET/v1/campaigns/{id}One campaign.RequiredCampaigns
POST/v1/campaigns/{id}/prospectsImport prospects: dedupe, suppression, region gate, verification, one credit each.RequiredCampaigns
GET/v1/campaigns/{id}/preflightEverything that still blocks launch.RequiredCampaigns
POST/v1/campaigns/{id}/launchLaunch through the sending engine.RequiredCampaigns
POST/v1/campaigns/{id}/pausePause a campaign. Always pauses locally, even when the engine is unreachable; an unconfirmed engine pause is retried until it succeeds.RequiredCampaigns
POST/v1/campaigns/{id}/resumeResume a campaign you paused. Runs the preflight, removes suppressed leads at the sending engine, then restarts it. Refused while the engine has not confirmed the pause (409), and for a campaign ColdMeetings paused itself (403).RequiredCampaigns
GET/v1/campaigns/{id}/reportSent, bounce, complaint and reply rates, reply intents, meetings booked.RequiredCampaigns
POST/v1/eventsRecord a sent, bounce or complaint event from the sending engine. Complaints suppress and can pause.RequiredEvents
POST/v1/repliesRecord a reply. Opt-outs are suppressed by a fixed rule before any AI runs.RequiredReplies
POST/v1/replies/{id}/meetingBook a meeting for a reply through the booking calendar. 503 until configured.RequiredReplies
GET/v1/suppressionsThe do-not-contact list.RequiredSuppressions
POST/v1/suppressionsAdd an address to the do-not-contact list.RequiredSuppressions
Documentation menu