Six endpoints, two webhooks, one afternoon of reading.
The whole surface area
| Method | Path | What it does |
|---|---|---|
| GET | /v1/catalogue | Services available to your tenancy, priced with your margin. |
| POST | /v1/merchants | Register or update a merchant. Idempotent on your own id. |
| POST | /v1/orders | Place an order. Returns immediately with an order in draft. |
| POST | /v1/orders/{id}/submit | Commit it. This is the point of no free cancellation. |
| GET | /v1/orders/{id} | Full order, current state, assets, approvals and spend. |
| GET | /v1/reports | Monthly reporting rows, filterable by merchant and period. |
One webhook carries the whole lifecycle
order.updated fires on every state change with the complete order body. No diffing, no second fetch. The only other event is report.ready, once a month per merchant.
- Signed with an HMAC header you rotate yourself
- Retried with backoff for 24 hours on any non-2xx
- Replayable from the dashboard for the last 30 days
- Ordered per merchant, so state never arrives backwards
{
"event": "order.updated",
"order": {
"id": "ord_8Nq2f1",
"merchant_ref": "your-merchant-4412",
"service": "influencer-marketing",
"state": "awaiting_merchant",
"budget": { "amount": 1800000, "currency": "INR" },
"waiting_on": {
"kind": "creative_approval",
"assets": ["ast_71bd", "ast_71be", "ast_71bf"],
"due_at": "2026-09-04T11:00:00Z"
},
"spend_to_date": { "amount": 0, "currency": "INR" }
}
}Three ways to put it in front of a merchant
Embedded storefront
One script tag and a signed session token. The whole ordering flow (catalogue, briefs, approvals, reporting) renders inside your product, themed with your tokens. Most platforms ship this and never build their own UI.
- Your fonts, colours and radii
- Locale and currency inherited from the session
- Height-adaptive, no nested scrollbars
Headless over the API
Build the ordering experience yourself against the six endpoints. Right when your product has a strong opinion about how merchants buy things, or when marketing has to sit inside an existing flow rather than beside it.
White-label
Your brand on the storefront, the reports and the merchant emails. MGP and Cocomo are invisible to the merchant; the work is identical. Available on the platform tier.
Boring on purpose
- Authentication
- Scoped API keys per environment, rotatable without downtime. Storefront sessions are short-lived signed tokens, never keys in the browser.
- Data residency
- Order metadata is stored in the region of your tenancy. Merchant customer data is never copied out of your systems.
- Rate limits
- 600 requests per minute per key, burstable. Webhooks are never rate limited from our side.
- Environments
- A sandbox tenancy with fake merchants and simulated campaign lifecycles, so you can test every state without spending anything.
- Versioning
- Dated versions pinned per key. Breaking changes ship as a new version; the previous one runs for twelve months.
- Status
- Public status page, incident history, and a webhook for platform-level incidents so you can tell your merchants before they tell you.