Skip to content

REST API Reference

Base URL: https://api.fyrn.dev/api/v1

All /api/v1/* routes require authentication via Auth0 JWT bearer token or API key. Public routes (health check, webhook receiver) are exempt.

Include a bearer token in the Authorization header:

Authorization: Bearer <access_token>

Public paths that skip auth: /health, /webhooks/receive/, /inbound/.


Health check endpoint. No auth required.

{ "status": "ok" }

List all flows for the current environment. Webhook-triggered flows include their full webhook URL.

Response: Array of flow objects with id, name, status, version, description, yamlConfig, webhookUrl.

Create a new flow.

Body:

{
"name": "my-flow",
"description": "Sync orders",
"yamlConfig": "flow: my-flow\nversion: 1\n..."
}

Get a single flow by ID. Returns full flow object including parsed config and compiled plan.

Update a flow. Accepts name, description, yamlConfig, status, changeSummary.

Soft-delete a flow.

Deploy a flow — validates, compiles, activates, and creates a version snapshot.

Response: Deployed flow with webhook URL (if applicable).

Pause an active flow.

Resume a paused flow.

Test a flow with sample data. Applies the mapping without delivery.

Body:

{
"sampleData": { "id": "ORD-001", "total": 99.99 }
}

List version history for a flow.

Rollback to a previous version.

Body:

{ "versionNumber": 2 }

Promote a flow from one environment to another.

Body:

{
"targetEnvironmentId": "...",
"notes": "Promoting to production after QA"
}

Get the execution plan as a directed graph for the pipeline visualizer.


Generate a flow YAML from a natural language description.

Body:

{
"description": "Sync Shopify orders to NetSuite",
"sourceHint": "Shopify webhook",
"targetHint": "NetSuite REST API",
"errorHandling": "standard"
}

Response: Generated YAML config, suggested name, and description.

Generate adapter JavaScript code from a description.

Body:

{
"description": "Convert XML order to JSON",
"adapterType": "request_transform",
"sampleInput": {}
}

Generate a published API configuration from a description.

Generate a realistic test payload for a flow.

Analyze a flow error and suggest fixes (self-healing).


List messages for a flow.

Query params: flowId (required), status, since, search, limit, offset.

Get a single message with full trace.

Retry a failed message.

Replay a message through the full pipeline.

SSE endpoint for live message streaming.

Query params: flowId, status.


List all connector catalog entries.

List connector instances for the current environment.

Create a new connector instance.

Body:

{
"catalogId": "...",
"name": "my-shopify",
"displayName": "My Shopify Store",
"config": { "store_url": "mystore.myshopify.com", "api_key": "..." }
}

Get a single connector instance (config fields redacted).

Update a connector instance.

Soft-delete a connector instance.

POST /api/v1/connectors/instances/:id/test

Section titled “POST /api/v1/connectors/instances/:id/test”

Test a connector instance connection.

GET /api/v1/connectors/instances/:id/schemas

Section titled “GET /api/v1/connectors/instances/:id/schemas”

List tracked endpoint schemas for a connector instance.


Start OAuth flow for a connector. Returns the authorization URL.

Query params: catalogId, instanceName, redirectUri.

OAuth callback handler. Exchanges authorization code for tokens.


List all schedules.

Query params: flowId (optional).

Update a schedule — cron expression, timezone, enabled.

Manually trigger a scheduled flow.


List all lookup tables.

Create a lookup table.

Body:

{ "name": "country-warehouses", "description": "Maps countries to warehouse IDs" }

Get a lookup table with entries.

Query params: search, limit.

Soft-delete a lookup table.

Add or update an entry.

Body:

{ "key": "US", "value": "warehouse-east-01" }

DELETE /api/v1/lookup-tables/:id/entries/:key

Section titled “DELETE /api/v1/lookup-tables/:id/entries/:key”

Delete an entry by key.

Import entries from CSV.

Body (multipart): CSV file with key and value columns.

Export entries as CSV.


List all adapters.

Create an adapter.

Get an adapter by ID.

Update an adapter.

Soft-delete an adapter.

Test an adapter with sample input.

Body:

{ "input": { "order_id": "ORD-123" } }

List pre-built adapter templates.


List published API endpoints.

Create a published API.

Get a published API by ID.

Update a published API.

Soft-delete a published API.

Create a consumer API key.

List consumer keys.

DELETE /api/v1/published-apis/:id/keys/:keyId

Section titled “DELETE /api/v1/published-apis/:id/keys/:keyId”

Revoke a consumer key.

List API versions.


Start a batch job.

Body:

{
"flowId": "...",
"records": [{"order_id": "ORD-001"}, {"order_id": "ORD-002"}],
"concurrency": 10
}

Get batch job status and progress.

List recent batch jobs.

Query params: flowId.

Export batch job errors.

Retry failed records in a batch job.


List healing events.

Query params: flowId.

Get a healing event by ID.

Approve a pending healing fix.

Reject a pending healing fix.


List environments for the current account.

Create an environment.

Update an environment.


List alert channels.

Create an alert channel.

List alert rules.

Create an alert rule.

Update an alert rule.

List alert history.


List agent API keys for MCP access.

Create an agent API key.

Deactivate an agent key.

List pending agent actions awaiting approval.

Approve a pending agent action.

Reject a pending agent action.


List audit log entries.

Query params: action, entityType, entityId, userId, limit, offset.


Get the current authenticated user’s profile.


Export a flow as a ZIP bundle (YAML config, lookup tables, adapter code).

Import a flow from a ZIP bundle.

Body (multipart): ZIP file.


GET /api/v1/connectors/catalog/:catalogId/actions

Section titled “GET /api/v1/connectors/catalog/:catalogId/actions”

List actions for a catalog entry.

GET /api/v1/connectors/catalog/:catalogId/actions/:slug

Section titled “GET /api/v1/connectors/catalog/:catalogId/actions/:slug”

Get a specific action with full request/response schemas.


GET /api/v1/connectors/instances/:id/schemas

Section titled “GET /api/v1/connectors/instances/:id/schemas”

List tracked endpoint schemas for a connector instance.

POST /api/v1/connectors/instances/:id/schemas/check

Section titled “POST /api/v1/connectors/instances/:id/schemas/check”

Trigger a schema check for a connector instance.


Full-text search across flows, connectors, adapters, and published APIs.

Query params: q (search query), type (entity type filter), limit.


List account members with roles.

Invite a user to the account.

Body:

{ "email": "user@example.com", "role": "editor" }

Update a member’s role.

Remove a member from the account.


Get current period usage (messages processed, AI actions consumed, active flows, connectors, environments).


Get current plan, subscription status, and payment info.

Create a Stripe checkout session for plan upgrade.

Body:

{ "plan": "team", "interval": "annual" }

Get a Stripe customer portal URL for managing billing.


List governance policies.

Get a governance policy by ID.

Check flow compliance against policies.

Body:

{ "flowId": "..." }

Inbound webhook endpoint. No auth required (uses path-based routing with optional secret token verification).

Published API inbound endpoint. Auth via consumer API key.