Overview
Bronto exposes two distinct endpoint types. Using the wrong one is the most common cause of400 errors β confirm which applies to your agent before configuring.
We recommend routing logs, metrics, and traces through the OpenTelemetry Collector rather than sending HTTP requests directly. The Collector handles batching, compression, and retries on failure. Log forwarders such as Fluent Bit, Logstash, and Vector remain a good choice for log-only sources. Direct HTTP is supported for cases where running an agent isnβt practical.
Authentication
All endpoints accept the Bronto API key header:Basic authentication
x-bronto-api-key header for OTLP logs, metrics, and traces.
See API Keys for how to generate a key.
Base Endpoint
The base endpoint (no path) accepts any payload format and performs no schema validation. It is the right choice for any agent that sends JSON, plain text, or structured log lines over HTTP.Automatically parsed formats
For the following formats, Bronto detects and extracts fields automatically β no configuration required.Formats stored verbatim
Other formats β RFC 3164 BSD syslog, Apache Common Log, Docker JSON, raw text β are accepted and stored as-is. Most log forwarders and the OpenTelemetry Collector can parse or transform these into structured fields before sending. If you are sending data directly, use the custom parser to define extraction rules.OTLP Endpoints
The/v1/logs, /v1/metrics, and /v1/traces endpoints accept OTLP over HTTPS on port 443 in both protobuf and JSON encoding. The OpenTelemetry Collector handles OTLP serialisation, batching, and retry automatically.
Encodings
SetContent-Type to match the encoding you send. Protobuf remains the default for the Collector and the OTel SDKs, and is the more compact option on the wire.
OTLP/JSON is useful when a client cannot produce protobuf β a script, a serverless function, or a platform that only emits JSON over HTTP. The body must be a single JSON object matching the OTLP request schema for that signal (for example
ExportLogsServiceRequest for /v1/logs), not NDJSON.
OTLP/JSON logs
encoding: json on the otlphttp exporter:
otel-config.yaml
http/protobuf or http/json, set with OTEL_EXPORTER_OTLP_PROTOCOL. Not every language SDK implements http/json; check your SDK before switching.
OTLP metrics ingestion is in public beta. Bronto supports OTLP sums, gauges, summaries, and explicit histograms. Exponential histograms are not currently supported, and the Metric Explorer does not currently provide a Rate function.
Direct HTTP Custom Ingestion
If running a log forwarder or collector isnβt practical, you can POST log events directly to the base endpoint from any HTTP client or script.Request format
All requests must bePOST with a JSON Lines (NDJSON) body β one JSON object per line.
Authentication
Authenticate with either the x-bronto-api-key header or HTTP Basic authentication as described above. Do not send the API key in a URL query parameter.
Required request header
Recommended headers
These headers control how your data is organized in Bronto. See Data Organization for how datasets, collections, and tags work.
Products that support Basic authentication but cannot set routing headers can use
service_name and service_namespace query parameters:
x-bronto-dataset and x-bronto-collection when both forms are present. Parameters named header_x-bronto-* are not supported.
Other headers
Event fields
Examples
Uncompressed
gzip
Zstandard
Zstandard offers the best compression ratio and is recommended for high-volume pipelines.
Batch processing
For large files, split into chunks and send each one:Batch ingest from file
Compression ratios
Compressing payloads before sending reduces transfer size significantly. Typical ratios for CDN logs:Payload limits
Exceeding the payload size limits returns an HTTP
413.
Response codes
A
200 response means your data has been securely stored β no data will be lost. If the API returns an error, no data from that request is ingested.
