Skip to main content
curl -X POST 'https://api.narada.ai/fast/v2/remote-dispatch' \
  -H 'Content-Type: application/json' \
  -H 'x-api-key: YOUR_API_KEY' \
  -d '{
    "prompt": "/Operator click on Insurance header",
    "browserWindowId": "your-browser-window-id",
    "clearChat": true
  }'
{
  "requestId": "req_abc123def456"
}
The Remote Dispatch API allows you to execute automation tasks remotely on browser windows with the Narada Chrome Extension installed, or in serverless Cloud Browser Sessions. This endpoint returns immediately with a request ID for tracking, while the actual automation runs asynchronously.

Authorization

x-api-key
string
required
Your Narada API key for authentication. See Authentication for how to obtain your key.
Content-Type
string
required
Must be set to application/json.

Body

prompt
string
required
The natural language instruction for the task to execute.
When using the Python SDK’s agent() method, the /Operator prefix is added automatically. When calling the REST API directly, prefix your prompt with /Operator to use the web automation agent, or omit it for the Generalist agent.
browserWindowId
string
Unique identifier for the specific browser window to target. Required for "client" execution mode. See Authentication for more information.
executionMode
string
default:"client"
How the task should be executed. Possible values:
  • "client": Runs in a browser window with the Narada extension installed (requires browserWindowId)
  • "cloud": Runs server-side without a browser
  • "cloud_browser": Creates a fresh Cloud Browser Session and runs the task in it (no extension needed)
clearChat
boolean
default:"true"
Whether to clear the chat history before executing the command. Set to false to continue a previous conversation.
previousRequestId
string
Link this request to a previous one for conversation continuity. When set, the agent retains context from the previous request.
generateGif
boolean
default:"false"
Whether to capture an animated GIF of the automation process. When enabled, the GIF is automatically saved to the Narada Downloads directory. Learn more about Action Trace.
responseFormat
object
Specify structured output format using JSON Schema. See Structured Output documentation for detailed examples.
attachments
array
File attachments to provide to the agent. Each attachment is an object with a key field (obtained from the file upload endpoint).
"attachments": [{"key": "uploads/abc123/report.pdf"}]
timeZone
string
default:"America/Los_Angeles"
The timezone for any time-related operations in the automation task.
mcpServers
array
MCP (Model Context Protocol) servers to connect during task execution. Each server provides additional tools the agent can use. See A2A and MCP.
secretVariables
object
Variables for secure substitution in prompts. Use ${variable_name} syntax in your prompt. Values are substituted after the LLM plans its actions, so the LLM never sees the actual values. Ideal for passwords, API keys, and sensitive data.
{
  "prompt": "Log in with username ${user} and password ${pass}",
  "secretVariables": {"user": "john@company.com", "pass": "s3cret"}
}
inputVariables
object
Input variables passed to custom agents. These are visible to the agent and accessible in custom agent workflows via the variables dictionary. See Input Variables.
callbackUrl
string
Webhook URL to receive the response asynchronously when the task completes. See Webhooks documentation.
callbackSecret
string
A secret key included in the webhook payload body for verification. Use this to validate that webhook requests are genuinely from Narada.
callbackHeaders
object
HTTP headers to include when sending the webhook POST request to your callbackUrl.
{
  "callbackHeaders": {
    "Authorization": "Bearer <token>",
    "X-Custom-Header": "value"
  }
}
Only Authorization and headers starting with x- (case-insensitive) are allowed. Other headers will be rejected with a 422 error for security reasons.
wait
boolean
default:"false"
If true, the API blocks until the task completes and returns the full response inline (instead of returning just a requestId). Useful for simple scripts. Returns 408 if the task times out.
cloudBrowserSessionName
string
Optional label for the cloud browser session. Only used when executionMode is "cloud_browser".

Response

requestId
string
required
Unique identifier for tracking the request. Use this ID for: - Polling the status via GET /responses/ - Correlating webhook responses - Debug and monitoring purposes
The API returns 202 ACCEPTED immediately while the automation task runs in the background. Use the requestId to track progress through polling or webhooks.

Example Commands

# Simple navigation
/Operator navigate to the reports section

# Data extraction
/Operator extract customer information from the current table

# Multi-step workflow
/Operator 1) Navigate to customer database, 2) Search overdue accounts, 3) Export to CSV

# Conditional logic
/Operator if error messages exist, screenshot them, otherwise extract user count

# Cloud browser (no extension needed)
# Set executionMode to "cloud_browser", no browserWindowId required

Best Practices

Command Prefix: Prefix automation commands with /Operator to invoke the web agent. When using the Python SDK’s agent() method, this prefix is added automatically.
Descriptive Prompts: Be specific about your intentions. Instead of /Operator click button, use /Operator click the Submit button in the contact form.
  • Use Browser Window IDs to target specific browser contexts when working with multiple windows
  • Implement timeouts for long-running automation tasks
  • Use webhooks for better performance with asynchronous processing
  • Test with simple commands before implementing complex workflows
  • Enable GIF generation for debugging complex automation sequences

Rate Limiting

API requests are subject to rate limiting based on your subscription plan. For high-volume usage or custom rate limits, contact support@narada.ai.

Next Steps