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.
https://dentalelephant.com/mcphttps://dentalelephant.com/api/agent/v1/openapi.jsonhttps://dentalelephant.com/api/agent/v1https://dentalelephant.com/llms.txt, https://voicereferral.com/llms.txt, https://starkdentistry.com/llms.txt, https://www.utahdentalcrowns.com/llms.txthttps://dentalelephant.com/book/stark or https://dentalelephant.com/book/udc; call (801) 254-0713 (Stark Dentistry) or (801) 739-8131 (Utah Dental Crowns)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.
GET /api/agent/v1/practices returns both practices with address, phone, hours, insurance accepted, services, reviews, and the action URLs below.
stark = Stark Dentistry, general and restorative dentistry: cleanings, fillings, crowns, emergencies. Visits: cleaning, fillings, crown, other.udc = Utah Dental Crowns, the $799 flat-fee crown (exam, X-rays, scan and build-up included). Visits: crown, other, cleaning.Same office, same dentist. Use udc when the patient came for the flat-fee crown offer.
GET /api/agent/v1/practices/{office}/availability?visit=crown&days=7 (or days=21). Each entry has start, op, with.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).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.
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.
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.
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.
GET /api/agent/v1/providers?specialty=endodontist&zip=84095&radius=25, or ?npi=…, or ?last=…&first=…&state=UT. Cards show who receives on Voice Referral, their self-published insurance list and any openings they chose to share.POST /api/agent/v1/referrals with to.npi, patient (name, dob, phone), ask and/or clinical_note (we draft the letter in the sender's voice) or your own letter, optional tooth, urgency, attachments (base64 images, PDFs, CBCT zips), patient_consent, and attestation.name (who confirms it). Returns the record id, the letter, and where it went. If the receiving office isn't on Voice Referral, you get the PDF plus their registry fax so your agent can deliver it.GET /api/agent/v1/referrals/{id} and …/pdf; GET /api/agent/v1/referrals?box=sent.GET /api/agent/v1/referrals?box=incoming, then POST /api/agent/v1/referrals/{id}/status with received | scheduled (+ scheduled_date) | completed | no_contact. completed and no_contact report back to the referring doctor automatically.Authorization: Bearer vr_live_…. Any licensed provider gets a key from the Voice Referral portal (Settings → API access). The key carries the account's NPI and BAA; a letter sent by API is sent as that provider, under their standing approval rule. MCP clients send the same header on the connection.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).