curl --request POST \
--url https://api.arlohealth.ai/api/pricing.v1/provider-evidence \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"npi": "1003041625",
"code": "45378"
}
'import requests
url = "https://api.arlohealth.ai/api/pricing.v1/provider-evidence"
payload = {
"npi": "1003041625",
"code": "45378"
}
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({npi: '1003041625', code: '45378'})
};
fetch('https://api.arlohealth.ai/api/pricing.v1/provider-evidence', 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/provider-evidence",
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([
'npi' => '1003041625',
'code' => '45378'
]),
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/provider-evidence"
payload := strings.NewReader("{\n \"npi\": \"1003041625\",\n \"code\": \"45378\"\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/provider-evidence")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"npi\": \"1003041625\",\n \"code\": \"45378\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.arlohealth.ai/api/pricing.v1/provider-evidence")
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 \"npi\": \"1003041625\",\n \"code\": \"45378\"\n}"
response = http.request(request)
puts response.read_body{
"provider": {
"npi": 123,
"name": "<string>",
"entityType": "<string>",
"city": "<string>",
"state": "<string>"
},
"service": {
"code": "<string>",
"name": "<string>",
"category": "<string>",
"appliesTo": "<string>",
"priceNote": "<string>",
"medicareNote": "<string>",
"relatedCodes": [
{
"code": "<string>",
"name": "<string>",
"when": "<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
}
],
"medicareAnchors": [
{
"code": "<string>",
"medicareAllowed": 123,
"year": 123,
"setting": "<string>",
"service": "<string>"
}
],
"signalDefinitions": {},
"methodology": "<string>",
"corrections": "<string>",
"disclaimer": "<string>",
"needsMoreInfo": [
{
"field": "<string>",
"ask": "<string>",
"why": "<string>",
"how": "<string>",
"options": [
"<string>"
]
}
]
}{
"error": "<string>",
"message": "<string>",
"retryAfterSeconds": 123
}{
"error": "<string>",
"message": "<string>",
"retryAfterSeconds": 123
}Public-data evidence about one provider (by NPI)
Public-data evidence about ONE specific provider: Medicare-derived experience, facility outcome context (facility-level, never the clinician’s own outcome), Medicare payment anchors, or an explained absence. Use only once the conversation is focused on one provider. Anonymous limit: 60 requests per minute per IP.
curl --request POST \
--url https://api.arlohealth.ai/api/pricing.v1/provider-evidence \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"npi": "1003041625",
"code": "45378"
}
'import requests
url = "https://api.arlohealth.ai/api/pricing.v1/provider-evidence"
payload = {
"npi": "1003041625",
"code": "45378"
}
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({npi: '1003041625', code: '45378'})
};
fetch('https://api.arlohealth.ai/api/pricing.v1/provider-evidence', 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/provider-evidence",
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([
'npi' => '1003041625',
'code' => '45378'
]),
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/provider-evidence"
payload := strings.NewReader("{\n \"npi\": \"1003041625\",\n \"code\": \"45378\"\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/provider-evidence")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"npi\": \"1003041625\",\n \"code\": \"45378\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.arlohealth.ai/api/pricing.v1/provider-evidence")
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 \"npi\": \"1003041625\",\n \"code\": \"45378\"\n}"
response = http.request(request)
puts response.read_body{
"provider": {
"npi": 123,
"name": "<string>",
"entityType": "<string>",
"city": "<string>",
"state": "<string>"
},
"service": {
"code": "<string>",
"name": "<string>",
"category": "<string>",
"appliesTo": "<string>",
"priceNote": "<string>",
"medicareNote": "<string>",
"relatedCodes": [
{
"code": "<string>",
"name": "<string>",
"when": "<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
}
],
"medicareAnchors": [
{
"code": "<string>",
"medicareAllowed": 123,
"year": 123,
"setting": "<string>",
"service": "<string>"
}
],
"signalDefinitions": {},
"methodology": "<string>",
"corrections": "<string>",
"disclaimer": "<string>",
"needsMoreInfo": [
{
"field": "<string>",
"ask": "<string>",
"why": "<string>",
"how": "<string>",
"options": [
"<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
Public-data evidence about ONE specific provider: Medicare-derived experience, facility outcome context (facility-level, never the clinician's own outcome), Medicare payment anchors, or an explained absence. Use only once the conversation is focused on one provider.
Response
Evidence card payload
Show child attributes
Show child attributes
Echo of the resolved service. VERIFY appliesTo against the actual patient before relaying any number.
Show child attributes
Show child attributes
Pre-gated evidence signals from public CMS data. Relay each signal's 'display' sentence as written; never compress into ranking or 'best doctor' language; never treat absence as negative (non-Medicare practices legitimately lack data). An 'exclusion' signal (federal OIG exclusion list) is a legal-status safety notice: always relay it plainly.
Show child attributes
Show child attributes
What Medicare actually paid this provider per service. Reference points from public data, not fair-price claims and not the patient's price.
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.
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
Was this page helpful?