Skip to main content

Content API

The Weaverse Content API is a REST API that lets you read and update your page content, theme settings, and project data from any application — headless frontends, mobile apps, static site generators, AI agents, or custom integrations.

Base URL

Endpoints

The endpoint reference in the sidebar is generated from the API’s OpenAPI 3.1 specification, and is refreshed each time the docs are deployed. Endpoints are grouped by area: Download the spec from any reference page to generate a client or load it into an API tool. The separate public discovery API exposes GET /api/public/v1/projects/:projectId/custom-pages for custom-page route metadata. It does not require a Content API key and does not filter assignments by publication state.
The Try it playground on GET reference pages sends real requests to production with the API key you enter. Write endpoints show the request only; send them from your own client.
Page endpoints capture the handle as the rest of the path. Use the exact handle returned by the pages list; custom page handles may include /, such as pages/gift-shop.

Response formats

Page and theme-settings endpoints support two output formats. The default is unchanged — existing integrations are unaffected. When both the query parameter and the Accept header are present, the query parameter wins. See Portable Text format for the mapping rules and a rendering example.
Portable Text is well-suited for multi-channel rendering (web, native, email, PDF) and for piping content into LLMs, since the structured JSON is far easier to query and reason over than HTML strings.

Authentication

All endpoints (except /openapi.json) require a Content API key. Pass it via the Authorization header:
A ?apiKey= query parameter fallback exists for development, but tokens in query strings appear in server and CDN logs. Always use the Authorization header in production.

Obtaining an API key

Content API keys are provisioned per shop. Generate one from the Weaverse Dashboard → Settings.

Shop isolation

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 a 403 Forbidden error.

Scopes

Scoped API keys and delegated MCP OAuth tokens carry a list of scopes. Each reference page ends with the scope it requires. A legacy API key without scopes keeps read, write and translation access and every endpoint that existed before scopes, but never gains publish, delete or project management. Translation-unit routes also accept a project-bound translation agent token.

Pagination

List endpoints (/projects and /pages) use cursor-based pagination.

Paginated response shape

  • nextCursor is null when there are no more results.
  • Pass nextCursor as the after parameter to fetch the next page.

Example: iterating through pages

Error handling

All errors follow a consistent envelope:
Some errors add a details object, for example the conflicting handles of a 409. Each reference page lists the errors that endpoint returns.

Error codes

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.json endpoint is public and not tracked
Monitor your API usage in the Weaverse Studio billing dashboard to avoid unexpected overages.

Quick start

1

Get your API key

Obtain a Content API key from your Weaverse Studio dashboard.
2

List your projects

3

Fetch page content

4

Render in your app

Use the returned items array to render page sections in any frontend framework.

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

Edit with Drafts

Save a draft, then publish or schedule it
Last modified on October 20, 2026