Ingestion API
Logs are ingested into LogClaw exclusively via OTLP (OpenTelemetry Protocol). The OTel Collector accepts both gRPC and HTTP transports.Send Logs (HTTP/JSON)
HTTP method
POST https://otel.logclaw.ai/v1/logs
Via Dashboard proxy (self-hosted): POST /api/otel/v1/logs
Direct (self-hosted): POST http://logclaw-otel-collector:4318/v1/logs
Authentication
LogClaw Cloud requires an API key via the
x-logclaw-api-key header. Get your key from console.logclaw.ai under Settings → API Keys. See API Keys for details.Self-hosted deployments do not require authentication — access is controlled at the Kubernetes NetworkPolicy level.Request Headers
| Header | Value |
|---|---|
Content-Type | application/json |
x-logclaw-api-key | lc_proj_... (required for LogClaw Cloud, not needed for self-hosted) |
Request Body
Response
200 OKpartialSuccess object means all records were accepted.
OTLP Field Reference
| Field | Type | Required | Description |
|---|---|---|---|
resourceLogs | array | Yes | Array of resource log groups |
resource.attributes | array | No | Resource-level attributes (service.name, host.name, etc.) |
scopeLogs | array | Yes | Array of scope log groups |
logRecords | array | Yes | Array of individual log records |
timeUnixNano | string | No | Timestamp in nanoseconds since epoch |
severityText | string | No | Severity level: TRACE, DEBUG, INFO, WARN, ERROR, FATAL |
severityNumber | integer | No | Numeric severity (1-24) |
body.stringValue | string | Yes | The log message |
traceId | string | No | 32-character hex trace ID |
spanId | string | No | 16-character hex span ID |
attributes | array | No | Additional key-value attributes |
Attribute Value Types
OTLP attributes support multiple value types:Send Logs (gRPC)
LogClaw Cloud (managed):grpc://otel.logclaw.ai:443
Direct (self-hosted): grpc://logclaw-otel-collector:4317
Use the OTLP gRPC exporter from any OpenTelemetry SDK. This is the recommended transport for production workloads — binary Protobuf is more compact and efficient than JSON.
LogClaw Cloud gRPC uses TLS on port 443. Set your SDK’s
insecure option to false (the default). Authentication via x-logclaw-api-key header is required — the same as HTTP.