---
title: "Start Birth Turn"
method: POST
path: "/companies/{company_id}/birth-turn"
tags: ["sessions"]
---

# Start Birth Turn

`POST /companies/{company_id}/birth-turn`

## Request

- Base URL: `https://api.nanocorp.so` (the document declares no server; this is the origin it was published from)
- URL: `https://api.nanocorp.so/companies/{company_id}/birth-turn`
- Auth: HTTP bearer

The first pass of a business born without the interview (spec
2026-09-06_SPEC_CLI_REFRESH_V3_BIRTH D9, §4.2).

A platform-authored turn (never the caller's text) in which the agent reads
the repository and the idea, writes and commits PITCH.md / BRAND.md /
FLOW.md, tidies the task list and reports. Explicit rather than part of the
create so an import can push its code first: the CLI calls it after the
push, API users call it when they are ready.

Idempotent: 409 while any turn runs (the company session lock), 409 while
the resources are still provisioning, 409 on an empty repository (push
first), and a 200 with ``skipped`` once the three files exist on main.
A paused business passes: the session gate's ``paused`` reason is the daily
check-in's only.

## Path parameters

- `company_id` string, uuid, required

## Headers

- `X-Posthog-Session-Id` string, nullable
- `X-Client-Mobile` string, nullable

## Response `200`

Successful Response

- BirthTurnResponse: ``POST /companies/{id}/birth-turn`` (spec 2026-09-06 CLI_REFRESH_V3_BIRTH D9): the platform-authored first turn of a business born without the interview. ``session``/``turn`` are set when a turn was started; ``skipped`` names why none was (``constitution_exists``: the three files are already on main, so the birth already happened).
  - `session` SessionResponse
    - `id` string, required
    - `company_id` string, required
    - `trigger` 'user' | 'schedule' | 'routine' | 'founding_interview' | 'outcome', required
    - `title` string, nullable
    - `rotated_from_session_id` string, nullable
    - `created_at` string, date-time, required
    - `updated_at` string, date-time, required
  - `turn` SessionTurnResponse
    - `id` string, required
    - `session_id` string, nullable
    - `status` 'pending' | 'running' | 'completed' | 'failed' | 'interrupted' | 'waiting', required
    - `trigger` 'manual' | 'ceo_agent' | 'cron' | 'founding' | 'birth' | 'ask_answer' | 'routine' | 'platform' | 'founding_setup' | 'founding_build' | 'support' | 'outcome_start' | 'outcome_check' | 'outcome_continue' | 'outcome_message' | 'outcome_compact', required
    - `interrupt_requested_at` string, date-time, nullable
    - `error_message` string, nullable
    - `created_at` string, date-time, required
    - `started_at` string, date-time, nullable
    - `completed_at` string, date-time, nullable
    - `continues_run_id` string, nullable
    - `routine_task_ids` string[]
    - `wake_message` TurnWakeMessage: The message that woke a goal's attempt (spec 2026-10-19 OUTCOME_SESSIONS, Cross-session messaging): the turn's own prompt is only the attempt's /goal, so the thread quotes this instead.
      - `sender` string, required
      - `text` string, required
  - `skipped` string, nullable

## Other responses

- `422`: Validation Error

## Changes

- **2026-10-20** `f9255294952f`: 1 info
  - added the optional property `turn/anyOf[subschema #1: SessionTurnResponse]/wake_message` to the response with the `200` status
- **2026-10-20** `85afb5563d7a`: 6 warning
  - added the new `outcome` enum value to the `session/anyOf[subschema #1: SessionResponse]/trigger` response property for the response status `200`
  - added the new `outcome_check` enum value to the `turn/anyOf[subschema #1: SessionTurnResponse]/trigger` response property for the response status `200`
  - added the new `outcome_compact` enum value to the `turn/anyOf[subschema #1: SessionTurnResponse]/trigger` response property for the response status `200`
  - added the new `outcome_continue` enum value to the `turn/anyOf[subschema #1: SessionTurnResponse]/trigger` response property for the response status `200`
  - …2 more
- **2026-10-07** `33b623259808`: 1 warning
  - added the new `support` enum value to the `turn/anyOf[subschema #1: SessionTurnResponse]/trigger` response property for the response status `200`
- **2026-09-28** `9c76d9123b22`: 1 warning
  - added the new `founding_interview` enum value to the `session/anyOf[subschema #1: SessionResponse]/trigger` response property for the response status `200`
- …earlier changes not shown

[Operation history](https://skmtc.dev/nanocorp/apis/nanocorp-api/changes/companies/:company_id/birth-turn/post.md)

---

[API](https://skmtc.dev/nanocorp/apis/nanocorp-api.md) - [All operations](https://skmtc.dev/nanocorp/apis/nanocorp-api/llms.txt) - [OpenAPI document](https://skmtc.dev/nanocorp/apis/nanocorp-api/revisions/291bb76b720b?raw)
