Literal AI Threads & Steps API

Create, read, update, upsert, and delete conversation threads and the nested steps (runs, tools, retrievals, LLM calls) that trace an LLM application's execution, queried and mutated over GraphQL.

OpenAPI Specification

literalai-openapi.yml Raw ↑
openapi: 3.0.1
info:
  title: Literal AI API
  description: >-
    HTTP transport model for the Literal AI observability, evaluation, and
    analytics platform. The Literal AI API is GraphQL: a single POST endpoint
    at /api/graphql accepts a GraphQL query/mutation document and variables.
    This OpenAPI document models that single endpoint so the GraphQL surface is
    discoverable in REST tooling; the full type system lives in
    graphql/literalai-schema.graphql. Authentication uses the x-api-key header.
  termsOfService: https://www.literalai.com/terms
  contact:
    name: Literal AI Support
    url: https://docs.literalai.com
  version: '1.0'
servers:
  - url: https://cloud.getliteral.ai
    description: Literal AI Cloud
  - url: '{baseUrl}'
    description: Self-hosted Literal AI deployment
    variables:
      baseUrl:
        default: https://cloud.getliteral.ai
        description: LITERAL_API_URL for self-hosted / enterprise installs.
security:
  - ApiKeyAuth: []
paths:
  /api/graphql:
    post:
      operationId: graphql
      tags:
        - GraphQL
      summary: Execute a GraphQL query or mutation.
      description: >-
        Single GraphQL endpoint for all Literal AI operations - threads, steps,
        generations, datasets, experiments, prompts, and scores. The request
        body carries a GraphQL document and an optional variables object;
        responses follow the standard GraphQL { data, errors } envelope.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GraphQLRequest'
            examples:
              getThread:
                summary: Fetch a thread with steps
                value:
                  query: >-
                    query GetThread($id: String!) { thread(id: $id) { id name
                    steps { id type input output } } }
                  variables:
                    id: thread_123
              createScore:
                summary: Attach a score to a step
                value:
                  query: >-
                    mutation CreateScore($name: String!, $type: ScoreType!,
                    $value: Float!, $stepId: String) { createScore(name: $name,
                    type: $type, value: $value, stepId: $stepId) { id value } }
                  variables:
                    name: relevance
                    type: HUMAN
                    value: 1
                    stepId: step_456
      responses:
        '200':
          description: >-
            GraphQL response. HTTP 200 is returned even for GraphQL-level
            errors, which appear in the errors array.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GraphQLResponse'
        '401':
          description: Missing or invalid x-api-key.
        '429':
          description: Rate limit / log-unit quota exceeded.
components:
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key
      description: >-
        Project API key from the Literal AI dashboard, supplied via the
        LITERAL_API_KEY environment variable in the SDKs.
  schemas:
    GraphQLRequest:
      type: object
      required:
        - query
      properties:
        query:
          type: string
          description: The GraphQL query or mutation document.
        operationName:
          type: string
          description: Name of the operation to run when the document defines several.
        variables:
          type: object
          additionalProperties: true
          description: Variables referenced by the GraphQL document.
    GraphQLResponse:
      type: object
      properties:
        data:
          type: object
          nullable: true
          additionalProperties: true
          description: Result payload keyed by the requested fields.
        errors:
          type: array
          description: GraphQL execution errors, when present.
          items:
            $ref: '#/components/schemas/GraphQLError'
    GraphQLError:
      type: object
      properties:
        message:
          type: string
        path:
          type: array
          items:
            type: string
        locations:
          type: array
          items:
            type: object
            properties:
              line:
                type: integer
              column:
                type: integer
        extensions:
          type: object
          additionalProperties: true