Loki HTTP API

The Loki HTTP API supports pushing logs, querying with LogQL, range queries, label discovery, series retrieval, index stats and volume, pattern detection, log tailing, deletion, and ruler operations. There is no published OpenAPI specification; see Grafana's HTTP API reference for endpoint details.

OpenAPI Specification

loki-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Loki HTTP API
  description: >-
    Minimal OpenAPI 3.1 specification for the Grafana Loki HTTP API,
    covering log ingest, queries, labels, series, status, ring, flush,
    rules, and deletion endpoints.
  version: 1.0.0
x-generated-from: https://grafana.com/docs/loki/latest/reference/loki-http-api/
x-generated-by: claude-crawl-2026-05-08
servers:
  - url: http://localhost:3100
    description: Default Loki HTTP server
paths:
  /loki/api/v1/push:
    post:
      operationId: pushLogs
      summary: Push log entries to Loki
      responses:
        '204':
          description: Logs accepted
        default:
          description: Error response
  /otlp/v1/logs:
    post:
      operationId: pushOtlpLogs
      summary: Push OTLP log entries
      responses:
        '204':
          description: Logs accepted
        default:
          description: Error response
  /loki/api/v1/query:
    get:
      operationId: query
      summary: Run a LogQL instant query
      parameters:
        - name: query
          in: query
          schema:
            type: string
        - name: time
          in: query
          schema:
            type: string
      responses:
        '200':
          description: Query result
        default:
          description: Error response
  /loki/api/v1/query_range:
    get:
      operationId: queryRange
      summary: Run a LogQL range query
      parameters:
        - name: query
          in: query
          schema:
            type: string
        - name: start
          in: query
          schema:
            type: string
        - name: end
          in: query
          schema:
            type: string
      responses:
        '200':
          description: Query result
        default:
          description: Error response
  /loki/api/v1/labels:
    get:
      operationId: listLabels
      summary: List label names
      responses:
        '200':
          description: List of label names
        default:
          description: Error response
  /loki/api/v1/label/{name}/values:
    get:
      operationId: getLabelValues
      summary: List values for a label
      parameters:
        - name: name
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Label values
        default:
          description: Error response
  /loki/api/v1/series:
    get:
      operationId: listSeries
      summary: List series matching matchers
      responses:
        '200':
          description: Series result
        default:
          description: Error response
    post:
      operationId: postSeries
      summary: List series matching matchers via POST
      responses:
        '200':
          description: Series result
        default:
          description: Error response
  /loki/api/v1/index/stats:
    get:
      operationId: indexStats
      summary: Retrieve index stats
      responses:
        '200':
          description: Index statistics
        default:
          description: Error response
  /loki/api/v1/index/volume:
    get:
      operationId: indexVolume
      summary: Retrieve index volume
      responses:
        '200':
          description: Volume result
        default:
          description: Error response
  /loki/api/v1/index/volume_range:
    get:
      operationId: indexVolumeRange
      summary: Retrieve index volume over a range
      responses:
        '200':
          description: Volume range result
        default:
          description: Error response
  /loki/api/v1/patterns:
    get:
      operationId: getPatterns
      summary: Retrieve detected log patterns
      responses:
        '200':
          description: Patterns result
        default:
          description: Error response
  /loki/api/v1/tail:
    get:
      operationId: tailLogs
      summary: Tail log entries via WebSocket
      responses:
        '200':
          description: Tail stream
        default:
          description: Error response
  /ready:
    get:
      operationId: ready
      summary: Readiness probe
      responses:
        '200':
          description: Ready
        default:
          description: Error response
  /metrics:
    get:
      operationId: metrics
      summary: Prometheus metrics endpoint
      responses:
        '200':
          description: Metrics text exposition
        default:
          description: Error response
  /config:
    get:
      operationId: getConfig
      summary: Retrieve the running configuration
      responses:
        '200':
          description: Configuration
        default:
          description: Error response
  /loki/api/v1/status/buildinfo:
    get:
      operationId: buildInfo
      summary: Retrieve build information
      responses:
        '200':
          description: Build info
        default:
          description: Error response
  /loki/api/v1/rules:
    get:
      operationId: listAllRules
      summary: List all ruler namespaces and groups
      responses:
        '200':
          description: Rules list
        default:
          description: Error response
  /loki/api/v1/rules/{namespace}:
    get:
      operationId: listNamespaceRules
      summary: List rule groups in a namespace
      parameters:
        - name: namespace
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Rule groups
        default:
          description: Error response
    post:
      operationId: createNamespaceRules
      summary: Create or update rule groups in a namespace
      parameters:
        - name: namespace
          in: path
          required: true
          schema:
            type: string
      responses:
        '202':
          description: Accepted
        default:
          description: Error response
    delete:
      operationId: deleteNamespaceRules
      summary: Delete all rule groups in a namespace
      parameters:
        - name: namespace
          in: path
          required: true
          schema:
            type: string
      responses:
        '204':
          description: Deleted
        default:
          description: Error response
  /loki/api/v1/rules/{namespace}/{groupName}:
    get:
      operationId: getRuleGroup
      summary: Retrieve a rule group
      parameters:
        - name: namespace
          in: path
          required: true
          schema:
            type: string
        - name: groupName
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Rule group
        default:
          description: Error response
    delete:
      operationId: deleteRuleGroup
      summary: Delete a rule group
      parameters:
        - name: namespace
          in: path
          required: true
          schema:
            type: string
        - name: groupName
          in: path
          required: true
          schema:
            type: string
      responses:
        '204':
          description: Deleted
        default:
          description: Error response
  /loki/api/v1/delete:
    get:
      operationId: listDeleteRequests
      summary: List delete requests
      responses:
        '200':
          description: Delete requests
        default:
          description: Error response
    post:
      operationId: createDeleteRequest
      summary: Create a delete request
      responses:
        '204':
          description: Accepted
        default:
          description: Error response
    delete:
      operationId: cancelDeleteRequest
      summary: Cancel a delete request
      responses:
        '204':
          description: Cancelled
        default:
          description: Error response
  /loki/api/v1/format_query:
    get:
      operationId: formatQuery
      summary: Format a LogQL query
      responses:
        '200':
          description: Formatted query
        default:
          description: Error response
components: {}