Galileo Public API

Public REST API for the Galileo platform (api.galileo.ai/v2). Provides projects, datasets, experiments, traces and spans, log streams, prompts, annotations, groups, integrations, users, API keys, and authentication. Authentication is via a Galileo-API-Key header or via OAuth2-password bearer token obtained at /v2/token. The canonical OpenAPI is published at https://api.galileo.ai/public/v2/openapi.json and a documentation index is available at https://docs.galileo.ai/llms.txt.

Documentation

Specifications

Other Resources

OpenAPI Specification

galileo-ai-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Galileo Public API
  version: "v2"
  description: |
    Best-effort OpenAPI 3.1 description of the Galileo (galileo.ai) public
    REST API for projects, datasets, experiments, traces, prompts, integrations,
    annotations, and groups. Generated from the public OpenAPI index at
    https://api.galileo.ai/public/v2/openapi.json; not an official copy.
  contact:
    name: Galileo Developer Docs
    url: https://docs.galileo.ai/
servers:
  - url: https://api.galileo.ai
    description: Galileo hosted production
security:
  - apiKeyHeader: []
  - bearerAuth: []
  - basicAuth: []
tags:
  - name: Health
  - name: Auth
  - name: Users
  - name: ApiKeys
  - name: Projects
  - name: Datasets
  - name: Experiments
  - name: Traces
  - name: Annotations
  - name: Groups
  - name: Integrations
paths:
  /v2/healthcheck:
    get:
      tags: [Health]
      operationId: healthcheck
      security: []
      responses:
        "200":
          description: Healthcheck response
          content:
            application/json:
              schema: { $ref: "#/components/schemas/Object" }
  /v2/token:
    get:
      tags: [Auth]
      operationId: getToken
      responses:
        "200": { $ref: "#/components/responses/Ok" }
  /v2/login:
    post:
      tags: [Auth]
      operationId: loginEmail
      requestBody:
        required: true
        content:
          application/json:
            schema: { $ref: "#/components/schemas/Object" }
      responses:
        "200": { $ref: "#/components/responses/Ok" }
  /v2/login/api_key:
    post:
      tags: [Auth]
      operationId: loginApiKey
      requestBody:
        required: true
        content:
          application/json:
            schema: { $ref: "#/components/schemas/Object" }
      responses:
        "200": { $ref: "#/components/responses/Ok" }
  /v2/refresh_token:
    post:
      tags: [Auth]
      operationId: refreshToken
      requestBody:
        required: true
        content:
          application/json:
            schema: { $ref: "#/components/schemas/Object" }
      responses:
        "200": { $ref: "#/components/responses/Ok" }
  /v2/users/{user_id}/api_keys:
    parameters: [{ $ref: "#/components/parameters/UserId" }]
    get:
      tags: [ApiKeys]
      operationId: listUserApiKeys
      responses:
        "200": { $ref: "#/components/responses/Ok" }
  /v2/users/api_keys:
    post:
      tags: [ApiKeys]
      operationId: createApiKey
      requestBody:
        required: true
        content:
          application/json:
            schema: { $ref: "#/components/schemas/Object" }
      responses:
        "201": { $ref: "#/components/responses/Ok" }
  /v2/users/api_keys/{api_key_id}:
    parameters:
      - in: path
        name: api_key_id
        required: true
        schema: { type: string }
    delete:
      tags: [ApiKeys]
      operationId: deleteApiKey
      responses:
        "204": { description: No Content }
  /v2/datasets:
    get:
      tags: [Datasets]
      operationId: listDatasets
      responses:
        "200": { $ref: "#/components/responses/Ok" }
    post:
      tags: [Datasets]
      operationId: createDataset
      requestBody:
        required: true
        content:
          application/json:
            schema: { $ref: "#/components/schemas/Object" }
      responses:
        "201": { $ref: "#/components/responses/Ok" }
  /v2/datasets/{dataset_id}:
    parameters: [{ $ref: "#/components/parameters/DatasetId" }]
    get:
      tags: [Datasets]
      operationId: getDataset
      responses:
        "200": { $ref: "#/components/responses/Ok" }
    patch:
      tags: [Datasets]
      operationId: updateDataset
      requestBody:
        required: true
        content:
          application/json:
            schema: { $ref: "#/components/schemas/Object" }
      responses:
        "200": { $ref: "#/components/responses/Ok" }
    delete:
      tags: [Datasets]
      operationId: deleteDataset
      responses:
        "204": { description: No Content }
  /v2/datasets/{dataset_id}/content:
    parameters: [{ $ref: "#/components/parameters/DatasetId" }]
    get:
      tags: [Datasets]
      operationId: getDatasetContent
      responses:
        "200": { $ref: "#/components/responses/Ok" }
    put:
      tags: [Datasets]
      operationId: replaceDatasetContent
      requestBody:
        required: true
        content:
          application/json:
            schema: { $ref: "#/components/schemas/Object" }
      responses:
        "200": { $ref: "#/components/responses/Ok" }
    patch:
      tags: [Datasets]
      operationId: patchDatasetContent
      requestBody:
        required: true
        content:
          application/json:
            schema: { $ref: "#/components/schemas/Object" }
      responses:
        "200": { $ref: "#/components/responses/Ok" }
  /v2/datasets/{dataset_id}/content/query:
    parameters: [{ $ref: "#/components/parameters/DatasetId" }]
    post:
      tags: [Datasets]
      operationId: queryDatasetContent
      requestBody:
        required: true
        content:
          application/json:
            schema: { $ref: "#/components/schemas/Object" }
      responses:
        "200": { $ref: "#/components/responses/Ok" }
  /v2/datasets/{dataset_id}/download:
    parameters: [{ $ref: "#/components/parameters/DatasetId" }]
    get:
      tags: [Datasets]
      operationId: downloadDataset
      responses:
        "200": { $ref: "#/components/responses/Ok" }
  /v2/projects/{project_id}/experiments:
    parameters: [{ $ref: "#/components/parameters/ProjectId" }]
    get:
      tags: [Experiments]
      operationId: listExperiments
      responses:
        "200": { $ref: "#/components/responses/Ok" }
    post:
      tags: [Experiments]
      operationId: createExperiment
      requestBody:
        required: true
        content:
          application/json:
            schema: { $ref: "#/components/schemas/Object" }
      responses:
        "201": { $ref: "#/components/responses/Ok" }
  /v2/projects/{project_id}/experiments/{experiment_id}:
    parameters:
      - $ref: "#/components/parameters/ProjectId"
      - in: path
        name: experiment_id
        required: true
        schema: { type: string }
    get:
      tags: [Experiments]
      operationId: getExperiment
      responses:
        "200": { $ref: "#/components/responses/Ok" }
    put:
      tags: [Experiments]
      operationId: updateExperiment
      requestBody:
        required: true
        content:
          application/json:
            schema: { $ref: "#/components/schemas/Object" }
      responses:
        "200": { $ref: "#/components/responses/Ok" }
    delete:
      tags: [Experiments]
      operationId: deleteExperiment
      responses:
        "204": { description: No Content }
  /v2/projects/{project_id}/experiments/search:
    parameters: [{ $ref: "#/components/parameters/ProjectId" }]
    post:
      tags: [Experiments]
      operationId: searchExperiments
      requestBody:
        required: true
        content:
          application/json:
            schema: { $ref: "#/components/schemas/Object" }
      responses:
        "200": { $ref: "#/components/responses/Ok" }
  /v2/projects/{project_id}/annotation/templates:
    parameters: [{ $ref: "#/components/parameters/ProjectId" }]
    get:
      tags: [Annotations]
      operationId: listAnnotationTemplates
      responses:
        "200": { $ref: "#/components/responses/Ok" }
    post:
      tags: [Annotations]
      operationId: createAnnotationTemplate
      requestBody:
        required: true
        content:
          application/json:
            schema: { $ref: "#/components/schemas/Object" }
      responses:
        "201": { $ref: "#/components/responses/Ok" }
  /v2/projects/{project_id}/annotation/ratings:
    parameters: [{ $ref: "#/components/parameters/ProjectId" }]
    post:
      tags: [Annotations]
      operationId: createAnnotationRatings
      requestBody:
        required: true
        content:
          application/json:
            schema: { $ref: "#/components/schemas/Object" }
      responses:
        "200": { $ref: "#/components/responses/Ok" }
  /v2/group_roles:
    get:
      tags: [Groups]
      operationId: listGroupRoles
      responses:
        "200": { $ref: "#/components/responses/Ok" }
  /v2/groups:
    get:
      tags: [Groups]
      operationId: listGroups
      responses:
        "200": { $ref: "#/components/responses/Ok" }
    post:
      tags: [Groups]
      operationId: createGroup
      requestBody:
        required: true
        content:
          application/json:
            schema: { $ref: "#/components/schemas/Object" }
      responses:
        "201": { $ref: "#/components/responses/Ok" }
  /v2/groups/{group_id}:
    parameters:
      - in: path
        name: group_id
        required: true
        schema: { type: string }
    get:
      tags: [Groups]
      operationId: getGroup
      responses:
        "200": { $ref: "#/components/responses/Ok" }
    patch:
      tags: [Groups]
      operationId: updateGroup
      requestBody:
        required: true
        content:
          application/json:
            schema: { $ref: "#/components/schemas/Object" }
      responses:
        "200": { $ref: "#/components/responses/Ok" }
    delete:
      tags: [Groups]
      operationId: deleteGroup
      responses:
        "204": { description: No Content }
  /v2/current_user/groups:
    get:
      tags: [Groups]
      operationId: getCurrentUserGroups
      responses:
        "200": { $ref: "#/components/responses/Ok" }
  /v2/integrations/available:
    get:
      tags: [Integrations]
      operationId: listAvailableIntegrations
      responses:
        "200": { $ref: "#/components/responses/Ok" }
  /v2/integrations/{name}:
    parameters:
      - in: path
        name: name
        required: true
        schema: { type: string }
    get:
      tags: [Integrations]
      operationId: getIntegration
      responses:
        "200": { $ref: "#/components/responses/Ok" }
  /v2/integrations/{name}/status:
    parameters:
      - in: path
        name: name
        required: true
        schema: { type: string }
    get:
      tags: [Integrations]
      operationId: getIntegrationStatus
      responses:
        "200": { $ref: "#/components/responses/Ok" }
components:
  parameters:
    UserId:
      in: path
      name: user_id
      required: true
      schema: { type: string }
    ProjectId:
      in: path
      name: project_id
      required: true
      schema: { type: string }
    DatasetId:
      in: path
      name: dataset_id
      required: true
      schema: { type: string }
  securitySchemes:
    apiKeyHeader:
      type: apiKey
      in: header
      name: Galileo-API-Key
    bearerAuth:
      type: http
      scheme: bearer
      description: OAuth 2.0 password bearer (JWT) issued by /v2/token
    basicAuth:
      type: http
      scheme: basic
  schemas:
    Object:
      type: object
      additionalProperties: true
  responses:
    Ok:
      description: Successful response
      content:
        application/json:
          schema: { $ref: "#/components/schemas/Object" }