APIs and SDKs
API overview
Every RustaBase Project exposes one HTTP API and one realtime stream at its own address. The official JavaScript, Dart, and Go clients are thin wrappers over exactly those endpoints.
Your Project address
Each Project receives a dedicated rustabase.net address. That address is the base URL for the REST API, file downloads, realtime subscriptions, and the administration console.
Every endpoint is served under the versioned base path /api/v1. Use it for all requests so your application stays on a stable API version.
# every endpoint lives under /api/v1
curl $PROJECT_URL/api/v1/healthWhat the API covers
| Area | Base path | Used for |
|---|---|---|
Health | /api/v1/health | Liveness and status of the Project backend |
Tables | /api/v1/collections | Table definitions, scaffolds, OAuth provider metadata |
Records | /api/v1/collections/{table}/records | Reading and writing application data |
Authentication | /api/v1/collections/{table}/auth-* | Password, OAuth, OTP, MFA, refresh, impersonation |
Files | /api/v1/files | Downloading record files and issuing file tokens |
Batch | /api/v1/batch | Multiple writes in a single request |
Realtime | /api/v1/realtime | Server-sent events for record changes |
Functions | /api/v1/functions | Edge functions and their execution logs |
Webhooks | /api/v1/webhooks | Outbound integrations |
Logs | /api/v1/logs | Request and function activity |
SQL, RLS, backups | /api/v1/sql, /api/v1/rls, /api/v1/backups | Administrative operations, superuser only |
SQL, row-level-security administration, and backup endpoints require a superuser session. Never expose those from browser code.
Choose a client
- JavaScript and TypeScript for browsers, Node, Bun, and edge runtimes
- Dart for Flutter and Dart applications
- Go for services, workers, and command-line tools
- Plain REST for any other language
JavaScript SDK 1.0
The JavaScript SDK 1.0 is a fresh RustaBase client with its own calls (createClient, rb.from, rb.auth). Code written for the older client needs updating. The Dart and Go SDKs will follow the same style.
Fix it yourself. The link below opens this file in GitHub's editor and forks the repository for you if you need one, and your change becomes a pull request without leaving the browser.