Contributions
Submit a report
Send a road or infrastructure report and receive a report ID
Overview
Accepts a single report and returns a report ID immediately. A report is a categorised observation about a road at a coordinate. The report enters the processing pipeline (AI analysis plus human review). PollGET /reports/{id} for the outcome, typically available within 15 minutes.
Authentication
This endpoint requires an API key. Include it in theAuthorization header:
Rate limits
User session tokens are limited to 60 reports per hour. Exceeding the limit returns429 with a Retry-After header and a retry_after_seconds field in the body. Partner API keys carry limits agreed at issuance. Contact us about expected volumes.
Request body
string
required
The report category. One of:
[number, number]
required
The report coordinate as
[longitude, latitude] (GeoJSON order, see Coordinate format).Optional parameters
Optional parameters
string
Free-text description of the issue, up to 2,000 characters. The more specific, the faster the analysis. Include what is blocked, since when, and until when if known.
string
Name of the affected road or place, up to 200 characters.
string
The sub-category, which says what kind of problem it is within the
issue_type. Sending one classifies the report without waiting for a human to read the description, so it is the single most useful optional field. Each category recognises its own values:other is accepted under every category. Under road_closed, the first five values mean the road is physically blocked and the last two mean the manoeuvre is illegal rather than the road impassable, which we act on differently. Any other string up to 64 characters is stored but is not classified.string
Required for partner API keys, ignored for user session tokens. The source identifier agreed when your key was issued (e.g.
dft, forest): a 2–32 character slug of a-z, 0-9, _, -. It attributes the submission and scopes which reports your key can read back.Response body
number
The report ID. Use it with
GET /reports/{id} to poll processing status.string
Always
received on creation.string
ISO 8601 timestamp of receipt.
Variants
Partner submission
A partner API key must send its agreedsource slug on every report. Submissions are attributed to that slug, and the key can read back any report submitted through the API.
User session submission
A signed-in user token submits withoutsource (any value sent is ignored). The report is attributed to the user’s account, and the token can read back only that user’s reports.
Error responses
400 Bad request
Invalid body: an unknownissue_type, an out-of-range location, or a missing source on a partner key. The error field names the problem.
401 Unauthorized
Missing or invalid credentials, or an anonymous caller.405 Method not allowed
Method other thanPOST on the collection.
429 Too many requests
Rate limit exceeded, see Rate limits. Includes aRetry-After header.