AI agent instructions
AI agent instructions
Try it now
Open the Anything API web app.
Get your API key
Create an account on the Console to get started.
Quick start
x-thread-id response header identifies the thread handling your run, so you can send follow-up turns into the same thread later.
Request
string
required
A natural-language description of the task you want automated.
string (UUID)
Send a follow-up turn into an existing thread. The sandbox state and conversation carry over. Omit to start a new thread.
boolean
default:"false"
Start the run and return immediately instead of streaming. See Detached mode.
string
Optional model override for the agent.
string
Optional reasoning effort override for the agent.
string
default:"v2"
API contract version.
"v2" is the only supported value and the default, so you can omit this field. Explicit "v1" returns 400 — see Migrating from v1.POST /api/anything/start
Response
Streamed (default)
By default, the response is an AI SDK UI message stream — the same format the Vercel AI SDK’suseChat hook consumes, so you can back a chat UI with it or read the stream yourself. Call it from your server, not from the browser: see Calling from a browser.
Response headers
Detached mode
Passdetach: true to start the run and return immediately with 202 Accepted:
Follow-up turns
Pass thethread_id from a previous response to continue the conversation in the same thread. The sandbox state and conversation history carry over, so the agent can build on its earlier work:
Consuming the stream
Python
consume_stream.py
TypeScript
useChat hook. Point it at your own proxy route, not at anything.notte.cc.
Using the Node SDK
The Node SDK wraps this endpoint asclient.anything.start(). It posts to api.notte.cc/anything/start, which proxies to the same v2 backend and pipes the stream back, so you get the parsed events without writing the reader yourself:
- The SDK field is
task, notquery— the proxy maps it before forwarding. - The proxy forwards only that field, so
thread_id,detach,model, andreasoningEffortare not available through it.run.threadIdstill tells you which thread ran, but sending a follow-up turn into it means callinganything.notte.ccdirectly, as above.
Calling from a browser
Put a route on your own server between the browser and the Anything API. The route holds the key, forwards the request, and pipes the stream back unchanged — souseChat still sees the AI SDK UI message stream it expects:
app/api/anything/route.ts
useChat({ api: "/api/anything" }). Authenticate and authorize your own users in that route: it is now the thing standing between them and your Notte credits.
Re-running a created function
When a run creates a reusable Notte Function, you can run it again via the Notte CLI or SDK:Migrating from v1
If you were calling the v1 API:- Omit
version(or send"v2"). It now defaults to"v2". - Responses are an AI SDK UI message stream instead of the v1 SSE event feed. The v1 event types (
status,thinking_delta,done, …) no longer exist. - Follow-ups use
thread_id. The v1 conceptsresume_strategy, snapshot semantics, andclaude_code_session_idare gone: pass thethread_idfrom thex-thread-idresponse header to continue a thread. - The
x-vercel-ai-ui-message-stream: v1response header refers to the AI SDK’s own stream-format version, not the retired v1 backend.