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.

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

The same platform surface, expressed the way each language expects it.

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

HTTP API

Explore HTTP API