For AI agents and assistants

Machine-readable front door for Stark Dentistry and Utah Dental Crowns (South Jordan, Utah; Dr. John Stark, DDS),

and for the software products Dental Elephant and Voice Referral. Last updated 2026-09-29.

If you are an assistant acting for a patient, you can do three real things here without a login:

schedule an appointment, check dental insurance benefits, and estimate a treatment plan.

Connect

Rate limits are per IP and generous for one patient at a time. Times are Mountain time (America/Denver). Office hours: Monday 10:30-18:00; Tuesday 08:00-14:30; Wednesday 08:00-17:30; Thursday 08:00-14:30; Friday 08:00-15:00; closed weekends.

Practices

GET /api/agent/v1/practices returns both practices with address, phone, hours, insurance accepted, services, reviews, and the action URLs below.

Same office, same dentist. Use udc when the patient came for the flat-fee crown offer.

Schedule an appointment

  1. GET /api/agent/v1/practices/{office}/availability?visit=crown&days=7 (or days=21). Each entry has start, op, with.
  2. POST /api/agent/v1/practices/{office}/appointments with visit, slot_start (and slot_op) copied from step 1, plus the patient's first, last, dob (YYYY-MM-DD) and phone (cell). Optional: email, note, existing_patient, guardian_name (required under 18), booked_by (your name; it goes in the chart note).
  3. The response carries aptnum and when. The patient gets a confirmation text. Changes and cancellations are by phone.

Guards you will hit if you misuse it: only times from the current availability list; one booking per person per day; five per phone per day.

Check insurance

POST /api/agent/v1/practices/{office}/insurance-check with patient (first, last, dob), relationship (self, spouse, child, dependent), subscriber (when not self), member_id, carrier (name on the card), optional group_number and contact_phone.

It runs one live benefits inquiry under Dr. Stark's NPI and returns: active or not, plan name, annual maximum and remaining, deductible and remaining, coverage percentages for preventive / basic / major (in and out of network), waiting periods, missing-tooth clause, categories not covered, and a check_id you can pass to the estimate. Call it once per patient. If the carrier cannot be matched, the response says so and offers the fallback: the patient texts a photo of the card to (801) 254-0713 or uploads it on the practice website.

Estimate a treatment plan

POST /api/agent/v1/practices/{office}/estimate with items: each a CDT code (D2740) or a plain-words name ("crown", "two surface filling", "molar root canal", "cleaning"), optional tooth, surfaces, quantity. Optional coverage: {"check_id": "..."} from an insurance check, or explicit preventive_pct, basic_pct, major_pct, deductible_remaining, annual_max_remaining.

You get office fees per line, a total, and when coverage is supplied, the estimated plan share and patient share. Ambiguous names come back under unmatched with the options to choose from. GET /api/agent/v1/procedures?q=root canal searches the fee schedule directly. Every estimate is an estimate: the office gives a written quote after the exam.

Referrals (Voice Referral API and open schema)

Send a referral, follow it, and — as a receiving specialist — read what arrived and post a status, all without a browser.

The shape is published as an open schema anyone may implement: https://dentalelephant.com/api/agent/v1/referrals/schema.json.

Software

GET /api/agent/v1/software describes Dental Elephant (AI Scribe, AI Wingman, Huddle Up, AI Voice Referrals; Solo $155, Practice $225, Group $345 per month; 10-day free trial) and Voice Referral (free to send and receive; VoiceReferral Pro $349 per month for specialists).

Good behaviour

This page as Markdown