Skip to content

Ascend Public API (v1)

The Ascend Public API lets you programmatically read and write workspace content, query databases, and manage pages from any tool or language.


Getting Started

Before you begin

You'll need an API Token to authenticate. Tokens are tied to your user account and inherit your team permissions.

To generate a token:

  1. Log in to Ascend and click your avatar → Settings
  2. Navigate to API Keys in the sidebar
  3. Click Create New Token, give it a name (e.g. Zapier Integration)
  4. Copy the key immediately — it won't be shown again

Authentication

All requests must use HTTPS. Pass your token as a Bearer header:

http
Authorization: Bearer <your_api_token>
ScenarioResponse
Valid tokenRequest proceeds normally
Missing token401 Unauthorized
Invalid / expired token401 Unauthorized

Standard Response Format

All endpoints return a consistent JSON envelope.

json
{
  "status": "success",
  "data": { }
}
json
{
  "status": "error",
  "error": {
    "message": "Human-readable description",
    "code": 404
  }
}

Endpoints

Teams

Your token gives you access to every team you belong to.

MethodPathDescription
GET/api/v1/teamsList all your teams
GET/api/v1/teams/{teamId}Get a specific team's details

Workspaces

Workspaces exist within teams and scope all content access.

MethodPathDescription
GET/api/v1/workspacesList workspaces accessible to you
GET/api/v1/workspaces/{workspaceId}Get a specific workspace
GET/api/v1/workspaces/{workspaceId}/contentsList all pages and databases in a workspace

Pages

MethodPathDescription
GET/api/v1/pagesList pages. Accepts search and limit query params
POST/api/v1/pagesCreate a page. Pass templateId to pre-populate content
GET/api/v1/pages/{pageId}Export a page's content, block data, and history
PATCH/api/v1/pages/{pageId}Update page metadata (tags, layout flags)
DELETE/api/v1/pages/{pageId}Permanently delete a page

Databases

MethodPathDescription
GET/api/v1/databasesList all databases accessible to you
POST/api/v1/databasesCreate a database with an initial properties schema
GET/api/v1/databases/{databaseId}Get database metadata (icon, description, settings)
GET/api/v1/databases/{databaseId}/propertiesGet the database schema only

Database Rows

MethodPathDescription
GET/api/v1/databases/{databaseId}/rowsFetch rows. Supports limit and offset pagination
POST/api/v1/databases/{databaseId}/rowsCreate a new row
GET/api/v1/databases/{databaseId}/rows/{rowId}Fetch a specific row's values
PATCH/api/v1/databases/{databaseId}/rows/{rowId}Partially update row fields (merge logic)
DELETE/api/v1/databases/{databaseId}/rows/{rowId}Delete a row

Integration Notes

Schema first

Always fetch /properties before writing rows. Ascend validates row data at runtime against each database's schema — sending unrecognised field names will result in a validation error.

Pagination

Row listing endpoints use cursor-free limit + offset pagination. The default limit is 50, maximum is 500.