All capabilities
13 / 14Built for your stack
Drive River from your own codebase.
First-party SDKs wrap the whole platform — run federated queries, manage connections, upload files, and trigger jobs — with the idioms each language expects.
Official libraries
RustGoC#JavaTypeScriptPHPRuby
The problem
Automation dies when every script hand-rolls HTTP calls, retries, and result parsing against an API that keeps moving.
The River approach
Official SDKs keep client code small and typed, tracking the same API the dashboard uses — no wrappers to maintain in-house.
See it working
Inside Developer SDKs.
river.local / sdk
RustGoC#JavaTypeScriptPHPRuby
import { River } from "@river/sdk"
const river = new River({
apiKey: process.env.RIVER_API_KEY,
});
const rows = await river.query(`
SELECT u.name, o.total
FROM pg1.users u
JOIN mongo1.orders o ON u.id = o.user_id
ORDER BY o.total DESC LIMIT 5;
`);same surface · typed results · package-manager native
What changes for your team
Less friction between the question and the answer.
Automate queries and jobs from existing services
Keep types and errors close to the source
Move from throwaway scripts to production tooling
01
Install
Add the SDK from your language's package manager.
02
Call
Query, upload, and manage with typed methods.
03
Automate
Put the platform inside your own pipelines.
Next capability