CRUD Operations
Every entity in your workspace gets a full set of CRUD endpoints. The entity name in the URL matches the entity name defined in your schema.
Endpoint Pattern
/api/v1/{orgSlug}/{workspaceSlug}/{entityName}
/api/v1/{orgSlug}/{workspaceSlug}/{entityName}/{id}List Records
GET /api/v1/acme-corp/sales/Customer?page=0&size=20
Authorization: Bearer sk_live_abc123...Response (200):
{
"data": [
{ "id": 1, "name": "Jane Doe", "email": "jane@example.com" },
{ "id": 2, "name": "John Smith", "email": "john@example.com" }
],
"meta": {
"page": 0,
"size": 20,
"totalElements": 150,
"totalPages": 8
}
}See Pagination & Sorting for details on paging and sort parameters.
Get a Single Record
GET /api/v1/acme-corp/sales/Customer/42
Authorization: Bearer sk_live_abc123...Response (200):
{
"data": {
"id": 42,
"name": "Jane Doe",
"email": "jane@example.com",
"age": 30
}
}Returns 404 if the record doesn't exist.
Create a Record
POST /api/v1/acme-corp/sales/Customer
Authorization: Bearer sk_live_abc123...
Content-Type: application/json
{
"name": "Jane Doe",
"email": "jane@example.com",
"age": 30
}Response (201):
{
"data": {
"id": 43,
"name": "Jane Doe",
"email": "jane@example.com",
"age": 30
}
}The id is generated automatically. Fields not included in the request default to null (if the column allows it).
Update a Record
PUT /api/v1/acme-corp/sales/Customer/42
Authorization: Bearer sk_live_abc123...
Content-Type: application/json
{
"name": "Jane Smith",
"email": "jane.smith@example.com"
}Response (200):
{
"data": {
"id": 42,
"name": "Jane Smith",
"email": "jane.smith@example.com",
"age": 30
}
}Only the fields you include are updated. Omitted fields keep their current values.
Delete a Record
DELETE /api/v1/acme-corp/sales/Customer/42
Authorization: Bearer sk_live_abc123...Response: 204 No Content
Returns 404 if the record doesn't exist.
Relationships
If your entities have relationships (e.g., an Order belongs to a Customer), you can include related data in responses using the expand query parameter and control which fields are returned with fields.
See Expanding Relationships and Field Selection for details.
Content Type
All request bodies must use Content-Type: application/json. Dates are formatted as ISO 8601 strings (2026-01-15T10:30:00Z).