API docs
Push recipients in from wherever your leads live, pull tracking back out to wherever you work: Zapier, n8n, Clay, your own code, or an AI assistant via MCP. Grab a key on the API keys page first.
Authentication
Every request carries your key as a Bearer token. Keys start with ck_ and are shown once at creation.
Authorization: Bearer ck_your_key_here
Add a recipient
POST one recipient per call. The campaign must not be paid yet. recipients lock at payment. A draft campaign flips to ready on its first recipient.
curl -X POST https://app.coldcake.nl/api/v1/recipients \
-H "Authorization: Bearer ck_your_key_here" \
-H "Content-Type: application/json" \
-d '{
"campaign_id": "the-campaign-uuid",
"name": "Jane Prospect",
"company": "Bigcorp BV",
"address": "Keizersgracht 1, 1015 CS Amsterdam"
}'
# 201 → {"recipient_id":"…","campaign_status":"ready"}
# 401 bad key · 404 unknown campaign · 409 locked · 422 invalid bodyList campaigns
To find the campaign_id:
curl https://app.coldcake.nl/api/v1/campaigns \
-H "Authorization: Bearer ck_your_key_here"
# → {"campaigns":[{"id":"…","name":"…","status":"draft","recipient_count":3}]}Sync tracking back out
ColdCake is a step in your workflow, not the end of it. Poll deliveries to pull scan, click, reply and meeting timestamps into your CRM or automation. Use since to fetch only new activity.
curl "https://app.coldcake.nl/api/v1/deliveries?since=2026-08-01T00:00:00Z" \
-H "Authorization: Bearer ck_your_key_here"
# → {"deliveries":[{"id":"…","campaign_id":"…","recipient_name":"Jane Prospect",
# "recipient_company":"Bigcorp BV","delivered_at":null,"scanned_at":"…",
# "cta_clicked_at":null,"replied_at":null,"meeting_booked_at":null,
# "created_at":"…"}]}
# Optional: &campaign_id=<uuid> to scope to one campaignZapier / n8n / Clay
No app to install. Use the generic HTTP action of your tool:
- Zapier: “Webhooks by Zapier” → Custom Request → POST the JSON above, header
Authorization: Bearer ck_… - n8n: HTTP Request node → POST → Header Auth with the same header
- Clay: HTTP API enrichment column → POST → map name, company and address from your table
MCP
ColdCake speaks the Model Context Protocol, so AI assistants can list your campaigns, add recipients and read tracking in plain language (“which drops from last week got scanned but no reply?”). Three tools: list_campaigns, add_recipient and list_deliveries. Same key, same rules.
Claude Code:
claude mcp add --transport http coldcake https://app.coldcake.nl/api/mcp \ --header "Authorization: Bearer ck_your_key_here"
Any other MCP client (Cursor, ChatGPT, …): streamable HTTP server at https://app.coldcake.nl/api/mcp with the same Authorization header.