CCMCyber City Media
Developer Platform · v1

Build on the Cyber City Media engine.

One scoped API key operates the whole production + outreach stack — source and qualify leads, run campaigns, scope and invoice estimates, cut clips, and hand jobs to our team. The same surface our own dashboard runs on, opened up for you.

~150 endpointsScoped, hashed keysRole-gated writesOne request formatMCP-native (soon)

01Quickstart

Every call is a POST to a single endpoint. You name the underlying path and method in the JSON envelope. Mint a key in the dashboard under Company → Settings → Keys (the plaintext shows once).

curl -s https://api.cybercitymedia.com/v1 \
  -H "x-agent-key: $CCM_AGENT_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "action":  "outreach_api",
    "path":    "leads",
    "method":  "GET",
    "query":   { "limit": 25, "campaign": 3 }
  }'

02Authentication

Send your key on every request. A key resolves to an owner identity, a role (member / admin / owner), and a scope list — each call must pass both. Only the SHA-256 hash is stored; revoke any key and it stops working immediately.

Header auth

x-agent-key: ccm_agent_<owner>_<token>
# or
Authorization: Bearer ccm_agent_<owner>_<token>

What a key can do

Keys may only call action: "outreach_api". Reads (GET:*) are safe to call freely; writes change real state and money/send actions must be explicitly granted. Every call is attributed in the activity log as <owner>-agent.

03Scopes & roles

A scope is <METHOD>:<pathGlob> — method is GET, POST, or *; the glob is an exact path, a prefix/* wildcard, or *. Even with POST:*, admin-only endpoints require an admin/owner role.

PresetScopesFor
Read onlyGET:*Dashboards & reporting agents.
Drafting & CRMGET:* + draft/organize writes (compose preview, estimates, list & contact management)Draft content and estimates, organize contacts. No sending or spending.
FullGET:*, POST:*Everything the owner can do (still blocked from admin-only paths unless the owner is admin).

04Endpoint catalog

🔒 = admin/owner role required. Money and send actions are intentionally not in the default scope — grant them explicitly on the key.

Leads & contacts

MethodPathPurpose
GETleadsList leads (filters: limit, q, status, source, list, campaign).
GETprospectFull prospect 360 (query: id).
GETcontact/{id}Contact record + unified timeline + quotes.
POST 🔒leads/importImport contacts → leads + list.
POST 🔒lead/status, lead/approvePer-lead state changes.

Campaigns & SDR

MethodPathPurpose
GETcampaigns, campaign/statsList & metrics.
POST 🔒campaign/create, campaign/pauseManage campaigns.
GETreplies, conversations, needs-trentInbound replies, threads, human escalations.
POST 🔒compose, reply/send, sequence/runGenerate copy, send replies, run cycles.

Deal engine — estimate → invoice → prepaid production

MethodPathPurpose
GETquotes, quote/{id}List / read estimates.
POST 🔒quote/generateAI scopes + prices an estimate.
POST 🔒quote/{id}/invoiceIssue a real Stripe invoice.
POST 🔒quote/{id}/paidMark paid → unlocks the production scheduler.
GETproduction/accessPrepaid gate check.

Clips, marketing & comms

MethodPathPurpose
GETclips, clip/winnersClip data.
POST 🔒clip/render, clip/{id}/deliverRender & deliver clips.
GETgmb/list, commsGoogle Business posts, call/SMS feed.
POST 🔒voice/call, sms/send, gmb/publishPlace a call, text, publish.

This is a representative slice. The full endpoint reference (deliverability, sourcing, opportunities, warmup, settings) is a live, machine-readable OpenAPI 3.1 spec — import it into Swagger, Postman, or a codegen tool: /openapi.json. It's generated from the enforced endpoint catalog, so it never drifts from what actually works.

05Connect an AI agent MCP & REST · live

Two native ways in, one auth model. MCP: point any MCP-capable agent at mcp.cybercitymedia.com (JSON-RPC over HTTP, x-agent-key header) — it discovers dashboard_call + list_endpoints automatically. REST: call api.cybercitymedia.com/<path> directly with the same x-agent-key header (or Authorization: Bearer ccm_agent_…) — every path in /openapi.json, same scopes and role gates.

1 · Connect

Add the CCM MCP server (or hit the REST API) with your scoped key. Your agent discovers the toolset automatically.

2 · Operate

Source leads, scope estimates, invoice, and track delivery — all as native tool calls.

3 · Dispatch

Post a job to the freelancer marketplace — skill-matched invites, signed bid links, one-call award. UI coming; API live.