Production route contracts verified against the live Agent OS deployment.
/api/signup or /api/signin. External callers should use the returned bearerToken. The legacy apiKey field remains as an alias for compatibility.https://agentos-app.vercel.app. The custom domain https://agentos.service is still activating until the apex DNS A record points to Vercel./healthLiveness check for the production app and tool registry.
{ "status": "ok", "version": "1.0.0", "timestamp": "...", "tools": 32 }/toolsList the universal MCP tool registry exposed by Agent OS.
{ "tools": [{ "name": "agentos.mem_set", "description": "...", "inputSchema": {...} }] }/registerSelf-service external-agent registration. Creates a registry record and returns a 90-day bearer token for universal MCP access.
agentIdstringrequiredLowercase agent identifier using letters, numbers, and hyphens onlynamestringrequiredHuman-readable agent namedescriptionstringOptional summary of what the agent doesownerEmailstringOptional owner contact emailallowedDomainsstring[]Optional outbound domain allowlist. Empty means all domains allowed.allowedToolsstring[]Optional tool permission list. Defaults to all built-in agentos.* primitives.{ "agentId": "external-agent", "token": "eyJ...", "expiresIn": "90d", "allowedDomains": ["httpbin.org"], "allowedTools": ["agentos.net_http_get"], "mcpEndpoint": "https://agentos-app.vercel.app/mcp", "toolsEndpoint": "https://agentos-app.vercel.app/tools" }/agent/meReturn the current external-agent registration details without reissuing the token.
{ "agentId": "external-agent", "name": "My Agent", "status": "active", "allowedDomains": ["httpbin.org"], "allowedTools": ["agentos.net_http_get"], "totalCalls": 1, "lastActiveAt": "...", "createdAt": "...", "mcpEndpoint": "https://agentos-app.vercel.app/mcp", "toolsEndpoint": "https://agentos-app.vercel.app/tools" }/api/signupCreate an agent account, start a secure browser session, and return a 90-day bearer token for external use.
emailstringrequiredValid email addresspasswordstringrequiredAt least 8 charactersagentNamestringOptional display name for the new agent{ "success": true, "credentials": { "agentId": "agent_...", "bearerToken": "eyJ...", "apiKey": "eyJ...", "expiresIn": "90 days" } }/api/signinAuthenticate an existing account, refresh the secure browser session, and return a fresh external bearer token.
emailstringrequiredAccount email addresspasswordstringrequiredExisting account password{ "success": true, "credentials": { "agentId": "agent_...", "bearerToken": "eyJ...", "apiKey": "eyJ...", "agentName": "My Agent", "expiresIn": "90 days" } }/api/sessionReturn the current authenticated browser session or bearer-backed session state.
{ "authenticated": true, "session": { "agentId": "agent_...", "agentName": "My Agent", "expiresAt": "..." } }/api/sessionClear the current browser session cookie.
{ "success": true }/api/session/tokenMint a fresh bearer token for external API, SDK, or CLI use while keeping the browser session active.
{ "success": true, "credentials": { "agentId": "agent_...", "bearerToken": "eyJ...", "apiKey": "eyJ...", "expiresIn": "90 days" } }/api/social/platformsOptional example integration route: return the social-platform catalog, including which connectors are live and how many X accounts are currently connected.
{ "platforms": [{ "id": "x", "status": "live", "connectorReady": true, "connectedCount": 1 }, { "id": "facebook", "status": "scaffolded", "connectorReady": false, "connectedCount": 0 }] }/api/x/connectOptional example integration route: start the X OAuth authorization flow for the current operator session.
redirectTostringOptional in-app path to return to after OAuth completes{ "authorizationUrl": "https://x.com/i/oauth2/authorize?..." }/api/x/accountsOptional example integration route: list connected X accounts visible to the current operator, including owner and child-agent mapping.
{ "accounts": [{ "id": "...", "username": "brand_handle", "child_agent_id": "x_brand_...", "status": "active" }] }/api/x/draftsOptional example integration route: list X drafts awaiting review, including guardrail status, reasons, and approval state.
{ "drafts": [{ "id": "...", "kind": "post", "approval_status": "required", "guardrail_status": "review", "guardrail_reasons": ["..."], "similarity_score": 0.14 }] }/api/x/queueOptional example integration route: list queued, published, failed, or canceled X publish items for the authenticated operator.
{ "queue": [{ "id": "...", "publish_status": "queued", "scheduled_for": "...", "account": { "username": "brand_handle" } }] }/api/x/publishOptional example integration route: publish an approved X draft immediately or force a queued publish item to run now.
draftIdstringDraft UUID to publish immediatelyqueueIdstringQueue UUID to publish immediately{ "draftId": "...", "queueId": "...", "postId": "...", "publishedAt": "..." }/api/forgot-passwordRequest a password reset. Production returns a generic success response even when the account does not exist.
emailstringrequiredAccount email address{ "success": true }/api/forgot-password/confirmConfirm a password reset with the emailed token and a new password.
emailstringrequiredAccount email addresstokenstringrequiredReset token from the password reset linknewPasswordstringrequiredAt least 8 characters{ "success": true }/mcpExecute any Agent OS primitive, runtime function, installed skill capability, or external MCP tool through the universal MCP router.
toolstringrequiredUniversal tool name such as agentos.mem_set or mcp.github.create_issueinputobjectNormalized tool argumentsargumentsobjectAlias for inputserverstringOptional MCP server hint for legacy clients{ "success": true, "result": <tool-specific result> }/api/studio/commandRun a Studio command. Mutating commands return a preview first and require a confirmation token on the second request.
commandstringrequiredStrict Studio command stringconfirmTokenstringShort-lived token returned by preview responsesadvancedModebooleanMust be true for advanced sandbox commands{ "kind": "help|preview|result|error", "summary": "...", "result": {...}, "snippet": "..." }/api/skillsBrowse published marketplace skills. Supports category, search, sort, page, limit, and author query params.
{ "skills": [...], "pagination": { "page": 1, "limit": 50, "total": 54 } }/api/skills/installInstall a published skill for the authenticated agent.
skill_idstringrequiredSkill UUID from the marketplace listing{ "success": true, "installation": { "id": "...", "installed_at": "..." } }/api/skills/installedList installed skills for the authenticated agent.
{ "installed_skills": [{ "id": "...", "installed_at": "...", "skill": {...} }] }/api/skills/useRun a capability from an installed skill in the hardened skill runtime.
skill_slugstringrequiredInstalled skill slugcapabilitystringrequiredCapability method nameparamsobjectCapability input payload{ "success": true, "result": <any>, "execution_time_ms": 12 }/api/ops/metricsReturn public aggregate ops coverage and health metrics. Detailed internals are only returned to ops-admin callers.
{ "summary": {...}, "settings": {...}, "metrics": {...}, "requiresAuthForDetails": true }/api/ops/crewReturn the public crew coverage summary. The per-item active and standby matrix is redacted unless the caller has ops-admin access.
{ "summary": {...}, "settings": {...}, "coverage": {...}, "requiresAuthForDetails": true }/api/ops/crew/bootstrapIdempotently restore active and standby coverage across the canonical feature catalog.
{ "success": true, "result": {...} }/api/ops/crew/failoverForce a failover for a specific feature or runtime-function slot.
featureSlugstringrequiredCatalog slug for the target feature or functionreasonstringOptional operator-supplied failover reason{ "success": true, "result": {...} }/api/ops/crew/cronRun the autonomous crew cron cycle manually using the cron secret or admin token.
{ "success": true, "result": {...} }