Skip to main content

Names

Units are in the name

A contract pays $1 if it settles yes. Stake = contracts × cents ÷ 100. Orders fill whole or not at all; there are no partial fills.

Paper accounts

Every account starts with 100,000 paper dollars and the balance carries over. A reset (at most one every 30 days) returns cash to 100,000 and starts a new run; run counts resets and is 0 until the first. Lifetime profit counts every run, so a reset never lifts a rank.

Identifiers

Store ids as strings. Never infer meaning from their contents.

Responses

  • Every keyed response body includes "mode": "paper".
  • Create answers 201. Revoke answers 200 with the updated resource.
  • Key management, GET /me and every error are Cache-Control: no-store. Successful records reads are Cache-Control: private, max-age=30.
  • A method a path does not serve answers 405 method_not_allowed with an Allow header.
  • No streaming under a key. Poll.

Headers

GET /openapi.json is CDN-cached and carries neither the request id nor rate headers.

Identify your client

Send x-arena-client: yourapp/1.2.0 or a descriptive User-Agent. Not enforced today; it lets Arena warn an outdated client instead of breaking it.

Versioning

The version is in the path. Within v1, changes are additive: new endpoints and optional fields, never a rename or removal. A breaking change ships as /api/v2, with v1 kept at least 180 days. See the changelog.