Solaris AISolaris AI FlowDocs
Reference

Webhook API

Technical reference for the webhook trigger endpoint.

View as Markdown

The webhook endpoint triggers a workflow execution from an external HTTP request.

Endpoint

The full webhook URL is displayed in the Webhook Trigger node settings, in the Parameters pane. Copy it from there. The URL includes the workflow ID and a token generated for that trigger node.

Authentication

Authentication is via the token query parameter. This is a random secret generated per webhook trigger node. Treat it like a password - anyone with the URL can trigger your workflow.

Request

Method: POST only

Headers:

HeaderRequiredDescription
Content-TypeRecommendedapplication/json for parsed body
X-Webhook-Delivery-IdNoUnique delivery ID for replay protection
X-GitHub-DeliveryNoGitHub-specific delivery ID (auto-detected)

Body: Up to 100 KB. JSON is recommended. If Content-Type: application/json is set, the body is parsed as JSON. Other content types are accepted and stored as raw text in a body field.

curl -X POST "<your-webhook-url>" \
  -H "Content-Type: application/json" \
  -d '{"token": "SOL", "price": 150.23}'

Replace <your-webhook-url> with the URL from your Webhook Trigger node settings.

Response

Success (200):

{
  "success": true,
  "executionId": "k57abc123def..."
}

Deduplicated (200):

{
  "success": true,
  "executionId": "k57abc123def...",
  "deduplicated": true
}

Errors:

StatusCause
400Missing workflowId or token, invalid JSON, failed to read request body
403Invalid token, workflow not active (returns executionId), plan limit exceeded, webhook triggers not available on current plan
404Workflow not found
413Request body too large (>100 KB)
429Per-workflow rate limit exceeded. Response includes a Retry-After header (seconds) and a retryAfter field in the JSON body. Back off and retry.

Replay protection

If the sender includes X-Webhook-Delivery-Id or X-GitHub-Delivery, Solaris AI Flow deduplicates requests scoped to the workflow + trigger node + delivery ID. Duplicate deliveries return 200 with deduplicated: true.

Generic senders without a delivery ID are not replay-protected. Every request creates a new execution.

Editor reruns

The editor executions panel can run a webhook trigger again with the trigger's configured sample payload. It does not replay the original request body.

Activation required

The webhook only fires after the workflow is activated from the editor toolbar. Inactive workflows return 403.

Plan limits

Webhook triggers are subject to plan-based quotas. Free plan: 1 active webhook workflow. Pro/Ultra: unlimited.

Next steps

On this page