REST API
The base URL and key header, starting a run and reading its result with curl, starting Magic from code, and where the full reference is.
Base URL and keys
Send requests to https://api.intellinix.app. Create a key in Settings → API keys and send it in the X-API-Key header. Authorization: Bearer does not work for keys. The samples below show the key as inx_live_… and the agent as AGENT_ID.
Start a run
curl -X POST "https://api.intellinix.app/executions" \
-H "X-API-Key: inx_live_…" \
-H "Content-Type: application/json" \
-d '{
"agent_id": "AGENT_ID",
"user_instructions": "Summarise the latest AI news",
"input_data": {},
"idempotency_key": "your-own-key-01"
}'- Returns 200 with the queued run, not 201. The run has not finished — poll GET /executions/{id} or subscribe to execution.completed.
- The idempotency key is scoped to your workspace: sha256 of the workspace id and your key. The same key in a different workspace is a different run.
- A replay with the same key but a different body returns the FIRST run. The server does not compare payloads, so treat a key as belonging to one request forever.
Read the result
The response carries the run’s id. Fetch the run with it:
curl "https://api.intellinix.app/executions/EXECUTION_ID" \
-H "X-API-Key: inx_live_…"- status is the authoritative run state. status_known is false when the platform cannot currently confirm it — treat that as unknown, not as failed.
- public and compare are reserved path segments on this route, so no run id can collide with them.
Magic
Start Magic with POST /magic/execute and a query; the key needs the magic scope. With require_approval: true the run waits at status: "planned" until you call POST /magic/execute/{execution_id}/approve. The Magic guide lists every field.
Everything else
Scopes, listing runs, webhooks and their signatures, error shapes and response headers are in the full API reference (sign in to open it). When you report a problem, include the X-Request-ID response header.