Endpoint
Authorization: Bearer <token> header. Create a token with fly tokens create or on the Tokens page.
The token needs read access to an organization. A token scoped to one organization files the report under it; otherwise the report goes to your personal organization. The organization is what reports are attributed to and what the rate limit counts against, so a token narrowed to something else, or an expired one, is rejected. Ownership always comes from the token, never from the request body.
Legacy fo1_ OAuth tokens aren’t accepted. Use a macaroon token, which starts with fm2_. See Access tokens.
Request
Send a JSON body withContent-Type: application/json.
Include at least one of
request_id or url, so the report points at something specific. You can send both.
For an API problem, request_id is the most useful thing you can send: every Fly.io response carries a fly-request-id header, and it lets us find the exact request in our logs.
Response
A successful response carries the new report’s ID:
already_submitted lets a retry be safe: sending the same report twice gets a 200 and the original ID rather than filing a duplicate.
Rate limits
Feedback is limited to 20 reports per minute per organization. Over that, requests get a429.