Skip to main content
The Feedback API lets you report a problem to Fly.io from a script, a CI job or a coding agent, without opening a support ticket or a forum thread. It takes a category, a note, and either the request ID of the call that went wrong or the URL of the page that was unclear. It’s aimed at the cases where filing feedback by hand is the thing that stops you doing it: an agent that hits a confusing API response, or a deploy script that wants to flag a docs page that no longer matches reality.

Endpoint

Authenticate with a Fly.io access token in an 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 with Content-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 a 429.