Skip to content

Workspace API

SchemaStack automatically generates a full REST API for every workspace. Once you've defined your entities and columns, you can immediately start reading and writing data through the API — no code generation or deployment needed.

How It Works

  1. Define your schema — create entities with columns, types, and relationships in SchemaStack
  2. Generate an API key — create a key in your workspace settings with the appropriate permission level
  3. Start making requests — your data is available at predictable, RESTful endpoints

Every entity in your workspace gets its own set of CRUD endpoints automatically.

Base URL

https://your-instance.schemastack.com/api/v1/{orgSlug}/{workspaceSlug}

Replace {orgSlug} and {workspaceSlug} with your organization and workspace slugs.

Quick Example

bash
# List all customers
curl "https://api.schemastack.com/api/v1/acme-corp/sales/Customer" \
  -H "Authorization: Bearer sk_live_abc123..."

# Create a customer
curl -X POST "https://api.schemastack.com/api/v1/acme-corp/sales/Customer" \
  -H "Authorization: Bearer sk_live_abc123..." \
  -H "Content-Type: application/json" \
  -d '{ "name": "Jane Doe", "email": "jane@example.com" }'

API Sections

SectionDescription
AuthenticationAPI keys, permissions, and headers
CRUD OperationsCreate, read, update, delete, and list records
FilteringFilter records by field values with operators
Expanding RelationshipsInclude related data with ?expand=
Field SelectionControl which fields are returned with ?fields=
Pagination & SortingPage through results and sort by fields
ValidationConstraint validation and error details
Bulk OperationsBatch create, update, and delete
ErrorsError response format and status codes

Response Format

All responses are JSON. Successful responses wrap data in a data field:

json
{
  "data": {
    "id": 1,
    "name": "Jane Doe",
    "email": "jane@example.com"
  }
}

List responses include pagination metadata:

json
{
  "data": [ ... ],
  "meta": {
    "page": 0,
    "size": 20,
    "totalElements": 150,
    "totalPages": 8
  }
}

Null fields are omitted from responses.

SchemaStack Documentation