Skip to content

Developer Center

Audience: Developers · Tags: developer, api, sdk

Build on SnapLink: trigger flows from your systems, manage resources via the API, and create your own connectors. This is the only place implementation detail belongs — everywhere else is outcome-first.

What you can do

  • Trigger flows by calling a flow's webhook URL.
  • Manage resources (workspaces, flows, connectors, runs) via the REST API.
  • Build connectors with the Connector SDK.
  • Read run results programmatically for your own dashboards/alerts.

Contents

Topic What's here
Authentication How to authenticate API calls
API Keys Issuing + using keys
Webhooks Triggering flows from outside
REST API Full endpoint reference
Connector SDK Build a connector
Rate Limits What to expect
Error Codes The error taxonomy
Examples JS · TS · Python · C# · PowerShell · cURL (see API)

Authentication

The SnapLink API is served under /api/v1 and authenticated with a bearer token (an HS256 JWT) in the Authorization header. Obtain a token by logging in:

curl -X POST https://api.snaplink.cloudsolutionaccelerators.com/api/v1/auth/login \
  -H 'Content-Type: application/json' \
  -d '{"email":"you@example.com","password":"••••••••"}'
# → { "ok": true, "data": { "token": "eyJ…", "user": { … } } }
Send the token on every call:
curl https://api.snaplink.cloudsolutionaccelerators.com/api/v1/auth/session \
  -H "Authorization: Bearer $TOKEN"
Every request is workspace-scoped and membership-enforced server-side.

API Keys

Long-lived API keys (for server-to-server use, distinct from a login token) are Planned. Until then, use a bearer token from POST /auth/login for server-to-server calls too — treat it like a password and rotate by re-authenticating.

Webhooks

The simplest integration: give a flow a Webhook trigger and POST to its URL (get it from GET /flows/:id/webhook — the path is /api/v1/webhooks/<flowId>/<secret>).

curl -X POST "https://api.snaplink.cloudsolutionaccelerators.com/api/v1/webhooks/flow_9c41e0/<secret>" \
  -H 'Content-Type: application/json' \
  -d '{"event":"lead.created","email":"ada@example.com"}'
The URL carries a per-flow secret; an unknown flow or wrong secret returns 404 WEBHOOK_NOT_FOUND (deliberately indistinguishable), and a flow without a promoted version returns 409 FLOW_NOT_ACTIVE. Ingress is rate-limited (429 on burst). See Webhooks API and the Webhook connector.

Connector SDK

A SnapLink connector is a manifest (declares capabilities + auth type) plus capabilities (the code for each action). The platform owns execution, queues, retries, run state, and monitoring — you implement only the integration. Generate a scaffold with npm run create-connector <name>; it compiles immediately, then you fill in capabilities and certify it. The connector uses an injectable, SSRF-safe HTTP client and a shared error-taxonomy mapper, so you don't rebuild plumbing. (Connectors are stateless and never touch run/retry/queue state.)

Rate Limits

  • Webhook ingress: limited per IP, per endpoint, and per workspace → 429.
  • Outbound to apps: vendor limits surface as the rate_limit error; flows can auto-retry with backoff. See Rate limiting.

Error Codes

API errors return { "ok": false, "error": { "code", "message", "details" } }. Connector/run failures use the taxonomy: auth, rate_limit, timeout, upstream_5xx, bad_request, blocked, unknown. Full reference: API → Error responses.


Related: API Reference · Webhooks API · Security

Was this helpful? 👍 👎