API reference
Everything LocateIQ and the website use to run a rodeo. Base URL https://geolocaterodeo.com/api/v1
Basics
- Sign in with
POST /auth/loginand send the token on every call:Authorization: Bearer <access_token>. Tokens last 7 days; a401means sign in again. - Coordinates are WGS84 (EPSG:4326) in
[longitude, latitude]order, the GeoJSON convention. AGM points use separatelatitude,longitude, andelevationfields. - Errors return JSON with a
detailmessage. Validation errors (422) list each bad field. - Rate limits: sign-in, sign-up, password reset, join codes, and the info form allow about 10 requests a minute per address; other calls about 20 a second. Over the limit returns
429. - API keys (for partner integrations) go in
X-API-Keyand are read-only:events:readcovers events and rodeos,leaderboard:readcovers leaderboards. Keys are issued by a site admin. - Order does not matter. Competitors can join and submit before judges publish lines; runs are bound to the active judge lines when they are scored.
curl -s https://geolocaterodeo.com/api/v1/auth/login \
-H 'Content-Type: application/json' \
-d '{"email":"you@company.com","password":"…"}'
# → {"access_token":"eyJ…","token_type":"bearer","user":{…}}
How a rodeo flows
- Organizer creates an event and its rodeos, then creates invite codes (one for competitors, one for judges).
- Everyone joins by opening the invite link or scanning the QR. LocateIQ receives
locateiq://rodeo?join=CODE&api=https://geolocaterodeo.com/api, shows the event fromGET /join/{code}, signs the user in, then callsPOST /join/{code}/redeem. Competitors get a run in every rodeo the code covers. - Judges record the dig area, judge lines, and AGM control points for each rodeo. Any order works; the first save creates the judge line set.
- Competitors download the rodeo (dig area, AGM points, line names; never judge geometry), locate, upload their lines, and submit.
- Judges time the run, add deductions, finalize, and release the score. Spectators follow on the public page.
Scoring
Lowest score wins. Each competitor line is matched to the judge line with the same name, tied at both ends, and the enclosed area is measured in square feet (crossings are measured piece by piece, so errors never cancel).
score = error_area_ft² × accuracy_weight
+ max(0, run_seconds − free_seconds) × points_per_second × time_weight
+ deductions
Weights, free time, points per second, and deduction buttons are set per event with PUT /events/{id}/scoring.
GeoLocate Rodeo