API Referencev1

Integrations and flows API

Create integrations and flows, edit flow versions, steps, edges and mappings, preview transformations and publish.

Updated 07/10/2026

On this page

All paths start with /api/console/connect and need a session token.

Integrations

MethodPathPermissionBody and notes
POST/integrationsconnect.integration.create{name, projectId, slug?, description?, businessOwnerUserId?, technicalOwnerUserId?}. 409 on a duplicate slug.
GET/integrationsconnect.integration.readActive integrations with their flows (id, name, status, activeVersionId)
GET/integrations/:idconnect.integration.readOne integration
PATCH/integrations/:idconnect.integration.update{name?, description?, businessOwnerUserId?, technicalOwnerUserId?}
POST/integrations/:id/archiveconnect.integration.updateArchives the integration
GET/integrations/:id/exportconnect.integration.readThe nexra-connect-service-v1 service contract (see Export)

Flows and versions

MethodPathPermissionBody and notes
POST/integrations/:id/flowsconnect.flow.create{name, triggerType: manual or schedule, environment: sandbox or production, slug?, description?, versionLabel?}. Creates version 1.
GET/flows/:flowIdconnect.integration.readThe flow
PATCH/flows/:flowIdconnect.flow.edit{name?, description?}
POST/flows/:flowId/versionsconnect.flow.edit{fromVersionId?, environment?, triggerType?, versionLabel?}. Creates a new draft version.
GET/flows/:flowId/versionsconnect.integration.readAll versions
GET/flows/:flowId/versions/:versionIdconnect.integration.readOne version with its steps, edges and mappings
POST/flows/:flowId/validateconnect.flow.edit{versionId?}. Compiles and returns the issues found.
POST/flows/:flowId/compileconnect.flow.editSame as validate
POST/flows/:flowId/publishconnect.flow.publish{versionId?}. 400 if compilation fails; 409 if already published.
POST/flows/:flowId/pauseconnect.flow.pauseStops scheduled and triggered runs
POST/flows/:flowId/resumeconnect.flow.pauseResumes them

Published versions are immutable; edits to them return 409.

Steps and edges

MethodPathPermissionBody and notes
POST/flow-versions/:versionId/stepsconnect.flow.editSee the step fields below
PATCH/flow-versions/:versionId/steps/:stepIdconnect.flow.editSame fields, all optional
DELETE/flow-versions/:versionId/steps/:stepIdconnect.flow.editRemoves the step
POST/flow-versions/:versionId/edgesconnect.flow.edit{sourceStepId, destinationStepId, sourcePort?, destinationPort?, condition?, priority?}
DELETE/flow-versions/:versionId/edges/:edgeIdconnect.flow.editRemoves the edge

A step body has these fields:

FieldNotes
stepKeyRequired
stepTypemanual_trigger, schedule_trigger, source, map, transform, filter, validate or destination
displayNameOptional
connectorConnectionId, connectorOperationKeyThe connection and operation the step uses
positionX, positionYCanvas position
configurationStep-specific settings
timeoutSeconds1–300, default 30
retryPolicy, errorPolicyOptional

The version must be editable (draft, validating or ready).

Mappings and transformations

MethodPathPermissionBody and notes
PUT/flow-versions/:versionId/mappingsconnect.mapping.manageReplaces a map step's mapping (below)
GET/flow-versions/:versionId/mappingsconnect.integration.readSaved mappings
GET/flow-versions/:versionId/schemasconnect.integration.readSchemas available to the version
GET/flow-versions/:versionId/bound-schemasconnect.integration.readSource record and destination input schemas from the bound operations
POST/flow-versions/:versionId/mappings/validateconnect.flow.test{fields, sourceSchema, destinationSchema}
POST/flow-versions/:versionId/mappings/previewconnect.flow.test{flowStepId, record}. Returns the mapped payload. Nothing is written.
POST/transformations/validateconnect.flow.test{expression}
POST/transformations/previewconnect.flow.test{expression, record}. Returns {output}.
json
PUT /api/console/connect/flow-versions/ver_123/mappings
{
  "flowStepId": "step_map",
  "entityType": "invoice",
  "fields": [
    { "sourcePath": "customer.email", "destinationPath": "Contact.EmailAddress", "mappingType": "direct", "required": true },
    { "sourcePath": "", "destinationPath": "Status", "mappingType": "constant", "constantValue": "DRAFT" },
    { "sourcePath": "currency", "destinationPath": "CurrencyCode", "mappingType": "default", "defaultValue": "GBP" }
  ]
}

When sourceSchema and destinationSchema are omitted, Nexra uses the schemas of the operations bound to the flow.

Templates

MethodPathPermissionDescription
GET/templatesconnect.integration.readAvailable integration templates
GET/templates/:templateKeyconnect.integration.readOne template
POST/templates/:templateKey/installconnect.integration.create{projectId, name?}. Creates the integration and flow.

Need a hand?

Ask Nexra AI for implementation steps or error guidance.

Ask Nexra AI