Cordial Cordial
Cordial Headless · Now in preview

Not just another
marketing API.

The cross-channel platform powering 2–8× revenue per message for enterprise brands — now fully headless. Build agents, services, and custom experiences on top of the same data model the Cordial app uses.

~/cordial — zsh
$
Trusted by marketing teams at
Boot Barn Realtor.com Rack Room Shoes L.L. Bean Levi's Forbes Adore Me
The headless turn

Cordial, now built for builders.

Same enterprise-grade platform. New surface area — designed for engineers, services, and agents.

Every object, exposed

Contacts, audiences, messages, orchestrations, supplements, sculpt blocks, reports — the entire Cordial data model is reachable through one consistent API. The same data your marketing team works with, available to your code.

The logic comes with the data

A raw database hands code a pile of rows. Cordial hands it the years of marketing logic on top — cross-channel identity resolution, audience definitions, orchestration triggers, and the send history behind 2–8× revenue per message. Your agents inherit the context, not just the schema.

AI-native by default

A first-class MCP server lets Claude, Cursor, and any MCP-compatible assistant reason about your account out of the box — audiences, performance, and orchestration logic, all account-aware. No exports, no glue, no integration project.

MCP Server

Give your AI a Cordial account.

Pointing an agent at raw API endpoints isn't enough — it needs the brand, account, and customer context to use them correctly. That's what the MCP server hands over: 56+ tools across 17 domains from one endpoint, so your assistant reasons over the same live account your marketers do — audiences, message performance, orchestration logic, campaign history. Reads today; human-approved writes coming soon.

  • Account context — account-aware on every call; the agent always knows which account, scopes, and channels are in play.
  • Brand context — semantic search and composite tools like get_audience_health speak in your brand's concepts, not raw rows.
  • Customer context — identity, profile, and cross-channel history, so the agent reasons about a real person on a real journey.
claude_desktop_config.json
{
  "mcpServers": {
    "cordial": {
      "type": "http",
      "url": "https://mcp.cordial.com",
      "auth": "oauth"
    }
  }
}
agent.ts
// agent.ts — your assistant calls Cordial tools directly
const audiences = await mcp.call("list_audiences", {
  query: "loyalty"
});

const health = await mcp.call("get_audience_health", {
  id: audiences.audiences[0].id,
  period: 30,
});

// "Loyalty tier 3+ has grown 14.2% over the last 30 days,
//  now at 198,455 contacts — see attached trend chart."
terminal
# Sign in once — OAuth in your browser
cosdk login

# Find the audience you care about
cosdk audiences list --query "high intent"

# Send a campaign QA preview to your inbox
cosdk messages preview msg_2025_blackfriday --open-raw

# Year-over-year report, piped into your tooling
cosdk analytics overview --start 1y --compare --json | jq '.channels'
CLI

From zero to sent in five commands.

One npm install, sign in once, JSON output by default for piping into jq, scripts, and CI. Every concept in your account — audiences, messages, orchestrations, content — in one composable command.

Install from npm
macOS · Linux · Windows
Whole platform
audiences → orchestrations → analytics
--json pipeline
machine-readable by default
Tracing built in
OpenTelemetry spans on demand
REST API · v2

Direct HTTP, when you need it.

106 endpoints across 24 resources, all over plain HTTPS with HTTP Basic auth. Build in any language — curl, Go, Python, Ruby, Java — no SDK required.

Any language
no SDK — just an HTTP client
Stable v2 contract
versioned at /v2/…
JSON in, JSON out
works with any HTTP client
Job-based bulk ops
async imports & exports
three-curl integration
# Upsert a contact
curl -u "$CORDIAL_API_KEY:" \
  https://api.cordial.io/v2/contacts \
  -H "Content-Type: application/json" \
  -d '{
    "channels": { "email": { "address": "jane@brand.com" } },
    "attributes": { "loyalty_tier": "gold" }
  }'

# Log a custom event — triggers orchestrations, audiences, sends
curl -u "$CORDIAL_API_KEY:" \
  https://api.cordial.io/v2/contactactivities \
  -H "Content-Type: application/json" \
  -d '{ "email": "jane@brand.com", "action": "browse",
        "properties": { "product_id": "p_8421" } }'

# Send from an automation template
curl -u "$CORDIAL_API_KEY:" \
  https://api.cordial.io/v2/automationtemplates/welcome/send \
  -H "Content-Type: application/json" \
  -d '{ "to": { "email": "jane@brand.com" } }'
Architecture

One platform, three ways to build.

MCP for agents, CLI for terminals and scripts, REST API for everything else. Same data model — pick the surface that fits the job.

Architecture
One platform, three ways to build
AI agents
Your services
Custom UIs
›_Scripts
OAuth 2.1 · read/write scopes
Cordial Headless API
api.cordial.com
Contacts
Audiences
Messages
Orchestrations
Analytics
Content
Sculpt
Data Ops
Reports
Supplements
Products
Channels
MCPCLIREST API
Built for

What teams ship with headless Cordial.

AI marketing copilots

Wire your assistant into the same audience and message data your team uses every day.

Automated campaign QA

Render previews across cohorts, diff against past sends, and catch issues before launch.

Custom marketer UIs

Build internal tools against the REST API — stable v2 contract, JSON-everywhere, your stack of choice.

Data pipelines

Pipe analytics, audience trends, and message reports into Snowflake, BigQuery, or your own warehouse.

Start building on headless Cordial.

Install the CLI in 30 seconds. Connect your AI assistant in a config file. Or talk to our team about an MCP endpoint scoped to your account.