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

# List datasets

> Lists the datasets in the selected tenant with their current state. Use a returned `dataset_id` to scope a search, export, or schema lookup.



## OpenAPI

````yaml /api-reference/openapi.json get /v1/datasets
openapi: 3.1.0
info:
  description: >-
    Splendor is a search and retrieval API for your operational data. Ingest

    datasets — logs, documents, and structured records — and query them through
    one

    consistent interface that spans full-text, SQL, and semantic (vector)
    search.


    Every request authenticates with a bearer token and selects a workspace with
    the

    `X-Splendor-Tenant-Id` header. Read and query operations are available to
    any

    member; operations that create, change, or delete data require an admin
    role.


    All search modes return one shared envelope, and every result carries
    provenance

    back to the exact source object it came from.
  title: Splendor API
  version: 1.0.0
servers:
  - description: Production
    url: https://api.withsplendor.com
security:
  - bearerAuth: []
tags:
  - description: Resolve the authenticated user and the tenants they can access.
    name: Identity
  - description: >-
      Build on Splendor as a platform: authenticate with a platform API key to
      provision an isolated tenant per end-customer and manage your platform
      keys.
    name: Platform
  - description: >-
      List datasets, inspect inferred schemas and readiness, and manage dataset
      lifecycle including deletion and schema rebuilds.
    name: Datasets & schema
  - description: >-
      Run full-text, SQL, and semantic search over your datasets, stream
      results, and resolve object media.
    name: Search & query
  - description: Save queries and materialize result sets for repeatable analysis.
    name: Views
  - description: >-
      Define named, versioned, parameterized SQL queries and manage their
      versions.
    name: Query Endpoints
  - description: Create and manage asynchronous exports of search results.
    name: Exports
  - description: >-
      Configure data sources, upload data through hosted multipart uploads,
      stream logs, and track ingest runs.
    name: Sources & ingest
  - description: >-
      Connect third-party systems by managing connector instances in the
      selected tenant.
    name: Connectors
  - description: Define and test detection rules that run against incoming data.
    name: Detections
  - description: Inspect discovered fields and promote them to fast, aggregatable fields.
    name: Fields
  - description: >-
      Operational visibility and recovery: audit logs, usage, dead-letter queue,
      reindex jobs, and data-deletion jobs.
    name: Operations
paths:
  /v1/datasets:
    get:
      tags:
        - Datasets & schema
      summary: List datasets
      description: >-
        Lists the datasets in the selected tenant with their current state. Use
        a returned `dataset_id` to scope a search, export, or schema lookup.
      operationId: listDatasets
      parameters:
        - $ref: '#/components/parameters/SplendorTenantId'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DatasetListResponse'
          description: Successful Response
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '503':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
          description: A required backend is temporarily unavailable.
components:
  parameters:
    SplendorTenantId:
      description: Selects the tenant (workspace) the request acts within.
      in: header
      name: x-splendor-tenant-id
      required: true
      schema:
        type: string
  schemas:
    DatasetListResponse:
      example:
        datasets:
          - dataset_id: app-logs
            exact_shape_count: 3
            readiness:
              dataset_id: app-logs
              dataset_semantic_backlog_count: 0
              document_semantic_backlog_count: 0
              document_semantic_search_ready: true
              documents:
                expected: 1240000
                index_committed: 1240000
                parsed: 1240000
                schema_observed: 1240000
                semantic_embedded: 1240000
                semantic_failed: 0
                semantic_total: 1240000
              ingest_run_count: 3
              lifecycle:
                reasons: []
                repairable: false
                state: ready
              ready_for:
                semantic_search: true
                sql_search: true
                text_search: true
              schema_ready: true
              semantic_configured: true
              semantic_failures: []
              semantic_search_ready: true
              status_counts:
                - count: 3
                  status: ready
              text_search_ready: true
              vocabulary_semantic_backlog_count: 0
              vocabulary_semantic_ready: true
            schema_revision: 4
            schema_updated_at: '2026-01-15T09:30:00Z'
            source_count: 2
            total_document_count: 1240000
      properties:
        datasets:
          items:
            $ref: '#/components/schemas/DatasetItem'
          title: Datasets
          type: array
      required:
        - datasets
      title: DatasetListResponse
      type: object
    ApiError:
      description: >-
        Error envelope returned by every Splendor API endpoint.


        ``detail`` is either a plain message string (most errors) or a
        structured

        ``{code, message}`` object (validation and capacity errors that carry a
        stable

        machine-readable code).
      examples:
        - detail: Dataset not found
        - detail:
            code: semantic_search_capacity_exhausted
            message: Semantic search capacity is temporarily exhausted; retry shortly.
      properties:
        detail:
          anyOf:
            - type: string
            - $ref: '#/components/schemas/ErrorBody'
          title: Detail
      required:
        - detail
      title: ApiError
      type: object
    DatasetItem:
      properties:
        dataset_id:
          title: Dataset Id
          type: string
        exact_shape_count:
          title: Exact Shape Count
          type: integer
        readiness:
          anyOf:
            - $ref: '#/components/schemas/DatasetReadinessSummary'
            - type: 'null'
        schema_revision:
          title: Schema Revision
          type: integer
        schema_updated_at:
          anyOf:
            - format: date-time
              type: string
            - type: 'null'
          title: Schema Updated At
        source_count:
          title: Source Count
          type: integer
        total_document_count:
          title: Total Document Count
          type: integer
      required:
        - dataset_id
        - source_count
        - total_document_count
        - exact_shape_count
        - schema_revision
        - schema_updated_at
      title: DatasetItem
      type: object
    ErrorBody:
      description: Structured error detail returned by validation and capacity errors.
      examples:
        - code: semantic_query_text_required
          message: Semantic vector search requires non-empty text.
      properties:
        code:
          title: Code
          type: string
        message:
          title: Message
          type: string
      required:
        - code
        - message
      title: ErrorBody
      type: object
    DatasetReadinessSummary:
      properties:
        dataset_id:
          title: Dataset Id
          type: string
        dataset_semantic_backlog_count:
          title: Dataset Semantic Backlog Count
          type: integer
        document_semantic_backlog_count:
          title: Document Semantic Backlog Count
          type: integer
        document_semantic_search_ready:
          title: Document Semantic Search Ready
          type: boolean
        documents:
          $ref: '#/components/schemas/IngestReadinessDocumentCounts'
        ingest_run_count:
          title: Ingest Run Count
          type: integer
        lifecycle:
          $ref: '#/components/schemas/IngestLifecycleDiagnostic'
        ready_for:
          $ref: '#/components/schemas/IngestReadinessReadyFor'
        schema_ready:
          title: Schema Ready
          type: boolean
        semantic_configured:
          title: Semantic Configured
          type: boolean
        semantic_failures:
          items:
            $ref: '#/components/schemas/SemanticFailureGroup'
          title: Semantic Failures
          type: array
        semantic_search_ready:
          title: Semantic Search Ready
          type: boolean
        status_counts:
          items:
            $ref: '#/components/schemas/IngestRunStatusCount'
          title: Status Counts
          type: array
        text_search_ready:
          title: Text Search Ready
          type: boolean
        vocabulary_semantic_backlog_count:
          title: Vocabulary Semantic Backlog Count
          type: integer
        vocabulary_semantic_ready:
          title: Vocabulary Semantic Ready
          type: boolean
      required:
        - dataset_id
        - schema_ready
        - text_search_ready
        - semantic_search_ready
        - document_semantic_search_ready
        - vocabulary_semantic_ready
        - dataset_semantic_backlog_count
        - document_semantic_backlog_count
        - vocabulary_semantic_backlog_count
        - semantic_configured
        - ready_for
        - documents
        - lifecycle
        - ingest_run_count
        - status_counts
      title: DatasetReadinessSummary
      type: object
    IngestReadinessDocumentCounts:
      properties:
        expected:
          anyOf:
            - type: integer
            - type: 'null'
          title: Expected
        index_committed:
          title: Index Committed
          type: integer
        parsed:
          title: Parsed
          type: integer
        schema_observed:
          title: Schema Observed
          type: integer
        semantic_embedded:
          title: Semantic Embedded
          type: integer
        semantic_failed:
          default: 0
          title: Semantic Failed
          type: integer
        semantic_total:
          title: Semantic Total
          type: integer
      required:
        - expected
        - parsed
        - index_committed
        - schema_observed
        - semantic_total
        - semantic_embedded
      title: IngestReadinessDocumentCounts
      type: object
    IngestLifecycleDiagnostic:
      properties:
        reasons:
          items:
            type: string
          title: Reasons
          type: array
        repairable:
          title: Repairable
          type: boolean
        state:
          enum:
            - waiting
            - ready
            - partial
            - repairable
            - failed
            - aborted
            - deleted
            - superseded
          title: State
          type: string
      required:
        - state
        - repairable
      title: IngestLifecycleDiagnostic
      type: object
    IngestReadinessReadyFor:
      properties:
        semantic_search:
          title: Semantic Search
          type: boolean
        sql_search:
          title: Sql Search
          type: boolean
        text_search:
          title: Text Search
          type: boolean
      required:
        - text_search
        - sql_search
        - semantic_search
      title: IngestReadinessReadyFor
      type: object
    SemanticFailureGroup:
      description: >-
        A rolled-up group of semantic documents that permanently failed to
        embed.


        Grouped by modality and a categorized failure reason, with a few example

        object keys. The counts read the dead-letter rows the embedder already
        wrote

        (it GETs each object and dead-letters a permanent failure), so a caller
        sees

        *why* a slice of a dataset never embedded — e.g. image references whose

        objects were never uploaded surface as ``object_not_found`` — instead of

        having to dig through worker logs.
      properties:
        count:
          title: Count
          type: integer
        media_kind:
          enum:
            - image
            - text
          title: Media Kind
          type: string
        reason:
          title: Reason
          type: string
        sample_keys:
          items:
            type: string
          title: Sample Keys
          type: array
      required:
        - media_kind
        - reason
        - count
      title: SemanticFailureGroup
      type: object
    IngestRunStatusCount:
      properties:
        count:
          title: Count
          type: integer
        status:
          title: Status
          type: string
      required:
        - status
        - count
      title: IngestRunStatusCount
      type: object
  responses:
    Unauthorized:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ApiError'
      description: The bearer token is missing, malformed, or expired.
    Forbidden:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ApiError'
      description: The token lacks access to the tenant or the role required.
  securitySchemes:
    bearerAuth:
      bearerFormat: JWT
      description: API token issued from the Splendor console.
      scheme: bearer
      type: http

````