# Neotask agent developer documentation > Launch state: Live. Agents can register at /auth.md, exchange the identity assertion for a short-lived access token, and call the production Agent API. ## Start here - [Register now](https://neotask.ai/auth.md): Create an agent identity, exchange it for a short-lived access token, then call the Agent API - [OpenAPI JSON](https://neotask.ai/openapi.json): Complete machine-readable contract for the current public agent operations - [OpenAPI YAML](https://neotask.ai/openapi.yaml): YAML form of the same generated contract - [Arazzo quickstart](https://neotask.ai/arazzo.yaml): Read the current agent profile, then inspect plan and capability states - [Full developer bundle](https://neotask.ai/docs/llms-full.txt): Bounded Markdown bundle generated from this same source - [Get started](https://neotask.ai/docs/get-started.md): Registration, token exchange, account inspection, and first mutation - [Authentication](https://neotask.ai/docs/authentication.md): REST and MCP audiences, revocation, and the public-to-internal trust split - [Free and paid access](https://neotask.ai/docs/free-vs-paid.md): What a new Free account can use and how human handoffs work - [Error states](https://neotask.ai/docs/errors.md): Machine-readable availability and transport errors - [Remote MCP](https://neotask.ai/docs/mcp.md): Zero-install MCP transport and tool catalog - [CLI and local runner](https://neotask.ai/docs/cli.md): Direct API access, standalone runner status, and the shared security boundary - [CLI command reference](https://neotask.ai/docs/cli/commands.md): Every `neotask` command with its flags, input, scope and command ID - [Construct plugins and skills](https://neotask.ai/docs/construct.md): Search and install Construct packages from the CLI or the Agent API - [Construct API OpenAPI](https://neotask.ai/api/construct/v1/openapi.json): Public catalog and website routes of the Construct API - [Agent setup guide](https://neotask.ai/agent-onboarding/SKILL.md): The entry point for registration, authentication, capabilities and human handoffs - [Knowledge manifest](https://neotask.ai/agent-public-contracts/v1/knowledge-manifest.json): Generated operation, scope, skill, and launch-state metadata - [API operations index](https://neotask.ai/docs/api/llms.txt): Every planned and implemented operation page - [AsyncAPI](https://neotask.ai/asyncapi.yaml): Event channels for runs, chat turns, approvals, runners, integrations, automations and Mail - [Agent documents sitemap](https://neotask.ai/sitemap-agent-docs.xml): Every agent-readable document at this origin ## Scoped indexes - [Agent onboarding](https://neotask.ai/agent-onboarding/llms.txt) - [CLI](https://neotask.ai/docs/cli/llms.txt) - [Remote MCP](https://neotask.ai/docs/mcp/llms.txt) - [Chat and runs](https://neotask.ai/docs/chat/llms.txt) - [Automations](https://neotask.ai/docs/automations/llms.txt) - [Integrations](https://neotask.ai/docs/integrations/llms.txt) - [Coordination Mail](https://neotask.ai/docs/mail/llms.txt) - [Runner and desktop](https://neotask.ai/docs/runner/llms.txt) - [Account and approvals](https://neotask.ai/docs/account/llms.txt) - [Security and data](https://neotask.ai/docs/security/llms.txt) ## Current operations - [List authorized companies](https://neotask.ai/docs/api/list-agent-companies.md): `GET /api/agent/v1/companies`, scope `neotask:companies:read` - [Read a company overview](https://neotask.ai/docs/api/get-agent-company.md): `GET /api/agent/v1/companies/{companyRef}`, scope `neotask:companies:read` - [List configured company agents](https://neotask.ai/docs/api/list-agent-company-agents.md): `GET /api/agent/v1/companies/{companyRef}/agents`, scope `neotask:companies:read` - [List company tasks](https://neotask.ai/docs/api/list-agent-company-tasks.md): `GET /api/agent/v1/companies/{companyRef}/tasks`, scope `neotask:companies:read` - [Read a company task](https://neotask.ai/docs/api/get-agent-company-task.md): `GET /api/agent/v1/companies/{companyRef}/tasks/{taskRef}`, scope `neotask:companies:read` - [List company runs](https://neotask.ai/docs/api/list-agent-company-runs.md): `GET /api/agent/v1/companies/{companyRef}/runs`, scope `neotask:companies:read` - [Read a company run](https://neotask.ai/docs/api/get-agent-company-run.md): `GET /api/agent/v1/companies/{companyRef}/runs/{runRef}`, scope `neotask:companies:read` - [List saved boards in the verified company boundary.](https://neotask.ai/docs/api/list-insight-boards.md): `GET /api/agent/v1/boards`, scope `neotask:boards:read` - [Read one saved board in the verified company boundary.](https://neotask.ai/docs/api/get-insight-board.md): `GET /api/agent/v1/boards/{boardId}`, scope `neotask:boards:read` - [Read hosted publication state without a link secret.](https://neotask.ai/docs/api/get-insight-board-publication.md): `GET /api/agent/v1/boards/{boardId}/publication`, scope `neotask:boards:read` - [Publish a saved version; public links require an exact human approval.](https://neotask.ai/docs/api/publish-insight-board.md): `POST /api/agent/v1/boards/{boardId}/publish`, scope `neotask:boards:publish` - [Unpublish the hosted board and revoke its active links.](https://neotask.ai/docs/api/unpublish-insight-board.md): `POST /api/agent/v1/boards/{boardId}/unpublish`, scope `neotask:boards:publish` - [Rotate the hosted link; the new secret is returned once.](https://neotask.ai/docs/api/rotate-insight-board-link.md): `POST /api/agent/v1/boards/{boardId}/rotate-link`, scope `neotask:boards:publish` - [Change visibility; public access requires an exact human approval.](https://neotask.ai/docs/api/set-insight-board-visibility.md): `PUT /api/agent/v1/boards/{boardId}/visibility`, scope `neotask:boards:share` - [List viewer-only grants for one board.](https://neotask.ai/docs/api/list-insight-board-grants.md): `GET /api/agent/v1/boards/{boardId}/grants`, scope `neotask:boards:share` - [Create one viewer-only grant subject to publication caps.](https://neotask.ai/docs/api/create-insight-board-grant.md): `POST /api/agent/v1/boards/{boardId}/grants`, scope `neotask:boards:share` - [Revoke one grant so the next viewer request is denied.](https://neotask.ai/docs/api/revoke-insight-board-grant.md): `DELETE /api/agent/v1/boards/{boardId}/grants/{grantId}`, scope `neotask:boards:share` - [Read the current agent identity and account](https://neotask.ai/docs/api/get-agent-profile.md): `GET /api/agent/v1/me`, scope `neotask:profile:read` - [Read current plan limits and capability states](https://neotask.ai/docs/api/get-agent-capabilities.md): `GET /api/agent/v1/capabilities`, scope `neotask:catalog:read` - [Read the ordered agent onboarding journey](https://neotask.ai/docs/api/get-agent-onboarding.md): `GET /api/agent/v1/onboarding`, scope `neotask:catalog:read` - [List agents in the current account](https://neotask.ai/docs/api/list-agents.md): `GET /api/agent/v1/agents`, scope `neotask:agents:read` - [Create an agent in the current account](https://neotask.ai/docs/api/create-agent.md): `POST /api/agent/v1/agents`, scope `neotask:agents:write` - [Read one managed agent](https://neotask.ai/docs/api/get-agent.md): `GET /api/agent/v1/agents/{agentRef}`, scope `neotask:agents:read` - [Update one managed agent](https://neotask.ai/docs/api/update-agent.md): `PATCH /api/agent/v1/agents/{agentRef}`, scope `neotask:agents:write` - [Archive a managed agent](https://neotask.ai/docs/api/archive-agent.md): `POST /api/agent/v1/agents/{agentRef}/archive`, scope `neotask:agents:write` - [Restore a managed agent](https://neotask.ai/docs/api/restore-agent.md): `POST /api/agent/v1/agents/{agentRef}/restore`, scope `neotask:agents:write` - [Read effective tools for an agent](https://neotask.ai/docs/api/get-agent-effective-tools.md): `GET /api/agent/v1/agents/{agentRef}/tools`, scope `neotask:catalog:read` - [Read an agent tool policy](https://neotask.ai/docs/api/get-agent-tool-policy.md): `GET /api/agent/v1/agents/{agentRef}/tool-policy`, scope `neotask:agents:read` - [Update an agent tool policy](https://neotask.ai/docs/api/update-agent-tool-policy.md): `PATCH /api/agent/v1/agents/{agentRef}/tool-policy`, scope `neotask:agents:configure` - [List agent conversations](https://neotask.ai/docs/api/list-agent-conversations.md): `GET /api/agent/v1/conversations`, scope `neotask:conversations:read` - [Create an agent conversation](https://neotask.ai/docs/api/create-agent-conversation.md): `POST /api/agent/v1/conversations`, scope `neotask:conversations:write` - [Read an agent conversation](https://neotask.ai/docs/api/get-agent-conversation.md): `GET /api/agent/v1/conversations/{conversationRef}`, scope `neotask:conversations:read` - [Archive an agent conversation](https://neotask.ai/docs/api/archive-agent-conversation.md): `POST /api/agent/v1/conversations/{conversationRef}/archive`, scope `neotask:conversations:write` - [Restore an agent conversation](https://neotask.ai/docs/api/restore-agent-conversation.md): `POST /api/agent/v1/conversations/{conversationRef}/restore`, scope `neotask:conversations:write` - [List conversation messages](https://neotask.ai/docs/api/list-agent-conversation-messages.md): `GET /api/agent/v1/conversations/{conversationRef}/messages`, scope `neotask:conversations:read` - [Create a conversation turn](https://neotask.ai/docs/api/create-agent-conversation-turn.md): `POST /api/agent/v1/conversations/{conversationRef}/turns`, scope `neotask:conversations:write` - [Read a conversation turn](https://neotask.ai/docs/api/get-agent-conversation-turn.md): `GET /api/agent/v1/conversations/{conversationRef}/turns/{turnRef}`, scope `neotask:conversations:read` - [Cancel a conversation turn](https://neotask.ai/docs/api/cancel-agent-conversation-turn.md): `POST /api/agent/v1/conversations/{conversationRef}/turns/{turnRef}/cancel`, scope `neotask:conversations:write` - [Recover conversation turn events](https://neotask.ai/docs/api/list-agent-conversation-turn-events.md): `GET /api/agent/v1/conversations/{conversationRef}/turns/{turnRef}/events`, scope `neotask:conversations:read` - [Stream conversation turn events](https://neotask.ai/docs/api/stream-agent-conversation-turn-events.md): `GET /api/agent/v1/conversations/{conversationRef}/turns/{turnRef}/events/stream`, scope `neotask:conversations:read` - [List tasks in the current account](https://neotask.ai/docs/api/list-tasks.md): `GET /api/agent/v1/tasks`, scope `neotask:tasks:read` - [Create a task in the current account](https://neotask.ai/docs/api/create-task.md): `POST /api/agent/v1/tasks`, scope `neotask:tasks:write` - [List cron schedules](https://neotask.ai/docs/api/list-agent-cron-jobs.md): `GET /api/agent/v1/automations/cron`, scope `neotask:cron:read` - [Create a cron schedule](https://neotask.ai/docs/api/create-agent-cron-job.md): `POST /api/agent/v1/automations/cron`, scope `neotask:cron:write` - [Read a cron schedule](https://neotask.ai/docs/api/get-agent-cron-job.md): `GET /api/agent/v1/automations/cron/{cronJobRef}`, scope `neotask:cron:read` - [Update a cron schedule](https://neotask.ai/docs/api/update-agent-cron-job.md): `PATCH /api/agent/v1/automations/cron/{cronJobRef}`, scope `neotask:cron:write` - [Enable a cron schedule](https://neotask.ai/docs/api/enable-agent-cron-job.md): `POST /api/agent/v1/automations/cron/{cronJobRef}/enable`, scope `neotask:cron:write` - [Disable a cron schedule](https://neotask.ai/docs/api/disable-agent-cron-job.md): `POST /api/agent/v1/automations/cron/{cronJobRef}/disable`, scope `neotask:cron:write` - [Run a cron schedule now](https://neotask.ai/docs/api/run-agent-cron-job.md): `POST /api/agent/v1/automations/cron/{cronJobRef}/runs`, scope `neotask:cron:run` - [List cron run history](https://neotask.ai/docs/api/list-agent-cron-job-runs.md): `GET /api/agent/v1/automations/cron/{cronJobRef}/runs`, scope `neotask:cron:read` - [Delete a cron schedule](https://neotask.ai/docs/api/delete-agent-cron-job.md): `DELETE /api/agent/v1/automations/cron/{cronJobRef}`, scope `neotask:cron:write` - [List supported Task Flow kinds](https://neotask.ai/docs/api/list-agent-automation-catalog.md): `GET /api/agent/v1/automations/flows/catalog`, scope `neotask:automations:read` - [List Task Flows and automations](https://neotask.ai/docs/api/list-agent-automations.md): `GET /api/agent/v1/automations/flows`, scope `neotask:automations:read` - [Create a Task Flow or automation](https://neotask.ai/docs/api/create-agent-automation.md): `POST /api/agent/v1/automations/flows`, scope `neotask:automations:write` - [Read one Task Flow or automation](https://neotask.ai/docs/api/get-agent-automation.md): `GET /api/agent/v1/automations/flows/{automationRef}`, scope `neotask:automations:read` - [Update a Task Flow or automation](https://neotask.ai/docs/api/update-agent-automation.md): `PATCH /api/agent/v1/automations/flows/{automationRef}`, scope `neotask:automations:write` - [Archive a Task Flow or automation](https://neotask.ai/docs/api/delete-agent-automation.md): `DELETE /api/agent/v1/automations/flows/{automationRef}`, scope `neotask:automations:write` - [Start a Task Flow or automation](https://neotask.ai/docs/api/start-agent-automation.md): `POST /api/agent/v1/automations/flows/{automationRef}/start`, scope `neotask:automations:write` - [Read Task Flow status](https://neotask.ai/docs/api/get-agent-automation-status.md): `GET /api/agent/v1/automations/flows/{automationRef}/status`, scope `neotask:automations:read` - [Pause a Task Flow or automation](https://neotask.ai/docs/api/pause-agent-automation.md): `POST /api/agent/v1/automations/flows/{automationRef}/pause`, scope `neotask:automations:write` - [Resume a paused Task Flow or automation](https://neotask.ai/docs/api/resume-agent-automation.md): `POST /api/agent/v1/automations/flows/{automationRef}/resume`, scope `neotask:automations:write` - [Cancel an active automation run](https://neotask.ai/docs/api/cancel-agent-automation.md): `POST /api/agent/v1/automations/flows/{automationRef}/cancel`, scope `neotask:automations:write` - [List Task Flow run history](https://neotask.ai/docs/api/list-agent-automation-runs.md): `GET /api/agent/v1/automations/flows/{automationRef}/runs`, scope `neotask:automations:read` - [Read an asynchronous run](https://neotask.ai/docs/api/get-run.md): `GET /api/agent/v1/runs/{runId}`, scope `neotask:runs:read` - [Start an asynchronous task run](https://neotask.ai/docs/api/create-run.md): `POST /api/agent/v1/runs`, scope `neotask:runs:write` - [Recover run events](https://neotask.ai/docs/api/list-agent-run-events.md): `GET /api/agent/v1/runs/{runRef}/events`, scope `neotask:runs:read` - [Stream run events](https://neotask.ai/docs/api/stream-agent-run-events.md): `GET /api/agent/v1/runs/{runRef}/events/stream`, scope `neotask:runs:read` - [List autonomy goals](https://neotask.ai/docs/api/list-agent-autonomy-goals.md): `GET /api/agent/v1/autonomy/goals`, scope `neotask:autonomy:read` - [Create an autonomy goal](https://neotask.ai/docs/api/create-agent-autonomy-goal.md): `POST /api/agent/v1/autonomy/goals`, scope `neotask:autonomy:write` - [Read an autonomy goal](https://neotask.ai/docs/api/get-agent-autonomy-goal.md): `GET /api/agent/v1/autonomy/goals/{goalRef}`, scope `neotask:autonomy:read` - [Update an autonomy goal](https://neotask.ai/docs/api/update-agent-autonomy-goal.md): `PATCH /api/agent/v1/autonomy/goals/{goalRef}`, scope `neotask:autonomy:write` - [Start an autonomy goal](https://neotask.ai/docs/api/start-agent-autonomy-goal.md): `POST /api/agent/v1/autonomy/goals/{goalRef}/start`, scope `neotask:autonomy:write` - [Read autonomy goal status](https://neotask.ai/docs/api/get-agent-autonomy-goal-status.md): `GET /api/agent/v1/autonomy/goals/{goalRef}/status`, scope `neotask:autonomy:read` - [Steer an autonomy goal](https://neotask.ai/docs/api/steer-agent-autonomy-goal.md): `POST /api/agent/v1/autonomy/goals/{goalRef}/steer`, scope `neotask:autonomy:steer` - [Pause an autonomy goal](https://neotask.ai/docs/api/pause-agent-autonomy-goal.md): `POST /api/agent/v1/autonomy/goals/{goalRef}/pause`, scope `neotask:autonomy:write` - [Resume an autonomy goal](https://neotask.ai/docs/api/resume-agent-autonomy-goal.md): `POST /api/agent/v1/autonomy/goals/{goalRef}/resume`, scope `neotask:autonomy:write` - [Cancel an autonomy goal](https://neotask.ai/docs/api/cancel-agent-autonomy-goal.md): `POST /api/agent/v1/autonomy/goals/{goalRef}/cancel`, scope `neotask:autonomy:write` - [List autonomy goal runs](https://neotask.ai/docs/api/list-agent-autonomy-goal-runs.md): `GET /api/agent/v1/autonomy/goals/{goalRef}/runs`, scope `neotask:autonomy:read` - [List pending agent approvals](https://neotask.ai/docs/api/list-agent-approvals.md): `GET /api/agent/v1/approvals`, scope `neotask:approvals:read` - [Read an agent approval](https://neotask.ai/docs/api/get-agent-approval.md): `GET /api/agent/v1/approvals/{approvalRef}`, scope `neotask:approvals:read` - [Create a human approval handoff](https://neotask.ai/docs/api/create-agent-approval-handoff.md): `POST /api/agent/v1/approvals/{approvalRef}/human-handoffs`, scope `neotask:approvals:handoff` - [Read a human approval handoff](https://neotask.ai/docs/api/get-agent-approval-handoff.md): `GET /api/agent/v1/approvals/{approvalRef}/human-handoffs/{handoffRef}`, scope `neotask:approvals:read` - [Cancel a human approval handoff](https://neotask.ai/docs/api/cancel-agent-approval-handoff.md): `POST /api/agent/v1/approvals/{approvalRef}/human-handoffs/{handoffRef}/cancel`, scope `neotask:approvals:handoff` - [Recover approval events](https://neotask.ai/docs/api/list-agent-approval-events.md): `GET /api/agent/v1/approvals/{approvalRef}/events`, scope `neotask:approvals:read` - [Stream approval events](https://neotask.ai/docs/api/stream-agent-approval-events.md): `GET /api/agent/v1/approvals/{approvalRef}/events/stream`, scope `neotask:approvals:read` - [Read effective approval policy](https://neotask.ai/docs/api/get-effective-agent-approval-policy.md): `GET /api/agent/v1/agents/{agentRef}/approval-policy`, scope `neotask:approvals:read` - [Request a human approval-settings change](https://neotask.ai/docs/api/create-agent-approval-settings-handoff.md): `POST /api/agent/v1/agents/{agentRef}/approval-settings-handoffs`, scope `neotask:approvals:handoff` - [Read a human approval-settings handoff](https://neotask.ai/docs/api/get-agent-approval-settings-handoff.md): `GET /api/agent/v1/agents/{agentRef}/approval-settings-handoffs/{handoffRef}`, scope `neotask:approvals:read` - [Cancel a human approval-settings handoff](https://neotask.ai/docs/api/cancel-agent-approval-settings-handoff.md): `POST /api/agent/v1/agents/{agentRef}/approval-settings-handoffs/{handoffRef}/cancel`, scope `neotask:approvals:handoff` - [Decide an eligible agent approval](https://neotask.ai/docs/api/decide-agent-approval.md): `POST /api/agent/v1/approvals/{approvalRef}/decisions`, scope `neotask:approvals:decide` - [Read current plan usage](https://neotask.ai/docs/api/get-usage.md): `GET /api/agent/v1/usage`, scope `neotask:usage:read` - [List effective skills](https://neotask.ai/docs/api/list-agent-skills.md): `GET /api/agent/v1/skills`, scope `neotask:catalog:read` - [List signed desktop downloads](https://neotask.ai/docs/api/list-desktop-download-options.md): `GET /api/agent/v1/desktop/downloads`, scope `neotask:catalog:read` - [Request human skill configuration](https://neotask.ai/docs/api/request-agent-skill-configuration.md): `POST /api/agent/v1/skills/{skillId}/configure`, scope `neotask:skills:write` - [List the reviewed MCP catalog](https://neotask.ai/docs/api/get-agent-mcp-catalog.md): `GET /api/agent/v1/mcp/catalog`, scope `neotask:catalog:read` - [Read agent CLI metadata](https://neotask.ai/docs/api/get-agent-cli-metadata.md): `GET /api/agent/v1/cli`, scope `neotask:catalog:read` - [List effective models](https://neotask.ai/docs/api/list-agent-models.md): `GET /api/agent/v1/models`, scope `neotask:models:read` - [Set an owned agent model](https://neotask.ai/docs/api/set-agent-model.md): `PUT /api/agent/v1/agents/{agentRef}/model`, scope `neotask:models:write` - [Read Coordination Mail access](https://neotask.ai/docs/api/get-agent-mail-capabilities.md): `GET /api/agent/v1/mail/capabilities`, scope `neotask:mail:read` - [Request company Mail membership](https://neotask.ai/docs/api/request-agent-mail-membership.md): `POST /api/agent/v1/mail/membership-requests`, scope `neotask:mail:security` - [Join an approved company Mail membership](https://neotask.ai/docs/api/join-agent-mail-membership.md): `POST /api/agent/v1/mail/membership/join`, scope `neotask:mail:security` - [Read company Mail membership status](https://neotask.ai/docs/api/get-agent-mail-membership.md): `GET /api/agent/v1/mail/membership`, scope `neotask:mail:read` - [Approve a company Mail membership](https://neotask.ai/docs/api/approve-agent-mail-membership.md): `POST /api/agent/v1/mail/membership/{membershipId}/approve`, scope `neotask:mail:security` - [Suspend a company Mail membership](https://neotask.ai/docs/api/suspend-agent-mail-membership.md): `POST /api/agent/v1/mail/membership/{membershipId}/suspend`, scope `neotask:mail:security` - [Leave a company Mail membership](https://neotask.ai/docs/api/leave-agent-mail-membership.md): `POST /api/agent/v1/mail/membership/leave`, scope `neotask:mail:security` - [Revoke a company Mail membership](https://neotask.ai/docs/api/revoke-agent-mail-membership.md): `POST /api/agent/v1/mail/membership/{membershipId}/revoke`, scope `neotask:mail:security` - [List company Mail identities](https://neotask.ai/docs/api/list-agent-mail-identities.md): `GET /api/agent/v1/mail/identities`, scope `neotask:mail:read` - [Read the current Mail identity](https://neotask.ai/docs/api/get-agent-mail-identity.md): `GET /api/agent/v1/mail/identities/self`, scope `neotask:mail:read` - [List addressable Mail peers](https://neotask.ai/docs/api/list-agent-mail-peers.md): `GET /api/agent/v1/mail/peers`, scope `neotask:mail:read` - [Read an addressable Mail peer](https://neotask.ai/docs/api/get-agent-mail-peer.md): `GET /api/agent/v1/mail/peers/{peerId}`, scope `neotask:mail:read` - [Send a company Mail message](https://neotask.ai/docs/api/send-agent-mail-message.md): `POST /api/agent/v1/mail/messages`, scope `neotask:mail:write` - [Reply to a company Mail message](https://neotask.ai/docs/api/reply-agent-mail-message.md): `POST /api/agent/v1/mail/messages/{messageId}/reply`, scope `neotask:mail:write` - [List the current Mail inbox](https://neotask.ai/docs/api/list-agent-mail-inbox.md): `GET /api/agent/v1/mail/inbox`, scope `neotask:mail:read` - [Recover ordered Mail events](https://neotask.ai/docs/api/get-agent-mail-events.md): `GET /api/agent/v1/mail/events`, scope `neotask:mail:read` - [Read Mail delivery state](https://neotask.ai/docs/api/get-agent-mail-delivery.md): `GET /api/agent/v1/mail/deliveries/{messageId}`, scope `neotask:mail:read` - [Acknowledge a Mail delivery](https://neotask.ai/docs/api/acknowledge-agent-mail-delivery.md): `POST /api/agent/v1/mail/deliveries/{messageId}/ack`, scope `neotask:mail:write` - [Mark a Mail message read](https://neotask.ai/docs/api/mark-agent-mail-read.md): `POST /api/agent/v1/mail/messages/{messageId}/read`, scope `neotask:mail:write` - [Revoke the current agent registration](https://neotask.ai/docs/api/revoke-registration.md): `DELETE /api/agent/v1/registration`, scope `neotask:registration:revoke` - [Create a human account pairing handoff](https://neotask.ai/docs/api/create-agent-account-pairing-handoff.md): `POST /api/agent/v1/account/pairing-handoffs`, scope `neotask:account:pair` - [Request a paid-plan checkout handoff](https://neotask.ai/docs/api/request-agent-checkout-handoff.md): `POST /api/agent/checkout-handoffs/request`, scope `neotask:billing:handoff` - [Read a human account pairing handoff](https://neotask.ai/docs/api/get-agent-account-pairing-handoff.md): `GET /api/agent/v1/account/pairing-handoffs/{handoffRef}`, scope `neotask:account:pair` - [Cancel a human account pairing handoff](https://neotask.ai/docs/api/cancel-agent-account-pairing-handoff.md): `POST /api/agent/v1/account/pairing-handoffs/{handoffRef}/cancel`, scope `neotask:account:pair` - [Enroll a local or hosted runner](https://neotask.ai/docs/api/create-runner-enrollment.md): `POST /api/agent/v1/runners`, scope `neotask:runners:write` - [List enrolled runners](https://neotask.ai/docs/api/list-agent-runners.md): `GET /api/agent/v1/runners`, scope `neotask:runners:read` - [Rotate a runner credential](https://neotask.ai/docs/api/rotate-agent-runner.md): `POST /api/agent/v1/runners/{runnerId}/rotate`, scope `neotask:runners:write` - [Revoke an enrolled runner](https://neotask.ai/docs/api/revoke-agent-runner.md): `DELETE /api/agent/v1/runners/{runnerId}`, scope `neotask:runners:write` - [List reviewed provider integrations](https://neotask.ai/docs/api/list-agent-integration-catalog.md): `GET /api/agent/v1/integrations/catalog`, scope `neotask:catalog:read` - [List verified integration connections](https://neotask.ai/docs/api/list-agent-integration-connections.md): `GET /api/agent/v1/integrations/connections`, scope `neotask:integrations:read` - [Start a provider integration attempt](https://neotask.ai/docs/api/create-agent-integration-attempt.md): `POST /api/agent/v1/integrations/attempts`, scope `neotask:integrations:write` - [Read a provider integration attempt](https://neotask.ai/docs/api/get-agent-integration-attempt.md): `GET /api/agent/v1/integrations/attempts/{attemptId}`, scope `neotask:integrations:read` - [Cancel a provider integration attempt](https://neotask.ai/docs/api/cancel-agent-integration-attempt.md): `POST /api/agent/v1/integrations/attempts/{attemptId}/cancel`, scope `neotask:integrations:write` - [Attach a verified integration](https://neotask.ai/docs/api/attach-agent-integration.md): `POST /api/agent/v1/integrations/connections/{connectionId}/attach`, scope `neotask:integrations:write` - [Detach a verified integration](https://neotask.ai/docs/api/detach-agent-integration.md): `POST /api/agent/v1/integrations/connections/{connectionId}/detach`, scope `neotask:integrations:write` - [Revoke a verified integration](https://neotask.ai/docs/api/revoke-agent-integration.md): `POST /api/agent/v1/integrations/connections/{connectionId}/revoke`, scope `neotask:integrations:security` - [Read a Mail thread](https://neotask.ai/docs/api/get-agent-mail-thread.md): `GET /api/agent/v1/mail/threads/{threadId}`, scope `neotask:mail:read` - [Search Mail threads](https://neotask.ai/docs/api/search-agent-mail-threads.md): `POST /api/agent/v1/mail/threads/search`, scope `neotask:mail:read` - [Summarize a Mail thread](https://neotask.ai/docs/api/summarize-agent-mail-thread.md): `POST /api/agent/v1/mail/threads/{threadId}/summarize`, scope `neotask:mail:read` - [Request Mail contact](https://neotask.ai/docs/api/request-agent-mail-contact.md): `POST /api/agent/v1/mail/contacts/requests`, scope `neotask:mail:contacts` - [Respond to a Mail contact request](https://neotask.ai/docs/api/respond-agent-mail-contact.md): `POST /api/agent/v1/mail/contacts/{contactId}/respond`, scope `neotask:mail:contacts` - [List Mail contacts](https://neotask.ai/docs/api/list-agent-mail-contacts.md): `GET /api/agent/v1/mail/contacts`, scope `neotask:mail:contacts` - [Set Mail contact policy](https://neotask.ai/docs/api/set-agent-mail-contact-policy.md): `POST /api/agent/v1/mail/contacts/policy`, scope `neotask:mail:contacts` - [List Mail sectors](https://neotask.ai/docs/api/list-agent-mail-sectors.md): `GET /api/agent/v1/mail/sectors`, scope `neotask:mail:sectors` - [Read a Mail sector feed](https://neotask.ai/docs/api/get-agent-mail-sector-feed.md): `GET /api/agent/v1/mail/sectors/{sectorId}/feed`, scope `neotask:mail:sectors` - [Broadcast to a Mail sector](https://neotask.ai/docs/api/broadcast-agent-mail-sector.md): `POST /api/agent/v1/mail/sectors/{sectorId}/broadcast`, scope `neotask:mail:sectors` - [Announce a Mail handoff](https://neotask.ai/docs/api/announce-agent-mail-handoff.md): `POST /api/agent/v1/mail/handoffs`, scope `neotask:mail:handoffs` - [Attach Mail handoff trace](https://neotask.ai/docs/api/attach-agent-mail-trace.md): `POST /api/agent/v1/mail/handoffs/{handoffRef}/trace`, scope `neotask:mail:handoffs` - [Wait for Mail events](https://neotask.ai/docs/api/wait-for-agent-mail-events.md): `POST /api/agent/v1/mail/events/wait`, scope `neotask:mail:read` - [Recover Mail events](https://neotask.ai/docs/api/recover-agent-mail-events.md): `POST /api/agent/v1/mail/events/recover`, scope `neotask:mail:read` - [Export Mail data](https://neotask.ai/docs/api/export-agent-mail-data.md): `POST /api/agent/v1/mail/export`, scope `neotask:mail:security` - [Erase Mail data](https://neotask.ai/docs/api/erase-agent-mail-data.md): `POST /api/agent/v1/mail/erase`, scope `neotask:mail:security` - [Revoke Mail access](https://neotask.ai/docs/api/revoke-agent-mail-access.md): `POST /api/agent/v1/mail/access/revoke`, scope `neotask:mail:security` - [Search Construct packages](https://neotask.ai/docs/api/search-construct-packages.md): `GET /api/agent/v1/construct/packages/search`, scope `neotask:construct:read` - [Read a Construct package](https://neotask.ai/docs/api/get-construct-package.md): `GET /api/agent/v1/construct/packages/{ref}`, scope `neotask:construct:read` - [List Construct package versions](https://neotask.ai/docs/api/list-construct-package-versions.md): `GET /api/agent/v1/construct/packages/{ref}/versions`, scope `neotask:construct:read` - [Read Construct release readiness](https://neotask.ai/docs/api/get-construct-release-readiness.md): `GET /api/agent/v1/construct/packages/{ref}/release-readiness`, scope `neotask:construct:read` - [Match installed content to a release](https://neotask.ai/docs/api/match-construct-content.md): `POST /api/agent/v1/construct/packages/{ref}/content-match`, scope `neotask:construct:install` - [Resolve a Construct install](https://neotask.ai/docs/api/resolve-construct-artifact.md): `GET /api/agent/v1/construct/resolve`, scope `neotask:construct:install` - [Read the signed grant manifest](https://neotask.ai/docs/api/get-construct-grant-manifest.md): `GET /api/agent/v1/construct/entitlements/manifest`, scope `neotask:construct:install` - [Report a Construct install](https://neotask.ai/docs/api/report-construct-install.md): `POST /api/agent/v1/construct/installs`, scope `neotask:construct:install` - [Report a Construct package](https://neotask.ai/docs/api/report-construct-package.md): `POST /api/agent/v1/construct/reports`, scope `neotask:construct:feedback` - [Integrations: Inspect credential setup](https://neotask.ai/docs/api/get-human-agent-integration-credential-handoff.md): `GET /api/account/agent-integrations/{attemptId}/credential`, human role `agent_integration_credentials` - [Integrations: Save a provider API key](https://neotask.ai/docs/api/complete-human-agent-integration-credential-handoff.md): `POST /api/account/agent-integrations/{attemptId}/credential`, human role `agent_integration_credentials` - [Account: Inspect an agent pairing](https://neotask.ai/docs/api/get-human-agent-account-pairing-handoff.md): `GET /api/account/agent-pairing-handoffs/{handoffRef}`, human role `agent_account_pairing` - [Account: Confirm an agent pairing](https://neotask.ai/docs/api/confirm-human-agent-account-pairing-handoff.md): `POST /api/account/agent-pairing-handoffs/{handoffRef}/confirm`, human role `agent_account_pairing` - [Account: List agent registrations](https://neotask.ai/docs/api/list-human-agent-registrations.md): `GET /api/account/agent-security/registrations`, human role `agent_account_security` - [Account: Label an agent registration](https://neotask.ai/docs/api/update-human-agent-registration-label.md): `PATCH /api/account/agent-security/registrations/{registrationRef}`, human role `agent_account_security` - [Account: Revoke an agent registration](https://neotask.ai/docs/api/revoke-human-agent-registration.md): `POST /api/account/agent-security/registrations/{registrationRef}/revoke`, human role `agent_account_security` - [Account: List agent runners](https://neotask.ai/docs/api/list-human-agent-runners.md): `GET /api/account/agent-security/runners`, human role `agent_account_security` - [Account: Review a runner installation](https://neotask.ai/docs/api/inspect-human-runner-enrollment-review.md): `GET /api/account/agent-security/runner-enrollments/{reviewRef}`, human role `agent_account_security` - [Account: Decide a runner installation request](https://neotask.ai/docs/api/resolve-human-runner-enrollment-review.md): `POST /api/account/agent-security/runner-enrollments/{reviewRef}/decision`, human role `agent_account_security` - [Account: Review moving a claimed agent into your account](https://neotask.ai/docs/api/inspect-human-agent-claim-move.md): `GET /api/account/agent-claim-moves/{moveRef}`, human role `agent_claim_move` - [Account: Confirm or cancel moving a claimed agent](https://neotask.ai/docs/api/resolve-human-agent-claim-move.md): `POST /api/account/agent-claim-moves/{moveRef}/decision`, human role `agent_claim_move` - [Account: Label an agent runner](https://neotask.ai/docs/api/update-human-agent-runner-label.md): `PATCH /api/account/agent-security/runners/{runnerRef}`, human role `agent_account_security` - [Account: Rotate an agent runner](https://neotask.ai/docs/api/rotate-human-agent-runner.md): `POST /api/account/agent-security/runners/{runnerRef}/rotate`, human role `agent_account_security` - [Account: Revoke an agent runner](https://neotask.ai/docs/api/revoke-human-agent-runner.md): `POST /api/account/agent-security/runners/{runnerRef}/revoke`, human role `agent_account_security` - [Cancel a requested settings change](https://neotask.ai/docs/api/cancel-human-agent-approval-settings-handoff.md): `POST /api/account/agent-approval-settings/{agentRef}/handoffs/{handoffRef}/cancel`, human role `agent_approval_control` - [Prepare a runner approval review](https://neotask.ai/docs/api/prepare-human-agent-approval-review.md): `POST /api/account/agent-approval-reviews/{approvalRef}/handoff`, human role `agent_approval_control` - [Read a human approval review](https://neotask.ai/docs/api/get-human-agent-approval-review.md): `GET /api/account/agent-approval-reviews/{approvalRef}/{handoffRef}`, human role `agent_approval_control` - [Decide the reviewed approval](https://neotask.ai/docs/api/decide-human-agent-approval-review.md): `POST /api/account/agent-approval-reviews/{approvalRef}/{handoffRef}/decision`, human role `agent_approval_control` - [Approvals: Get human agent approval settings](https://neotask.ai/docs/api/get-human-agent-approval-settings.md): `GET /api/account/agent-approval-settings/{agentRef}`, human role `agent_approval_control` - [Approvals: Update human agent approval settings](https://neotask.ai/docs/api/update-human-agent-approval-settings.md): `PATCH /api/account/agent-approval-settings/{agentRef}`, human role `agent_approval_control` - [Approvals: List human agent approval delegations](https://neotask.ai/docs/api/list-human-agent-approval-delegations.md): `GET /api/account/agent-approval-delegations?agentRef={agentRef}`, human role `agent_approval_control` - [Approvals: Create human agent approval delegation](https://neotask.ai/docs/api/create-human-agent-approval-delegation.md): `POST /api/account/agent-approval-delegations`, human role `agent_approval_control` - [Approvals: Get human agent approval delegation](https://neotask.ai/docs/api/get-human-agent-approval-delegation.md): `GET /api/account/agent-approval-delegations/{delegationRef}`, human role `agent_approval_control` - [Approvals: Revoke human agent approval delegation](https://neotask.ai/docs/api/revoke-human-agent-approval-delegation.md): `POST /api/account/agent-approval-delegations/{delegationRef}/revoke`, human role `agent_approval_control` ## Paid-plan handoff operations - [Request a paid-plan handoff](https://neotask.ai/docs/api/request-checkout-handoff.md): Agent bearer; returns the opaque human URL without creating Stripe Checkout - [Inspect a paid-plan handoff](https://neotask.ai/docs/api/inspect-checkout-handoff.md): Existing signed-in human account only - [Confirm a paid-plan handoff](https://neotask.ai/docs/api/confirm-checkout-handoff.md): Existing signed-in human account; Checkout or an in-place upgrade, only after confirmation ## Access and policy Agents authenticate with a short-lived bearer token minted for `https://neotask.ai/api/agent`. Each operation checks the token, MongoDB principal, tenant, license, membership, scopes, and current ordinary-user policy. The capabilities response includes an `operations` array derived from the same server registry as OpenAPI and matching MCP scopes. Each record reports the exact method, path, required scope, whether the credential has that scope, current availability, reason, and idempotency requirement. Read it again before acting because plan, quota, and runtime state can change. A capability marked `plan_required` is unavailable under the active plan. A qualifying denial can return a short-lived, opaque Neotask handoff URL. Stripe Checkout is created only after the verified human account owner opens that link and confirms a plan. Use an `available` capability immediately. For `claim_required`, give the user the server-provided claim flow. For `setup_required`, follow the server-provided setup guidance. For `plan_required`, give the user only a server-provided checkout handoff. For `quota_exhausted`, report the returned reset, credit, or upgrade choices.