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: {}