Every surface TrendLedger has, your agents have too.
A single REST API with matching MCP server. Generate creatives, manage the calendar, sync performance, and read recommendations from your own stack — or a Claude / Cursor / OpenAI agent runtime.
$ curl https://api.trendledger.com/v1/creatives \
-H "Authorization: Bearer $TL_KEY" \
-d '{
"brandId": "brand_01",
"sourceType": "winning_ad",
"sourceId": "cr_5XgT",
"platforms": ["meta", "tiktok", "linkedin"],
"format": "static",
"goal": "lead_generation",
"variants": 4
}'
{
"creativeId": "cr_01J1…",
"jobId": "job_01J1…",
"status": "generating",
"variantsRequested": 4,
"dna": ["testimonial", "workflow reveal"],
"webhookEvents": [
"creative.ready",
"creative.variant.ready",
"creative.approval.changed"
]
}One API, mapped to every in-product action.
These are the exact endpoints the product UI uses. No private admin surface.
Built to be automated, not admired.
Your agent picks up a brief, generates three variants, and schedules the winner across Meta and TikTok.
- POST /v1/creatives — start generation job
- Listen for creative.ready webhook
- GET /v1/creatives/:id — pull variants + DNA
- POST /v1/schedule-items — schedule selected variant
When an organic post performs above its DNA baseline, convert it into paid-ready creatives automatically.
- GET /v1/performance/snapshots?segment=organic
- Select creatives with CTR above baseline
- POST /v1/creatives/:id/remix — target=paid
- POST /v1/schedule-items — channel=meta
Listen for approval state transitions and mirror them in your own system of record.
- Subscribe to creative.approval.* webhooks
- GET /v1/creatives/:id to pull the latest state
- Mirror into your DB / Linear / Notion
- POST /v1/creatives/:id back when reviewers sign off
Native tools for Claude, Cursor, and OpenAI agents.
Install the TrendLedger MCP server in your agent runtime. Every resource in the API is exposed as a tool, with strict scopes, argument validation, and per-tool rate limits.
{
"mcpServers": {
"trendledger": {
"command": "npx",
"args": ["@trendledger/mcp"],
"env": {
"TL_KEY": "tl_live_…",
"TL_WORKSPACE": "ws_acme"
}
}
}
}- brand.get
- brand.import
- creative.list
- creative.generate
- creative.remix
- schedule.list
- schedule.create
- performance.snapshots
- insight.list
- connection.list
Every state change is a real event.
Signed, versioned, retried. Subscribe once, mirror TrendLedger in your own system of record without polling.