API Reference
Production route contracts verified against the live Agent OS deployment.
/api/signup or /api/signin. External callers should use the returned bearerToken when the active plan includes bearer access. The legacy apiKey field remains as an alias for compatibility.https://www.agentos.services/healthLiveness check for the production app and tool registry.
{ "status": "ok", "version": "6.6.7", "timestamp": "...", "tools": 44 }/toolsList the universal MCP tool registry exposed by Agent OS.
{ "tools": [{ "name": "agentos.mem_set", "description": "...", "inputSchema": {...} }] }/registerSelf-service external-agent registration. Creates a private internal identifier automatically and returns a 90-day bearer token for universal MCP access.
namestringrequiredHuman-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.{"token":"eyJ...","expiresIn":"90d","allowedDomains":["httpbin.org"],"allowedTools":["agentos.net_http_get"],"mcpEndpoint":"https://www.agentos.services/mcp","toolsEndpoint":"https://www.agentos.services/tools"}/agent/meReturn the current external-agent registration details without reissuing the token.
{"name":"My Agent","status":"active","allowedDomains":["httpbin.org"],"allowedTools":["agentos.net_http_get"],"totalCalls":1,"lastActiveAt":"...","createdAt":"...","mcpEndpoint":"https://www.agentos.services/mcp","toolsEndpoint":"https://www.agentos.services/tools"}/api/agentsList deployed agents and subagents for the current operator. Internal agent IDs are never returned; use the returned public action reference only when calling agent action routes.
{ "agents": [{ "agentRef": "agref-...", "name": "Research Agent", "isSubagent": false, "status": "active" }] }/api/agentsDeploy a named subagent. Pass parentAgentRef from /api/agents when nesting under another deployed agent.
namestringrequiredUnique subagent display namedescriptionstringOptional purpose summaryparentAgentRefstringPublic action reference from /api/agents; never an internal agent ID{ "agent": { "agentRef": "agref-...", "name": "Research Subagent", "isSubagent": true, "status": "active" }, "apiKey": "eyJ..." }/api/signupCreate an AgentOS account, provision the default workspace surfaces, start a secure browser session, and return a 90-day bearer token only on plans with bearer access.
emailstringrequiredValid email addresspasswordstringrequiredAt least 8 charactersagentNamestringOptional display name for the new agentaccountTyperetail | enterpriserequiredRetail or enterprise signup surfaceselectedPlanretail_free | retail_pro | enterprise_plus | enterprise_maxrequiredBeta plan selected during signupplanSelectionSkippedbooleanInternal onboarding fallback. Defaults to false.{ "success": true, "redirectTo": "/", "credentials": { "bearerToken": "eyJ..." | null, "apiKey": "eyJ..." | null, "plan": "retail_pro", "planLabel": "Pro", "capabilities": ["use_nl_studio", "use_bearer_token"], "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": { "bearerToken": "eyJ...", "apiKey": "eyJ...", "agentName": "My Agent", "expiresIn": "90 days" } }/api/sessionReturn the current authenticated browser session or bearer-backed session state. Internal identifiers are private and not displayed in public docs.
{ "authenticated": true, "session": { "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. Requires a plan with bearer-token capability.
{ "success": true, "credentials": { "bearerToken": "eyJ...", "apiKey": "eyJ...", "expiresIn": "90 days" } }/api/bearer-tokensList named scoped bearer tokens. Values are masked after one-time creation or rotation reveal.
{ "tokens": [{ "name": "Workspace API", "scopes": ["workspace", "api"], "maskedToken": "eyJhbGci...abc123", "lastUsedAt": null }] }/api/bearer-tokensCreate a named scoped bearer token for workspace, project, app, workflow, MCP connector, external agent/tool, or API access.
namestringrequiredHuman-readable token nameworkspaceIdstringWorkspace scopeprojectIdstringProject scopescopesstring[]workspace, project, app, workflow, mcp_connector, external_agent, or api{ "token": {...}, "bearerToken": "eyJ...", "oneTimeReveal": true }/api/bearer-tokensRename, rescope, rotate, or revoke a bearer token. Rotation returns the new bearer token once.
idstringrequiredBearer token idactionrotate | revokeOptional lifecycle action{ "token": {...}, "bearerToken": "eyJ..." | undefined, "oneTimeReveal": true }/api/bearer-tokensRevoke a bearer token without deleting its audit trail.
idstringrequiredBearer token id{ "revoked": true, "token": {...} }/api/plans/transitionTransition the authenticated account and its primary workspace to another public beta plan. Free beta mode records the transition and applies no charge.
newPlanretail_free | retail_pro | enterprise_plus | enterprise_maxrequiredTarget beta planreasonstringOptional audit reason. Defaults to beta_self_serve_upgrade.{ "transitioned": true, "noChange": false, "transition": { "oldPlan": "retail_free", "newPlan": "retail_pro", "newCapabilities": ["use_bearer_token"] }, "billing": { "mode": "free_beta", "charged": false } }/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 without exposing private child-agent IDs.
{ "accounts": [{ "id": "...", "username": "brand_handle", "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/connectorsList universal MCP connectors with real tool counts, health, permission scope, last audit outcome, and related apps, workflows, and skills.
{ "connectors": [{ "slug": "github", "toolCount": 12, "healthStatus": "active", "permissionScope": { "apps": ["issue-triage"] }, "lastAuditOutcome": { "success": true, "tool": "mcp.github.create_issue" }, "usedBy": { "apps": [...], "workflows": [...], "skills": [...] } }] }/api/ffp/routesList recorded FFP runtime executions with route decisions, fallback lineage, invoker lineage, and related apps, workflows, and skills.
{ "routes": [{ "tool": "mcp.github.create_issue", "primitive": "github", "fallbackUsed": false, "invokedByType": "workflow", "routeDecision": { "source": "external_mcp" }, "related": { "apps": [...], "workflows": [...], "skills": [...] } }], "primitives": [{ "primitive": "github", "executions": 4, "fallbackCount": 1 }] }/api/ffp/tempRead the disabled FFP compatibility status. All runtime execution bypasses FFP in v6.6.7.
{ "enabled": false, "status": "FFP Disabled", "route": "Multi-agent activities -> Unified Execution Engine" }/api/ffp/tempReturns 405 Method Not Allowed. FFP cannot be activated in v6.6.7.
enabledbooleanrequiredWorkspace-level FFP temp toggleworkspaceIdstringWorkspace scope{ "error": "Method Not Allowed", "enabled": false, "status": "FFP Disabled" }/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/studio/intent/streamStream a Super AgentOS chat request while persisting an execution record, logs, final reply, approvals, and notifications.
messagestringrequiredUser request for Super AgentOSsessionIdstringrequiredStudio session idworkspaceIdstringWorkspace scopeprojectIdstringProject scopetext/event-stream: execution, reply, error, and done events/api/executionsSearch persisted executions by status, source type, workflow, app, skill, session, workspace, or title.
{ "executions": [{ "id": "...", "type": "CHAT_EXECUTION", "status": "COMPLETED", "sourceType": "super_agent", "title": "..." }] }/api/executions/{id}Load one execution and its execution logs.
{ "execution": {...}, "logs": [{ "level": "info", "message": "..." }] }/api/executions/{id}/actionsPersist an execution action request: pause, resume, retry, cancel, or rollback.
actionpause | resume | retry | cancel | rollbackrequiredRequested execution action{ "execution": { "id": "...", "status": "PAUSED" } }/api/recoveryList recoverable executions for the Recovery Center.
{ "executions": [{ "status": "failed", "failure": { "whatFailed": "..." } }] }/api/recoveryResume, retry, cancel, or rollback a recoverable execution.
executionIdstringrequiredExecution idactionresume | retry | cancel | rollbackrequiredRecovery action{ "execution": {...} }/api/panicCancel active QUEUED, RUNNING, and PAUSED executions in scope and create a notification.
workspaceIdstringOptional workspace scopesessionIdstringOptional session scope{ "stopped": 2, "executions": [...] }/api/notificationsList task, approval, workflow, recovery, and panic notifications.
{ "notifications": [{ "title": "Task completed", "status": "unread" }] }/api/notificationsCreate a notification or mark one read, unread, or archived.
notificationIdstringExisting notification to updatestatusread | unread | archivedNext notification statustitlestringTitle for a new notification{ "notification": {...} }/api/skillsBrowse published Skill Store skills. Supports category, search, sort, page, limit, and author query params.
{ "skills": [...], "pagination": { "page": 1, "limit": 50, "total": 54 } }/api/skills/discoveryBrowse the v6.6.7 Skill Store marketplace with ranked search, categories, installed state, grouped discovery rows, recommendations, and developer spotlight.
{ "skills": [...], "categories": ["AI", "Research"], "installedSlugs": [], "sections": [...] }/api/skills/{id}/previewPreview input, output, execution example, and expected result before installing a capability.
{ "skill": {...}, "preview": { "inputExample": {...}, "outputExample": {...}, "executionExample": {...}, "expectedResults": {...} } }/api/appsBrowse published App Store listings. Supports category, search, and sort query params.
{ "apps": [...], "categories": ["All", "Research", "..."], "pagination": { "total": 6 } }/api/apps/discoveryBrowse the v6.6.7 App Store with ranked search, installed priority, hero apps, featured, trending, recommended, new releases, recently updated, top installed, category rows, and developer spotlight.
{ "apps": [...], "installedSlugs": [], "categories": ["Finance", "Trading"], "sections": [...], "hero": [...] }/api/apps/{slug}Load a single App Store listing by slug. Includes visibility filtering and an owner flag when the caller is authenticated.
{ "app": {...}, "viewerOwnsApp": false }/api/apps/{slug}/readinessResolve app readiness for the current viewer: installation state, required permissions, missing permissions, missing secrets, missing skills, updateAvailable, and target URLs.
{ "installation": {...}, "requiredPermissions": ["vault"], "missingPermissions": [], "missingSecrets": [], "missingSkills": [], "ready": true, "updateAvailable": false, "targets": [{ "target": "web", "url": "https://..." }] }/api/appsPublish a full agentic app to the App Store automatically.
namestringrequiredHuman-readable app namecategorystringrequiredApp Store category such as Research, Finance, Data, or OperationsdescriptionstringrequiredShort listing descriptiondeviceTargetsstring[]Targets such as AgentOS Desktop, AgentOS Cloud, or Enterprise WorkspacemanifestobjectRuntime, entrypoint, primitives, skills, permissions, required secrets, and commandsdefaultConfigobjectDefault app configuration. Do not include secrets.{ "success": true, "app": { "slug": "invoice-ops-agent", "published": true } }/api/apps/installInstall or update an app into the workspace after re-running readiness checks. Workspace install creates ownership, Library availability, an execution, activity, notification, and package cache where applicable.
slugstringrequiredApp slugworkspaceIdstringOptional workspace overridepermissionsApprovedstring[]Permission approvals to apply during install{ "app": {...}, "installation": {...}, "readiness": { "ready": true, "targets": [{ "target": "web", "url": "https://..." }] } }/api/apps/{slug}/device-installDeploy a workspace-installed app to Android, iOS, Desktop, or PWA from Library using the cached workspace package. Does not require returning to App Store.
targetandroid | ios | desktop | pwarequiredLocal device targetworkspaceIdstringWorkspace that owns the app installation{ "workspaceInstalled": true, "deviceInstalled": true, "target": "pwa", "packageCachedForOfflineInstall": true, "execution": {...} }/api/apps/{slug}/device-installRemove only a local device install. Permanent marketplace ownership remains attached to the account.
{ "removed": true, "ownershipPreserved": true, "target": "desktop" }/api/apps/updatesList installed apps with available updates, release notes, current version, and installed version.
{ "updates": [{ "app": {...}, "currentVersion": "1.2.0", "installedVersion": "1.1.0", "releaseNotes": "..." }], "total": 1 }/api/apps/updatesUpdate all available app updates for the current account.
{ "updated": [...], "total": 2 }/api/apps/{slug}/rollbackRoll back an installed app to a prior recorded version while preserving ownership.
{ "app": {...}, "installation": {...}, "rolledBackTo": "1.1.0" }/api/apps/installedList installed apps and their readiness state for the current agent.
{ "installedApps": [{ "slug": "research-kit", "installation": {...}, "readiness": { "ready": true, "updateAvailable": false } }] }/api/apps/{slug}/openOpen an installed app on a specific target. Re-runs readiness and returns typed failures when the app is stale.
targetstringOne of web, android, or ios. Defaults to web.{ "app": {...}, "installation": {...}, "openUrl": "https://...", "target": "web" }/api/apps/{slug}/installationUpdate installation state: favorite, permissionsApproved, active, or disabled.
favoritebooleanPin or unpin the installed apppermissionsApprovedstring[]Updated permission approval setstatusstringactive, disabled, or removed{ "app": {...}, "installation": {...} }/api/apps/{slug}/installationUninstall an app for the current agent.
{ "removed": true, "app": {...}, "installation": {...} }/api/apps/{slug}/downloadDownload an AgentOS app package for device or workspace installation.
{ "schema": "agentos.app.v1", "app": {...}, "manifest": {...}, "defaultConfig": {...} }/api/vault/accessValidate assignment and create a temporary runtime secret grant for a skill or app-backed runtime subject.
actionstringrequiredUse runtime for runtime grantsworkspaceIdstringrequiredWorkspace that owns the secretsecretNamestringrequiredVault secret namesubjectTypestringrequiredskill or appsubjectIdstringrequiredRuntime subject identifierappSlugstringRequired for app-scoped permission validation{ "granted": true, "grant": { "id": "...", "name": "OPENAI_API_KEY", "status": "active", "expiresAt": "..." } }/api/vault/runtime-grants/consumeConsume or clean up a runtime secret grant from an authenticated SDK kernel runtime.
grantIdstringrequiredRuntime grant id from /api/vault/accessactionstringUse cleanup to revoke without consuming again{ "secret": { "name": "OPENAI_API_KEY", "value": "..." }, "grant": { "id": "...", "status": "consumed" } }/api/skills/installInstall a published skill for the authenticated agent, approve permissions, and auto-resolve required dependencies.
skill_idstringSkill UUID from the Skill Store listingslugstringSkill slug from the Skill Store listingpermissionsApprovedstring[]Approved permissions required before executioninstallDependenciesbooleanAuto-install required skills. Defaults to true.optionalDependenciesstring[]Optional skill dependency slugs to install{ "success": true, "installation": {...}, "skill": {...}, "dependenciesInstalled": [...] }/api/skills/{id}/installationReview, modify, or revoke installed skill permissions. Revoked required permissions block execution.
permissionsApprovedstring[]Next approved permission setstatusactive | disabled | removedInstallation status{ "skill": {...}, "installation": {...} }/api/developers/{handle}Load a public developer profile by safe public handle with published apps, skills, followers, downloads, and active users.
{ "developer": { "handle": "research-labs", "appsPublished": 2, "skillsPublished": 3, "apps": [...], "skills": [...] } }/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, "execution": {...} }/api/filesList or search governed files. Use action=preview or action=summarize with path for file-specific operations.
{ "entries": [{ "path": "brief.md", "visibility": "private" }] }/api/filesUpload or save a governed file and persist the file execution.
pathstringrequiredFile pathdatastringUTF-8 or base64 contentcontentEncodingutf8 | base64Payload encodingvisibilityprivate | workspace | publicGoverned visibility{ "entry": {...}, "execution": {...} }/api/filesRename a governed file and persist the file execution.
pathstringrequiredCurrent file pathnextPathstringrequiredNew file path{ "entry": {...}, "execution": {...} }/api/filesDelete a governed file by path and persist the file execution.
{ "path": "brief.md", "deleted": true, "execution": {...} }/api/memoryList, search, or export governed memory. Add export=1 to return the V6.6.2 memory export payload.
{ "entries": [{ "key": "preference", "namespaceType": "user" }], "viewerAgentId": "..." }/api/memoryCreate or update governed memory and persist the memory execution.
keystringrequiredMemory keycontentstringrequiredMemory contentnamespaceTypeuser | agent | subagent | workspace | workflow | app | skillMemory namespacevisibilityprivate | workspace | publicGoverned visibility{ "entry": {...}, "execution": {...} }/api/memoryDelete governed memory by key and namespace and persist the memory execution.
{ "deleted": true, "execution": {...} }/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": {...} }