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": { … } } }
curl https://api.snaplink.cloudsolutionaccelerators.com/api/v1/auth/session \
-H "Authorization: Bearer $TOKEN"
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"}'
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_limiterror; 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? 👍 👎