> ## 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.

# Get the curation ledger

> What the last curate recorded: the per-source hash and timestamp map, artifact edges, corpus groups, the live version pin, delete tombstones, artifact-reclaim intents, and the pointer and glossary resume cursors. Chunk ids are tracked too but not served — an internal retrieval unit.



## OpenAPI

````yaml https://raw.githubusercontent.com/pinecone-io/pinecone-api/refs/heads/main/2026-07/nexus_data_2026-07.oas.yaml get /contexts/{slug}/curate
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:
  /contexts/{slug}/curate:
    get:
      tags:
        - Curation
      summary: Get the curation ledger
      description: >-
        What the last curate recorded: the per-source hash and timestamp map,
        artifact edges, corpus groups, the live version pin, delete tombstones,
        artifact-reclaim intents, and the pointer and glossary resume cursors.
        Chunk ids are tracked too but not served — an internal retrieval unit.
      operationId: get_curation_ledger
      parameters:
        - in: path
          name: slug
          description: Context slug or UUID.
          required: true
          schema:
            type: string
          style: simple
        - 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: Curation state
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CurationState'
        '404':
          description: Not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
components:
  schemas:
    CurationState:
      description: What the last curate recorded, and what the next one resumes from.
      type: object
      properties:
        manifest:
          description: Per-source curate ledger, keyed by source path.
          type: object
          additionalProperties:
            $ref: '#/components/schemas/SourceManifestEntry'
        edges:
          description: >-
            Artifact ids each source contributed an edge to, keyed by source
            path.
          type: object
          additionalProperties:
            description: Artifact ids this source contributed an edge to.
            type: array
            items:
              description: One artifact id.
              type: string
        corpus_groups:
          description: The source groupings the corpus pass reduced over.
          type: array
          items:
            $ref: '#/components/schemas/CorpusGroup'
        live_version:
          description: The index version queries read.
          type: integer
          format: int64
        versions_stamped:
          description: >-
            Whether every index entry carries a version stamp, which is what
            lets a curate flip versions atomically.
          type: boolean
        source_removed:
          description: Delete tombstones awaiting the next curate, keyed by source path.
          type: object
          additionalProperties:
            $ref: '#/components/schemas/SourceRemoved'
        redispatch_count:
          description: >-
            How many times a curate on this context was killed and redispatched.
            The checkpointed run resumes rather than restarting.
          type: integer
        artifact_reclaim:
          description: Artifact swaps awaiting the next curate.
          type: array
          items:
            $ref: '#/components/schemas/ArtifactReclaim'
        source_pointers:
          description: >-
            The resume cursor a redispatched curate writes, keyed by source
            path. `{}` for a context whose curates all ran to completion.
          type: object
          additionalProperties:
            description: Mentions recorded for this source.
            type: array
            items:
              $ref: '#/components/schemas/PointerEntry'
        source_glossary:
          description: >-
            The glossary resume cursor, keyed by source path. `{}` for a context
            whose curates all ran to completion.
          type: object
          additionalProperties:
            description: Terms read verbatim out of the named file.
            type: array
            items:
              $ref: '#/components/schemas/GlossaryEntry'
      required:
        - manifest
        - edges
        - corpus_groups
        - live_version
        - versions_stamped
        - source_removed
        - redispatch_count
        - artifact_reclaim
        - source_pointers
        - source_glossary
    Error:
      description: The error envelope every non-2xx response uses.
      type: object
      properties:
        message:
          description: >-
            Human-readable explanation. Not stable — branch on `code`, not on
            this.
          type: string
        code:
          description: >-
            Stable machine-readable code, present only on errors a client must
            branch on. 
          x-enum:
            - unsupported_api_version
            - preview_not_enabled
            - preview_file_limit
            - preview_byte_limit
            - workspace_host_required
            - workspace_not_found
          type: string
      required:
        - message
    SourceManifestEntry:
      description: >-
        What curate recorded about one source. The hash is what makes an
        incremental curate possible — a source whose hash is unchanged is
        skipped.
      type: object
      properties:
        hash:
          description: Content hash of the source as curated.
          type: string
        curated_at:
          description: When this source was last curated.
          type: string
          format: date-time
        size:
          description: Byte size at curate time.
          type: integer
          format: int64
        mtime:
          nullable: true
          description: >-
            Source modification time at curate time. Null when the store
            reported none.
          type: string
          format: date-time
      required:
        - hash
        - curated_at
        - size
    CorpusGroup:
      description: >-
        A set of sources the corpus pass treats as one subject, so their
        mentions reduce into a single artifact.
      type: object
      properties:
        group_key:
          description: Stable identifier the reduce pass groups on.
          type: string
        member_sources:
          description: Source paths in the group.
          type: array
          items:
            description: One source path in the group.
            type: string
        canonical_name:
          description: The name the group's artifact is written under.
          type: string
        membership_hash:
          description: >-
            Hash of the membership. A change here means the group must be
            re-reduced.
          type: string
        added_version:
          description: Index version the group was added in.
          type: integer
          format: int64
      required:
        - group_key
        - member_sources
        - canonical_name
        - membership_hash
        - added_version
    SourceRemoved:
      description: >-
        A deferred whole-source delete tombstone. The source's index entries are
        dropped on the next curate rather than at delete time.
      type: object
      properties:
        removed_version:
          description: Index version the delete was recorded against.
          type: integer
          format: int64
        removed_at:
          nullable: true
          description: When the delete was requested.
          type: string
          format: date-time
      required:
        - removed_version
    ArtifactReclaim:
      description: >-
        An intent to swap one artifact for its replacement, recorded so the old
        one is dropped only once the new one is live.
      type: object
      properties:
        removed_id:
          description: The artifact being superseded.
          type: string
        added_id:
          description: The artifact replacing it.
          type: string
        version:
          description: Index version the swap belongs to.
          type: integer
          format: int64
      required:
        - removed_id
        - added_id
        - version
    PointerEntry:
      description: >-
        One recorded mention — what a single source said about a subject, held
        until the corpus pass reduces every mention of that subject into one
        artifact.
      type: object
      properties:
        type:
          description: Artifact-type name
          type: string
        name:
          description: The subject mentioned.
          type: string
        mention:
          description: What this source says about it.
          type: string
        seq:
          description: Ordinal of the mention within the source.
          type: integer
      required:
        - type
        - name
    GlossaryEntry:
      description: >-
        One term read verbatim out of a source by a `glossary`-kind artifact
        type.
      type: object
      properties:
        type:
          description: Artifact-type name.
          type: string
        name:
          description: The term.
          type: string
        clause:
          description: The source text defining it.
          type: string
      required:
        - type
        - name
        - clause
  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.

````