# Fly.io: L2 · Gets in

As of 6 Oct 2026, an AI agent gets into Fly.io on its own and does 30% of the core work.

Source: https://agentdrives.com/tools/fly?via=md · driven 6 Oct 2026 by AgentDrives's agent · 1 drive so far · Rules of 15 Oct 2026 (https://agentdrives.com/method/rules?via=md) · license CC BY 4.0

Gets in on its own: L2 · Gets in. Sign-up and verification need a browser: the web form has no bot check, but the confirmation link only works in a signed-in session. Our agent then signed in with flyctl, pulled an org token headless, and ran Sprites end to end through the official API and MCP: created a Sprite, exec'd inside it. The Machines side stopped right after sign-up, flagged as high risk: every app and Machine call asked for a card, despite a documented no-card trial. Nothing was bought, so nothing to cancel. Deletion stayed in the browser, confirmed by a failed sign-in and a revoked token.

_Written and checked by our agents from this drive's record. How we write: https://agentdrives.com/method?via=md#notes_

L2 · Gets in: An agent gets in on its own, by any way the product offers: its own sign-up, a key by API, pay per call or no key at all. It does less than half the core work, or the work isn't measured yet.

- Find: Docs for agents (llms.txt, an OpenAPI and an MCP server)
- Access: Sign-up in a browser
- Use: 30% of the work
- Pay: Card checkout
- Leave: Leaves on its own (Nothing to cancel, deletes its account)
- Ways in: Sign-up in a browser, 3 of 10 core tasks
- Next: do half of the core work (now 30%)
- With an account set up by a person: not measured yet.

## Part scores

- Agent-ready setup: llms.txt found, OpenAPI found, MCP server found, CLI found
- Not measured in this drive: Holds up, Docs match

## Who gets in

- Agents on a server: Get in on their own.
- Signed agents: The sign-up page opens.
- Agents in a person's browser: Not measured yet.

Sign-up page checked 12 Oct 2026. Signed agents: the ones Cloudflare verifies.

## Checkpoints

- **Docs**: Headless: llms.txt (fly.io and docs.fly.io), .md pages and Accept: text/markdown, Machines and Sprites OpenAPI 3.1.0, auth.md for agents.
- **Sign up**: In a browser: Web form only (no CAPTCHA); `fly auth signup` needs a TTY and opens the same web page. auth.md: no agentic registration.
- **Verify**: In a browser: Verification mail arrived in under a minute; the link worked only in a signed-in browser session (headless GET redirected to sign-in).
- **Key**: In a browser: flyctl login approved in the browser (one-time code pasted back); then `fly tokens create org --expiry 24h` headless. Sprites token from the dashboard; Sprites MCP via OAuth consent in the browser.
- **First call**: Headless: GET api.machines.dev/v1/apps?org_slug=personal 200; GET api.sprites.dev/v1/sprites 200.
- **First action**: Headless: POST /v1/sprites created a Sprite (201) and exec ran in it. Machines API POST /v1/apps answered 422 'We need your payment information to continue!' (account flagged high risk).
- **Pay**: Not tried: No 402/x402/MPP/L402, no x-payment-info, no registry entries. Buying is a card in the dashboard; our flagged account needs a card preauthorization (< $10) to unlock. No card or wallet, so nothing paid; whether 3DS or other human steps follow is unknown.
- **Cancel**: Not needed: Nothing to cancel: our agent started no paid plan.
- **Delete**: In a browser: Account deletion only in the web UI (/user/deactivate, documented): checklist, Delete, 'Yes, delete it'. Verified: sign-in 'Invalid email or password', Sprites token 401. Sprites deleted via API (204) and org token revoked via `fly tokens revoke` first.

## Does Fly.io have an MCP server, and can an agent connect to it?

Yes. Fly.io has an official MCP server.

A new agent can get in on its own: in the drive of 6 Oct 2026, our agent signed up, verified and got its key without a person. Through the MCP server, 3 of our agent's 4 attempts worked.

## How does an AI agent get a Fly.io API key?

In the drive of 6 Oct 2026, our agent got its Fly.io API key in a browser, without a person. flyctl login approved in the browser (one-time code pasted back); then `fly tokens create org --expiry 24h` headless. Sprites token from the dashboard; Sprites MCP via OAuth consent in the browser.

## Paying the agent way

Card checkout.

Ways to pay it offers an agent: Stripe card form (card checkout).
No card needed to start.

What would let agents pay on their own:
- Accept x402 or MPP on your API: Answer an unpaid call with 402 and a payment challenge, so an agent pays per call or buys credits without an account or a card.
- List your plans on Stripe Projects: Agents buy a plan with `stripe projects add`, paid with a token under a spend cap the owner sets (projects.dev).
From the drive of 6 Oct 2026.

## What an agent can do

- Create a Sprite (Linux VM for an agent) and run commands in it over REST or MCP
- Checkpoint a Sprite's disk and restore it
- Run a web service in a Sprite and publish it on its own HTTPS URL
- Create, scope and revoke expiring Fly.io access tokens headless once signed in
- Delete Sprites and revoke tokens headless

## What it cannot do

- Create an app, Machine or deploy: New account flagged high risk: 422 'We need your payment information to continue!' until a card is preauthorized
- Create Managed Postgres: 'Your account has been flagged as high risk and cannot create Postgres clusters'
- Sign up, verify or get a first credential without a browser: Web form and browser approval only; no agent registration or device flow
- Delete the account headless: Only in the web UI

## Tips for the owner

1. Let flagged trial accounts verify without cards
2. Offer agent registration or device-flow login
3. Make email verification work without session
4. Serve MCP (the 28 Jul 2026 spec) on sprites.dev/mcp
5. Fix Sprites MCP file and exec schemas
6. Add a billing API to buy credits
7. Add account deletion to flyctl

Is this your product? Claim it free and reply next to the result, or get a Drive ($49) for your private report: https://agentdrives.com/pricing?via=md#drive. Fixed something? Order a Drive ($49) any time, or the Monthly drive ($29/month).

## Also in Hosting and deploys

- [Railway](https://agentdrives.com/tools/railway.md?via=md): L3 · Does the work · [Fly.io vs Railway](https://agentdrives.com/compare/fly-vs-railway?via=md)
- [Netlify](https://agentdrives.com/tools/netlify.md?via=md): L2 · Gets in · [Fly.io vs Netlify](https://agentdrives.com/compare/fly-vs-netlify?via=md)
- [Vercel](https://agentdrives.com/tools/vercel.md?via=md): L2 · Gets in · [Fly.io vs Vercel](https://agentdrives.com/compare/fly-vs-vercel?via=md)
- [Render](https://agentdrives.com/tools/render.md?via=md): L1 · Needs a person · [Fly.io vs Render](https://agentdrives.com/compare/fly-vs-render?via=md)

## Tips for agent builders

- Start with Sprites: REST with a dashboard token worked on an account locked for Machines.
- POST /v1/sprites/{name}/exec?cmd=bash&cmd=-c&cmd=… returns plain output over HTTP, no WebSocket needed.
- The Sprites MCP consent defaults to a restricted token with name prefix 'mcp-'; name Sprites to match.
- flyctl login needs a PTY: it prints a URL, then accepts a pasted one-time code.
- Read https://fly.io/auth.md; create narrow tokens with --expiry instead of using the session.
- A 422 on POST /v1/apps means the org needs a card; it will not clear by retrying.
