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

# Rebuild a page from the hub's sources

> Rebuilds a generated page from the hub's cached sources — the crawled website text and the notes it was written from — discarding any manual edits, and re-indexes it. The work finishes before the response: the `content` you get back is already the regenerated page and its `origin` is reset to `generated`, so there is nothing to poll. Pages you authored have no sources and answer 409 `KNOWLEDGE_PAGE_NOT_REGENERABLE`; so does a generated page whose sources have since been removed. Only the hub's owner can regenerate, at most 10 times per minute and 200 per day on top of the shared rate bucket.

Errors:
- `404` `KNOWLEDGE_HUB_NOT_FOUND` — No hub with that id, it was deleted, or it belongs to another team.
- `404` `KNOWLEDGE_PAGE_NOT_FOUND` — No page with that id on this hub.
- `409` `KNOWLEDGE_PAGE_NOT_REGENERABLE` — The page has no cached sources to rebuild from (you authored it, or its sources were removed).
- `409` `KNOWLEDGE_HUB_NOT_READY` — The hub is still building, or its build never finished.
- `409` `KNOWLEDGE_HUB_PAGES_UNAVAILABLE` — The hub predates knowledge pages.
- `403` `KNOWLEDGE_HUB_OWNER_ONLY` — You can read this teammate's hub but only its owner can regenerate pages.
- `422` `VALIDATION_FAILED` — hubId or pageId is not a 24-character hex id.
- `500` `UNEXPECTED_ERROR` — The synthesis model failed, or the regenerated page could not be re-indexed — retry.
- `429` `RATE_LIMITED` — The shared campaigns bucket was exceeded, or more than 10 regenerations in a minute / 200 in a day.

Requires one of the following token scopes: campaigns.



## OpenAPI

````yaml /openapi.json post /business/knowledge-hubs/{hubId}/pages/{pageId}/regenerate
openapi: 3.1.0
info:
  title: Fuse Business API
  version: 1.0.0
  description: >-
    External API for lists, campaigns, prospect search and contacts.
    Authenticate with your API token as HTTP Basic. All paths are under /api/v1.
servers:
  - url: https://api.tryfuse.ai/api/v1
    description: Production
security:
  - basicAuth: []
tags:
  - name: Lists
  - name: Custom columns
  - name: Smart columns
  - name: Exports
  - name: Campaigns
  - name: Knowledge hubs
  - name: Analytics
  - name: Website intent
  - name: Account
  - name: Prospect search
  - name: Campaign steps
  - name: Scheduled sends
  - name: Campaign templates
  - name: Agents
  - name: Research
  - name: Company search
  - name: Saved searches
  - name: Folders
  - name: Contacts
paths:
  /business/knowledge-hubs/{hubId}/pages/{pageId}/regenerate:
    post:
      tags:
        - Knowledge hubs
      summary: Rebuild a page from the hub's sources
      description: >-
        Rebuilds a generated page from the hub's cached sources — the crawled
        website text and the notes it was written from — discarding any manual
        edits, and re-indexes it. The work finishes before the response: the
        `content` you get back is already the regenerated page and its `origin`
        is reset to `generated`, so there is nothing to poll. Pages you authored
        have no sources and answer 409 `KNOWLEDGE_PAGE_NOT_REGENERABLE`; so does
        a generated page whose sources have since been removed. Only the hub's
        owner can regenerate, at most 10 times per minute and 200 per day on top
        of the shared rate bucket.


        Errors:

        - `404` `KNOWLEDGE_HUB_NOT_FOUND` — No hub with that id, it was deleted,
        or it belongs to another team.

        - `404` `KNOWLEDGE_PAGE_NOT_FOUND` — No page with that id on this hub.

        - `409` `KNOWLEDGE_PAGE_NOT_REGENERABLE` — The page has no cached
        sources to rebuild from (you authored it, or its sources were removed).

        - `409` `KNOWLEDGE_HUB_NOT_READY` — The hub is still building, or its
        build never finished.

        - `409` `KNOWLEDGE_HUB_PAGES_UNAVAILABLE` — The hub predates knowledge
        pages.

        - `403` `KNOWLEDGE_HUB_OWNER_ONLY` — You can read this teammate's hub
        but only its owner can regenerate pages.

        - `422` `VALIDATION_FAILED` — hubId or pageId is not a 24-character hex
        id.

        - `500` `UNEXPECTED_ERROR` — The synthesis model failed, or the
        regenerated page could not be re-indexed — retry.

        - `429` `RATE_LIMITED` — The shared campaigns bucket was exceeded, or
        more than 10 regenerations in a minute / 200 in a day.


        Requires one of the following token scopes: campaigns.
      operationId: regenerateKnowledgeHubPage
      parameters:
        - name: hubId
          in: path
          required: true
          description: >-
            24-character hex id of the knowledge hub (from GET
            /business/knowledge-hubs).
          schema:
            type: string
            description: >-
              24-character hex id of the knowledge hub (from GET
              /business/knowledge-hubs).
        - name: pageId
          in: path
          required: true
          description: >-
            24-character hex id of the knowledge page (from GET
            /business/knowledge-hubs/{hubId}/pages).
          schema:
            type: string
            description: >-
              24-character hex id of the knowledge page (from GET
              /business/knowledge-hubs/{hubId}/pages).
      responses:
        '202':
          description: Success
          headers:
            RateLimit-Limit:
              schema:
                type: integer
              description: Requests permitted in the current window.
            RateLimit-Remaining:
              schema:
                type: integer
              description: Requests remaining in the current window.
            RateLimit-Reset:
              schema:
                type: integer
              description: Seconds until the current window resets.
          content:
            application/json:
              schema:
                type: object
                required:
                  - page
                properties:
                  page:
                    type: object
                    required:
                      - id
                      - title
                      - content
                      - origin
                      - updatedAt
                    description: >-
                      The fields the update reports. Read the page back with GET
                      /business/knowledge-hubs/{hubId}/pages for its category
                      and createdAt.
                    properties:
                      id:
                        type: string
                      title:
                        type:
                          - string
                          - 'null'
                      content:
                        type:
                          - string
                          - 'null'
                        description: The page body in Markdown, as stored after this call.
                      origin:
                        type:
                          - string
                          - 'null'
                        enum:
                          - generated
                          - edited
                          - user
                          - null
                        description: >-
                          Always `generated` after a regeneration — the rebuild
                          discards the `edited` marker.
                      updatedAt:
                        type:
                          - string
                          - 'null'
                        format: date-time
              example:
                page:
                  id: 68a1fc209c41d20014b3f301
                  title: Pricing
                  content: '## Plans\n\nStarter is 49 GBP per month per employer.'
                  origin: generated
                  updatedAt: '2026-08-25T16:52:11.004Z'
        '400':
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '402':
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '409':
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '422':
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '429':
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '500':
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      security:
        - basicAuth: []
components:
  schemas:
    Error:
      type: object
      properties:
        error:
          type: object
          properties:
            code:
              type: string
            message:
              type: string
            param:
              type:
                - string
                - 'null'
            doc_url:
              type:
                - string
                - 'null'
            request_id:
              type:
                - string
                - 'null'
          required:
            - code
            - message
      required:
        - error
  securitySchemes:
    basicAuth:
      type: http
      scheme: basic
      description: >-
        Your API token (`af_…`) as the Basic-auth username, with an empty
        password.

````