Skip to content

Individual Entries

An individual entry links one person to a competition and tracks their payment and approval status. Each entry also carries a set of entry events (IndivEntryEvents) — the events that person has selected/entered.

Permissions

indiv-entries and indiv-entry-events are competition-admin read-only: you must be an admin of the relevant competition to view entries and their events, and no client can create, edit, or delete them through these endpoints (write operations are handled internally by OpenTrack).

All requests require authentication.

List individual entries

GET /api/indiv-entries/

Returns the individual entries for the competitions you administer. An explicit ?competition=<pk> filter is honoured and its permission enforced separately.

Filters (all optional): competition, person, made_by, team_org, team_code, team_name, is_paid, can_be_paid, non_scorer, age_group, category, is_approved_by_director, is_approved_by_tm, is_withdrawn.

Ordering: ?ordering=when_paid, ?ordering=scheduled_start_time.

Search: ?search=<text> matches competition name or person first/last name.

The natural URL

Entries can also be read under a competition's natural key:

GET /api/x/<year>/<country>/<slug>/entries/                 # all entries
GET /api/x/<year>/<country>/<slug>/entries/<entry_id>/       # one entry

Each entry returned anywhere includes a hyperlinked url field pointing at its natural per-entry URL above, e.g.

{
  "url": "https://data.opentrack.run/api/x/2026/GBR/demo-comp/entries/451/",
  "entry_num": 1,
  "competition": 88,
  "person": "https://data.opentrack.run/api/persons/1234/",
  "age_group": "SEN",
  "category": "SM",
  "is_paid": true,
  "can_be_paid": true,
  "is_approved_by_tm": false,
  "is_approved_by_director": false,
  "is_withdrawn": false,
  "when_started": "2026-01-10T09:34:00Z",
  "price": "12.00",
  "events_entered": [ ... ]
}

IndivEntryEvents — the events an entry has selected

Every entry exposes a nested events_entered array (read-only). Each element is an IndivEntryEvent: a join between the entry and one EventSpec, plus the athlete's declared performances for that event.

{
  "url": "https://data.opentrack.run/api/x/2026/GBR/demo-comp/entries/451/events/9001/",
  "entry": "https://data.opentrack.run/api/indiv-entries/451/",
  "event": "https://data.opentrack.run/api/events/312/",
  "rt_id": "",           // relay team id, for relay events
  "idx": 1,              // running order, for relays
  "qp": "10.8",          // recent best (last 2 years)
  "sb": "10.9",          // season's best
  "pb": "10.7",          // personal best
  "is_paid": true,
  "info": ""
}

The url is the natural URL for this entry event. The event and entry are hyperlinks — the EventSpec resolves via /api/events/<pk>/ and the parent entry via /api/indiv-entries/<pk>/ (or its natural URL).

Read IndivEntryEvents

Competition admins can list and read the events a particular entry has selected, scoped to the competitions they administer:

GET /api/indiv-entry-events/                      # list (scoped to your competitions)
GET /api/indiv-entry-events/<pk>/                 # one entry event

Filter by a specific entry with ?entry=<pk>.

The natural-key URL lists all events under one entry (and identifies each one):

GET /api/x/<year>/<country>/<slug>/entries/<entry_id>/events/            # all entry events for the entry
GET /api/x/<year>/<country>/<slug>/entries/<entry_id>/events/<pk>/       # one entry event