Base URL
All API requests should be made to:
https://api.rowbase.com/v1
Authentication
The Rowbase API uses Bearer token authentication. Include your API key in the Authorization header of every request:
curl https://api.rowbase.com/v1/datasets \
-H "Authorization: Bearer YOUR_API_KEY"
Getting an API Key
- Log in to app.rowbase.com
- Navigate to Settings → API Keys
- Click Create API Key
- Copy and securely store your key
API keys grant full access to your organization’s data. Keep them secure and never expose them in client-side code.
| Header | Required | Description |
|---|
Authorization | Yes | Bearer token: Bearer YOUR_API_KEY |
Content-Type | For POST/PATCH | application/json for JSON body |
Request Body
POST and PATCH requests accept JSON:
curl -X POST https://api.rowbase.com/v1/datasets \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"name": "My Dataset", "project_id": "proj_xxx"}'
All responses return JSON with a consistent structure:
Success Response
{
"data": {
"id": "ds_xxx",
"name": "My Dataset",
"created_at": "2024-01-15T10:30:00Z"
}
}
List Response
{
"data": [
{"id": "ds_xxx", "name": "Dataset 1"},
{"id": "ds_yyy", "name": "Dataset 2"}
],
"pagination": {
"cursor": "abc123",
"has_more": true
}
}
Error Response
{
"error": {
"code": "not_found",
"message": "Dataset not found",
"request_id": "req_xxx"
}
}
Status Codes
| Code | Description |
|---|
200 | Success |
201 | Created |
204 | No content (successful deletion) |
400 | Bad request - invalid parameters |
401 | Unauthorized - invalid or missing API key |
403 | Forbidden - insufficient permissions |
404 | Not found |
422 | Validation error |
429 | Rate limit exceeded |
500 | Server error |
List endpoints use cursor-based pagination:
# First page
curl "https://api.rowbase.com/v1/datasets?limit=20"
# Next page
curl "https://api.rowbase.com/v1/datasets?limit=20&cursor=abc123"
| Parameter | Type | Default | Description |
|---|
limit | integer | 20 | Results per page (max 100) |
cursor | string | - | Cursor for next page |
Rate Limits
| Plan | Requests/minute |
|---|
| Free | 60 |
| Pro | 300 |
| Enterprise | Custom |
Rate limit headers are included in responses:
X-RateLimit-Limit: 300
X-RateLimit-Remaining: 295
X-RateLimit-Reset: 1705320000
Errors
Error Codes
| Code | Description |
|---|
authentication_error | Invalid or missing API key |
authorization_error | Insufficient permissions |
not_found | Resource doesn’t exist |
validation_error | Invalid request parameters |
rate_limit_exceeded | Too many requests |
server_error | Internal server error |
Handling Errors
try {
const response = await fetch('https://api.rowbase.com/v1/datasets', {
headers: { 'Authorization': `Bearer ${apiKey}` }
});
if (!response.ok) {
const error = await response.json();
console.error(`Error: ${error.error.code} - ${error.error.message}`);
}
} catch (e) {
console.error('Network error:', e);
}
SDKs
Official SDKs are available for: