You already use a dozen tools to run your channel. Our panel is nice, but your numbers should live where you work: a Google Sheet, a Notion page, a Discord bot, or an AI assistant you can ask “which link converted best this week?”. The Creator API gives you exactly what the panel shows — nothing more, nothing less — under your own key.
https://sfb.zelcarserver.com/api/creators/v1 Authorization: Bearer zc_live_… (create keys in the panel → API & AI tools)
Keys are shown once, scoped, and revocable. Rate limit: 600 requests/hour per key. All amounts in USD, dates in ISO 8601 (UTC). Errors are JSON: {"error":"message","code":"…"}.
| Scope | What it allows |
|---|---|
| read:stats | Clicks, installs, tutorials, paying players, net revenue and commission, per link and per day. |
| read:codes | List your master code and sub-codes. |
| read:statements | Monthly statements with every transaction (anonymous player id). |
| write:codes | Create and pause/resume sub-codes. |
Never available through the API: payout method, tax forms, agreement acceptance, other creators' data. Those stay in the panel, behind your login.
| Method | Path | Scope | Returns |
|---|---|---|---|
| GET | /me | any | Profile, tier, rate, window, cap, launch-bonus status. |
| GET | /me/codes | read:codes | Array of codes: code, label, platform, active, created_at, link, qr_png_url. |
| POST | /me/codes | write:codes | Body {label, platform, code?} → the new code. |
| PATCH | /me/codes/{code} | write:codes | Body {label?, active?}. |
| GET | /me/stats?from&to&group_by=code|day | read:stats | Rows with clicks, installs, tutorials, payers, net_usd, commission_usd. |
| GET | /me/statement?month=YYYY-MM | read:statements | Summary (commission, refunds, advance, holding, cleared, payable) + transactions[]. |
| GET | /me/payouts | read:statements | Payout history (amounts, status, reference). Read-only. |
| GET | /media | any | Media kit index (title, type, format, language, url). |
| GET | /ranking | any | Public top 25 (no money). |
curl -H "Authorization: Bearer $ZC_KEY" \ "https://sfb.zelcarserver.com/api/creators/v1/me/stats?from=2026-10-01&to=2026-10-07&group_by=code"
const r = await fetch("https://sfb.zelcarserver.com/api/creators/v1/me/codes", {
method: "POST",
headers: { Authorization: "Bearer " + process.env.ZC_KEY, "Content-Type": "application/json" },
body: JSON.stringify({ label: "Stream Friday", platform: "twitch" })
});
const code = await r.json(); // { code: "KALEN-MIKE-5", link: "https://zelcar.games/c/KALEN-MIKE-5", qr_png_url: "…" }
=IMPORTDATA("https://sfb.zelcarserver.com/api/creators/v1/me/stats.csv?from=2026-10-01&to=2026-10-31&group_by=day&key=zc_live_…")
CSV variants (.csv) accept the key as a query parameter so no-code tools can use them. Use a read-only key for this.
The panel already issues keys and the contract is frozen (openapi.yaml). The live backend is being connected for the October launch; until then keys work against demo data. Questions: creators@zelcar.games.