Introduction
Catalyzed is a data platform that lets you organize data into queryable tables, automate processing pipelines, and collaborate with your team. This documentation covers the REST API for building integrations with Catalyzed.
Base URL
Section titled “Base URL”All API requests are made to:
https://api.catalyzed.aiAuthentication
Section titled “Authentication”All API endpoints require authentication via Bearer token. You can use either:
- API Tokens (recommended) - Long-lived tokens for server-to-server integrations
- Session Tokens - Short-lived tokens from browser-based authentication
curl https://api.catalyzed.ai/me \ -H "Authorization: Bearer YOUR_API_TOKEN"See Authentication for details.
Core Concepts
Section titled “Core Concepts”Before diving into the API, understand these key concepts:
Teams All resources belong to a team. Your API token is scoped to a specific team. Datasets & Tables Datasets contain tables. Tables have schemas and hold your queryable data. Files Upload files (CSV, JSON, PDF) for processing into tables or document extraction. Pipelines Automate workflows that transform data or run AI-powered tasks.
Quick Example
Section titled “Quick Example”Create a table and insert data:
# 1. Create a datasetcurl -X POST https://api.catalyzed.ai/datasets \ -H "Authorization: Bearer $API_TOKEN" \ -H "Content-Type: application/json" \ -d '{"teamId": "ZkoDMyjZZsXo4VAO_nJLk", "name": "Sales Data"}'
# 2. Create a table in the datasetcurl -X POST https://api.catalyzed.ai/dataset-tables \ -H "Authorization: Bearer $API_TOKEN" \ -H "Content-Type: application/json" \ -d '{ "datasetId": "HoIEJNIPiQIy6TjVRxjwz", "tableName": "orders", "fields": [ {"name": "order_id", "arrowType": "utf8", "nullable": false}, {"name": "amount", "arrowType": "float64", "nullable": false}, {"name": "created_at", "arrowType": "timestamp", "nullable": false} ], "primaryKeyColumns": ["order_id"] }'
# 3. Insert rowscurl -X POST "https://api.catalyzed.ai/dataset-tables/KzaMsfA0LSw_Ld0KyaXIS/rows?mode=append" \ -H "Authorization: Bearer $API_TOKEN" \ -H "Content-Type: application/json" \ -d '[ {"order_id": "ORD-001", "amount": 99.99, "created_at": "2024-01-15T10:30:00Z"}, {"order_id": "ORD-002", "amount": 149.50, "created_at": "2024-01-15T14:45:00Z"} ]'
# 4. Query the datacurl -X POST https://api.catalyzed.ai/queries \ -H "Authorization: Bearer $API_TOKEN" \ -H "Content-Type: application/json" \ -d '{ "sql": "SELECT * FROM orders WHERE amount > 100", "tables": {"orders": "KzaMsfA0LSw_Ld0KyaXIS"} }'Next Steps
Section titled “Next Steps”- Set up authentication with an API token
- Create your first dataset
- Explore the API Reference for all endpoints
Response Format
Section titled “Response Format”All API responses return JSON. Single resource responses return the object directly:
{ "datasetId": "HoIEJNIPiQIy6TjVRxjwz", "teamId": "ZkoDMyjZZsXo4VAO_nJLk", "name": "Sales Data", "createdAt": "2024-01-15T10:30:00Z"}List endpoints return paginated results:
{ "datasets": [...], "total": 42, "page": 1, "pageSize": 20}Error responses include an error code and message:
{ "error": "VALIDATION_ERROR", "message": "Invalid teamId format"}Rate Limits
Section titled “Rate Limits”API requests are rate limited per team. Current limits:
| Tier | Requests/minute |
|---|---|
| Free | 60 |
| Pro | 600 |
| Enterprise | Custom |
Rate limit headers are included in responses:
X-RateLimit-Limit: 60X-RateLimit-Remaining: 45X-RateLimit-Reset: 1704110400Need Help?
Section titled “Need Help?”- Browse the API Reference for endpoint details
- Review Core Concepts to understand the data model
- Contact support at [email protected]