fly-io SSO API
Single sign-on operations allowing Fly.io users to access provider dashboards using their Fly.io credentials via OAuth.
Single sign-on operations allowing Fly.io users to access provider dashboards using their Fly.io credentials via OAuth.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/fly-io-sso-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: Fly.io Extensions Apps SSO API
description: The Fly.io Extensions API is a provider-facing HTTP interface that enables third-party services to integrate with the Fly.io platform as extension providers. When a Fly.io user provisions an extension via the flyctl CLI, Fly.io forwards the provisioning request to the provider's API with details about the requesting organization and user, and the provider responds with environment variable configuration that is attached to the target application. Providers must also support single sign-on login flows using OAuth, daily billing detail endpoints, and webhook delivery for resource lifecycle events. Extensions currently available through this program include Sentry, Supabase, Tigris object storage, Upstash Redis and Vector, and others.
version: '1.0'
contact:
name: Fly.io Extensions Program
url: https://fly.io/docs/reference/extensions_api/
termsOfService: https://fly.io/legal/terms-of-service/
servers:
- url: https://{provider_base_url}
description: Provider-hosted API server. Each extension provider hosts their own implementation of this API at a URL they register with Fly.io.
variables:
provider_base_url:
default: api.example.com
description: The base URL registered by the extension provider with Fly.io.
- url: https://api.fly.io
description: Fly.io platform server for OAuth and webhook endpoints.
security:
- flySharedSecret: []
tags:
- name: SSO
description: Single sign-on operations allowing Fly.io users to access provider dashboards using their Fly.io credentials via OAuth.
paths:
/extensions/{extension_id}/sso:
get:
operationId: initiateSso
summary: Initiate SSO for an extension
description: Called by Fly.io when a user runs a flyctl command to access the provider's dashboard (e.g., flyctl ext redis dashboard). The provider should verify the request signature and redirect the user to the appropriate dashboard page, using information from the Fly.io OAuth token to identify the user.
tags:
- SSO
parameters:
- $ref: '#/components/parameters/extensionId'
responses:
'302':
description: Redirect to the provider's dashboard.
headers:
Location:
description: URL of the provider dashboard for this extension resource.
schema:
type: string
format: uri
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
components:
responses:
Unauthorized:
description: Missing or invalid authentication credentials.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
NotFound:
description: The requested extension resource was not found.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
parameters:
extensionId:
name: extension_id
in: path
description: The unique identifier of the extension resource, as returned by the provider.
required: true
schema:
type: string
schemas:
ErrorResponse:
type: object
description: A standard error response.
properties:
error:
type: string
description: Human-readable error message.
status:
type: integer
description: HTTP status code.
securitySchemes:
flySharedSecret:
type: http
scheme: bearer
description: Shared secret provided by Fly.io to the extension provider. Fly.io includes this secret in an Authorization Bearer header on all requests to the provider's API for verification.
oauthBearerAuth:
type: http
scheme: bearer
description: Fly.io OAuth access token obtained from the token exchange endpoint.
webhookHmac:
type: apiKey
in: header
name: X-Fly-Signature
description: HMAC-SHA256 signature of the raw request body, computed using the webhook signing secret. Recipients must verify this signature before processing the payload.
externalDocs:
description: Fly.io Extensions API Documentation
url: https://fly.io/docs/reference/extensions_api/