---
title: "POST /api/v1/public/consulting/intakes"
method: POST
path: "/api/v1/public/consulting/intakes"
tags: ["Consulting", "Public"]
---

# POST /api/v1/public/consulting/intakes

`POST /api/v1/public/consulting/intakes`

Starts an opaque pre-registration ExpertAnswer triage. Private content never enters a URL and is not copied to core PostgreSQL before a successful signup; the anonymous intake remains in a bounded-retention agent Durable Object until expiry. Communication locale and approximate Cloudflare country/city context are derived server-side and remain correctable hints.

## Request body

- object
  - `clientMessageId` string, uuid, required
  - `message` string, required
  - `intakeId` string, required

## Response `202`

The public triage message was durably admitted.

- object
  - `intakeId` string, required
  - `status` 'processing', required
  - `submissionId` string, required

## Other responses

- `400` — The public triage request is invalid.
- `409` — The intake is complete or has reached its bounded turn limit.
- `429` — The public triage rate limit was exceeded.
- `503` — Public triage is unavailable.

---

[API](https://skmtc.dev/expertschat/apis/billing-core-api.md) · [All operations](https://skmtc.dev/expertschat/apis/billing-core-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/expertschat/billing-core-api/revisions/c6d0e986ce32/schema)
