draft from a sandbox key. This split lets you change an engine without changing what production callers get until you decide to. Three settings are the exception; see Settings read from the saved configuration. Publishing is covered on Versions and releases.
How it works
- Read the draft and the type’s default with
GET /api/v1/engines/{engine_slug}/config. - Check a candidate with
POST /api/v1/engines/{engine_slug}/config/validate. Nothing is saved. - Save it with
PUT /api/v1/engines/{engine_slug}/config. The whole draft is replaced, and the saved configuration is archived under its hash. - Publish a version when you want traffic to use it.
engine_config_version_hash), and the worker loads that archived configuration, so a later save or publish does not change a run that already exists.
Draft and released configuration
A save does not change what an API run executes unless the run pins
draft: a run that omits engine_version uses the latest released version. See Versions and releases.
Settings read from the saved configuration
Execution settings are versioned: a save changes only the draft, and a run executes the configuration of the version it resolved. Three settings are policies about what your systems receive or how fast they may call, and Nexio reads them from the engine’s current saved configuration instead of from the version:Read the configuration
Validate before you save
POST /config/validate runs the same configuration checks as a save and saves nothing. A well-formed request with a config object returns 200 whether the config is valid or not; read valid. Malformed JSON, a body over 256 KiB or an absent config answers 400 invalid_request, and an unknown slug answers 404 engine_not_found.
The example below is the entity_analysis preset adapted for a supplier review, with one mistake: the dimension key security appears twice.
path, a message, and, for policy issues, a code (for example provider_not_approved, egress_manifest_version_required, egress_manifest_version_mismatch). Fix the value at path and validate again. A valid configuration returns {"valid": true, "errors": []}.
Save the draft
PUT /api/v1/engines/{engine_slug}/config with {"config": {...}} replaces the draft. The body must be the complete configuration; there is no partial update. A full example is in Declared-contract engines.
Keys shared across types
These keys appear on more than one engine type. The Types column lists where each is accepted; a type that does not list a key refuses it when you save. Each type adds its own keys; thepreset shows them.
Request bounds
Every run submission is measured against request bounds before a run is created. The measurement covers the submission serialized as{"input": ..., "offerings": ...} with object keys sorted. A configuration can set request_bounds on comparison, entity_analysis and diligence engines.
Two engines Nexio operates have larger bounds of their own.
A configuration’s
request_bounds replaces the type’s profile field by field, up to the ceiling. 0 keeps the profile value. The bounds that apply are the ones in the configuration of the version the run resolves to.
details.path locates the value, starting at $ for the whole submission. A violation returns request_bound_exceeded with status 413 for max_canonical_bytes and the HTTP body, and 400 for the other bounds. No run is created.
The contract page
Eachcomparison, entity_analysis, matching and triage engine has a Contract page in the portal (Engines, then your engine, then Contract). It renders the request and response contract for the draft configuration, with three example requests (minimal, realistic and full). Two actions build integrations from it:
- Copy for agents copies integration instructions as one Markdown document, ready to paste into a coding agent’s context.
- OpenAPI, then Download openapi.json, saves
<slug>-openapi.json, an OpenAPI 3.1 file for this engine’sPOST /api/v1/engines/{engine_slug}/runsandGET /api/v1/runs/{run_id}.
Credentials
Reading configuration accepts the organization key or a scoped key withengines:read bound to the engine. Validate and save accept only the organization key; a scoped key gets 403 insufficient_capability. See Authentication and access.
Versions and releases
Publish the draft and pin versions.
Declared-contract engines
Declare an engine’s input fields and output envelope.
Update engine config
Endpoint reference.
Validate engine config
Endpoint reference.