Agent-ready

One call, and a tournament is running.

The web UI is one client of this API, not a layer above it. Anything a host can do from a phone, an assistant can do over HTTP, which means you can be in the tournament instead of running it.

Start from nothing
curl -X POST https://pokerleagueos.com/api/quickstart \
  -H 'content-type: application/json' \
  -d '{"league_name":"Thursday Night"}'

Rate limited to 5 per hour per IP, which is enough to build against and not enough to farm.

How a run goes

  1. 01

    Bootstrap

    POST /api/quickstart returns an organization, a demo session and an API key. No dashboard visit, no OAuth dance.

  2. 02

    Read the spec

    /openapi.json is an OpenAPI 3.1 document generated from the same schemas the server validates against, so it cannot drift from the endpoints.

  3. 03

    Run the night

    Start the clock, advance levels, check players in, record knockouts and rebuys, seat and rebalance tables, settle payouts.

  4. 04

    Hand it back

    Save the result and the season standings update. The host sees the same tournament in the web UI throughout.

The contract

Bearer tokens, org-scoped

Authorization: Bearer ck_live_… Keys belong to one organization and carry a role, so an agent can never reach another league's data or exceed the role it was given.

Errors that say what to do next

Every failure returns a code, a message, a hint, a documentation URL and a list of next actions, so a retry can be reasoned about rather than guessed.

Idempotency

Send an Idempotency-Key on any mutation. A replayed request returns the original response instead of acting twice, and a concurrent duplicate is rejected rather than executed.

Key management stays human

An agent can run tournaments. It cannot mint or revoke API keys: those routes reject any request made with a key.

Where the documents live

  • /openapi.jsonOpenAPI 3.1, generated from the server’s own schemas.
  • /llms.txtThe concepts and the endpoint list, written to be read by a model.
  • /llms-full.txtThe long form, with the vocabulary and the request shapes.