Public REST API

Manage ChatBakers programmatically

Websites, topics, prompts, competitors, citations, dashboards — every action you can take in the app is one HTTPS call away. Bearer auth, 16 endpoints, idempotency, webhooks, agency master keys.

Quick facts

Base URL

https://app.chatbakers.com/api/v1

Auth

Authorization: Bearer cbk_live_…

Three key types: cbk_live_*, cbk_read_*, cbk_agency_live_*.

Rate limits

600 read / 60 write / 5 generate per min per key

429 returns Retry-After + X-RateLimit-* headers.

Quick start

Create a key in Settings → Public API Keys, then:

List your websites (curl)

curl https://app.chatbakers.com/api/v1/websites \
  -H "Authorization: Bearer cbk_live_..."

Add a prompt (JavaScript)

const res = await fetch("https://app.chatbakers.com/api/v1/prompts", {
  method: "POST",
  headers: {
    "Authorization": "Bearer " + process.env.CHATBAKERS_API_KEY,
    "Content-Type": "application/json",
    "Idempotency-Key": crypto.randomUUID(),
  },
  body: JSON.stringify({
    websiteId: "ws_abc",
    prompts: [{ text: "best email warmup tool", intent: "commercial" }],
  }),
});

Endpoints

16 endpoints across 8 resources. Full schemas and try-it-out in the Swagger UI.

Resource Operations
/websitesList, get, delete (cascade)
/dashboardAggregate scores, brands, and prompts
/topicsList, create, update (label-only), delete, generate (async)
/promptsList, create (single / batch up to 50), delete — no PATCH, text is immutable
/competitorsList, add
/citationsList, paginated, filterable
/scoresVisibility, sentiment, and citations aggregate
/jobs/{id}Poll async job status

Beyond REST