Docs menuREST API

Developer docs

REST API v1

Query your flight, publish proofs, check leaderboard status, and connect scripts or automations to Fly in Public.

For AI assistants, start with the skill setup and hosted OAuth MCP. Use API tokens for scripts, custom clients, and advanced bearer-token MCP fallback.

Authentication

All bearer-token requests use the Authorization header:

Authorization: Bearer fip_...

/api/v1/* endpoints accept either a logged-in session cookie or a bearer token. Token management is session-only. The advanced MCP endpoint at /api/mcp uses bearer tokens; the hosted /mcp endpoint uses OAuth.

Base URL

https://flyinpublic.com/api/v1

All endpoints return JSON. Timestamps are ISO 8601 strings unless noted otherwise.

Versioning

API versionv1
Docs version2026-05-14
Base path/api/v1
StabilityAdditive fields may be added to v1; breaking changes get a new path.

v1 changelog

DateChange
2026-05-14Hosted OAuth MCP added at /mcp, advanced bearer-token MCP retained at /api/mcp, Telegram bot-first linking added with /telegram/connect, and the in-repo Fly in Public skill plus /docs/skills introduced.

Endpoints

MethodPathDescription
GET/api/v1/meViewer profile, project, and Telegram link state.
GET/api/v1/bird/stateLive flight state: altitude, status, latest proof, and crash deadline.
GET/api/v1/proofsYour proofs, most recent first.
POST/api/v1/proofsCreate a proof. Body: { url, message?, proofType?, publishedAt? }.
GET/api/v1/leaderboard/meYour current rank plus a page of nearby entries.
GET/api/v1/tokensList API tokens with prefix, last-used time, and recent daily usage. Session-only.
POST/api/v1/tokensCreate or revoke tokens with _intent=create or _intent=revoke. Session-only.
POST/api/v1/telegram/linkGenerate a Telegram link code. Session-only.
POST/api/v1/telegram/unlinkDisconnect Telegram. Session-only.

Example requests

curl -H "Authorization: Bearer $FIP_TOKEN" \
  https://flyinpublic.com/api/v1/bird/state

curl -X POST \
  -H "Authorization: Bearer $FIP_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"url":"https://example.com/post","message":"Shipped today!"}' \
  https://flyinpublic.com/api/v1/proofs

Example proof response

{
  "proof": {
    "id": "proof_...",
    "url": "https://example.com/post",
    "platform": "Website",
    "proofType": "Post",
    "message": "Shipped today!",
    "publishedAt": "2026-05-14T13:00:00.000Z"
  }
}

Rate limits

There are no hard public rate limits yet. Token usage is tracked so you can spot which clients are active and revoke any client that misbehaves.

Error responses

401Missing, malformed, or revoked bearer token.
404Resource or route not found.
422Invalid proof URL, duplicate proof, or invalid submitted fields.
500Unexpected server error. Retry later or contact support.

Telegram bot

The hosted Telegram bot lets users check status, post proofs, and receive crash or interaction notifications. Send /start to the bot to receive a signed web confirmation link, or connect from profile settings with a one-time code.

Bot: @flyinpublic_bot

User setup

  1. Open the bot in Telegram and send /start.
  2. Tap the signed confirmation link the bot sends back.
  3. Sign in to Fly in Public if needed, then confirm the chat connection.
  4. Return to Telegram and run /status or /proof <url>.
  • /start: get a signed web confirmation link.
  • /whoami: linked account name, handle, email, and profile.
  • /status: altitude, crash deadline, and recent streak.
  • /proof <url> [message]: post a new proof.
  • /leaderboard: top flights and your rank.
  • /notifications crash on|off: toggle 6h, 2h, and 30m crash warnings.
  • /notifications likes|comments on|off: toggle interaction alerts.
  • /unlink: disconnect this chat.

See also