Developers

API documentation

Everything the portal does is available over HTTP. The API is versioned, token-authenticated and rate limited per club.

Authentication

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

Endpoints

MethodPathPurpose
GET/v1/gamesList games with processing state
GET/v1/games/{id}One game with shifts and periods
GET/v1/games/{id}/eventsDetected events, filterable by type
GET/v1/games/{id}/trackingTracked coordinates, paged by frame
POST/v1/clipsRequest a clip render
GET/v1/clips/{id}Render status and download URL
POST/v1/uploadsCreate a resumable upload session

Requesting a clip

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.

Webhooks

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.

Rate limits

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.

Errors

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.

Need a token?

API access is included on Pro and League plans. Ask your account manager.

Contact us