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

# Ensure Namespace Payload Indexes

> (Re-)create the namespace's declared payload indexes in the vector store, including FULLTEXT/BM25, idempotently. ZERO-EXTRACTION: registers any missing indexes and backfills existing documents WITHOUT triggering any ingest or re-extraction. Use to repair a missing index (e.g. a FULLTEXT index that failed to register) or as a self-serve re-index tool — no re-ingest, no GPU.

READING THE RESPONSE: `ensured` lists indexes the call confirmed present — it does NOT mean they were newly built, and an already-registered index is a cheap no-op on the shard. `rebuilt` is populated only with `force_rebuild=true`, which is the case that does real work. `skipped` is normally empty because the store reports an idempotent no-op as success rather than an error, so an empty `skipped` does not imply the rest were created. `created` is a deprecated alias of `ensured` + `rebuilt`.

COST: a plain ensure is cheap. `force_rebuild=true` applies to EVERY declared index, drops and rebuilds each from the complete store, and for FULLTEXT fields first hydrates the full payload store — no GPU, but real shard CPU and memory proportional to the corpus. Size it before running on a large or memory-constrained namespace.



## OpenAPI

````yaml post /v1/namespaces/{namespace_identifier}/ensure-indexes
openapi: 3.1.0
info:
  title: Mixpeek API
  description: >-
    This is the Mixpeek API, providing access to various endpoints for data
    processing and retrieval.
  termsOfService: https://mixpeek.com/terms
  contact:
    name: Mixpeek Support
    url: https://mixpeek.com/contact
    email: info@mixpeek.com
  version: '0.82'
servers:
  - url: https://api.mixpeek.com
    description: Production
security:
  - BearerAuth: []
paths:
  /v1/namespaces/{namespace_identifier}/ensure-indexes:
    post:
      tags:
        - Namespaces
      summary: Ensure Namespace Payload Indexes
      description: >-
        (Re-)create the namespace's declared payload indexes in the vector
        store, including FULLTEXT/BM25, idempotently. ZERO-EXTRACTION: registers
        any missing indexes and backfills existing documents WITHOUT triggering
        any ingest or re-extraction. Use to repair a missing index (e.g. a
        FULLTEXT index that failed to register) or as a self-serve re-index tool
        — no re-ingest, no GPU.


        READING THE RESPONSE: `ensured` lists indexes the call confirmed present
        — it does NOT mean they were newly built, and an already-registered
        index is a cheap no-op on the shard. `rebuilt` is populated only with
        `force_rebuild=true`, which is the case that does real work. `skipped`
        is normally empty because the store reports an idempotent no-op as
        success rather than an error, so an empty `skipped` does not imply the
        rest were created. `created` is a deprecated alias of `ensured` +
        `rebuilt`.


        COST: a plain ensure is cheap. `force_rebuild=true` applies to EVERY
        declared index, drops and rebuilds each from the complete store, and for
        FULLTEXT fields first hydrates the full payload store — no GPU, but real
        shard CPU and memory proportional to the corpus. Size it before running
        on a large or memory-constrained namespace.
      operationId: >-
        ensure_namespace_indexes_v1_namespaces__namespace_identifier__ensure_indexes_post
      parameters:
        - name: namespace_identifier
          in: path
          required: true
          schema:
            type: string
            description: Either the namespace name or namespace ID
            examples:
              - my_namespace
              - ns_1234567890
            title: Namespace Identifier
          description: Either the namespace name or namespace ID
        - name: force_rebuild
          in: query
          required: false
          schema:
            type: boolean
            description: >-
              Drop and rebuild each index from the complete store instead of the
              normal idempotent ensure. Use to repair a FULLTEXT/BM25 field that
              registered empty during a cold shard warmup (no cluster access
              needed — the shard grpc is in-cluster only, so this API is the
              sole trigger). Default false.
            default: false
            title: Force Rebuild
          description: >-
            Drop and rebuild each index from the complete store instead of the
            normal idempotent ensure. Use to repair a FULLTEXT/BM25 field that
            registered empty during a cold shard warmup (no cluster access
            needed — the shard grpc is in-cluster only, so this API is the sole
            trigger). Default false.
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      security:
        - BearerAuth: []
components:
  schemas:
    ErrorResponse:
      properties:
        success:
          type: boolean
          title: Success
          description: Always false for error responses
          default: false
        status:
          type: integer
          title: Status
          description: HTTP status code for this error
        error:
          $ref: '#/components/schemas/ErrorDetail'
          description: Error details payload
      type: object
      required:
        - status
        - error
      title: ErrorResponse
      description: Error response model.
      examples:
        - error:
            details:
              id: ns_123
              resource: namespace
            message: Namespace not found
            type: NotFoundError
          status: 404
          success: false
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    ErrorDetail:
      properties:
        message:
          type: string
          title: Message
          description: Human-readable error message
        type:
          type: string
          title: Type
          description: Stable error type identifier (machine-readable)
        code:
          anyOf:
            - type: string
            - type: 'null'
          title: Code
          description: >-
            Fine-grained error code for programmatic handling (e.g.,
            namespace_name_taken, feature_extractor_not_found). Present only
            when consumers may need to branch on a specific error condition.
        details:
          anyOf:
            - additionalProperties: true
              type: object
            - type: 'null'
          title: Details
          description: >-
            Optional structured details to help debugging (validation errors,
            IDs, etc.)
      type: object
      required:
        - message
        - type
      title: ErrorDetail
      description: Error detail model.
    ValidationError:
      properties:
        loc:
          items:
            anyOf:
              - type: string
              - type: integer
          type: array
          title: Location
        msg:
          type: string
          title: Message
        type:
          type: string
          title: Error Type
        input:
          title: Input
        ctx:
          type: object
          title: Context
      type: object
      required:
        - loc
        - msg
        - type
      title: ValidationError
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      description: >-
        Mixpeek API key, sent as `Authorization: Bearer mxp_sk_...`. Create one
        in Studio under Settings → API Keys, or with an admin key via `POST
        /v1/organizations/users/{user_email}/api-keys`. A missing header returns
        403; an invalid or revoked key returns 401.

````