REST API for deals, contracts, invoices, and webhooks. Available on Creator Elite and Brand Enterprise. Manage keys at Settings → API & Webhooks.
All requests must include a bearer token from an active API key.
curl -H "Authorization: Bearer blkx_..." \
https://qzcjtettgksztwudgtdi.supabase.co/functions/v1/public-api/dealsBase URL: https://qzcjtettgksztwudgtdi.supabase.co/functions/v1/public-api
/dealsList your deals (brand scope). `?limit=`/dealsCreate a brand deal. Body: `creator_name`, `platform`, `deal_value`, `deliverables[]`, `deal_terms`/deals/:idFetch one deal/contracts/:idFetch a contract/invoicesList creator + brand invoices/eventsRecent webhook deliveries/webhooksList webhook endpoints/webhooksRegister endpoint. Body: `url`, `events[]`/webhooks/:idRevoke endpointdeal.createdA brand deal was createddeal.acceptedCreator accepted the dealdeal.declinedCreator declined the dealdeal.signedDeal moved to signed statusdeal.completedDeal marked completedcontract.signedA contract was signed by both partiesinvoice.paidAn invoice (creator or brand direction) was paidPayload shape: { event, created_at, data }. Deliveries retry with exponential backoff up to 6 attempts.
// Node — verify webhook signature
import crypto from "node:crypto";
const sig = req.headers["x-blackx-signature"]; // "sha256=<hex>"
const expected = "sha256=" + crypto.createHmac("sha256", SECRET).update(rawBody).digest("hex");
if (!crypto.timingSafeEqual(Buffer.from(sig), Buffer.from(expected))) return res.status(401).end();Black X provides clarity tooling, not legal advice. Both parties remain responsible for contract review.