Skip to main content
PATCH
Update environment

Behavior

  • Accepts organization keys only. A scoped key gets 403 insufficient_capability.
  • The body must contain name and nothing else. Send a string of at most 64 bytes of UTF-8 text, or null to clear the name. An empty body or any other field gets 400 invalid_request.
  • slug, kind and created_at never change.
See Environments.

Authorizations

Authorization
string
header
required

Send the key as Authorization: Bearer <key>. Two kinds of key exist.

Organization keys are issued in the portal (Settings, then API keys), each bound to one environment, shaped nx_<environment slug>_<64 hex>. They carry no capabilities and pass every capability check, with one exception: routes under /records, /actions, /operations, /api/v1/engines/{id}/opportunities, /api/v1/graph and /api/v1/catalog/documents accept an organization key only when its environment is live, and refuse any other with 403 scoped_key_required. Revocation takes effect within 60 seconds.

Scoped keys are issued by Nexio on request, shaped nxsk_v1_<24 hex key id>_<43 character secret>. Each is bound to one org, one environment, a set of engines and a set of capabilities. A malformed, unknown or revoked nxsk_ key fails with 401 and is never retried as an organization key. Revocation takes effect on the next request. A scoped key without a route's capability gets 403 insufficient_capability; a scoped key not bound to the engine gets 403 engine_binding_forbidden.

Key-grantable capabilities: engines:read, runs:write, runs:read, runs:defensibility:read, runs:test, catalog:read, catalog:documents:read, webhooks:manage, conversations:use, conversations:export, records:read, records:opportunities:run, actions:write, actions:read, graph:read, records:analyze.

Routes that accept organization keys only (every scoped key gets 403 insufficient_capability): environment management, engine create, update, configuration and publish, and conversation instance authoring. Each operation description names the capability a scoped key needs.

Path Parameters

slug
string
required

Body

application/json
name
string | null
required

At most 64 UTF-8 bytes. null or an empty string clears it.

Example:

"Dev (shared)"

Response

Updated environment.

id
string<uuid>
required
slug
string
required

Immutable routing identifier. live for the live environment.

Pattern: ^[a-z0-9_]{1,16}$
Example:

"dev"

kind
enum<string>
required
Available options:
live,
sandbox
created_at
string<date-time>
required

UTC, second precision, for example 2026-09-23T15:10:42Z.

name
string

Optional display label. The only field that can change after creation. Omitted when no name is set.

Maximum string length: 64
Example:

"Development"

Last modified on September 25, 2026