Basics
Check your key, read your account and download this reference. Every request needs Authorization: Bearer <key>. The key's prefix decides the mode, and an id from one mode is never found in the other.
Ids are a type prefix (prj_, lst_, dir_, evt_, rep_, img_, we_, wd_, key_) and 22 letters and digits: treat them as opaque strings. Times are ISO 8601 in UTC. Lists return object, data, has_more and next_cursor; send next_cursor back as cursor to read the next page.
Send JSON with Content-Type: application/json; image uploads also accept multipart/form-data. A parameter the operation does not list returns 400 unknown_parameter, and an empty string counts as null.
Each account and mode can make 3,600 requests per UTC hour, or 600 before your first purchase. Every response carries X-Request-Id, and a request your key authenticates also gets RateLimit-Limit, RateLimit-Remaining and RateLimit-Reset for your account and mode. Errors share one envelope: branch on error.code, show error.message, and quote error.request_id when you contact support.
Returns the agency and the key behind the request, and whether the key is live or test. Call it first when you set up an integration: a 200 means the key works, in the mode livemode shows.
The key works.
application/json- response
Who is calling, in which mode.
object*stringAlways ping.
ok*booleanAlways true. Any failure returns an error instead.
livemode*booleantrue for a sbm_live_ key, false for a sbm_test_ key.
account*The agency the key belongs to.
key*The key that made the request.
Typical errors
curl "https://api.submitator.com/v1/ping" \ -H "Authorization: Bearer $SUBMITATOR_API_KEY"{ "object": "ping", "ok": true, "livemode": false, "account": { "name": "Northlight Studio", "state": "active" }, "key": { "id": "key_3Rw8Kx2Lq9Vt5Nb1Zm7HcW", "permissions": "full" }}Shows how many launches you have left, how many listings are in progress across your projects, and your request budget for the current hour. Read it before a launch: with 0 launches available, a launch returns 402 no_launches_left.
Your account in the key's mode.
application/json- response
Your launches, the listings in progress and your request budget, in the key's mode.
object*stringAlways account.
livemode*booleantrue in live mode, false in test mode.
name*stringYour agency's name.
state*stringsetup before your first purchase, active after it, suspended when the account can read but not write.
"setup""active""suspended"launches*Launches you have, 1 per project. In test mode these are test launches: 100 to start, and POST /test_helpers/account/launches sets them.
capacity*Listings in progress across all your projects. Above the limit, new listings wait in pending and start as others finish; launches are accepted either way.
rate_limit*Your request budget for the current UTC hour, the same numbers as the RateLimit-* headers.
Typical errors
curl "https://api.submitator.com/v1/account" \ -H "Authorization: Bearer $SUBMITATOR_API_KEY"{ "object": "account", "livemode": false, "name": "Northlight Studio", "state": "active", "launches": { "available": 97, "used": 3, "total": 100 }, "capacity": { "in_flight": 25, "limit": 100 }, "rate_limit": { "limit": 3600, "remaining": 3488, "resets_at": "2026-10-08T16:00:00Z" }}Returns this reference as an OpenAPI 3.1 document in JSON, with the operations that are released. It needs no key, answers cross-origin GET requests and can be cached for 1 hour. Generate a client from it, or load it into your API tool.
The OpenAPI document. The example shows its first lines.
application/json- response
An OpenAPI 3.1 document, this reference.
openapi*stringThe OpenAPI version, 3.1.0.
info*The title and version of this reference.
servers?array<any>The base URL.
paths*The released operations.
webhooks?The released event types.
components?Shared schemas, parameters and responses.
tags?array<any>The groups of operations.
Typical errors
curl "https://api.submitator.com/v1/openapi.json" \ -H "Authorization: Bearer $SUBMITATOR_API_KEY"{ "openapi": "3.1.0", "info": { "title": "Submitator API", "version": "1.0.0" }, "servers": [ { "url": "https://api.submitator.com/v1" } ], "paths": { "/ping": { "get": { "operationId": "getPing", "summary": "Check your key" } } }}