Developers
Everything the portal does is available over HTTP. The API is versioned, token-authenticated and rate limited per club.
Every request carries a club token in the Authorization header. Tokens
are scoped to a club and can be rotated from the portal without downtime.
curl https://arrogant-wood.work.gd/api/v1/games -H "Authorization: Bearer <club-token>"
| Method | Path | Purpose |
|---|---|---|
| GET | /v1/games | List games with processing state |
| GET | /v1/games/{id} | One game with shifts and periods |
| GET | /v1/games/{id}/events | Detected events, filterable by type |
| GET | /v1/games/{id}/tracking | Tracked coordinates, paged by frame |
| POST | /v1/clips | Request a clip render |
| GET | /v1/clips/{id} | Render status and download URL |
| POST | /v1/uploads | Create a resumable upload session |
curl -X POST https://arrogant-wood.work.gd/api/v1/clips -H "Authorization: Bearer <club-token>" -H "Content-Type: application/json" -d '{"game_id":"g_8f21c","from_frame":3214,"to_frame":3401,
"preset":"mp4_1080p"}'
The response returns a clip id immediately. Poll the clip resource, or subscribe to
the clip.ready webhook, which fires as soon as the render is
downloadable.
We sign every delivery with an HMAC in the X-AW-Signature header.
Retries run for 24 hours with exponential backoff. Events:
game.processed, clip.ready, upload.completed.
600 requests per minute per club, bursts up to 1,200. Render requests are limited by
GPU capacity rather than by the API; the queue position is returned with every
POST /v1/clips.
Standard HTTP status codes with a JSON body containing code,
message and, where relevant, retry_after. A failed upload
keeps its session open for 72 hours.
The API is stable within a major version. Breaking changes ship
under /v2 with at least six months of overlap.
API access is included on Pro and League plans. Ask your account manager.