Look up prices near a location
Try it on a test key
curl -s "https://api.wellwardhealth.com/v1/prices?service=lipid-panel&near=00010&sort=price" \
-H "Authorization: Bearer $WELLWARD_KEY"
GET /v1/prices returns one record per practice for one service near a point.
Where
Give exactly one location: near (a ZIP; zip also works), lat and lng, or market (a slug from /markets). radius_miles is one of 5, 10, 25, 50, 75 or 100; the default is 25, or the market's own radius when you pass market.
Order and pages
sort=price(the default) — cheapest first; ties go to the nearer practice.sort=distance— nearest first; ties go to the cheaper price.- Pages hold up to 20 results (
limit, default and maximum 20 — a larger value is 400limit_too_large). Follownext_cursorfor the next page; it isnullon the last. A cursor lasts 60 minutes and keeps the first page's sort and radius even if you send different ones. - Each page that returns prices is one Read, so page only as far as you will show.
summary
Every response carries summary — count, min_price, median_price, max_price and nearest_distance_miles — computed over all results for the query, before paging, and identical on every page. summary.count tells you how many pages a full pull takes before you fetch them; the stats let you say "prices here run $X–$Y" without paging at all.
Variants and add-ons
Each record is for one variant: the service's default, or the one you name with variant=. When a service has several core forms, variants[] lists them so you can let the user choose. A record's addons[] are billed on top of the core price; pass addons=<key>,<key> to include them in amount (then included_in_amount: true). A practice that hasn't quoted an add-on you named simply has no entry for it — its amount is the core price alone — so check included_in_amount on each record rather than assuming the add-on is in.
Two counts, two things. summary.count counts the records this query returns — one per practice, for the variant shown. service_coverage.price_count counts every price we hold for the service near you, across all its variants, so it is usually larger.
Location precision
practice.geo.precision says how a practice was placed: rooftop (a street-address match) or zip (the ZIP centroid — treat the distance as approximate). Check it per record.
Prices at a facility
Some prices apply at a facility the practice works at, not at its own office. An anesthesia group (for example a national group that covers surgery centers in many states) quotes its total for a procedure at a particular surgery center or hospital. Those records carry facility (its name and address), and practice.geo and distance_miles are the facility's, so searching near a location finds the anesthesia groups covering facilities there. facility is null for a price at the practice's own office.
Only valid prices
Every price returned was quoted within the last 364 days and has not been withdrawn, so you don't filter by age; max_age_days narrows it further if you want fresher. Show the disclaimer with every price (Displaying prices).
An empty result is a 200 with prices: [], summary.count: 0, a service_coverage of none, and a link to request the price. It is not a Read.
API reference · Dashboard · Questions: hello@wellwardhealth.com