Evidently AI Snapshots API
Upload and query evaluation snapshots (reports and test suites)
Upload and query evaluation snapshots (reports and test suites)
openapi: 3.0.1
info:
title: Evidently Platform REST Dashboards Snapshots API
description: 'The Evidently Platform REST API provides programmatic access to the Evidently AI observability platform. It enables developers to manage projects, upload evaluation snapshots, query monitoring dashboards, manage datasets, and run trace-based LLM evaluations. Authentication uses a Bearer token (API key) passed via the Authorization header or configured through the EVIDENTLY_API_KEY environment variable. The API is built on the Litestar ASGI framework and exposes versioned routes under /api and /api/v2.
'
version: 0.7.17
license:
name: Apache 2.0
url: https://www.apache.org/licenses/LICENSE-2.0
contact:
name: Evidently AI
url: https://www.evidentlyai.com/
email: hello@evidentlyai.com
servers:
- url: https://app.evidently.cloud/api
description: Evidently Cloud (hosted platform)
- url: http://localhost:8000/api
description: Self-hosted / local instance
security:
- bearerAuth: []
tags:
- name: Snapshots
description: Upload and query evaluation snapshots (reports and test suites)
paths:
/projects/{project_id}/reports:
get:
operationId: listReports
summary: List reports for a project
description: Returns all snapshot-based reports stored under this project.
tags:
- Snapshots
parameters:
- $ref: '#/components/parameters/ProjectId'
responses:
'200':
description: List of reports
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/ReportModel'
'404':
$ref: '#/components/responses/NotFound'
/projects/{project_id}/snapshots:
get:
operationId: listSnapshots
summary: List snapshots for a project
description: Returns metadata for all snapshots (reports and test suites) stored in this project.
tags:
- Snapshots
parameters:
- $ref: '#/components/parameters/ProjectId'
responses:
'200':
description: Snapshot metadata list
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/SnapshotMetadata'
'404':
$ref: '#/components/responses/NotFound'
/projects/{project_id}/{snapshot_id}/metadata:
get:
operationId: getSnapshotMetadata
summary: Get snapshot metadata
description: Returns metadata for a single snapshot identified by its UUID.
tags:
- Snapshots
parameters:
- $ref: '#/components/parameters/ProjectId'
- $ref: '#/components/parameters/SnapshotId'
responses:
'200':
description: Snapshot metadata
content:
application/json:
schema:
$ref: '#/components/schemas/SnapshotMetadata'
'404':
$ref: '#/components/responses/NotFound'
/projects/{project_id}/{snapshot_id}/data:
get:
operationId: getSnapshotData
summary: Get snapshot widget data
description: Returns JSON-serialised dashboard/widget data for a snapshot.
tags:
- Snapshots
parameters:
- $ref: '#/components/parameters/ProjectId'
- $ref: '#/components/parameters/SnapshotId'
responses:
'200':
description: Dashboard info JSON
content:
application/json:
schema:
type: string
'404':
$ref: '#/components/responses/NotFound'
/projects/{project_id}/{snapshot_id}/download:
get:
operationId: downloadSnapshot
summary: Download a snapshot
description: Downloads a snapshot as HTML or JSON. Use the `report_format` query parameter to choose format.
tags:
- Snapshots
parameters:
- $ref: '#/components/parameters/ProjectId'
- $ref: '#/components/parameters/SnapshotId'
- name: report_format
in: query
required: false
schema:
type: string
enum:
- html
- json
default: html
responses:
'200':
description: Snapshot file download
content:
text/html:
schema:
type: string
format: binary
application/json:
schema:
type: string
format: binary
'400':
$ref: '#/components/responses/BadRequest'
'404':
$ref: '#/components/responses/NotFound'
/projects/{project_id}/{snapshot_id}/graphs_data/{graph_id}:
get:
operationId: getSnapshotGraphData
summary: Get graph data from a snapshot
description: Returns JSON data for a specific graph widget within a snapshot.
tags:
- Snapshots
parameters:
- $ref: '#/components/parameters/ProjectId'
- $ref: '#/components/parameters/SnapshotId'
- name: graph_id
in: path
required: true
description: ID of the graph widget within the snapshot
schema:
type: string
responses:
'200':
description: Graph widget data JSON
content:
application/json:
schema:
type: string
'404':
$ref: '#/components/responses/NotFound'
/v2/snapshots/{project_id}:
post:
operationId: addSnapshot
summary: Upload a snapshot
description: 'Uploads a serialised Evidently snapshot (report or test suite) to a project. The request body should be a JSON-encoded SnapshotModel object.
'
tags:
- Snapshots
parameters:
- $ref: '#/components/parameters/ProjectId'
requestBody:
required: true
content:
application/octet-stream:
schema:
type: string
format: binary
responses:
'201':
description: Snapshot upload result
content:
application/json:
schema:
$ref: '#/components/schemas/AddSnapshotResponse'
'404':
$ref: '#/components/responses/NotFound'
/v2/snapshots/{project_id}/{snapshot_id}:
delete:
operationId: deleteSnapshot
summary: Delete a snapshot
description: Permanently removes a snapshot from a project.
tags:
- Snapshots
parameters:
- $ref: '#/components/parameters/ProjectId'
- $ref: '#/components/parameters/SnapshotId'
responses:
'204':
description: Snapshot deleted
'404':
$ref: '#/components/responses/NotFound'
/v2/snapshots/{project_id}/metrics:
get:
operationId: getSnapshotsMetrics
summary: List snapshot metrics
description: Returns the list of metric types recorded in snapshots for a project, optionally filtered by tags and metadata.
tags:
- Snapshots
parameters:
- $ref: '#/components/parameters/ProjectId'
- name: tags
in: query
required: false
schema:
type: string
description: JSON-encoded list of tag strings
- name: metadata
in: query
required: false
schema:
type: string
description: JSON-encoded key-value metadata map
responses:
'200':
description: List of metric type names
content:
application/json:
schema:
$ref: '#/components/schemas/MetricsList'
/v2/snapshots/{project_id}/labels:
get:
operationId: getSnapshotsMetricLabels
summary: List metric labels
description: Returns the label keys for a given metric type across all snapshots in a project.
tags:
- Snapshots
parameters:
- $ref: '#/components/parameters/ProjectId'
- name: metric_type
in: query
required: true
schema:
type: string
- name: tags
in: query
required: false
schema:
type: string
- name: metadata
in: query
required: false
schema:
type: string
responses:
'200':
description: Label keys
content:
application/json:
schema:
$ref: '#/components/schemas/LabelsList'
/v2/snapshots/{project_id}/label_values:
get:
operationId: getSnapshotsMetricLabelValues
summary: List metric label values
description: Returns the distinct values for a metric label across all snapshots in a project.
tags:
- Snapshots
parameters:
- $ref: '#/components/parameters/ProjectId'
- name: metric_type
in: query
required: true
schema:
type: string
- name: label
in: query
required: true
schema:
type: string
- name: tags
in: query
required: false
schema:
type: string
- name: metadata
in: query
required: false
schema:
type: string
responses:
'200':
description: Label values
content:
application/json:
schema:
$ref: '#/components/schemas/LabelValuesList'
/v2/snapshots/{project_id}/data_series_batch:
post:
operationId: getSnapshotsMetricsDataBatch
summary: Get metric data series (batch)
description: 'Returns time-series data for one or more metrics across all snapshots in a project, optionally bounded by timestamp range.
'
tags:
- Snapshots
parameters:
- $ref: '#/components/parameters/ProjectId'
- name: timestamp_start
in: query
required: false
schema:
type: string
format: date-time
- name: timestamp_end
in: query
required: false
schema:
type: string
format: date-time
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/BatchMetricData'
responses:
'200':
description: Series data response
content:
application/json:
schema:
$ref: '#/components/schemas/SeriesResponse'
components:
schemas:
MetricsList:
type: object
description: List of metric type identifiers
properties:
metrics:
type: array
items:
type: string
example:
- DatasetDriftMetric
- ColumnDriftMetric
- DatasetMissingValuesMetric
BatchMetricData:
type: object
description: Request body for batch metric data series retrieval
properties:
series_filter:
type: array
description: List of metric series filters
items:
type: object
additionalProperties: true
AddSnapshotResponse:
type: object
description: Response returned after a successful snapshot upload
properties:
snapshot_id:
type: string
format: uuid
LabelValuesList:
type: object
description: Distinct values for a metric label
properties:
label_values:
type: array
items:
type: string
LabelsList:
type: object
description: List of label keys for a metric
properties:
labels:
type: array
items:
type: string
SnapshotMetadata:
type: object
description: Metadata for a single Evidently snapshot (report or test suite)
properties:
id:
type: string
format: uuid
project_id:
type: string
format: uuid
timestamp:
type: string
format: date-time
metadata:
type: object
additionalProperties: true
tags:
type: array
items:
type: string
links:
type: array
description: Links to associated datasets
items:
type: object
ReportModel:
type: object
description: Summary metadata for a snapshot-based report
properties:
id:
type: string
format: uuid
project_id:
type: string
format: uuid
name:
type: string
timestamp:
type: string
format: date-time
metadata:
type: object
additionalProperties: true
tags:
type: array
items:
type: string
ErrorDetail:
type: object
description: Error response body
properties:
detail:
type: string
description: Human-readable error message
example: project not found
status_code:
type: integer
example: 404
SeriesResponse:
type: object
description: Time-series data response for metrics across snapshots
additionalProperties: true
responses:
BadRequest:
description: Bad request
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorDetail'
NotFound:
description: Resource not found
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorDetail'
parameters:
ProjectId:
name: project_id
in: path
required: true
description: UUID of the project
schema:
type: string
format: uuid
SnapshotId:
name: snapshot_id
in: path
required: true
description: UUID of the snapshot
schema:
type: string
format: uuid
securitySchemes:
bearerAuth:
type: http
scheme: bearer
bearerFormat: API Key
description: 'Bearer token (API key) obtained from the Evidently platform settings. Set via the Authorization header or the EVIDENTLY_API_KEY environment variable.
'