POST

Authorizations

Authorization
string
header
required

The end user's JWT access token, sent as Authorization: Bearer <token>.

Obtain one from POST /partner/customers or POST /partner/customers/login — both return it as token. It identifies which of your users a call is made for, and is sent alongside your X-API-Key on every authenticated endpoint.

Event discovery, categories, subcategories and scores are public and need no token.

X-API-Key
string
header
required

ISV / partner credential — public half. Required on every request.

Identifies the integration partner (ISV) making the call. Issued by Dime Trades when the ISV is onboarded and sent on every /partner/* endpoint:

  • On the two partner endpoints that create accounts or issue tokens (POST /partner/customers, POST /partner/customers/login), it is accompanied by X-API-Secret and is the only authentication — there is no user token yet.
  • On every other partner endpoint it is sent alongside the user's Authorization: Bearer <token>: the API key says which platform is calling, the bearer token says which user it is calling for.

Credentials are scoped to one or more brands; using a key with a brandId outside that scope returns 403. Staging and production keys are separate. The key identifies your platform — treat it as a backend credential.

Body

application/json
marketId
integer
required

Target market ID (integer). Standardized across all endpoints.

Example:

60497

side
enum<string>
required

Buy or sell.

Available options:
buy,
sell
Example:

"buy"

type
enum<string>
required

Order type.

Available options:
limit,
market
Example:

"limit"

contractSide
enum<string>
required

Which side of the binary market the order is for.

Available options:
yes,
no
Example:

"yes"

quantity
integer
required

Number of contracts. Whole numbers only — a fractional value such as 1.5 is rejected with 400 and code 1002.

Required range: x >= 1
Example:

10

timeInForce
enum<string>
required

How long the order remains active.

  • GTC — good-till-canceled (rests on the book until canceled).
  • IOC — immediate-or-cancel (fill what's available now, cancel the rest).
  • FOK — fill-or-kill (fill entirely now or cancel the whole order).
  • GTT — good-till-time (rests until expireAt).
Available options:
GTC,
IOC,
FOK,
GTT
Example:

"GTC"

eventId
integer

Optional parent event ID (integer). Standardized across all endpoints.

Example:

5454

price
integer

Limit price in whole cents (1–99); a fractional value such as 6.5 is rejected with 400 and code 1002. Required for limit orders; forbidden for market orders.

Required range: 1 <= x <= 99
Example:

45

postOnly
boolean

Reject the order if it would immediately match (maker-only). Not allowed with IOC/FOK.

expireAt
integer

Expiry time (unix ms). Required when timeInForce is GTT.

Required range: x >= 1
clientOrderId
string

Optional caller-supplied idempotency key, unique per user. See the "Idempotency" section below.

Required string length: 1 - 128
Example:

"my-app-order-8f3e2a1b"

Response

Order accepted for processing.

data
OrderSubmissionAck · object

Acknowledgement returned by POST /orders once the order is validated, its funds/contracts locked, and it is published to the matching engine. Not the final order state — poll GET /orders or positions for the outcome. pending is an acknowledgement value, not an order status. It is never persisted, and no order ever holds it. The order row itself is created only once the matching engine's acceptance event is settled, at which point it appears in GET /orders as open — or, if the engine refused it, rejected.

errors
array