Skip to main content
POST
Is a named provider or facility in-network, and what do they charge for a service

Authorizations

Authorization
string
header
required

Optional. An Arlo account token adds linked-coverage plan matching and family-member patientId. Anonymous calls resolve the plan from planHints only.

Body

application/json

Whether a specific provider or facility is in-network for the plan, and optionally what they charge for a service. Call this FIRST for any named clinic, brand, facility, or provider: the billing-entity fork (same visit, very different rates by contracting entity) only surfaces here.

providerName
string

Provider or facility name. Consumer brand names work (matched against NPPES doing-business-as records too), and so do spacing and abbreviation differences ("Soul 2 Soul" finds SOUL2SOUL; St/Saint, Mt/Mount, & / and). Give a ZIP, coordinates, or state: without one, a name with no exact match returns a location ask instead of lookalikes from other states.

npi
string

10-digit NPI if known. Never required.

code
string

Optional. CPT/HCPCS code from the supported catalog. Prices need a code; omit it to receive the catalog as supportedServices in the response (on REST the catalog is also GET /api/pricing.v1/catalog). There is no free-text service input: the caller selects the code, because codes carry patient facts the server cannot infer (screening vs diagnostic intent, age band, new vs established patient, body part, contrast, duration). An unknown code returns 200 with needsMoreInfo plus the full supportedServices catalog. With a code, each match carries its contracted rate under the plan.

limit
number

Max matches (default 50, max 100). Large systems bill under many NPIs whose network status and rates differ; the breadth is the signal.

latitude
number

Preferred when available. Pair with longitude.

longitude
number
zip
string

5-digit US ZIP when coordinates are unavailable.

state
string

2-letter US state of the patient. Used only for name searches without a ZIP or coordinates: matches in this state rank first. Authenticated calls fall back to the patient's profile state.

planHints
object

Insurance identifiers from the patient. For anonymous calls this is the ONLY plan input: pass at least payerName (see GET /api/pricing.v1/payers for accepted names). employerName / planName upgrade range estimates to the exact plan's rates when they match a published plan; Group # is only matched for Blue Cross Blue Shield of IL/TX/OK/NM/MT (HCSC). Original Medicare needs no other identifier. Set unavailable=true when the patient cannot provide identifiers, which suppresses further asks and keeps range-based estimates.

patientId
string

Family-member patient id on the caller's account. Authenticated calls only: anonymous calls that pass it receive a needsMoreInfo 'auth' ask.

Response

Matches with network status, rates, and billing-entity candidates.

service
object

Echo of the resolved service. VERIFY appliesTo against the actual patient before relaying any number.

supportedServices
object[]

Full pricing catalog, returned when the service could not be resolved. Pick the right code and re-call.

location
object

Which location the answer used: the ZIP or coordinates passed, else the state param (source "state"), else on authenticated calls the patient's profile state (source "profile_state", an assumption: relay note so the patient can correct it). Only re-ask the patient for location when applied=false.

matches
object[]
organizations
object[] | null

Present when several organization matches share a parent organization or legal name. One entry per system with its billing entities grouped and typed, so a large system reads as a tree (hospital, subparts, clinics) rather than a flat list of same-name rows. Entities list nearest first when a location was given (nearestKm on the system, distanceKm per entity); a system's far-away sites are in the tree for breadth, not as the answer to a local question. Present the system, then the entity the patient means.

plan
object

What the estimate is based on. Always read matchTier and basis before relaying numbers.

medicare
object

Present on Original Medicare responses. The year's Part B deductible, coinsurance, and limiting charge, whether a Medigap supplement was mentioned, and assumed=true when the person said only "Medicare" (confirm it is not an Advantage plan; the medicare_type ask says how). Relay the note once.

rateFetchNote
string
networkNote
string | null

Present when every match is outside the plan. Explains why that is not an out-of-network verdict and how to resolve the real billing entity. Relay it before any network verdict.

billingEvidenceDefinitions
object

Once-per-response legend for billingCandidates[].evidence[].type. Present when any match carries billingCandidates.

evidenceCardEligible
boolean

true when exactly one match carries evidence signals (a UI may render an evidence card).

signalDefinitions
object
methodology
string
needsMoreInfo
object[]

Asks to relay to the patient. Answering them improves the estimate (ranges become the plan's exact rates). Each ask names the field, why it matters, and how to obtain it. A medicare_type ask means the numbers assume Original Medicare and the person must confirm they are not on a Medicare Advantage plan. A code ask on an unpriced code says so plainly and lists related catalog codes in options when there are any.

disclaimer
string

ALWAYS convey to the patient: estimates come from the insurer's published data and are not a price guarantee.