Manus Commands & Prompt Reference
Request fields, agent profiles and core task endpoints of the Manus API v2 (OpenAPI 2.0.0), checked on 2026-10-10 against the open.manus.ai reference. Tasks run asynchronously: POST /v2/task.create returns at once, and progress comes from polling GET /v2/task.listMessages. Every request carries x-manus-api-key or an OAuth Authorization token. Webhooks, website publishing, agents, project creation, usage reports and the deprecated v1 API are left out.
All Commands
Task parameters (10)
| Command / Syntax | What it does | Notes |
|---|---|---|
| message | Opening message of the task | The one required body field; it holds the prompt plus any attachments, connectors and skills for the first turn. |
| website | Existing website to edit | Takes an object with the site id; mobile apps and games are refused, and later follow-ups need only the instruction. |
| project_id | Project to file the task under | The project's instruction is applied to the task, and its default connectors apply when message.connectors is omitted. |
| locale | Output language locale | Takes codes such as en, zh-CN or ja; without it the account's own locale setting decides. |
| interactive_mode | Allow clarifying questions | Off by default, so the agent works from what it was given; when true it may stop and wait for answers. |
| hide_in_task_list | Keep out of the web app list | Defaults to false; a hidden task can still be opened through the task_url that the create call returns. |
| share_visibility | Sharing level of the task | private is the default; team opens it to teammates, and public lets anyone holding the share_url in without signing in. |
| agent_profile | Agent capability tier | Omitted on task.create it means standard; on task.sendMessage it overrides this and later turns, and omitting it keeps the current profile. |
| title | Custom task title | Leave it out and Manus derives a title from the opening message; the response reports it as task_title. |
| structured_output_schema | Schema for a JSON result | Each object property has to be marked required, with additionalProperties false; extraction happens once the agent has finished. |
Agent profiles (8)
| Command / Syntax | What it does | Notes |
|---|---|---|
| standard | Default agent profile | Used when agent_profile is omitted or empty on task.create; bare version numbers such as 1.6 resolve to it too. |
| lite | Lite agent profile | Free personal accounts are moved to this profile whatever value the request asks for. |
| max | Max profile at default thinking | Plain max currently thinks at the max-extra level; sent on a follow-up, it leaves the task's chosen level unchanged. |
| max-medium | Max with medium thinking | One of four Max thinking levels; chosen on task.sendMessage, it also stays in force for the turns that follow. |
| max-high | Max with high thinking | Versioned spellings such as 2.0-max-high are accepted as well, because the version segment is ignored. |
| max-extra | Max with extra thinking | The level that plain max maps to for now, when a task has not picked a thinking level itself. |
| max-ultra | Max with ultra thinking | Deepest reasoning of the Max levels, but also the slowest and the heaviest on credits. |
| manus-1.6 | Legacy alias for standard | Still accepted, but versions are not chosen separately: the number is ignored and only a suffix such as -lite changes the profile. |
Message and follow-up fields (7)
| Command / Syntax | What it does | Notes |
|---|---|---|
| message.content | Message text or parts | Also how an agent question is answered on a follow-up: chosen options go back as one readable text, with no option IDs. |
| message.connectors | Connectors for the task | Omitted at creation, project then account defaults apply; on a follow-up an omitted or empty list keeps the earlier set. |
| message.enable_skills | Skills available to the agent | Takes IDs from GET /v2/skill.list; being installed and listed there does not by itself enable a skill. |
| message.force_skills | Skills the agent must use | Unlike enable_skills, this obliges the agent to actually run the skill during the task rather than merely have it at hand. |
| message.task_references | Earlier tasks to consult | Up to 20 bare 22-character IDs; on follow-ups new IDs add to the existing ones and can never be cleared. |
| task_id | Task to continue | Required on task.sendMessage; the value agent-default-main_task reaches an IM agent's main task without knowing its ID. |
| clear_connectors | Remove all task connectors | Lasts for later turns as well; sending it together with a non-empty message.connectors list is rejected as a conflict. |
Content parts (10)
| Command / Syntax | What it does | Notes |
|---|---|---|
| type: "text" | Text part | Marks an item of the message.content array as text; that item then needs a text field. |
| text | Text of a text part | All text parts of one message share a budget of about 5,000 estimated tokens; attached files do not count. |
| visibility | Hide a text part from users | Only a Trusted public client may set hidden; file and voice parts accept visible alone, which is also the default. |
| type: "file" | File attachment part | Carries an attachment; give it an uploaded ID, a public link or base64 data, whichever suits the file size. |
| file_id | Uploaded file ID | The route for big files: uploads take up to 512 MB, against 20 MB for links and inline data. |
| file_url | Public file link | Manus fetches the file itself, so the link must open without sign-in; anything over 20 MB needs file.upload. |
| file_data | Inline base64 file | Written as a data URI with the MIME type in front; the decoded size may not pass 20 MB, and filename becomes required. |
| filename | Display name with extension | Mandatory with file_data and advised with file_url; mime_type is guessed from it when omitted. |
| mime_type | Declared file type | Rarely needed, since Manus infers it from the filename; audio parts take values like audio/wav. |
| type: "voice" | Voice recording part | Takes the same three audio sources as a file part, and Manus transcribes audio that it fetches from a file_url. |
Endpoints and headers (12)
| Command / Syntax | What it does | Notes |
|---|---|---|
| x-manus-api-key | API key header | Direct key authentication for any endpoint; send it or an Authorization bearer token, never both. |
| Authorization | OAuth bearer token header | Carries an OAuth token as Bearer plus the token; standard OAuth clients need a task scope, trusted clients do not. |
| POST /v2/task.create | Start a new task | Answers at once with task_id, task_url and title while the agent keeps working; track it with task.listMessages. |
| POST /v2/task.sendMessage | Send a follow-up turn | Also answers an agent question; pending action confirmations go through task.confirmAction rather than this call. |
| GET /v2/task.listMessages | Poll task events | Its status_update events carry agent_status, which says whether to keep polling, reply, or read the results. |
| GET /v2/task.detail | Read task status | Its has_running_background_jobs flag tells whether a stopped task still has background work pending. |
| POST /v2/task.confirmAction | Approve a pending action | Only for supported confirmations seen while agent_status is waiting; questions are answered with task.sendMessage instead. |
| POST /v2/task.stop | Stop a running task | Status turns to stopped, and a later task.sendMessage can pick the same task up again. |
| POST /v2/file.upload | Get a file upload URL | PUT the bytes to upload_url within 3 minutes; files of up to 512 MB stay available for 48 hours. |
| GET /v2/skill.list | List installed skills | Shows installed skills whether or not they are switched on; the IDs feed the skill fields of a message. |
| GET /v2/connector.list | List installed connectors | Returns the connector IDs installed in the account, which are the values message.connectors accepts. |
| GET /v2/project.list | List projects | Source of the IDs that the project_id field of task.create accepts. |
Frequently Asked Questions
How do I continue an existing Manus task instead of starting a new one?
Use task.sendMessage with the task_id rather than task.create. It accepts the same message content formats.
What is the difference between enable_skills and force_skills?
enable_skills makes a skill available for the task; force_skills guarantees the agent invokes it. Forced skills are automatically available without also being enabled.
How do I attach a large file?
Upload it first via file.upload and pass file_id. file_url and file_data are capped at 20 MB, so large files must go through the upload path.
Working with an agent rather than a chat
Manus takes a goal and works through it in steps, and the API mirrors that: a task is created once, then polled, answered and, if needed, stopped. State the deliverable and its constraints in the first message; with interactive_mode left off, the agent does not pause to ask and works from what it was given. A stopped task is not lost, since a follow-up message resumes it.
Reading task status
Poll GET /v2/task.listMessages and read agent_status in the status_update events. running means keep polling. waiting means the agent needs something: questions (messageAskUser, cascadeAskUser) are answered with POST /v2/task.sendMessage, supported action confirmations go to POST /v2/task.confirmAction, and any other waiting type should not be approved automatically. On stopped, check has_running_background_jobs in GET /v2/task.detail before reading results; error comes with an error message.
Files, context and limits
Text in one message is limited to roughly 5,000 estimated tokens across all text parts; attached files do not count. Files sent inline through file_url or file_data are capped at 20 MB, while POST /v2/file.upload takes up to 512 MB per file: the returned upload URL is valid for 3 minutes and the file is kept for 48 hours. Free personal accounts run every task on the lite profile.
Sources and checks
- Manus API v2 reference (OpenAPI 2.0.0) — task.create task.create body fields, message and content-part schema, agent profiles, auth headers
- Manus API v2 reference (OpenAPI 2.0.0) — task.sendMessage Follow-up fields: task_id, per-turn agent_profile, connector override and clear_connectors
- Manus API v2 documentation, full text (llms-full.txt) Endpoint summaries, task lifecycle, connectors, task references, skills and file upload limits
Every row on this page was matched to a line in the documentation above on . A command or parameter that could not be found there is not listed.
AI tools change their commands, parameters and model names between releases: the vendor's current documentation and the version you run have the last word. Found a wrong or missing entry? Tell us and it gets checked against the source. How we verify describes the process and its limits.
Related prompt references
Claude Code (157) · Cursor (72) · DeepSeek (46) · All AI prompt references