Skip to main content
POST
Create task (stream/json)

Authorizations

Authorization
string
header
required

JWT authentication token

Body

application/json
agent_id
string

Bypass AgentSwarm and route to specific agent

agent_ids
string[]

Array of agent IDs for multi-agent orchestration

ask_question
boolean
default:false

Enable the ask_question tool for the planner with durable DB-backed suspension. When false (default), the tool and its prompt sections are removed entirely so the planner must proceed without asking the user clarifying questions.

auto_execute
boolean
default:false

When mode=plan, auto-execute the plan without waiting for user approval

browser_session_refs
string[]

Optional standalone browser session references (brs_) to continue from. With one ref the agent reuses that warm, logged-in browser daemon instead of launching fresh; with multiple, the orchestrator runs one browser subagent per referenced session so each drives its own session. Every ref must exist on the user's sandbox (ownership is validated per ref). Cannot be used with an isolated task.

completion_delivery
enum<string>

Optional. When set, controls how task results are handed off on completion. webhook — POST the completion artifact to the team webhook URL when configured. artifact — persist the completion artifact for GET /api/v1/tasks/{id}/artifacts. When omitted, no completion handoff runs.

Available options:
webhook,
artifact
file_keys
string[]

Optional file references

id
string<uuid>

Optional task ID. If omitted or invalid, server generates one.

isolated
boolean
default:false

Run task in an ephemeral sandbox with no prior user context

max_iterations
integer

Max execution-verification loop iterations. When omitted, defaults to 0 for agent mode (no verification) and 1 for plan mode (single execute + verify cycle). 0 = explicitly skip verification. 1+ = run that many execute+verify cycles.

Required range: 0 <= x <= 5
max_steps
integer

Max LLM steps for execution mode only. Does not affect plan or verification phases. Defaults to 45 (direct) or 60 (swarm).

Required range: 4 <= x <= 200
message
object
mode
enum<string>
default:agent

agent = full tools, chat = limited tools, plan = info-gathering + strategic planning

Available options:
agent,
chat,
plan
model
enum<string>

Optional model. If omitted/empty, server resolves default via user/team/tag policy.

Available options:
auto,
opus-5,
opus-4.8,
opus-4.7,
opus-4.6,
sonnet-4.6,
haiku-4.5,
gpt-5.6-sol-high,
gpt-5.6-terra-high,
gemini-3-pro,
gemini-3-flash,
grok-4.3-high,
grok-4.3-fast,
grok-4.5-high,
grok-4.5-fast,
kimi-k3,
glm-5.2,
deepseek-v4-pro-high,
deepseek-v4-flash
project_id
string<uuid>

Project ID to scope task to. If omitted, task is user-scoped.

response_format
enum<string>

Optional response mode.

  • sse: stream response events
  • json: immediate acknowledgement with task id/status When omitted, server falls back to Accept header and defaults to sse.
Available options:
sse,
json
sandbox_id
string<uuid>

Optional sandbox to run this task on. Use the id returned by GET /api/v1/sandboxes. When omitted, the Neo-managed cloud sandbox is used. Self-hosted sandboxes require an explicit selection.

schedule
object
secrets
string[]

Optional secret names to expose at runtime (opt-in). Only listed names are resolved and made available to tools. If omitted or empty, no user/project secrets are exposed.

task
string

Optional shorthand user input. Used only when message.parts is absent.

title
string

Optional task title. When set, the title is persisted on create and auto title generation is skipped. When omitted, the agent generates a title from the first user message.

Required string length: 1 - 500
triage_ref
object

Optional link to an inbox report (HackerOne, GitHub, or Security Inbox). When set, Neo associates this task with that report so triage status appears in the inbox. Starting triage again for the same report replaces the previous link.

visibility
enum<string>

Task visibility. Defaults to private when omitted/empty.

Available options:
public,
private,
unlisted,
team

Response

Streaming SSE response

The response is of type string.