Developers · API reference
Endpoints, events and errors.
The HTTP API behind hosted agents, as it exists in the current build. Paths will move under a version prefix at launch.
NrtVix AI / Developers / API reference
Endpoints
Hosted agents.
| Endpoint | What it does |
|---|---|
GET /api/m17/agents | List your hosted agents. |
POST /api/m17/agents | Create an agent: name, tools, monthly budget, kind of agent, business information. |
GET /api/m17/agents/{id}/messages | The recent conversation with an agent. |
POST /api/m17/agents/{id}/chat | Send a message and receive the full reply. |
POST /api/m17/agents/{id}/chat/stream | Send a message and receive the reply as server-sent events. |
POST /api/m17/agents/{id}/continue | After the owner approves a request, run it once. |
PUT /api/m17/agents/{id}/knowledge | Replace the agent’s business information. |
POST /api/m17/agents/{id}/archive | Stop an agent and cancel its unused permissions. |
Request
POST /api/m17/agents/{id}/chat Content-Type: application/json X-SaaS-CSRF: <token from your session> {"message": "Refund ORDER-1042 for $180"}
Response
{
"reply": "I have requested a $180 refund for ORDER-1042. It is waiting for the store owner.",
"tool_results": [
{"tool": "refund_order", "status": "awaiting_approval", "executed": false,
"event_id": "5f0c...", "reason": "Above the automatic limit"}
],
"pending_approvals": [{"event_id": "5f0c...", "tool": "refund_order"}],
"stopped": "completed"
}
All write requests need a signed-in owner session and a CSRF token, and must come from the same origin. Requests from another site are refused.
Streaming eventsThe
The /chat/stream endpoint.
| Event | Data | Meaning |
|---|---|---|
delta | {text} | Text as the model writes it. |
turn | {} | A new model turn starts after tool calls; earlier streamed text is only a preview. |
tool | {tool, status, executed, event_id, reason} | One Guardian-checked tool result. |
done | {reply, tool_results, pending_approvals, stopped} | The stored reply and all results. |
error | {detail, status} | The run could not finish. |
Statuses
What a tool result can say.
| Status | Meaning |
|---|---|
executed | The trusted gateway ran the action once. |
awaiting_approval | The request is in the owner’s queue. Nothing has happened yet. |
already_executed | This request was completed earlier; it is not run twice. |
blocked | Policy does not allow it. Do not retry. |
rejected | The owner said no. |
expired | The approval or permission ran out of time. |
invalid | The arguments were not acceptable. |
duplicate_refused | The same call was already made in this task. |
limit_reached | The task used all the tool calls it is allowed. |
Errors and limits
What to expect when something is refused.
| Status | Meaning |
|---|---|
401 | Not signed in. |
403 | Missing or wrong CSRF token, or a cross-site request. |
404 | The agent does not exist in your workspace. |
409 | The agent is archived. |
422 | The request body is not valid. |
429 | The daily message limit for this agent was reached. |
503 | The AI model is not configured on the server. |
| Limit | Value |
|---|---|
| Message length | 1 to 2,000 characters |
| Model turns per message | Up to 6 |
| Tool calls per message | Up to 4; duplicates are refused |
| Conversation memory | The last 8 turns, each capped in length |
| Business information | Up to 6,000 characters per agent |
| Messages per agent per day | 50 by default; configurable |
| Streamed response size | Capped; an unusable stream is asked once more without streaming |
Preview. Everything on this page describes the current build. Names and paths may change before release, and the hosted API is not live yet. Documentation opens fully with early access.
Early access · December 2026
Let agents act. Keep control.
We are opening NrtVix AI to a small group of businesses first. Tell us about yours and we will be in touch.