Skip to main content
POST
Create a league (idempotent upsert)

Authorizations

Authorization
string
header
required

Partner API key: Authorization: Bearer whk_…. Keys are issued by the Whistle team (email tommy@huddleup-sports.com), shown once at issuance, and bound to your source namespace — they access only your leagues (plus explicit grants) and your webhook endpoints. Any auth failure returns 401 {"error":"unauthorized"}; the API never returns 403 — out-of-scope resources answer 404 exactly like nonexistent ones.

Body

application/json
name
string
required

Required, trimmed, non-empty.

paymentMode
enum<string>

Anything other than "platform" normalizes to "offline".

Available options:
offline,
platform
currency
string

ISO 4217, lowercased. Default "usd".

source
string

Derived from your key — omit, or echo your key's source; any other value returns 400 source_mismatch.

externalId
string | null

Your stable id for this league — enables idempotent upsert.

Response

Created or upserted league

data
object
Last modified on July 13, 2026