[
/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

[
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.
[
03
·
endpoints
]
Twelve endpoints. That is all of them.
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
200 · 41 ms
transactions.available
200 · 38 ms
connection.expiring
200 · 44 ms
connection.reauthorized
200 · 36 ms
connection.expired
Consent ran out. Ask the user to connect again.
200 · 52 ms
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

Sluice® Template
$129 · one-time
NOVA STUDIO
/ SECURED BY POLAR