Developer docs
REST API v1
Query your flight, publish proofs, check leaderboard status, and connect scripts or automations to Fly in Public.
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/v1All endpoints return JSON. Timestamps are ISO 8601 strings unless noted otherwise.
Versioning
| API version | v1 |
|---|---|
| Docs version | 2026-05-14 |
| Base path | /api/v1 |
| Stability | Additive fields may be added to v1; breaking changes get a new path. |
v1 changelog
| Date | Change |
|---|---|
2026-05-14 | Hosted 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
| Method | Path | Description |
|---|---|---|
GET | /api/v1/me | Viewer profile, project, and Telegram link state. |
GET | /api/v1/bird/state | Live flight state: altitude, status, latest proof, and crash deadline. |
GET | /api/v1/proofs | Your proofs, most recent first. |
POST | /api/v1/proofs | Create a proof. Body: { url, message?, proofType?, publishedAt? }. |
GET | /api/v1/leaderboard/me | Your current rank plus a page of nearby entries. |
GET | /api/v1/tokens | List API tokens with prefix, last-used time, and recent daily usage. Session-only. |
POST | /api/v1/tokens | Create or revoke tokens with _intent=create or _intent=revoke. Session-only. |
POST | /api/v1/telegram/link | Generate a Telegram link code. Session-only. |
POST | /api/v1/telegram/unlink | Disconnect 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/proofsExample 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
401 | Missing, malformed, or revoked bearer token. |
|---|---|
404 | Resource or route not found. |
422 | Invalid proof URL, duplicate proof, or invalid submitted fields. |
500 | Unexpected 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
- Open the bot in Telegram and send
/start. - Tap the signed confirmation link the bot sends back.
- Sign in to Fly in Public if needed, then confirm the chat connection.
- Return to Telegram and run
/statusor/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.