Skip to main content
This guide takes a developer from an empty terminal to a completed run in about ten minutes. It uses a sandbox environment, so nothing you do here touches live traffic. Prerequisites
  • A seat in your organization’s Nexio portal with the admin or developer role (both can manage API keys and environments).
  • At least one engine in your organization. Nexio sets up the first engine with you. The example below uses vendor-review, a fictional engine that a fictional company, Harbor Group, uses to check a supplier against its vendor requirements. Your engine’s slug and input fields will differ.
  • curl, Python 3 with requests, or Node.js 20 or later.
1

Create a sandbox environment

In the portal, open Settings, then Environments, and create an environment with the slug dev. A slug is 1 to 16 characters: lowercase letters, digits and underscores. See Environments for the rules.Every organization already has one live environment. Build against a sandbox first.
2

Create an API key

Open Settings, then API keys, choose Create API Key, enter a name, and pick the dev environment. The portal shows the key once. It looks like nx_dev_ followed by 64 hexadecimal characters.Store it in an environment variable. Never put it in browser code: the API is server to server only.
A sandbox key covers everything in this guide: engines, runs, conversations and webhooks. Records (/api/v1/records) and graph (/api/v1/graph) refuse it with 403 scoped_key_required. For those, use your organization’s live key or a scoped key issued by Nexio. See Authentication and access.
3

List your engines

Response 200:
Pick the slug of the engine you want to call. To see the fields it accepts, open the engine in the portal and choose Contract, or read request_schema from GET /api/v1/engines/{slug}/config.
4

Submit a run

Send the engine’s input under input. The Idempotency-Key header makes the call safe to retry: sending the same key with the same body returns the same run instead of creating a second one.
Response 202:
An engine with no released version answers 500 engine_version_none_released. From a sandbox key you can add "engine_version": "draft" to the body to run the engine’s current, unreleased configuration. See Versions and releases.
5

Poll until the run finishes

Poll GET /api/v1/runs/{run_id} with a growing delay. A run is finished when status is one of the four terminal values: completed, degraded, failed or cancelled. See Runs for the full state model.
While the run is in progress, status is queued or processing and there is no output.
6

Read the result

A completed run carries the engine’s output. Response 200:
The fields inside output depend on the engine type and its configuration. The envelope around it (run_id, status, versions, timings) has the same shape for every engine, and optional fields are left out when they have no value. environment reads test for every sandbox key and live for the live environment. See Engine types.

Common errors

The full list is in the error reference.

What to build next

Receive webhooks

Stop polling and get a signed event when a run finishes.

Runs

Statuses, degraded results, cancellation and idempotency in detail.

Authentication and access

Move from a sandbox key to live, and learn what each key can call.

Limits

Rate limits, request size bounds and the monthly run cap.
Last modified on September 25, 2026