Tempo Search API

Search traces and spans using TraceQL

Operations 1

GET /api/search Search Traces #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/tempo-search-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

tempo-search-api-openapi.yml Raw ↑
openapi: 3.2.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:
    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
    Error:
      type: object
      description: API error response
      properties:
        error:
          type: string
          description: Error message
    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/