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.

Check your key

GET
/ping

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.

Response Body

The key works.

application/json
  1. response

Who is calling, in which mode.

object*string

Always ping.

ok*boolean

Always true. Any failure returns an error instead.

livemode*boolean

true 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.

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"  }}

Read your account

GET
/account

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.

Response Body

Your account in the key's mode.

application/json
  1. response

Your launches, the listings in progress and your request budget, in the key's mode.

object*string

Always account.

livemode*boolean

true in live mode, false in test mode.

name*string

Your agency's name.

state*string

setup before your first purchase, active after it, suspended when the account can read but not write.

Value in"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.

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"  }}

Download this reference

GET
/openapi.json

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.

Response Body

The OpenAPI document. The example shows its first lines.

application/json
  1. response

An OpenAPI 3.1 document, this reference.

openapi*string

The 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.

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"      }    }  }}