Public API documentation
The journeyhealthadvisors.com website exposes a small public API: a contact-form intake endpoint and a health check. It exists to receive contact requests from people interested in our advisory services — there is no data-retrieval API.
Machine-readable: the OpenAPI 3.1 description lives at /api/openapi.json, and this API is discoverable via the RFC 9727 catalog at /.well-known/api-catalog.
POST /api/contact
Submits a contact request. Accepts JSON; creates a lead in our CRM and returns a reference ID. lastName is the only required field.
curl -X POST https://journeyhealthadvisors.com/api/contact \
-H "Content-Type: application/json" \
-d '{"lastName": "Smith", "email": "[email protected]",
"message": "Interested in DPC options for my family."}'
| Field | Required | Notes |
|---|---|---|
lastName | Yes | The only mandatory field. |
firstName, email, company, title, state, zip, message | No | Standard contact details. |
phone | No | Max 32 characters. If provided, smsConsent: true is required (TCPA consent — never pre-checked). |
utmSource, utmMedium, utmCampaign | No | Campaign attribution. |
turnstileToken | In production | Cloudflare Turnstile CAPTCHA token. |
Responses: 200 {"ok": true, "leadId": "…"} on success; 400 for validation problems; 403 if CAPTCHA fails; 502 if the upstream CRM declines the submission.
Please do not send health information. This endpoint is for contact requests only — no diagnoses, medications, or other protected health information (PHI) is accepted or stored.
GET /api/health
Liveness check. Returns 200 with {"status": "ok"} (application/health+json) when the API layer is serving.
For AI agents
Every page on this site is available as markdown via content negotiation — send Accept: text/markdown. A site index for language models is published at /llms.txt.