OpenAPI Specification
openapi: 3.1.0
info:
title: Grafana Tempo HTTP Health Search API
description: The Grafana Tempo HTTP API provides endpoints for querying distributed traces, searching spans with TraceQL, discovering tag keys and values, and generating metrics from trace data. Tempo is compatible with Jaeger, Zipkin, and OpenTelemetry trace ingestion and query protocols. The API runs on the Tempo HTTP port (default 3200).
version: 2.x
contact:
name: Grafana Tempo Community
url: https://community.grafana.com/c/grafana-tempo/
email: tempo@grafana.com
license:
name: Apache 2.0
url: https://www.apache.org/licenses/LICENSE-2.0
servers:
- url: http://localhost:3200
description: Local Tempo instance (default)
- url: http://tempo:3200
description: Kubernetes service endpoint
tags:
- name: Search
description: Search traces and spans using TraceQL
paths:
/api/search:
get:
operationId: searchTraces
summary: Search Traces
description: Search for traces matching a TraceQL query or tag-based filter. Returns a list of matching trace metadata with root span information, duration, and service names.
tags:
- Search
parameters:
- name: q
in: query
required: false
description: TraceQL query string
schema:
type: string
example: '{.service.name="order-service"}'
- name: tags
in: query
required: false
description: 'URL-encoded logfmt tag filter (deprecated — use q with TraceQL instead). Example: service.name=frontend'
schema:
type: string
- name: minDuration
in: query
required: false
description: Minimum trace duration filter (e.g., 100ms, 1s, 2m)
schema:
type: string
- name: maxDuration
in: query
required: false
description: Maximum trace duration filter (e.g., 100ms, 1s, 2m)
schema:
type: string
- name: limit
in: query
required: false
description: Maximum number of search results to return
schema:
type: integer
minimum: 1
maximum: 1000
default: 20
- name: start
in: query
required: false
description: Unix epoch start time for search window (seconds)
schema:
type: integer
format: int64
- name: end
in: query
required: false
description: Unix epoch end time for search window (seconds)
schema:
type: integer
format: int64
responses:
'200':
description: Search results returned
content:
application/json:
schema:
$ref: '#/components/schemas/SearchResult'
'400':
description: Invalid query
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
components:
schemas:
Error:
type: object
description: API error response
properties:
error:
type: string
description: Error message
TraceSearchResult:
type: object
description: Summary of a trace matching a search query
properties:
traceID:
type: string
description: Trace identifier
rootServiceName:
type: string
description: Name of the root span's service
rootTraceName:
type: string
description: Name of the root span's operation
startTimeUnixNano:
type: string
description: Trace start time (nanoseconds)
durationMs:
type: integer
description: Total trace duration in milliseconds
spanSets:
type: array
description: Matching span sets (from TraceQL queries)
items:
type: object
SearchResult:
type: object
description: Trace search results
properties:
traces:
type: array
items:
$ref: '#/components/schemas/TraceSearchResult'
metrics:
type: object
properties:
inspectedTraces:
type: integer
inspectedBytes:
type: string
externalDocs:
description: Grafana Tempo API Documentation
url: https://grafana.com/docs/tempo/latest/api_docs/