Skip to main content
POST /v1/intakes takes a free-form responses object, but the prescriber’s intake document is built from a fixed questionnaire. Each answer is looked up by its key (the id below). A key that isn’t on this list isn’t matched: the question shows Not answered, and your value appears only under “Additional information”. Nested objects and arrays of objects are printed as raw text, so send plain strings, numbers, booleans and arrays of strings.
The response to POST /v1/intakes includes a warnings object that tells you what didn’t match, so you can fix the mapping in testing without waiting for a document: unknown_keys, missing_required, invalid_values and complete. Warnings never block the request.

Example that matches the form

Sending this returns "warnings": { "complete": true, "unknown_keys": [], "missing_required": [], "invalid_values": [] }.

Which questions apply

  • category: "async" answers the general set (Set A).
  • category: "hormone" — or any intake whose treatment_need includes hormone_hrt — adds the hormone set (Set B).
  • Questions marked “Asked when” are required only when their condition is true.
  • Height is text such as 5'6"; weight is a number in pounds. Convert from metric before sending.
  • Gender controls which pregnancy and sex-specific questions apply. Use female, male, nonbinary or prefer_not_say.

General questions (Set A)

What do you need today?

Identity & contact

Medications & allergies

Medical history

Vitals & body metrics

Pregnancy

Reason for treatment

Attestations

Hormone questions (Set B)

Added when category is hormone.

Hormone symptoms

Prior hormone therapy

Recent lab work

Risk history

Male-specific

Female-specific

Hormone-therapy attestation