curl --request POST \
--url https://api.arlohealth.ai/api/pricing.v1/network-status \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"providerName": "One Medical",
"zip": "94107",
"code": "99213",
"planHints": {
"payerName": "Anthem"
}
}
'import requests
url = "https://api.arlohealth.ai/api/pricing.v1/network-status"
payload = {
"providerName": "One Medical",
"zip": "94107",
"code": "99213",
"planHints": { "payerName": "Anthem" }
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
providerName: 'One Medical',
zip: '94107',
code: '99213',
planHints: {payerName: 'Anthem'}
})
};
fetch('https://api.arlohealth.ai/api/pricing.v1/network-status', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.arlohealth.ai/api/pricing.v1/network-status",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'providerName' => 'One Medical',
'zip' => '94107',
'code' => '99213',
'planHints' => [
'payerName' => 'Anthem'
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.arlohealth.ai/api/pricing.v1/network-status"
payload := strings.NewReader("{\n \"providerName\": \"One Medical\",\n \"zip\": \"94107\",\n \"code\": \"99213\",\n \"planHints\": {\n \"payerName\": \"Anthem\"\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.arlohealth.ai/api/pricing.v1/network-status")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"providerName\": \"One Medical\",\n \"zip\": \"94107\",\n \"code\": \"99213\",\n \"planHints\": {\n \"payerName\": \"Anthem\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.arlohealth.ai/api/pricing.v1/network-status")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"providerName\": \"One Medical\",\n \"zip\": \"94107\",\n \"code\": \"99213\",\n \"planHints\": {\n \"payerName\": \"Anthem\"\n }\n}"
response = http.request(request)
puts response.read_body{
"service": {
"code": "<string>",
"name": "<string>",
"category": "<string>",
"appliesTo": "<string>",
"priceNote": "<string>",
"medicareNote": "<string>",
"relatedCodes": [
{
"code": "<string>",
"name": "<string>",
"when": "<string>"
}
]
},
"supportedServices": [
{
"code": "<string>",
"name": "<string>",
"category": "<string>"
}
],
"location": {
"applied": true,
"source": "<string>"
},
"matches": [
{
"npi": 123,
"name": "<string>",
"entityType": "<string>",
"otherNames": [
"<string>"
],
"employers": [
"<string>"
],
"address": "<string>",
"city": "<string>",
"state": "<string>",
"zip": "<string>",
"latitude": 123,
"longitude": 123,
"locationPrecision": "<string>",
"identityCaution": "<string>",
"inNetwork": true,
"networkEvidence": 123,
"note": "<string>",
"matchNote": "<string>",
"rate": 123,
"rateRange": {
"min": 123,
"max": 123,
"median": 123
},
"rateSampled": true,
"rateNote": "<string>",
"patientShare": {
"afterDeductible": 123,
"beforeDeductibleMet": 123,
"limitingChargeMax": 123,
"note": "<string>"
},
"medicareStatus": {
"enrolled": true,
"assignment": "<string>",
"optedOut": true,
"basis": "<string>"
},
"setting": "<string>",
"typicalRate": 123,
"rateAssessment": "<string>",
"serviceEvidence": "<string>",
"serviceAvailabilityNote": "<string>",
"billingOrg": "<string>",
"multiEntity": true,
"billingOutlook": {
"mode": "<string>",
"ask": "<string>",
"warning": "<string>",
"partnership": "<string>",
"leading": {},
"basis": "<string>"
},
"billingCandidates": [
{
"billingOrg": "<string>",
"tin": "<string>",
"rate": 123,
"rateRange": {
"min": 123,
"max": 123,
"median": 123
},
"rateNote": "<string>",
"setting": "<string>",
"nMemberships": 123,
"typicalRate": 123,
"rateAssessment": "<string>",
"evidence": [
{}
]
}
],
"billingCandidatesOmitted": 123,
"billingNote": "<string>",
"signals": [
{
"type": "<string>",
"display": "<string>",
"hcpcs": "<string>",
"floor": 123,
"pctl": 123,
"level": "<string>",
"facility": "<string>",
"measure": "<string>",
"score": 123,
"ci": [
123
],
"verdict": "<string>",
"denominator": 123
}
],
"medicareAnchor": {
"source": "<string>",
"medicareAllowed": 123,
"rateRatio": 123,
"year": 123,
"setting": "<string>"
}
}
],
"plan": {
"payer": "<string>",
"payerLabel": "<string>",
"matchTier": "<string>",
"basis": "<string>",
"sponsor": "<string>",
"payerSource": "<string>",
"coverageSelection": {},
"coverageNote": "<string>",
"planHintsReceived": {}
},
"medicare": {
"coverage": "<string>",
"assumed": true,
"year": 123,
"partBDeductible": 123,
"coinsurancePct": 123,
"limitingChargePct": 123,
"medigap": true,
"note": "<string>"
},
"rateFetchNote": "<string>",
"evidenceCardEligible": true,
"signalDefinitions": {},
"methodology": "<string>",
"needsMoreInfo": [
{
"field": "<string>",
"ask": "<string>",
"why": "<string>",
"how": "<string>",
"options": [
"<string>"
]
}
],
"disclaimer": "<string>"
}{
"error": "<string>",
"message": "<string>",
"retryAfterSeconds": 123
}{
"error": "<string>",
"message": "<string>",
"retryAfterSeconds": 123
}Is a named provider or facility in-network, and what do they charge for a service
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. Anonymous limit: 20 requests per minute per IP (name search is the expensive path).
curl --request POST \
--url https://api.arlohealth.ai/api/pricing.v1/network-status \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"providerName": "One Medical",
"zip": "94107",
"code": "99213",
"planHints": {
"payerName": "Anthem"
}
}
'import requests
url = "https://api.arlohealth.ai/api/pricing.v1/network-status"
payload = {
"providerName": "One Medical",
"zip": "94107",
"code": "99213",
"planHints": { "payerName": "Anthem" }
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
providerName: 'One Medical',
zip: '94107',
code: '99213',
planHints: {payerName: 'Anthem'}
})
};
fetch('https://api.arlohealth.ai/api/pricing.v1/network-status', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.arlohealth.ai/api/pricing.v1/network-status",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'providerName' => 'One Medical',
'zip' => '94107',
'code' => '99213',
'planHints' => [
'payerName' => 'Anthem'
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.arlohealth.ai/api/pricing.v1/network-status"
payload := strings.NewReader("{\n \"providerName\": \"One Medical\",\n \"zip\": \"94107\",\n \"code\": \"99213\",\n \"planHints\": {\n \"payerName\": \"Anthem\"\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.arlohealth.ai/api/pricing.v1/network-status")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"providerName\": \"One Medical\",\n \"zip\": \"94107\",\n \"code\": \"99213\",\n \"planHints\": {\n \"payerName\": \"Anthem\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.arlohealth.ai/api/pricing.v1/network-status")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"providerName\": \"One Medical\",\n \"zip\": \"94107\",\n \"code\": \"99213\",\n \"planHints\": {\n \"payerName\": \"Anthem\"\n }\n}"
response = http.request(request)
puts response.read_body{
"service": {
"code": "<string>",
"name": "<string>",
"category": "<string>",
"appliesTo": "<string>",
"priceNote": "<string>",
"medicareNote": "<string>",
"relatedCodes": [
{
"code": "<string>",
"name": "<string>",
"when": "<string>"
}
]
},
"supportedServices": [
{
"code": "<string>",
"name": "<string>",
"category": "<string>"
}
],
"location": {
"applied": true,
"source": "<string>"
},
"matches": [
{
"npi": 123,
"name": "<string>",
"entityType": "<string>",
"otherNames": [
"<string>"
],
"employers": [
"<string>"
],
"address": "<string>",
"city": "<string>",
"state": "<string>",
"zip": "<string>",
"latitude": 123,
"longitude": 123,
"locationPrecision": "<string>",
"identityCaution": "<string>",
"inNetwork": true,
"networkEvidence": 123,
"note": "<string>",
"matchNote": "<string>",
"rate": 123,
"rateRange": {
"min": 123,
"max": 123,
"median": 123
},
"rateSampled": true,
"rateNote": "<string>",
"patientShare": {
"afterDeductible": 123,
"beforeDeductibleMet": 123,
"limitingChargeMax": 123,
"note": "<string>"
},
"medicareStatus": {
"enrolled": true,
"assignment": "<string>",
"optedOut": true,
"basis": "<string>"
},
"setting": "<string>",
"typicalRate": 123,
"rateAssessment": "<string>",
"serviceEvidence": "<string>",
"serviceAvailabilityNote": "<string>",
"billingOrg": "<string>",
"multiEntity": true,
"billingOutlook": {
"mode": "<string>",
"ask": "<string>",
"warning": "<string>",
"partnership": "<string>",
"leading": {},
"basis": "<string>"
},
"billingCandidates": [
{
"billingOrg": "<string>",
"tin": "<string>",
"rate": 123,
"rateRange": {
"min": 123,
"max": 123,
"median": 123
},
"rateNote": "<string>",
"setting": "<string>",
"nMemberships": 123,
"typicalRate": 123,
"rateAssessment": "<string>",
"evidence": [
{}
]
}
],
"billingCandidatesOmitted": 123,
"billingNote": "<string>",
"signals": [
{
"type": "<string>",
"display": "<string>",
"hcpcs": "<string>",
"floor": 123,
"pctl": 123,
"level": "<string>",
"facility": "<string>",
"measure": "<string>",
"score": 123,
"ci": [
123
],
"verdict": "<string>",
"denominator": 123
}
],
"medicareAnchor": {
"source": "<string>",
"medicareAllowed": 123,
"rateRatio": 123,
"year": 123,
"setting": "<string>"
}
}
],
"plan": {
"payer": "<string>",
"payerLabel": "<string>",
"matchTier": "<string>",
"basis": "<string>",
"sponsor": "<string>",
"payerSource": "<string>",
"coverageSelection": {},
"coverageNote": "<string>",
"planHintsReceived": {}
},
"medicare": {
"coverage": "<string>",
"assumed": true,
"year": 123,
"partBDeductible": 123,
"coinsurancePct": 123,
"limitingChargePct": 123,
"medigap": true,
"note": "<string>"
},
"rateFetchNote": "<string>",
"evidenceCardEligible": true,
"signalDefinitions": {},
"methodology": "<string>",
"needsMoreInfo": [
{
"field": "<string>",
"ask": "<string>",
"why": "<string>",
"how": "<string>",
"options": [
"<string>"
]
}
],
"disclaimer": "<string>"
}{
"error": "<string>",
"message": "<string>",
"retryAfterSeconds": 123
}{
"error": "<string>",
"message": "<string>",
"retryAfterSeconds": 123
}Authorizations
Optional. An Arlo account token adds linked-coverage plan matching and family-member patientId. Anonymous calls resolve the plan from planHints only.
Body
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.
Provider or facility name. Consumer brand names work (matched against NPPES doing-business-as records too). City or ZIP helps disambiguate.
10-digit NPI if known. Never required.
Optional. CPT/HCPCS code from the supported catalog (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.
Max matches (default 50, max 100). Large systems bill under many NPIs whose network status and rates differ; the breadth is the signal.
Preferred when available. Pair with longitude.
5-digit US ZIP when coordinates are unavailable.
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.
Show child attributes
Show child attributes
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.
Echo of the resolved service. VERIFY appliesTo against the actual patient before relaying any number.
Show child attributes
Show child attributes
Full pricing catalog, returned when the service could not be resolved. Pick the right code and re-call.
Show child attributes
Show child attributes
Whether the ZIP/coordinates passed were consumed. Only re-ask the patient for location when applied=false.
Show child attributes
Show child attributes
Show child attributes
Show child attributes
What the estimate is based on. Always read matchTier and basis before relaying numbers.
Show child attributes
Show child attributes
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.
Show child attributes
Show child attributes
true when exactly one match carries evidence signals (a UI may render an evidence card).
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.
Show child attributes
Show child attributes
ALWAYS convey to the patient: estimates come from the insurer's published data and are not a price guarantee.
Was this page helpful?