> ## Documentation Index
> Fetch the complete documentation index at: https://docs.chronosphere.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Route logs over HTTP

export const MyTenantList = () => <>
    <em><code>TENANT</code></em>: The name of your Observability Platform tenant.
  </>;

Use the Chronosphere logging HTTP endpoint to send your logs to Observability
Platform over HTTP. The endpoint uses the following format:

```text theme={null}
https://TENANT.chronosphere.io/api/v1/data/logs/ingest
```

* <MyTenantList />

In addition to formatted log data, such as JSON, the logging HTTP endpoint accepts
logs in plain text format. To minimize egress costs, this endpoint supports `gzip`,
`snappy`, and `zstd` compression methods.

Because the Chronosphere API requires authentication, include an API token with your
`curl` request, as shown in the following example. For more details, see
[Create an API token](/tooling/api-info#create-an-api-token).

```shell /"TOKEN"/ /INSTANCE/ /METHOD/ /ENDPOINT_PATH/ theme={null}
export CHRONOSPHERE_API_TOKEN="TOKEN"
export CHRONOSPHERE_DOMAIN="INSTANCE.chronosphere.io"

curl -H "API-Token: ${CHRONOSPHERE_API_TOKEN}" \
     -X METHOD "https://${CHRONOSPHERE_DOMAIN}/ENDPOINT_PATH"
```

Replace the following:

* *`TOKEN`*: Your API token.
* *`INSTANCE`*: The subdomain name for your organization's Observability Platform instance.
* *`METHOD`*: The HTTP method to use with the request, such as `GET` or `POST`.
* *`ENDPOINT_PATH`*: The specific endpoint you want to access.

<Note>
  The service account must have read access to route log data to Observability
  Platform.
</Note>

The following example shows a formatted `curl` request that includes the logging HTTP endpoint:

```shell wrap theme={null}
export CHRONOSPHERE_API_TOKEN="TOKEN"
export CHRONOSPHERE_DOMAIN="INSTANCE.chronosphere.io"

curl -H "API-Token: ${CHRONOSPHERE_API_TOKEN}" \
     -X METHOD "https://${CHRONOSPHERE_DOMAIN}.chronosphere.io/api/v1/data/logs/ingest"
```

## Limits

The logging HTTP endpoint has the following limits:

* Logs with timestamps exceeding 24 hours into the future or past are rejected.
* Requests (compressed) exceeding 50 MB are rejected.

## Status codes

The logging HTTP endpoint returns the following status codes:

* `200`: Accepted. The request was accepted for processing.
* `413`: Large request. The maximum content size per payload (compressed) is
  50 MB.
