[

/api

·

rest · v3

]

An API you can read in one sitting.

Twelve endpoints, typed webhooks and two SDKs. Start a consent session, receive accounts, keep them fresh. That is the whole job.

$

npm i @sluice/node

A developer types at a desk lit by one warm lamp late at night

[

01

·

quickstart

]

Three calls to a live account.

01

Create a session

POST /v3/connect/sessions with your user id and the scopes you need. You get back a link that lives 15 minutes.

02

Send the link

Your user picks a bank, reads exactly what you asked for and approves it in their banking app.

03

Read the accounts

A connection.created webhook arrives with the account ids. Balances and transactions are ready to read.

$ npx sluice init

✓ sandbox key created sk_test_••••4f2

✓ webhook endpoint registered /api/sluice

✓ test bank Halden Mutual connected

→ open http://localhost:3000/connect

[

02

·

principles

]

Boring on purpose.

The rules we hold the API to, so your integration still works in three years.

01

Idempotent writes

Send an Idempotency-Key with any POST. Retry as often as you like, it happens once.

02

Versioned by date

Pin a version in the header. New fields arrive in new versions, never in yours.

03

Typed webhooks

Every event has a schema, a signature and an id you can store to drop duplicates.

04

Cursor pagination

Lists return a cursor, not a page number, so nothing shifts while you read.

Node

Python

cURL

connect

import { Sluice } from ‘@sluice/node’;

const sluice = new Sluice(process.env.SLUICE_KEY);
const session = await sluice.connect.sessions.create({
user: ‘user_31c’,
scopes: [‘balances’, ‘transactions’],
});
// send session.url to your user

201 Created · 84 ms

id cs_7Hq2
url https://connect.sluice.dev/cs_7Hq2
expires_in 900

Click a tab to switch language.

[

04

·

webhooks

]

You hear about it first.

These events follow a connection from consent to expiry. Each one is signed and retried 12 times over 24 hours.

events delivered, last 24 h

1,284,903

connection.created

connection.created

A user approved access. Account ids are in the payload.

A user approved access. Account ids are in the payload.

200 · 41 ms

transactions.available

New transactions are ready since your last cursor.

New transactions are ready since your last cursor.

200 · 38 ms

connection.expiring

Access ends in 7 days. Send the renewal link.

Access ends in 7 days. Send the renewal link.

200 · 44 ms

connection.reauthorized

The user renewed. Same connection id, new expiry date.

The user renewed. Same connection id, new expiry date.

200 · 36 ms

connection.expired

Consent ran out. Ask the user to connect again.

200 · 52 ms

consent.revoked

consent.revoked

The user or the bank ended access. Stop reading.

The user or the bank ended access. Stop reading.

200 · 39 ms

[

05

·

sdks

]

Two SDKs, and plain REST for the rest.

Node

v3.2.0

Typed for TypeScript 5. Works on Node 18 and up, Bun and edge runtimes.

$

npm i @sluice/node

Python

v3.1.4

Sync and async clients. Python 3.9 and up, typed with Pydantic models.

$

pip install sluice

REST

OpenAPI 3.1

Any language that speaks HTTPS and JSON. The OpenAPI file is in the docs.

$

curl api.sluice.dev/v3

[ 06 · first call ]

Your first connection,

before lunch.

Open the sandbox, create a session and watch a test bank connect.

[ 06 · first call ]

Your first connection,

before lunch.

Open the sandbox, create a session and watch a test bank connect.

Sluice

© 2026 Sluice Inc.

Demo company and illustrative data.

Sluice

© 2026 Sluice Inc.

Demo company and illustrative data.

Sluice

© 2026 Sluice Inc.

Demo company and illustrative data.

Sluice template preview

Sluice® Template

$129 · one-time

Buy
Nova Studio

NOVA STUDIO

/ SECURED BY POLAR

Create a free website with Framer, the website builder loved by startups, designers and agencies.