Content API
The Weaverse Content API is a read-only REST API that lets you access your page content, theme settings, and project data from any application — headless frontends, mobile apps, static site generators, or custom integrations.The Content API is currently read-only (GET requests). Write endpoints are planned for a future release.
Base URL
Endpoints
| Method | Path | Description |
|---|---|---|
GET | /projects | List all projects |
GET | /projects/:projectId/pages | List page assignments |
GET | /projects/:projectId/pages/:type/:handle | Get page content |
GET | /projects/:projectId/theme-settings | Get theme settings |
GET | /openapi.json | OpenAPI 3.1 specification |
Authentication
All endpoints (except/openapi.json) require a Content API key. Pass it via the Authorization header:
Obtaining an API key
Content API keys are provisioned per shop. Generate one from the Weaverse Dashboard → Settings.Scoping
Each API key is scoped to a single Weaverse shop. Requests can only access projects that belong to that shop. Attempting to access another shop’s project returns a403 Forbidden error.
Pagination
List endpoints (/projects and /pages) use cursor-based pagination.
| Parameter | Type | Default | Description |
|---|---|---|---|
limit | integer | 50 | Items per page (max 100) |
after | string | — | Cursor from a previous response’s nextCursor |
Paginated response shape
nextCursorisnullwhen there are no more results.- Pass
nextCursoras theafterparameter to fetch the next page.
Example: iterating through pages
Error handling
All errors follow a consistent envelope:Error codes
| Code | HTTP Status | Description |
|---|---|---|
UNAUTHORIZED | 401 | Missing or invalid API key |
FORBIDDEN | 403 | Valid key, but no access to this resource |
PROJECT_NOT_FOUND | 404 | Project does not exist or was deleted |
PAGE_NOT_FOUND | 404 | Page assignment not found (after locale fallback) |
INVALID_PARAMS | 400 | Malformed request parameters or cursor |
INTERNAL_ERROR | 500 | Unexpected server error |
Usage tracking & billing
Every authenticated API request counts toward your plan’s usage quota. API hits share the same billing pool as storefront page views:- 1 API request = 1 page view hit
- Usage is tracked per project and appears in your billing dashboard
- Tracking is non-blocking — it never slows down API responses
- The
/openapi.jsonendpoint is public and not tracked
Quick start
TypeScript example
Next steps
List Projects
Retrieve all projects in your shop
List Pages
Browse page assignments in a project
Get Page Content
Fetch full page data with component items
Get Theme Settings
Retrieve theme design tokens and configuration