← Journey Health Advisors
Erik Osborne, PA-C, Co-Founder

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."}'
Request fields
FieldRequiredNotes
lastNameYesThe only mandatory field.
firstName, email, company, title, state, zip, messageNoStandard contact details.
phoneNoMax 32 characters. If provided, smsConsent: true is required (TCPA consent — never pre-checked).
utmSource, utmMedium, utmCampaignNoCampaign attribution.
turnstileTokenIn productionCloudflare 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.