Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.usenexio.com/llms.txt

Use this file to discover all available pages before exploring further.

Engine behavior improves over time. Engine versions let you decide exactly when those changes reach your integration. This guide covers the three things you’ll do.

1. Ride non-breaking improvements automatically

Pin the major to receive every wire-compatible improvement as soon as it’s released:
{ "engine_version": "1.x", "input": { ... } }
"1.x" resolves to the latest released 1.x on each request. You get bug fixes and ranking improvements with no code change. Because minor releases are schema-compatible, your request and response parsing keep working.

2. Freeze behavior for compliance or repro

When you need output that never shifts — a compliance baseline, an audit trail, a regression fixture — pin an exact version:
{ "engine_version": "1.3", "input": { ... } }
"1.3" is frozen forever. New releases (1.4, 2.0, …) never affect it.

3. Adopt a breaking change (new major)

A new major (2.0) means the request or response schema changed, so it is opt-in by design — your "1.x" pin will not move to 2.0. To adopt it:
1

Review the changelog

Fetch the new version and read what changed: GET /api/v1/engines/{engine_slug}/versions/2.0.
2

Test against the exact version

Point a non-production integration at the exact major: { "engine_version": "2.0" }. Update your request payload and response parsing for the new schema.
3

Cut over

Once validated, move production to "2.x" to ride future 2.x improvements, or keep an exact pin ("2.0") if you need a frozen baseline.

Rolling back

Rollback is just re-pinning. If a major-version cutover surfaces a problem, change engine_version back to your previous exact version (for example "1.3") and redeploy — that version is still released and immutable.
The resolved version is echoed on every run (engine_version on GET /api/v1/runs/{run_id} and in webhook data.run). Log it alongside your results so you can always tie an output back to the exact version that produced it.