REST API v1.0 HTTPS Required

API Reference

Full REST API documentation for integrating AppBuilder with your existing tools and workflows.

Base URL

https://api.appbuilder.io/v1

Authentication

The API uses session-based authentication. You must be logged in to your AppBuilder account to make API requests. Include credentials with your requests.

# Example request with session cookie
curl -X GET "https://your-instance.com/api/apps/my-app/schemas/contacts/records" \
  -b "sessionid=your_session_cookie"
// Using fetch API with credentials
const response = await fetch('/api/apps/my-app/schemas/contacts/records', {
  credentials: 'include'
});
const data = await response.json();
import requests

# Create a session and login first
session = requests.Session()
session.post('https://your-instance.com/auth/login/', data={
    'username': 'your@email.com',
    'password': 'your_password'
})

# Then make API requests
response = session.get('/api/apps/my-app/schemas/contacts/records')
data = response.json()

Session Authentication

The API uses Django session authentication. Log in via the web interface or POST to /auth/login/ to establish a session.

How to authenticate

  1. 1 Log in to AppBuilder via the web interface
  2. 2 Your browser session allows API access
  3. For scripts, use a session library to maintain cookies

API Overview

The API provides full CRUD operations on your app data. All endpoints are under /api/.

Available Endpoints

GET /api/workspaces/{workspace}/apps
GET /api/apps/{app}/schemas
GET /api/apps/{app}/schemas/{schema}/records
POST /api/apps/{app}/schemas/{schema}/records
PUT /api/apps/{app}/schemas/{schema}/records/{id}
DELETE /api/apps/{app}/schemas/{schema}/records/{id}

Interactive Documentation

Visit /api/docs for the interactive Swagger documentation.

Error Handling

The API uses standard HTTP status codes. Errors include a JSON body with details:

{
  "error": {
    "code": "validation_error",
    "message": "Field 'email' is required",
    "field": "email"
  }
}
Status Meaning
200Success
201Created
400Bad request / Validation error
401Unauthorized (not logged in)
403Forbidden (no permission for this resource)
404Not found
500Internal server error

Records

GET /apps/{app_slug}/schemas/{schema_slug}/records

List all records in a schema with optional filtering and pagination.

Query Parameters

page Page number (default: 1)
per_page Records per page (default: 50, max: 100)
sort Field to sort by (prefix with - for desc)
filter[field] Filter by field value
# Get all contacts sorted by name (with session cookie)
curl "https://your-instance.com/api/apps/my-crm/schemas/contacts/records?sort=name" \
  -b "sessionid=your_session_cookie"
POST /apps/{app_slug}/schemas/{schema_slug}/records

Create a new record in a schema.

curl -X POST "https://your-instance.com/api/apps/my-crm/schemas/contacts/records" \
  -b "sessionid=your_session_cookie" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "John Doe",
    "email": "john@example.com",
    "status": "lead"
  }'
GET /apps/{app_slug}/schemas/{schema_slug}/records/{id}

Get a single record by ID.

PATCH /apps/{app_slug}/schemas/{schema_slug}/records/{id}

Update an existing record. Only include fields you want to change.

curl -X PUT "https://your-instance.com/api/apps/my-crm/schemas/contacts/records/rec_123" \
  -b "sessionid=your_session_cookie" \
  -H "Content-Type: application/json" \
  -d '{"status": "customer"}'
DELETE /apps/{app_slug}/schemas/{schema_slug}/records/{id}

Delete a record. This action cannot be undone.

Schemas

GET /apps/{app_slug}/schemas

List all schemas in an app with their field definitions.

Response Example

{
  "schemas": [
    {
      "slug": "contacts",
      "name": "Contacts",
      "fields": [
        {"slug": "name", "type": "text", "required": true},
        {"slug": "email", "type": "email", "required": false},
        {"slug": "status", "type": "select", "options": ["lead", "customer"]}
      ]
    }
  ]
}

Apps

GET /apps

List all apps in your workspace.

Response Example

{
  "apps": [
    {
      "slug": "my-crm",
      "name": "My CRM",
      "description": "Customer relationship management",
      "created_at": "2025-01-15T10:30:00Z"
    }
  ]
}

Client Libraries

Official SDKs for your favorite programming languages.

JavaScript / Node.js

npm package

npm install @appbuilder/sdk
View documentation →

Python

pip package

pip install appbuilder
View documentation →

Need help with the API?

Our engineering team is here to help you integrate AppBuilder.