Skip to main content

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:
  1. Go to Settings → API Keys
  2. Click Create API Key
  3. Name your key (e.g., “Production Backend”)
  4. 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

pip install rowbase
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

npm install @rowbase/sdk
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

PlanRequests/minuteRows/request
Free601,000
Pro30010,000
EnterpriseCustomCustom
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:
CodeDescription
200Success
201Created
400Bad request (invalid parameters)
401Unauthorized (invalid or missing API key)
403Forbidden (insufficient permissions)
404Not found
429Rate limit exceeded
500Server 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"
  }
}

Pagination

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