Skip to main content
curl --request GET \
  --url 'https://api.longshot.xyz/v1/contests?status=open&limit=20' \
  --header 'Authorization: Bearer <session_token>'
{
  "contests": [
    {
      "contest_id": "550e8400-e29b-41d4-a716-446655440000",
      "title": "Daily Mentions Contest",
      "category": "mentions",
      "status": "open",
      "bet_amount_micros": 1000000,
      "protocol_prize_pool_micros": 25000000,
      "total_pot_micros": 35000000,
      "entries_filled": 10,
      "entry_cap": 100,
      "entry_opens_at_ms": 1778010000000,
      "betting_closes_ms": 1778013600000,
      "live_ends_at_ms": 1778017200000,
      "resolved_at_ms": null,
      "caller": { "joined": true },
      "created_at_ms": 1778006400000,
      "image_url": "/v1/pool-images/22222222-2222-2222-2222-222222222222/raw"
    }
  ],
  "next_cursor": null
}
curl --request GET \
  --url 'https://api.longshot.xyz/v1/contests?status=open&limit=20' \
  --header 'Authorization: Bearer <session_token>'
{
  "contests": [
    {
      "contest_id": "550e8400-e29b-41d4-a716-446655440000",
      "title": "Daily Mentions Contest",
      "category": "mentions",
      "status": "open",
      "bet_amount_micros": 1000000,
      "protocol_prize_pool_micros": 25000000,
      "total_pot_micros": 35000000,
      "entries_filled": 10,
      "entry_cap": 100,
      "entry_opens_at_ms": 1778010000000,
      "betting_closes_ms": 1778013600000,
      "live_ends_at_ms": 1778017200000,
      "resolved_at_ms": null,
      "caller": { "joined": true },
      "created_at_ms": 1778006400000,
      "image_url": "/v1/pool-images/22222222-2222-2222-2222-222222222222/raw"
    }
  ],
  "next_cursor": null
}

Endpoint

GET https://api.longshot.xyz/v1/contests
Authorization: Bearer <session_token>
Returns contest lobby rows. The endpoint is public, but a valid bearer session adds a nested caller object with caller-owned fields. Without a bearer token, caller is null.

Headers

Authorization
string
Optional Bearer <session_token> from wallet auth or Privy session auth.

Query Parameters

status
string
Optional status filter. Supported values are open, resolved, and voided.
category
string
Optional category filter. Supported values are mentions, sports, and culture.
cursor
string
Opaque cursor from next_cursor on a prior response.
limit
int32
Maximum rows to return. Defaults to 20; the server clamps to 1..=50.

Response Fields

contests
array
Contest lobby rows.
contests[].contest_id
uuid
Contest ID used by the contest detail, leaderboard, and entry endpoints.
contests[].title
string
Display title for the contest.
contests[].category
string
Contest category: mentions, sports, or culture.
contests[].status
string
Contest status: open, resolved, or voided.
contests[].bet_amount_micros
int64
Entry amount in micros.
contests[].protocol_prize_pool_micros
int64
Prize pool funded by the protocol, in micros.
contests[].total_pot_micros
int64
Current total contest pot in micros.
contests[].entries_filled
int32
Number of submitted entries.
contests[].entry_cap
int32
Maximum number of entries accepted.
contests[].entry_opens_at_ms
int64 | null
Entry-open timestamp as Unix milliseconds.
contests[].betting_closes_ms
int64
Last timestamp, in Unix milliseconds, when entries are accepted.
contests[].live_ends_at_ms
int64 | null
UI live-window end timestamp as Unix milliseconds, when configured.
contests[].resolved_at_ms
int64 | null
Resolution timestamp as Unix milliseconds when the contest has resolved.
contests[].caller
object | null
Caller-owned fields. Null when the request is unauthenticated.
contests[].caller.joined
boolean
True when the bearer session belongs to a user who has entered the contest.
contests[].created_at_ms
int64
Contest creation timestamp as Unix milliseconds.
contests[].image_url
string
Resolved contest image URL when an image is available.
next_cursor
string | null
Cursor for the next page, or null when no more rows are available.