Overview
The Rowbase API allows you to programmatically create, read, update, and delete datasets. Build custom integrations, automate data pipelines, or embed Rowbase functionality in your applications.
Getting Started
API Keys
Generate API keys from your organization settings:
- Go to Settings → API Keys
- Click Create API Key
- Name your key (e.g., “Production Backend”)
- Copy the key immediately (it won’t be shown again)
Keep your API keys secure. Never commit them to version control or expose them in client-side code.
Base URL
All API requests use the base URL:
https://api.rowbase.com/v1
Authentication
Include your API key in the Authorization header:
curl https://api.rowbase.com/v1/datasets \
-H "Authorization: Bearer YOUR_API_KEY"
Quick Examples
List Datasets
curl https://api.rowbase.com/v1/datasets \
-H "Authorization: Bearer YOUR_API_KEY"
Get Dataset Data
curl https://api.rowbase.com/v1/datasets/ds_xxx/data \
-H "Authorization: Bearer YOUR_API_KEY"
Create Dataset
curl -X POST https://api.rowbase.com/v1/datasets \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "Customers",
"project_id": "proj_xxx",
"columns": [
{"name": "email", "type": "text"},
{"name": "name", "type": "text"},
{"name": "created_at", "type": "date"}
]
}'
Add Rows
curl -X POST https://api.rowbase.com/v1/datasets/ds_xxx/rows \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"rows": [
{"email": "[email protected]", "name": "Alice", "created_at": "2024-01-15"},
{"email": "[email protected]", "name": "Bob", "created_at": "2024-01-16"}
]
}'
SDK Libraries
Python
from rowbase import Rowbase
client = Rowbase(api_key="YOUR_API_KEY")
# List datasets
datasets = client.datasets.list()
# Get dataset data
data = client.datasets.get_data("ds_xxx")
# Create dataset
dataset = client.datasets.create(
name="Customers",
project_id="proj_xxx",
columns=[
{"name": "email", "type": "text"},
{"name": "name", "type": "text"}
]
)
# Add rows
client.datasets.add_rows("ds_xxx", [
{"email": "[email protected]", "name": "Alice"},
{"email": "[email protected]", "name": "Bob"}
])
JavaScript/TypeScript
import { Rowbase } from '@rowbase/sdk';
const client = new Rowbase({ apiKey: 'YOUR_API_KEY' });
// List datasets
const datasets = await client.datasets.list();
// Get dataset data
const data = await client.datasets.getData('ds_xxx');
// Create dataset
const dataset = await client.datasets.create({
name: 'Customers',
projectId: 'proj_xxx',
columns: [
{ name: 'email', type: 'text' },
{ name: 'name', type: 'text' }
]
});
// Add rows
await client.datasets.addRows('ds_xxx', [
{ email: '[email protected]', name: 'Alice' },
{ email: '[email protected]', name: 'Bob' }
]);
Rate Limits
| Plan | Requests/minute | Rows/request |
|---|
| Free | 60 | 1,000 |
| Pro | 300 | 10,000 |
| Enterprise | Custom | Custom |
Rate limit headers are included in every response:
X-RateLimit-Limit: 300
X-RateLimit-Remaining: 299
X-RateLimit-Reset: 1705320000
Error Handling
The API uses standard HTTP status codes:
| Code | Description |
|---|
| 200 | Success |
| 201 | Created |
| 400 | Bad request (invalid parameters) |
| 401 | Unauthorized (invalid or missing API key) |
| 403 | Forbidden (insufficient permissions) |
| 404 | Not found |
| 429 | Rate limit exceeded |
| 500 | Server error |
Error responses include details:
{
"error": {
"code": "validation_error",
"message": "Invalid column type: 'string'. Valid types are: text, number, boolean, date, json",
"field": "columns[0].type"
}
}
List endpoints support cursor-based pagination:
curl "https://api.rowbase.com/v1/datasets?limit=20&cursor=xxx" \
-H "Authorization: Bearer YOUR_API_KEY"
Response includes pagination info:
{
"data": [...],
"pagination": {
"cursor": "xxx",
"has_more": true
}
}
Filtering & Sorting
Filtering Data
curl "https://api.rowbase.com/v1/datasets/ds_xxx/data?filter=status:active" \
-H "Authorization: Bearer YOUR_API_KEY"
Filter syntax:
field:value - Exact match
field:>100 - Greater than
field:<100 - Less than
field:~contains - Contains text
Sorting
curl "https://api.rowbase.com/v1/datasets/ds_xxx/data?sort=-created_at,name" \
-H "Authorization: Bearer YOUR_API_KEY"
- Prefix with
- for descending order
- Comma-separate for multiple sort fields
Next Steps