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

# List the selectable query models

> What the `model` field on `POST /query` draws from: the default, every catalog entry, the tier → model-id map, per-phase defaults, and the curate-capable ids. Only entries with `available: true` are selectable; the rest are rejected with `400`.



## OpenAPI

````yaml https://raw.githubusercontent.com/pinecone-io/pinecone-api/refs/heads/main/2026-07/nexus_data_2026-07.oas.yaml get /models
openapi: 3.0.3
info:
  title: Nexus API
  description: >
    Nexus turns a set of sources into a queryable, self-improving knowledge
    base. A context is **sources + a manifest**: upload sources, **curate** them
    into a searchable index, then query it. The manifest, one validated JSON
    document, defines how the context indexes, retrieves and answers.


    Curate is explicit — nothing is queryable until you run it. `{slug}` accepts
    a context's slug or its UUID. Query with `POST /api/query`, one turn per
    call, and read the answer from `output[].content[].text`; multi-turn
    conversations are sessions. Tasks are project-owned at `/api/tasks`, not
    nested under contexts.
  contact:
    name: Pinecone Support
    url: https://support.pinecone.io
    email: support@pinecone.io
  license:
    name: Apache 2.0
    url: https://www.apache.org/licenses/LICENSE-2.0
  version: 2026-07
servers:
  - url: https://{host}/api
    description: Your Nexus deployment host
    variables:
      host:
        default: api.example.com
        description: Host of your Nexus deployment.
security:
  - bearerAuth: []
  - apiKey: []
tags:
  - name: Auth
    description: Login and identity.
  - name: Project
    description: The active Pinecone project and its disclosure state.
  - name: Contexts
    description: A context is sources + a manifest. Curate it explicitly before querying.
  - name: Manifest
    description: Manifest templates and the per-context manifest.
  - name: Source Files
    description: >-
      Per-context source imports (upload, connector, public repo) and the source
      file tree.
  - name: Knowledge
    description: Read-only browse of curated knowledge (chunks + artifacts).
  - name: Curation
    description: Curate workflow trigger, curation ledger, and version-pin primitives.
  - name: Connectors
    description: >-
      Project-level links to external source providers (Box, ...). Linked via
      OAuth or an API key, then used to import source documents into a context.
  - name: Query
    description: >-
      The unified KnowQL Query API: run a query turn (`/query`), fetch a turn
      (`/queries/{id}`), inspect its trace, manage feedback, comparison flags,
      and multi-turn sessions (`/sessions`).
  - name: Tasks
    description: >-
      Top-level, project-owned task records for every workflow (optimize,
      curate, search, work, explore, profile, import, pack, restore, groom).
  - name: Task Files
    description: Read, list, and delete files from live or archived task containers.
paths:
  /models:
    get:
      tags:
        - Query
      summary: List the selectable query models
      description: >-
        What the `model` field on `POST /query` draws from: the default, every
        catalog entry, the tier → model-id map, per-phase defaults, and the
        curate-capable ids. Only entries with `available: true` are selectable;
        the rest are rejected with `400`.
      operationId: list_models
      parameters:
        - in: header
          name: X-Pinecone-Api-Version
          description: >-
            Date-based contract version, echoed back on the same header. Omit
            for the default (`2026-07`); send `unstable` for the in-development
            surface. An unrecognized value is rejected with `400
            unsupported_api_version`.
          schema:
            default: 2026-07
            x-enum:
              - 2026-07
              - unstable
            type: string
          style: simple
      responses:
        '200':
          description: The model catalog
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ModelCatalog'
components:
  schemas:
    ModelCatalog:
      description: The models this deployment can run, and the defaults it resolves.
      type: object
      properties:
        default:
          description: Model id used when `model` is omitted
          type: string
        models:
          description: Every catalog entry, selectable or not.
          type: array
          items:
            description: One catalog entry.
            type: object
            properties:
              id:
                description: >-
                  Catalog model id, passed as `model` on `POST /query`. Some
                  carry a vendor prefix and some do not, so treat it as opaque.
                type: string
              label:
                description: Display name.
                type: string
              provider:
                description: Who serves the model.
                type: string
              available:
                description: >-
                  Whether the model can be selected. An unavailable one is
                  rejected with `400`.
                type: boolean
            required:
              - id
              - label
              - provider
              - available
        tiers:
          description: >-
            Tier (`lite`/`standard`/`pro`) → resolved model id. A tier name is
            accepted anywhere a model id is, so a caller can ask for `standard`
            and let the deployment choose.
          type: object
          additionalProperties:
            description: The model id the tier resolves to.
            type: string
        phase_defaults:
          description: Workflow phase → the model id or tier name that phase defaults to.
          type: object
          additionalProperties:
            description: The model id or tier the phase defaults to.
            type: string
        supported_curate_models:
          description: >-
            Model ids the curate runtime accepts — a subset of the catalog,
            since curate reads the whole corpus and is priced accordingly.
          type: array
          items:
            description: One entry the curate runtime accepts.
            type: string
        query_defaults:
          description: >-
            The per-turn harness values a turn runs with when the request sets
            none.
          allOf:
            - $ref: '#/components/schemas/QueryDefaults'
      required:
        - default
        - models
        - tiers
        - phase_defaults
        - supported_curate_models
        - query_defaults
    QueryDefaults:
      description: >-
        What `max_steps` and `thinking_level` resolve to when `POST /query`
        omits them. Read these to populate a picker rather than hard-coding the
        caps.
      type: object
      properties:
        max_steps:
          description: >-
            Workflow selector → its agentic tool-loop step cap. Keyed by the
            same selectors `POST /query` accepts, since each runs a different
            loop.
          type: object
          additionalProperties:
            description: The step cap that selector runs with.
            type: integer
            format: int64
        thinking_levels:
          description: >-
            Every accepted `thinking_level`, ascending. A value outside this
            list is rejected with `400`.
          type: array
          items:
            description: One reasoning depth the deployment allows.
            type: string
        thinking_level:
          description: The level a turn runs at when the request omits one.
          type: string
      required:
        - max_steps
        - thinking_levels
        - thinking_level
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: >-
        Session token from `POST /auth/login`, sent as `Authorization: Bearer
        <token>`.
    apiKey:
      type: apiKey
      in: header
      name: Api-Key
      description: Pinecone API key, accepted as an alternative to the bearer token.

````