---
title: "Add pages structurally (no LLM turn)"
method: POST
path: "/dashboards/{dashboard_id}/pages"
tags: ["Dashboard v3"]
---

# Add pages structurally (no LLM turn)

`POST /dashboards/{dashboard_id}/pages`

## Request

- Base URL: `https://app.mammoth.io/api/v2`
- URL: `https://app.mammoth.io/api/v2/dashboards/{dashboard_id}/pages`
- Auth: one of:
  - HTTP bearer
  - API key in header `X-API-KEY` and API key in header `X-API-SECRET` and API key in header `X-WORKSPACE-ID`

The promptless '+ add page' seam: submit one or more structural page specs ({title?, type?, focus?}) and the server applies them through the SAME apply_controls pipeline the chat add_pages path uses — each page is grounded, SEEDED (a contentless authored page gets a starter composition; a comparison page gets its compare block + faceted figures) and lands baked, never an empty tab. Appends a new draft head (optimistic concurrency via base_sequence → 409) and kicks the async bake, like the canvas save. The blocking apply runs off the event loop. Prefer this over composing a page and PUTting it raw.

## Path parameters

- `dashboard_id` integer, required

## Request body

- AddPagesSpec: Structural add-pages parameters
  - `params` AddPagesParams, required
    - `pages` object[], required: Structural page specs (PageAdd shape)
    - `base_sequence` integer, nullable: Optimistic-concurrency token: the draft sequence this edit was based on. 409 when the head has moved past it.
    - `activity` object, nullable: Optional manual-edit activity turn (round-26 §3.3), same shape as the canvas-save activity row — one persist = one timeline turn.

## Response `202`

Pages composed + appended; bake running asynchronously

- AddPagesResponse
  - `sequence` integer, required: The new draft head sequence
  - `bake_job_id` integer, required: Job id of the async bake
  - `added_page_ids` string[]: Ids of the pages created this call
  - `message` string: The grounded built/couldn't-do reply

## Other responses

- `400`: Bad request syntax or unsupported method
- `403`: Request forbidden -- authorization will not help

---

[API](https://skmtc.dev/mammoth/apis/mammoth-analytics.md) · [All operations](https://skmtc.dev/mammoth/apis/mammoth-analytics/llms.txt) · [OpenAPI document](https://skmtc.dev/mammoth/apis/mammoth-analytics/revisions/fe078afe239b?raw)
