---
title: "Send Logs (OTLP/HTTP)"
method: POST
path: "/v1/logs"
tags: ["Ingestion"]
---

# Send Logs (OTLP/HTTP)

`POST /v1/logs`

Ingest log records in OTLP HTTP/JSON format. This is the primary ingestion
endpoint for LogClaw Cloud. Logs are processed through the pipeline:
OTel Collector → Kafka → Bridge → OpenSearch.

The auth proxy automatically injects your project's `tenant_id` into each
log record based on your API key.

## Request body

- OtlpLogPayload
  - `resourceLogs` object[], required
    - `resource` object
      - `attributes` object[]
        - `key` string
        - `value` object
          - `stringValue` string
    - `scopeLogs` object[]
      - `logRecords` object[]
        - `timeUnixNano` string
        - `severityText` 'TRACE' | 'DEBUG' | 'INFO' | 'WARN' | 'ERROR' | 'FATAL'
        - `severityNumber` integer
        - `body` object
          - `stringValue` string
        - `traceId` string
        - `spanId` string
        - `attributes` object[]
          - `key` string
          - `value` object

## Response `200`

Logs accepted

- object
  - `partialSuccess` object

## Other responses

- `401` — Invalid or missing API key
- `502` — OTel Collector unreachable

---

[API](https://skmtc.dev/logclaw/apis/logclaw-api.md) · [All operations](https://skmtc.dev/logclaw/apis/logclaw-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/logclaw/logclaw-api/revisions/2e3308872959/schema)
