API reference

Every route, grouped by resource, with the permission it needs in plain words. Your role in the organization decides whether you hold it. Studio runs on these same routes.

Base URL
https://{instance}.nstack.ai
Routes listed
158
Format
JSON, snake_case

01Conventions

TopicRule
Prefixes/core/api, /data/api, /agents/api, and /workflow/api, one per service, all on your instance's domain.
OrganizationRoutes sit under /v1/organizations/{org_id}, which must be your session's active organization. Health, /core/api/v1/me, and the global automation blueprints are the exceptions.
CredentialA member session as Authorization: Bearer. The webhook trigger also takes a machine token. See authentication.
BodiesJSON with snake_case fields and RFC 3339 timestamps.
Lists{"items": […], "next_cursor": …}, 50 items by default on most routes, with limit and, where a route pages, cursor.
RemovalArchive with PATCH {"archive": true}. DELETE soft-deletes, and :restore brings a connection, dataset, ontology template, or agent back within 30 days.
PRODA change that touches a production environment also needs the permission to manage production. Studio adds a typed confirmation; your code should too.
Errors401 without a valid session, 403 for another organization or a missing permission. The error table lists the codes.
OpenAPI

The data and workflow services publish their specifications at /data/api/docs/spec.json and /workflow/api/docs/spec.json, with a browsable view at /docs. The agents service serves /openapi.json. Core does not publish one yet.

02Organization

Who you are, the organization itself, its roles, and its settings.

core13 routes
GET/core/api/v1/organizations/{org_id}/me

Who you are: your user, your role in the organization, and its permissions.

NeedsA member session

GET/core/api/v1/organizations/{org_id}/me/permissions

The permissions your session holds in the organization.

NeedsA member session

GET/core/api/v1/me

Who you are in your session's active organization, without an organization in the path.

NeedsA signed-in session

GET/core/api/v1/organizations/{org_id}

Read the organization.

NeedsRead the organization

PUT/core/api/v1/organizations/{org_id}

Update the organization's name and details.

NeedsUpdate the organization

PATCH/core/api/v1/organizations/{org_id}

Archive or unarchive the organization with {"archive": true}.

NeedsArchive the organization

DELETE/core/api/v1/organizations/{org_id}

Delete the organization. Answers 204.

NeedsDelete the organization

GET/core/api/v1/organizations/{org_id}/roles

The roles the organization can assign.

NeedsRead members

GET/core/api/v1/organizations/{org_id}/permissions

The catalog of permissions the organization can grant.

NeedsRead members

GET/core/api/v1/organizations/{org_id}/settings/economics

The organization's cost settings, which Scan uses to value time saved.

NeedsA member session

PUT/core/api/v1/organizations/{org_id}/settings/economics

Update the cost settings.

NeedsUpdate the organization

GET/core/api/v1/organizations/{org_id}/settings/retention

The organization's retention settings.

NeedsA member session

PUT/core/api/v1/organizations/{org_id}/settings/retention

Update the retention settings.

NeedsUpdate the organization

03Members

The people in the organization and their roles.

core6 routes
GET/core/api/v1/organizations/{org_id}/members

List members and their roles.

NeedsRead members

POST/core/api/v1/organizations/{org_id}/members

Add a member.

NeedsCreate members

GET/core/api/v1/organizations/{org_id}/members/{member_id}

Read one member.

NeedsRead members

POST/core/api/v1/organizations/{org_id}/members/invite

Invite a person by email with a role. Answers 202.

NeedsInvite members

PATCH/core/api/v1/organizations/{org_id}/members/{user_id}

Change a member's role, or archive the member.

NeedsUpdate or archive members

DELETE/core/api/v1/organizations/{org_id}/members/{user_id}

Remove a member. Answers 204.

NeedsDelete members

04Products and environments

Environments live in products. Most callers only read them, from the organization-wide list.

core14 routes
GET/core/api/v1/organizations/{org_id}/environments

List the organization's environments, with is_production.

NeedsRead environments

GET/core/api/v1/organizations/{org_id}/environments/{env_id}

Read one environment.

NeedsRead environments

GET/core/api/v1/organizations/{org_id}/products

List products. A product groups environments.

NeedsRead products

POST/core/api/v1/organizations/{org_id}/products

Create a product.

NeedsCreate products

GET/core/api/v1/organizations/{org_id}/products/{product_id}

Read a product.

NeedsRead products

PUT/core/api/v1/organizations/{org_id}/products/{product_id}

Update a product.

NeedsUpdate products

PATCH/core/api/v1/organizations/{org_id}/products/{product_id}

Archive or unarchive a product with {"archive": true}.

NeedsArchive products

DELETE/core/api/v1/organizations/{org_id}/products/{product_id}

Delete a product. Answers 204.

NeedsDelete products

GET/core/api/v1/organizations/{org_id}/products/{product_id}/environments

List a product's environments.

NeedsRead environments

GET/core/api/v1/organizations/{org_id}/products/{product_id}/environments/{env_id}

Read one of a product's environments.

NeedsRead environments

POST/core/api/v1/organizations/{org_id}/products/{product_id}/environments

Create an environment in a product.

NeedsCreate environmentsPlus manage production to set is_production against its default

PUT/core/api/v1/organizations/{org_id}/products/{product_id}/environments/{environment_id}

Update an environment.

NeedsUpdate environmentsPlus manage production to change is_production or a PROD environment

PATCH/core/api/v1/organizations/{org_id}/products/{product_id}/environments/{environment_id}

Archive or unarchive an environment with {"archive": true}.

NeedsArchive environmentsPlus manage production for a PROD environment

DELETE/core/api/v1/organizations/{org_id}/products/{product_id}/environments/{environment_id}

Delete an environment. Answers 204.

NeedsDelete environmentsPlus manage production for a PROD environment

05Machine access

What Studio's Machine access page calls. A machine token works on secure webhooks only today.

core3 routes
POST/core/api/v1/organizations/{org_id}/security/m2m

Create the machine token for an environment, or return its active one. The token value appears in this response only.

NeedsUpdate the organization

GET/core/api/v1/organizations/{org_id}/security/m2m/tokens

List machine tokens, masked, by environment.

NeedsManage secrets

DELETE/core/api/v1/organizations/{org_id}/security/m2m/{token_id}

Revoke a machine token.

NeedsManage secrets

06Connections

A connection, called a datasource in the API, holds the settings to reach one of your systems, per environment.

data15 routes
GET/data/api/v1/organizations/{org_id}/data-connectors

The connector catalog: the systems a connection can reach.

NeedsRead connections

GET/data/api/v1/organizations/{org_id}/datasources

List connections.

NeedsRead connections

POST/data/api/v1/organizations/{org_id}/datasources

Create a connection, with settings per environment.

NeedsCreate connectionsPlus manage production for a PROD environment

GET/data/api/v1/organizations/{org_id}/datasources/{datasource_id}

Read a connection. Secret settings come back masked.

NeedsRead connections

PUT/data/api/v1/organizations/{org_id}/datasources/{datasource_id}

Update a connection and its settings per environment.

NeedsUpdate connectionsPlus manage production for a PROD environment

PATCH/data/api/v1/organizations/{org_id}/datasources/{datasource_id}

Archive or unarchive a connection with {"archive": true}.

NeedsDelete connections

DELETE/data/api/v1/organizations/{org_id}/datasources/{datasource_id}

Delete a connection, restorable for 30 days. Answers 409 in_use while it has active datasets.

NeedsDelete connections

POST/data/api/v1/organizations/{org_id}/datasources/{datasource_id}:restore

Restore an archived or deleted connection within 30 days. Answers 409 restore_window_passed after.

NeedsDelete connections

POST/data/api/v1/organizations/{org_id}/datasources/{datasource_id}/file

Upload a file for an environment's settings, such as a root certificate. Multipart file, with env in the query. Answers the storage key to save in the settings.

NeedsUpdate connectionsPlus manage production for a PROD environment

POST/data/api/v1/organizations/{org_id}/data-processing/{connector}/test

Test a connection's settings in an environment.

NeedsUpdate connections

POST/data/api/v1/organizations/{org_id}/data-processing/{connector}/catalog

List what a connection can read, such as tables or endpoints. Settings in the body that differ from the saved ones make it a connection test.

NeedsRead connectionsUpdate connections when the body carries new settings

PATCH/data/api/v1/organizations/{org_id}/data-processing/{connector}/catalog/file

Upload a catalog file, such as an OpenAPI spec for the HTTP connector. Answers file_ref.

NeedsUpdate connections

POST/data/api/v1/organizations/{org_id}/data-processing/{connector}/oauth/initiate

Start an OAuth connection. The body depends on the connector. Answers a state and an authorize URL.

NeedsUpdate connections

POST/data/api/v1/organizations/{org_id}/data-processing/{connector}/oauth/exchange

Exchange the authorization code for the connection's tokens.

NeedsUpdate connections

GET/data/api/v1/organizations/{org_id}/usage

What uses a connection, dataset, or template, by ref_type and ref_id, and whether that blocks archiving it.

NeedsRead datasets

07Datasets

A dataset is a query on a connection. Records are read per environment.

data18 routes
GET/data/api/v1/organizations/{org_id}/datasources/{datasource_id}/datasets

List the datasets of a connection.

NeedsRead datasets

POST/data/api/v1/organizations/{org_id}/datasources/{datasource_id}/datasets

Create a dataset from a query or a template.

NeedsCreate datasets

GET/data/api/v1/organizations/{org_id}/datasources/{datasource_id}/datasets/{dataset_id}

Read a dataset.

NeedsRead datasets

PUT/data/api/v1/organizations/{org_id}/datasources/{datasource_id}/datasets/{dataset_id}

Update a dataset.

NeedsUpdate datasets

PATCH/data/api/v1/organizations/{org_id}/datasources/{datasource_id}/datasets/{dataset_id}

Archive or unarchive a dataset with {"archive": true}.

NeedsArchive datasets

DELETE/data/api/v1/organizations/{org_id}/datasources/{datasource_id}/datasets/{dataset_id}

Delete a dataset, restorable for 30 days with its mapping and knowledge settings.

NeedsDelete datasets

POST/data/api/v1/organizations/{org_id}/datasources/{datasource_id}/datasets/{dataset_id}:restore

Restore an archived or deleted dataset within 30 days.

NeedsDelete datasets

POST/data/api/v1/organizations/{org_id}/data-processing/{connector}/datasets/prepare

Parse a query and answer its placeholders, such as ${token}, before you save it as a dataset.

NeedsUpdate datasets, or create datasets while creating one

POST/data/api/v1/organizations/{org_id}/data-processing/{connector}/datasets/test

Run a dataset's query and see its rows: env_id, limit up to 1,000, offset. 100 rows without a limit. Recorded as a dataset_run run.

NeedsRead datasetsUpdate datasets to run a query of your own

POST/data/api/v1/organizations/{org_id}/datasources/{datasource_id}/datasets/{dataset_id}/assited-mapping

Build the prompt for assisted mapping of the dataset's fields. The path is spelled as shown.

NeedsUpdate datasets

POST/data/api/v1/organizations/{org_id}/datasources/{datasource_id}/datasets/{dataset_id}/assited-mapping/generate-query

Generate a mapping query with assistance. Answers 202 when it runs in the background.

NeedsUpdate datasets

GET/data/api/v1/organizations/{org_id}/datasources/{datasource_id}/datasets/{dataset_id}/mapping-fields

The dataset's fields in an environment, env_id required.

NeedsRead datasets

GET/data/api/v1/organizations/{org_id}/datasources/{datasource_id}/datasets/{dataset_id}/get-data

Read records in an environment: env_id, limit, offset. 100 rows without a limit.

NeedsRead datasets

GET/data/api/v1/organizations/{org_id}/datasources/{datasource_id}/datasets/{dataset_id}/datapoints

List the dataset's mapped datapoints.

NeedsRead datasets

POST/data/api/v1/organizations/{org_id}/datasources/{datasource_id}/datasets/{dataset_id}/datapoints

Add a datapoint to the dataset's mapping.

NeedsUpdate datasets

PUT/data/api/v1/organizations/{org_id}/datasources/{datasource_id}/datasets/{dataset_id}/datapoints/bulk

Create or update datapoints in one call.

NeedsUpdate datasets

PUT/data/api/v1/organizations/{org_id}/datasources/{datasource_id}/datasets/{dataset_id}/datapoints/{datapoint_id}

Update a datapoint.

NeedsUpdate datasets

DELETE/data/api/v1/organizations/{org_id}/datasources/{datasource_id}/datasets/{dataset_id}/datapoints/{datapoint_id}

Remove a datapoint. Answers 204.

NeedsUpdate datasets

08Ontology and objects

Ontology templates name the object types and fields your records map to. Routes for the objects themselves are not in the services today.

data6 routes
GET/data/api/v1/organizations/{org_id}/ontology-templates

List ontology templates: the object types records map to.

NeedsRead datasets

GET/data/api/v1/organizations/{org_id}/ontology-templates/{template_id}

Read a template and its fields.

NeedsRead datasets

POST/data/api/v1/organizations/{org_id}/ontology-templates

Create a template with its fields.

NeedsManage the ontology

PUT/data/api/v1/organizations/{org_id}/ontology-templates/{template_id}

Update a template. A platform template needs a platform administrator.

NeedsManage the ontology

DELETE/data/api/v1/organizations/{org_id}/ontology-templates/{template_id}

Delete a template, restorable for 30 days. Answers 409 in_use while an active dataset is bound to it.

NeedsManage the ontology

POST/data/api/v1/organizations/{org_id}/ontology-templates/{template_id}:restore

Restore a deleted template within 30 days. A platform template needs a platform administrator.

NeedsManage the ontology

09Knowledge

Knowledge is indexed per dataset and environment. Documents and search have no public routes; agents search the index with their built-in tool.

data3 routes
GET/data/api/v1/organizations/{org_id}/datasources/{datasource_id}/datasets/{dataset_id}/index

A dataset's knowledge index in an environment: fields, key, and sync state.

NeedsRead datasets

PATCH/data/api/v1/organizations/{org_id}/datasources/{datasource_id}/datasets/{dataset_id}/index

Save the index fields and request a sync, env_id required. Answers 202 when a sync starts.

NeedsManage knowledgePlus manage production for a PROD environment

POST/data/api/v1/organizations/{org_id}/datasources/{datasource_id}/datasets/{dataset_id}/index/test

Test retrieval from the index with a prompt and an agent.

NeedsManage knowledge

10Agents

An agent has a draft, numbered versions, and a pin per environment that says which version runs there.

agents16 routes
GET/agents/api/v1/organizations/{org_id}/agents-config

List agents.

NeedsRead agents

POST/agents/api/v1/organizations/{org_id}/agents-config

Create an agent: model, instructions, datasets, and skills.

NeedsCreate agents

GET/agents/api/v1/organizations/{org_id}/agents-config/{agent_config_id}

Read an agent's draft.

NeedsRead agents

PUT/agents/api/v1/organizations/{org_id}/agents-config/{agent_config_id}

Update an agent's draft. An agent with read_only set answers 403 to anyone but a platform administrator.

NeedsUpdate agents

PATCH/agents/api/v1/organizations/{org_id}/agents-config/{agent_config_id}

Archive or unarchive an agent with {"archive": true}.

NeedsArchive agents

DELETE/agents/api/v1/organizations/{org_id}/agents-config/{agent_config_id}

Delete an agent, restorable for 30 days. Answers 204.

NeedsDelete agents

POST/agents/api/v1/organizations/{org_id}/agents-config/{agent_config_id}:restore

Restore an archived or deleted agent within 30 days.

NeedsDelete agents

GET/agents/api/v1/organizations/{org_id}/agents-config/{agent_config_id}/versions

List versions and the version pinned in each environment.

NeedsRead agents

POST/agents/api/v1/organizations/{org_id}/agents-config/{agent_config_id}/versions

Publish the draft as the next version, with a changelog.

NeedsUpdate agents

GET/agents/api/v1/organizations/{org_id}/agents-config/{agent_config_id}/versions/{version}

Read one published version, numbered from 1.

NeedsRead agents

PUT/agents/api/v1/organizations/{org_id}/agents-config/{agent_config_id}/pins/{env_id}

Pin a version to an environment.

NeedsUpdate agentsPlus manage production for a PROD environment

POST/agents/api/v1/organizations/{org_id}/agents-config/{agent_config_id}/test

Start a sandbox run: message, env_id, optional thread_id. Answers run_id.

NeedsRead agents

GET/agents/api/v1/organizations/{org_id}/agents-config/{agent_config_id}/tools

List the Scan routines granted to the agent as tools.

NeedsRead agents

PUT/agents/api/v1/organizations/{org_id}/agents-config/{agent_config_id}/tools/{tool_ref}

Grant a Scan routine as a tool, Safe or Autonomous. Recorded; runs call it once the Scan tool runtime ships.

NeedsUpdate agents

DELETE/agents/api/v1/organizations/{org_id}/agents-config/{agent_config_id}/tools/{tool_ref}

Remove a granted tool. Answers {version, changelog, repinned}.

NeedsUpdate agents

GET/agents/api/v1/organizations/{org_id}/agents-config/{agent_config_id}/runtime/{correlation_id}/download

A short-lived download link for a run's execution report, with execution_report_uri from the run result.

NeedsRead agents

11Models

The models agents run on, and the organization's own settings and provider keys for them. Keys come back masked.

agents6 routes
GET/agents/api/v1/organizations/{org_id}/llm

The model catalog, with the models the organization has its own settings for.

NeedsA member session

GET/agents/api/v1/organizations/{org_id}/llm/platform

Platform models per environment class, the organization's allowance, and which providers it has its own key for.

NeedsRead models

GET/agents/api/v1/organizations/{org_id}/llm/{model_id}

One model with the organization's settings masked. Its provider key shows only whether it is set.

NeedsRead models

PUT/agents/api/v1/organizations/{org_id}/llm/{model_id}

Save the organization's settings for a model, such as its own provider key. A masked value keeps the stored one.

NeedsCreate models

PATCH/agents/api/v1/organizations/{org_id}/llm/{model_id}

Use, or stop using, the organization's saved settings for runs of this model.

NeedsActivate models

DELETE/agents/api/v1/organizations/{org_id}/llm/providers/{provider}/key

Remove the organization's own key for a provider.

NeedsCreate models

12MCP configs and keys Server in preview

Studio's MCP pages call these routes. A member reads configs and keys and creates a config; a platform administrator changes or deletes one.

Preview

The MCP server, POST …/mcp-configs/{mcp_config_id}/mcp and its progress socket, takes an MCP key rather than a member session, so the MCP page documents it.

agents14 routes
GET/agents/api/v1/organizations/{org_id}/mcp-configs

List MCP configs.

NeedsA member session

GET/agents/api/v1/organizations/{org_id}/mcp-configs/{mcp_config_id}

Read an MCP config and its tools.

NeedsA member session

POST/agents/api/v1/organizations/{org_id}/mcp-configs

Create an MCP config with its general settings. A public config needs a platform administrator.

NeedsA member session

PATCH/agents/api/v1/organizations/{org_id}/mcp-configs/{mcp_config_id}

Save a config's general settings. PUT …/general does the same.

NeedsA platform administrator

PUT/agents/api/v1/organizations/{org_id}/mcp-configs/{mcp_config_id}/general

Save a config's general settings, for clients that cannot send PATCH.

NeedsA platform administrator

PUT/agents/api/v1/organizations/{org_id}/mcp-configs/{mcp_config_id}

Replace a config's general settings and tools in one call.

NeedsA platform administrator

DELETE/agents/api/v1/organizations/{org_id}/mcp-configs/{mcp_config_id}

Delete a config. Answers 204.

NeedsA platform administrator

POST/agents/api/v1/organizations/{org_id}/mcp-configs/{mcp_config_id}/tools-registry

Add a tool to a config. A config with read_only set needs a platform administrator.

NeedsA member session

PUT/agents/api/v1/organizations/{org_id}/mcp-configs/{mcp_config_id}/tools-registry/{tool_id}

Update a config's tool.

NeedsA platform administrator

DELETE/agents/api/v1/organizations/{org_id}/mcp-configs/{mcp_config_id}/tools-registry/{tool_id}

Remove a config's tool. Answers 204.

NeedsA platform administrator

GET/agents/api/v1/organizations/{org_id}/mcp-configs/{mcp_config_id}/connection

The config's connection details: its public identifier and the address it advertises. Until the advertised address is final, call the path on the MCP page.

NeedsA member session

GET/agents/api/v1/organizations/{org_id}/mcp-configs/{mcp_config_id}/api-keys

List the config's MCP keys, masked.

NeedsA member session

POST/agents/api/v1/organizations/{org_id}/mcp-configs/{mcp_config_id}/api-keys

Create an MCP key. Its value appears in this response only.

NeedsCreate or update agents

PATCH/agents/api/v1/organizations/{org_id}/mcp-configs/{mcp_config_id}/api-keys/{key_id}

Deactivate a key with {"active": false}.

NeedsCreate or update agents

13Runs

The run ledger: every run of every kind, from agents, automations, data syncs, and Scan.

core4 routes
GET/core/api/v1/organizations/{org_id}/runs

List runs, newest first. Filter by kind, subject_type, subject_id, status, env_id, actor_id, from, to.

NeedsRead runs

GET/core/api/v1/organizations/{org_id}/runs:stats

Run counts and durations by kind, status, or environment, per hour or day.

NeedsRead runs

GET/core/api/v1/organizations/{org_id}/runs/{run_id}

One run: its header, steps, and child runs.

NeedsRead runs

GET/core/api/v1/organizations/{org_id}/runs/{run_id}/events

A run's events in order, after after_seq. 500 per call, 1,000 at most.

NeedsRead runs

14Automations and schedules

An automation, a workflow in the API, is a graph of steps with webhook and schedule triggers. Saving it makes a new current version; the environment is chosen when it runs.

workflow17 routes
GET/workflow/api/v1/organizations/{org_id}/workflows-config

List automations.

NeedsRead automations

POST/workflow/api/v1/organizations/{org_id}/workflows-config

Create an automation from a blueprint, with its graph and schedules.

NeedsCreate automationsPlus manage production when a schedule targets PROD

GET/workflow/api/v1/organizations/{org_id}/workflows-config/{workflow_config_id}

Read an automation, its current version, and its schedules.

NeedsRead automations

PUT/workflow/api/v1/organizations/{org_id}/workflows-config/{workflow_config_id}

Save a new current version of the automation. Schedules and webhooks are part of its graph.

NeedsUpdate automationsPlus manage production when a schedule targets PROD

PATCH/workflow/api/v1/organizations/{org_id}/workflows-config/{workflow_config_id}

Archive or unarchive an automation with {"archive": true}.

NeedsArchive automations

DELETE/workflow/api/v1/organizations/{org_id}/workflows-config/{workflow_config_id}

Delete an automation. Answers 204.

NeedsDelete automations

GET/workflow/api/v1/organizations/{org_id}/workflows-config/{workflow_config_id}/versions

List versions, newest first, without their graphs.

NeedsRead automations

GET/workflow/api/v1/organizations/{org_id}/workflows-config/{workflow_config_id}/versions/{version_id}

One version with its graph, by id or by a label such as v3.

NeedsRead automations

GET/workflow/api/v1/workflows/blueprints

The blueprints an automation starts from. They are global, so the path has no organization.

NeedsRead blueprints

GET/workflow/api/v1/organizations/{org_id}/workflows-config/{workflow_config_id}/webhook-url

The automation's webhook URL, for one environment with env.

NeedsRead automations

POST/workflow/api/v1/organizations/{org_id}/workflows-config/{workflow_config_id}/schedules/{schedule_id}/enable

Turn on a schedule. A schedule starts off, and a change to its timing turns it off again.

NeedsUpdate automationsPlus manage production for a PROD environment

POST/workflow/api/v1/organizations/{org_id}/workflows/{workflow_id}

The webhook trigger, env required. A secure webhook takes the environment's machine token.

NeedsTest and run automations, or a machine tokenPlus manage production for a PROD environment, for a session

POST/workflow/api/v1/organizations/{org_id}/workflows/{workflow_id}/run

Run now in an environment, env required. Answers 202.

NeedsTest and run automationsPlus manage production for a PROD environment

POST/workflow/api/v1/organizations/{org_id}/workflows/{workflow_id}/test

Test the automation in an environment, env required, with an optional JSON body. Answers the run's instance id.

NeedsTest automationsPlus manage production for a PROD environment

POST/workflow/api/v1/organizations/{org_id}/workflows/instances/{instance_id}/stream-ticket

A single-use ticket, valid 60 seconds at most, to follow a run live over the service's socket.

NeedsRead automations

GET/workflow/api/v1/organizations/{org_id}/workflows/{workflow_id}/instances

List an automation's runs, filtered by status.

NeedsRead automations

GET/workflow/api/v1/organizations/{org_id}/workflows/instances/{instance_id}

One run of an automation and its tasks.

NeedsRead automations

15Activity

The hash-chained record of every configuration change.

core4 routes
GET/core/api/v1/organizations/{org_id}/activity

The activity feed, newest first. Filter by actor_id, action, object_type, object_id, env_id, from, to.

NeedsRead activity

GET/core/api/v1/organizations/{org_id}/activity/{event_id}

One entry with its changes, references, and hashes.

NeedsRead activity

GET/core/api/v1/organizations/{org_id}/activity:verify

Recompute the hash chain over from_seq to to_seq.

NeedsRead activity

POST/core/api/v1/organizations/{org_id}/activity:export

Export a time range as NDJSON, {"from", "to"}.

NeedsRead activity

16Scan routines

Scan turns a recorded walkthrough into a routine an operator or an agent can run, in Safe mode with approval or Autonomous.

core15 routes
GET/core/api/v1/organizations/{org_id}/scan/captures

List Scan captures: recorded walkthroughs of a task.

NeedsRead Scan

POST/core/api/v1/organizations/{org_id}/scan/captures

Save a capture.

NeedsRun Scan

GET/core/api/v1/organizations/{org_id}/scan/captures/{capture_id}

Read a capture and its steps.

NeedsRead Scan

DELETE/core/api/v1/organizations/{org_id}/scan/captures/{capture_id}

Delete a capture. Answers 204.

NeedsRun Scan

POST/core/api/v1/organizations/{org_id}/scan/routines

Publish a routine from a capture.

NeedsPublish Scan routines

GET/core/api/v1/organizations/{org_id}/scan/routines

List published routines.

NeedsRead Scan

GET/core/api/v1/organizations/{org_id}/scan/blueprints

List blueprints: a routine set up to run, with its mode and environments.

NeedsRead Scan

POST/core/api/v1/organizations/{org_id}/scan/blueprints

Create a blueprint, Safe or Autonomous, for a set of environments.

NeedsPublish Scan routinesPlus manage production for Autonomous in PROD

PATCH/core/api/v1/organizations/{org_id}/scan/blueprints/{blueprint_id}

Change a blueprint.

NeedsPublish Scan routinesPlus manage production for Autonomous in PROD

DELETE/core/api/v1/organizations/{org_id}/scan/blueprints/{blueprint_id}

Delete a blueprint. Answers 204.

NeedsPublish Scan routinesPlus manage production for Autonomous in PROD

POST/core/api/v1/organizations/{org_id}/scan/runs

Record a Scan run as it starts: source, source_id, title, mode, env_id, and its steps.

NeedsRun ScanPlus manage production for Autonomous in PROD

GET/core/api/v1/organizations/{org_id}/scan/runs

List Scan runs, filtered by source_id or status.

NeedsRead Scan

GET/core/api/v1/organizations/{org_id}/scan/runs:stats

Scan run counts and the time they saved.

NeedsRead Scan

GET/core/api/v1/organizations/{org_id}/scan/runs/{run_id}

Read a Scan run and its steps.

NeedsRead Scan

PATCH/core/api/v1/organizations/{org_id}/scan/runs/{run_id}

Report a run's progress: status, result, error, and steps.

NeedsRun ScanPlus manage production for Autonomous in PROD

17Health

Unauthenticated liveness checks through the gateway.

coredataagentsworkflow4 routes
GET/core/api/health

Liveness: ok, service, time.

NeedsNone

GET/data/api/health

Liveness: ok, service, time.

NeedsNone

GET/agents/api/health

Liveness: ok, service.

NeedsNone

GET/workflow/api/health

Liveness: ok, service, time.

NeedsNone