REST API
FreeCloudPhone exposes a small JSON API for scripting and integrations. All endpoints live under /api/v1/. For the live, interactive docs see Swagger UI.
Auth
Two methods. Use whichever fits your client.
- Cookie session — browser apps. Set automatically after Discord OAuth login.
- Bearer API key — scripts/CLI. Generate a key on the Settings page.
curl https://freecloudphone.com/api/v1/me \ -H "Authorization: Bearer fcp_xxx_yyy"
Endpoints
/api/v1/meCurrent user profile.
/api/v1/walletCoin balance + pending.
/api/v1/historyRecent activity (limit, offset, action filter).
/api/v1/regRegister account. Body { service: 'vsphone' | 'vmos' | 'owlproxy' }.
/api/v1/buffBuff account. Body { service, code, rounds }.
/api/v1/getlinkGet cloud phone link. Body { provider, mode }.
/api/v1/jobs/{id}Poll a queued job status.
/api/v1/devicesList your assigned cloud phone devices.
/api/v1/accountsList your managed Roblox accounts.
/api/v1/keysList your API keys.
/api/v1/keysCreate a new API key. Query ?label=my-cli.
/api/v1/keys/{id}Revoke an API key.
Errors
Errors come back as JSON with { "detail": "..." }. Status codes: 401 (not authenticated), 402 (out of quota), 403 (forbidden), 429 (rate limited).
Rate limits
Reg/buff jobs respect the same daily quota as the Discord bot, plus per-IP backoff. Plan accordingly.