Skip to main content
Questions or issues? Contact us at api-support@manus.ai. After creating a task with task.create, the agent runs asynchronously. Use task.listMessages to poll for events and track progress, or set up Webhooks to receive push notifications when task status changes.

Task status

Look for status_update events in the response. The agent_status field tells you what to do next:

Handling waiting status

When agent_status is waiting, the status_detail tells you what the agent needs:
There are two ways to respond, depending on waiting_for_event_type:
  • messageAskUser — The agent is asking a question. Reply with task.sendMessage. Do not use task.confirmAction.
  • All other types — Confirm or reject via task.confirmAction. The confirm_input_schema field in the event is a JSON Schema describing the expected input format — use it to validate or dynamically build the confirmation payload.

Using task.confirmAction

The input format varies by waiting_for_event_type. The table below lists currently supported event types — new types may be added in the future. Always check the confirm_input_schema returned in each event for the definitive schema.
For event types that support accept, passing accept: false will not produce any event — the task remains in waiting status. Exception: webdevRequestSecrets where accept: false explicitly rejects the request.

Using My Browser

You can let the agent use your local browser. When the agent needs a browser during execution, it will trigger a needConnectMyBrowser waiting event. Use browser.onlineList to get available clients, then select one via task.confirmAction:
If browser.onlineList returns an empty list, no browser clients are online. Install and enable the Manus Browser Extension first.

Complete flow

Structured Output: If you need the result in a specific JSON format, pass structured_output_schema when creating the task. See the Structured Output guide.