---
title: "Ingest Chute Logs"
method: POST
path: "/instances/launch_config/{config_id}/logs"
tags: ["Instances"]
---

# Ingest Chute Logs

`POST /instances/launch_config/{config_id}/logs`

Ingest chute pod logs streamed by the in-guest log shipper.

mTLS-only, via the cvm proxy: the guest presents its per-boot registry mTLS leaf and the
``resolve_log_context`` dependency binds the shipment to the launch-config owner (cross-miner
injection is rejected there; the auth result is cached per (config_id, cert) so a burst of
batches doesn't re-verify). Identity is derived server-side — the body carries only
``deployment_id`` + the log lines.

Cutoff contract (docs/specs/chute-log-shipper.md): **204** = stop capturing this pod,
**200** = keep sending, **403/404** = terminal reject (unauthorized / unknown config), which
the guest also treats as stop. The lines are ingested BEFORE the cutoff is evaluated so a
final crash batch is always stored.

## Path parameters

- `config_id` string, required

## Request body

- LogShipmentArgs — Request body for POST /instances/launch_config/{config_id}/logs. ``deployment_id`` is the sole top-level metadata field: it is non-security correlation data (Grafana filtering only) that the validator cannot derive from ``config_id`` in the pre-registration window, so the guest supplies it from the ``chutes/deployment-id`` pod label. It is never used for auth.
  - `deployment_id` string — From the chutes/deployment-id pod label; empty if absent. Never used for auth.
  - `logs` LogLine[]
    - `ts` string, required — RFC3339 nanosecond timestamp, e.g. 2026-07-27T00:00:00.123456789Z
    - `stream` string — stdout | stderr
    - `log` string — The log line content

## Response `200`

Successful Response

- unknown

## Other responses

- `422` — Validation Error

## Changes

- **2026-08-26** `8d909638091e` — 1 info
  - endpoint added
- **2026-08-22** `05d9af05d87e` — 1 breaking
  - api path removed without deprecation
- **2026-08-04** `352418d4e3a2` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/chutes/apis/fastapi/changes/instances/launch_config/:config_id/logs/post.md)

---

[API](https://skmtc.dev/chutes/apis/fastapi.md) · [All operations](https://skmtc.dev/chutes/apis/fastapi/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/chutes/fastapi/revisions/7be1aa2fe1a0/schema)
