Build · Platform API

Platform API reference

Everything the console does, from your own code: integrations, flows, runs, connections, triggers, reconciliation, approvals and MCP. Version 2026-10-01.

Overview

The Nexra platform API lets your own software do what the Nexra console does: build and run integrations, follow every run, manage connections, triggers and reconciliations, receive signed events and answer approvals.

Authentication. Send a Nexra access token as Authorization: Bearer <token> and the workspace to act in as X-Workspace-Id: <workspaceId>. Sign in with the Nexra CLI (nexra auth login) to get a token; it carries your own role, so the API can do exactly what you can do in the console. Public operations need no token.

Errors. Every error has the same JSON shape: error, message, statusCode, requestId and path, plus a stable code where one exists. Quote the requestId (also sent as the X-Request-ID header) when you contact support.

Lists. List operations return the newest items first, as a plain array capped at a documented size. Operations that page with a cursor return { items, nextCursor }; pass nextCursor back as cursor until it is null.

Retries. Requests that start work (for example starting a run) take an idempotencyKey. Sending the same key again returns the first result instead of starting the work twice, so it is safe to retry after a network error.

Versioning. This description is version 2026-10-01. Adding an operation or an optional field is not a breaking change; a breaking change gets a new dated version.

The TypeScript and Python examples use the Nexra SDKs. Packages are rolling out; contact us at contact@amakoragroup.com for early access. The cURL examples work today.

Errors

Error
{
  "error": "request_failed",
  "message": "A bounded execution idempotency key is required.",
  "statusCode": 400,
  "requestId": "1f0c2a4e-6b1d-4c39-9d0f-2f8a8e1f6b7a",
  "path": "/api/console/connect/flows/cmflow01orders/executions"
}
400

The request was not valid. message says what to change.

401

The access token is missing, expired or revoked.

403

Your role in this workspace does not allow this action, or the workspace is not yours.

404

Nothing with that id exists in this workspace.

409

The request conflicts with the current state, for example a record that was already decided.

413

The request body is larger than this endpoint accepts.

429

Too many requests. Wait for the number of seconds in Retry-After, then try again.

500

Nexra could not complete the request. It is safe to retry with the same idempotency key.

Integrations

An integration groups the flows that connect two or more systems for one business purpose.

GET/api/console/connect/integrations

List integrations

Integrations in the workspace, most recently changed first, with their flows and lifecycle. Archived and deleted ones are left out.

Access token and workspace

Send Authorization: Bearer <token> and X-Workspace-Id. The token acts with your own role.

Examples

javascript
import { createNexraClient, unwrap } from "@amakora/nexra-sdk";

const nexra = createNexraClient(); // NEXRA_TOKEN and NEXRA_WORKSPACE_ID
const result = unwrap(
  await nexra.GET("/api/console/connect/integrations"),
);

Response · 200

Success.

A list, newest first, capped as described above.

Response fields
FieldTypeDescription
idrequiredstring
projectIdrequiredstring
namerequiredstring
slugrequiredstring
descriptionrequiredstring | null
statusrequiredstring

Stored status, for example draft, active or archived.

businessOwnerUserIdrequiredstring | null
technicalOwnerUserIdrequiredstring | null
createdAtrequiredstring

ISO 8601 date and time.

updatedAtrequiredstring

ISO 8601 date and time.

archivedAtrequiredstring | null

ISO 8601 date and time.

pausedAtrequiredstring | null

ISO 8601 date and time.

suspendedAtrequiredstring | null

ISO 8601 date and time.

deletedAtrequiredstring | null

ISO 8601 date and time.

lifecycleobject
flowsarray of object

Errors: 400, 401, 403, 404, 429, 500. Error shape

POST/api/console/connect/integrations

Create an integration

Access token and workspace

Send Authorization: Bearer <token> and X-Workspace-Id. The token acts with your own role.

Request body · application/json

Request body
FieldTypeDescription
namerequiredstring
projectIdrequiredstring

A project in this workspace.

slugstring

Defaults to a slug of the name. Must be unique.

descriptionstring
businessOwnerUserIdstring | null

Workspace member who owns the business outcome. Send null to clear.

technicalOwnerUserIdstring | null

Examples

javascript
import { createNexraClient, unwrap } from "@amakora/nexra-sdk";

const nexra = createNexraClient(); // NEXRA_TOKEN and NEXRA_WORKSPACE_ID
const result = unwrap(
  await nexra.POST("/api/console/connect/integrations", {
    body: {
      "name": "string",
      "projectId": "string"
    },
  }),
);

Response · 201

Success.

Response fields
FieldTypeDescription
idrequiredstring
projectIdrequiredstring
namerequiredstring
slugrequiredstring
descriptionrequiredstring | null
statusrequiredstring

Stored status, for example draft, active or archived.

businessOwnerUserIdrequiredstring | null
technicalOwnerUserIdrequiredstring | null
createdAtrequiredstring

ISO 8601 date and time.

updatedAtrequiredstring

ISO 8601 date and time.

archivedAtrequiredstring | null

ISO 8601 date and time.

pausedAtrequiredstring | null

ISO 8601 date and time.

suspendedAtrequiredstring | null

ISO 8601 date and time.

deletedAtrequiredstring | null

ISO 8601 date and time.

lifecycleobject
flowsarray of object

Errors: 400, 401, 403, 404, 429, 500. Error shape

GET/api/console/connect/integrations/{integrationId}

Get an integration

Access token and workspace

Send Authorization: Bearer <token> and X-Workspace-Id. The token acts with your own role.

Parameters

Parameters
FieldTypeDescription
integrationId (path)requiredstring

The integration id.

Examples

javascript
import { createNexraClient, unwrap } from "@amakora/nexra-sdk";

const nexra = createNexraClient(); // NEXRA_TOKEN and NEXRA_WORKSPACE_ID
const result = unwrap(
  await nexra.GET("/api/console/connect/integrations/{integrationId}", {
    params: { path: { integrationId: "integration_id" } },
  }),
);

Response · 200

Success.

Response fields
FieldTypeDescription
idrequiredstring
projectIdrequiredstring
namerequiredstring
slugrequiredstring
descriptionrequiredstring | null
statusrequiredstring

Stored status, for example draft, active or archived.

businessOwnerUserIdrequiredstring | null
technicalOwnerUserIdrequiredstring | null
createdAtrequiredstring

ISO 8601 date and time.

updatedAtrequiredstring

ISO 8601 date and time.

archivedAtrequiredstring | null

ISO 8601 date and time.

pausedAtrequiredstring | null

ISO 8601 date and time.

suspendedAtrequiredstring | null

ISO 8601 date and time.

deletedAtrequiredstring | null

ISO 8601 date and time.

lifecycleobject
flowsarray of object

Errors: 400, 401, 403, 404, 429, 500. Error shape

PATCH/api/console/connect/integrations/{integrationId}

Update an integration

Access token and workspace

Send Authorization: Bearer <token> and X-Workspace-Id. The token acts with your own role.

Parameters

Parameters
FieldTypeDescription
integrationId (path)requiredstring

The integration id.

Request body · application/json

Request body
FieldTypeDescription
namestring
descriptionstring

An empty string clears it.

ownerUserIdstring | null

Same as businessOwnerUserId.

businessOwnerUserIdstring | null

Workspace member who owns the business outcome. Send null to clear.

technicalOwnerUserIdstring | null

Examples

javascript
import { createNexraClient, unwrap } from "@amakora/nexra-sdk";

const nexra = createNexraClient(); // NEXRA_TOKEN and NEXRA_WORKSPACE_ID
const result = unwrap(
  await nexra.PATCH("/api/console/connect/integrations/{integrationId}", {
    params: { path: { integrationId: "integration_id" } },
    body: {},
  }),
);

Response · 200

Success.

Response fields
FieldTypeDescription
idrequiredstring
projectIdrequiredstring
namerequiredstring
slugrequiredstring
descriptionrequiredstring | null
statusrequiredstring

Stored status, for example draft, active or archived.

businessOwnerUserIdrequiredstring | null
technicalOwnerUserIdrequiredstring | null
createdAtrequiredstring

ISO 8601 date and time.

updatedAtrequiredstring

ISO 8601 date and time.

archivedAtrequiredstring | null

ISO 8601 date and time.

pausedAtrequiredstring | null

ISO 8601 date and time.

suspendedAtrequiredstring | null

ISO 8601 date and time.

deletedAtrequiredstring | null

ISO 8601 date and time.

lifecycleobject
flowsarray of object

Errors: 400, 401, 403, 404, 429, 500. Error shape

POST/api/console/connect/integrations/{integrationId}/archive

Archive an integration

Access token and workspace

Send Authorization: Bearer <token> and X-Workspace-Id. The token acts with your own role.

Parameters

Parameters
FieldTypeDescription
integrationId (path)requiredstring

The integration id.

Examples

javascript
import { createNexraClient, unwrap } from "@amakora/nexra-sdk";

const nexra = createNexraClient(); // NEXRA_TOKEN and NEXRA_WORKSPACE_ID
const result = unwrap(
  await nexra.POST("/api/console/connect/integrations/{integrationId}/archive", {
    params: { path: { integrationId: "integration_id" } },
  }),
);

Response · 201

Success.

Response fields
FieldTypeDescription
idrequiredstring
projectIdrequiredstring
namerequiredstring
slugrequiredstring
descriptionrequiredstring | null
statusrequiredstring

Stored status, for example draft, active or archived.

businessOwnerUserIdrequiredstring | null
technicalOwnerUserIdrequiredstring | null
createdAtrequiredstring

ISO 8601 date and time.

updatedAtrequiredstring

ISO 8601 date and time.

archivedAtrequiredstring | null

ISO 8601 date and time.

pausedAtrequiredstring | null

ISO 8601 date and time.

suspendedAtrequiredstring | null

ISO 8601 date and time.

deletedAtrequiredstring | null

ISO 8601 date and time.

lifecycleobject
flowsarray of object

Errors: 400, 401, 403, 404, 429, 500. Error shape

GET/api/console/connect/integrations/{integrationId}/export

Export an integration

A description of the integration for use from other tools: its flows, operations, mappings and how to call it through MCP. It never contains credentials.

Access token and workspace

Send Authorization: Bearer <token> and X-Workspace-Id. The token acts with your own role.

Parameters

Parameters
FieldTypeDescription
integrationId (path)requiredstring

The integration id.

Examples

javascript
import { createNexraClient, unwrap } from "@amakora/nexra-sdk";

const nexra = createNexraClient(); // NEXRA_TOKEN and NEXRA_WORKSPACE_ID
const result = unwrap(
  await nexra.GET("/api/console/connect/integrations/{integrationId}/export", {
    params: { path: { integrationId: "integration_id" } },
  }),
);

Response · 200

Success.

Errors: 400, 401, 403, 404, 429, 500. Error shape

Flows

A flow moves records from a source to a destination. Flows have versions; one version is published at a time.

POST/api/console/connect/integrations/{integrationId}/flows

Create a flow

Creates a flow with a first draft version.

Access token and workspace

Send Authorization: Bearer <token> and X-Workspace-Id. The token acts with your own role.

Parameters

Parameters
FieldTypeDescription
integrationId (path)requiredstring

The integration id.

Request body · application/json

Request body
FieldTypeDescription
namerequiredstring
triggerType"manual" | "schedule"
environment"sandbox" | "production"

sandbox is Test mode; production is live.

slugstring
descriptionstring
versionLabelstring

Examples

javascript
import { createNexraClient, unwrap } from "@amakora/nexra-sdk";

const nexra = createNexraClient(); // NEXRA_TOKEN and NEXRA_WORKSPACE_ID
const result = unwrap(
  await nexra.POST("/api/console/connect/integrations/{integrationId}/flows", {
    params: { path: { integrationId: "integration_id" } },
    body: {
      "name": "string"
    },
  }),
);

Response · 201

Success.

Response fields
FieldTypeDescription
idrequiredstring
integrationIdrequiredstring
namerequiredstring
slugrequiredstring
descriptionrequiredstring | null
statusrequiredstring
activeVersionIdrequiredstring | null

The published version runs use.

ownerUserIdrequiredstring | null
createdAtrequiredstring

ISO 8601 date and time.

updatedAtrequiredstring

ISO 8601 date and time.

pausedAtrequiredstring | null

ISO 8601 date and time.

deletedAtrequiredstring | null

ISO 8601 date and time.

versionsarray of object
lifecycleobject

Errors: 400, 401, 403, 404, 429, 500. Error shape

GET/api/console/connect/flows/{flowId}

Get a flow

The flow with its versions, schedules, lifecycle and read progress.

Access token and workspace

Send Authorization: Bearer <token> and X-Workspace-Id. The token acts with your own role.

Parameters

Parameters
FieldTypeDescription
flowId (path)requiredstring

The flow id.

Examples

javascript
import { createNexraClient, unwrap } from "@amakora/nexra-sdk";

const nexra = createNexraClient(); // NEXRA_TOKEN and NEXRA_WORKSPACE_ID
const result = unwrap(
  await nexra.GET("/api/console/connect/flows/{flowId}", {
    params: { path: { flowId: "flow_id" } },
  }),
);

Response · 200

Success.

Response fields
FieldTypeDescription
idrequiredstring
integrationIdrequiredstring
namerequiredstring
slugrequiredstring
descriptionrequiredstring | null
statusrequiredstring
activeVersionIdrequiredstring | null

The published version runs use.

ownerUserIdrequiredstring | null
createdAtrequiredstring

ISO 8601 date and time.

updatedAtrequiredstring

ISO 8601 date and time.

pausedAtrequiredstring | null

ISO 8601 date and time.

deletedAtrequiredstring | null

ISO 8601 date and time.

versionsarray of object
lifecycleobject

Errors: 400, 401, 403, 404, 429, 500. Error shape

PATCH/api/console/connect/flows/{flowId}

Update a flow

Access token and workspace

Send Authorization: Bearer <token> and X-Workspace-Id. The token acts with your own role.

Parameters

Parameters
FieldTypeDescription
flowId (path)requiredstring

The flow id.

Request body · application/json

Request body
FieldTypeDescription
namestring
descriptionstring
ownerUserIdstring | null

A workspace member. Send null to clear.

Examples

javascript
import { createNexraClient, unwrap } from "@amakora/nexra-sdk";

const nexra = createNexraClient(); // NEXRA_TOKEN and NEXRA_WORKSPACE_ID
const result = unwrap(
  await nexra.PATCH("/api/console/connect/flows/{flowId}", {
    params: { path: { flowId: "flow_id" } },
    body: {},
  }),
);

Response · 200

Success.

Response fields
FieldTypeDescription
idrequiredstring
integrationIdrequiredstring
namerequiredstring
slugrequiredstring
descriptionrequiredstring | null
statusrequiredstring
activeVersionIdrequiredstring | null

The published version runs use.

ownerUserIdrequiredstring | null
createdAtrequiredstring

ISO 8601 date and time.

updatedAtrequiredstring

ISO 8601 date and time.

pausedAtrequiredstring | null

ISO 8601 date and time.

deletedAtrequiredstring | null

ISO 8601 date and time.

versionsarray of object
lifecycleobject

Errors: 400, 401, 403, 404, 429, 500. Error shape

GET/api/console/connect/flows/{flowId}/versions

List a flow's versions

Access token and workspace

Send Authorization: Bearer <token> and X-Workspace-Id. The token acts with your own role.

Parameters

Parameters
FieldTypeDescription
flowId (path)requiredstring

The flow id.

Examples

javascript
import { createNexraClient, unwrap } from "@amakora/nexra-sdk";

const nexra = createNexraClient(); // NEXRA_TOKEN and NEXRA_WORKSPACE_ID
const result = unwrap(
  await nexra.GET("/api/console/connect/flows/{flowId}/versions", {
    params: { path: { flowId: "flow_id" } },
  }),
);

Response · 200

Success.

A list, newest first, capped as described above.

Response fields
FieldTypeDescription
idrequiredstring
flowIdrequiredstring
versionNumberrequiredinteger
versionLabelrequiredstring | null
statusrequiredstring
triggerTyperequiredstring
validationStatusrequiredstring | null
createdAtrequiredstring

ISO 8601 date and time.

publishedAtrequiredstring | null

ISO 8601 date and time.

sourceVersionIdrequiredstring | null

Errors: 400, 401, 403, 404, 429, 500. Error shape

POST/api/console/connect/flows/{flowId}/versions

Create a flow version

A new draft version, optionally copied from an existing one.

Access token and workspace

Send Authorization: Bearer <token> and X-Workspace-Id. The token acts with your own role.

Parameters

Parameters
FieldTypeDescription
flowId (path)requiredstring

The flow id.

Request body · application/json

Request body
FieldTypeDescription
fromVersionIdstring

Copy this version's steps and mappings.

environment"sandbox" | "production"

sandbox is Test mode; production is live.

triggerType"manual" | "schedule"
versionLabelstring

Examples

javascript
import { createNexraClient, unwrap } from "@amakora/nexra-sdk";

const nexra = createNexraClient(); // NEXRA_TOKEN and NEXRA_WORKSPACE_ID
const result = unwrap(
  await nexra.POST("/api/console/connect/flows/{flowId}/versions", {
    params: { path: { flowId: "flow_id" } },
    body: {},
  }),
);

Response · 201

Success.

Response fields
FieldTypeDescription
idrequiredstring
flowIdrequiredstring
versionNumberrequiredinteger
versionLabelrequiredstring | null
statusrequiredstring
triggerTyperequiredstring
validationStatusrequiredstring | null
createdAtrequiredstring

ISO 8601 date and time.

publishedAtrequiredstring | null

ISO 8601 date and time.

sourceVersionIdrequiredstring | null

Errors: 400, 401, 403, 404, 429, 500. Error shape

GET/api/console/connect/flows/{flowId}/versions/{versionId}

Get a flow version

Access token and workspace

Send Authorization: Bearer <token> and X-Workspace-Id. The token acts with your own role.

Parameters

Parameters
FieldTypeDescription
flowId (path)requiredstring

The flow id.

versionId (path)requiredstring

The version id.

Examples

javascript
import { createNexraClient, unwrap } from "@amakora/nexra-sdk";

const nexra = createNexraClient(); // NEXRA_TOKEN and NEXRA_WORKSPACE_ID
const result = unwrap(
  await nexra.GET("/api/console/connect/flows/{flowId}/versions/{versionId}", {
    params: { path: { flowId: "flow_id", versionId: "version_id" } },
  }),
);

Response · 200

Success.

Response fields
FieldTypeDescription
idrequiredstring
flowIdrequiredstring
versionNumberrequiredinteger
versionLabelrequiredstring | null
statusrequiredstring
triggerTyperequiredstring
validationStatusrequiredstring | null
createdAtrequiredstring

ISO 8601 date and time.

publishedAtrequiredstring | null

ISO 8601 date and time.

sourceVersionIdrequiredstring | null

Errors: 400, 401, 403, 404, 429, 500. Error shape

POST/api/console/connect/flows/{flowId}/validate

Check a flow version

Checks the version can run and lists any problems. Defaults to the latest version.

Access token and workspace

Send Authorization: Bearer <token> and X-Workspace-Id. The token acts with your own role.

Parameters

Parameters
FieldTypeDescription
flowId (path)requiredstring

The flow id.

Request body · application/json

Request body
FieldTypeDescription
versionIdstring

Examples

javascript
import { createNexraClient, unwrap } from "@amakora/nexra-sdk";

const nexra = createNexraClient(); // NEXRA_TOKEN and NEXRA_WORKSPACE_ID
const result = unwrap(
  await nexra.POST("/api/console/connect/flows/{flowId}/validate", {
    params: { path: { flowId: "flow_id" } },
    body: {},
  }),
);

Response · 201

Success.

Response fields
FieldTypeDescription
validrequiredboolean
checksumrequiredstring | null
issuesrequiredarray of object

Errors: 400, 401, 403, 404, 429, 500. Error shape

POST/api/console/connect/flows/{flowId}/publish

Publish a flow version

Makes the version the one runs use. Answers 400 with issues when the version has problems.

Access token and workspace

Send Authorization: Bearer <token> and X-Workspace-Id. The token acts with your own role.

Parameters

Parameters
FieldTypeDescription
flowId (path)requiredstring

The flow id.

Request body · application/json

Request body
FieldTypeDescription
versionIdstring

Examples

javascript
import { createNexraClient, unwrap } from "@amakora/nexra-sdk";

const nexra = createNexraClient(); // NEXRA_TOKEN and NEXRA_WORKSPACE_ID
const result = unwrap(
  await nexra.POST("/api/console/connect/flows/{flowId}/publish", {
    params: { path: { flowId: "flow_id" } },
    body: {},
  }),
);

Response · 201

Success.

Response fields
FieldTypeDescription
flowIdrequiredstring
versionIdrequiredstring
checksumrequiredstring
statusrequired"published"

Errors: 400, 401, 403, 404, 429, 500. Error shape

GET/api/console/connect/flows/{flowId}/versions/{versionId}/definition

Get a flow definition

The whole flow as one JSON definition: trigger, steps, connections and mappings.

Access token and workspace

Send Authorization: Bearer <token> and X-Workspace-Id. The token acts with your own role.

Parameters

Parameters
FieldTypeDescription
flowId (path)requiredstring

The flow id.

versionId (path)requiredstring

The version id.

Examples

javascript
import { createNexraClient, unwrap } from "@amakora/nexra-sdk";

const nexra = createNexraClient(); // NEXRA_TOKEN and NEXRA_WORKSPACE_ID
const result = unwrap(
  await nexra.GET("/api/console/connect/flows/{flowId}/versions/{versionId}/definition", {
    params: { path: { flowId: "flow_id", versionId: "version_id" } },
  }),
);

Response · 200

Success.

Response fields
FieldTypeDescription
flowIdrequiredstring
versionIdrequiredstring
statusrequiredstring
editablerequiredboolean
builtWithrequiredstring
definitionrequiredobject | null
validationStatusrequiredstring | null
issuesrequiredarray of object

Errors: 400, 401, 403, 404, 429, 500. Error shape

PUT/api/console/connect/flows/{flowId}/versions/{versionId}/definition

Save a flow definition

Replaces a draft version's definition. Published versions cannot change; create a new version instead.

Access token and workspace

Send Authorization: Bearer <token> and X-Workspace-Id. The token acts with your own role.

Parameters

Parameters
FieldTypeDescription
flowId (path)requiredstring

The flow id.

versionId (path)requiredstring

The version id.

Request body · application/json

Request body
FieldTypeDescription
definitionrequiredobject

A flow definition. trigger.kind is manual, schedule or webhook.

Examples

javascript
import { createNexraClient, unwrap } from "@amakora/nexra-sdk";

const nexra = createNexraClient(); // NEXRA_TOKEN and NEXRA_WORKSPACE_ID
const result = unwrap(
  await nexra.PUT("/api/console/connect/flows/{flowId}/versions/{versionId}/definition", {
    params: { path: { flowId: "flow_id", versionId: "version_id" } },
    body: {
      "definition": {}
    },
  }),
);

Response · 200

Success.

Response fields
FieldTypeDescription
flowIdrequiredstring
versionIdrequiredstring
savedrequiredtrue
validationrequiredobject

Errors: 400, 401, 403, 404, 429, 500. Error shape

POST/api/console/connect/flows/{flowId}/versions/{versionId}/definition/validate

Check a flow definition without saving

Access token and workspace

Send Authorization: Bearer <token> and X-Workspace-Id. The token acts with your own role.

Parameters

Parameters
FieldTypeDescription
flowId (path)requiredstring

The flow id.

versionId (path)requiredstring

The version id.

Request body · application/json

Request body
FieldTypeDescription
definitionrequiredobject

A flow definition.

Examples

javascript
import { createNexraClient, unwrap } from "@amakora/nexra-sdk";

const nexra = createNexraClient(); // NEXRA_TOKEN and NEXRA_WORKSPACE_ID
const result = unwrap(
  await nexra.POST("/api/console/connect/flows/{flowId}/versions/{versionId}/definition/validate", {
    params: { path: { flowId: "flow_id", versionId: "version_id" } },
    body: {
      "definition": {}
    },
  }),
);

Response · 201

Success.

Response fields
FieldTypeDescription
validrequiredboolean
issuesrequiredarray of object

Errors: 400, 401, 403, 404, 429, 500. Error shape

GET/api/console/connect/flows/{flowId}/versions/{versionId}/go-live

Check go-live readiness

Whether the version can go live, what blocks it and who needs to approve.

Access token and workspace

Send Authorization: Bearer <token> and X-Workspace-Id. The token acts with your own role.

Parameters

Parameters
FieldTypeDescription
flowId (path)requiredstring

The flow id.

versionId (path)requiredstring

The version id.

Examples

javascript
import { createNexraClient, unwrap } from "@amakora/nexra-sdk";

const nexra = createNexraClient(); // NEXRA_TOKEN and NEXRA_WORKSPACE_ID
const result = unwrap(
  await nexra.GET("/api/console/connect/flows/{flowId}/versions/{versionId}/go-live", {
    params: { path: { flowId: "flow_id", versionId: "version_id" } },
  }),
);

Response · 200

Success.

Response fields
FieldTypeDescription
flowIdrequiredstring
versionIdrequiredstring
publishedrequiredboolean
canGoLiverequiredboolean
blockersrequiredarray of object
approvalrequiredobject
requestrequiredobject | null
liverequiredobject | null

Errors: 400, 401, 403, 404, 429, 500. Error shape

POST/api/console/connect/flows/{flowId}/versions/{versionId}/promote

Request go-live

Copies a tested version to live and asks for approval where the workspace needs it. Answers 409 with a code when the version is not ready, for example sandbox_test_required.

Access token and workspace

Send Authorization: Bearer <token> and X-Workspace-Id. The token acts with your own role.

Parameters

Parameters
FieldTypeDescription
flowId (path)requiredstring

The flow id.

versionId (path)requiredstring

The version id.

Request body · application/json

Request body
FieldTypeDescription
environmentIdstring

Examples

javascript
import { createNexraClient, unwrap } from "@amakora/nexra-sdk";

const nexra = createNexraClient(); // NEXRA_TOKEN and NEXRA_WORKSPACE_ID
const result = unwrap(
  await nexra.POST("/api/console/connect/flows/{flowId}/versions/{versionId}/promote", {
    params: { path: { flowId: "flow_id", versionId: "version_id" } },
    body: {},
  }),
);

Response · 201

Success.

Response fields
FieldTypeDescription
flowIdrequiredstring
sourceVersionIdrequiredstring
productionVersionIdrequiredstring
revisionrequiredobject
approvalrequiredobject

Errors: 400, 401, 403, 404, 429, 500. Error shape

GET/api/console/connect/flows/{flowId}/read-progress

Get read progress

For flows that read only new records: how far each source has been read.

Access token and workspace

Send Authorization: Bearer <token> and X-Workspace-Id. The token acts with your own role.

Parameters

Parameters
FieldTypeDescription
flowId (path)requiredstring

The flow id.

Examples

javascript
import { createNexraClient, unwrap } from "@amakora/nexra-sdk";

const nexra = createNexraClient(); // NEXRA_TOKEN and NEXRA_WORKSPACE_ID
const result = unwrap(
  await nexra.GET("/api/console/connect/flows/{flowId}/read-progress", {
    params: { path: { flowId: "flow_id" } },
  }),
);

Response · 200

Success.

Response fields
FieldTypeDescription
stepKeyrequiredstring
statusrequiredstring
readUpToobject
needsAttentionrequiredboolean

Errors: 400, 401, 403, 404, 429, 500. Error shape

POST/api/console/connect/flows/{flowId}/read-progress/reset

Reset read progress

The next run reads from the start again. Live flows need a deployment approver.

Access token and workspace

Send Authorization: Bearer <token> and X-Workspace-Id. The token acts with your own role.

Parameters

Parameters
FieldTypeDescription
flowId (path)requiredstring

The flow id.

Request body · application/json

Request body
FieldTypeDescription
confirmrequiredtrue
stepKeystring
environment"sandbox" | "production"

sandbox is Test mode; production is live.

Examples

javascript
import { createNexraClient, unwrap } from "@amakora/nexra-sdk";

const nexra = createNexraClient(); // NEXRA_TOKEN and NEXRA_WORKSPACE_ID
const result = unwrap(
  await nexra.POST("/api/console/connect/flows/{flowId}/read-progress/reset", {
    params: { path: { flowId: "flow_id" } },
    body: {
      "confirm": true
    },
  }),
);

Response · 201

Success.

Response fields
FieldTypeDescription
correlationIdrequiredstring
readProgressrequiredarray of object

Errors: 400, 401, 403, 404, 429, 500. Error shape

Runs

A run (an execution) is one pass of a published flow. Start runs, follow their progress and inspect each record.

POST/api/console/connect/flows/{flowId}/executions

Start a run

Starts a run of the flow's published version. Retrying with the same idempotencyKey returns the first run (with replayed: true) instead of starting another.

Access token and workspace

Send Authorization: Bearer <token> and X-Workspace-Id. The token acts with your own role.

Parameters

Parameters
FieldTypeDescription
flowId (path)requiredstring

The flow id.

Request body · application/json

Request body
FieldTypeDescription
environmentrequired"sandbox" | "production"

sandbox is Test mode; production is live.

idempotencyKeyrequiredstring

8 to 160 characters of letters, digits and . _ : -. Sending the same key again returns the first result instead of repeating the work.

correlationIdrequiredstring

Your own reference for tracing this request across systems (8 to 160 characters).

triggerType"manual" | "schedule" | "retry"
triggerReferencestring

Your own reference for what started the run.

inputIdstring

An uploaded input (POST /flows/{flowId}/inputs). Required for flows that read an uploaded file, refused otherwise.

endUserIdstring

Run for one of your customers (an end user). Their own connections replace the app connections they connected through. Refused when they have not connected an app the flow needs.

externalUserIdstring

Your own id for the end user, instead of endUserId.

Examples

javascript
import { createNexraClient, unwrap } from "@amakora/nexra-sdk";

const nexra = createNexraClient(); // NEXRA_TOKEN and NEXRA_WORKSPACE_ID
const result = unwrap(
  await nexra.POST("/api/console/connect/flows/{flowId}/executions", {
    params: { path: { flowId: "flow_id" } },
    body: {
      "environment": "sandbox",
      "idempotencyKey": "run-2026-10-01-orders-0001",
      "correlationId": "erp-batch-20261001-0001"
    },
  }),
);

Response · 201

Success.

Response fields
FieldTypeDescription
idrequiredstring
integrationIdrequiredstring
flowIdrequiredstring
flowVersionIdrequiredstring
triggerTyperequiredstring
triggerReferencerequiredstring | null
statusrequiredstring

For example queued, running, succeeded, partially_succeeded, failed or cancelled.

correlationIdrequiredstring
idempotencyKeyrequiredstring
startedAtrequiredstring | null

ISO 8601 date and time.

completedAtrequiredstring | null

ISO 8601 date and time.

durationMsrequiredinteger | null
recordsReceivedrequiredinteger
recordsProcessedrequiredinteger
recordsSucceededrequiredinteger
recordsFailedrequiredinteger
recordsSkippedrequiredinteger
retryCountrequiredinteger
deadlineAtrequiredstring | null

ISO 8601 date and time.

endUserIdstring | null

The end user (your customer) this run acted for, when it was started for one.

createdAtrequiredstring

ISO 8601 date and time.

updatedAtrequiredstring

ISO 8601 date and time.

replayedboolean

True when this answer is the run first started with the same idempotency key.

Errors: 400, 401, 403, 404, 429, 500. Error shape

GET/api/console/connect/executions

List runs

Runs in the workspace, newest first.

Access token and workspace

Send Authorization: Bearer <token> and X-Workspace-Id. The token acts with your own role.

Parameters

Parameters
FieldTypeDescription
flowId (query)string

Only runs of this flow.

status (query)string

Only runs with this status, for example failed.

endUserId (query)string

Only runs for this end user.

pageSize (query)integer

How many to return: 1 to 100, default 50.

Examples

javascript
import { createNexraClient, unwrap } from "@amakora/nexra-sdk";

const nexra = createNexraClient(); // NEXRA_TOKEN and NEXRA_WORKSPACE_ID
const result = unwrap(
  await nexra.GET("/api/console/connect/executions"),
);

Response · 200

Success.

A list, newest first, capped as described above.

Response fields
FieldTypeDescription
idrequiredstring
integrationIdrequiredstring
flowIdrequiredstring
flowVersionIdrequiredstring
triggerTyperequiredstring
triggerReferencerequiredstring | null
statusrequiredstring

For example queued, running, succeeded, partially_succeeded, failed or cancelled.

correlationIdrequiredstring
idempotencyKeyrequiredstring
startedAtrequiredstring | null

ISO 8601 date and time.

completedAtrequiredstring | null

ISO 8601 date and time.

durationMsrequiredinteger | null
recordsReceivedrequiredinteger
recordsProcessedrequiredinteger
recordsSucceededrequiredinteger
recordsFailedrequiredinteger
recordsSkippedrequiredinteger
retryCountrequiredinteger
deadlineAtrequiredstring | null

ISO 8601 date and time.

endUserIdstring | null

The end user (your customer) this run acted for, when it was started for one.

createdAtrequiredstring

ISO 8601 date and time.

updatedAtrequiredstring

ISO 8601 date and time.

replayedboolean

True when this answer is the run first started with the same idempotency key.

Errors: 400, 401, 403, 404, 429, 500. Error shape

GET/api/console/connect/executions/{executionId}

Get a run

The run with its steps, errors and recovery state.

Access token and workspace

Send Authorization: Bearer <token> and X-Workspace-Id. The token acts with your own role.

Parameters

Parameters
FieldTypeDescription
executionId (path)requiredstring

The execution id.

Examples

javascript
import { createNexraClient, unwrap } from "@amakora/nexra-sdk";

const nexra = createNexraClient(); // NEXRA_TOKEN and NEXRA_WORKSPACE_ID
const result = unwrap(
  await nexra.GET("/api/console/connect/executions/{executionId}", {
    params: { path: { executionId: "execution_id" } },
  }),
);

Response · 200

Success.

Response fields
FieldTypeDescription
idrequiredstring
integrationIdrequiredstring
flowIdrequiredstring
flowVersionIdrequiredstring
triggerTyperequiredstring
triggerReferencerequiredstring | null
statusrequiredstring

For example queued, running, succeeded, partially_succeeded, failed or cancelled.

correlationIdrequiredstring
idempotencyKeyrequiredstring
startedAtrequiredstring | null

ISO 8601 date and time.

completedAtrequiredstring | null

ISO 8601 date and time.

durationMsrequiredinteger | null
recordsReceivedrequiredinteger
recordsProcessedrequiredinteger
recordsSucceededrequiredinteger
recordsFailedrequiredinteger
recordsSkippedrequiredinteger
retryCountrequiredinteger
deadlineAtrequiredstring | null

ISO 8601 date and time.

endUserIdstring | null

The end user (your customer) this run acted for, when it was started for one.

createdAtrequiredstring

ISO 8601 date and time.

updatedAtrequiredstring

ISO 8601 date and time.

replayedboolean

True when this answer is the run first started with the same idempotency key.

stepsrequiredarray of object
errorsrequiredarray of object
processingrequiredobject
recoveryrequiredobject

Errors: 400, 401, 403, 404, 429, 500. Error shape

GET/api/console/connect/executions/{executionId}/steps

List a run's steps

Access token and workspace

Send Authorization: Bearer <token> and X-Workspace-Id. The token acts with your own role.

Parameters

Parameters
FieldTypeDescription
executionId (path)requiredstring

The execution id.

Examples

javascript
import { createNexraClient, unwrap } from "@amakora/nexra-sdk";

const nexra = createNexraClient(); // NEXRA_TOKEN and NEXRA_WORKSPACE_ID
const result = unwrap(
  await nexra.GET("/api/console/connect/executions/{executionId}/steps", {
    params: { path: { executionId: "execution_id" } },
  }),
);

Response · 200

Success.

Errors: 400, 401, 403, 404, 429, 500. Error shape

GET/api/console/connect/executions/{executionId}/records

List a run's records

Each record the run handled, with its status. Up to 1,000.

Access token and workspace

Send Authorization: Bearer <token> and X-Workspace-Id. The token acts with your own role.

Parameters

Parameters
FieldTypeDescription
executionId (path)requiredstring

The execution id.

Examples

javascript
import { createNexraClient, unwrap } from "@amakora/nexra-sdk";

const nexra = createNexraClient(); // NEXRA_TOKEN and NEXRA_WORKSPACE_ID
const result = unwrap(
  await nexra.GET("/api/console/connect/executions/{executionId}/records", {
    params: { path: { executionId: "execution_id" } },
  }),
);

Response · 200

Success.

A list, newest first, capped as described above.

Response fields
FieldTypeDescription
idrequiredstring
executionIdrequiredstring
sourceRecordIdentifierrequiredstring | null
destinationRecordIdentifierrequiredstring | null
recordTyperequiredstring | null
statusrequiredstring
attemptCountrequiredinteger
completedAtrequiredstring | null

ISO 8601 date and time.

createdAtrequiredstring

ISO 8601 date and time.

Errors: 400, 401, 403, 404, 429, 500. Error shape

GET/api/console/connect/executions/{executionId}/records/{recordId}

Get one record of a run

Access token and workspace

Send Authorization: Bearer <token> and X-Workspace-Id. The token acts with your own role.

Parameters

Parameters
FieldTypeDescription
executionId (path)requiredstring

The execution id.

recordId (path)requiredstring

The record id.

Examples

javascript
import { createNexraClient, unwrap } from "@amakora/nexra-sdk";

const nexra = createNexraClient(); // NEXRA_TOKEN and NEXRA_WORKSPACE_ID
const result = unwrap(
  await nexra.GET("/api/console/connect/executions/{executionId}/records/{recordId}", {
    params: { path: { executionId: "execution_id", recordId: "record_id" } },
  }),
);

Response · 200

Success.

Response fields
FieldTypeDescription
idrequiredstring
executionIdrequiredstring
sourceRecordIdentifierrequiredstring | null
destinationRecordIdentifierrequiredstring | null
recordTyperequiredstring | null
statusrequiredstring
attemptCountrequiredinteger
completedAtrequiredstring | null

ISO 8601 date and time.

createdAtrequiredstring

ISO 8601 date and time.

Errors: 400, 401, 403, 404, 429, 500. Error shape

POST/api/console/connect/executions/{executionId}/cancel

Cancel a run

Asks a queued or running run to stop. Records already sent stay sent.

Access token and workspace

Send Authorization: Bearer <token> and X-Workspace-Id. The token acts with your own role.

Parameters

Parameters
FieldTypeDescription
executionId (path)requiredstring

The execution id.

Examples

javascript
import { createNexraClient, unwrap } from "@amakora/nexra-sdk";

const nexra = createNexraClient(); // NEXRA_TOKEN and NEXRA_WORKSPACE_ID
const result = unwrap(
  await nexra.POST("/api/console/connect/executions/{executionId}/cancel", {
    params: { path: { executionId: "execution_id" } },
  }),
);

Response · 201

Success.

Response fields
FieldTypeDescription
idrequiredstring
integrationIdrequiredstring
flowIdrequiredstring
flowVersionIdrequiredstring
triggerTyperequiredstring
triggerReferencerequiredstring | null
statusrequiredstring

For example queued, running, succeeded, partially_succeeded, failed or cancelled.

correlationIdrequiredstring
idempotencyKeyrequiredstring
startedAtrequiredstring | null

ISO 8601 date and time.

completedAtrequiredstring | null

ISO 8601 date and time.

durationMsrequiredinteger | null
recordsReceivedrequiredinteger
recordsProcessedrequiredinteger
recordsSucceededrequiredinteger
recordsFailedrequiredinteger
recordsSkippedrequiredinteger
retryCountrequiredinteger
deadlineAtrequiredstring | null

ISO 8601 date and time.

endUserIdstring | null

The end user (your customer) this run acted for, when it was started for one.

createdAtrequiredstring

ISO 8601 date and time.

updatedAtrequiredstring

ISO 8601 date and time.

replayedboolean

True when this answer is the run first started with the same idempotency key.

stepsrequiredarray of object
errorsrequiredarray of object
processingrequiredobject
recoveryrequiredobject

Errors: 400, 401, 403, 404, 429, 500. Error shape

POST/api/console/connect/executions/{executionId}/retry-failed

Retry a run's failed records

Retries up to 100 of the run's failed records.

Access token and workspace

Send Authorization: Bearer <token> and X-Workspace-Id. The token acts with your own role.

Parameters

Parameters
FieldTypeDescription
executionId (path)requiredstring

The execution id.

Examples

javascript
import { createNexraClient, unwrap } from "@amakora/nexra-sdk";

const nexra = createNexraClient(); // NEXRA_TOKEN and NEXRA_WORKSPACE_ID
const result = unwrap(
  await nexra.POST("/api/console/connect/executions/{executionId}/retry-failed", {
    params: { path: { executionId: "execution_id" } },
  }),
);

Response · 201

Success.

Response fields
FieldTypeDescription
idrequiredstring
executionIdrequiredstring
executionRecordIdrequiredstring | null
statusrequiredstring
idempotencyKeyrequiredstring | null
requestedAtrequiredstring

ISO 8601 date and time.

processedAtrequiredstring | null

ISO 8601 date and time.

Errors: 400, 401, 403, 404, 429, 500. Error shape

GET/api/console/connect/monitoring/summary

Get a 24-hour summary

Runs by status, connection health, open failed records and enabled schedules over the last 24 hours.

Access token and workspace

Send Authorization: Bearer <token> and X-Workspace-Id. The token acts with your own role.

Examples

javascript
import { createNexraClient, unwrap } from "@amakora/nexra-sdk";

const nexra = createNexraClient(); // NEXRA_TOKEN and NEXRA_WORKSPACE_ID
const result = unwrap(
  await nexra.GET("/api/console/connect/monitoring/summary"),
);

Response · 200

Success.

Response fields
FieldTypeDescription
windowrequiredobject
connectionsrequiredarray of object
executionsrequiredarray of object
openDeadLettersrequiredinteger
enabledSchedulesrequiredinteger

Errors: 400, 401, 403, 404, 429, 500. Error shape

Schedules

Run a flow on a timetable.

GET/api/console/connect/flows/{flowId}/schedules

List a flow's schedules

Access token and workspace

Send Authorization: Bearer <token> and X-Workspace-Id. The token acts with your own role.

Parameters

Parameters
FieldTypeDescription
flowId (path)requiredstring

The flow id.

Examples

javascript
import { createNexraClient, unwrap } from "@amakora/nexra-sdk";

const nexra = createNexraClient(); // NEXRA_TOKEN and NEXRA_WORKSPACE_ID
const result = unwrap(
  await nexra.GET("/api/console/connect/flows/{flowId}/schedules", {
    params: { path: { flowId: "flow_id" } },
  }),
);

Response · 200

Success.

Response fields
FieldTypeDescription
idrequiredstring
flowIdrequiredstring
namerequiredstring
cronExpressionrequiredstring
timezonerequiredstring
enabledrequiredboolean
nextRunAtrequiredstring | null

ISO 8601 date and time.

lastExecutionIdrequiredstring | null
createdAtrequiredstring

ISO 8601 date and time.

updatedAtrequiredstring

ISO 8601 date and time.

Errors: 400, 401, 403, 404, 429, 500. Error shape

POST/api/console/connect/flows/{flowId}/schedules

Create a schedule

Access token and workspace

Send Authorization: Bearer <token> and X-Workspace-Id. The token acts with your own role.

Parameters

Parameters
FieldTypeDescription
flowId (path)requiredstring

The flow id.

Request body · application/json

Request body
FieldTypeDescription
cronExpressionrequiredstring

Five-field cron, for example 0 6 * * 1-5.

timezonestring

IANA time zone. Default UTC.

namestring
enabledboolean

Examples

javascript
import { createNexraClient, unwrap } from "@amakora/nexra-sdk";

const nexra = createNexraClient(); // NEXRA_TOKEN and NEXRA_WORKSPACE_ID
const result = unwrap(
  await nexra.POST("/api/console/connect/flows/{flowId}/schedules", {
    params: { path: { flowId: "flow_id" } },
    body: {
      "cronExpression": "0 6 * * 1-5"
    },
  }),
);

Response · 201

Success.

Response fields
FieldTypeDescription
idrequiredstring
flowIdrequiredstring
namerequiredstring
cronExpressionrequiredstring
timezonerequiredstring
enabledrequiredboolean
nextRunAtrequiredstring | null

ISO 8601 date and time.

lastExecutionIdrequiredstring | null
createdAtrequiredstring

ISO 8601 date and time.

updatedAtrequiredstring

ISO 8601 date and time.

Errors: 400, 401, 403, 404, 429, 500. Error shape

PATCH/api/console/connect/schedules/{scheduleId}

Update a schedule

Access token and workspace

Send Authorization: Bearer <token> and X-Workspace-Id. The token acts with your own role.

Parameters

Parameters
FieldTypeDescription
scheduleId (path)requiredstring

The schedule id.

Request body · application/json

Request body
FieldTypeDescription
cronExpressionstring
timezonestring
namestring
enabledboolean

Examples

javascript
import { createNexraClient, unwrap } from "@amakora/nexra-sdk";

const nexra = createNexraClient(); // NEXRA_TOKEN and NEXRA_WORKSPACE_ID
const result = unwrap(
  await nexra.PATCH("/api/console/connect/schedules/{scheduleId}", {
    params: { path: { scheduleId: "schedule_id" } },
    body: {},
  }),
);

Response · 200

Success.

Response fields
FieldTypeDescription
idrequiredstring
flowIdrequiredstring
namerequiredstring
cronExpressionrequiredstring
timezonerequiredstring
enabledrequiredboolean
nextRunAtrequiredstring | null

ISO 8601 date and time.

lastExecutionIdrequiredstring | null
createdAtrequiredstring

ISO 8601 date and time.

updatedAtrequiredstring

ISO 8601 date and time.

Errors: 400, 401, 403, 404, 429, 500. Error shape

DELETE/api/console/connect/schedules/{scheduleId}

Delete a schedule

Access token and workspace

Send Authorization: Bearer <token> and X-Workspace-Id. The token acts with your own role.

Parameters

Parameters
FieldTypeDescription
scheduleId (path)requiredstring

The schedule id.

Examples

javascript
import { createNexraClient, unwrap } from "@amakora/nexra-sdk";

const nexra = createNexraClient(); // NEXRA_TOKEN and NEXRA_WORKSPACE_ID
const result = unwrap(
  await nexra.DELETE("/api/console/connect/schedules/{scheduleId}", {
    params: { path: { scheduleId: "schedule_id" } },
  }),
);

Response · 200

Success.

Errors: 400, 401, 403, 404, 429, 500. Error shape

POST/api/console/connect/schedules/{scheduleId}/pause

Pause a schedule

Access token and workspace

Send Authorization: Bearer <token> and X-Workspace-Id. The token acts with your own role.

Parameters

Parameters
FieldTypeDescription
scheduleId (path)requiredstring

The schedule id.

Examples

javascript
import { createNexraClient, unwrap } from "@amakora/nexra-sdk";

const nexra = createNexraClient(); // NEXRA_TOKEN and NEXRA_WORKSPACE_ID
const result = unwrap(
  await nexra.POST("/api/console/connect/schedules/{scheduleId}/pause", {
    params: { path: { scheduleId: "schedule_id" } },
  }),
);

Response · 201

Success.

Response fields
FieldTypeDescription
idrequiredstring
flowIdrequiredstring
namerequiredstring
cronExpressionrequiredstring
timezonerequiredstring
enabledrequiredboolean
nextRunAtrequiredstring | null

ISO 8601 date and time.

lastExecutionIdrequiredstring | null
createdAtrequiredstring

ISO 8601 date and time.

updatedAtrequiredstring

ISO 8601 date and time.

Errors: 400, 401, 403, 404, 429, 500. Error shape

POST/api/console/connect/schedules/{scheduleId}/resume

Resume a schedule

Access token and workspace

Send Authorization: Bearer <token> and X-Workspace-Id. The token acts with your own role.

Parameters

Parameters
FieldTypeDescription
scheduleId (path)requiredstring

The schedule id.

Examples

javascript
import { createNexraClient, unwrap } from "@amakora/nexra-sdk";

const nexra = createNexraClient(); // NEXRA_TOKEN and NEXRA_WORKSPACE_ID
const result = unwrap(
  await nexra.POST("/api/console/connect/schedules/{scheduleId}/resume", {
    params: { path: { scheduleId: "schedule_id" } },
  }),
);

Response · 201

Success.

Response fields
FieldTypeDescription
idrequiredstring
flowIdrequiredstring
namerequiredstring
cronExpressionrequiredstring
timezonerequiredstring
enabledrequiredboolean
nextRunAtrequiredstring | null

ISO 8601 date and time.

lastExecutionIdrequiredstring | null
createdAtrequiredstring

ISO 8601 date and time.

updatedAtrequiredstring

ISO 8601 date and time.

Errors: 400, 401, 403, 404, 429, 500. Error shape

Failed records

Records a run could not deliver are held here so you can retry, ignore or resolve them.

GET/api/console/connect/dead-letter

List failed records

Records runs could not deliver, newest first. Up to 500.

Access token and workspace

Send Authorization: Bearer <token> and X-Workspace-Id. The token acts with your own role.

Parameters

Parameters
FieldTypeDescription
status (query)string

open, retry_scheduled, retry_failed, resolved or ignored.

Examples

javascript
import { createNexraClient, unwrap } from "@amakora/nexra-sdk";

const nexra = createNexraClient(); // NEXRA_TOKEN and NEXRA_WORKSPACE_ID
const result = unwrap(
  await nexra.GET("/api/console/connect/dead-letter"),
);

Response · 200

Success.

A list, newest first, capped as described above.

Response fields
FieldTypeDescription
idrequiredstring
executionRecordIdrequiredstring
flowIdrequiredstring
statusrequiredstring

open, retry_scheduled, retry_failed, resolved or ignored.

retryCountrequiredinteger
createdAtrequiredstring

ISO 8601 date and time.

lastRetryAtrequiredstring | null

ISO 8601 date and time.

resolvedAtrequiredstring | null

ISO 8601 date and time.

resolutionNoterequiredstring | null

Errors: 400, 401, 403, 404, 429, 500. Error shape

GET/api/console/connect/dead-letter/{deadLetterId}

Get a failed record

Access token and workspace

Send Authorization: Bearer <token> and X-Workspace-Id. The token acts with your own role.

Parameters

Parameters
FieldTypeDescription
deadLetterId (path)requiredstring

The dead letter id.

Examples

javascript
import { createNexraClient, unwrap } from "@amakora/nexra-sdk";

const nexra = createNexraClient(); // NEXRA_TOKEN and NEXRA_WORKSPACE_ID
const result = unwrap(
  await nexra.GET("/api/console/connect/dead-letter/{deadLetterId}", {
    params: { path: { deadLetterId: "deadLetter_id" } },
  }),
);

Response · 200

Success.

Response fields
FieldTypeDescription
idrequiredstring
executionRecordIdrequiredstring
flowIdrequiredstring
statusrequiredstring

open, retry_scheduled, retry_failed, resolved or ignored.

retryCountrequiredinteger
createdAtrequiredstring

ISO 8601 date and time.

lastRetryAtrequiredstring | null

ISO 8601 date and time.

resolvedAtrequiredstring | null

ISO 8601 date and time.

resolutionNoterequiredstring | null

Errors: 400, 401, 403, 404, 429, 500. Error shape

POST/api/console/connect/dead-letter/{deadLetterId}/retry

Retry a failed record

Only open and retry_failed records can be retried.

Access token and workspace

Send Authorization: Bearer <token> and X-Workspace-Id. The token acts with your own role.

Parameters

Parameters
FieldTypeDescription
deadLetterId (path)requiredstring

The dead letter id.

Request body · application/json

Request body
FieldTypeDescription
idempotencyKeystring

8 to 160 characters of letters, digits and . _ : -. Sending the same key again returns the first result instead of repeating the work.

Examples

javascript
import { createNexraClient, unwrap } from "@amakora/nexra-sdk";

const nexra = createNexraClient(); // NEXRA_TOKEN and NEXRA_WORKSPACE_ID
const result = unwrap(
  await nexra.POST("/api/console/connect/dead-letter/{deadLetterId}/retry", {
    params: { path: { deadLetterId: "deadLetter_id" } },
    body: {},
  }),
);

Response · 201

Success.

Response fields
FieldTypeDescription
idrequiredstring
executionIdrequiredstring
executionRecordIdrequiredstring | null
statusrequiredstring
idempotencyKeyrequiredstring | null
requestedAtrequiredstring

ISO 8601 date and time.

processedAtrequiredstring | null

ISO 8601 date and time.

Errors: 400, 401, 403, 404, 429, 500. Error shape

POST/api/console/connect/dead-letter/retry

Retry several failed records

Access token and workspace

Send Authorization: Bearer <token> and X-Workspace-Id. The token acts with your own role.

Request body · application/json

Request body
FieldTypeDescription
idsrequiredarray of string

Examples

javascript
import { createNexraClient, unwrap } from "@amakora/nexra-sdk";

const nexra = createNexraClient(); // NEXRA_TOKEN and NEXRA_WORKSPACE_ID
const result = unwrap(
  await nexra.POST("/api/console/connect/dead-letter/retry", {
    body: {
      "ids": [
        "string"
      ]
    },
  }),
);

Response · 201

Success.

Response fields
FieldTypeDescription
idrequiredstring
executionIdrequiredstring
executionRecordIdrequiredstring | null
statusrequiredstring
idempotencyKeyrequiredstring | null
requestedAtrequiredstring

ISO 8601 date and time.

processedAtrequiredstring | null

ISO 8601 date and time.

Errors: 400, 401, 403, 404, 429, 500. Error shape

POST/api/console/connect/dead-letter/{deadLetterId}/ignore

Ignore a failed record

Access token and workspace

Send Authorization: Bearer <token> and X-Workspace-Id. The token acts with your own role.

Parameters

Parameters
FieldTypeDescription
deadLetterId (path)requiredstring

The dead letter id.

Request body · application/json

Request body
FieldTypeDescription
notestring

Kept with the record.

Examples

javascript
import { createNexraClient, unwrap } from "@amakora/nexra-sdk";

const nexra = createNexraClient(); // NEXRA_TOKEN and NEXRA_WORKSPACE_ID
const result = unwrap(
  await nexra.POST("/api/console/connect/dead-letter/{deadLetterId}/ignore", {
    params: { path: { deadLetterId: "deadLetter_id" } },
    body: {},
  }),
);

Response · 201

Success.

Response fields
FieldTypeDescription
idrequiredstring
executionRecordIdrequiredstring
flowIdrequiredstring
statusrequiredstring

open, retry_scheduled, retry_failed, resolved or ignored.

retryCountrequiredinteger
createdAtrequiredstring

ISO 8601 date and time.

lastRetryAtrequiredstring | null

ISO 8601 date and time.

resolvedAtrequiredstring | null

ISO 8601 date and time.

resolutionNoterequiredstring | null

Errors: 400, 401, 403, 404, 429, 500. Error shape

POST/api/console/connect/dead-letter/{deadLetterId}/resolve

Mark a failed record resolved

Use when the record was fixed outside Nexra.

Access token and workspace

Send Authorization: Bearer <token> and X-Workspace-Id. The token acts with your own role.

Parameters

Parameters
FieldTypeDescription
deadLetterId (path)requiredstring

The dead letter id.

Request body · application/json

Request body
FieldTypeDescription
notestring

Kept with the record.

Examples

javascript
import { createNexraClient, unwrap } from "@amakora/nexra-sdk";

const nexra = createNexraClient(); // NEXRA_TOKEN and NEXRA_WORKSPACE_ID
const result = unwrap(
  await nexra.POST("/api/console/connect/dead-letter/{deadLetterId}/resolve", {
    params: { path: { deadLetterId: "deadLetter_id" } },
    body: {},
  }),
);

Response · 201

Success.

Response fields
FieldTypeDescription
idrequiredstring
executionRecordIdrequiredstring
flowIdrequiredstring
statusrequiredstring

open, retry_scheduled, retry_failed, resolved or ignored.

retryCountrequiredinteger
createdAtrequiredstring

ISO 8601 date and time.

lastRetryAtrequiredstring | null

ISO 8601 date and time.

resolvedAtrequiredstring | null

ISO 8601 date and time.

resolutionNoterequiredstring | null

Errors: 400, 401, 403, 404, 429, 500. Error shape

Connections

A connection is an authorised account at a provider. The API returns connection metadata only, never credentials.

GET/api/console/connect/connections

List connections

Connections in the workspace, most recently changed first. Metadata only; credentials are never returned.

Access token and workspace

Send Authorization: Bearer <token> and X-Workspace-Id. The token acts with your own role.

Examples

javascript
import { createNexraClient, unwrap } from "@amakora/nexra-sdk";

const nexra = createNexraClient(); // NEXRA_TOKEN and NEXRA_WORKSPACE_ID
const result = unwrap(
  await nexra.GET("/api/console/connect/connections"),
);

Response · 200

Success.

A list, newest first, capped as described above.

Response fields
FieldTypeDescription
idrequiredstring
projectIdrequiredstring
namerequiredstring
slugrequiredstring
environmentrequired"sandbox" | "production"

sandbox is Test mode; production is live.

statusrequiredstring
healthStatusrequiredstring
authenticationTyperequiredstring | null
providerBaseUrlrequiredstring | null
configurationrequiredobject | null

Non-secret settings for the connector. Never holds credentials.

secretReferencerequiredobject | null

Status of the stored credential. The credential itself is never returned.

credentialExpiresAtrequiredstring | null

ISO 8601 date and time.

lastTestedAtrequiredstring | null

ISO 8601 date and time.

lastSuccessAtrequiredstring | null

ISO 8601 date and time.

lastFailureAtrequiredstring | null

ISO 8601 date and time.

suspendedAtrequiredstring | null

ISO 8601 date and time.

createdAtrequiredstring

ISO 8601 date and time.

updatedAtrequiredstring

ISO 8601 date and time.

liveCheckobject | null | null

Errors: 400, 401, 403, 404, 429, 500. Error shape

POST/api/console/connect/connections

Create a connection

Creates a connection from settings and a stored credential reference. Add the credential itself in the console. A live (production) connection needs a healthy Test mode connection of the same connector as sourceConnectionId.

Access token and workspace

Send Authorization: Bearer <token> and X-Workspace-Id. The token acts with your own role.

Request body · application/json

Request body
FieldTypeDescription
connectorKeyrequiredstring

From the public connector catalogue.

projectIdrequiredstring
namerequiredstring
environment"sandbox" | "production"

sandbox is Test mode; production is live.

slugstring
sourceConnectionIdstring
configurationobject

Non-secret, connector-specific settings such as baseUrl or accountReference. Fields named like passwords, API keys, tokens, client secrets or credentials are refused.

Examples

javascript
import { createNexraClient, unwrap } from "@amakora/nexra-sdk";

const nexra = createNexraClient(); // NEXRA_TOKEN and NEXRA_WORKSPACE_ID
const result = unwrap(
  await nexra.POST("/api/console/connect/connections", {
    body: {
      "connectorKey": "string",
      "projectId": "string",
      "name": "string"
    },
  }),
);

Response · 201

Success.

Response fields
FieldTypeDescription
idrequiredstring
projectIdrequiredstring
namerequiredstring
slugrequiredstring
environmentrequired"sandbox" | "production"

sandbox is Test mode; production is live.

statusrequiredstring
healthStatusrequiredstring
authenticationTyperequiredstring | null
providerBaseUrlrequiredstring | null
configurationrequiredobject | null

Non-secret settings for the connector. Never holds credentials.

secretReferencerequiredobject | null

Status of the stored credential. The credential itself is never returned.

credentialExpiresAtrequiredstring | null

ISO 8601 date and time.

lastTestedAtrequiredstring | null

ISO 8601 date and time.

lastSuccessAtrequiredstring | null

ISO 8601 date and time.

lastFailureAtrequiredstring | null

ISO 8601 date and time.

suspendedAtrequiredstring | null

ISO 8601 date and time.

createdAtrequiredstring

ISO 8601 date and time.

updatedAtrequiredstring

ISO 8601 date and time.

liveCheckobject | null | null

Errors: 400, 401, 403, 404, 429, 500. Error shape

GET/api/console/connect/connections/{connectionId}

Get a connection

Access token and workspace

Send Authorization: Bearer <token> and X-Workspace-Id. The token acts with your own role.

Parameters

Parameters
FieldTypeDescription
connectionId (path)requiredstring

The connection id.

Examples

javascript
import { createNexraClient, unwrap } from "@amakora/nexra-sdk";

const nexra = createNexraClient(); // NEXRA_TOKEN and NEXRA_WORKSPACE_ID
const result = unwrap(
  await nexra.GET("/api/console/connect/connections/{connectionId}", {
    params: { path: { connectionId: "connection_id" } },
  }),
);

Response · 200

Success.

Response fields
FieldTypeDescription
idrequiredstring
projectIdrequiredstring
namerequiredstring
slugrequiredstring
environmentrequired"sandbox" | "production"

sandbox is Test mode; production is live.

statusrequiredstring
healthStatusrequiredstring
authenticationTyperequiredstring | null
providerBaseUrlrequiredstring | null
configurationrequiredobject | null

Non-secret settings for the connector. Never holds credentials.

secretReferencerequiredobject | null

Status of the stored credential. The credential itself is never returned.

credentialExpiresAtrequiredstring | null

ISO 8601 date and time.

lastTestedAtrequiredstring | null

ISO 8601 date and time.

lastSuccessAtrequiredstring | null

ISO 8601 date and time.

lastFailureAtrequiredstring | null

ISO 8601 date and time.

suspendedAtrequiredstring | null

ISO 8601 date and time.

createdAtrequiredstring

ISO 8601 date and time.

updatedAtrequiredstring

ISO 8601 date and time.

liveCheckobject | null | null

Errors: 400, 401, 403, 404, 429, 500. Error shape

PATCH/api/console/connect/connections/{connectionId}

Update a connection

Changing settings puts the connection back to draft until it is tested again.

Access token and workspace

Send Authorization: Bearer <token> and X-Workspace-Id. The token acts with your own role.

Parameters

Parameters
FieldTypeDescription
connectionId (path)requiredstring

The connection id.

Request body · application/json

Request body
FieldTypeDescription
namestring
configurationobject

Non-secret, connector-specific settings such as baseUrl or accountReference. Fields named like passwords, API keys, tokens, client secrets or credentials are refused.

Examples

javascript
import { createNexraClient, unwrap } from "@amakora/nexra-sdk";

const nexra = createNexraClient(); // NEXRA_TOKEN and NEXRA_WORKSPACE_ID
const result = unwrap(
  await nexra.PATCH("/api/console/connect/connections/{connectionId}", {
    params: { path: { connectionId: "connection_id" } },
    body: {},
  }),
);

Response · 200

Success.

Response fields
FieldTypeDescription
idrequiredstring
projectIdrequiredstring
namerequiredstring
slugrequiredstring
environmentrequired"sandbox" | "production"

sandbox is Test mode; production is live.

statusrequiredstring
healthStatusrequiredstring
authenticationTyperequiredstring | null
providerBaseUrlrequiredstring | null
configurationrequiredobject | null

Non-secret settings for the connector. Never holds credentials.

secretReferencerequiredobject | null

Status of the stored credential. The credential itself is never returned.

credentialExpiresAtrequiredstring | null

ISO 8601 date and time.

lastTestedAtrequiredstring | null

ISO 8601 date and time.

lastSuccessAtrequiredstring | null

ISO 8601 date and time.

lastFailureAtrequiredstring | null

ISO 8601 date and time.

suspendedAtrequiredstring | null

ISO 8601 date and time.

createdAtrequiredstring

ISO 8601 date and time.

updatedAtrequiredstring

ISO 8601 date and time.

liveCheckobject | null | null

Errors: 400, 401, 403, 404, 429, 500. Error shape

POST/api/console/connect/connections/{connectionId}/test

Test a connection

Calls the provider with the stored credential. A failure answers 400 with the reason in plain words.

Access token and workspace

Send Authorization: Bearer <token> and X-Workspace-Id. The token acts with your own role.

Parameters

Parameters
FieldTypeDescription
connectionId (path)requiredstring

The connection id.

Request body · application/json

Request body
FieldTypeDescription
correlationIdstring

Your own reference for tracing this request across systems (8 to 160 characters).

Examples

javascript
import { createNexraClient, unwrap } from "@amakora/nexra-sdk";

const nexra = createNexraClient(); // NEXRA_TOKEN and NEXRA_WORKSPACE_ID
const result = unwrap(
  await nexra.POST("/api/console/connect/connections/{connectionId}/test", {
    params: { path: { connectionId: "connection_id" } },
    body: {},
  }),
);

Response · 201

Success.

Response fields
FieldTypeDescription
statusrequired"healthy"
latencyMsrequiredinteger
detailobject

Errors: 400, 401, 403, 404, 429, 500. Error shape

POST/api/console/connect/connections/{connectionId}/disable

Turn a connection off

Access token and workspace

Send Authorization: Bearer <token> and X-Workspace-Id. The token acts with your own role.

Parameters

Parameters
FieldTypeDescription
connectionId (path)requiredstring

The connection id.

Examples

javascript
import { createNexraClient, unwrap } from "@amakora/nexra-sdk";

const nexra = createNexraClient(); // NEXRA_TOKEN and NEXRA_WORKSPACE_ID
const result = unwrap(
  await nexra.POST("/api/console/connect/connections/{connectionId}/disable", {
    params: { path: { connectionId: "connection_id" } },
  }),
);

Response · 201

Success.

Response fields
FieldTypeDescription
idrequiredstring
projectIdrequiredstring
namerequiredstring
slugrequiredstring
environmentrequired"sandbox" | "production"

sandbox is Test mode; production is live.

statusrequiredstring
healthStatusrequiredstring
authenticationTyperequiredstring | null
providerBaseUrlrequiredstring | null
configurationrequiredobject | null

Non-secret settings for the connector. Never holds credentials.

secretReferencerequiredobject | null

Status of the stored credential. The credential itself is never returned.

credentialExpiresAtrequiredstring | null

ISO 8601 date and time.

lastTestedAtrequiredstring | null

ISO 8601 date and time.

lastSuccessAtrequiredstring | null

ISO 8601 date and time.

lastFailureAtrequiredstring | null

ISO 8601 date and time.

suspendedAtrequiredstring | null

ISO 8601 date and time.

createdAtrequiredstring

ISO 8601 date and time.

updatedAtrequiredstring

ISO 8601 date and time.

liveCheckobject | null | null

Errors: 400, 401, 403, 404, 429, 500. Error shape

GET/api/console/connect/connections/{connectionId}/health

Get connection health

Access token and workspace

Send Authorization: Bearer <token> and X-Workspace-Id. The token acts with your own role.

Parameters

Parameters
FieldTypeDescription
connectionId (path)requiredstring

The connection id.

Examples

javascript
import { createNexraClient, unwrap } from "@amakora/nexra-sdk";

const nexra = createNexraClient(); // NEXRA_TOKEN and NEXRA_WORKSPACE_ID
const result = unwrap(
  await nexra.GET("/api/console/connect/connections/{connectionId}/health", {
    params: { path: { connectionId: "connection_id" } },
  }),
);

Response · 200

Success.

Errors: 400, 401, 403, 404, 429, 500. Error shape

GET/api/console/connect/connections/{connectionId}/capabilities

List what a connection can do

The provider operations this connection can read and write.

Access token and workspace

Send Authorization: Bearer <token> and X-Workspace-Id. The token acts with your own role.

Parameters

Parameters
FieldTypeDescription
connectionId (path)requiredstring

The connection id.

Examples

javascript
import { createNexraClient, unwrap } from "@amakora/nexra-sdk";

const nexra = createNexraClient(); // NEXRA_TOKEN and NEXRA_WORKSPACE_ID
const result = unwrap(
  await nexra.GET("/api/console/connect/connections/{connectionId}/capabilities", {
    params: { path: { connectionId: "connection_id" } },
  }),
);

Response · 200

Success.

Errors: 400, 401, 403, 404, 429, 500. Error shape

GET/api/console/connect/connections/{connectionId}/live-check

Get a live connection's latest check

Live connections only.

Access token and workspace

Send Authorization: Bearer <token> and X-Workspace-Id. The token acts with your own role.

Parameters

Parameters
FieldTypeDescription
connectionId (path)requiredstring

The connection id.

Examples

javascript
import { createNexraClient, unwrap } from "@amakora/nexra-sdk";

const nexra = createNexraClient(); // NEXRA_TOKEN and NEXRA_WORKSPACE_ID
const result = unwrap(
  await nexra.GET("/api/console/connect/connections/{connectionId}/live-check", {
    params: { path: { connectionId: "connection_id" } },
  }),
);

Response · 200

Success.

Response fields
FieldTypeDescription
connectionIdrequiredstring
staterequired"not_checked" | "failed" | "credentials_changed" | "expired" | "passed"
currentrequiredboolean
checkedAtrequiredstring | null

ISO 8601 date and time.

expiresAtrequiredstring | null

ISO 8601 date and time.

summaryrequiredstring | null
fixHintstring | null

Errors: 400, 401, 403, 404, 429, 500. Error shape

POST/api/console/connect/connections/{connectionId}/live-check

Check a live connection now

Confirms the live credential still reaches the right account. Live connections only.

Access token and workspace

Send Authorization: Bearer <token> and X-Workspace-Id. The token acts with your own role.

Parameters

Parameters
FieldTypeDescription
connectionId (path)requiredstring

The connection id.

Examples

javascript
import { createNexraClient, unwrap } from "@amakora/nexra-sdk";

const nexra = createNexraClient(); // NEXRA_TOKEN and NEXRA_WORKSPACE_ID
const result = unwrap(
  await nexra.POST("/api/console/connect/connections/{connectionId}/live-check", {
    params: { path: { connectionId: "connection_id" } },
  }),
);

Response · 201

Success.

Response fields
FieldTypeDescription
connectionIdrequiredstring
staterequired"not_checked" | "failed" | "credentials_changed" | "expired" | "passed"
currentrequiredboolean
checkedAtrequiredstring | null

ISO 8601 date and time.

expiresAtrequiredstring | null

ISO 8601 date and time.

summaryrequiredstring | null
fixHintstring | null

Errors: 400, 401, 403, 404, 429, 500. Error shape

End users

Your own customers (end users) and the accounts they connect through your app. Send a short-lived link, record what they agreed to, withdraw access, and answer access and erasure requests.

GET/api/console/connect/end-user-link-apps

List apps your customers can connect through

Your workspace connections that sign in with the provider's own page and have your app's client ID and secret saved. Customers connect through your own app; their sign-in runs under your app's keys.

Access token and workspace

Send Authorization: Bearer <token> and X-Workspace-Id. The token acts with your own role.

Examples

javascript
import { createNexraClient, unwrap } from "@amakora/nexra-sdk";

const nexra = createNexraClient(); // NEXRA_TOKEN and NEXRA_WORKSPACE_ID
const result = unwrap(
  await nexra.GET("/api/console/connect/end-user-link-apps"),
);

Response · 200

Success.

Response fields
FieldTypeDescription
appsrequiredarray of object

Errors: 400, 401, 403, 404, 429, 500. Error shape

GET/api/console/connect/end-users

List end users

Your customers and the accounts they connected, newest first.

Access token and workspace

Send Authorization: Bearer <token> and X-Workspace-Id. The token acts with your own role.

Parameters

Parameters
FieldTypeDescription
status (query)string

active (default), erased or all.

connectorKey (query)string

Only customers with a current connection to this app, for example xero.

q (query)string

Search your id, name or email.

limit (query)integer

How many to return: 1 to 100, default 50.

offset (query)integer

How many to skip.

Examples

javascript
import { createNexraClient, unwrap } from "@amakora/nexra-sdk";

const nexra = createNexraClient(); // NEXRA_TOKEN and NEXRA_WORKSPACE_ID
const result = unwrap(
  await nexra.GET("/api/console/connect/end-users"),
);

Response · 200

Success.

A list, newest first, capped as described above.

Response fields
FieldTypeDescription
totalrequiredinteger
endUsersrequiredarray of object

Errors: 400, 401, 403, 404, 429, 500. Error shape

POST/api/console/connect/end-users

Add an end user

Adds a customer by your own id for them, or updates the name and email of one you already added. Scoped to the workspace, or to one project when projectId is given.

Access token and workspace

Send Authorization: Bearer <token> and X-Workspace-Id. The token acts with your own role.

Request body · application/json

Request body
FieldTypeDescription
externalUserIdrequiredstring
projectIdstring
displayNamestring
emailstring

Examples

javascript
import { createNexraClient, unwrap } from "@amakora/nexra-sdk";

const nexra = createNexraClient(); // NEXRA_TOKEN and NEXRA_WORKSPACE_ID
const result = unwrap(
  await nexra.POST("/api/console/connect/end-users", {
    body: {
      "externalUserId": "string"
    },
  }),
);

Response · 201

Success.

Response fields
FieldTypeDescription
idrequiredstring
externalUserIdrequiredstring | null

Your id for the customer. Null after erasure.

displayNamerequiredstring | null
emailrequiredstring | null
projectIdrequiredstring | null
statusrequired"active" | "erased"
createdAtrequiredstring

ISO 8601 date and time.

erasedAtrequiredstring | null

ISO 8601 date and time.

connectionsrequiredarray of object
consentsrequiredarray of object
linksrequiredarray of object
dataRequestsrequiredarray of object
runsrequiredarray of object

Errors: 400, 401, 403, 404, 429, 500. Error shape

GET/api/console/connect/end-users/{endUserId}

Get an end user

The customer with their connections, consent history, links, data requests and recent runs.

Access token and workspace

Send Authorization: Bearer <token> and X-Workspace-Id. The token acts with your own role.

Parameters

Parameters
FieldTypeDescription
endUserId (path)requiredstring

The end user id.

Examples

javascript
import { createNexraClient, unwrap } from "@amakora/nexra-sdk";

const nexra = createNexraClient(); // NEXRA_TOKEN and NEXRA_WORKSPACE_ID
const result = unwrap(
  await nexra.GET("/api/console/connect/end-users/{endUserId}", {
    params: { path: { endUserId: "endUser_id" } },
  }),
);

Response · 200

Success.

Response fields
FieldTypeDescription
idrequiredstring
externalUserIdrequiredstring | null

Your id for the customer. Null after erasure.

displayNamerequiredstring | null
emailrequiredstring | null
projectIdrequiredstring | null
statusrequired"active" | "erased"
createdAtrequiredstring

ISO 8601 date and time.

erasedAtrequiredstring | null

ISO 8601 date and time.

connectionsrequiredarray of object
consentsrequiredarray of object
linksrequiredarray of object
dataRequestsrequiredarray of object
runsrequiredarray of object

Errors: 400, 401, 403, 404, 429, 500. Error shape

POST/api/console/connect/end-users/{endUserId}/connections/{connectionId}/revoke

Withdraw an end user's connection

Deletes the stored access, turns the connection off and marks its consent revoked (the consent record is kept). Set onBehalfOfEndUser when your customer asked for it.

Access token and workspace

Send Authorization: Bearer <token> and X-Workspace-Id. The token acts with your own role.

Parameters

Parameters
FieldTypeDescription
endUserId (path)requiredstring

The end user id.

connectionId (path)requiredstring

The connection id.

Request body · application/json

Request body
FieldTypeDescription
reasonstring
onBehalfOfEndUserboolean

Examples

javascript
import { createNexraClient, unwrap } from "@amakora/nexra-sdk";

const nexra = createNexraClient(); // NEXRA_TOKEN and NEXRA_WORKSPACE_ID
const result = unwrap(
  await nexra.POST("/api/console/connect/end-users/{endUserId}/connections/{connectionId}/revoke", {
    params: { path: { endUserId: "endUser_id", connectionId: "connection_id" } },
    body: {},
  }),
);

Response · 200

Success.

Errors: 400, 401, 403, 404, 429, 500. Error shape

POST/api/console/connect/end-users/{endUserId}/access-requests

Export what is held about an end user

Records an access request and returns the export: connections, consent records, links and run metadata. Sign-in secrets are never included.

Access token and workspace

Send Authorization: Bearer <token> and X-Workspace-Id. The token acts with your own role.

Parameters

Parameters
FieldTypeDescription
endUserId (path)requiredstring

The end user id.

Request body · application/json

Request body
FieldTypeDescription
reasonstring

Examples

javascript
import { createNexraClient, unwrap } from "@amakora/nexra-sdk";

const nexra = createNexraClient(); // NEXRA_TOKEN and NEXRA_WORKSPACE_ID
const result = unwrap(
  await nexra.POST("/api/console/connect/end-users/{endUserId}/access-requests", {
    params: { path: { endUserId: "endUser_id" } },
    body: {},
  }),
);

Response · 201

Success.

Response fields
FieldTypeDescription
requestrequiredobject
exportrequiredobject

Errors: 400, 401, 403, 404, 429, 500. Error shape

POST/api/console/connect/end-users/{endUserId}/erasure-requests

Ask to erase an end user

Records an erasure request. Nothing is erased until a workspace owner or admin approves it in the console; then stored access is deleted, personal data is cleared from run records and a minimal record of the erasure is kept.

Access token and workspace

Send Authorization: Bearer <token> and X-Workspace-Id. The token acts with your own role.

Parameters

Parameters
FieldTypeDescription
endUserId (path)requiredstring

The end user id.

Request body · application/json

Request body
FieldTypeDescription
reasonstring

Examples

javascript
import { createNexraClient, unwrap } from "@amakora/nexra-sdk";

const nexra = createNexraClient(); // NEXRA_TOKEN and NEXRA_WORKSPACE_ID
const result = unwrap(
  await nexra.POST("/api/console/connect/end-users/{endUserId}/erasure-requests", {
    params: { path: { endUserId: "endUser_id" } },
    body: {},
  }),
);

Response · 201

Success.

Response fields
FieldTypeDescription
idrequiredstring
endUserIdrequiredstring
kindrequired"access" | "erasure"
statusrequiredstring

pending_approval, in_progress, completed, rejected or failed.

reasonrequiredstring | null
requestedByTyperequiredstring
decidedAtrequiredstring | null

ISO 8601 date and time.

completedAtrequiredstring | null

ISO 8601 date and time.

createdAtrequiredstring

ISO 8601 date and time.

evidencerequiredobject | null

What was done, as counts and hashes. Never personal data.

evidenceHashrequiredstring | null

Errors: 400, 401, 403, 404, 429, 500. Error shape

GET/api/console/connect/data-requests

List access and erasure requests

Access token and workspace

Send Authorization: Bearer <token> and X-Workspace-Id. The token acts with your own role.

Parameters

Parameters
FieldTypeDescription
status (query)string

For example pending_approval or completed.

kind (query)string

access or erasure.

Examples

javascript
import { createNexraClient, unwrap } from "@amakora/nexra-sdk";

const nexra = createNexraClient(); // NEXRA_TOKEN and NEXRA_WORKSPACE_ID
const result = unwrap(
  await nexra.GET("/api/console/connect/data-requests"),
);

Response · 200

Success.

A list, newest first, capped as described above.

Response fields
FieldTypeDescription
requestsrequiredarray of object

Errors: 400, 401, 403, 404, 429, 500. Error shape

GET/api/console/connect/data-requests/{requestId}

Get an access or erasure request

Access token and workspace

Send Authorization: Bearer <token> and X-Workspace-Id. The token acts with your own role.

Parameters

Parameters
FieldTypeDescription
requestId (path)requiredstring

The request id.

Examples

javascript
import { createNexraClient, unwrap } from "@amakora/nexra-sdk";

const nexra = createNexraClient(); // NEXRA_TOKEN and NEXRA_WORKSPACE_ID
const result = unwrap(
  await nexra.GET("/api/console/connect/data-requests/{requestId}", {
    params: { path: { requestId: "request_id" } },
  }),
);

Response · 200

Success.

Response fields
FieldTypeDescription
idrequiredstring
endUserIdrequiredstring
kindrequired"access" | "erasure"
statusrequiredstring

pending_approval, in_progress, completed, rejected or failed.

reasonrequiredstring | null
requestedByTyperequiredstring
decidedAtrequiredstring | null

ISO 8601 date and time.

completedAtrequiredstring | null

ISO 8601 date and time.

createdAtrequiredstring

ISO 8601 date and time.

evidencerequiredobject | null

What was done, as counts and hashes. Never personal data.

evidenceHashrequiredstring | null

Errors: 400, 401, 403, 404, 429, 500. Error shape

GET/api/console/connect/data-requests/{requestId}/export

Download an access export again

Generated again now. Not available once the end user has been erased.

Access token and workspace

Send Authorization: Bearer <token> and X-Workspace-Id. The token acts with your own role.

Parameters

Parameters
FieldTypeDescription
requestId (path)requiredstring

The request id.

Examples

javascript
import { createNexraClient, unwrap } from "@amakora/nexra-sdk";

const nexra = createNexraClient(); // NEXRA_TOKEN and NEXRA_WORKSPACE_ID
const result = unwrap(
  await nexra.GET("/api/console/connect/data-requests/{requestId}/export", {
    params: { path: { requestId: "request_id" } },
  }),
);

Response · 200

Success.

Errors: 400, 401, 403, 404, 429, 500. Error shape

Records

Your workspace's own records that flows use: contract obligations and their reminders, the asset-to-customer map, evidence matrices for review, and statements made from a template. Each waits for a person where it should.

GET/api/console/connect/builtin-operations

List Nexra built-in operations

The operations a flow step of kind builtin can run on your workspace's own records, with their fields: obligations.create, obligations.list, obligations.update, obligations.complete, evidence_matrix.create, asset_customers.list, statements.generate and statements.get.

Access token and workspace

Send Authorization: Bearer <token> and X-Workspace-Id. The token acts with your own role.

Examples

javascript
import { createNexraClient, unwrap } from "@amakora/nexra-sdk";

const nexra = createNexraClient(); // NEXRA_TOKEN and NEXRA_WORKSPACE_ID
const result = unwrap(
  await nexra.GET("/api/console/connect/builtin-operations"),
);

Response · 200

Success.

Response fields
FieldTypeDescription
operationsrequiredarray of object

Errors: 400, 401, 403, 404, 429, 500. Error shape

GET/api/console/connect/obligations

List obligations

Obligations ordered by due date, with counts of open, due soon and overdue ones.

Access token and workspace

Send Authorization: Bearer <token> and X-Workspace-Id. The token acts with your own role.

Parameters

Parameters
FieldTypeDescription
status (query)string

open, due_soon, overdue, done, waived or active (anything not done or waived).

q (query)string

Search the reference, counterparty, obligation and clause.

reference (query)string

Only this contract or agreement.

ownerUserId (query)string

Only obligations this member owns.

limit (query)integer

How many to return: 1 to 500, default 200.

Examples

javascript
import { createNexraClient, unwrap } from "@amakora/nexra-sdk";

const nexra = createNexraClient(); // NEXRA_TOKEN and NEXRA_WORKSPACE_ID
const result = unwrap(
  await nexra.GET("/api/console/connect/obligations"),
);

Response · 200

Success.

A list, newest first, capped as described above.

Response fields
FieldTypeDescription
totalrequiredinteger
countsrequiredobject
obligationsrequiredarray of object

Errors: 400, 401, 403, 404, 429, 500. Error shape

POST/api/console/connect/obligations

Add an obligation

Nexra reminds the owner before it is due (14 days unless you choose otherwise) and when it is overdue.

Access token and workspace

Send Authorization: Bearer <token> and X-Workspace-Id. The token acts with your own role.

Request body · application/json

Request body
FieldTypeDescription
referencerequiredstring
counterpartyrequiredstring
textrequiredstring
dueDaterequiredstring

YYYY-MM-DD. For a repeating obligation, the next due date.

recurrence"none" | "weekly" | "monthly" | "quarterly" | "yearly"
sourceClausestring
ownerUserIdstring

A member of the workspace (from listObligationOwners).

ownerTeamstring
reminderLeadDaysinteger

Default 14.

evidenceLinksarray of string

Examples

javascript
import { createNexraClient, unwrap } from "@amakora/nexra-sdk";

const nexra = createNexraClient(); // NEXRA_TOKEN and NEXRA_WORKSPACE_ID
const result = unwrap(
  await nexra.POST("/api/console/connect/obligations", {
    body: {
      "reference": "Gas supply agreement GSA-2024-07",
      "counterparty": "Northfield Power",
      "text": "Send the monthly volume statement",
      "dueDate": "2026-10-31",
      "recurrence": "monthly",
      "sourceClause": "7.2",
      "ownerTeam": "Finance",
      "reminderLeadDays": 14
    },
  }),
);

Response · 201

Success.

Response fields
FieldTypeDescription
idrequiredstring
referencerequiredstring

The contract or agreement reference.

counterpartyrequiredstring
textrequiredstring

What is owed, in plain words.

ownerrequiredobject | null

A workspace member (by name) or a team. Never an email address.

recurrencerequired"none" | "weekly" | "monthly" | "quarterly" | "yearly"
dueDaterequiredstring

The next due date (YYYY-MM-DD).

sourceClauserequiredstring | null
statusrequired"open" | "due_soon" | "overdue" | "done" | "waived"

due_soon and overdue are worked out from the due date and the reminder lead time.

reminderLeadDaysrequiredinteger
evidenceLinksrequiredarray of string
lastCompletedAtrequiredstring | null

ISO 8601 date and time.

completedCountrequiredinteger
waivedReasonrequiredstring | null
sourcerequiredstring
createdAtrequiredstring

ISO 8601 date and time.

updatedAtrequiredstring

ISO 8601 date and time.

Errors: 400, 401, 403, 404, 429, 500. Error shape

GET/api/console/connect/obligation-owners

List who can own an obligation

Active workspace members, by name only.

Access token and workspace

Send Authorization: Bearer <token> and X-Workspace-Id. The token acts with your own role.

Examples

javascript
import { createNexraClient, unwrap } from "@amakora/nexra-sdk";

const nexra = createNexraClient(); // NEXRA_TOKEN and NEXRA_WORKSPACE_ID
const result = unwrap(
  await nexra.GET("/api/console/connect/obligation-owners"),
);

Response · 200

Success.

Response fields
FieldTypeDescription
membersrequiredarray of object

Errors: 400, 401, 403, 404, 429, 500. Error shape

GET/api/console/connect/obligations/{obligationId}

Get an obligation

Access token and workspace

Send Authorization: Bearer <token> and X-Workspace-Id. The token acts with your own role.

Parameters

Parameters
FieldTypeDescription
obligationId (path)requiredstring

The obligation id.

Examples

javascript
import { createNexraClient, unwrap } from "@amakora/nexra-sdk";

const nexra = createNexraClient(); // NEXRA_TOKEN and NEXRA_WORKSPACE_ID
const result = unwrap(
  await nexra.GET("/api/console/connect/obligations/{obligationId}", {
    params: { path: { obligationId: "obligation_id" } },
  }),
);

Response · 200

Success.

Response fields
FieldTypeDescription
idrequiredstring
referencerequiredstring

The contract or agreement reference.

counterpartyrequiredstring
textrequiredstring

What is owed, in plain words.

ownerrequiredobject | null

A workspace member (by name) or a team. Never an email address.

recurrencerequired"none" | "weekly" | "monthly" | "quarterly" | "yearly"
dueDaterequiredstring

The next due date (YYYY-MM-DD).

sourceClauserequiredstring | null
statusrequired"open" | "due_soon" | "overdue" | "done" | "waived"

due_soon and overdue are worked out from the due date and the reminder lead time.

reminderLeadDaysrequiredinteger
evidenceLinksrequiredarray of string
lastCompletedAtrequiredstring | null

ISO 8601 date and time.

completedCountrequiredinteger
waivedReasonrequiredstring | null
sourcerequiredstring
createdAtrequiredstring

ISO 8601 date and time.

updatedAtrequiredstring

ISO 8601 date and time.

Errors: 400, 401, 403, 404, 429, 500. Error shape

PATCH/api/console/connect/obligations/{obligationId}

Change an obligation

Send only the fields to change. To waive it, send status: waived with waivedReason; to reopen it, status: open.

Access token and workspace

Send Authorization: Bearer <token> and X-Workspace-Id. The token acts with your own role.

Parameters

Parameters
FieldTypeDescription
obligationId (path)requiredstring

The obligation id.

Request body · application/json

Request body
FieldTypeDescription
referencestring
counterpartystring
textstring
dueDatestring

YYYY-MM-DD. For a repeating obligation, the next due date.

recurrence"none" | "weekly" | "monthly" | "quarterly" | "yearly"
sourceClausestring
ownerUserIdstring

A member of the workspace (from listObligationOwners).

ownerTeamstring
reminderLeadDaysinteger

Default 14.

evidenceLinksarray of string
status"waived" | "open"
waivedReasonstring

Examples

javascript
import { createNexraClient, unwrap } from "@amakora/nexra-sdk";

const nexra = createNexraClient(); // NEXRA_TOKEN and NEXRA_WORKSPACE_ID
const result = unwrap(
  await nexra.PATCH("/api/console/connect/obligations/{obligationId}", {
    params: { path: { obligationId: "obligation_id" } },
    body: {
      "reference": "Gas supply agreement GSA-2024-07",
      "counterparty": "Northfield Power",
      "text": "Send the monthly volume statement",
      "dueDate": "2026-10-31",
      "recurrence": "monthly",
      "sourceClause": "7.2",
      "ownerTeam": "Finance",
      "reminderLeadDays": 14
    },
  }),
);

Response · 200

Success.

Response fields
FieldTypeDescription
idrequiredstring
referencerequiredstring

The contract or agreement reference.

counterpartyrequiredstring
textrequiredstring

What is owed, in plain words.

ownerrequiredobject | null

A workspace member (by name) or a team. Never an email address.

recurrencerequired"none" | "weekly" | "monthly" | "quarterly" | "yearly"
dueDaterequiredstring

The next due date (YYYY-MM-DD).

sourceClauserequiredstring | null
statusrequired"open" | "due_soon" | "overdue" | "done" | "waived"

due_soon and overdue are worked out from the due date and the reminder lead time.

reminderLeadDaysrequiredinteger
evidenceLinksrequiredarray of string
lastCompletedAtrequiredstring | null

ISO 8601 date and time.

completedCountrequiredinteger
waivedReasonrequiredstring | null
sourcerequiredstring
createdAtrequiredstring

ISO 8601 date and time.

updatedAtrequiredstring

ISO 8601 date and time.

Errors: 400, 401, 403, 404, 429, 500. Error shape

POST/api/console/connect/obligations/{obligationId}/complete

Mark an obligation done

Completes the current due date. A repeating obligation moves on to its next due date and stays open.

Access token and workspace

Send Authorization: Bearer <token> and X-Workspace-Id. The token acts with your own role.

Parameters

Parameters
FieldTypeDescription
obligationId (path)requiredstring

The obligation id.

Request body · application/json

Request body
FieldTypeDescription
evidenceLinksarray of string

Examples

javascript
import { createNexraClient, unwrap } from "@amakora/nexra-sdk";

const nexra = createNexraClient(); // NEXRA_TOKEN and NEXRA_WORKSPACE_ID
const result = unwrap(
  await nexra.POST("/api/console/connect/obligations/{obligationId}/complete", {
    params: { path: { obligationId: "obligation_id" } },
    body: {},
  }),
);

Response · 200

Success.

Response fields
FieldTypeDescription
idrequiredstring
referencerequiredstring

The contract or agreement reference.

counterpartyrequiredstring
textrequiredstring

What is owed, in plain words.

ownerrequiredobject | null

A workspace member (by name) or a team. Never an email address.

recurrencerequired"none" | "weekly" | "monthly" | "quarterly" | "yearly"
dueDaterequiredstring

The next due date (YYYY-MM-DD).

sourceClauserequiredstring | null
statusrequired"open" | "due_soon" | "overdue" | "done" | "waived"

due_soon and overdue are worked out from the due date and the reminder lead time.

reminderLeadDaysrequiredinteger
evidenceLinksrequiredarray of string
lastCompletedAtrequiredstring | null

ISO 8601 date and time.

completedCountrequiredinteger
waivedReasonrequiredstring | null
sourcerequiredstring
createdAtrequiredstring

ISO 8601 date and time.

updatedAtrequiredstring

ISO 8601 date and time.

Errors: 400, 401, 403, 404, 429, 500. Error shape

GET/api/console/connect/asset-customers

List the asset-to-customer map

Which customers each asset or segment serves. Filter by one asset for the customers it affects.

Access token and workspace

Send Authorization: Bearer <token> and X-Workspace-Id. The token acts with your own role.

Parameters

Parameters
FieldTypeDescription
asset (query)string

Only this asset or segment (exact, any case).

q (query)string

Search assets, customers and CRM ids.

limit (query)integer

How many to return: 1 to 1,000, default 200.

Examples

javascript
import { createNexraClient, unwrap } from "@amakora/nexra-sdk";

const nexra = createNexraClient(); // NEXRA_TOKEN and NEXRA_WORKSPACE_ID
const result = unwrap(
  await nexra.GET("/api/console/connect/asset-customers"),
);

Response · 200

Success.

A list, newest first, capped as described above.

Response fields
FieldTypeDescription
totalrequiredinteger
customersrequiredarray of object
assetsrequiredarray of object

Errors: 400, 401, 403, 404, 429, 500. Error shape

POST/api/console/connect/asset-customers

Add a customer to an asset

Access token and workspace

Send Authorization: Bearer <token> and X-Workspace-Id. The token acts with your own role.

Request body · application/json

Request body
FieldTypeDescription
assetKeyrequiredstring
assetNamestring
customerNamerequiredstring
crmIdstring
externalIdstring

Examples

javascript
import { createNexraClient, unwrap } from "@amakora/nexra-sdk";

const nexra = createNexraClient(); // NEXRA_TOKEN and NEXRA_WORKSPACE_ID
const result = unwrap(
  await nexra.POST("/api/console/connect/asset-customers", {
    body: {
      "assetKey": "string",
      "customerName": "string"
    },
  }),
);

Response · 201

Success.

Response fields
FieldTypeDescription
savedrequiredinteger
removedrequiredinteger
assetsrequiredinteger

Errors: 400, 401, 403, 404, 429, 500. Error shape

POST/api/console/connect/asset-customers/upload

Upload the asset-to-customer map

CSV text with asset and customer columns (optional: asset_name, crm_id, external_id). add keeps existing rows; replace first removes the customers of every asset in the file.

Access token and workspace

Send Authorization: Bearer <token> and X-Workspace-Id. The token acts with your own role.

Request body · application/json

Request body
FieldTypeDescription
csvrequiredstring
mode"add" | "replace"

Examples

javascript
import { createNexraClient, unwrap } from "@amakora/nexra-sdk";

const nexra = createNexraClient(); // NEXRA_TOKEN and NEXRA_WORKSPACE_ID
const result = unwrap(
  await nexra.POST("/api/console/connect/asset-customers/upload", {
    body: {
      "csv": "asset,customer,crm_id\nSection 4,Northfield Power,0015g00000ABCDE\nSection 4,Riverside Bakery,0015g00000FGHIJ",
      "mode": "add"
    },
  }),
);

Response · 200

Success.

Response fields
FieldTypeDescription
savedrequiredinteger
removedrequiredinteger
assetsrequiredinteger

Errors: 400, 401, 403, 404, 429, 500. Error shape

DELETE/api/console/connect/asset-customers/{assetCustomerId}

Remove a customer from an asset

Access token and workspace

Send Authorization: Bearer <token> and X-Workspace-Id. The token acts with your own role.

Parameters

Parameters
FieldTypeDescription
assetCustomerId (path)requiredstring

The asset customer id.

Examples

javascript
import { createNexraClient, unwrap } from "@amakora/nexra-sdk";

const nexra = createNexraClient(); // NEXRA_TOKEN and NEXRA_WORKSPACE_ID
const result = unwrap(
  await nexra.DELETE("/api/console/connect/asset-customers/{assetCustomerId}", {
    params: { path: { assetCustomerId: "assetCustomer_id" } },
  }),
);

Response · 200

Success.

Response fields
FieldTypeDescription
removedrequiredboolean

Errors: 400, 401, 403, 404, 429, 500. Error shape

GET/api/console/connect/evidence-matrices

List evidence matrices

Needs a role that manages records or decides approvals: matrices can hold people's details.

Access token and workspace

Send Authorization: Bearer <token> and X-Workspace-Id. The token acts with your own role.

Parameters

Parameters
FieldTypeDescription
status (query)string

pending_review, reviewed or returned.

Examples

javascript
import { createNexraClient, unwrap } from "@amakora/nexra-sdk";

const nexra = createNexraClient(); // NEXRA_TOKEN and NEXRA_WORKSPACE_ID
const result = unwrap(
  await nexra.GET("/api/console/connect/evidence-matrices"),
);

Response · 200

Success.

A list, newest first, capped as described above.

Response fields
FieldTypeDescription
matricesrequiredarray of object

Errors: 400, 401, 403, 404, 429, 500. Error shape

POST/api/console/connect/evidence-matrices

Make an evidence matrix

Rows by criteria, each cell evidenced (with a quote) or not evidenced, plus clarification questions. Opens a review task. Scores, ranks, outcomes and criteria about protected characteristics are refused.

Access token and workspace

Send Authorization: Bearer <token> and X-Workspace-Id. The token acts with your own role.

Request body · application/json

Request body
FieldTypeDescription
titlerequiredstring
subjectstring

What the rows are, for example candidates.

criteriarequiredarray of object
rowsrequiredarray of object
questionsarray of object

Examples

javascript
import { createNexraClient, unwrap } from "@amakora/nexra-sdk";

const nexra = createNexraClient(); // NEXRA_TOKEN and NEXRA_WORKSPACE_ID
const result = unwrap(
  await nexra.POST("/api/console/connect/evidence-matrices", {
    body: {
      "title": "Site engineer applications, October",
      "subject": "candidates",
      "criteria": [
        {
          "key": "gas_safe",
          "label": "Holds a current Gas Safe registration"
        },
        {
          "key": "experience",
          "label": "Three years of network maintenance experience"
        }
      ],
      "rows": [
        {
          "key": "candidate_a",
          "label": "Candidate A",
          "cells": {
            "gas_safe": {
              "status": "evidenced",
              "quote": "Gas Safe registered since 2019",
              "source": "CV, page 1"
            },
            "experience": {
              "status": "not_evidenced"
            }
          }
        }
      ],
      "questions": [
        {
          "rowKey": "candidate_a",
          "question": "How many years of network maintenance have you done?"
        }
      ]
    },
  }),
);

Response · 201

Success.

Errors: 400, 401, 403, 404, 429, 500. Error shape

GET/api/console/connect/evidence-matrices/{matrixId}

Get an evidence matrix

Access token and workspace

Send Authorization: Bearer <token> and X-Workspace-Id. The token acts with your own role.

Parameters

Parameters
FieldTypeDescription
matrixId (path)requiredstring

The matrix id.

Examples

javascript
import { createNexraClient, unwrap } from "@amakora/nexra-sdk";

const nexra = createNexraClient(); // NEXRA_TOKEN and NEXRA_WORKSPACE_ID
const result = unwrap(
  await nexra.GET("/api/console/connect/evidence-matrices/{matrixId}", {
    params: { path: { matrixId: "matrix_id" } },
  }),
);

Response · 200

Success.

Response fields
FieldTypeDescription
idrequiredstring
titlerequiredstring
subjectrequiredstring
statusrequired"pending_review" | "reviewed" | "returned"
criteriarequiredarray of object
rowsrequiredarray of object
questionsrequiredarray of object
reviewrequiredobject | null
createdAtrequiredstring

ISO 8601 date and time.

Errors: 400, 401, 403, 404, 429, 500. Error shape

POST/api/console/connect/evidence-matrices/{matrixId}/review

Send an evidence matrix for review

Access token and workspace

Send Authorization: Bearer <token> and X-Workspace-Id. The token acts with your own role.

Parameters

Parameters
FieldTypeDescription
matrixId (path)requiredstring

The matrix id.

Examples

javascript
import { createNexraClient, unwrap } from "@amakora/nexra-sdk";

const nexra = createNexraClient(); // NEXRA_TOKEN and NEXRA_WORKSPACE_ID
const result = unwrap(
  await nexra.POST("/api/console/connect/evidence-matrices/{matrixId}/review", {
    params: { path: { matrixId: "matrix_id" } },
  }),
);

Response · 200

Success.

Response fields
FieldTypeDescription
idrequiredstring
titlerequiredstring
subjectrequiredstring
statusrequired"pending_review" | "reviewed" | "returned"
criteriarequiredarray of object
rowsrequiredarray of object
questionsrequiredarray of object
reviewrequiredobject | null
createdAtrequiredstring

ISO 8601 date and time.

Errors: 400, 401, 403, 404, 429, 500. Error shape

POST/api/console/connect/evidence-matrices/{matrixId}/decision

Review an evidence matrix

Mark it reviewed (approved) or send it back (rejected, with a reason). The person who sent it for review can't decide it.

Access token and workspace

Send Authorization: Bearer <token> and X-Workspace-Id. The token acts with your own role.

Parameters

Parameters
FieldTypeDescription
matrixId (path)requiredstring

The matrix id.

Request body · application/json

Request body
FieldTypeDescription
decisionrequired"approved" | "rejected"
reasonstring

Needed when sending it back.

Examples

javascript
import { createNexraClient, unwrap } from "@amakora/nexra-sdk";

const nexra = createNexraClient(); // NEXRA_TOKEN and NEXRA_WORKSPACE_ID
const result = unwrap(
  await nexra.POST("/api/console/connect/evidence-matrices/{matrixId}/decision", {
    params: { path: { matrixId: "matrix_id" } },
    body: {
      "decision": "approved"
    },
  }),
);

Response · 200

Success.

Response fields
FieldTypeDescription
idrequiredstring
titlerequiredstring
subjectrequiredstring
statusrequired"pending_review" | "reviewed" | "returned"
criteriarequiredarray of object
rowsrequiredarray of object
questionsrequiredarray of object
reviewrequiredobject | null
createdAtrequiredstring

ISO 8601 date and time.

Errors: 400, 401, 403, 404, 429, 500. Error shape

GET/api/console/connect/statements

List statements

Access token and workspace

Send Authorization: Bearer <token> and X-Workspace-Id. The token acts with your own role.

Parameters

Parameters
FieldTypeDescription
status (query)string

pending_approval, approved or rejected.

Examples

javascript
import { createNexraClient, unwrap } from "@amakora/nexra-sdk";

const nexra = createNexraClient(); // NEXRA_TOKEN and NEXRA_WORKSPACE_ID
const result = unwrap(
  await nexra.GET("/api/console/connect/statements"),
);

Response · 200

Success.

A list, newest first, capped as described above.

Response fields
FieldTypeDescription
statementsrequiredarray of object

Errors: 400, 401, 403, 404, 429, 500. Error shape

POST/api/console/connect/statements

Make a statement

Makes a monthly volume statement from your data (totals are worked out by Nexra) and opens its approval. Nothing can send it until it is approved.

Access token and workspace

Send Authorization: Bearer <token> and X-Workspace-Id. The token acts with your own role.

Request body · application/json

Request body
FieldTypeDescription
template"monthly_volume"
titlestring
customerNamerequiredstring
customerRefstring
periodStartrequiredstring

YYYY-MM-DD

periodEndrequiredstring

YYYY-MM-DD

unitstring
daysrequiredarray of object
invoicesarray of object
notestring

Examples

javascript
import { createNexraClient, unwrap } from "@amakora/nexra-sdk";

const nexra = createNexraClient(); // NEXRA_TOKEN and NEXRA_WORKSPACE_ID
const result = unwrap(
  await nexra.POST("/api/console/connect/statements", {
    body: {
      "template": "monthly_volume",
      "customerName": "Northfield Power",
      "customerRef": "ACC-1042",
      "periodStart": "2026-09-01",
      "periodEnd": "2026-09-30",
      "unit": "MWh",
      "days": [
        {
          "date": "2026-09-01",
          "volume": 412.5
        },
        {
          "date": "2026-09-02",
          "volume": 398.2
        }
      ],
      "invoices": [
        {
          "reference": "INV-2026-0931",
          "amount": 48250,
          "currency": "GBP"
        }
      ],
      "note": "Volumes are from the network meter at the delivery point."
    },
  }),
);

Response · 201

Success.

Errors: 400, 401, 403, 404, 429, 500. Error shape

GET/api/console/connect/statements/{statementId}

Get a statement

Access token and workspace

Send Authorization: Bearer <token> and X-Workspace-Id. The token acts with your own role.

Parameters

Parameters
FieldTypeDescription
statementId (path)requiredstring

The statement id.

Examples

javascript
import { createNexraClient, unwrap } from "@amakora/nexra-sdk";

const nexra = createNexraClient(); // NEXRA_TOKEN and NEXRA_WORKSPACE_ID
const result = unwrap(
  await nexra.GET("/api/console/connect/statements/{statementId}", {
    params: { path: { statementId: "statement_id" } },
  }),
);

Response · 200

Success.

Response fields
FieldTypeDescription
idrequiredstring
titlerequiredstring
templaterequiredstring
customerNamerequiredstring
periodStartrequiredstring
periodEndrequiredstring
statusrequired"pending_approval" | "approved" | "rejected"
htmlrequiredstring

The statement as a printable HTML page.

reviewrequiredobject | null
createdAtrequiredstring

ISO 8601 date and time.

Errors: 400, 401, 403, 404, 429, 500. Error shape

POST/api/console/connect/statements/{statementId}/approval

Send a statement for approval

Access token and workspace

Send Authorization: Bearer <token> and X-Workspace-Id. The token acts with your own role.

Parameters

Parameters
FieldTypeDescription
statementId (path)requiredstring

The statement id.

Examples

javascript
import { createNexraClient, unwrap } from "@amakora/nexra-sdk";

const nexra = createNexraClient(); // NEXRA_TOKEN and NEXRA_WORKSPACE_ID
const result = unwrap(
  await nexra.POST("/api/console/connect/statements/{statementId}/approval", {
    params: { path: { statementId: "statement_id" } },
  }),
);

Response · 200

Success.

Response fields
FieldTypeDescription
idrequiredstring
titlerequiredstring
templaterequiredstring
customerNamerequiredstring
periodStartrequiredstring
periodEndrequiredstring
statusrequired"pending_approval" | "approved" | "rejected"
htmlrequiredstring

The statement as a printable HTML page.

reviewrequiredobject | null
createdAtrequiredstring

ISO 8601 date and time.

Errors: 400, 401, 403, 404, 429, 500. Error shape

POST/api/console/connect/statements/{statementId}/decision

Approve a statement

Approve it, or send it back with a reason. The person who sent it for approval can't decide it.

Access token and workspace

Send Authorization: Bearer <token> and X-Workspace-Id. The token acts with your own role.

Parameters

Parameters
FieldTypeDescription
statementId (path)requiredstring

The statement id.

Request body · application/json

Request body
FieldTypeDescription
decisionrequired"approved" | "rejected"
reasonstring

Needed when sending it back.

Examples

javascript
import { createNexraClient, unwrap } from "@amakora/nexra-sdk";

const nexra = createNexraClient(); // NEXRA_TOKEN and NEXRA_WORKSPACE_ID
const result = unwrap(
  await nexra.POST("/api/console/connect/statements/{statementId}/decision", {
    params: { path: { statementId: "statement_id" } },
    body: {
      "decision": "approved"
    },
  }),
);

Response · 200

Success.

Response fields
FieldTypeDescription
idrequiredstring
titlerequiredstring
templaterequiredstring
customerNamerequiredstring
periodStartrequiredstring
periodEndrequiredstring
statusrequired"pending_approval" | "approved" | "rejected"
htmlrequiredstring

The statement as a printable HTML page.

reviewrequiredobject | null
createdAtrequiredstring

ISO 8601 date and time.

Errors: 400, 401, 403, 404, 429, 500. Error shape

Triggers

Start flows from signed webhooks, provider events, polling or uploaded files.

GET/api/console/connect/trigger-catalogue

List provider events that can start flows

Access token and workspace

Send Authorization: Bearer <token> and X-Workspace-Id. The token acts with your own role.

Examples

javascript
import { createNexraClient, unwrap } from "@amakora/nexra-sdk";

const nexra = createNexraClient(); // NEXRA_TOKEN and NEXRA_WORKSPACE_ID
const result = unwrap(
  await nexra.GET("/api/console/connect/trigger-catalogue"),
);

Response · 200

Success.

Response fields
FieldTypeDescription
providerrequiredstring
namerequiredstring
schemerequiredstring
setuprequiredstring
eventsrequiredarray of object

Errors: 400, 401, 403, 404, 429, 500. Error shape

GET/api/console/connect/flows/{flowId}/triggers

List a flow's webhook triggers

Access token and workspace

Send Authorization: Bearer <token> and X-Workspace-Id. The token acts with your own role.

Parameters

Parameters
FieldTypeDescription
flowId (path)requiredstring

The flow id.

Examples

javascript
import { createNexraClient, unwrap } from "@amakora/nexra-sdk";

const nexra = createNexraClient(); // NEXRA_TOKEN and NEXRA_WORKSPACE_ID
const result = unwrap(
  await nexra.GET("/api/console/connect/flows/{flowId}/triggers", {
    params: { path: { flowId: "flow_id" } },
  }),
);

Response · 200

Success.

Response fields
FieldTypeDescription
triggerIdrequiredstring
flowIdrequiredstring
kindrequiredstring
namerequiredstring
statusrequiredstring
environmentrequired"sandbox" | "production"

sandbox is Test mode; production is live.

urlrequiredstring

Where senders post events: /api/connect/triggers/{publicId}.

secretLast4requiredstring | null
secretRotatedAtrequiredstring | null

ISO 8601 date and time.

previousSecretValidUntilrequiredstring | null

ISO 8601 date and time.

maxBodyBytesrequiredinteger
maxDeliveriesPerMinuterequiredinteger
timestampToleranceSecondsrequiredinteger
inputRetentionDaysrequiredinteger
verificationrequiredstring
lastDeliveryAtrequiredstring | null

ISO 8601 date and time.

disabledAtrequiredstring | null

ISO 8601 date and time.

createdAtrequiredstring

ISO 8601 date and time.

Errors: 400, 401, 403, 404, 429, 500. Error shape

POST/api/console/connect/flows/{flowId}/triggers

Create a webhook trigger

Gives the flow a URL that starts a run when a signed request arrives. Without connectionId it is a signed trigger: by default Nexra makes a signing secret (nexra_v1) and returns it once. With connectionId and events it listens to that provider's events. Provider-issued signing secrets are added in the console.

Access token and workspace

Send Authorization: Bearer <token> and X-Workspace-Id. The token acts with your own role.

Parameters

Parameters
FieldTypeDescription
flowId (path)requiredstring

The flow id.

Request body · application/json

Request body
FieldTypeDescription
namestring
environment"sandbox" | "production"

sandbox is Test mode; production is live.

verificationstring

How requests are verified. Default nexra_v1; provider schemes include shopify, stripe and github.

eventTypesarray of string
shopDomainstring

Shopify only.

connectionIdstring

Listen to this connection's provider events.

eventsarray of string

Event keys from the connection's event list.

setup"automatic" | "guided"
maxBodyBytesinteger

Default 65,536.

maxDeliveriesPerMinuteinteger

Default 60.

timestampToleranceSecondsinteger

Default 300.

inputRetentionDaysinteger

Default 7.

Examples

javascript
import { createNexraClient, unwrap } from "@amakora/nexra-sdk";

const nexra = createNexraClient(); // NEXRA_TOKEN and NEXRA_WORKSPACE_ID
const result = unwrap(
  await nexra.POST("/api/console/connect/flows/{flowId}/triggers", {
    params: { path: { flowId: "flow_id" } },
    body: {},
  }),
);

Response · 201

Success.

Response fields
FieldTypeDescription
triggerIdrequiredstring
flowIdrequiredstring
kindrequiredstring
namerequiredstring
statusrequiredstring
environmentrequired"sandbox" | "production"

sandbox is Test mode; production is live.

urlrequiredstring

Where senders post events: /api/connect/triggers/{publicId}.

secretLast4requiredstring | null
secretRotatedAtrequiredstring | null

ISO 8601 date and time.

previousSecretValidUntilrequiredstring | null

ISO 8601 date and time.

maxBodyBytesrequiredinteger
maxDeliveriesPerMinuterequiredinteger
timestampToleranceSecondsrequiredinteger
inputRetentionDaysrequiredinteger
verificationrequiredstring
lastDeliveryAtrequiredstring | null

ISO 8601 date and time.

disabledAtrequiredstring | null

ISO 8601 date and time.

createdAtrequiredstring

ISO 8601 date and time.

secretstring

The signing secret (nxwhsec_...). Shown once, only when Nexra made it. Store it safely.

secretShownOncerequiredboolean

Errors: 400, 401, 403, 404, 429, 500. Error shape

GET/api/console/connect/triggers/{triggerId}

Get a webhook trigger

Access token and workspace

Send Authorization: Bearer <token> and X-Workspace-Id. The token acts with your own role.

Parameters

Parameters
FieldTypeDescription
triggerId (path)requiredstring

The trigger id.

Examples

javascript
import { createNexraClient, unwrap } from "@amakora/nexra-sdk";

const nexra = createNexraClient(); // NEXRA_TOKEN and NEXRA_WORKSPACE_ID
const result = unwrap(
  await nexra.GET("/api/console/connect/triggers/{triggerId}", {
    params: { path: { triggerId: "trigger_id" } },
  }),
);

Response · 200

Success.

Response fields
FieldTypeDescription
triggerIdrequiredstring
flowIdrequiredstring
kindrequiredstring
namerequiredstring
statusrequiredstring
environmentrequired"sandbox" | "production"

sandbox is Test mode; production is live.

urlrequiredstring

Where senders post events: /api/connect/triggers/{publicId}.

secretLast4requiredstring | null
secretRotatedAtrequiredstring | null

ISO 8601 date and time.

previousSecretValidUntilrequiredstring | null

ISO 8601 date and time.

maxBodyBytesrequiredinteger
maxDeliveriesPerMinuterequiredinteger
timestampToleranceSecondsrequiredinteger
inputRetentionDaysrequiredinteger
verificationrequiredstring
lastDeliveryAtrequiredstring | null

ISO 8601 date and time.

disabledAtrequiredstring | null

ISO 8601 date and time.

createdAtrequiredstring

ISO 8601 date and time.

Errors: 400, 401, 403, 404, 429, 500. Error shape

DELETE/api/console/connect/triggers/{triggerId}

Delete a trigger

Access token and workspace

Send Authorization: Bearer <token> and X-Workspace-Id. The token acts with your own role.

Parameters

Parameters
FieldTypeDescription
triggerId (path)requiredstring

The trigger id.

Examples

javascript
import { createNexraClient, unwrap } from "@amakora/nexra-sdk";

const nexra = createNexraClient(); // NEXRA_TOKEN and NEXRA_WORKSPACE_ID
const result = unwrap(
  await nexra.DELETE("/api/console/connect/triggers/{triggerId}", {
    params: { path: { triggerId: "trigger_id" } },
  }),
);

Response · 200

Success.

Errors: 400, 401, 403, 404, 429, 500. Error shape

POST/api/console/connect/triggers/{triggerId}/rotate

Rotate a trigger's signing secret

Makes a new signing secret, returned once. The old one keeps working for graceMinutes.

Access token and workspace

Send Authorization: Bearer <token> and X-Workspace-Id. The token acts with your own role.

Parameters

Parameters
FieldTypeDescription
triggerId (path)requiredstring

The trigger id.

Request body · application/json

Request body
FieldTypeDescription
graceMinutesinteger

Examples

javascript
import { createNexraClient, unwrap } from "@amakora/nexra-sdk";

const nexra = createNexraClient(); // NEXRA_TOKEN and NEXRA_WORKSPACE_ID
const result = unwrap(
  await nexra.POST("/api/console/connect/triggers/{triggerId}/rotate", {
    params: { path: { triggerId: "trigger_id" } },
    body: {},
  }),
);

Response · 201

Success.

Response fields
FieldTypeDescription
triggerIdrequiredstring
flowIdrequiredstring
kindrequiredstring
namerequiredstring
statusrequiredstring
environmentrequired"sandbox" | "production"

sandbox is Test mode; production is live.

urlrequiredstring

Where senders post events: /api/connect/triggers/{publicId}.

secretLast4requiredstring | null
secretRotatedAtrequiredstring | null

ISO 8601 date and time.

previousSecretValidUntilrequiredstring | null

ISO 8601 date and time.

maxBodyBytesrequiredinteger
maxDeliveriesPerMinuterequiredinteger
timestampToleranceSecondsrequiredinteger
inputRetentionDaysrequiredinteger
verificationrequiredstring
lastDeliveryAtrequiredstring | null

ISO 8601 date and time.

disabledAtrequiredstring | null

ISO 8601 date and time.

createdAtrequiredstring

ISO 8601 date and time.

secretstring

The signing secret (nxwhsec_...). Shown once, only when Nexra made it. Store it safely.

secretShownOncerequiredboolean

Errors: 400, 401, 403, 404, 429, 500. Error shape

POST/api/console/connect/triggers/{triggerId}/register

Register a trigger with the provider

For triggers with automatic setup: asks the provider to start sending events.

Access token and workspace

Send Authorization: Bearer <token> and X-Workspace-Id. The token acts with your own role.

Parameters

Parameters
FieldTypeDescription
triggerId (path)requiredstring

The trigger id.

Examples

javascript
import { createNexraClient, unwrap } from "@amakora/nexra-sdk";

const nexra = createNexraClient(); // NEXRA_TOKEN and NEXRA_WORKSPACE_ID
const result = unwrap(
  await nexra.POST("/api/console/connect/triggers/{triggerId}/register", {
    params: { path: { triggerId: "trigger_id" } },
  }),
);

Response · 201

Success.

Response fields
FieldTypeDescription
triggerIdrequiredstring
flowIdrequiredstring
kindrequiredstring
namerequiredstring
statusrequiredstring
environmentrequired"sandbox" | "production"

sandbox is Test mode; production is live.

urlrequiredstring

Where senders post events: /api/connect/triggers/{publicId}.

secretLast4requiredstring | null
secretRotatedAtrequiredstring | null

ISO 8601 date and time.

previousSecretValidUntilrequiredstring | null

ISO 8601 date and time.

maxBodyBytesrequiredinteger
maxDeliveriesPerMinuterequiredinteger
timestampToleranceSecondsrequiredinteger
inputRetentionDaysrequiredinteger
verificationrequiredstring
lastDeliveryAtrequiredstring | null

ISO 8601 date and time.

disabledAtrequiredstring | null

ISO 8601 date and time.

createdAtrequiredstring

ISO 8601 date and time.

Errors: 400, 401, 403, 404, 429, 500. Error shape

POST/api/console/connect/triggers/{triggerId}/disable

Turn a trigger off

Access token and workspace

Send Authorization: Bearer <token> and X-Workspace-Id. The token acts with your own role.

Parameters

Parameters
FieldTypeDescription
triggerId (path)requiredstring

The trigger id.

Examples

javascript
import { createNexraClient, unwrap } from "@amakora/nexra-sdk";

const nexra = createNexraClient(); // NEXRA_TOKEN and NEXRA_WORKSPACE_ID
const result = unwrap(
  await nexra.POST("/api/console/connect/triggers/{triggerId}/disable", {
    params: { path: { triggerId: "trigger_id" } },
  }),
);

Response · 201

Success.

Response fields
FieldTypeDescription
triggerIdrequiredstring
flowIdrequiredstring
kindrequiredstring
namerequiredstring
statusrequiredstring
environmentrequired"sandbox" | "production"

sandbox is Test mode; production is live.

urlrequiredstring

Where senders post events: /api/connect/triggers/{publicId}.

secretLast4requiredstring | null
secretRotatedAtrequiredstring | null

ISO 8601 date and time.

previousSecretValidUntilrequiredstring | null

ISO 8601 date and time.

maxBodyBytesrequiredinteger
maxDeliveriesPerMinuterequiredinteger
timestampToleranceSecondsrequiredinteger
inputRetentionDaysrequiredinteger
verificationrequiredstring
lastDeliveryAtrequiredstring | null

ISO 8601 date and time.

disabledAtrequiredstring | null

ISO 8601 date and time.

createdAtrequiredstring

ISO 8601 date and time.

Errors: 400, 401, 403, 404, 429, 500. Error shape

GET/api/console/connect/triggers/{triggerId}/deliveries

List a trigger's deliveries

The latest 100 requests the trigger received, accepted or refused.

Access token and workspace

Send Authorization: Bearer <token> and X-Workspace-Id. The token acts with your own role.

Parameters

Parameters
FieldTypeDescription
triggerId (path)requiredstring

The trigger id.

Examples

javascript
import { createNexraClient, unwrap } from "@amakora/nexra-sdk";

const nexra = createNexraClient(); // NEXRA_TOKEN and NEXRA_WORKSPACE_ID
const result = unwrap(
  await nexra.GET("/api/console/connect/triggers/{triggerId}/deliveries", {
    params: { path: { triggerId: "trigger_id" } },
  }),
);

Response · 200

Success.

A list, newest first, capped as described above.

Response fields
FieldTypeDescription
deliveryIdrequiredstring
receivedAtrequiredstring
statusrequiredstring
reasonCoderequiredstring | null
httpStatusrequiredinteger | null
eventIdrequiredstring | null
eventTyperequiredstring | null
payloadSha256requiredstring | null
sizeBytesrequiredinteger | null
recordCountrequiredinteger | null
executionIdrequiredstring | null

Errors: 400, 401, 403, 404, 429, 500. Error shape

GET/api/console/connect/connections/{connectionId}/trigger-events

List a connection's webhook events

Access token and workspace

Send Authorization: Bearer <token> and X-Workspace-Id. The token acts with your own role.

Parameters

Parameters
FieldTypeDescription
connectionId (path)requiredstring

The connection id.

Examples

javascript
import { createNexraClient, unwrap } from "@amakora/nexra-sdk";

const nexra = createNexraClient(); // NEXRA_TOKEN and NEXRA_WORKSPACE_ID
const result = unwrap(
  await nexra.GET("/api/console/connect/connections/{connectionId}/trigger-events", {
    params: { path: { connectionId: "connection_id" } },
  }),
);

Response · 200

Success.

Response fields
FieldTypeDescription
connectionIdrequiredstring
providerrequiredstring
availablerequiredboolean
eventsrequiredarray of object

Errors: 400, 401, 403, 404, 429, 500. Error shape

GET/api/console/connect/connections/{connectionId}/record-events

List a connection's pollable events

Access token and workspace

Send Authorization: Bearer <token> and X-Workspace-Id. The token acts with your own role.

Parameters

Parameters
FieldTypeDescription
connectionId (path)requiredstring

The connection id.

Examples

javascript
import { createNexraClient, unwrap } from "@amakora/nexra-sdk";

const nexra = createNexraClient(); // NEXRA_TOKEN and NEXRA_WORKSPACE_ID
const result = unwrap(
  await nexra.GET("/api/console/connect/connections/{connectionId}/record-events", {
    params: { path: { connectionId: "connection_id" } },
  }),
);

Response · 200

Success.

Response fields
FieldTypeDescription
connectionIdrequiredstring
providerrequiredstring
availablerequiredboolean
eventsrequiredarray of object

Errors: 400, 401, 403, 404, 429, 500. Error shape

GET/api/console/connect/flows/{flowId}/poll-triggers

List a flow's polling triggers

Access token and workspace

Send Authorization: Bearer <token> and X-Workspace-Id. The token acts with your own role.

Parameters

Parameters
FieldTypeDescription
flowId (path)requiredstring

The flow id.

Examples

javascript
import { createNexraClient, unwrap } from "@amakora/nexra-sdk";

const nexra = createNexraClient(); // NEXRA_TOKEN and NEXRA_WORKSPACE_ID
const result = unwrap(
  await nexra.GET("/api/console/connect/flows/{flowId}/poll-triggers", {
    params: { path: { flowId: "flow_id" } },
  }),
);

Response · 200

Success.

Response fields
FieldTypeDescription
pollTriggerIdrequiredstring
flowIdrequiredstring
kindrequired"poll"
namerequiredstring
connectionIdrequiredstring
operationKeyrequiredstring
intervalMinutesrequiredinteger
environmentrequired"sandbox" | "production"

sandbox is Test mode; production is live.

statusrequiredstring
staterequiredstring
stateMessagerequiredstring | null
lastCheckedAtrequiredstring | null

ISO 8601 date and time.

nextCheckAtrequiredstring | null

ISO 8601 date and time.

Errors: 400, 401, 403, 404, 429, 500. Error shape

POST/api/console/connect/flows/{flowId}/poll-triggers

Create a polling trigger

Checks the provider on a timetable and starts a run for new or changed records.

Access token and workspace

Send Authorization: Bearer <token> and X-Workspace-Id. The token acts with your own role.

Parameters

Parameters
FieldTypeDescription
flowId (path)requiredstring

The flow id.

Request body · application/json

Request body
FieldTypeDescription
connectionIdrequiredstring
eventstring

poll:<operationKey>, from the connection's pollable events.

operationKeystring

Instead of event.

intervalMinutes5 | 15 | 60 | 1440

Minutes between checks: 5, 15, 60 or 1440.

environment"sandbox" | "production"

Must match the connection.

inputobject
namestring

Examples

javascript
import { createNexraClient, unwrap } from "@amakora/nexra-sdk";

const nexra = createNexraClient(); // NEXRA_TOKEN and NEXRA_WORKSPACE_ID
const result = unwrap(
  await nexra.POST("/api/console/connect/flows/{flowId}/poll-triggers", {
    params: { path: { flowId: "flow_id" } },
    body: {
      "connectionId": "string"
    },
  }),
);

Response · 201

Success.

Response fields
FieldTypeDescription
pollTriggerIdrequiredstring
flowIdrequiredstring
kindrequired"poll"
namerequiredstring
connectionIdrequiredstring
operationKeyrequiredstring
intervalMinutesrequiredinteger
environmentrequired"sandbox" | "production"

sandbox is Test mode; production is live.

statusrequiredstring
staterequiredstring
stateMessagerequiredstring | null
lastCheckedAtrequiredstring | null

ISO 8601 date and time.

nextCheckAtrequiredstring | null

ISO 8601 date and time.

Errors: 400, 401, 403, 404, 429, 500. Error shape

GET/api/console/connect/poll-triggers/{pollTriggerId}

Get a polling trigger

Access token and workspace

Send Authorization: Bearer <token> and X-Workspace-Id. The token acts with your own role.

Parameters

Parameters
FieldTypeDescription
pollTriggerId (path)requiredstring

The poll trigger id.

Examples

javascript
import { createNexraClient, unwrap } from "@amakora/nexra-sdk";

const nexra = createNexraClient(); // NEXRA_TOKEN and NEXRA_WORKSPACE_ID
const result = unwrap(
  await nexra.GET("/api/console/connect/poll-triggers/{pollTriggerId}", {
    params: { path: { pollTriggerId: "pollTrigger_id" } },
  }),
);

Response · 200

Success.

Response fields
FieldTypeDescription
pollTriggerIdrequiredstring
flowIdrequiredstring
kindrequired"poll"
namerequiredstring
connectionIdrequiredstring
operationKeyrequiredstring
intervalMinutesrequiredinteger
environmentrequired"sandbox" | "production"

sandbox is Test mode; production is live.

statusrequiredstring
staterequiredstring
stateMessagerequiredstring | null
lastCheckedAtrequiredstring | null

ISO 8601 date and time.

nextCheckAtrequiredstring | null

ISO 8601 date and time.

Errors: 400, 401, 403, 404, 429, 500. Error shape

PATCH/api/console/connect/poll-triggers/{pollTriggerId}

Change how often a polling trigger checks

Access token and workspace

Send Authorization: Bearer <token> and X-Workspace-Id. The token acts with your own role.

Parameters

Parameters
FieldTypeDescription
pollTriggerId (path)requiredstring

The poll trigger id.

Request body · application/json

Request body
FieldTypeDescription
intervalMinutesrequired5 | 15 | 60 | 1440

Minutes between checks: 5, 15, 60 or 1440.

Examples

javascript
import { createNexraClient, unwrap } from "@amakora/nexra-sdk";

const nexra = createNexraClient(); // NEXRA_TOKEN and NEXRA_WORKSPACE_ID
const result = unwrap(
  await nexra.PATCH("/api/console/connect/poll-triggers/{pollTriggerId}", {
    params: { path: { pollTriggerId: "pollTrigger_id" } },
    body: {
      "intervalMinutes": 5
    },
  }),
);

Response · 200

Success.

Response fields
FieldTypeDescription
pollTriggerIdrequiredstring
flowIdrequiredstring
kindrequired"poll"
namerequiredstring
connectionIdrequiredstring
operationKeyrequiredstring
intervalMinutesrequiredinteger
environmentrequired"sandbox" | "production"

sandbox is Test mode; production is live.

statusrequiredstring
staterequiredstring
stateMessagerequiredstring | null
lastCheckedAtrequiredstring | null

ISO 8601 date and time.

nextCheckAtrequiredstring | null

ISO 8601 date and time.

Errors: 400, 401, 403, 404, 429, 500. Error shape

DELETE/api/console/connect/poll-triggers/{pollTriggerId}

Delete a polling trigger

Access token and workspace

Send Authorization: Bearer <token> and X-Workspace-Id. The token acts with your own role.

Parameters

Parameters
FieldTypeDescription
pollTriggerId (path)requiredstring

The poll trigger id.

Examples

javascript
import { createNexraClient, unwrap } from "@amakora/nexra-sdk";

const nexra = createNexraClient(); // NEXRA_TOKEN and NEXRA_WORKSPACE_ID
const result = unwrap(
  await nexra.DELETE("/api/console/connect/poll-triggers/{pollTriggerId}", {
    params: { path: { pollTriggerId: "pollTrigger_id" } },
  }),
);

Response · 200

Success.

Errors: 400, 401, 403, 404, 429, 500. Error shape

POST/api/console/connect/poll-triggers/{pollTriggerId}/pause

Pause a polling trigger

Access token and workspace

Send Authorization: Bearer <token> and X-Workspace-Id. The token acts with your own role.

Parameters

Parameters
FieldTypeDescription
pollTriggerId (path)requiredstring

The poll trigger id.

Examples

javascript
import { createNexraClient, unwrap } from "@amakora/nexra-sdk";

const nexra = createNexraClient(); // NEXRA_TOKEN and NEXRA_WORKSPACE_ID
const result = unwrap(
  await nexra.POST("/api/console/connect/poll-triggers/{pollTriggerId}/pause", {
    params: { path: { pollTriggerId: "pollTrigger_id" } },
  }),
);

Response · 201

Success.

Response fields
FieldTypeDescription
pollTriggerIdrequiredstring
flowIdrequiredstring
kindrequired"poll"
namerequiredstring
connectionIdrequiredstring
operationKeyrequiredstring
intervalMinutesrequiredinteger
environmentrequired"sandbox" | "production"

sandbox is Test mode; production is live.

statusrequiredstring
staterequiredstring
stateMessagerequiredstring | null
lastCheckedAtrequiredstring | null

ISO 8601 date and time.

nextCheckAtrequiredstring | null

ISO 8601 date and time.

Errors: 400, 401, 403, 404, 429, 500. Error shape

POST/api/console/connect/poll-triggers/{pollTriggerId}/resume

Resume a polling trigger

Access token and workspace

Send Authorization: Bearer <token> and X-Workspace-Id. The token acts with your own role.

Parameters

Parameters
FieldTypeDescription
pollTriggerId (path)requiredstring

The poll trigger id.

Examples

javascript
import { createNexraClient, unwrap } from "@amakora/nexra-sdk";

const nexra = createNexraClient(); // NEXRA_TOKEN and NEXRA_WORKSPACE_ID
const result = unwrap(
  await nexra.POST("/api/console/connect/poll-triggers/{pollTriggerId}/resume", {
    params: { path: { pollTriggerId: "pollTrigger_id" } },
  }),
);

Response · 201

Success.

Response fields
FieldTypeDescription
pollTriggerIdrequiredstring
flowIdrequiredstring
kindrequired"poll"
namerequiredstring
connectionIdrequiredstring
operationKeyrequiredstring
intervalMinutesrequiredinteger
environmentrequired"sandbox" | "production"

sandbox is Test mode; production is live.

statusrequiredstring
staterequiredstring
stateMessagerequiredstring | null
lastCheckedAtrequiredstring | null

ISO 8601 date and time.

nextCheckAtrequiredstring | null

ISO 8601 date and time.

Errors: 400, 401, 403, 404, 429, 500. Error shape

POST/api/console/connect/poll-triggers/{pollTriggerId}/check-now

Check now

Access token and workspace

Send Authorization: Bearer <token> and X-Workspace-Id. The token acts with your own role.

Parameters

Parameters
FieldTypeDescription
pollTriggerId (path)requiredstring

The poll trigger id.

Examples

javascript
import { createNexraClient, unwrap } from "@amakora/nexra-sdk";

const nexra = createNexraClient(); // NEXRA_TOKEN and NEXRA_WORKSPACE_ID
const result = unwrap(
  await nexra.POST("/api/console/connect/poll-triggers/{pollTriggerId}/check-now", {
    params: { path: { pollTriggerId: "pollTrigger_id" } },
  }),
);

Response · 201

Success.

Response fields
FieldTypeDescription
pollTriggerIdrequiredstring
flowIdrequiredstring
kindrequired"poll"
namerequiredstring
connectionIdrequiredstring
operationKeyrequiredstring
intervalMinutesrequiredinteger
environmentrequired"sandbox" | "production"

sandbox is Test mode; production is live.

statusrequiredstring
staterequiredstring
stateMessagerequiredstring | null
lastCheckedAtrequiredstring | null

ISO 8601 date and time.

nextCheckAtrequiredstring | null

ISO 8601 date and time.

Errors: 400, 401, 403, 404, 429, 500. Error shape

GET/api/console/connect/flows/{flowId}/inputs

List a flow's uploaded files

Access token and workspace

Send Authorization: Bearer <token> and X-Workspace-Id. The token acts with your own role.

Parameters

Parameters
FieldTypeDescription
flowId (path)requiredstring

The flow id.

Examples

javascript
import { createNexraClient, unwrap } from "@amakora/nexra-sdk";

const nexra = createNexraClient(); // NEXRA_TOKEN and NEXRA_WORKSPACE_ID
const result = unwrap(
  await nexra.GET("/api/console/connect/flows/{flowId}/inputs", {
    params: { path: { flowId: "flow_id" } },
  }),
);

Response · 200

Success.

A list, newest first, capped as described above.

Response fields
FieldTypeDescription
inputIdrequiredstring
flowIdrequiredstring
formatrequiredstring
fileNamerequiredstring | null
sizeBytesrequiredinteger
sha256requiredstring
recordCountrequiredinteger
executionIdrequiredstring | null
createdAtrequiredstring

ISO 8601 date and time.

expiresAtrequiredstring | null

ISO 8601 date and time.

Errors: 400, 401, 403, 404, 429, 500. Error shape

POST/api/console/connect/flows/{flowId}/inputs

Upload a file for a flow

Send the raw file as the request body with Content-Type: text/csv or application/json. Then start a run with the returned inputId. Records that do not match the flow's input answer 422.

Access token and workspace

Send Authorization: Bearer <token> and X-Workspace-Id. The token acts with your own role.

Parameters

Parameters
FieldTypeDescription
flowId (path)requiredstring

The flow id.

fileName (query)string

The original file name, for display.

environment (query)"sandbox" | "production"

sandbox is Test mode; production is live.

Request body · text/csv

See the description above.

Examples

javascript
import { createNexraClient, unwrap } from "@amakora/nexra-sdk";

const nexra = createNexraClient(); // NEXRA_TOKEN and NEXRA_WORKSPACE_ID
const result = unwrap(
  await nexra.POST("/api/console/connect/flows/{flowId}/inputs", {
    params: { path: { flowId: "flow_id" } },
  }),
);

Response · 201

Success.

Response fields
FieldTypeDescription
inputIdrequiredstring
flowIdrequiredstring
formatrequiredstring
fileNamerequiredstring | null
sizeBytesrequiredinteger
sha256requiredstring
recordCountrequiredinteger
executionIdrequiredstring | null
createdAtrequiredstring

ISO 8601 date and time.

expiresAtrequiredstring | null

ISO 8601 date and time.

Errors: 400, 401, 403, 404, 429, 500. Error shape

POST/api/connect/triggers/{publicId}

Send an event to a webhook trigger

Public URL for senders. Sign the raw body: X-Nexra-Signature: v1=<hex HMAC-SHA256> over v1:<timestamp>:<eventId>:<raw body>, keyed with the trigger's secret. Each event id is used once; a repeat with the same body answers 200 with duplicate: true. Refusals answer { accepted: false, code }.

Signed with the trigger's secret

Send X-Nexra-Event-Id, X-Nexra-Timestamp and X-Nexra-Signature. No access token.

Parameters

Parameters
FieldTypeDescription
publicId (path)requiredstring

The trigger's public id from its url.

X-Nexra-Event-Id (header)requiredstring

Unique per event: 8 to 128 of A-Z a-z 0-9 . _ : -.

X-Nexra-Timestamp (header)requiredstring

Unix seconds when you signed.

Request body · application/json

See the description above.

Examples

curl
curl -X POST "https://api.nexra.amakoragroup.com/api/connect/triggers/public_id" \
  -H "Content-Type: application/json" \
  -d '{}'

Response · 200

Accepted by a provider-scheme trigger, or a repeat of an event already received (duplicate: true).

Errors: 400, 401, 404, 413, 429, 500. Error shape

Lifecycle

Pause, resume, suspend, delete and restore integrations, flows and connections.

DELETE/api/console/connect/integrations/{integrationId}

Delete an integration

Moves the integration to Recently deleted. It can be restored until purgeAfter.

Access token and workspace

Send Authorization: Bearer <token> and X-Workspace-Id. The token acts with your own role.

Parameters

Parameters
FieldTypeDescription
integrationId (path)requiredstring

The integration id.

Request body · application/json

Request body
FieldTypeDescription
confirmationstring

The item's name, typed to confirm. Required when the item has live flows.

Examples

javascript
import { createNexraClient, unwrap } from "@amakora/nexra-sdk";

const nexra = createNexraClient(); // NEXRA_TOKEN and NEXRA_WORKSPACE_ID
const result = unwrap(
  await nexra.DELETE("/api/console/connect/integrations/{integrationId}", {
    params: { path: { integrationId: "integration_id" } },
    body: {},
  }),
);

Response · 200

Success.

Response fields
FieldTypeDescription
deletedrequiredtrue
namerequiredstring
purgeAfterrequiredstring

When the item is removed for good. Restore it before then.

retentionDaysrequiredinteger

Errors: 400, 401, 403, 404, 429, 500. Error shape

GET/api/console/connect/lifecycle/permissions

What your role can do

Access token and workspace

Send Authorization: Bearer <token> and X-Workspace-Id. The token acts with your own role.

Examples

javascript
import { createNexraClient, unwrap } from "@amakora/nexra-sdk";

const nexra = createNexraClient(); // NEXRA_TOKEN and NEXRA_WORKSPACE_ID
const result = unwrap(
  await nexra.GET("/api/console/connect/lifecycle/permissions"),
);

Response · 200

Success.

Response fields
FieldTypeDescription
pauserequiredboolean
suspendrequiredboolean
deleterequiredboolean
restorerequiredboolean
editrequiredboolean
rolerequiredstring

Errors: 400, 401, 403, 404, 429, 500. Error shape

GET/api/console/connect/recently-deleted

List recently deleted items

Integrations and flows deleted within the retention period, which can still be restored.

Access token and workspace

Send Authorization: Bearer <token> and X-Workspace-Id. The token acts with your own role.

Examples

javascript
import { createNexraClient, unwrap } from "@amakora/nexra-sdk";

const nexra = createNexraClient(); // NEXRA_TOKEN and NEXRA_WORKSPACE_ID
const result = unwrap(
  await nexra.GET("/api/console/connect/recently-deleted"),
);

Response · 200

Success.

Response fields
FieldTypeDescription
retentionDaysrequiredinteger
canRestorerequiredboolean
integrationsrequiredarray of object
flowsrequiredarray of object

Errors: 400, 401, 403, 404, 429, 500. Error shape

POST/api/console/connect/integrations/{integrationId}/pause

Pause an integration

Stops new runs of every flow in the integration until it is resumed.

Access token and workspace

Send Authorization: Bearer <token> and X-Workspace-Id. The token acts with your own role.

Parameters

Parameters
FieldTypeDescription
integrationId (path)requiredstring

The integration id.

Examples

javascript
import { createNexraClient, unwrap } from "@amakora/nexra-sdk";

const nexra = createNexraClient(); // NEXRA_TOKEN and NEXRA_WORKSPACE_ID
const result = unwrap(
  await nexra.POST("/api/console/connect/integrations/{integrationId}/pause", {
    params: { path: { integrationId: "integration_id" } },
  }),
);

Response · 201

Success.

Response fields
FieldTypeDescription
idrequiredstring
projectIdrequiredstring
namerequiredstring
slugrequiredstring
descriptionrequiredstring | null
statusrequiredstring

Stored status, for example draft, active or archived.

businessOwnerUserIdrequiredstring | null
technicalOwnerUserIdrequiredstring | null
createdAtrequiredstring

ISO 8601 date and time.

updatedAtrequiredstring

ISO 8601 date and time.

archivedAtrequiredstring | null

ISO 8601 date and time.

pausedAtrequiredstring | null

ISO 8601 date and time.

suspendedAtrequiredstring | null

ISO 8601 date and time.

deletedAtrequiredstring | null

ISO 8601 date and time.

lifecycleobject
flowsarray of object

Errors: 400, 401, 403, 404, 429, 500. Error shape

POST/api/console/connect/integrations/{integrationId}/resume

Resume an integration

Access token and workspace

Send Authorization: Bearer <token> and X-Workspace-Id. The token acts with your own role.

Parameters

Parameters
FieldTypeDescription
integrationId (path)requiredstring

The integration id.

Examples

javascript
import { createNexraClient, unwrap } from "@amakora/nexra-sdk";

const nexra = createNexraClient(); // NEXRA_TOKEN and NEXRA_WORKSPACE_ID
const result = unwrap(
  await nexra.POST("/api/console/connect/integrations/{integrationId}/resume", {
    params: { path: { integrationId: "integration_id" } },
  }),
);

Response · 201

Success.

Response fields
FieldTypeDescription
idrequiredstring
projectIdrequiredstring
namerequiredstring
slugrequiredstring
descriptionrequiredstring | null
statusrequiredstring

Stored status, for example draft, active or archived.

businessOwnerUserIdrequiredstring | null
technicalOwnerUserIdrequiredstring | null
createdAtrequiredstring

ISO 8601 date and time.

updatedAtrequiredstring

ISO 8601 date and time.

archivedAtrequiredstring | null

ISO 8601 date and time.

pausedAtrequiredstring | null

ISO 8601 date and time.

suspendedAtrequiredstring | null

ISO 8601 date and time.

deletedAtrequiredstring | null

ISO 8601 date and time.

lifecycleobject
flowsarray of object

Errors: 400, 401, 403, 404, 429, 500. Error shape

POST/api/console/connect/integrations/{integrationId}/suspend

Suspend an integration

A stronger stop than pausing, for incidents. Lifting it needs the integration's name typed to confirm.

Access token and workspace

Send Authorization: Bearer <token> and X-Workspace-Id. The token acts with your own role.

Parameters

Parameters
FieldTypeDescription
integrationId (path)requiredstring

The integration id.

Request body · application/json

Request body
FieldTypeDescription
reasonrequiredstring

Why it is suspended. Kept in the audit trail.

Examples

javascript
import { createNexraClient, unwrap } from "@amakora/nexra-sdk";

const nexra = createNexraClient(); // NEXRA_TOKEN and NEXRA_WORKSPACE_ID
const result = unwrap(
  await nexra.POST("/api/console/connect/integrations/{integrationId}/suspend", {
    params: { path: { integrationId: "integration_id" } },
    body: {
      "reason": "string"
    },
  }),
);

Response · 201

Success.

Response fields
FieldTypeDescription
idrequiredstring
projectIdrequiredstring
namerequiredstring
slugrequiredstring
descriptionrequiredstring | null
statusrequiredstring

Stored status, for example draft, active or archived.

businessOwnerUserIdrequiredstring | null
technicalOwnerUserIdrequiredstring | null
createdAtrequiredstring

ISO 8601 date and time.

updatedAtrequiredstring

ISO 8601 date and time.

archivedAtrequiredstring | null

ISO 8601 date and time.

pausedAtrequiredstring | null

ISO 8601 date and time.

suspendedAtrequiredstring | null

ISO 8601 date and time.

deletedAtrequiredstring | null

ISO 8601 date and time.

lifecycleobject
flowsarray of object

Errors: 400, 401, 403, 404, 429, 500. Error shape

POST/api/console/connect/integrations/{integrationId}/lift-suspension

Lift an integration's suspension

Access token and workspace

Send Authorization: Bearer <token> and X-Workspace-Id. The token acts with your own role.

Parameters

Parameters
FieldTypeDescription
integrationId (path)requiredstring

The integration id.

Request body · application/json

Request body
FieldTypeDescription
confirmationrequiredstring

The item's name, typed to confirm.

Examples

javascript
import { createNexraClient, unwrap } from "@amakora/nexra-sdk";

const nexra = createNexraClient(); // NEXRA_TOKEN and NEXRA_WORKSPACE_ID
const result = unwrap(
  await nexra.POST("/api/console/connect/integrations/{integrationId}/lift-suspension", {
    params: { path: { integrationId: "integration_id" } },
    body: {
      "confirmation": "string"
    },
  }),
);

Response · 201

Success.

Response fields
FieldTypeDescription
idrequiredstring
projectIdrequiredstring
namerequiredstring
slugrequiredstring
descriptionrequiredstring | null
statusrequiredstring

Stored status, for example draft, active or archived.

businessOwnerUserIdrequiredstring | null
technicalOwnerUserIdrequiredstring | null
createdAtrequiredstring

ISO 8601 date and time.

updatedAtrequiredstring

ISO 8601 date and time.

archivedAtrequiredstring | null

ISO 8601 date and time.

pausedAtrequiredstring | null

ISO 8601 date and time.

suspendedAtrequiredstring | null

ISO 8601 date and time.

deletedAtrequiredstring | null

ISO 8601 date and time.

lifecycleobject
flowsarray of object

Errors: 400, 401, 403, 404, 429, 500. Error shape

POST/api/console/connect/integrations/{integrationId}/restore

Restore a deleted integration

Access token and workspace

Send Authorization: Bearer <token> and X-Workspace-Id. The token acts with your own role.

Parameters

Parameters
FieldTypeDescription
integrationId (path)requiredstring

The integration id.

Examples

javascript
import { createNexraClient, unwrap } from "@amakora/nexra-sdk";

const nexra = createNexraClient(); // NEXRA_TOKEN and NEXRA_WORKSPACE_ID
const result = unwrap(
  await nexra.POST("/api/console/connect/integrations/{integrationId}/restore", {
    params: { path: { integrationId: "integration_id" } },
  }),
);

Response · 201

Success.

Response fields
FieldTypeDescription
idrequiredstring
projectIdrequiredstring
namerequiredstring
slugrequiredstring
descriptionrequiredstring | null
statusrequiredstring

Stored status, for example draft, active or archived.

businessOwnerUserIdrequiredstring | null
technicalOwnerUserIdrequiredstring | null
createdAtrequiredstring

ISO 8601 date and time.

updatedAtrequiredstring

ISO 8601 date and time.

archivedAtrequiredstring | null

ISO 8601 date and time.

pausedAtrequiredstring | null

ISO 8601 date and time.

suspendedAtrequiredstring | null

ISO 8601 date and time.

deletedAtrequiredstring | null

ISO 8601 date and time.

lifecycleobject
flowsarray of object

Errors: 400, 401, 403, 404, 429, 500. Error shape

POST/api/console/connect/flows/{flowId}/pause

Pause a flow

Access token and workspace

Send Authorization: Bearer <token> and X-Workspace-Id. The token acts with your own role.

Parameters

Parameters
FieldTypeDescription
flowId (path)requiredstring

The flow id.

Examples

javascript
import { createNexraClient, unwrap } from "@amakora/nexra-sdk";

const nexra = createNexraClient(); // NEXRA_TOKEN and NEXRA_WORKSPACE_ID
const result = unwrap(
  await nexra.POST("/api/console/connect/flows/{flowId}/pause", {
    params: { path: { flowId: "flow_id" } },
  }),
);

Response · 201

Success.

Response fields
FieldTypeDescription
idrequiredstring
integrationIdrequiredstring
namerequiredstring
slugrequiredstring
descriptionrequiredstring | null
statusrequiredstring
activeVersionIdrequiredstring | null

The published version runs use.

ownerUserIdrequiredstring | null
createdAtrequiredstring

ISO 8601 date and time.

updatedAtrequiredstring

ISO 8601 date and time.

pausedAtrequiredstring | null

ISO 8601 date and time.

deletedAtrequiredstring | null

ISO 8601 date and time.

versionsarray of object
lifecycleobject

Errors: 400, 401, 403, 404, 429, 500. Error shape

POST/api/console/connect/flows/{flowId}/resume

Resume a flow

Access token and workspace

Send Authorization: Bearer <token> and X-Workspace-Id. The token acts with your own role.

Parameters

Parameters
FieldTypeDescription
flowId (path)requiredstring

The flow id.

Examples

javascript
import { createNexraClient, unwrap } from "@amakora/nexra-sdk";

const nexra = createNexraClient(); // NEXRA_TOKEN and NEXRA_WORKSPACE_ID
const result = unwrap(
  await nexra.POST("/api/console/connect/flows/{flowId}/resume", {
    params: { path: { flowId: "flow_id" } },
  }),
);

Response · 201

Success.

Response fields
FieldTypeDescription
idrequiredstring
integrationIdrequiredstring
namerequiredstring
slugrequiredstring
descriptionrequiredstring | null
statusrequiredstring
activeVersionIdrequiredstring | null

The published version runs use.

ownerUserIdrequiredstring | null
createdAtrequiredstring

ISO 8601 date and time.

updatedAtrequiredstring

ISO 8601 date and time.

pausedAtrequiredstring | null

ISO 8601 date and time.

deletedAtrequiredstring | null

ISO 8601 date and time.

versionsarray of object
lifecycleobject

Errors: 400, 401, 403, 404, 429, 500. Error shape

DELETE/api/console/connect/flows/{flowId}

Delete a flow

Access token and workspace

Send Authorization: Bearer <token> and X-Workspace-Id. The token acts with your own role.

Parameters

Parameters
FieldTypeDescription
flowId (path)requiredstring

The flow id.

Request body · application/json

Request body
FieldTypeDescription
confirmationstring

The item's name, typed to confirm. Required when the item has live flows.

Examples

javascript
import { createNexraClient, unwrap } from "@amakora/nexra-sdk";

const nexra = createNexraClient(); // NEXRA_TOKEN and NEXRA_WORKSPACE_ID
const result = unwrap(
  await nexra.DELETE("/api/console/connect/flows/{flowId}", {
    params: { path: { flowId: "flow_id" } },
    body: {},
  }),
);

Response · 200

Success.

Response fields
FieldTypeDescription
deletedrequiredtrue
namerequiredstring
purgeAfterrequiredstring

When the item is removed for good. Restore it before then.

retentionDaysrequiredinteger

Errors: 400, 401, 403, 404, 429, 500. Error shape

POST/api/console/connect/flows/{flowId}/restore

Restore a deleted flow

Access token and workspace

Send Authorization: Bearer <token> and X-Workspace-Id. The token acts with your own role.

Parameters

Parameters
FieldTypeDescription
flowId (path)requiredstring

The flow id.

Examples

javascript
import { createNexraClient, unwrap } from "@amakora/nexra-sdk";

const nexra = createNexraClient(); // NEXRA_TOKEN and NEXRA_WORKSPACE_ID
const result = unwrap(
  await nexra.POST("/api/console/connect/flows/{flowId}/restore", {
    params: { path: { flowId: "flow_id" } },
  }),
);

Response · 201

Success.

Response fields
FieldTypeDescription
idrequiredstring
integrationIdrequiredstring
namerequiredstring
slugrequiredstring
descriptionrequiredstring | null
statusrequiredstring
activeVersionIdrequiredstring | null

The published version runs use.

ownerUserIdrequiredstring | null
createdAtrequiredstring

ISO 8601 date and time.

updatedAtrequiredstring

ISO 8601 date and time.

pausedAtrequiredstring | null

ISO 8601 date and time.

deletedAtrequiredstring | null

ISO 8601 date and time.

versionsarray of object
lifecycleobject

Errors: 400, 401, 403, 404, 429, 500. Error shape

GET/api/console/connect/connections/{connectionId}/lifecycle

Get a connection's suspension state

Access token and workspace

Send Authorization: Bearer <token> and X-Workspace-Id. The token acts with your own role.

Parameters

Parameters
FieldTypeDescription
connectionId (path)requiredstring

The connection id.

Examples

javascript
import { createNexraClient, unwrap } from "@amakora/nexra-sdk";

const nexra = createNexraClient(); // NEXRA_TOKEN and NEXRA_WORKSPACE_ID
const result = unwrap(
  await nexra.GET("/api/console/connect/connections/{connectionId}/lifecycle", {
    params: { path: { connectionId: "connection_id" } },
  }),
);

Response · 200

Success.

Response fields
FieldTypeDescription
suspendedrequiredboolean
suspendedAtrequiredstring | null

ISO 8601 date and time.

suspendedByrequiredobject | null
suspensionReasonrequiredstring | null
summaryrequiredstring | null
canrequiredobject

Errors: 400, 401, 403, 404, 429, 500. Error shape

POST/api/console/connect/connections/{connectionId}/suspend

Suspend a connection

Stops every flow from using this connection until the suspension is lifted.

Access token and workspace

Send Authorization: Bearer <token> and X-Workspace-Id. The token acts with your own role.

Parameters

Parameters
FieldTypeDescription
connectionId (path)requiredstring

The connection id.

Request body · application/json

Request body
FieldTypeDescription
reasonrequiredstring

Why it is suspended. Kept in the audit trail.

Examples

javascript
import { createNexraClient, unwrap } from "@amakora/nexra-sdk";

const nexra = createNexraClient(); // NEXRA_TOKEN and NEXRA_WORKSPACE_ID
const result = unwrap(
  await nexra.POST("/api/console/connect/connections/{connectionId}/suspend", {
    params: { path: { connectionId: "connection_id" } },
    body: {
      "reason": "string"
    },
  }),
);

Response · 201

Success.

Response fields
FieldTypeDescription
suspendedrequiredboolean
suspendedAtrequiredstring | null

ISO 8601 date and time.

suspendedByrequiredobject | null
suspensionReasonrequiredstring | null
summaryrequiredstring | null
canrequiredobject

Errors: 400, 401, 403, 404, 429, 500. Error shape

POST/api/console/connect/connections/{connectionId}/lift-suspension

Lift a connection's suspension

Access token and workspace

Send Authorization: Bearer <token> and X-Workspace-Id. The token acts with your own role.

Parameters

Parameters
FieldTypeDescription
connectionId (path)requiredstring

The connection id.

Request body · application/json

Request body
FieldTypeDescription
confirmationrequiredstring

The item's name, typed to confirm.

Examples

javascript
import { createNexraClient, unwrap } from "@amakora/nexra-sdk";

const nexra = createNexraClient(); // NEXRA_TOKEN and NEXRA_WORKSPACE_ID
const result = unwrap(
  await nexra.POST("/api/console/connect/connections/{connectionId}/lift-suspension", {
    params: { path: { connectionId: "connection_id" } },
    body: {
      "confirmation": "string"
    },
  }),
);

Response · 201

Success.

Response fields
FieldTypeDescription
suspendedrequiredboolean
suspendedAtrequiredstring | null

ISO 8601 date and time.

suspendedByrequiredobject | null
suspensionReasonrequiredstring | null
summaryrequiredstring | null
canrequiredobject

Errors: 400, 401, 403, 404, 429, 500. Error shape

Reconciliation

Compare two sources of records, match them and review the items that need a person.

GET/api/console/connect/reconciliation-options

List what can be reconciled

Access token and workspace

Send Authorization: Bearer <token> and X-Workspace-Id. The token acts with your own role.

Parameters

Parameters
FieldTypeDescription
environment (query)"sandbox" | "production"

sandbox is Test mode; production is live.

Examples

javascript
import { createNexraClient, unwrap } from "@amakora/nexra-sdk";

const nexra = createNexraClient(); // NEXRA_TOKEN and NEXRA_WORKSPACE_ID
const result = unwrap(
  await nexra.GET("/api/console/connect/reconciliation-options"),
);

Response · 200

Success.

Response fields
FieldTypeDescription
environmentrequiredstring
appsrequiredarray of object

Errors: 400, 401, 403, 404, 429, 500. Error shape

GET/api/console/connect/reconciliation-templates

List reconciliation templates

Access token and workspace

Send Authorization: Bearer <token> and X-Workspace-Id. The token acts with your own role.

Examples

javascript
import { createNexraClient, unwrap } from "@amakora/nexra-sdk";

const nexra = createNexraClient(); // NEXRA_TOKEN and NEXRA_WORKSPACE_ID
const result = unwrap(
  await nexra.GET("/api/console/connect/reconciliation-templates"),
);

Response · 200

Success.

Response fields
FieldTypeDescription
templatesrequiredarray of object

Errors: 400, 401, 403, 404, 429, 500. Error shape

GET/api/console/connect/reconciliations

List reconciliations

Access token and workspace

Send Authorization: Bearer <token> and X-Workspace-Id. The token acts with your own role.

Parameters

Parameters
FieldTypeDescription
environment (query)"sandbox" | "production"

sandbox is Test mode; production is live.

Examples

javascript
import { createNexraClient, unwrap } from "@amakora/nexra-sdk";

const nexra = createNexraClient(); // NEXRA_TOKEN and NEXRA_WORKSPACE_ID
const result = unwrap(
  await nexra.GET("/api/console/connect/reconciliations"),
);

Response · 200

Success.

A list, newest first, capped as described above.

Response fields
FieldTypeDescription
reconciliationsrequiredarray of object

Errors: 400, 401, 403, 404, 429, 500. Error shape

POST/api/console/connect/reconciliations

Create a reconciliation

Access token and workspace

Send Authorization: Bearer <token> and X-Workspace-Id. The token acts with your own role.

Request body · application/json

Request body
FieldTypeDescription
namerequiredstring
environment"sandbox" | "production"

sandbox is Test mode; production is live.

sourcerequiredobject
targetrequiredobject
rulesobject
scheduleobject
timezonestring
lookbackDaysinteger
descriptionstring
templateKeystring
ownerIdstring

Examples

javascript
import { createNexraClient, unwrap } from "@amakora/nexra-sdk";

const nexra = createNexraClient(); // NEXRA_TOKEN and NEXRA_WORKSPACE_ID
const result = unwrap(
  await nexra.POST("/api/console/connect/reconciliations", {
    body: {
      "name": "string",
      "source": {
        "kind": "string",
        "recordTypes": [
          "string"
        ]
      },
      "target": {
        "kind": "string",
        "recordTypes": [
          "string"
        ]
      }
    },
  }),
);

Response · 201

Success.

Response fields
FieldTypeDescription
reconciliationrequiredobject

Errors: 400, 401, 403, 404, 429, 500. Error shape

GET/api/console/connect/reconciliations/{id}

Get a reconciliation

Access token and workspace

Send Authorization: Bearer <token> and X-Workspace-Id. The token acts with your own role.

Parameters

Parameters
FieldTypeDescription
id (path)requiredstring

The reconciliation id.

Examples

javascript
import { createNexraClient, unwrap } from "@amakora/nexra-sdk";

const nexra = createNexraClient(); // NEXRA_TOKEN and NEXRA_WORKSPACE_ID
const result = unwrap(
  await nexra.GET("/api/console/connect/reconciliations/{id}", {
    params: { path: { id: "id_id" } },
  }),
);

Response · 200

Success.

Response fields
FieldTypeDescription
reconciliationrequiredobject
runsrequiredarray of object

Errors: 400, 401, 403, 404, 429, 500. Error shape

PATCH/api/console/connect/reconciliations/{id}

Update a reconciliation

Access token and workspace

Send Authorization: Bearer <token> and X-Workspace-Id. The token acts with your own role.

Parameters

Parameters
FieldTypeDescription
id (path)requiredstring

The reconciliation id.

Request body · application/json

Request body
FieldTypeDescription
namestring
descriptionstring
rulesobject
sourceRecordTypesarray of string
targetRecordTypesarray of string
scheduleobject
timezonestring
ownerIdstring
status"active" | "paused"

Examples

javascript
import { createNexraClient, unwrap } from "@amakora/nexra-sdk";

const nexra = createNexraClient(); // NEXRA_TOKEN and NEXRA_WORKSPACE_ID
const result = unwrap(
  await nexra.PATCH("/api/console/connect/reconciliations/{id}", {
    params: { path: { id: "id_id" } },
    body: {},
  }),
);

Response · 200

Success.

Response fields
FieldTypeDescription
reconciliationrequiredobject

Errors: 400, 401, 403, 404, 429, 500. Error shape

POST/api/console/connect/reconciliations/{id}/run

Run a reconciliation now

Access token and workspace

Send Authorization: Bearer <token> and X-Workspace-Id. The token acts with your own role.

Parameters

Parameters
FieldTypeDescription
id (path)requiredstring

The reconciliation id.

Examples

javascript
import { createNexraClient, unwrap } from "@amakora/nexra-sdk";

const nexra = createNexraClient(); // NEXRA_TOKEN and NEXRA_WORKSPACE_ID
const result = unwrap(
  await nexra.POST("/api/console/connect/reconciliations/{id}/run", {
    params: { path: { id: "id_id" } },
  }),
);

Response · 201

Success.

Response fields
FieldTypeDescription
runrequiredobject

Errors: 400, 401, 403, 404, 429, 500. Error shape

GET/api/console/connect/reconciliations/{id}/runs

List a reconciliation's runs

Access token and workspace

Send Authorization: Bearer <token> and X-Workspace-Id. The token acts with your own role.

Parameters

Parameters
FieldTypeDescription
id (path)requiredstring

The reconciliation id.

Examples

javascript
import { createNexraClient, unwrap } from "@amakora/nexra-sdk";

const nexra = createNexraClient(); // NEXRA_TOKEN and NEXRA_WORKSPACE_ID
const result = unwrap(
  await nexra.GET("/api/console/connect/reconciliations/{id}/runs", {
    params: { path: { id: "id_id" } },
  }),
);

Response · 200

Success.

A list, newest first, capped as described above.

Response fields
FieldTypeDescription
runsrequiredarray of object

Errors: 400, 401, 403, 404, 429, 500. Error shape

GET/api/console/connect/reconciliations/{id}/candidates

Search records to match by hand

Access token and workspace

Send Authorization: Bearer <token> and X-Workspace-Id. The token acts with your own role.

Parameters

Parameters
FieldTypeDescription
id (path)requiredstring

The reconciliation id.

side (query)"source" | "target"
search (query)string

Text to look for, up to 100 characters.

limit (query)integer

Up to 200. Default 50.

Examples

javascript
import { createNexraClient, unwrap } from "@amakora/nexra-sdk";

const nexra = createNexraClient(); // NEXRA_TOKEN and NEXRA_WORKSPACE_ID
const result = unwrap(
  await nexra.GET("/api/console/connect/reconciliations/{id}/candidates", {
    params: { path: { id: "id_id" } },
  }),
);

Response · 200

Success.

Response fields
FieldTypeDescription
siderequiredstring
recordsrequiredarray of object

Errors: 400, 401, 403, 404, 429, 500. Error shape

POST/api/console/connect/reconciliations/{id}/uploads

Upload records as CSV

For a side that is an upload, such as a bank statement. Send the CSV text as content in a JSON body.

Access token and workspace

Send Authorization: Bearer <token> and X-Workspace-Id. The token acts with your own role.

Parameters

Parameters
FieldTypeDescription
id (path)requiredstring

The reconciliation id.

Request body · application/json

Request body
FieldTypeDescription
contentrequiredstring

The CSV text.

side"source" | "target"
recordTypestring
currencystring
dateOrder"day_first" | "month_first"
columnsobject

Which CSV column holds date, amount, reference and so on.

Examples

javascript
import { createNexraClient, unwrap } from "@amakora/nexra-sdk";

const nexra = createNexraClient(); // NEXRA_TOKEN and NEXRA_WORKSPACE_ID
const result = unwrap(
  await nexra.POST("/api/console/connect/reconciliations/{id}/uploads", {
    params: { path: { id: "id_id" } },
    body: {
      "content": "string"
    },
  }),
);

Response · 201

Success.

Response fields
FieldTypeDescription
rowCountrequiredinteger
addedrequiredinteger
alreadyUploadedrequiredinteger
problemsrequiredarray of object
messagerequiredstring

Errors: 400, 401, 403, 404, 429, 500. Error shape

GET/api/console/connect/reconciliation-runs/{runId}

Get a reconciliation run

Access token and workspace

Send Authorization: Bearer <token> and X-Workspace-Id. The token acts with your own role.

Parameters

Parameters
FieldTypeDescription
runId (path)requiredstring

The run id.

status (query)string

Only lines with this status.

limit (query)integer

How many to return, up to 500. Default 100.

offset (query)integer

How many to skip.

Examples

javascript
import { createNexraClient, unwrap } from "@amakora/nexra-sdk";

const nexra = createNexraClient(); // NEXRA_TOKEN and NEXRA_WORKSPACE_ID
const result = unwrap(
  await nexra.GET("/api/console/connect/reconciliation-runs/{runId}", {
    params: { path: { runId: "run_id" } },
  }),
);

Response · 200

Success.

Response fields
FieldTypeDescription
runrequiredobject
totalrequiredinteger
linesrequiredarray of object

Errors: 400, 401, 403, 404, 429, 500. Error shape

GET/api/console/connect/reconciliation-review

List items to review

Access token and workspace

Send Authorization: Bearer <token> and X-Workspace-Id. The token acts with your own role.

Parameters

Parameters
FieldTypeDescription
status (query)string

open (default), pending, done or all.

reconciliationId (query)string

Only this reconciliation.

environment (query)"sandbox" | "production"

sandbox is Test mode; production is live.

limit (query)integer

How many to return, up to 200. Default 50.

offset (query)integer

How many to skip.

Examples

javascript
import { createNexraClient, unwrap } from "@amakora/nexra-sdk";

const nexra = createNexraClient(); // NEXRA_TOKEN and NEXRA_WORKSPACE_ID
const result = unwrap(
  await nexra.GET("/api/console/connect/reconciliation-review"),
);

Response · 200

Success.

Response fields
FieldTypeDescription
totalrequiredinteger
itemsrequiredarray of object

Errors: 400, 401, 403, 404, 429, 500. Error shape

GET/api/console/connect/reconciliation-review/{itemId}

Get an item to review

Access token and workspace

Send Authorization: Bearer <token> and X-Workspace-Id. The token acts with your own role.

Parameters

Parameters
FieldTypeDescription
itemId (path)requiredstring

The item id.

Examples

javascript
import { createNexraClient, unwrap } from "@amakora/nexra-sdk";

const nexra = createNexraClient(); // NEXRA_TOKEN and NEXRA_WORKSPACE_ID
const result = unwrap(
  await nexra.GET("/api/console/connect/reconciliation-review/{itemId}", {
    params: { path: { itemId: "item_id" } },
  }),
);

Response · 200

Success.

Response fields
FieldTypeDescription
itemrequiredobject
actionsrequiredobject

Errors: 400, 401, 403, 404, 429, 500. Error shape

POST/api/console/connect/reconciliation-review/{itemId}/accept

Accept the suggested match

Access token and workspace

Send Authorization: Bearer <token> and X-Workspace-Id. The token acts with your own role.

Parameters

Parameters
FieldTypeDescription
itemId (path)requiredstring

The item id.

Request body · application/json

Request body
FieldTypeDescription
notestring
chosenExternalIdstring

When several records could match, the one to match (one of the suggestion's externalIds). Required for those items.

Examples

javascript
import { createNexraClient, unwrap } from "@amakora/nexra-sdk";

const nexra = createNexraClient(); // NEXRA_TOKEN and NEXRA_WORKSPACE_ID
const result = unwrap(
  await nexra.POST("/api/console/connect/reconciliation-review/{itemId}/accept", {
    params: { path: { itemId: "item_id" } },
    body: {},
  }),
);

Response · 201

Success.

Response fields
FieldTypeDescription
matchIdrequiredstring
explanationrequiredstring | null
itemrequiredobject

Errors: 400, 401, 403, 404, 429, 500. Error shape

POST/api/console/connect/reconciliation-review/{itemId}/match

Match records by hand

Access token and workspace

Send Authorization: Bearer <token> and X-Workspace-Id. The token acts with your own role.

Parameters

Parameters
FieldTypeDescription
itemId (path)requiredstring

The item id.

Request body · application/json

Request body
FieldTypeDescription
sourceExternalIdsrequiredarray of string
targetExternalIdsrequiredarray of string
notestring

Examples

javascript
import { createNexraClient, unwrap } from "@amakora/nexra-sdk";

const nexra = createNexraClient(); // NEXRA_TOKEN and NEXRA_WORKSPACE_ID
const result = unwrap(
  await nexra.POST("/api/console/connect/reconciliation-review/{itemId}/match", {
    params: { path: { itemId: "item_id" } },
    body: {
      "sourceExternalIds": [
        "string"
      ],
      "targetExternalIds": [
        "string"
      ]
    },
  }),
);

Response · 201

Success.

Response fields
FieldTypeDescription
matchIdrequiredstring
explanationrequiredstring | null
itemrequiredobject

Errors: 400, 401, 403, 404, 429, 500. Error shape

POST/api/console/connect/reconciliation-review/{itemId}/explain

Mark an item explained

Access token and workspace

Send Authorization: Bearer <token> and X-Workspace-Id. The token acts with your own role.

Parameters

Parameters
FieldTypeDescription
itemId (path)requiredstring

The item id.

Request body · application/json

Request body
FieldTypeDescription
category"known_fee" | "timing" | "not_from_this_provider" | "duplicate" | "rounding" | "other"
notestring

Required (3 or more characters) when the category is other.

Examples

javascript
import { createNexraClient, unwrap } from "@amakora/nexra-sdk";

const nexra = createNexraClient(); // NEXRA_TOKEN and NEXRA_WORKSPACE_ID
const result = unwrap(
  await nexra.POST("/api/console/connect/reconciliation-review/{itemId}/explain", {
    params: { path: { itemId: "item_id" } },
    body: {},
  }),
);

Response · 201

Success.

Response fields
FieldTypeDescription
itemrequiredobject

Errors: 400, 401, 403, 404, 429, 500. Error shape

POST/api/console/connect/reconciliation-review/{itemId}/reopen

Reopen an item

Access token and workspace

Send Authorization: Bearer <token> and X-Workspace-Id. The token acts with your own role.

Parameters

Parameters
FieldTypeDescription
itemId (path)requiredstring

The item id.

Examples

javascript
import { createNexraClient, unwrap } from "@amakora/nexra-sdk";

const nexra = createNexraClient(); // NEXRA_TOKEN and NEXRA_WORKSPACE_ID
const result = unwrap(
  await nexra.POST("/api/console/connect/reconciliation-review/{itemId}/reopen", {
    params: { path: { itemId: "item_id" } },
  }),
);

Response · 201

Success.

Response fields
FieldTypeDescription
itemrequiredobject

Errors: 400, 401, 403, 404, 429, 500. Error shape

POST/api/console/connect/reconciliation-review/{itemId}/adjustment

Propose an adjustment

Proposes a payment, fee or refund entry to fix a difference. It goes through approval before anything is written.

Access token and workspace

Send Authorization: Bearer <token> and X-Workspace-Id. The token acts with your own role.

Parameters

Parameters
FieldTypeDescription
itemId (path)requiredstring

The item id.

Request body · application/json

Request body
FieldTypeDescription
kindrequired"record_payment" | "record_fee" | "record_refund" | "record_fx_difference"
valuesrequiredobject
reasonrequiredstring

Examples

javascript
import { createNexraClient, unwrap } from "@amakora/nexra-sdk";

const nexra = createNexraClient(); // NEXRA_TOKEN and NEXRA_WORKSPACE_ID
const result = unwrap(
  await nexra.POST("/api/console/connect/reconciliation-review/{itemId}/adjustment", {
    params: { path: { itemId: "item_id" } },
    body: {
      "kind": "record_payment",
      "values": {},
      "reason": "string"
    },
  }),
);

Response · 201

Success.

Response fields
FieldTypeDescription
statusrequiredstring
actionIdrequiredstring | null
summaryrequiredstring | null
messagerequiredstring

Errors: 400, 401, 403, 404, 429, 500. Error shape

POST/api/console/connect/reconciliation-matches/{matchId}/undo

Undo a match

Access token and workspace

Send Authorization: Bearer <token> and X-Workspace-Id. The token acts with your own role.

Parameters

Parameters
FieldTypeDescription
matchId (path)requiredstring

The match id.

Examples

javascript
import { createNexraClient, unwrap } from "@amakora/nexra-sdk";

const nexra = createNexraClient(); // NEXRA_TOKEN and NEXRA_WORKSPACE_ID
const result = unwrap(
  await nexra.POST("/api/console/connect/reconciliation-matches/{matchId}/undo", {
    params: { path: { matchId: "match_id" } },
  }),
);

Response · 201

Success.

Response fields
FieldTypeDescription
matchIdrequiredstring
statusrequired"undone"

Errors: 400, 401, 403, 404, 429, 500. Error shape

Event webhooks

Receive signed events about your workspace on your own HTTPS endpoints. See the webhooks section for every event payload.

GET/api/console/connect/event-webhooks/catalogue

List the events you can receive

Every event with a plain label, description and sample payload, grouped. The webhooks section of this document has each payload's schema.

Access token and workspace

Send Authorization: Bearer <token> and X-Workspace-Id. The token acts with your own role.

Examples

javascript
import { createNexraClient, unwrap } from "@amakora/nexra-sdk";

const nexra = createNexraClient(); // NEXRA_TOKEN and NEXRA_WORKSPACE_ID
const result = unwrap(
  await nexra.GET("/api/console/connect/event-webhooks/catalogue"),
);

Response · 200

Success.

Response fields
FieldTypeDescription
versionrequiredstring
groupsrequiredarray of object

Errors: 400, 401, 403, 404, 429, 500. Error shape

GET/api/console/connect/event-webhooks

List event endpoints

Access token and workspace

Send Authorization: Bearer <token> and X-Workspace-Id. The token acts with your own role.

Examples

javascript
import { createNexraClient, unwrap } from "@amakora/nexra-sdk";

const nexra = createNexraClient(); // NEXRA_TOKEN and NEXRA_WORKSPACE_ID
const result = unwrap(
  await nexra.GET("/api/console/connect/event-webhooks"),
);

Response · 200

Success.

Response fields
FieldTypeDescription
idrequiredstring
namerequiredstring
urlrequiredstring
statusrequired"active" | "disabled"
moderequired"test" | "live"
healthStatusrequiredstring
consecutiveFailuresrequiredinteger
lastSuccessAtrequiredstring | null

ISO 8601 date and time.

lastFailureAtrequiredstring | null

ISO 8601 date and time.

secretPrefixrequiredstring
secretLast4requiredstring
eventTypesrequiredarray of string
createdAtrequiredstring

ISO 8601 date and time.

updatedAtrequiredstring

ISO 8601 date and time.

Errors: 400, 401, 403, 404, 429, 500. Error shape

POST/api/console/connect/event-webhooks

Add an event endpoint

Returns the signing secret once. Test endpoints receive Test mode events; live endpoints receive live events.

Access token and workspace

Send Authorization: Bearer <token> and X-Workspace-Id. The token acts with your own role.

Request body · application/json

Request body
FieldTypeDescription
namerequiredstring
urlrequiredstring

An https URL on the public internet.

mode"test" | "live"
eventTypesrequiredarray of string

Event types from the catalogue, for example flow.run.failed.

Examples

javascript
import { createNexraClient, unwrap } from "@amakora/nexra-sdk";

const nexra = createNexraClient(); // NEXRA_TOKEN and NEXRA_WORKSPACE_ID
const result = unwrap(
  await nexra.POST("/api/console/connect/event-webhooks", {
    body: {
      "name": "string",
      "url": "string",
      "eventTypes": [
        "string"
      ]
    },
  }),
);

Response · 201

Success.

Response fields
FieldTypeDescription
endpointrequiredobject
secretrequiredstring

The signing secret. Shown once; store it safely.

revealPolicyrequiredstring

Errors: 400, 401, 403, 404, 429, 500. Error shape

PATCH/api/console/connect/event-webhooks/{endpointId}

Change an event endpoint

Access token and workspace

Send Authorization: Bearer <token> and X-Workspace-Id. The token acts with your own role.

Parameters

Parameters
FieldTypeDescription
endpointId (path)requiredstring

The endpoint id.

Request body · application/json

Request body
FieldTypeDescription
namestring
urlstring
status"active" | "disabled"
eventTypesarray of string

Event types from the catalogue, for example flow.run.failed.

Examples

javascript
import { createNexraClient, unwrap } from "@amakora/nexra-sdk";

const nexra = createNexraClient(); // NEXRA_TOKEN and NEXRA_WORKSPACE_ID
const result = unwrap(
  await nexra.PATCH("/api/console/connect/event-webhooks/{endpointId}", {
    params: { path: { endpointId: "endpoint_id" } },
    body: {},
  }),
);

Response · 200

Success.

Response fields
FieldTypeDescription
idrequiredstring
namerequiredstring
urlrequiredstring
statusrequired"active" | "disabled"
moderequired"test" | "live"
healthStatusrequiredstring
consecutiveFailuresrequiredinteger
lastSuccessAtrequiredstring | null

ISO 8601 date and time.

lastFailureAtrequiredstring | null

ISO 8601 date and time.

secretPrefixrequiredstring
secretLast4requiredstring
eventTypesrequiredarray of string
createdAtrequiredstring

ISO 8601 date and time.

updatedAtrequiredstring

ISO 8601 date and time.

Errors: 400, 401, 403, 404, 429, 500. Error shape

DELETE/api/console/connect/event-webhooks/{endpointId}

Turn an event endpoint off

Queued deliveries to it are cancelled.

Access token and workspace

Send Authorization: Bearer <token> and X-Workspace-Id. The token acts with your own role.

Parameters

Parameters
FieldTypeDescription
endpointId (path)requiredstring

The endpoint id.

Examples

javascript
import { createNexraClient, unwrap } from "@amakora/nexra-sdk";

const nexra = createNexraClient(); // NEXRA_TOKEN and NEXRA_WORKSPACE_ID
const result = unwrap(
  await nexra.DELETE("/api/console/connect/event-webhooks/{endpointId}", {
    params: { path: { endpointId: "endpoint_id" } },
  }),
);

Response · 200

Success.

Response fields
FieldTypeDescription
idrequiredstring
statusrequired"disabled"

Errors: 400, 401, 403, 404, 429, 500. Error shape

POST/api/console/connect/event-webhooks/{endpointId}/secret/rotate

Rotate an endpoint's signing secret

Returns the new secret once. The old secret stops working at once.

Access token and workspace

Send Authorization: Bearer <token> and X-Workspace-Id. The token acts with your own role.

Parameters

Parameters
FieldTypeDescription
endpointId (path)requiredstring

The endpoint id.

Examples

javascript
import { createNexraClient, unwrap } from "@amakora/nexra-sdk";

const nexra = createNexraClient(); // NEXRA_TOKEN and NEXRA_WORKSPACE_ID
const result = unwrap(
  await nexra.POST("/api/console/connect/event-webhooks/{endpointId}/secret/rotate", {
    params: { path: { endpointId: "endpoint_id" } },
  }),
);

Response · 201

Success.

Response fields
FieldTypeDescription
endpointrequiredobject
secretrequiredstring

The signing secret. Shown once; store it safely.

revealPolicyrequiredstring

Errors: 400, 401, 403, 404, 429, 500. Error shape

POST/api/console/connect/event-webhooks/{endpointId}/test

Send a test event

Sends sandbox.test to the endpoint.

Access token and workspace

Send Authorization: Bearer <token> and X-Workspace-Id. The token acts with your own role.

Parameters

Parameters
FieldTypeDescription
endpointId (path)requiredstring

The endpoint id.

Examples

javascript
import { createNexraClient, unwrap } from "@amakora/nexra-sdk";

const nexra = createNexraClient(); // NEXRA_TOKEN and NEXRA_WORKSPACE_ID
const result = unwrap(
  await nexra.POST("/api/console/connect/event-webhooks/{endpointId}/test", {
    params: { path: { endpointId: "endpoint_id" } },
  }),
);

Response · 201

Success.

Response fields
FieldTypeDescription
idrequiredstring
endpointIdrequiredstring
eventIdrequiredstring
eventTyperequiredstring
eventLabelrequiredstring
moderequired"test" | "live"
statusrequiredstring
statusLabelrequiredstring
canResendrequiredboolean
attemptrequiredinteger
maxAttemptsrequiredinteger
nextAttemptAtrequiredstring | null

ISO 8601 date and time.

completedAtrequiredstring | null

ISO 8601 date and time.

statusCoderequiredinteger | null
attemptsrequiredarray of object

Errors: 400, 401, 403, 404, 429, 500. Error shape

GET/api/console/connect/event-webhooks/{endpointId}/deliveries

List an endpoint's deliveries

The newest 100 deliveries with every attempt.

Access token and workspace

Send Authorization: Bearer <token> and X-Workspace-Id. The token acts with your own role.

Parameters

Parameters
FieldTypeDescription
endpointId (path)requiredstring

The endpoint id.

status (query)string

Only deliveries with this status, for example failed.

Examples

javascript
import { createNexraClient, unwrap } from "@amakora/nexra-sdk";

const nexra = createNexraClient(); // NEXRA_TOKEN and NEXRA_WORKSPACE_ID
const result = unwrap(
  await nexra.GET("/api/console/connect/event-webhooks/{endpointId}/deliveries", {
    params: { path: { endpointId: "endpoint_id" } },
  }),
);

Response · 200

Success.

A list, newest first, capped as described above.

Response fields
FieldTypeDescription
idrequiredstring
endpointIdrequiredstring
eventIdrequiredstring
eventTyperequiredstring
eventLabelrequiredstring
moderequired"test" | "live"
statusrequiredstring
statusLabelrequiredstring
canResendrequiredboolean
attemptrequiredinteger
maxAttemptsrequiredinteger
nextAttemptAtrequiredstring | null

ISO 8601 date and time.

completedAtrequiredstring | null

ISO 8601 date and time.

statusCoderequiredinteger | null
attemptsrequiredarray of object

Errors: 400, 401, 403, 404, 429, 500. Error shape

POST/api/console/connect/event-webhooks/{endpointId}/deliveries/{deliveryId}/resend

Send a delivery again

Same event id, with a fresh set of attempts.

Access token and workspace

Send Authorization: Bearer <token> and X-Workspace-Id. The token acts with your own role.

Parameters

Parameters
FieldTypeDescription
endpointId (path)requiredstring

The endpoint id.

deliveryId (path)requiredstring

The delivery id.

Examples

javascript
import { createNexraClient, unwrap } from "@amakora/nexra-sdk";

const nexra = createNexraClient(); // NEXRA_TOKEN and NEXRA_WORKSPACE_ID
const result = unwrap(
  await nexra.POST("/api/console/connect/event-webhooks/{endpointId}/deliveries/{deliveryId}/resend", {
    params: { path: { endpointId: "endpoint_id", deliveryId: "delivery_id" } },
  }),
);

Response · 201

Success.

Response fields
FieldTypeDescription
idrequiredstring
endpointIdrequiredstring
eventIdrequiredstring
eventTyperequiredstring
eventLabelrequiredstring
moderequired"test" | "live"
statusrequiredstring
statusLabelrequiredstring
canResendrequiredboolean
attemptrequiredinteger
maxAttemptsrequiredinteger
nextAttemptAtrequiredstring | null

ISO 8601 date and time.

completedAtrequiredstring | null

ISO 8601 date and time.

statusCoderequiredinteger | null
attemptsrequiredarray of object

Errors: 400, 401, 403, 404, 429, 500. Error shape

Approvals

Read and decide approval requests raised by governed actions and releases.

GET/api/console/approvals

List approval requests

Newest first, up to 100. Approvers see every request; others see their own.

Access token and workspace

Send Authorization: Bearer <token> and X-Workspace-Id. The token acts with your own role.

Parameters

Parameters
FieldTypeDescription
status (query)string

For example pending, approved or rejected.

Examples

javascript
import { createNexraClient, unwrap } from "@amakora/nexra-sdk";

const nexra = createNexraClient(); // NEXRA_TOKEN and NEXRA_WORKSPACE_ID
const result = unwrap(
  await nexra.GET("/api/console/approvals"),
);

Response · 200

Success.

A list, newest first, capped as described above.

Response fields
FieldTypeDescription
idrequiredstring
actionrequiredstring
resourceTyperequiredstring

connector_action, mcp_tool or credential_action.

resourceIdrequiredstring | null
environmentrequiredstring | null
statusrequiredstring

pending, approved, rejected, expired, cancelled, executing, succeeded or failed.

requiredApprovalsrequiredinteger
requiredApproverRolerequiredstring | null
expiresAtrequiredstring | null

ISO 8601 date and time.

createdAtrequiredstring

ISO 8601 date and time.

updatedAtrequiredstring

ISO 8601 date and time.

Errors: 400, 401, 403, 404, 429, 500. Error shape

POST/api/console/approvals/{approvalId}/decision

Approve or reject a request

You cannot approve your own request.

Access token and workspace

Send Authorization: Bearer <token> and X-Workspace-Id. The token acts with your own role.

Parameters

Parameters
FieldTypeDescription
approvalId (path)requiredstring

The approval id.

Request body · application/json

Request body
FieldTypeDescription
decisionrequired"approved" | "rejected"
reasonrequiredstring

Examples

javascript
import { createNexraClient, unwrap } from "@amakora/nexra-sdk";

const nexra = createNexraClient(); // NEXRA_TOKEN and NEXRA_WORKSPACE_ID
const result = unwrap(
  await nexra.POST("/api/console/approvals/{approvalId}/decision", {
    params: { path: { approvalId: "approval_id" } },
    body: {
      "decision": "approved",
      "reason": "string"
    },
  }),
);

Response · 201

Success.

Response fields
FieldTypeDescription
idrequiredstring
actionrequiredstring
resourceTyperequiredstring

connector_action, mcp_tool or credential_action.

resourceIdrequiredstring | null
environmentrequiredstring | null
statusrequiredstring

pending, approved, rejected, expired, cancelled, executing, succeeded or failed.

requiredApprovalsrequiredinteger
requiredApproverRolerequiredstring | null
expiresAtrequiredstring | null

ISO 8601 date and time.

createdAtrequiredstring

ISO 8601 date and time.

updatedAtrequiredstring

ISO 8601 date and time.

Errors: 400, 401, 403, 404, 429, 500. Error shape

POST/api/console/approvals/{approvalId}/cancel

Cancel your own request

Access token and workspace

Send Authorization: Bearer <token> and X-Workspace-Id. The token acts with your own role.

Parameters

Parameters
FieldTypeDescription
approvalId (path)requiredstring

The approval id.

Request body · application/json

Request body
FieldTypeDescription
reasonstring

Examples

javascript
import { createNexraClient, unwrap } from "@amakora/nexra-sdk";

const nexra = createNexraClient(); // NEXRA_TOKEN and NEXRA_WORKSPACE_ID
const result = unwrap(
  await nexra.POST("/api/console/approvals/{approvalId}/cancel", {
    params: { path: { approvalId: "approval_id" } },
    body: {},
  }),
);

Response · 201

Success.

Response fields
FieldTypeDescription
idrequiredstring
actionrequiredstring
resourceTyperequiredstring

connector_action, mcp_tool or credential_action.

resourceIdrequiredstring | null
environmentrequiredstring | null
statusrequiredstring

pending, approved, rejected, expired, cancelled, executing, succeeded or failed.

requiredApprovalsrequiredinteger
requiredApproverRolerequiredstring | null
expiresAtrequiredstring | null

ISO 8601 date and time.

createdAtrequiredstring

ISO 8601 date and time.

updatedAtrequiredstring

ISO 8601 date and time.

Errors: 400, 401, 403, 404, 429, 500. Error shape

GET/api/console/connect/governance/approvals

List governed write approvals

Approvals for writes to connected systems that a policy holds for review.

Access token and workspace

Send Authorization: Bearer <token> and X-Workspace-Id. The token acts with your own role.

Parameters

Parameters
FieldTypeDescription
status (query)string

For example pending.

connectionId (query)string

Only this connection.

riskTier (query)string

R0 to R4.

q (query)string

Text to look for.

cursor (query)string

nextCursor from the previous page.

Examples

javascript
import { createNexraClient, unwrap } from "@amakora/nexra-sdk";

const nexra = createNexraClient(); // NEXRA_TOKEN and NEXRA_WORKSPACE_ID
const result = unwrap(
  await nexra.GET("/api/console/connect/governance/approvals"),
);

Response · 200

Success.

A page of items. Pass nextCursor back as cursor for the next page.

Response fields
FieldTypeDescription
itemsrequiredarray of object
nextCursorrequiredstring | null

Pass as cursor to get the next page. null on the last page.

Errors: 400, 401, 403, 404, 429, 500. Error shape

GET/api/console/connect/governance/approvals/{approvalId}

Get a governed write approval

What would be written, why it was held, and the binding.digest to send back with your decision.

Access token and workspace

Send Authorization: Bearer <token> and X-Workspace-Id. The token acts with your own role.

Parameters

Parameters
FieldTypeDescription
approvalId (path)requiredstring

The approval id.

Examples

javascript
import { createNexraClient, unwrap } from "@amakora/nexra-sdk";

const nexra = createNexraClient(); // NEXRA_TOKEN and NEXRA_WORKSPACE_ID
const result = unwrap(
  await nexra.GET("/api/console/connect/governance/approvals/{approvalId}", {
    params: { path: { approvalId: "approval_id" } },
  }),
);

Response · 200

Success.

Response fields
FieldTypeDescription
idrequiredstring
statusrequiredstring
requestedAtrequiredstring

ISO 8601 date and time.

expiresAtrequiredstring | null

ISO 8601 date and time.

actionrequiredobject
bindingrequiredobject

Send digest back as reviewedDigest when you decide.

canDeciderequiredboolean

Errors: 400, 401, 403, 404, 429, 500. Error shape

POST/api/console/connect/governance/approvals/{approvalId}/decision

Decide a governed write approval

reviewedDigest must equal the approval's binding.digest, so you decide exactly what you reviewed. A mismatch answers 409 approval_digest_mismatch.

Access token and workspace

Send Authorization: Bearer <token> and X-Workspace-Id. The token acts with your own role.

Parameters

Parameters
FieldTypeDescription
approvalId (path)requiredstring

The approval id.

Request body · application/json

Request body
FieldTypeDescription
decisionrequired"approve" | "reject"
reviewedDigestrequiredstring
notestring

Required (3 or more characters) to reject.

Examples

javascript
import { createNexraClient, unwrap } from "@amakora/nexra-sdk";

const nexra = createNexraClient(); // NEXRA_TOKEN and NEXRA_WORKSPACE_ID
const result = unwrap(
  await nexra.POST("/api/console/connect/governance/approvals/{approvalId}/decision", {
    params: { path: { approvalId: "approval_id" } },
    body: {
      "decision": "approve",
      "reviewedDigest": "string"
    },
  }),
);

Response · 201

Success.

Response fields
FieldTypeDescription
approvalrequiredobject
resumeobject

Errors: 400, 401, 403, 404, 429, 500. Error shape

Governance

Read governance policies, grants, evidence and measures.

GET/api/console/connect/governance/evidence

List governance evidence

The tamper-evident record of governed decisions and results, 50 per page.

Access token and workspace

Send Authorization: Bearer <token> and X-Workspace-Id. The token acts with your own role.

Parameters

Parameters
FieldTypeDescription
eventType (query)string

For example decision or result.

actionId (query)string

Only this action.

connectionId (query)string

Only this connection.

from (query)string

ISO date or time.

to (query)string

ISO date or time.

cursor (query)string

nextCursor from the previous page.

Examples

javascript
import { createNexraClient, unwrap } from "@amakora/nexra-sdk";

const nexra = createNexraClient(); // NEXRA_TOKEN and NEXRA_WORKSPACE_ID
const result = unwrap(
  await nexra.GET("/api/console/connect/governance/evidence"),
);

Response · 200

Success.

A page of items. Pass nextCursor back as cursor for the next page.

Response fields
FieldTypeDescription
itemsrequiredarray of object
nextCursorrequiredstring | null

Pass as cursor to get the next page. null on the last page.

Errors: 400, 401, 403, 404, 429, 500. Error shape

GET/api/console/connect/governance/evidence/verify

Verify the evidence chain

Access token and workspace

Send Authorization: Bearer <token> and X-Workspace-Id. The token acts with your own role.

Examples

javascript
import { createNexraClient, unwrap } from "@amakora/nexra-sdk";

const nexra = createNexraClient(); // NEXRA_TOKEN and NEXRA_WORKSPACE_ID
const result = unwrap(
  await nexra.GET("/api/console/connect/governance/evidence/verify"),
);

Response · 200

Success.

Response fields
FieldTypeDescription
validrequiredboolean
checkedrequiredinteger
brokenAtSequencerequiredinteger | null
verifiedAtrequiredstring

Errors: 400, 401, 403, 404, 429, 500. Error shape

GET/api/console/connect/governance/evidence/export

Export evidence

A JSON file of evidence entries with the hash chain, for auditors.

Access token and workspace

Send Authorization: Bearer <token> and X-Workspace-Id. The token acts with your own role.

Parameters

Parameters
FieldTypeDescription
from (query)string

ISO date or time.

to (query)string

ISO date or time.

Examples

javascript
import { createNexraClient, unwrap } from "@amakora/nexra-sdk";

const nexra = createNexraClient(); // NEXRA_TOKEN and NEXRA_WORKSPACE_ID
const result = unwrap(
  await nexra.GET("/api/console/connect/governance/evidence/export"),
);

Response · 200

Success.

Response fields
FieldTypeDescription
formatrequiredstring
exportedAtrequiredstring
entriesrequiredarray of object

Errors: 400, 401, 403, 404, 429, 500. Error shape

GET/api/console/connect/governance/measures

Get governance measures

Access token and workspace

Send Authorization: Bearer <token> and X-Workspace-Id. The token acts with your own role.

Parameters

Parameters
FieldTypeDescription
window (query)"7d" | "30d"

Examples

javascript
import { createNexraClient, unwrap } from "@amakora/nexra-sdk";

const nexra = createNexraClient(); // NEXRA_TOKEN and NEXRA_WORKSPACE_ID
const result = unwrap(
  await nexra.GET("/api/console/connect/governance/measures"),
);

Response · 200

Success.

Response fields
FieldTypeDescription
windowrequiredstring
writesrequiredobject
approvalsrequiredobject

Errors: 400, 401, 403, 404, 429, 500. Error shape

GET/api/console/connect/governance/actions/{actionId}/timeline

Get one action's timeline

Access token and workspace

Send Authorization: Bearer <token> and X-Workspace-Id. The token acts with your own role.

Parameters

Parameters
FieldTypeDescription
actionId (path)requiredstring

The action id.

Examples

javascript
import { createNexraClient, unwrap } from "@amakora/nexra-sdk";

const nexra = createNexraClient(); // NEXRA_TOKEN and NEXRA_WORKSPACE_ID
const result = unwrap(
  await nexra.GET("/api/console/connect/governance/actions/{actionId}/timeline", {
    params: { path: { actionId: "action_id" } },
  }),
);

Response · 200

Success.

Errors: 400, 401, 403, 404, 429, 500. Error shape

GET/api/console/connect/governance/policies

List policies

Access token and workspace

Send Authorization: Bearer <token> and X-Workspace-Id. The token acts with your own role.

Parameters

Parameters
FieldTypeDescription
connectionId (query)string

Only this connection.

limit (query)integer

Up to 500.

cursor (query)string

nextCursor from the previous page.

Examples

javascript
import { createNexraClient, unwrap } from "@amakora/nexra-sdk";

const nexra = createNexraClient(); // NEXRA_TOKEN and NEXRA_WORKSPACE_ID
const result = unwrap(
  await nexra.GET("/api/console/connect/governance/policies"),
);

Response · 200

Success.

A page of items. Pass nextCursor back as cursor for the next page.

Response fields
FieldTypeDescription
itemsrequiredarray of object
nextCursorrequiredstring | null

Pass as cursor to get the next page. null on the last page.

Errors: 400, 401, 403, 404, 429, 500. Error shape

GET/api/console/connect/governance/principals

List who can be granted access

Flows and app credentials that can be given write grants. No key material is returned.

Access token and workspace

Send Authorization: Bearer <token> and X-Workspace-Id. The token acts with your own role.

Parameters

Parameters
FieldTypeDescription
type (query)string

flow, mcp_credential or api_credential.

q (query)string

Text to look for.

limit (query)integer

Up to 500. Default 200.

cursor (query)string

nextCursor from the previous page.

Examples

javascript
import { createNexraClient, unwrap } from "@amakora/nexra-sdk";

const nexra = createNexraClient(); // NEXRA_TOKEN and NEXRA_WORKSPACE_ID
const result = unwrap(
  await nexra.GET("/api/console/connect/governance/principals"),
);

Response · 200

Success.

A page of items. Pass nextCursor back as cursor for the next page.

Response fields
FieldTypeDescription
itemsrequiredarray of object
nextCursorrequiredstring | null

Pass as cursor to get the next page. null on the last page.

Errors: 400, 401, 403, 404, 429, 500. Error shape

GET/api/console/connect/governance/grants

List access grants

Access token and workspace

Send Authorization: Bearer <token> and X-Workspace-Id. The token acts with your own role.

Parameters

Parameters
FieldTypeDescription
status (query)string

active, expired or revoked.

principalType (query)string

Only this kind of principal.

principalId (query)string

Only this principal.

connectionId (query)string

Only this connection.

limit (query)integer

Up to 500.

cursor (query)string

nextCursor from the previous page.

Examples

javascript
import { createNexraClient, unwrap } from "@amakora/nexra-sdk";

const nexra = createNexraClient(); // NEXRA_TOKEN and NEXRA_WORKSPACE_ID
const result = unwrap(
  await nexra.GET("/api/console/connect/governance/grants"),
);

Response · 200

Success.

A page of items. Pass nextCursor back as cursor for the next page.

Response fields
FieldTypeDescription
itemsrequiredarray of object
nextCursorrequiredstring | null

Pass as cursor to get the next page. null on the last page.

Errors: 400, 401, 403, 404, 429, 500. Error shape

GET/api/console/connect/governance/settings

Get governance settings

Access token and workspace

Send Authorization: Bearer <token> and X-Workspace-Id. The token acts with your own role.

Examples

javascript
import { createNexraClient, unwrap } from "@amakora/nexra-sdk";

const nexra = createNexraClient(); // NEXRA_TOKEN and NEXRA_WORKSPACE_ID
const result = unwrap(
  await nexra.GET("/api/console/connect/governance/settings"),
);

Response · 200

Success.

Response fields
FieldTypeDescription
requireGrantsForWritesrequiredboolean
singlePersonApprovalrequiredboolean

Errors: 400, 401, 403, 404, 429, 500. Error shape

POST/api/console/connect/governance/decisions/explain

Explain what a policy would decide

Says whether a write would be allowed, held for approval or denied, and why. Nothing is written.

Access token and workspace

Send Authorization: Bearer <token> and X-Workspace-Id. The token acts with your own role.

Request body · application/json

Request body
FieldTypeDescription
connectionIdrequiredstring
operationKeyrequiredstring
inputobject
principalTypestring
principalIdstring

Examples

javascript
import { createNexraClient, unwrap } from "@amakora/nexra-sdk";

const nexra = createNexraClient(); // NEXRA_TOKEN and NEXRA_WORKSPACE_ID
const result = unwrap(
  await nexra.POST("/api/console/connect/governance/decisions/explain", {
    body: {
      "connectionId": "string",
      "operationKey": "string"
    },
  }),
);

Response · 201

Success.

Response fields
FieldTypeDescription
decisionrequiredstring
rulerequiredstring | null
reasonrequiredstring

Errors: 400, 401, 403, 404, 429, 500. Error shape

Templates

Ready-made integrations you can install into a workspace.

GET/api/console/connect/templates

List templates

Access token and workspace

Send Authorization: Bearer <token> and X-Workspace-Id. The token acts with your own role.

Examples

javascript
import { createNexraClient, unwrap } from "@amakora/nexra-sdk";

const nexra = createNexraClient(); // NEXRA_TOKEN and NEXRA_WORKSPACE_ID
const result = unwrap(
  await nexra.GET("/api/console/connect/templates"),
);

Response · 200

Success.

Response fields
FieldTypeDescription
keyrequiredstring
namerequiredstring
descriptionrequiredstring
categoryrequiredstring
businessPurposerequiredstring | null
requiredConnectorsrequiredarray of string
statusrequiredstring
installablerequiredboolean

Errors: 400, 401, 403, 404, 429, 500. Error shape

GET/api/console/connect/templates/{templateKey}

Get a template

Access token and workspace

Send Authorization: Bearer <token> and X-Workspace-Id. The token acts with your own role.

Parameters

Parameters
FieldTypeDescription
templateKey (path)requiredstring

The template key.

Examples

javascript
import { createNexraClient, unwrap } from "@amakora/nexra-sdk";

const nexra = createNexraClient(); // NEXRA_TOKEN and NEXRA_WORKSPACE_ID
const result = unwrap(
  await nexra.GET("/api/console/connect/templates/{templateKey}", {
    params: { path: { templateKey: "templateKey_id" } },
  }),
);

Response · 200

Success.

Response fields
FieldTypeDescription
keyrequiredstring
namerequiredstring
descriptionrequiredstring
categoryrequiredstring
businessPurposerequiredstring | null
requiredConnectorsrequiredarray of string
statusrequiredstring
installablerequiredboolean

Errors: 400, 401, 403, 404, 429, 500. Error shape

POST/api/console/connect/templates/{templateKey}/install

Install a template

Creates an integration and its flows from the template.

Access token and workspace

Send Authorization: Bearer <token> and X-Workspace-Id. The token acts with your own role.

Parameters

Parameters
FieldTypeDescription
templateKey (path)requiredstring

The template key.

Request body · application/json

Request body
FieldTypeDescription
projectIdrequiredstring
namestring
choicesobject

For templates with choices: choice key to option.

connectionsobject

Connector key to the connection id to use.

Examples

javascript
import { createNexraClient, unwrap } from "@amakora/nexra-sdk";

const nexra = createNexraClient(); // NEXRA_TOKEN and NEXRA_WORKSPACE_ID
const result = unwrap(
  await nexra.POST("/api/console/connect/templates/{templateKey}/install", {
    params: { path: { templateKey: "templateKey_id" } },
    body: {
      "projectId": "string"
    },
  }),
);

Response · 201

Success.

Response fields
FieldTypeDescription
integrationrequiredobject
flowrequiredobject
flowVersionrequiredobject

Errors: 400, 401, 403, 404, 429, 500. Error shape

Catalogue

Public connector catalogue, service uptime and this API description. No sign-in needed.

GET/api/public/connect/connectors

List connectors

Every connector with its operations, authentication and limits. No sign-in needed.

No sign-in needed

Anyone can call this operation.

Examples

javascript
import { createNexraClient, unwrap } from "@amakora/nexra-sdk";

const nexra = createNexraClient();
const result = unwrap(
  await nexra.GET("/api/public/connect/connectors"),
);

Response · 200

Success.

Response fields
FieldTypeDescription
coveragerequiredobject
connectorsrequiredarray of object

Errors: 404, 429, 500. Error shape

GET/api/public/connect/connectors/{connectorKey}

Get a connector

No sign-in needed

Anyone can call this operation.

Parameters

Parameters
FieldTypeDescription
connectorKey (path)requiredstring

The connector key.

Examples

javascript
import { createNexraClient, unwrap } from "@amakora/nexra-sdk";

const nexra = createNexraClient();
const result = unwrap(
  await nexra.GET("/api/public/connect/connectors/{connectorKey}", {
    params: { path: { connectorKey: "connectorKey_id" } },
  }),
);

Response · 200

Success.

Response fields
FieldTypeDescription
keyrequiredstring
namerequiredstring
vendorrequiredstring | null
categoryrequiredstring
categoryLabelrequiredstring
summaryrequiredstring
statusrequiredstring
implementedrequiredboolean
authenticationobject
documentationUrlrequiredstring | null
limitationsrequiredarray of string
operationsrequiredarray of object

Errors: 404, 429, 500. Error shape

GET/api/public/connect/coverage

Get connector coverage

No sign-in needed

Anyone can call this operation.

Examples

javascript
import { createNexraClient, unwrap } from "@amakora/nexra-sdk";

const nexra = createNexraClient();
const result = unwrap(
  await nexra.GET("/api/public/connect/coverage"),
);

Response · 200

Success.

Errors: 404, 429, 500. Error shape

GET/api/public/openapi.json

Get this API description

This OpenAPI 3.1 document.

No sign-in needed

Anyone can call this operation.

Examples

javascript
import { createNexraClient, unwrap } from "@amakora/nexra-sdk";

const nexra = createNexraClient();
const result = unwrap(
  await nexra.GET("/api/public/openapi.json"),
);

Response · 200

Success.

Response fields
FieldTypeDescription
openapirequiredstring
inforequiredobject

Errors: 404, 429, 500. Error shape

GET/api/public/status/uptime

Get uptime history

Daily uptime for the last 90 days, measured by synthetic checks that run every minute outside the API. Only days with measurements are listed. No sign-in needed.

No sign-in needed

Anyone can call this operation.

Examples

javascript
import { createNexraClient, unwrap } from "@amakora/nexra-sdk";

const nexra = createNexraClient();
const result = unwrap(
  await nexra.GET("/api/public/status/uptime"),
);

Response · 200

Success.

Response fields
FieldTypeDescription
generatedAtrequiredstring
windowDaysrequiredinteger
daysMeasuredrequiredinteger
measuredFromrequiredstring | null
uptimePercentrequirednumber | null
methodrequiredstring
targetsrequiredarray of object
outagesrequiredarray of object
incidentsrequiredarray of object

Errors: 404, 429, 500. Error shape

MCP

The Model Context Protocol endpoint that exposes your published integrations as tools to AI agents.

POST/mcp

Send an MCP message

The MCP Streamable HTTP endpoint. Send one JSON-RPC 2.0 message per request: initialize, then tools/list and tools/call. Published integrations appear as tools. MCP clients discover sign-in from /.well-known/oauth-protected-resource/mcp.

MCP access token

An OAuth access token for the MCP endpoint. MCP clients get one through the sign-in metadata.

Parameters

Parameters
FieldTypeDescription
Mcp-Session-Id (header)string

The session id from the initialize answer. Required after initialising.

MCP-Protocol-Version (header)string

The MCP protocol version you negotiated.

Request body · application/json

Request body
FieldTypeDescription
jsonrpcrequired"2.0"
idstring | number
methodrequiredstring
paramsobject

Examples

curl
curl -X POST "https://api.nexra.amakoragroup.com/mcp" \
  -H "Authorization: Bearer $MCP_ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","method":"tools/list"}'

Response · 200

Success.

Response fields
FieldTypeDescription
jsonrpcrequired"2.0"
idrequiredstring | number | null | null
resultobject
errorobject

Errors: 400, 401, 429, 500. Error shape

DELETE/mcp

End an MCP session

MCP access token

An OAuth access token for the MCP endpoint. MCP clients get one through the sign-in metadata.

Parameters

Parameters
FieldTypeDescription
Mcp-Session-Id (header)requiredstring

The session to end.

Examples

curl
curl -X DELETE "https://api.nexra.amakoragroup.com/mcp" \
  -H "Authorization: Bearer $MCP_ACCESS_TOKEN"

Response · 204

Success.

Errors: 400, 401, 429, 500. Error shape

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

Get MCP sign-in metadata

OAuth protected-resource metadata (RFC 9728) for the MCP endpoint: which authorisation server issues tokens and which scopes exist.

No sign-in needed

Anyone can call this operation.

Examples

javascript
import { createNexraClient, unwrap } from "@amakora/nexra-sdk";

const nexra = createNexraClient();
const result = unwrap(
  await nexra.GET("/.well-known/oauth-protected-resource/mcp"),
);

Response · 200

Success.

Response fields
FieldTypeDescription
resourcerequiredstring
authorization_serversarray of string
scopes_supportedarray of string
bearer_methods_supportedarray of string

Errors: 404, 429, 500. Error shape

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

Get sign-in metadata

The same metadata at the default location.

No sign-in needed

Anyone can call this operation.

Examples

javascript
import { createNexraClient, unwrap } from "@amakora/nexra-sdk";

const nexra = createNexraClient();
const result = unwrap(
  await nexra.GET("/.well-known/oauth-protected-resource"),
);

Response · 200

Success.

Response fields
FieldTypeDescription
resourcerequiredstring
authorization_serversarray of string
scopes_supportedarray of string
bearer_methods_supportedarray of string

Errors: 404, 429, 500. Error shape

Events sent to your endpoints

Nexra posts these to the endpoints you add under Event webhooks. Each request is signed: check X-Amakora-Signature with the SDK's constructEvent, answer with any 2xx within 8 seconds, and de-duplicate on the event id.

flow.run.succeeded

A flow run finished successfully

Every record in the run went through. Group: Flow runs.

flow.run.succeeded data
FieldTypeDescription
runrequiredobject
flowrequiredobject
integrationrequiredobject
countsrequiredobject
reasonrequiredobject | null
linksrequiredobject
Example
{
  "id": "evt_3f9a1c2b7d4e5f60718293a4",
  "type": "flow.run.succeeded",
  "version": "2026-10-01",
  "createdAt": "2026-10-01T09:31:12.000Z",
  "mode": "test",
  "workspaceId": "cmworkspace01",
  "data": {
    "run": {
      "id": "cmexec01run",
      "status": "succeeded",
      "trigger": "schedule",
      "startedAt": "2026-10-01T09:30:00.000Z",
      "completedAt": "2026-10-01T09:31:12.000Z",
      "durationMs": 72000
    },
    "flow": {
      "id": "cmflow01orders",
      "name": "Shopify orders to Xero invoices"
    },
    "integration": {
      "id": "cmint01shop",
      "name": "Online shop to accounts"
    },
    "counts": {
      "received": 42,
      "succeeded": 42,
      "failed": 0,
      "skipped": 0
    },
    "reason": null,
    "links": {
      "run": "https://console.example/dashboard/connect/runs/cmexec01run"
    }
  }
}
flow.run.failed

A flow run failed

The run stopped without sending its records. The reason says why. Group: Flow runs.

flow.run.failed data
FieldTypeDescription
runrequiredobject
flowrequiredobject
integrationrequiredobject
countsrequiredobject
reasonrequiredobject | null
linksrequiredobject
Example
{
  "id": "evt_3f9a1c2b7d4e5f60718293a4",
  "type": "flow.run.failed",
  "version": "2026-10-01",
  "createdAt": "2026-10-01T09:31:12.000Z",
  "mode": "test",
  "workspaceId": "cmworkspace01",
  "data": {
    "run": {
      "id": "cmexec01run",
      "status": "failed",
      "trigger": "schedule",
      "startedAt": "2026-10-01T09:30:00.000Z",
      "completedAt": "2026-10-01T09:31:12.000Z",
      "durationMs": 72000
    },
    "flow": {
      "id": "cmflow01orders",
      "name": "Shopify orders to Xero invoices"
    },
    "integration": {
      "id": "cmint01shop",
      "name": "Online shop to accounts"
    },
    "counts": {
      "received": 42,
      "succeeded": 0,
      "failed": 42,
      "skipped": 0
    },
    "reason": {
      "code": "run_deadline_exceeded",
      "message": "The run reached its 60-minute time limit, so Nexra stopped it before sending more."
    },
    "links": {
      "run": "https://console.example/dashboard/connect/runs/cmexec01run"
    }
  }
}
flow.run.partially_succeeded

A flow run finished with some records needing attention

Most records went through; the rest are waiting for review. Group: Flow runs.

flow.run.partially_succeeded data
FieldTypeDescription
runrequiredobject
flowrequiredobject
integrationrequiredobject
countsrequiredobject
reasonrequiredobject | null
linksrequiredobject
Example
{
  "id": "evt_3f9a1c2b7d4e5f60718293a4",
  "type": "flow.run.partially_succeeded",
  "version": "2026-10-01",
  "createdAt": "2026-10-01T09:31:12.000Z",
  "mode": "test",
  "workspaceId": "cmworkspace01",
  "data": {
    "run": {
      "id": "cmexec01run",
      "status": "partially_succeeded",
      "trigger": "schedule",
      "startedAt": "2026-10-01T09:30:00.000Z",
      "completedAt": "2026-10-01T09:31:12.000Z",
      "durationMs": 72000
    },
    "flow": {
      "id": "cmflow01orders",
      "name": "Shopify orders to Xero invoices"
    },
    "integration": {
      "id": "cmint01shop",
      "name": "Online shop to accounts"
    },
    "counts": {
      "received": 42,
      "succeeded": 39,
      "failed": 3,
      "skipped": 0
    },
    "reason": null,
    "links": {
      "run": "https://console.example/dashboard/connect/runs/cmexec01run"
    }
  }
}
record.dead_lettered

A record needs attention

A record stopped at a step and is waiting in the review list. Group: Flow runs.

record.dead_lettered data
FieldTypeDescription
deadLetterrequiredobject
recordrequiredobject
runrequiredobject
flowrequiredobject
steprequiredobject | null
errorrequiredobject | null
linksrequiredobject
Example
{
  "id": "evt_3f9a1c2b7d4e5f60718293a4",
  "type": "record.dead_lettered",
  "version": "2026-10-01",
  "createdAt": "2026-10-01T09:31:12.000Z",
  "mode": "test",
  "workspaceId": "cmworkspace01",
  "data": {
    "deadLetter": {
      "id": "cmdl01",
      "status": "open"
    },
    "record": {
      "id": "cmrec01"
    },
    "run": {
      "id": "cmexec01run"
    },
    "flow": {
      "id": "cmflow01orders",
      "name": "Shopify orders to Xero invoices"
    },
    "step": {
      "id": "cmstep01",
      "name": "Create invoice"
    },
    "error": {
      "code": "validation_failed",
      "category": "validation",
      "retryable": false
    },
    "links": {
      "deadLetters": "https://console.example/dashboard/connect/dead-letter",
      "run": "https://console.example/dashboard/connect/runs/cmexec01run"
    }
  }
}
approval.requested

An approval was requested

A change is waiting for someone with the right role to approve it. Group: Approvals.

approval.requested data
FieldTypeDescription
approvalrequiredobject
requestedByrequiredobject | null
linksrequiredobject
Example
{
  "id": "evt_3f9a1c2b7d4e5f60718293a4",
  "type": "approval.requested",
  "version": "2026-10-01",
  "createdAt": "2026-10-01T09:31:12.000Z",
  "mode": "test",
  "workspaceId": "cmworkspace01",
  "data": {
    "approval": {
      "id": "approval_01",
      "action": "xero.invoices.create",
      "resourceType": "connector_action",
      "environment": "production",
      "requiredApprovals": 1,
      "status": "pending",
      "expiresAt": "2026-10-01T10:00:00.000Z"
    },
    "requestedBy": {
      "id": "cmuser01"
    },
    "links": {
      "approval": "https://console.example/dashboard/approvals"
    }
  }
}
approval.decided

An approval was decided

Someone approved or rejected a waiting change. Group: Approvals.

approval.decided data
FieldTypeDescription
approvalrequiredobject
decidedByrequiredobject | null
linksrequiredobject
Example
{
  "id": "evt_3f9a1c2b7d4e5f60718293a4",
  "type": "approval.decided",
  "version": "2026-10-01",
  "createdAt": "2026-10-01T09:31:12.000Z",
  "mode": "test",
  "workspaceId": "cmworkspace01",
  "data": {
    "approval": {
      "id": "approval_01",
      "action": "xero.invoices.create",
      "resourceType": "connector_action",
      "environment": "production",
      "requiredApprovals": 1,
      "status": "approved",
      "decidedAt": "2026-10-01T09:31:12.000Z"
    },
    "decidedBy": {
      "id": "cmuser02"
    },
    "links": {
      "approval": "https://console.example/dashboard/approvals"
    }
  }
}
connection.health_changed

A connection's health changed

A connection became healthy, or stopped working (for example it needs reconnecting). Group: App connections.

connection.health_changed data
FieldTypeDescription
connectionrequiredobject
previousStatusrequiredstring | null
statusrequiredstring
linksrequiredobject
Example
{
  "id": "evt_3f9a1c2b7d4e5f60718293a4",
  "type": "connection.health_changed",
  "version": "2026-10-01",
  "createdAt": "2026-10-01T09:31:12.000Z",
  "mode": "test",
  "workspaceId": "cmworkspace01",
  "data": {
    "connection": {
      "id": "cmconn01",
      "name": "Xero (accounts)",
      "provider": "xero"
    },
    "previousStatus": "healthy",
    "status": "needs_reconnect",
    "links": {
      "connection": "https://console.example/dashboard/connect/connections"
    }
  }
}
connection.live_check.failed

A live connection check failed

Nexra checked a connection against your real app and something did not work. Group: App connections.

connection.live_check.failed data
FieldTypeDescription
connectionrequiredobject
checkrequiredobject
linksrequiredobject
Example
{
  "id": "evt_3f9a1c2b7d4e5f60718293a4",
  "type": "connection.live_check.failed",
  "version": "2026-10-01",
  "createdAt": "2026-10-01T09:31:12.000Z",
  "mode": "test",
  "workspaceId": "cmworkspace01",
  "data": {
    "connection": {
      "id": "cmconn01",
      "name": "Xero (accounts)",
      "provider": "xero"
    },
    "check": {
      "id": "cmcheck01",
      "status": "failed",
      "failedChecks": 1,
      "totalChecks": 1,
      "reason": {
        "code": "permission",
        "message": "The app did not allow Nexra to read invoices."
      }
    },
    "links": {
      "connection": "https://console.example/dashboard/connect/connections"
    }
  }
}
integration.paused

An integration was paused

No new runs start until someone resumes it. Group: Integrations.

integration.paused data
FieldTypeDescription
integrationrequiredobject
actorrequiredobject | null
runsStoppedrequiredinteger
linksrequiredobject
Example
{
  "id": "evt_3f9a1c2b7d4e5f60718293a4",
  "type": "integration.paused",
  "version": "2026-10-01",
  "createdAt": "2026-10-01T09:31:12.000Z",
  "mode": "test",
  "workspaceId": "cmworkspace01",
  "data": {
    "integration": {
      "id": "cmint01shop",
      "name": "Online shop to accounts"
    },
    "actor": {
      "id": "cmuser01"
    },
    "runsStopped": 2,
    "links": {
      "integration": "https://console.example/dashboard/connect/integrations/cmint01shop"
    }
  }
}
integration.resumed

An integration was resumed

Its flows run again on their schedules and triggers. Group: Integrations.

integration.resumed data
FieldTypeDescription
integrationrequiredobject
actorrequiredobject | null
runsStoppedrequiredinteger
linksrequiredobject
Example
{
  "id": "evt_3f9a1c2b7d4e5f60718293a4",
  "type": "integration.resumed",
  "version": "2026-10-01",
  "createdAt": "2026-10-01T09:31:12.000Z",
  "mode": "test",
  "workspaceId": "cmworkspace01",
  "data": {
    "integration": {
      "id": "cmint01shop",
      "name": "Online shop to accounts"
    },
    "actor": {
      "id": "cmuser01"
    },
    "runsStopped": 0,
    "links": {
      "integration": "https://console.example/dashboard/connect/integrations/cmint01shop"
    }
  }
}
integration.suspended

An integration was suspended

Nothing runs until a workspace owner or admin lifts the suspension. Group: Integrations.

integration.suspended data
FieldTypeDescription
integrationrequiredobject
actorrequiredobject | null
runsStoppedrequiredinteger
linksrequiredobject
Example
{
  "id": "evt_3f9a1c2b7d4e5f60718293a4",
  "type": "integration.suspended",
  "version": "2026-10-01",
  "createdAt": "2026-10-01T09:31:12.000Z",
  "mode": "test",
  "workspaceId": "cmworkspace01",
  "data": {
    "integration": {
      "id": "cmint01shop",
      "name": "Online shop to accounts"
    },
    "actor": {
      "id": "cmuser01"
    },
    "runsStopped": 1,
    "links": {
      "integration": "https://console.example/dashboard/connect/integrations/cmint01shop"
    }
  }
}
integration.deleted

An integration was deleted

It stops running and can be restored for 30 days. Group: Integrations.

integration.deleted data
FieldTypeDescription
integrationrequiredobject
actorrequiredobject | null
runsStoppedrequiredinteger
linksrequiredobject
Example
{
  "id": "evt_3f9a1c2b7d4e5f60718293a4",
  "type": "integration.deleted",
  "version": "2026-10-01",
  "createdAt": "2026-10-01T09:31:12.000Z",
  "mode": "test",
  "workspaceId": "cmworkspace01",
  "data": {
    "integration": {
      "id": "cmint01shop",
      "name": "Online shop to accounts"
    },
    "actor": {
      "id": "cmuser01"
    },
    "runsStopped": 0,
    "links": {
      "integration": "https://console.example/dashboard/connect/recently-deleted"
    }
  }
}
reconciliation.run.completed

A reconciliation finished

Nexra compared the two sides and counted what matched and what needs review. Group: Reconciliation.

reconciliation.run.completed data
FieldTypeDescription
reconciliationrequiredobject
runrequiredobject
countsrequiredobject
linksrequiredobject
Example
{
  "id": "evt_3f9a1c2b7d4e5f60718293a4",
  "type": "reconciliation.run.completed",
  "version": "2026-10-01",
  "createdAt": "2026-10-01T09:31:12.000Z",
  "mode": "test",
  "workspaceId": "cmworkspace01",
  "data": {
    "reconciliation": {
      "id": "cmrecon01",
      "name": "Stripe payouts against Xero"
    },
    "run": {
      "id": "cmreconrun01",
      "status": "completed",
      "trigger": "schedule",
      "startedAt": "2026-10-01T09:30:00.000Z",
      "completedAt": "2026-10-01T09:31:12.000Z"
    },
    "counts": {
      "sourceRecords": 120,
      "targetRecords": 118,
      "matched": 116,
      "needsReview": 4
    },
    "links": {
      "run": "https://console.example/dashboard/connect/reconciliation/runs/cmreconrun01"
    }
  }
}
reconciliation.item.needs_review

A reconciliation item needs review

Something did not match and is waiting in the review list. Group: Reconciliation.

reconciliation.item.needs_review data
FieldTypeDescription
reconciliationrequiredobject
itemrequiredobject
runrequiredobject | null
linksrequiredobject
Example
{
  "id": "evt_3f9a1c2b7d4e5f60718293a4",
  "type": "reconciliation.item.needs_review",
  "version": "2026-10-01",
  "createdAt": "2026-10-01T09:31:12.000Z",
  "mode": "test",
  "workspaceId": "cmworkspace01",
  "data": {
    "reconciliation": {
      "id": "cmrecon01",
      "name": "Stripe payouts against Xero"
    },
    "item": {
      "id": "cmitem01",
      "kind": "unmatched_source",
      "status": "open"
    },
    "run": {
      "id": "cmreconrun01"
    },
    "links": {
      "review": "https://console.example/dashboard/connect/reconciliation/review/cmitem01"
    }
  }
}
go_live.completed

A flow went live

The flow now runs against your real (live) apps. Group: Going live.

go_live.completed data
FieldTypeDescription
flowrequiredobject
integrationrequiredobject
revisionrequiredobject
approvedByrequiredobject | null
linksrequiredobject
Example
{
  "id": "evt_3f9a1c2b7d4e5f60718293a4",
  "type": "go_live.completed",
  "version": "2026-10-01",
  "createdAt": "2026-10-01T09:31:12.000Z",
  "mode": "live",
  "workspaceId": "cmworkspace01",
  "data": {
    "flow": {
      "id": "cmflow01orders",
      "name": "Shopify orders to Xero invoices"
    },
    "integration": {
      "id": "cmint01shop",
      "name": "Online shop to accounts"
    },
    "revision": {
      "id": "cmrev01",
      "version": 3
    },
    "approvedBy": {
      "id": "cmuser02"
    },
    "links": {
      "flow": "https://console.example/dashboard/connect/flows/cmflow01orders"
    }
  }
}
obligation.due_soon

An obligation is due soon

Sent once for each due date when an open obligation comes within its reminder time (14 days unless you change it). Group: Obligations.

obligation.due_soon data
FieldTypeDescription
obligationrequiredobject
reminderrequiredobject
linksrequiredobject
Example
{
  "id": "evt_3f9a1c2b7d4e5f60718293a4",
  "type": "obligation.due_soon",
  "version": "2026-10-01",
  "createdAt": "2026-10-01T09:31:12.000Z",
  "mode": "test",
  "workspaceId": "cmworkspace01",
  "data": {
    "obligation": {
      "id": "obl_01",
      "reference": "Gas supply agreement GSA-2024-07",
      "counterparty": "Northfield Power",
      "sourceClause": "7.2",
      "dueDate": "2026-10-31",
      "recurrence": "monthly",
      "reminderLeadDays": 14
    },
    "reminder": {
      "kind": "due_soon",
      "summary": "Send the monthly volume statement (Gas supply agreement GSA-2024-07, Northfield Power) is due in 14 days, on 31 October 2026."
    },
    "links": {
      "obligation": "https://console.example/dashboard/connect/obligations/obl_01"
    }
  }
}
obligation.overdue

An obligation is overdue

Sent once for each due date when an open obligation passes it without being marked done. Group: Obligations.

obligation.overdue data
FieldTypeDescription
obligationrequiredobject
reminderrequiredobject
linksrequiredobject
Example
{
  "id": "evt_3f9a1c2b7d4e5f60718293a4",
  "type": "obligation.overdue",
  "version": "2026-10-01",
  "createdAt": "2026-10-01T09:31:12.000Z",
  "mode": "test",
  "workspaceId": "cmworkspace01",
  "data": {
    "obligation": {
      "id": "obl_01",
      "reference": "Gas supply agreement GSA-2024-07",
      "counterparty": "Northfield Power",
      "sourceClause": "7.2",
      "dueDate": "2026-10-31",
      "recurrence": "monthly",
      "reminderLeadDays": 14
    },
    "reminder": {
      "kind": "overdue",
      "summary": "Send the monthly volume statement (Gas supply agreement GSA-2024-07, Northfield Power) was due on 31 October 2026, 2 days ago."
    },
    "links": {
      "obligation": "https://console.example/dashboard/connect/obligations/obl_01"
    }
  }
}
workspace.daily_digest

The daily workspace digest

Sent once a day at 07:00 UTC: runs, connections needing attention, waiting approvals and review items, usage and changes from the last 24 hours. Group: Workspace.

workspace.daily_digest data
FieldTypeDescription
digestrequiredobject
countsrequiredobject
sectionsrequiredarray of object
linksrequiredobject
Example
{
  "id": "evt_3f9a1c2b7d4e5f60718293a4",
  "type": "workspace.daily_digest",
  "version": "2026-10-01",
  "createdAt": "2026-10-01T09:31:12.000Z",
  "mode": "test",
  "workspaceId": "cmworkspace01",
  "data": {
    "digest": {
      "id": "digest_01",
      "date": "2026-10-01",
      "windowStart": "2026-09-30T07:00:00.000Z",
      "windowEnd": "2026-10-01T07:00:00.000Z",
      "quiet": false,
      "headline": "2 things need your attention."
    },
    "counts": {
      "runsCompleted": 42,
      "runsFailed": 2,
      "runsPartlyCompleted": 0,
      "connectionsNeedingAttention": 1,
      "approvalsWaiting": 0,
      "reconciliationItemsToReview": 0,
      "recordsNeedingAttention": 0,
      "flowsPausedOrSuspended": 0,
      "flowsPublished": 1,
      "connectionsAdded": 0,
      "obligationsDueSoon": 0,
      "obligationsOverdue": 0
    },
    "sections": [
      {
        "key": "runs",
        "title": "Runs",
        "summary": "42 runs completed and 2 failed.",
        "items": [
          {
            "text": "Shopify orders to Xero invoices failed twice. The app did not answer in time.",
            "link": "https://console.example/dashboard/connect/runs/cmexec01run"
          }
        ]
      },
      {
        "key": "connections",
        "title": "Connections",
        "summary": "1 connection needs attention.",
        "items": [
          {
            "text": "Xero (accounts) needs reconnecting.",
            "link": "https://console.example/dashboard/connect/connections"
          }
        ]
      },
      {
        "key": "changes",
        "title": "Changes",
        "summary": "1 flow was published.",
        "items": [
          {
            "text": "Shopify orders to Xero invoices was published.",
            "link": "https://console.example/dashboard/connect/flows/cmflow01orders"
          }
        ]
      }
    ],
    "links": {
      "digest": "https://console.example/dashboard/"
    }
  }
}
sandbox.test

Test event

Sent when you press Send a test event. Sent when you choose Send a test event; it is always delivered and cannot be chosen.

sandbox.test data
FieldTypeDescription
messagerequiredstring
endpointrequiredobject
Example
{
  "id": "evt_3f9a1c2b7d4e5f60718293a4",
  "type": "sandbox.test",
  "version": "2026-10-01",
  "createdAt": "2026-10-01T09:31:12.000Z",
  "mode": "test",
  "workspaceId": "cmworkspace01",
  "data": {
    "message": "This is a test event from Nexra. Your endpoint received it.",
    "endpoint": {
      "id": "wh_01",
      "name": "Order system"
    }
  }
}