> ## Documentation Index
> Fetch the complete documentation index at: https://docs.trackup.me/llms.txt
> Use this file to discover all available pages before exploring further.

# Publish a project page

> Requires page.update. Builder pages are rendered from their saved document (the same HTML the Trackup builder publishes). HTML pages publish from stored raw files and must have an HTML entry and a ready clone status when present. Redirect pages cannot be published through this operation. Returns url, where the page is served (primary project domain + page pathname). Storage must be configured.



## OpenAPI

````yaml https://api.trackup.me/openapi.json post /v1/projects/{id}/pages/{pageId}/publish
openapi: 3.1.0
info:
  title: Trackup API
  description: >-
    API-key-accessible Trackup operations. Send your key in the `X-Api-Key`
    header.


    Keys belong to a team. `X-Team-Id` is not required; if supplied, it must
    match that team.


    Each operation lists its required key permission. The key creator must
    remain a team member and normally hold that permission. The ingest-only
    permissions `visitor.create`, `conversion.create`, and `request.create` do
    not need to be held by the creator.


    Project access and selection are described per operation. Session-only
    account, administration and OAuth operations are not part of this reference.


    The same operations are available as MCP tools at `/mcp` (Streamable HTTP).
    Authenticate with `X-Api-Key` or connect through OAuth, which issues an API
    key on consent.


    Schema validation errors return HTTP 422 with an `errors` object. Other
    errors generally contain `error` and `message`; operation-specific responses
    describe exceptions.
  version: 1.0.0
servers:
  - url: /
    description: Current API environment
security:
  - ApiKey: []
paths:
  /v1/projects/{id}/pages/{pageId}/publish:
    post:
      tags:
        - Pages
      summary: Publish a project page
      description: >-
        Requires page.update. Builder pages are rendered from their saved
        document (the same HTML the Trackup builder publishes). HTML pages
        publish from stored raw files and must have an HTML entry and a ready
        clone status when present. Redirect pages cannot be published through
        this operation. Returns url, where the page is served (primary project
        domain + page pathname). Storage must be configured.
      operationId: publishPage
      parameters:
        - in: path
          name: id
          schema:
            type: string
            format: uuid
          required: true
        - in: path
          name: pageId
          schema:
            type: string
            format: uuid
          required: true
      responses:
        '200':
          description: Published page identifier, publication timestamp and public URL.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublishedPage'
        '400':
          description: Malformed request or an invalid operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '401':
          description: The X-Api-Key header is missing or the API key is invalid.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '403':
          description: >-
            The key is expired, revoked, lacks permission, or its creator no
            longer has the required team access. A conflicting X-Team-Id is also
            rejected.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '404':
          description: >-
            The requested resource was not found or is outside the permitted
            scope.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '422':
          description: >-
            Invalid input. Each field path maps to its first validation message;
            _form identifies an object-level error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        '500':
          description: An unexpected error occurred.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '503':
          description: The required service or worker is unavailable.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
components:
  schemas:
    PublishedPage:
      type: object
      properties:
        id:
          type: string
          format: uuid
        publishedAt:
          type: string
          format: date-time
        url:
          type:
            - string
            - 'null'
          format: uri
      required:
        - id
        - publishedAt
        - url
      example:
        id: 33333333-3333-4333-8333-333333333333
        publishedAt: '2026-10-26T12:45:00.000Z'
        url: https://autumn-shop.trackup.cloud/autumn-offer
    ApiError:
      type: object
      properties:
        error:
          type: string
        message:
          type: string
      required:
        - error
        - message
      additionalProperties: true
    ValidationError:
      type: object
      properties:
        errors:
          type: object
          additionalProperties:
            type: string
      required:
        - errors
  securitySchemes:
    ApiKey:
      type: apiKey
      in: header
      name: X-Api-Key

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.