SDKs
REST API
Direct HTTP access to every OrbitNest feature — for languages without an SDK, or anyone who prefers raw requests.
OrbitNest's REST API is the foundation under every SDK. Call it directly from any HTTP client, with Bearer auth and JSON bodies.
Base URL
Every project has two URL shapes:
- Admin (JWT auth):
/api/projects/:id/*— used by the Studio dashboard. - Client (API key auth):
/api/project/:slug/*— used by your apps.
Authentication
Every request needs an Authorization: Bearer <key> header. Use the anon key from the client, the service_role key from trusted servers, or a user JWT issued by the auth module.
bash
curl "https://studio.orbitnest.io/api/project/my-app/database/tables/posts" \
-H "Authorization: Bearer ${ANON_KEY}" \
-H "Content-Type: application/json"Database
bash
# List rows (with filters and ordering)
GET /api/project/:slug/database/tables/:table?col=eq.value&order=created_at.desc
# Insert
POST /api/project/:slug/database/tables/:table
Body: { "col": "value", ... }
# Update
PATCH /api/project/:slug/database/tables/:table?id=eq.:id
Body: { "col": "new value" }
# Delete
DELETE /api/project/:slug/database/tables/:table?id=eq.:id
# Execute raw SQL (service_role only)
POST /api/project/:slug/database/sql
Body: { "sql": "SELECT count(*) FROM posts" }Authentication
bash
POST /api/projects/:id/auth/signup-with-email
POST /api/projects/:id/auth/verify-signup
POST /api/projects/:id/auth/signin-with-email
POST /api/projects/:id/auth/verify-signin
POST /api/projects/:id/auth/signup
POST /api/projects/:id/auth/signin
POST /api/projects/:id/auth/refresh
POST /api/projects/:id/auth/signout
GET /api/projects/:id/auth/userEdge functions
bash
POST /api/project/:slug/functions/:name
Body: <any JSON>
Response: whatever the function returnsStorage
bash
GET /api/project/:slug/storage/buckets
POST /api/project/:slug/storage/buckets
GET /api/project/:slug/storage/buckets/:name/files
POST /api/project/:slug/storage/buckets/:name/files
DELETE /api/project/:slug/storage/buckets/:name/files/:path
GET /api/project/:slug/storage/buckets/:name/signed-url/:path?expires=3600Full reference
Every endpoint is documented in the interactive Swagger UI at
/api/docs. The OpenAPI spec is downloadable for import into Postman, Insomnia, or your API client of choice.Error responses
json
{
"statusCode": 400,
"message": "Validation failed",
"error": "BAD_REQUEST",
"details": {
"field": "email",
"reason": "must be a valid email"
}
}Rate limits
- Default: 60 requests / minute per IP
- Auth endpoints: 10 requests / minute per IP (per project)
- Headers returned:
X-RateLimit-Limit,X-RateLimit-Remaining,X-RateLimit-Reset
Enterprise accounts can request custom rate limits.