---
title: "Warm Endpoint"
method: POST
path: "/v1/onboard/warm"
---

# Warm Endpoint

`POST /v1/onboard/warm`

Bulk pre-warm template_cache from historical user logs.

Reuses pipeline.parse() so persistence (template_cache + incident_families)
happens through the same ON CONFLICT DO UPDATE path as live /v1/compact
calls. Idempotent across re-runs. Daily per-org line quota guards against
runaway LLM cost on a misconfigured client.

## Request body

- WarmRequest — Bulk pre-warm request: ingest historical log lines and persist their templates to the org's `template_cache` so subsequent /v1/compact calls hit the regex cache instead of cold-starting the LLM templater. `source` is a free-form tag (e.g. "vercel", "datadog") echoed back in the response and used in server logs for attribution. No semantic behavior is keyed off it.
  - `lines` string[], required — Raw log lines to template + persist.
  - `source` string — Origin tag (vercel, datadog, etc.)

## Response `200`

Successful Response

- WarmResponse
  - `source` string, required
  - `templates_added` integer, required
  - `templates_total` integer, required
  - `lines_processed` integer, required
  - `llm_calls` integer, required
  - `cache_hits` integer, required
  - `elapsed_ms` integer, required
  - `quota_remaining` integer, required

## Other responses

- `422` — Validation Error

---

[API](https://skmtc.net/codag/apis/infra-logs-templater.md) · [All operations](https://skmtc.net/codag/apis/infra-logs-templater/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/codag/infra-logs-templater/revisions/d80008a9efc6/schema)
