Ingesting logs | Better Stack Documentation

You can use Better Stack even if there's no official library for your programming language by sending your logs to our HTTP API.

This endpoint allows you to log a single event or a list of events. The events can be encoded in JSON or preferably in a more efficient MessagePack.

POST /

202

The event was, or the events were successfully logged.

403

You provided an invalid source token.

406

The body is not a valid JSON or MessagePack.

413

The body is too large (over 20 MiB).

Examples

Single event

Send a single log line using cURL:

JSON NDJSON MessagePack

Copied!

Multiple events

Send multiple log lines using cURL:

JSON NDJSON MessagePack

Copied!

Sending timestamps

By default, the time of the event will be the time of receiving it. You can override this by including a field dt containing the event time either as:

  • UNIX time in whole seconds, milliseconds, or nanoseconds.
    1672490759, 1672490759123, 1672490759123456000
  • String formatted according to RFC 3339.
    2022-12-31T13:45:59.123456Z, 2022-12-31 13:45:59.123456+02:00

Alternatively, you can use ISO 8601, as it will most likely use a format compatible with RFC 3339. In MessagePack, you can also use the timestamp extension type.

In case the timestamp can't be parsed, we save it as a string, but revert to using the reception time as the event time.

Request limits

The maximum allowed size of a single request, which may contain many events, is 10 MiB of compressed data.

Each log record is limited to 10 MiB maximum uncompressed size, but we recommend keeping a single log record under 100 KiB for the best experience.

There is no limit to the number of requests you can send.