Entity CRUD (canonical pattern)

These six endpoints exist for EVERY entity in your project, generated from the canonical contract. Substitute `{entity}` with the entity name (e.g. orders, customers, products).

GET/api/{entity}

List entity rows with typed filters, sorting, pagination, and relation expansion.

Parameters
NameInTypeDescription
entityrequiredpathstringPluralized entity name.
filterqueryJSONTyped filter expression — eq, ne, gt, lt, in, between, like, isNull, and, or, not.
sortquerystringComma-separated, prefix with '-' for desc. e.g. '-createdAt,name'.
fieldsquerycsvSparse projection.
includequerycsvRelations to expand.
pagequeryintPage number (1-indexed).
pageSizequeryintItems per page (max 200).
cursorquerystringCursor pagination (preferred over page numbers).
includeTotalqueryboolAdd totalCount to response.
Response
200{ data: T[], page: { number, size, totalCount?, next?, prev? } }
HTTP/1.1 200 OK
{
  "data": { "id": "res_123", "state": "active" },
  "meta": { "correlationId": "01HXZ0J4YV8AJF2GFG2T1F7Y42" }
}
Errors
StatusCodeDescription
401UNAUTHORIZEDMissing or invalid bearer token.
403ACCESS_DENIEDActor lacks read on the entity or its row filter.
422VALIDATION_FAILEDFilter expression invalid or references unknown fields.
429QUOTA_EXCEEDEDProject read quota exceeded.
curl -G "https://api.vadyl.app/v1/orders" \
  -H "Authorization: Bearer $VADYL_TOKEN" \
  --data-urlencode 'filter={"status":{"in":["paid","fulfilled"]}}' \
  --data-urlencode 'sort=-createdAt' \
  --data-urlencode 'pageSize=50'

POST/api/{entity}

Create a row. Idempotent when an Idempotency-Key header is provided.

Parameters
NameInTypeDescription
entityrequiredpathstringPluralized entity name.
Idempotency-KeyheaderstringIdempotency key for safe retries.
Request body
JSON object matching the entity's create-input schema.
Response
201Created row with generated fields filled (id, timestamps, etc.).
HTTP/1.1 201 OK
{
  "data": { "id": "res_123", "state": "active" },
  "meta": { "correlationId": "01HXZ0J4YV8AJF2GFG2T1F7Y42" }
}
Errors
StatusCodeDescription
401UNAUTHORIZEDMissing/invalid bearer.
403ACCESS_DENIEDInsert-check denied.
409CONFLICTUnique-key violation.
422VALIDATION_FAILEDField invariant violated.
curl -X POST https://api.vadyl.app/v1/customers \
  -H "Authorization: Bearer $VADYL_TOKEN" \
  -H "Idempotency-Key: signup:abc" \
  -H "Content-Type: application/json" \
  -d '{ "email":"ada@example.com", "name":"Ada Lovelace" }'

GET/api/{entity}/{id}

Read one row by primary key.

Parameters
NameInTypeDescription
entityrequiredpathstringPluralized entity name.
idrequiredpathstringPrimary key.
includequerycsvRelations to expand.
fieldsquerycsvSparse projection.
Response
200Entity row.
HTTP/1.1 200 OK
{
  "data": { "id": "res_123", "state": "active" },
  "meta": { "correlationId": "01HXZ0J4YV8AJF2GFG2T1F7Y42" }
}
Errors
StatusCodeDescription
401UNAUTHORIZEDMissing/invalid bearer.
403ACCESS_DENIEDRead filter excludes this row.
404NOT_FOUNDRow missing.
curl https://api.vadyl.app/v1/orders/ord_abc -H "Authorization: Bearer $VADYL_TOKEN"

PATCH/api/{entity}/{id}

Partial update with optimistic concurrency support.

Parameters
NameInTypeDescription
entityrequiredpathstringPluralized entity name.
idrequiredpathstringPrimary key.
If-MatchheaderstringExpected ConcurrencyToken — 409 if changed.
Request body
JSON object with fields to update.
Response
200Updated row.
HTTP/1.1 200 OK
{
  "data": { "id": "res_123", "state": "active" },
  "meta": { "correlationId": "01HXZ0J4YV8AJF2GFG2T1F7Y42" }
}
Errors
StatusCodeDescription
401UNAUTHORIZEDMissing/invalid bearer.
403ACCESS_DENIEDUpdate target filter or result check denied.
404NOT_FOUNDRow missing.
409CONFLICTIf-Match mismatch — re-read and retry.
422VALIDATION_FAILEDField invariant violated.
curl -X PATCH https://api.vadyl.app/v1/customers/c_abc \
  -H "Authorization: Bearer $VADYL_TOKEN" \
  -H "If-Match: $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{ "name": "Ada L." }'

PUT/api/{entity}/{id}

Full replace (all required fields must be provided).

Parameters
NameInTypeDescription
entityrequiredpathstringPluralized entity name.
idrequiredpathstringPrimary key.
Request body
JSON object with all required fields (replaces the row).
Response
200Replaced row.
HTTP/1.1 200 OK
{
  "data": { "id": "res_123", "state": "active" },
  "meta": { "correlationId": "01HXZ0J4YV8AJF2GFG2T1F7Y42" }
}

DELETE/api/{entity}/{id}

Delete a row (soft on entities with that lifecycle, hard otherwise).

Parameters
NameInTypeDescription
entityrequiredpathstringPluralized entity name.
idrequiredpathstringPrimary key.
forcequeryboolHard-delete a soft-delete entity (admin).
Response
204No content.
HTTP/1.1 204 No Content
Errors
StatusCodeDescription
401UNAUTHORIZEDMissing/invalid bearer.
403ACCESS_DENIEDDelete-filter rejected.
404NOT_FOUNDRow missing.
409CONFLICTForeign-key restrict; remove dependents first.

Runtime Fabric scaling

Canonical project scaling endpoints for previewing topology, setting desired count, updating scaling/resource/ingress policy, suspending autoscale, and explaining decisions.

POST/api/RuntimeFabric/{projectId}/scaling/preview

Dry-run scaling, resource, ingress, and capability changes before applying.

Parameters
NameInTypeDescription
projectIdrequiredpathstringProject id or slug.
Request body
ProjectRuntimeTopologyProfile or patch request with surfaces, resources, scaling, and networkExposure.
Response
200Capability, governance, and realization preview.
HTTP/1.1 200 OK
{
  "data": { "id": "res_123", "state": "active" },
  "meta": { "correlationId": "01HXZ0J4YV8AJF2GFG2T1F7Y42" }
}

GET/api/RuntimeFabric/{projectId}/env/{environmentId}/scaling/targets

List runtime scale targets with desired/running state and measure dimensions.

Parameters
NameInTypeDescription
projectIdrequiredpathstringProject id or slug.
environmentIdrequiredpathstringProject environment id.
Response
200RuntimeScaleTarget[] with surface, scale group, connector, and current state.
HTTP/1.1 200 OK
{
  "data": { "id": "res_123", "state": "active" },
  "meta": { "correlationId": "01HXZ0J4YV8AJF2GFG2T1F7Y42" }
}

POST/api/RuntimeFabric/{projectId}/env/{environmentId}/surfaces/{surfaceKind}/scale

Set desired count for a manual runtime target.

Parameters
NameInTypeDescription
projectIdrequiredpathstringProject id or slug.
environmentIdrequiredpathstringProject environment id.
surfaceKindrequiredpathstringProject execution surface kind.
Request body
{ desiredCount: number, targetIdentity: RuntimeScaleTargetIdentity, idempotencyKey?: string }
Response
202RuntimeScaleMutation accepted or applied.
HTTP/1.1 202 OK
{
  "data": { "id": "res_123", "state": "active" },
  "meta": { "correlationId": "01HXZ0J4YV8AJF2GFG2T1F7Y42" }
}
Errors
StatusCodeDescription
403ACCESS_DENIEDActor lacks runtime.scale grant.
422VALIDATION_FAILEDTarget identity, governance, or capability check failed.

PUT/api/RuntimeFabric/{projectId}/topology/surfaces/{surfaceKind}/scaling

Update canonical scaling policy for one surface.

Request body
{ surfaceKind, partitionMode, connectorName, substrateKind, scaling: RuntimeScalingPolicy }
Response
200Updated topology profile and satisfaction report.
HTTP/1.1 200 OK
{
  "data": { "id": "res_123", "state": "active" },
  "meta": { "correlationId": "01HXZ0J4YV8AJF2GFG2T1F7Y42" }
}

PUT/api/RuntimeFabric/{projectId}/topology/surfaces/{surfaceKind}/resources

Update vendor-neutral vertical resource policy for one surface.

Request body
{ surfaceKind, partitionMode, connectorName, substrateKind, resources: RuntimeVerticalResourcePolicy }
Response
200Updated topology profile and satisfaction report.
HTTP/1.1 200 OK
{
  "data": { "id": "res_123", "state": "active" },
  "meta": { "correlationId": "01HXZ0J4YV8AJF2GFG2T1F7Y42" }
}

PUT/api/RuntimeFabric/{projectId}/topology/surfaces/{surfaceKind}/ingress

Update canonical ingress and load-balancing policy for one surface.

Request body
{ surfaceKind, partitionMode, connectorName, substrateKind, networkExposure: RuntimeNetworkExposureSpec }
Response
200Updated topology profile and satisfaction report.
HTTP/1.1 200 OK
{
  "data": { "id": "res_123", "state": "active" },
  "meta": { "correlationId": "01HXZ0J4YV8AJF2GFG2T1F7Y42" }
}

GET/api/RuntimeFabric/{projectId}/env/{environmentId}/surfaces/{surfaceKind}/autoscale/explain

Explain latest autoscale decision, skipped decision, stale measure, or rejection.

Response
200RuntimeAutoscaleExplanation with measure values, governance gates, and reason codes.
HTTP/1.1 200 OK
{
  "data": { "id": "res_123", "state": "active" },
  "meta": { "correlationId": "01HXZ0J4YV8AJF2GFG2T1F7Y42" }
}

Entity relations

Auto-generated nested endpoints for traversing relations.

POST/api/{entity}/{id}/{relation}

Attach a related row (M:N through link tables, or set FK side).

Request body
{ relatedId: string }
Response
201Attached.
HTTP/1.1 201 OK
{
  "data": { "id": "res_123", "state": "active" },
  "meta": { "correlationId": "01HXZ0J4YV8AJF2GFG2T1F7Y42" }
}

DELETE/api/{entity}/{id}/{relation}/{relatedId}

Detach a related row.

Parameters
NameInTypeDescription
relatedIdrequiredpathstringRelated row id.
Response
204Detached.
HTTP/1.1 204 No Content

Operations

Cross-entity / custom operations declared in your project.

POST/api/{entity}/{id}/{operation}

Invoke a custom operation defined on an entity.

Request body
Operation-specific JSON input.
Response
200Operation result (typed).
HTTP/1.1 200 OK
{
  "data": { "id": "res_123", "state": "active" },
  "meta": { "correlationId": "01HXZ0J4YV8AJF2GFG2T1F7Y42" }
}

POST/api/operations/{operation}

Invoke a global custom operation.

Request body
Operation-specific JSON input.
Response
200Operation result (typed).
HTTP/1.1 200 OK
{
  "data": { "id": "res_123", "state": "active" },
  "meta": { "correlationId": "01HXZ0J4YV8AJF2GFG2T1F7Y42" }
}

Identity

Sessions, tokens, MFA challenges, federation flows.

GET/api/identity/me

Resolve the current actor.

Response
200Actor record.
HTTP/1.1 200 OK
{
  "data": { "id": "res_123", "state": "active" },
  "meta": { "correlationId": "01HXZ0J4YV8AJF2GFG2T1F7Y42" }
}

GET/api/identity/sessions

List the actor's sessions.

Response
200Session[].
HTTP/1.1 200 OK
{
  "data": { "id": "res_123", "state": "active" },
  "meta": { "correlationId": "01HXZ0J4YV8AJF2GFG2T1F7Y42" }
}

DELETE/api/identity/sessions/{sessionId}

Revoke a session.

Parameters
NameInTypeDescription
sessionIdrequiredpathstringSession id.
Response
204Revoked.
HTTP/1.1 204 No Content

POST/api/identity/challenges

Start an MFA / step-up challenge.

Request body
{ subjectId, requireStrength }
Response
201Challenge record.
HTTP/1.1 201 OK
{
  "data": { "id": "res_123", "state": "active" },
  "meta": { "correlationId": "01HXZ0J4YV8AJF2GFG2T1F7Y42" }
}

POST/api/identity/challenges/{challengeId}/complete

Complete a challenge.

Parameters
NameInTypeDescription
challengeIdrequiredpathstringChallenge id.
Request body
{ proof }
Response
200Updated session with elevated AuthStrength.
HTTP/1.1 200 OK
{
  "data": { "id": "res_123", "state": "active" },
  "meta": { "correlationId": "01HXZ0J4YV8AJF2GFG2T1F7Y42" }
}

POST/api/identity/tokens/refresh

Refresh a token using the refresh-token family.

Request body
{ refreshToken }
Response
200{ accessToken, refreshToken, expiresAt }.
HTTP/1.1 200 OK
{
  "data": { "id": "res_123", "state": "active" },
  "meta": { "correlationId": "01HXZ0J4YV8AJF2GFG2T1F7Y42" }
}

POST/api/identity/federation/start

Start an OIDC / SAML federation flow.

Request body
{ provider, redirectUri }
Response
200{ url, state }.
HTTP/1.1 200 OK
{
  "data": { "id": "res_123", "state": "active" },
  "meta": { "correlationId": "01HXZ0J4YV8AJF2GFG2T1F7Y42" }
}

POST/api/identity/federation/callback

Complete a federation flow.

Request body
{ provider, code, state }
Response
200Session created/refreshed.
HTTP/1.1 200 OK
{
  "data": { "id": "res_123", "state": "active" },
  "meta": { "correlationId": "01HXZ0J4YV8AJF2GFG2T1F7Y42" }
}

Events

Canonical event log.

GET/api/events

List events with filters.

Parameters
NameInTypeDescription
filterqueryJSONFilter by kind, entity, time, correlation.
Response
200Page of events.
HTTP/1.1 200 OK
{
  "data": { "id": "res_123", "state": "active" },
  "meta": { "correlationId": "01HXZ0J4YV8AJF2GFG2T1F7Y42" }
}

GET/api/events/{id}

Get a specific event.

Parameters
NameInTypeDescription
idrequiredpathstringEvent id.
Response
200Event record.
HTTP/1.1 200 OK
{
  "data": { "id": "res_123", "state": "active" },
  "meta": { "correlationId": "01HXZ0J4YV8AJF2GFG2T1F7Y42" }
}

GET/api/events/tail

Server-Sent Events stream of live events.

Response
200text/event-stream of events.
event: vadyl.event
data: { "id": "evt_123", "type": "order.paid", "correlationId": "01HXZ..." }

POST/api/events/{id}/replay

Replay an event into its registered consumers.

Parameters
NameInTypeDescription
idrequiredpathstringEvent id.
Response
202Replay accepted.
HTTP/1.1 202 OK
{
  "data": { "id": "res_123", "state": "active" },
  "meta": { "correlationId": "01HXZ0J4YV8AJF2GFG2T1F7Y42" }
}

Audit

Tamper-resistant audit trail.

GET/api/audit

Search audit trail.

Parameters
NameInTypeDescription
filterqueryJSONFilter by reasonCode, actor, entity, scope, time.
Response
200Page of audit rows.
HTTP/1.1 200 OK
{
  "data": { "id": "res_123", "state": "active" },
  "meta": { "correlationId": "01HXZ0J4YV8AJF2GFG2T1F7Y42" }
}

GET/api/audit/tail

SSE stream of new audit entries.

Response
200text/event-stream.
event: vadyl.event
data: { "id": "evt_123", "type": "order.paid", "correlationId": "01HXZ..." }

Explainability

Project canonical decision-record reasoning. Reads directly from authorities — never log-scraped.

POST/api/Explainability/access

Why was a read/write allowed/denied.

Request body
{ entity, operation, filter?, asActor? }
Response
200AccessExplanation { decision, reasonCode, evaluatedFilter, fieldMasks }.
HTTP/1.1 200 OK
{
  "data": { "id": "res_123", "state": "active" },
  "meta": { "correlationId": "01HXZ0J4YV8AJF2GFG2T1F7Y42" }
}

POST/api/Explainability/readPlan

Show the AST plan, cache decision, chosen provider.

Request body
{ entity, filter?, sort?, include? }
Response
200ReadPlanExplanation.
HTTP/1.1 200 OK
{
  "data": { "id": "res_123", "state": "active" },
  "meta": { "correlationId": "01HXZ0J4YV8AJF2GFG2T1F7Y42" }
}

GET/api/Explainability/projectRuntime

Why this publication is serving traffic.

Response
200ProjectRuntimeExplanation.
HTTP/1.1 200 OK
{
  "data": { "id": "res_123", "state": "active" },
  "meta": { "correlationId": "01HXZ0J4YV8AJF2GFG2T1F7Y42" }
}

GET/api/Explainability/authoredPublication

Which authored artifacts are bound, why selected.

Response
200AuthoredPublicationExplanation.
HTTP/1.1 200 OK
{
  "data": { "id": "res_123", "state": "active" },
  "meta": { "correlationId": "01HXZ0J4YV8AJF2GFG2T1F7Y42" }
}

GET/api/Explainability/apiSurface

Why a route resolved to this operation.

Parameters
NameInTypeDescription
routerequiredquerystringRoute to explain.
Response
200ApiSurfaceExplanation.
HTTP/1.1 200 OK
{
  "data": { "id": "res_123", "state": "active" },
  "meta": { "correlationId": "01HXZ0J4YV8AJF2GFG2T1F7Y42" }
}

Branching

Branches, sandboxes, proposals, deployments.

GET/api/branches

List branches.

Response
200Branch[].
HTTP/1.1 200 OK
{
  "data": { "id": "res_123", "state": "active" },
  "meta": { "correlationId": "01HXZ0J4YV8AJF2GFG2T1F7Y42" }
}

POST/api/branches

Create a branch.

Request body
{ name, base? }
Response
201Branch record.
HTTP/1.1 201 OK
{
  "data": { "id": "res_123", "state": "active" },
  "meta": { "correlationId": "01HXZ0J4YV8AJF2GFG2T1F7Y42" }
}

GET/api/branches/{name}

Show branch HEAD + protection policies.

Parameters
NameInTypeDescription
namerequiredpathstringBranch name.
Response
200Branch record.
HTTP/1.1 200 OK
{
  "data": { "id": "res_123", "state": "active" },
  "meta": { "correlationId": "01HXZ0J4YV8AJF2GFG2T1F7Y42" }
}

GET/api/sandboxes

List active sandboxes.

Response
200Sandbox[].
HTTP/1.1 200 OK
{
  "data": { "id": "res_123", "state": "active" },
  "meta": { "correlationId": "01HXZ0J4YV8AJF2GFG2T1F7Y42" }
}

POST/api/sandboxes

Provision a sandbox.

Request body
{ branch, seedFrom? }
Response
201Sandbox.
HTTP/1.1 201 OK
{
  "data": { "id": "res_123", "state": "active" },
  "meta": { "correlationId": "01HXZ0J4YV8AJF2GFG2T1F7Y42" }
}

DELETE/api/sandboxes/{id}

Tear down a sandbox.

Parameters
NameInTypeDescription
idrequiredpathstringSandbox id.
Response
204Destroyed.
HTTP/1.1 204 No Content

GET/api/proposals

List proposals.

Response
200Proposal[].
HTTP/1.1 200 OK
{
  "data": { "id": "res_123", "state": "active" },
  "meta": { "correlationId": "01HXZ0J4YV8AJF2GFG2T1F7Y42" }
}

POST/api/proposals

Open a proposal.

Request body
{ title, base, head, description? }
Response
201Proposal record.
HTTP/1.1 201 OK
{
  "data": { "id": "res_123", "state": "active" },
  "meta": { "correlationId": "01HXZ0J4YV8AJF2GFG2T1F7Y42" }
}

GET/api/proposals/{id}

Show diff, validation, approvals.

Parameters
NameInTypeDescription
idrequiredpathstringProposal id.
Response
200Proposal record.
HTTP/1.1 200 OK
{
  "data": { "id": "res_123", "state": "active" },
  "meta": { "correlationId": "01HXZ0J4YV8AJF2GFG2T1F7Y42" }
}

POST/api/proposals/{id}/approve

Sign approval.

Parameters
NameInTypeDescription
idrequiredpathstringProposal id.
Response
200Approval recorded.
HTTP/1.1 200 OK
{
  "data": { "id": "res_123", "state": "active" },
  "meta": { "correlationId": "01HXZ0J4YV8AJF2GFG2T1F7Y42" }
}

POST/api/proposals/{id}/merge

Merge once gates pass.

Parameters
NameInTypeDescription
idrequiredpathstringProposal id.
Response
200Merged.
HTTP/1.1 200 OK
{
  "data": { "id": "res_123", "state": "active" },
  "meta": { "correlationId": "01HXZ0J4YV8AJF2GFG2T1F7Y42" }
}

POST/api/deployments/preview

Preview a deployment.

Request body
{ target }
Response
200DeployPlan.
HTTP/1.1 200 OK
{
  "data": { "id": "res_123", "state": "active" },
  "meta": { "correlationId": "01HXZ0J4YV8AJF2GFG2T1F7Y42" }
}

POST/api/deployments

Apply a deployment.

Request body
{ target, ramp?, bake? }
Response
202Deployment record.
HTTP/1.1 202 OK
{
  "data": { "id": "res_123", "state": "active" },
  "meta": { "correlationId": "01HXZ0J4YV8AJF2GFG2T1F7Y42" }
}

GET/api/deployments/{id}

Show deployment status.

Parameters
NameInTypeDescription
idrequiredpathstringDeployment id.
Response
200Deployment record.
HTTP/1.1 200 OK
{
  "data": { "id": "res_123", "state": "active" },
  "meta": { "correlationId": "01HXZ0J4YV8AJF2GFG2T1F7Y42" }
}

POST/api/deployments/{id}/rollback

Roll back a deployment.

Parameters
NameInTypeDescription
idrequiredpathstringDeployment id.
Request body
{ toVersion }
Response
202Rollback accepted.
HTTP/1.1 202 OK
{
  "data": { "id": "res_123", "state": "active" },
  "meta": { "correlationId": "01HXZ0J4YV8AJF2GFG2T1F7Y42" }
}

Webhooks

Inbound + outbound webhooks.

GET/api/webhooks/endpoints

List webhook endpoints.

Response
200WebhookEndpoint[].
HTTP/1.1 200 OK
{
  "data": { "id": "res_123", "state": "active" },
  "meta": { "correlationId": "01HXZ0J4YV8AJF2GFG2T1F7Y42" }
}

POST/api/webhooks/endpoints

Create a webhook endpoint.

Request body
{ url, eventTypeFilter?, signingSecretRef }
Response
201Endpoint record.
HTTP/1.1 201 OK
{
  "data": { "id": "res_123", "state": "active" },
  "meta": { "correlationId": "01HXZ0J4YV8AJF2GFG2T1F7Y42" }
}

PATCH/api/webhooks/endpoints/{id}

Update an endpoint.

Parameters
NameInTypeDescription
idrequiredpathstringEndpoint id.
Response
200Endpoint record.
HTTP/1.1 200 OK
{
  "data": { "id": "res_123", "state": "active" },
  "meta": { "correlationId": "01HXZ0J4YV8AJF2GFG2T1F7Y42" }
}

DELETE/api/webhooks/endpoints/{id}

Delete an endpoint.

Parameters
NameInTypeDescription
idrequiredpathstringEndpoint id.
Response
204Deleted.
HTTP/1.1 204 No Content

GET/api/webhooks/deliveries

List recent deliveries.

Response
200WebhookDelivery[].
HTTP/1.1 200 OK
{
  "data": { "id": "res_123", "state": "active" },
  "meta": { "correlationId": "01HXZ0J4YV8AJF2GFG2T1F7Y42" }
}

POST/api/webhooks/deliveries/{id}/replay

Replay a delivery.

Parameters
NameInTypeDescription
idrequiredpathstringDelivery id.
Response
202Replay scheduled.
HTTP/1.1 202 OK
{
  "data": { "id": "res_123", "state": "active" },
  "meta": { "correlationId": "01HXZ0J4YV8AJF2GFG2T1F7Y42" }
}

POST/api/webhooks/{publicReceiverKey}

Inbound webhook receiver (public, signature-verified).

Parameters
NameInTypeDescription
publicReceiverKeyrequiredpathstringGlobally unique receiver key.
Response
202Accepted.
HTTP/1.1 202 OK
{
  "data": { "id": "res_123", "state": "active" },
  "meta": { "correlationId": "01HXZ0J4YV8AJF2GFG2T1F7Y42" }
}

Realtime

WebSocket and SSE subscriptions for entity changes and broadcasts.

GET/api/realtime

WebSocket entrypoint. Pass token via header or query.

Response
101Switching Protocols (WebSocket).
HTTP/1.1 101 OK
{
  "data": { "id": "res_123", "state": "active" },
  "meta": { "correlationId": "01HXZ0J4YV8AJF2GFG2T1F7Y42" }
}

GET/api/realtime/sse

SSE entrypoint.

Parameters
NameInTypeDescription
entityrequiredquerystringEntity to watch.
filterqueryJSONPredicate.
Response
200text/event-stream of change events (field names only).
event: vadyl.event
data: { "id": "evt_123", "type": "order.paid", "correlationId": "01HXZ..." }

Usage & Billing

Quotas, usage rollups, billing events.

GET/api/usage/events

List append-only usage events.

Response
200UsageEvent[].
HTTP/1.1 200 OK
{
  "data": { "id": "res_123", "state": "active" },
  "meta": { "correlationId": "01HXZ0J4YV8AJF2GFG2T1F7Y42" }
}

GET/api/usage/rollups

List periodic rollups.

Response
200UsageMeterRollup[].
HTTP/1.1 200 OK
{
  "data": { "id": "res_123", "state": "active" },
  "meta": { "correlationId": "01HXZ0J4YV8AJF2GFG2T1F7Y42" }
}

GET/api/usage/quotas

List quota definitions.

Response
200ProjectQuota[].
HTTP/1.1 200 OK
{
  "data": { "id": "res_123", "state": "active" },
  "meta": { "correlationId": "01HXZ0J4YV8AJF2GFG2T1F7Y42" }
}

POST/api/usage/quotas

Create a quota.

Request body
{ kind, limit, mode }
Response
201Quota record.
HTTP/1.1 201 OK
{
  "data": { "id": "res_123", "state": "active" },
  "meta": { "correlationId": "01HXZ0J4YV8AJF2GFG2T1F7Y42" }
}

PATCH/api/usage/quotas/{id}

Update a quota.

Parameters
NameInTypeDescription
idrequiredpathstringQuota id.
Response
200Quota record.
HTTP/1.1 200 OK
{
  "data": { "id": "res_123", "state": "active" },
  "meta": { "correlationId": "01HXZ0J4YV8AJF2GFG2T1F7Y42" }
}

DELETE/api/usage/quotas/{id}

Delete a quota.

Parameters
NameInTypeDescription
idrequiredpathstringQuota id.
Response
204Deleted.
HTTP/1.1 204 No Content

Federation

Cross-project per-entity directional grants.

GET/api/Federation/contracts

List federation contracts (as source or target).

Response
200FederatedContract[].
HTTP/1.1 200 OK
{
  "data": { "id": "res_123", "state": "active" },
  "meta": { "correlationId": "01HXZ0J4YV8AJF2GFG2T1F7Y42" }
}

POST/api/Federation/contracts

Create a federation contract.

Request body
{ sourceProjectId, targetProjectId, entityName, accessMode, expiresAt? }
Response
201Contract record.
HTTP/1.1 201 OK
{
  "data": { "id": "res_123", "state": "active" },
  "meta": { "correlationId": "01HXZ0J4YV8AJF2GFG2T1F7Y42" }
}

POST/api/Federation/contracts/{id}/revoke

Revoke a contract.

Parameters
NameInTypeDescription
idrequiredpathstringContract id.
Response
200Revoked.
HTTP/1.1 200 OK
{
  "data": { "id": "res_123", "state": "active" },
  "meta": { "correlationId": "01HXZ0J4YV8AJF2GFG2T1F7Y42" }
}

Installable Surfaces

Publish / install / upgrade versioned capability bundles.

GET/api/Surface/published

List published surfaces.

Response
200PublishedSurface[].
HTTP/1.1 200 OK
{
  "data": { "id": "res_123", "state": "active" },
  "meta": { "correlationId": "01HXZ0J4YV8AJF2GFG2T1F7Y42" }
}

POST/api/Surface/publish

Publish a surface version.

Request body
{ name, version, schema }
Response
201PublishedSurface record.
HTTP/1.1 201 OK
{
  "data": { "id": "res_123", "state": "active" },
  "meta": { "correlationId": "01HXZ0J4YV8AJF2GFG2T1F7Y42" }
}

POST/api/Surface/published/{id}/deprecate

Deprecate a surface version.

Parameters
NameInTypeDescription
idrequiredpathstringPublishedSurface id.
Response
200Deprecated.
HTTP/1.1 200 OK
{
  "data": { "id": "res_123", "state": "active" },
  "meta": { "correlationId": "01HXZ0J4YV8AJF2GFG2T1F7Y42" }
}

GET/api/Surface/installations

List the consumer's installations.

Response
200SurfaceInstallation[].
HTTP/1.1 200 OK
{
  "data": { "id": "res_123", "state": "active" },
  "meta": { "correlationId": "01HXZ0J4YV8AJF2GFG2T1F7Y42" }
}

POST/api/Surface/installations

Install a surface.

Request body
{ publisherProjectId, surfaceName, version, manifest }
Response
201Installation record.
HTTP/1.1 201 OK
{
  "data": { "id": "res_123", "state": "active" },
  "meta": { "correlationId": "01HXZ0J4YV8AJF2GFG2T1F7Y42" }
}

POST/api/Surface/installations/{id}/suspend

Suspend an installation.

Parameters
NameInTypeDescription
idrequiredpathstringInstallation id.
Response
200Suspended.
HTTP/1.1 200 OK
{
  "data": { "id": "res_123", "state": "active" },
  "meta": { "correlationId": "01HXZ0J4YV8AJF2GFG2T1F7Y42" }
}

POST/api/Surface/installations/{id}/resume

Resume an installation.

Parameters
NameInTypeDescription
idrequiredpathstringInstallation id.
Response
200Resumed.
HTTP/1.1 200 OK
{
  "data": { "id": "res_123", "state": "active" },
  "meta": { "correlationId": "01HXZ0J4YV8AJF2GFG2T1F7Y42" }
}

POST/api/Surface/installations/{id}/uninstall

Uninstall.

Parameters
NameInTypeDescription
idrequiredpathstringInstallation id.
Response
200Uninstalled.
HTTP/1.1 200 OK
{
  "data": { "id": "res_123", "state": "active" },
  "meta": { "correlationId": "01HXZ0J4YV8AJF2GFG2T1F7Y42" }
}

Agents

Run agents, inspect runs, manage memory.

GET/api/agents

List agent definitions.

Response
200Agent[].
HTTP/1.1 200 OK
{
  "data": { "id": "res_123", "state": "active" },
  "meta": { "correlationId": "01HXZ0J4YV8AJF2GFG2T1F7Y42" }
}

GET/api/agents/{name}

Show an agent.

Parameters
NameInTypeDescription
namerequiredpathstringAgent name.
Response
200Agent record.
HTTP/1.1 200 OK
{
  "data": { "id": "res_123", "state": "active" },
  "meta": { "correlationId": "01HXZ0J4YV8AJF2GFG2T1F7Y42" }
}

POST/api/agents/{name}/run

Run an agent.

Parameters
NameInTypeDescription
namerequiredpathstringAgent name.
Request body
{ prompt, userId?, budget? }
Response
202Run record.
HTTP/1.1 202 OK
{
  "data": { "id": "res_123", "state": "active" },
  "meta": { "correlationId": "01HXZ0J4YV8AJF2GFG2T1F7Y42" }
}

GET/api/agents/{name}/runs

List runs.

Parameters
NameInTypeDescription
namerequiredpathstringAgent name.
Response
200Run[].
HTTP/1.1 200 OK
{
  "data": { "id": "res_123", "state": "active" },
  "meta": { "correlationId": "01HXZ0J4YV8AJF2GFG2T1F7Y42" }
}

GET/api/agents/{name}/runs/{runId}

Show run details.

Parameters
NameInTypeDescription
namerequiredpathstringAgent name.
runIdrequiredpathstringRun id.
Response
200Run with plan / steps / tokens / cost.
HTTP/1.1 200 OK
{
  "data": { "id": "res_123", "state": "active" },
  "meta": { "correlationId": "01HXZ0J4YV8AJF2GFG2T1F7Y42" }
}

GET/api/agents/{name}/runs/{runId}/stream

SSE stream of live steps.

Parameters
NameInTypeDescription
namerequiredpathstringAgent name.
runIdrequiredpathstringRun id.
Response
200text/event-stream.
HTTP/1.1 200 OK
{
  "data": { "id": "res_123", "state": "active" },
  "meta": { "correlationId": "01HXZ0J4YV8AJF2GFG2T1F7Y42" }
}

GET/api/agents/{name}/memory

Recall memory facts.

Parameters
NameInTypeDescription
namerequiredpathstringAgent name.
kindquerystringFact kind.
subjectquerystringSubject id.
asOfquerytimeReplay-stable temporal recall.
Response
200Fact[].
HTTP/1.1 200 OK
{
  "data": { "id": "res_123", "state": "active" },
  "meta": { "correlationId": "01HXZ0J4YV8AJF2GFG2T1F7Y42" }
}

POST/api/agents/{name}/memory

Record a memory fact.

Parameters
NameInTypeDescription
namerequiredpathstringAgent name.
Request body
{ kind, subject, body }
Response
201Fact record.
HTTP/1.1 201 OK
{
  "data": { "id": "res_123", "state": "active" },
  "meta": { "correlationId": "01HXZ0J4YV8AJF2GFG2T1F7Y42" }
}

MCP

Model Context Protocol (JSON-RPC 2.0 endpoint + RFC 9728 metadata).

POST/mcp

JSON-RPC 2.0 endpoint — supports tools/list and tools/call.

Request body
JSON-RPC 2.0 request — { jsonrpc:'2.0', id, method, params? }
Response
200JSON-RPC 2.0 response.
HTTP/1.1 200 OK
{
  "data": { "id": "res_123", "state": "active" },
  "meta": { "correlationId": "01HXZ0J4YV8AJF2GFG2T1F7Y42" }
}

GET/mcp/.well-known/oauth-authorization-server

OAuth Authorization Server Metadata (RFC 9728).

Response
200OAuth metadata document.
HTTP/1.1 200 OK
{
  "data": { "id": "res_123", "state": "active" },
  "meta": { "correlationId": "01HXZ0J4YV8AJF2GFG2T1F7Y42" }
}

GET/mcp/.well-known/oauth-protected-resource

OAuth Protected Resource Metadata.

Response
200Resource metadata document.
HTTP/1.1 200 OK
{
  "data": { "id": "res_123", "state": "active" },
  "meta": { "correlationId": "01HXZ0J4YV8AJF2GFG2T1F7Y42" }
}

Spec discovery

Always-current specs compiled from the canonical entity model.

GET/api/openapi.json

OpenAPI 3.1 spec (JSON).

Response
200OpenAPI document.
HTTP/1.1 200 OK
{
  "data": { "id": "res_123", "state": "active" },
  "meta": { "correlationId": "01HXZ0J4YV8AJF2GFG2T1F7Y42" }
}

GET/api/openapi.yaml

OpenAPI 3.1 spec (YAML).

Response
200OpenAPI document (YAML).
HTTP/1.1 200 OK
{
  "data": { "id": "res_123", "state": "active" },
  "meta": { "correlationId": "01HXZ0J4YV8AJF2GFG2T1F7Y42" }
}

GET/graphql/schema

GraphQL SDL.

Response
200GraphQL SDL (text).
HTTP/1.1 200 OK
{
  "data": { "id": "res_123", "state": "active" },
  "meta": { "correlationId": "01HXZ0J4YV8AJF2GFG2T1F7Y42" }
}

GET/grpc/proto/vadyl-app.proto

gRPC proto bundle.

Response
200Protobuf .proto file.
HTTP/1.1 200 OK
{
  "data": { "id": "res_123", "state": "active" },
  "meta": { "correlationId": "01HXZ0J4YV8AJF2GFG2T1F7Y42" }
}

Health

Standard liveness/readiness probes.

GET/healthz/live

Liveness probe — process alive (always 200 unless dead).

Response
200ok.
HTTP/1.1 200 OK
{
  "data": { "id": "res_123", "state": "active" },
  "meta": { "correlationId": "01HXZ0J4YV8AJF2GFG2T1F7Y42" }
}

GET/healthz/ready

Readiness probe — registered dependency checks.

Response
200ok or aggregate health document.
HTTP/1.1 200 OK
{
  "data": { "id": "res_123", "state": "active" },
  "meta": { "correlationId": "01HXZ0J4YV8AJF2GFG2T1F7Y42" }
}
Errors
StatusCodeDescription
503UNAVAILABLEOne or more dependency checks failing.

GET/healthz

Aggregate health (alias for /healthz/ready).

Response
200ok.
HTTP/1.1 200 OK
{
  "data": { "id": "res_123", "state": "active" },
  "meta": { "correlationId": "01HXZ0J4YV8AJF2GFG2T1F7Y42" }
}

Complete controller atlas

Every code-backed controller route grouped by canonical surface. Versioned siblings use /api/v{version}/... when declared by the controller.

/api/Agent

Start native agent runs.

MethodPath tailSample output
POST{agentId}/run200/201/202 JSON
Request / response pattern
Request: /api/Agent/{agentId}/run
Response: {
  "surface": "Agent",
  "state": "ok",
  "correlationId": "01HXZ0J4YV8AJF2GFG2T1F7Y42"
}

/api/AgentMemory

Namespaces, facts, recall, journal, and memory writes.

MethodPath tailSample output
GETnamespaces200 JSON
POSTnamespaces200/201/202 JSON
GETnamespaces/{namespaceId}200 JSON
POSTapply200/201/202 JSON
POSTrecall200/201/202 JSON
GETfacts/{factId}200 JSON
GETnamespaces/{namespaceId}/journal200 JSON
Request / response pattern
Request: /api/AgentMemory/namespaces
Response: {
  "surface": "AgentMemory",
  "state": "ok",
  "correlationId": "01HXZ0J4YV8AJF2GFG2T1F7Y42"
}

/api/AgentModelBinding

LLM/model bindings for agents.

MethodPath tailSample output
GET/200 JSON
GET{id}200 JSON
POST/200/201/202 JSON
PUT{id}200 JSON
DELETE{id}204 or 200 JSON
Request / response pattern
Request: /api/AgentModelBinding//
Response: {
  "surface": "AgentModelBinding",
  "state": "ok",
  "correlationId": "01HXZ0J4YV8AJF2GFG2T1F7Y42"
}

/api/AgentPlan

Agent plan authoring, validation, preview, approval, execution, cancellation.

MethodPath tailSample output
GET/200 JSON
GET{planId}200 JSON
POST/200/201/202 JSON
POST{planId}/validate200/201/202 JSON
POST{planId}/preview200/201/202 JSON
POST{planId}/submit200/201/202 JSON
POST{planId}/approve200/201/202 JSON
POST{planId}/reject200/201/202 JSON
POST{planId}/execute200/201/202 JSON
POST{planId}/cancel200/201/202 JSON
Request / response pattern
Request: /api/AgentPlan//
Response: {
  "surface": "AgentPlan",
  "state": "ok",
  "correlationId": "01HXZ0J4YV8AJF2GFG2T1F7Y42"
}

/api/AgentRun

Agent run inspection, step stream, reasoning, human prompt answers.

MethodPath tailSample output
GET/200 JSON
GET{runId}200 JSON
POST{runId}/cancel200/201/202 JSON
GET{runId}/steps200 JSON
GET{runId}/reasoning200 JSON
POST{runId}/human-prompts/{promptId}/answer200/201/202 JSON
Request / response pattern
Request: /api/AgentRun//
Response: {
  "surface": "AgentRun",
  "state": "ok",
  "correlationId": "01HXZ0J4YV8AJF2GFG2T1F7Y42"
}

/api/AgentSkill

Agent skill CRUD surface.

MethodPath tailSample output
GET/200 JSON
GET{id}200 JSON
POST/200/201/202 JSON
PUT{id}200 JSON
DELETE{id}204 or 200 JSON
Request / response pattern
Request: /api/AgentSkill//
Response: {
  "surface": "AgentSkill",
  "state": "ok",
  "correlationId": "01HXZ0J4YV8AJF2GFG2T1F7Y42"
}

/api/Analytics

Catalog, query, models, metrics, perspectives, reports, dashboards, materializations, lineage.

MethodPath tailSample output
GETcatalog200 JSON
GETcatalog/subjects/{subjectId}200 JSON
GETcatalog/dimensions200 JSON
GETcatalog/measures200 JSON
GETcatalog/metrics200 JSON
GETcatalog/comparisons200 JSON
POSTquery/validate200/201/202 JSON
POSTquery/explain200/201/202 JSON
POSTquery/execute200/201/202 JSON
GETmodels200 JSON
POSTmodels200/201/202 JSON
GETmodels/{modelId}200 JSON
PUTmodels/{modelId}200 JSON
DELETEmodels/{modelId}204 or 200 JSON
POSTmodels/{modelId}/publish200/201/202 JSON
GETmetrics200 JSON
POSTmetrics200/201/202 JSON
GETmetrics/{metricId}200 JSON
PUTmetrics/{metricId}200 JSON
DELETEmetrics/{metricId}204 or 200 JSON
GETperspectives200 JSON
POSTperspectives200/201/202 JSON
GETperspectives/{perspectiveId}200 JSON
PUTperspectives/{perspectiveId}200 JSON
DELETEperspectives/{perspectiveId}204 or 200 JSON
GETreports200 JSON
POSTreports200/201/202 JSON
GETreports/{reportId}200 JSON
PUTreports/{reportId}200 JSON
DELETEreports/{reportId}204 or 200 JSON
POSTreports/{reportId}/run200/201/202 JSON
GETdashboards200 JSON
POSTdashboards200/201/202 JSON
GETdashboards/{dashboardId}200 JSON
PUTdashboards/{dashboardId}200 JSON
DELETEdashboards/{dashboardId}204 or 200 JSON
POSTdashboards/{dashboardId}/render200/201/202 JSON
GETmaterializations200 JSON
POSTmaterializations200/201/202 JSON
GETmaterializations/{materializationId}200 JSON
PUTmaterializations/{materializationId}200 JSON
DELETEmaterializations/{materializationId}204 or 200 JSON
POSTmaterializations/{materializationId}/refresh200/201/202 JSON
GETmaterializations/{materializationId}/runs200 JSON
GETlineage/{subjectId}200 JSON
Request / response pattern
Request: /api/Analytics/catalog
Response: {
  "surface": "Analytics",
  "state": "ok",
  "correlationId": "01HXZ0J4YV8AJF2GFG2T1F7Y42"
}

/api/Asset

Asset namespace and blob lookup diagnostics.

MethodPath tailSample output
GETnamespaces200 JSON
GETnamespaces/{purpose}200 JSON
GETsummary200 JSON
GETnamespaces/{purpose}/blobs/by-hash/{contentHash}200 JSON
Request / response pattern
Request: /api/Asset/namespaces
Response: {
  "surface": "Asset",
  "state": "ok",
  "correlationId": "01HXZ0J4YV8AJF2GFG2T1F7Y42"
}

/api/AuthoredManagement

Invoke management handlers.

MethodPath tailSample output
POST{handlerName}200/201/202 JSON
Request / response pattern
Request: /api/AuthoredManagement/{handlerName}
Response: {
  "surface": "AuthoredManagement",
  "state": "ok",
  "correlationId": "01HXZ0J4YV8AJF2GFG2T1F7Y42"
}

/api/AuthoredRuntime

Validate, preview-build, publish, sandbox publish, and sandbox invoke.

MethodPath tailSample output
POSTvalidate200/201/202 JSON
POSTpreview-build200/201/202 JSON
POSTpublish200/201/202 JSON
POSTsandbox/{sandboxId}/publish200/201/202 JSON
POSTsandbox/{sandboxId}/invoke200/201/202 JSON
Request / response pattern
Request: /api/AuthoredRuntime/validate
Response: {
  "surface": "AuthoredRuntime",
  "state": "ok",
  "correlationId": "01HXZ0J4YV8AJF2GFG2T1F7Y42"
}

/api/AuthoredWorkflow

Start, signal, query, cancel, compensate authored workflows.

MethodPath tailSample output
POST{workflowName}/start200/201/202 JSON
POST{instanceId}/signal/{signalName}200/201/202 JSON
GET{instanceId}200 JSON
POST{instanceId}/cancel200/201/202 JSON
POST{instanceId}/compensate200/201/202 JSON
POST{instanceId}/compensate/resume200/201/202 JSON
Request / response pattern
Request: /api/AuthoredWorkflow/{workflowName}/start
Response: {
  "surface": "AuthoredWorkflow",
  "state": "ok",
  "correlationId": "01HXZ0J4YV8AJF2GFG2T1F7Y42"
}

/api/AuthoringCatalog

Language, runtime, surface, compatibility, projection, diagnostics, and editor providers.

MethodPath tailSample output
GETlanguages200 JSON
GETruntime-families200 JSON
GETsurfaces200 JSON
GETcompatibility200 JSON
GETdeclaration-projections200 JSON
GETdiagnostics-providers200 JSON
GETeditor-assistance-providers200 JSON
Request / response pattern
Request: /api/AuthoringCatalog/languages
Response: {
  "surface": "AuthoringCatalog",
  "state": "ok",
  "correlationId": "01HXZ0J4YV8AJF2GFG2T1F7Y42"
}

/api/Automation

Definitions, compiler, runs, approvals, attempts, signals, compensation.

MethodPath tailSample output
POSTcompile200/201/202 JSON
POSTruns/start200/201/202 JSON
GETruns/{runId}200 JSON
GETruns/{runId}/approvals200 JSON
GETruns/{runId}/attempts200 JSON
POSTruns/{runId}/cancel200/201/202 JSON
POSTruns/{runId}/compensate200/201/202 JSON
POSTruns/{runId}/signal200/201/202 JSON
POSTapprovals/{approvalTaskId}/approve200/201/202 JSON
POSTapprovals/{approvalTaskId}/reject200/201/202 JSON
POSTattempts/{attemptId}/retry200/201/202 JSON
GETdefinitions200 JSON
GETdefinitions/{id}200 JSON
POSTdefinitions200/201/202 JSON
PUTdefinitions/{id}200 JSON
POSTdefinitions/{id}/lifecycle200/201/202 JSON
DELETEdefinitions/{id}204 or 200 JSON
GETdefinitions/{id}/synthesized-workflow200 JSON
Request / response pattern
Request: /api/Automation/compile
Response: {
  "surface": "Automation",
  "state": "ok",
  "correlationId": "01HXZ0J4YV8AJF2GFG2T1F7Y42"
}

/api/Branch

Branches, commits, workspaces, sandboxes, proposals, environments, history, snapshots, deployment preview.

MethodPath tailSample output
GETbranches200 JSON
POSTbranches200/201/202 JSON
GETbranches/{id}200 JSON
DELETEbranches/{id}204 or 200 JSON
PATCHbranches/{id}/protected200 JSON
PUTbranches/{id}/protected200 JSON
GETbranches/{id}/log200 JSON
POSTbranches/{id}/revert200/201/202 JSON
POSTbranches/{id}/reset200/201/202 JSON
GETcommits/{id}200 JSON
GETcommits/{id}/ancestry200 JSON
GETcommits/{id}/snapshot200 JSON
GETworkspaces200 JSON
POSTworkspaces200/201/202 JSON
GETworkspaces/{id}200 JSON
POSTworkspaces/{id}/stage200/201/202 JSON
DELETEworkspaces/{id}/stage/{index}204 or 200 JSON
GETworkspaces/{id}/preview200 JSON
POSTworkspaces/{id}/commit200/201/202 JSON
POSTworkspaces/{id}/reset200/201/202 JSON
DELETEworkspaces/{id}204 or 200 JSON
POSTsandboxes200/201/202 JSON
GETsandboxes200 JSON
GETsandboxes/{id}200 JSON
POSTsandboxes/{id}/overlay200/201/202 JSON
GETsandboxes/{id}/compare200 JSON
GETsandboxes/{id}/preview200 JSON
POSTsandboxes/{id}/retry200/201/202 JSON
DELETEsandboxes/{id}204 or 200 JSON
POSTsandboxes/{id}/convert200/201/202 JSON
POSTsandboxes/{id}/checkpoints200/201/202 JSON
GETsandboxes/{id}/checkpoints200 JSON
POSTsandboxes/{id}/restore/{checkpointId}200/201/202 JSON
POSTsandboxes/{id}/undo200/201/202 JSON
POSTsandboxes/{id}/redo200/201/202 JSON
GETsandboxes/{id}/history200 JSON
GETsandboxes/checkpoints/{idA}/diff/{idB}200 JSON
POSTsandboxes/{id}/fork200/201/202 JSON
GETsandboxes/{id}/compare/{otherId}200 JSON
POSTsandboxes/{id}/merge-to-parent200/201/202 JSON
POSTsandboxes/{id}/propose200/201/202 JSON
GETproposals200 JSON
POSTproposals200/201/202 JSON
GETproposals/{id}200 JSON
POSTproposals/{id}/evaluate200/201/202 JSON
POSTproposals/{id}/approve200/201/202 JSON
POSTproposals/{id}/merge200/201/202 JSON
POSTproposals/{id}/resolve-conflicts200/201/202 JSON
POSTproposals/{id}/close200/201/202 JSON
GETenvironments200 JSON
POSTenvironments200/201/202 JSON
GETenvironments/{id}200 JSON
POSTenvironments/{id}/deploy200/201/202 JSON
POSTenvironments/{id}/apply200/201/202 JSON
POSTenvironments/{id}/rollback200/201/202 JSON
GETenvironments/{id}/history200 JSON
GETenvironments/{id}/diff/{commitId}200 JSON
GEThistory/path200 JSON
GEThistory/path/cross-branch200 JSON
GEThistory/domain200 JSON
GETsnapshots/{id}200 JSON
GETbranches/{sourceId}/compare/{targetId}200 JSON
POSTbranches/{id}/preview-deploy200/201/202 JSON
POSTenvironments/{id}/assess-rollback200/201/202 JSON
Request / response pattern
Request: /api/Branch/branches
Response: {
  "surface": "Branch",
  "state": "ok",
  "correlationId": "01HXZ0J4YV8AJF2GFG2T1F7Y42"
}

/api/Build

Build trigger and artifact lookup.

MethodPath tailSample output
POSTtrigger200/201/202 JSON
GETartifact/{artifactId}200 JSON
Request / response pattern
Request: /api/Build/trigger
Response: {
  "surface": "Build",
  "state": "ok",
  "correlationId": "01HXZ0J4YV8AJF2GFG2T1F7Y42"
}

/api/CacheProviderBinding

Cache provider bindings and runtime descriptor.

MethodPath tailSample output
GET/200 JSON
GET{id}200 JSON
POST/200/201/202 JSON
PUT{id}200 JSON
DELETE{id}204 or 200 JSON
GETruntime200 JSON
Request / response pattern
Request: /api/CacheProviderBinding//
Response: {
  "surface": "CacheProviderBinding",
  "state": "ok",
  "correlationId": "01HXZ0J4YV8AJF2GFG2T1F7Y42"
}

/api/Connection

Governed connection CRUD and lookup.

MethodPath tailSample output
POST/200/201/202 JSON
GET/200 JSON
GET{id}200 JSON
GETby-name/{name}200 JSON
PUT{id}200 JSON
DELETE{id}204 or 200 JSON
Request / response pattern
Request: /api/Connection//
Response: {
  "surface": "Connection",
  "state": "ok",
  "correlationId": "01HXZ0J4YV8AJF2GFG2T1F7Y42"
}

/api/Connector

Capability contracts, implementations, bindings, isolation profiles, and invocation.

MethodPath tailSample output
GETcontracts200 JSON
GETcontracts/{kind}/{majorVersion:int}200 JSON
GETimplementations200 JSON
GETimplementations/{implementationId}200 JSON
POSTbindings200/201/202 JSON
GETbindings200 JSON
GETbindings/{alias}200 JSON
GETisolation/profiles200 JSON
POSTinvoke200/201/202 JSON
Request / response pattern
Request: /api/Connector/contracts
Response: {
  "surface": "Connector",
  "state": "ok",
  "correlationId": "01HXZ0J4YV8AJF2GFG2T1F7Y42"
}

/api/ContractProjection

Contract descriptor, language declarations, CLI descriptor, SSE invalidation.

MethodPath tailSample output
GETdescriptor200 JSON
GET{language}/declarations200 JSON
GETcli200 JSON
GETevents200 JSON
Request / response pattern
Request: /api/ContractProjection/descriptor
Response: {
  "surface": "ContractProjection",
  "state": "ok",
  "correlationId": "01HXZ0J4YV8AJF2GFG2T1F7Y42"
}

/api/Credential

Credential list, rotation, revocation, and deletion.

MethodPath tailSample output
GET/200 JSON
GET{id}200 JSON
POST{id}/revoke200/201/202 JSON
POST{id}/rotate200/201/202 JSON
DELETE{id}204 or 200 JSON
Request / response pattern
Request: /api/Credential//
Response: {
  "surface": "Credential",
  "state": "ok",
  "correlationId": "01HXZ0J4YV8AJF2GFG2T1F7Y42"
}

/api/DatabaseConnector

Database connector binding management, validation, health, drift.

MethodPath tailSample output
GET/200 JSON
GET{alias}200 JSON
POST/200/201/202 JSON
PUT{alias}200 JSON
DELETE{alias}204 or 200 JSON
POST{alias}/validate200/201/202 JSON
GET{alias}/describe200 JSON
GET{alias}/health200 JSON
GET{alias}/drift200 JSON
Request / response pattern
Request: /api/DatabaseConnector//
Response: {
  "surface": "DatabaseConnector",
  "state": "ok",
  "correlationId": "01HXZ0J4YV8AJF2GFG2T1F7Y42"
}

/api/database-sources

Database source import/probe/discover/infer/preview/apply/reconcile/artifact/import manifest.

MethodPath tailSample output
POST/200/201/202 JSON
POST{alias}/retire200/201/202 JSON
POST{alias}/probe200/201/202 JSON
POST{alias}/discover200/201/202 JSON
POST{alias}/infer200/201/202 JSON
POST{alias}/decisions200/201/202 JSON
POST{alias}/revert200/201/202 JSON
POST{alias}/acceptance200/201/202 JSON
POST{alias}/preview200/201/202 JSON
POST{alias}/apply200/201/202 JSON
POST{alias}/reconcile200/201/202 JSON
POST{alias}/artifacts200/201/202 JSON
POST{alias}/import200/201/202 JSON
GETmanifest200 JSON
Request / response pattern
Request: /api/database-sources//
Response: {
  "surface": "DatabaseSources",
  "state": "ok",
  "correlationId": "01HXZ0J4YV8AJF2GFG2T1F7Y42"
}

/api/DataPortability

Import, export, backup, restore validation, portability verification.

MethodPath tailSample output
POSTimport200/201/202 JSON
GETexport200 JSON
POSTschema/backup200/201/202 JSON
POSTrestore/validate200/201/202 JSON
POSTportability/verify200/201/202 JSON
Request / response pattern
Request: /api/DataPortability/import
Response: {
  "surface": "DataPortability",
  "state": "ok",
  "correlationId": "01HXZ0J4YV8AJF2GFG2T1F7Y42"
}

/api/Distribution

Distribution bindings, policy, asset policies, realization, delivery, invalidation, replica policies, topology.

MethodPath tailSample output
GETprojects/{projectId}/bindings200 JSON
POSTprojects/{projectId}/bindings200/201/202 JSON
DELETEprojects/{projectId}/bindings/{bindingId}204 or 200 JSON
GETprojects/{projectId}/policy200 JSON
PUTprojects/{projectId}/policy200 JSON
GETprojects/{projectId}/asset-policies200 JSON
PUTprojects/{projectId}/asset-policies200 JSON
GETprojects/{projectId}/descriptor200 JSON
GETprojects/{projectId}/environments/{environmentId}/realization200 JSON
POSTprojects/{projectId}/environments/{environmentId}/assets/{namespaceId}/{assetClass}/delivery200/201/202 JSON
POSTprojects/{projectId}/environments/{environmentId}/assets/{namespaceId}/{assetClass}/invalidate200/201/202 JSON
GETprojects/{projectId}/replica-policies200 JSON
GETprojects/{projectId}/replica-policies/{entityName}200 JSON
PUTprojects/{projectId}/replica-policies/{entityName}200 JSON
DELETEprojects/{projectId}/replica-policies/{entityName}204 or 200 JSON
GETprojects/{projectId}/topology200 JSON
POSTprojects/{projectId}/replica-policies/{entityName}/preview-route200/201/202 JSON
Request / response pattern
Request: /api/Distribution/projects/{projectId}/bindings
Response: {
  "surface": "Distribution",
  "state": "ok",
  "correlationId": "01HXZ0J4YV8AJF2GFG2T1F7Y42"
}

/api/Entity

Dynamic entity CRUD/query/count/exists/alternate-key/batch/restore operations.

MethodPath tailSample output
POST/200/201/202 JSON
POST{entityName}200/201/202 JSON
GET{entityName}/{id}200 JSON
POST{entityName}/{id}/restore200/201/202 JSON
PUT{entityName}/{id}200 JSON
DELETE{entityName}/{id}204 or 200 JSON
PUT{entityName}/upsert200 JSON
POST{entityName}/query200/201/202 JSON
POSTquery200/201/202 JSON
GET{entityName}200 JSON
GET{entityName}/count200 JSON
HEAD{entityName}/{id}200/404 headers
GET{entityName}/by/{keyGroup}200 JSON
POST{entityName}/batch200/201/202 JSON
DELETE{entityName}/batch204 or 200 JSON
PUT{entityName}/batch200 JSON
Request / response pattern
Request: /api/Entity//
Response: {
  "surface": "Entity",
  "state": "ok",
  "correlationId": "01HXZ0J4YV8AJF2GFG2T1F7Y42"
}

/api/Event

Canonical event log and diagnostics.

MethodPath tailSample output
GET/200 JSON
GET{id}200 JSON
GETDiagnostics200 JSON
Request / response pattern
Request: /api/Event//
Response: {
  "surface": "Event",
  "state": "ok",
  "correlationId": "01HXZ0J4YV8AJF2GFG2T1F7Y42"
}

/api/Evolution

Evolution run state, nodes, barriers, events, status.

MethodPath tailSample output
GETruns/{runId}200 JSON
GETruns/active200 JSON
GETruns/{runId}/nodes200 JSON
GETruns/{runId}/barriers200 JSON
GETruns/{runId}/events200 JSON
GETstatus200 JSON
Request / response pattern
Request: /api/Evolution/runs/{runId}
Response: {
  "surface": "Evolution",
  "state": "ok",
  "correlationId": "01HXZ0J4YV8AJF2GFG2T1F7Y42"
}

/api/Explainability

Canonical decision reasoning for API surface, runtime, publication, access, read plan, analytics, PCG, automation, measure, companions, family resolution.

MethodPath tailSample output
GETsurface200 JSON
GETproject-runtime200 JSON
GETpublication/latest200 JSON
GETpublication/{publicationVersion:long}200 JSON
POSTaccess/read200/201/202 JSON
POSTaccess/write200/201/202 JSON
POSTread-plan200/201/202 JSON
POSTanalyticsQuery200/201/202 JSON
GETanalyticsGraph200 JSON
GETplaneCapabilityGraph/node/{nodeIdEncoded}200 JSON
POSTplaneCapabilityGraph/compatibility200/201/202 JSON
POSTautomation200/201/202 JSON
GETmeasure/{nodeIdEncoded}200 JSON
GETcompanions200 JSON
GETfamily-resolution200 JSON
Request / response pattern
Request: /api/Explainability/surface
Response: {
  "surface": "Explainability",
  "state": "ok",
  "correlationId": "01HXZ0J4YV8AJF2GFG2T1F7Y42"
}

/api/identity

Discovery, login, registration, refresh, logout, federation, challenges.

MethodPath tailSample output
GETdiscovery200 JSON
POSTlogin200/201/202 JSON
POSTregister200/201/202 JSON
POSTrefresh200/201/202 JSON
POSTlogout200/201/202 JSON
GETfederation/{alias}/initiate200 JSON
GETfederation/{alias}/callback200 JSON
POSTchallenge/start200/201/202 JSON
POSTchallenge/verify200/201/202 JSON
Request / response pattern
Request: /api/identity/discovery
Response: {
  "surface": "IdentityEntrypoint",
  "state": "ok",
  "correlationId": "01HXZ0J4YV8AJF2GFG2T1F7Y42"
}

/api/IdentityManagement

Subjects, memberships, policies, deactivation, revocation.

MethodPath tailSample output
GETsubjects200 JSON
GETsubjects/{id}200 JSON
POSTsubjects/{id}/deactivate200/201/202 JSON
GETmemberships200 JSON
POSTmemberships200/201/202 JSON
POSTmemberships/{id}/revoke200/201/202 JSON
GETpolicies200 JSON
Request / response pattern
Request: /api/IdentityManagement/subjects
Response: {
  "surface": "IdentityManagement",
  "state": "ok",
  "correlationId": "01HXZ0J4YV8AJF2GFG2T1F7Y42"
}

/api/Introspection

Versions, compiled surface, breaking change metadata.

MethodPath tailSample output
GETversions200 JSON
GETsurface200 JSON
GETbreaking-changes200 JSON
Request / response pattern
Request: /api/Introspection/versions
Response: {
  "surface": "Introspection",
  "state": "ok",
  "correlationId": "01HXZ0J4YV8AJF2GFG2T1F7Y42"
}

/api/KnowledgeCorpus

Knowledge corpus CRUD.

MethodPath tailSample output
GET/200 JSON
GET{id}200 JSON
POST/200/201/202 JSON
PUT{id}200 JSON
DELETE{id}204 or 200 JSON
Request / response pattern
Request: /api/KnowledgeCorpus//
Response: {
  "surface": "KnowledgeCorpus",
  "state": "ok",
  "correlationId": "01HXZ0J4YV8AJF2GFG2T1F7Y42"
}

/api/Maintenance

Operator maintenance primitives.

MethodPath tailSample output
POSTclean-dynamic-state200/201/202 JSON
Request / response pattern
Request: /api/Maintenance/clean-dynamic-state
Response: {
  "surface": "Maintenance",
  "state": "ok",
  "correlationId": "01HXZ0J4YV8AJF2GFG2T1F7Y42"
}

/mcp/{tenantSlug}/{projectSlug}

MCP JSON-RPC and protected-resource metadata.

MethodPath tailSample output
POST/200/201/202 JSON
GET.well-known/oauth-protected-resource200 JSON
Request / response pattern
Request: /mcp/{tenantSlug}/{projectSlug}//
Response: {
  "surface": "Mcp",
  "state": "ok",
  "correlationId": "01HXZ0J4YV8AJF2GFG2T1F7Y42"
}

/api/Measure

Measure descriptors and queries.

MethodPath tailSample output
GETdescriptors200 JSON
GETdescriptors/{nodeIdEncoded}200 JSON
POSTquery200/201/202 JSON
Request / response pattern
Request: /api/Measure/descriptors
Response: {
  "surface": "Measure",
  "state": "ok",
  "correlationId": "01HXZ0J4YV8AJF2GFG2T1F7Y42"
}

/api/Observability

Audit/operational/debug entries, trails, traces, diagnostics.

MethodPath tailSample output
GETEntries200 JSON
GETEntries/{id}200 JSON
GETTrail/{entityName}200 JSON
GETTrails200 JSON
GETTrails/{id}200 JSON
GETTraces200 JSON
GETTraces/{id}200 JSON
GETDiagnostics200 JSON
Request / response pattern
Request: /api/Observability/Entries
Response: {
  "surface": "Observability",
  "state": "ok",
  "correlationId": "01HXZ0J4YV8AJF2GFG2T1F7Y42"
}

/api/OperationalResource

Ordered stream append/consume/ack/nack/seek/trim primitives.

MethodPath tailSample output
POSTstreams/{providerName}/{streamName}/append200/201/202 JSON
POSTstreams/{providerName}/{streamName}/consume200/201/202 JSON
POSTstreams/{streamName}/groups/{consumerGroup}/ack200/201/202 JSON
POSTstreams/{providerName}/{streamName}/nack200/201/202 JSON
POSTstreams/{streamName}/groups/{consumerGroup}/seek200/201/202 JSON
POSTstreams/{providerName}/{streamName}/trim200/201/202 JSON
Request / response pattern
Request: /api/OperationalResource/streams/{providerName}/{streamName}/append
Response: {
  "surface": "OperationalResource",
  "state": "ok",
  "correlationId": "01HXZ0J4YV8AJF2GFG2T1F7Y42"
}

/api/Operation

Plan and execute canonical operations.

MethodPath tailSample output
POSTExecute200/201/202 JSON
POSTPlan200/201/202 JSON
Request / response pattern
Request: /api/Operation/Execute
Response: {
  "surface": "Operation",
  "state": "ok",
  "correlationId": "01HXZ0J4YV8AJF2GFG2T1F7Y42"
}

/api/PlaneCapabilityGraph

PCG descriptor and node lookup.

MethodPath tailSample output
GETdescriptor200 JSON
GETnodes/{kind}200 JSON
Request / response pattern
Request: /api/PlaneCapabilityGraph/descriptor
Response: {
  "surface": "PlaneCapabilityGraph",
  "state": "ok",
  "correlationId": "01HXZ0J4YV8AJF2GFG2T1F7Y42"
}

/api/Platform

Provider health/capabilities, matrix, status, admin surface, domains.

MethodPath tailSample output
GETproviders200 JSON
GETproviders/{name}/health200 JSON
GETproviders/{name}/health/capabilities200 JSON
GETproviders/{name}/capabilities200 JSON
GETcapabilities-matrix200 JSON
GETstatus200 JSON
GETadmin-surface200 JSON
GETdomains200 JSON
Request / response pattern
Request: /api/Platform/providers
Response: {
  "surface": "PlatformDiagnostics",
  "state": "ok",
  "correlationId": "01HXZ0J4YV8AJF2GFG2T1F7Y42"
}

/api/projects

Self-service creation, hierarchy traversal, runtime, provider bindings, grants, lifecycle.

MethodPath tailSample output
POSTcreate200/201/202 JSON
GETresolve200 JSON
POST{parentProjectId}/children200/201/202 JSON
GET{projectId}/provider-bindings200 JSON
GET{projectId}/runtime200 JSON
POST{projectId}/suspend200/201/202 JSON
POST{projectId}/resume200/201/202 JSON
POST{projectId}/archive200/201/202 JSON
GET{projectId}/children200 JSON
GET{projectId}/descendants200 JSON
GET{projectId}/ancestors200 JSON
GET{projectId}/capability-grants200 JSON
POST{projectId}/capability-grants200/201/202 JSON
DELETE{projectId}/capability-grants/{grantId}204 or 200 JSON
Request / response pattern
Request: /api/projects/create
Response: {
  "surface": "Projects",
  "state": "ok",
  "correlationId": "01HXZ0J4YV8AJF2GFG2T1F7Y42"
}

/api/projects/{projectId}/provider-bindings

Provider binding mutations and invalidation.

MethodPath tailSample output
POST/200/201/202 JSON
PUT{alias}200 JSON
DELETE{alias}204 or 200 JSON
POST{alias}/restore200/201/202 JSON
POSTinvalidate200/201/202 JSON
Request / response pattern
Request: /api/projects/{projectId}/provider-bindings//
Response: {
  "surface": "ProjectProviderBinding",
  "state": "ok",
  "correlationId": "01HXZ0J4YV8AJF2GFG2T1F7Y42"
}

/api/{TenantRecord|OrganizationRecord|ProjectRecord}

Control-plane record CRUD and template adoption.

MethodPath tailSample output
GET/200 JSON
GET{id}200 JSON
POST/200/201/202 JSON
PUT{id}200 JSON
DELETE{id}204 or 200 JSON
GET/api/ProjectRecord/ByOrganization/{organizationId}200 JSON
POST/api/ProjectRecord/{id}/adopt-template200/201/202 JSON
Request / response pattern
Request: /api/{TenantRecord|OrganizationRecord|ProjectRecord}//
Response: {
  "surface": "Tenant/Organization/Project records",
  "state": "ok",
  "correlationId": "01HXZ0J4YV8AJF2GFG2T1F7Y42"
}

/api/Publication

Publication list/read/latest.

MethodPath tailSample output
GET/200 JSON
GET{pubVersion:long}200 JSON
GETlatest200 JSON
Request / response pattern
Request: /api/Publication//
Response: {
  "surface": "Publication",
  "state": "ok",
  "correlationId": "01HXZ0J4YV8AJF2GFG2T1F7Y42"
}

/api/RuntimeFabric and /api/PlatformRuntimeFabric

Project and platform fabric topology, scaling, resources, ingress, realization, health, binding, deployment plan/apply/reconcile/rollback/drain.

MethodPath tailSample output
GET{projectId}/fabric200 JSON
GET{projectId}/realization/{projectEnvironmentId}200 JSON
GET{projectId}/health/{projectEnvironmentId}200 JSON
GET{projectId}/topology200 JSON
PUT{projectId}/topology200 JSON
POST{projectId}/scaling/preview200/201/202 JSON
GET{projectId}/env/{projectEnvironmentId}/scaling/targets200 JSON
GET{projectId}/env/{projectEnvironmentId}/scaling/origins200 JSON
GET{projectId}/env/{projectEnvironmentId}/scaling/intents200 JSON
POST{projectId}/env/{projectEnvironmentId}/surfaces/{surfaceKind}/scale200/201/202 JSON
PUT{projectId}/topology/surfaces/{surfaceKind}/scaling200 JSON
PUT{projectId}/topology/surfaces/{surfaceKind}/resources200 JSON
PUT{projectId}/topology/surfaces/{surfaceKind}/ingress200 JSON
POST{projectId}/env/{projectEnvironmentId}/surfaces/{surfaceKind}/autoscale/suspend200/201/202 JSON
POST{projectId}/env/{projectEnvironmentId}/surfaces/{surfaceKind}/autoscale/resume200/201/202 JSON
GET{projectId}/env/{projectEnvironmentId}/surfaces/{surfaceKind}/autoscale/explain200 JSON
PUT{projectId}/env/{projectEnvironmentId}/binding200 JSON
PUTinstallation/{installationId}/env/{consumerEnvironmentId}200 JSON
POSTinstallation/{installationId}/upgrade200/201/202 JSON
POSTproject/{projectId}/env/{projectEnvironmentId}/plan200/201/202 JSON
POST{intentId}/apply200/201/202 JSON
POSTproject/{projectId}/env/{projectEnvironmentId}/reconcile200/201/202 JSON
POST{intentId}/rollback200/201/202 JSON
POSTproject/{projectId}/env/{projectEnvironmentId}/drain200/201/202 JSON
GETfabric200 JSON
GETtopology200 JSON
PUTtopology200 JSON
GETrealization/{platformEnvironmentId}200 JSON
GEThealth/{platformEnvironmentId}200 JSON
POSTenvironment200/201/202 JSON
PUTenvironment/{platformEnvironmentId}/binding200 JSON
PUTenv-assignment/{projectEnvironmentId}200 JSON
POSTenvironment/{platformEnvironmentId}/plan200/201/202 JSON
POSTenvironment/{platformEnvironmentId}/reconcile200/201/202 JSON
POSTenvironment/{platformEnvironmentId}/drain200/201/202 JSON
Request / response pattern
Request: /api/RuntimeFabric and /api/PlatformRuntimeFabric/{projectId}/fabric
Response: {
  "surface": "RuntimeFabric",
  "state": "ok",
  "correlationId": "01HXZ0J4YV8AJF2GFG2T1F7Y42"
}

/api/RuntimeUnit

Runtime unit CRUD, validation, capability description, publication lineage.

MethodPath tailSample output
GET/200 JSON
GET{id}200 JSON
POST/200/201/202 JSON
PUT{id}200 JSON
DELETE{id}204 or 200 JSON
POST{id}/validate200/201/202 JSON
POST{id}/describe-capabilities200/201/202 JSON
GET{id}/publication-lineage200 JSON
Request / response pattern
Request: /api/RuntimeUnit//
Response: {
  "surface": "RuntimeUnit",
  "state": "ok",
  "correlationId": "01HXZ0J4YV8AJF2GFG2T1F7Y42"
}

/api/Schema

Entity schema management, preview, diff, snapshots, migration history, hydrate, metadata, batch, validation, journal, migration apply/rollback.

MethodPath tailSample output
POSTentities200/201/202 JSON
PUTentities200 JSON
POSTentities/delete200/201/202 JSON
DELETEentities204 or 200 JSON
POSTentities/preview200/201/202 JSON
GETdiff200 JSON
POSTsnapshots200/201/202 JSON
GETsnapshots/{id}200 JSON
GETmigration-history/{entityName}200 JSON
POSThydrate200/201/202 JSON
GETaccess-model/discriminators200 JSON
GETentities/metadata200 JSON
GETentities/metadata/{entityName}200 JSON
POSTentities/batch200/201/202 JSON
POSTentities/delete-batch200/201/202 JSON
DELETEentities/batch204 or 200 JSON
POSTentities/validate200/201/202 JSON
GETjournal200 JSON
GETjournal/{id}200 JSON
POSTjournal/{id}/recover200/201/202 JSON
POSTmigrate/rollback/{journalId}200/201/202 JSON
POSTmigrate/apply200/201/202 JSON
Request / response pattern
Request: /api/Schema/entities
Response: {
  "surface": "Schema",
  "state": "ok",
  "correlationId": "01HXZ0J4YV8AJF2GFG2T1F7Y42"
}

/api/SchemaTransition

Schema transition list/read/preview/create/execute/rollback.

MethodPath tailSample output
GET/200 JSON
GET{id}200 JSON
POSTpreview200/201/202 JSON
POST/200/201/202 JSON
POST{id}/execute200/201/202 JSON
POST{id}/rollback200/201/202 JSON
Request / response pattern
Request: /api/SchemaTransition//
Response: {
  "surface": "SchemaTransition",
  "state": "ok",
  "correlationId": "01HXZ0J4YV8AJF2GFG2T1F7Y42"
}

/api/Sdk

SDK generation, language listing, versioning metadata.

MethodPath tailSample output
POSTgenerate200/201/202 JSON
GETlanguages200 JSON
GETversioning200 JSON
Request / response pattern
Request: /api/Sdk/generate
Response: {
  "surface": "Sdk",
  "state": "ok",
  "correlationId": "01HXZ0J4YV8AJF2GFG2T1F7Y42"
}

/api/SourceAsset

Folders, files, blobs, uploads, downloads, tree, scope shape.

MethodPath tailSample output
GETfolder200 JSON
POSTfolder200/201/202 JSON
PUTfolder/{id}/rename200 JSON
DELETEfolder/{id}204 or 200 JSON
GETfile200 JSON
GETfile/{id}200 JSON
GETfile/by-path200 JSON
POSTblob200/201/202 JSON
POSTfile200/201/202 JSON
PUTfile/{id}/content200 JSON
PUTfile/{id}/rename200 JSON
DELETEfile/{id}204 or 200 JSON
PUTfile/{id}/upload200 JSON
GETfile/{id}/download200 JSON
GETtree200 JSON
GETscope/shape200 JSON
Request / response pattern
Request: /api/SourceAsset/folder
Response: {
  "surface": "SourceAsset",
  "state": "ok",
  "correlationId": "01HXZ0J4YV8AJF2GFG2T1F7Y42"
}

/api/Storage

Upload, download, exists, delete, list, providers, info.

MethodPath tailSample output
POSTupload200/201/202 JSON
GETdownload/{**storagePath}200 JSON
HEADexists/{**storagePath}200/404 headers
DELETE{**storagePath}204 or 200 JSON
GETlist200 JSON
GETproviders200 JSON
GETinfo/{**storagePath}200 JSON
Request / response pattern
Request: /api/Storage/upload
Response: {
  "surface": "Storage",
  "state": "ok",
  "correlationId": "01HXZ0J4YV8AJF2GFG2T1F7Y42"
}

/api/Surface

Installable surface CRUD/install/uninstall/upgrade/suspend/resume.

MethodPath tailSample output
GET/200 JSON
GET{id}200 JSON
GET{id}/is-installed200 JSON
POST/200/201/202 JSON
POST{id}/install200/201/202 JSON
DELETE{id}/uninstall204 or 200 JSON
POST{id}/upgrade200/201/202 JSON
POST{id}/suspend200/201/202 JSON
POST{id}/resume200/201/202 JSON
Request / response pattern
Request: /api/Surface//
Response: {
  "surface": "Surface",
  "state": "ok",
  "correlationId": "01HXZ0J4YV8AJF2GFG2T1F7Y42"
}

/api/scheduling/{taskdefinition|taskrun|taskattempt}

Task definitions, triggers, runs, attempts, pause/resume/cancel/manual trigger.

MethodPath tailSample output
GETtaskdefinition/200 JSON
GETtaskdefinition/{id}200 JSON
PUTtaskdefinition/{id}200 JSON
DELETEtaskdefinition/{id}204 or 200 JSON
POSTtaskdefinition/{id}/pause200/201/202 JSON
POSTtaskdefinition/{id}/resume200/201/202 JSON
POSTtaskdefinition/200/201/202 JSON
GETtaskdefinition/{id}/triggers200 JSON
POSTtaskdefinition/{id}/triggers200/201/202 JSON
DELETEtaskdefinition/{id}/triggers/{triggerId}204 or 200 JSON
GETtaskrun/200 JSON
GETtaskrun/{id}200 JSON
POSTtaskrun/{id}/cancel200/201/202 JSON
POSTtaskrun/{definitionId}/trigger200/201/202 JSON
GETtaskattempt/200 JSON
GETtaskattempt/{id}200 JSON
Request / response pattern
Request: /api/scheduling/{taskdefinition|taskrun|taskattempt}/taskdefinition/
Response: {
  "surface": "Scheduling",
  "state": "ok",
  "correlationId": "01HXZ0J4YV8AJF2GFG2T1F7Y42"
}

/api/TriggerAudit

Trigger audit events, clear, summary, diagnostics.

MethodPath tailSample output
GETEvents200 JSON
DELETEClear204 or 200 JSON
GETSummary200 JSON
GETDiagnostics200 JSON
Request / response pattern
Request: /api/TriggerAudit/Events
Response: {
  "surface": "TriggerAudit",
  "state": "ok",
  "correlationId": "01HXZ0J4YV8AJF2GFG2T1F7Y42"
}

/api/Usage

Usage events, rollups, quotas, summary.

MethodPath tailSample output
GET{projectId}/events200 JSON
GET{projectId}/rollups200 JSON
GET{projectId}/quotas200 JSON
POST{projectId}/quotas200/201/202 JSON
PUT{projectId}/quotas/{quotaId}200 JSON
DELETE{projectId}/quotas/{quotaId}204 or 200 JSON
GET{projectId}/summary200 JSON
Request / response pattern
Request: /api/Usage/{projectId}/events
Response: {
  "surface": "Usage",
  "state": "ok",
  "correlationId": "01HXZ0J4YV8AJF2GFG2T1F7Y42"
}

/api/version

Version vectors, project publication, platform baseline, foundation adoption, upgrade plan/approve/execute/rollback/preview, deprecations.

MethodPath tailSample output
GET/200 JSON
GETprojects/{projectId}200 JSON
GETprojects/{projectId}/publication/{publicationVersion:long}200 JSON
GETplatform-baseline200 JSON
GETfoundations/{profileName}/{foundationVersion}200 JSON
POSTprojects/{projectId}/foundation/adopt200/201/202 JSON
POSTprojects/{projectId}/upgrade/plan200/201/202 JSON
POSTprojects/{projectId}/upgrade/plans/{planId}/approve200/201/202 JSON
POSTprojects/{projectId}/upgrade/plans/{planId}/execute200/201/202 JSON
POSTprojects/{projectId}/upgrade/executions/{executionId}/rollback200/201/202 JSON
POSTprojects/{projectId}/upgrade/preview200/201/202 JSON
GETdeprecations200 JSON
POSTdeprecations/announce200/201/202 JSON
Request / response pattern
Request: /api/version//
Response: {
  "surface": "VersionGovernance",
  "state": "ok",
  "correlationId": "01HXZ0J4YV8AJF2GFG2T1F7Y42"
}

/api/webhooks and /api/Webhook

Outbound endpoints, deliveries, secret rotation, inbound receivers, inbound dispatch, diagnostics.

MethodPath tailSample output
GETendpoints200 JSON
GETendpoints/{id}200 JSON
POSTendpoints200/201/202 JSON
PUTendpoints/{id}200 JSON
DELETEendpoints/{id}204 or 200 JSON
POSTendpoints/{id}/rotate-secret200/201/202 JSON
GETendpoints/{endpointId}/deliveries200 JSON
GETreceivers200 JSON
GETreceivers/{id}200 JSON
POSTreceivers200/201/202 JSON
PUTreceivers/{id}200 JSON
DELETEreceivers/{id}204 or 200 JSON
POSTinbound/{publicReceiverKey}200/201/202 JSON
GETdiagnostics200 JSON
Request / response pattern
Request: /api/webhooks and /api/Webhook/endpoints
Response: {
  "surface": "Webhook",
  "state": "ok",
  "correlationId": "01HXZ0J4YV8AJF2GFG2T1F7Y42"
}

/api/AuthoredRuntime

Admin worker controls for the authored runtime pool.

MethodPath tailSample output
POSTworkers/reset200/201/202 JSON
Request / response pattern
Request: /api/AuthoredRuntime/workers/reset
Response: {
  "surface": "AuthoredRuntimeAdmin",
  "state": "ok",
  "correlationId": "01HXZ0J4YV8AJF2GFG2T1F7Y42"
}

/api/BindingDiagnostics

Typed binder diagnostics, factory creation checks, and request pipeline inspection.

MethodPath tailSample output
POSTTestTypedBind200/201/202 JSON
GETTestFactoryCreate200 JSON
GETPipeline200 JSON
Request / response pattern
Request: /api/BindingDiagnostics/TestTypedBind
Response: {
  "surface": "BindingDiagnostics",
  "state": "ok",
  "correlationId": "01HXZ0J4YV8AJF2GFG2T1F7Y42"
}

/api/Connector

Declarative connector build surface under the canonical connector route.

MethodPath tailSample output
POSTbuild/declarative200/201/202 JSON
Request / response pattern
Request: /api/Connector/build/declarative
Response: {
  "surface": "ConnectorBuild",
  "state": "ok",
  "correlationId": "01HXZ0J4YV8AJF2GFG2T1F7Y42"
}

/api/Connector

Connector conformance execution surface.

MethodPath tailSample output
POSTconformance/run200/201/202 JSON
Request / response pattern
Request: /api/Connector/conformance/run
Response: {
  "surface": "ConnectorConformance",
  "state": "ok",
  "correlationId": "01HXZ0J4YV8AJF2GFG2T1F7Y42"
}

/api/Connector

Connector host memory and state lookup surface.

MethodPath tailSample output
GETmemory/get200 JSON
Request / response pattern
Request: /api/Connector/memory/get
Response: {
  "surface": "ConnectorMemory",
  "state": "ok",
  "correlationId": "01HXZ0J4YV8AJF2GFG2T1F7Y42"
}

/api/Connector

Connector publication cache, version lookup, implementation lookup, and invalidation.

MethodPath tailSample output
GETpublication/latest200 JSON
GETpublication/version/{publicationVersion:long}200 JSON
GETpublication/version/{publicationVersion:long}/{implementationId}200 JSON
POSTpublication/invalidate200/201/202 JSON
Request / response pattern
Request: /api/Connector/publication/latest
Response: {
  "surface": "ConnectorPublication",
  "state": "ok",
  "correlationId": "01HXZ0J4YV8AJF2GFG2T1F7Y42"
}

/api/CredentialReveal

Controlled credential reveal token exchange.

MethodPath tailSample output
POST{tokenId}/reveal200/201/202 JSON
Request / response pattern
Request: /api/CredentialReveal/{tokenId}/reveal
Response: {
  "surface": "CredentialReveal",
  "state": "ok",
  "correlationId": "01HXZ0J4YV8AJF2GFG2T1F7Y42"
}

/api/projects/{projectId}/governance

Inherited governance envelope and descendant inheritance policy management.

MethodPath tailSample output
GETenvelope200 JSON
GETinheritance-policy200 JSON
PUTinheritance-policy200 JSON
Request / response pattern
Request: /api/projects/{projectId}/governance/envelope
Response: {
  "surface": "DescendantGovernance",
  "state": "ok",
  "correlationId": "01HXZ0J4YV8AJF2GFG2T1F7Y42"
}

/api/DevBootstrapDescriptor

Development bootstrap descriptor for local and generated tooling.

MethodPath tailSample output
GETdescriptor200 JSON
Request / response pattern
Request: /api/DevBootstrapDescriptor/descriptor
Response: {
  "surface": "DevBootstrapDescriptor",
  "state": "ok",
  "correlationId": "01HXZ0J4YV8AJF2GFG2T1F7Y42"
}

/api/DynamicEntityTest

Dynamic entity integration diagnostics for create/delete/update, table and column checks, AST query/mutation, and cleanup.

MethodPath tailSample output
POSTCreate200/201/202 JSON
POSTDelete200/201/202 JSON
DELETEDelete204 or 200 JSON
DELETECleanAllProvider/{entityName}204 or 200 JSON
DELETEDropTableProvider/{tableName}204 or 200 JSON
GETTableCheckProvider/{pattern}200 JSON
GETTableCheck/{pattern}200 JSON
GETColumnCheckProvider/{tableName}200 JSON
GETColumnCheck/{tableName}200 JSON
GETHydrationCheck/{entityName}200 JSON
POSTPreview200/201/202 JSON
POSTUpdate200/201/202 JSON
PUTUpdate200 JSON
DELETECleanAll/{entityName}204 or 200 JSON
DELETEDropTable/{tableName}204 or 200 JSON
POSTAstQuery200/201/202 JSON
POSTAstMutate200/201/202 JSON
Request / response pattern
Request: /api/DynamicEntityTest/Create
Response: {
  "surface": "DynamicEntityTest",
  "state": "ok",
  "correlationId": "01HXZ0J4YV8AJF2GFG2T1F7Y42"
}

/api/ExecutionCapabilityMatrix

Execution surface capability matrix describing grants, host imports, and runtime affordances.

MethodPath tailSample output
GETmatrix200 JSON
Request / response pattern
Request: /api/ExecutionCapabilityMatrix/matrix
Response: {
  "surface": "ExecutionCapabilityMatrix",
  "state": "ok",
  "correlationId": "01HXZ0J4YV8AJF2GFG2T1F7Y42"
}

/api/Federation

Federation contracts, lookup, creation, revocation, and access checks.

MethodPath tailSample output
GETcontracts200 JSON
GETcontracts/{id}200 JSON
POSTcontracts200/201/202 JSON
DELETEcontracts/{id}204 or 200 JSON
GETcontracts/check200 JSON
Request / response pattern
Request: /api/Federation/contracts
Response: {
  "surface": "Federation",
  "state": "ok",
  "correlationId": "01HXZ0J4YV8AJF2GFG2T1F7Y42"
}

/api/OrganizationRecord

Organization control-plane record CRUD.

MethodPath tailSample output
GET/200 JSON
GET{id}200 JSON
POST/200/201/202 JSON
PUT{id}200 JSON
DELETE{id}204 or 200 JSON
Request / response pattern
Request: /api/OrganizationRecord//
Response: {
  "surface": "OrganizationRecord",
  "state": "ok",
  "correlationId": "01HXZ0J4YV8AJF2GFG2T1F7Y42"
}

/api/PlatformSourceAssetDiagnostics

Source asset cache status, rebuild, and migration diagnostics.

MethodPath tailSample output
GETcache-status200 JSON
POSTrebuild-cache200/201/202 JSON
POSTmigrate200/201/202 JSON
Request / response pattern
Request: /api/PlatformSourceAssetDiagnostics/cache-status
Response: {
  "surface": "PlatformSourceAssetDiagnostics",
  "state": "ok",
  "correlationId": "01HXZ0J4YV8AJF2GFG2T1F7Y42"
}

/api/projects

Project-scoped capability grant list, grant, and revoke operations.

MethodPath tailSample output
GET{projectId}/capability-grants200 JSON
POST{projectId}/capability-grants200/201/202 JSON
DELETE{projectId}/capability-grants/{grantId}204 or 200 JSON
Request / response pattern
Request: /api/projects/{projectId}/capability-grants
Response: {
  "surface": "ProjectCapabilityGrant",
  "state": "ok",
  "correlationId": "01HXZ0J4YV8AJF2GFG2T1F7Y42"
}

/api/projects

Project resolution, child project creation, provider binding lookup, runtime state, hierarchy traversal, and lifecycle actions.

MethodPath tailSample output
GETresolve200 JSON
POST{parentProjectId}/children200/201/202 JSON
GET{projectId}/provider-bindings200 JSON
GET{projectId}/runtime200 JSON
POST{projectId}/suspend200/201/202 JSON
POST{projectId}/resume200/201/202 JSON
POST{projectId}/archive200/201/202 JSON
GET{projectId}/children200 JSON
GET{projectId}/descendants200 JSON
GET{projectId}/ancestors200 JSON
Request / response pattern
Request: /api/projects/resolve
Response: {
  "surface": "ProjectProvisioning",
  "state": "ok",
  "correlationId": "01HXZ0J4YV8AJF2GFG2T1F7Y42"
}

/api/ProjectRecord

Project control-plane record CRUD, organization lookup, and template adoption.

MethodPath tailSample output
GET/200 JSON
GET{id}200 JSON
POST/200/201/202 JSON
PUT{id}200 JSON
DELETE{id}204 or 200 JSON
GETByOrganization/{organizationId}200 JSON
POST{id}/adopt-template200/201/202 JSON
Request / response pattern
Request: /api/ProjectRecord//
Response: {
  "surface": "ProjectRecord",
  "state": "ok",
  "correlationId": "01HXZ0J4YV8AJF2GFG2T1F7Y42"
}

/api/projects

Self-service project creation.

MethodPath tailSample output
POSTcreate200/201/202 JSON
Request / response pattern
Request: /api/projects/create
Response: {
  "surface": "ProjectSelfService",
  "state": "ok",
  "correlationId": "01HXZ0J4YV8AJF2GFG2T1F7Y42"
}

/api/root-project

Current root project lookup.

MethodPath tailSample output
GETcurrent200 JSON
Request / response pattern
Request: /api/root-project/current
Response: {
  "surface": "RootProject",
  "state": "ok",
  "correlationId": "01HXZ0J4YV8AJF2GFG2T1F7Y42"
}

/api/RuntimeConnectorBinding

Runtime connector bindings by scope, environment, and connector name.

MethodPath tailSample output
GET{scope}200 JSON
GET{scope}/{environmentId}/{connectorName}200 JSON
PUT{scope}/{environmentId}/{connectorName}200 JSON
DELETE{scope}/{environmentId}/{connectorName}204 or 200 JSON
Request / response pattern
Request: /api/RuntimeConnectorBinding/{scope}
Response: {
  "surface": "RuntimeConnectorBinding",
  "state": "ok",
  "correlationId": "01HXZ0J4YV8AJF2GFG2T1F7Y42"
}

/api/scheduling/taskattempt

Scheduling task attempt listing and inspection.

MethodPath tailSample output
GET/200 JSON
GET{id}200 JSON
Request / response pattern
Request: /api/scheduling/taskattempt//
Response: {
  "surface": "TaskAttempt",
  "state": "ok",
  "correlationId": "01HXZ0J4YV8AJF2GFG2T1F7Y42"
}

/api/scheduling/taskdefinition

Task definitions, pause/resume, triggers, and definition lifecycle.

MethodPath tailSample output
GET/200 JSON
GET{id}200 JSON
PUT{id}200 JSON
DELETE{id}204 or 200 JSON
POST{id}/pause200/201/202 JSON
POST{id}/resume200/201/202 JSON
POST/200/201/202 JSON
GET{id}/triggers200 JSON
POST{id}/triggers200/201/202 JSON
DELETE{id}/triggers/{triggerId}204 or 200 JSON
Request / response pattern
Request: /api/scheduling/taskdefinition//
Response: {
  "surface": "TaskDefinition",
  "state": "ok",
  "correlationId": "01HXZ0J4YV8AJF2GFG2T1F7Y42"
}

/api/scheduling/taskrun

Task run listing, inspection, cancellation, and manual triggering.

MethodPath tailSample output
GET/200 JSON
GET{id}200 JSON
POST{id}/cancel200/201/202 JSON
POST{definitionId}/trigger200/201/202 JSON
Request / response pattern
Request: /api/scheduling/taskrun//
Response: {
  "surface": "TaskRun",
  "state": "ok",
  "correlationId": "01HXZ0J4YV8AJF2GFG2T1F7Y42"
}

/api/TenantRecord

Tenant control-plane record CRUD.

MethodPath tailSample output
GET/200 JSON
GET{id}200 JSON
POST/200/201/202 JSON
PUT{id}200 JSON
DELETE{id}204 or 200 JSON
Request / response pattern
Request: /api/TenantRecord//
Response: {
  "surface": "TenantRecord",
  "state": "ok",
  "correlationId": "01HXZ0J4YV8AJF2GFG2T1F7Y42"
}