---
title: "Ingest a compose YAML document"
method: POST
path: "/projects/{name}"
---

# Ingest a compose YAML document

`POST /projects/{name}`

Upload a compose YAML body so the daemon owns the parsed project
state. Subsequent `up`/`down`/`restart` calls operate against the
ingested document. Idempotent on byte-identical re-uploads (200);
differing content under the same project name yields 409.

Documents containing `include:` directives are rejected — uploaded
compose is evaluated without filesystem context. CHAOS-1426
(Decision #12 follow-up).

## Path parameters

- `name` string, required

## Response `200`

Idempotent re-upload of byte-identical content

- object

## Other responses

- `201` — New project ingested
- `400` — Malformed YAML, includes:-directive present, or empty service map
- `409` — Project name already ingested with different content
- `413` — Body exceeds 1 MiB
- `415` — Content-Type is set but not application/yaml or text/yaml

---

[API](https://skmtc.net/full-chaos/apis/container-compose-api.md) · [All operations](https://skmtc.net/full-chaos/apis/container-compose-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/full-chaos/container-compose-api/versions/7bf76e7a9941/schema)
