List eligibility checks
curl --request GET \
--url https://api.usecobalt.com/v1/eligibility-checks \
--header 'access_token: <api-key>' \
--header 'client_id: <api-key>' \
--header 'client_secret: <api-key>'import requests
url = "https://api.usecobalt.com/v1/eligibility-checks"
headers = {
"client_id": "<api-key>",
"client_secret": "<api-key>",
"access_token": "<api-key>"
}
response = requests.get(url, headers=headers)
print(response.text)const options = {
method: 'GET',
headers: {client_id: '<api-key>', client_secret: '<api-key>', access_token: '<api-key>'}
};
fetch('https://api.usecobalt.com/v1/eligibility-checks', 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.usecobalt.com/v1/eligibility-checks",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"access_token: <api-key>",
"client_id: <api-key>",
"client_secret: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.usecobalt.com/v1/eligibility-checks"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("client_id", "<api-key>")
req.Header.Add("client_secret", "<api-key>")
req.Header.Add("access_token", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.usecobalt.com/v1/eligibility-checks")
.header("client_id", "<api-key>")
.header("client_secret", "<api-key>")
.header("access_token", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.usecobalt.com/v1/eligibility-checks")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["client_id"] = '<api-key>'
request["client_secret"] = '<api-key>'
request["access_token"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"success": true,
"eligibility_checks": [
{
"id": "<string>",
"emr_id": "<string>",
"emr_patient_id": "<string>",
"patient_name": "<string>",
"patient_dob": "2023-12-25",
"emr_encounter_id": "<string>",
"provider_name": "<string>",
"payer_name": "<string>",
"subscriber_name": "<string>",
"subscriber_member_id": "<string>",
"patient_relationship": "<string>",
"plan_name": "<string>",
"coverage_status": "<string>",
"status_message": "<string>",
"service_date": "2023-12-25",
"response_at": "<string>",
"plan_begin_date": "2023-12-25",
"plan_end_date": "2023-12-25",
"benefits_summary": {
"deductible": {
"individual": {
"total": 123,
"remaining": 123
},
"family": {
"total": 123,
"remaining": 123
}
},
"out_of_pocket": {
"individual": {
"total": 123,
"remaining": 123
},
"family": {
"total": 123,
"remaining": 123
}
}
},
"benefit_count": 123,
"synced_at": "<string>"
}
],
"pagination": {
"page": 123,
"page_size": 123,
"total_records": 123,
"total_pages": 123
}
}{
"success": false,
"message": "<string>"
}{
"success": false,
"message": "<string>"
}{
"success": false,
"message": "<string>"
}{
"success": false,
"message": "<string>"
}Eligibility
Get Eligibility Checks
Returns insurance eligibility checks (270/271) for a clinic.
GET
/
eligibility-checks
List eligibility checks
curl --request GET \
--url https://api.usecobalt.com/v1/eligibility-checks \
--header 'access_token: <api-key>' \
--header 'client_id: <api-key>' \
--header 'client_secret: <api-key>'import requests
url = "https://api.usecobalt.com/v1/eligibility-checks"
headers = {
"client_id": "<api-key>",
"client_secret": "<api-key>",
"access_token": "<api-key>"
}
response = requests.get(url, headers=headers)
print(response.text)const options = {
method: 'GET',
headers: {client_id: '<api-key>', client_secret: '<api-key>', access_token: '<api-key>'}
};
fetch('https://api.usecobalt.com/v1/eligibility-checks', 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.usecobalt.com/v1/eligibility-checks",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"access_token: <api-key>",
"client_id: <api-key>",
"client_secret: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.usecobalt.com/v1/eligibility-checks"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("client_id", "<api-key>")
req.Header.Add("client_secret", "<api-key>")
req.Header.Add("access_token", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.usecobalt.com/v1/eligibility-checks")
.header("client_id", "<api-key>")
.header("client_secret", "<api-key>")
.header("access_token", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.usecobalt.com/v1/eligibility-checks")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["client_id"] = '<api-key>'
request["client_secret"] = '<api-key>'
request["access_token"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"success": true,
"eligibility_checks": [
{
"id": "<string>",
"emr_id": "<string>",
"emr_patient_id": "<string>",
"patient_name": "<string>",
"patient_dob": "2023-12-25",
"emr_encounter_id": "<string>",
"provider_name": "<string>",
"payer_name": "<string>",
"subscriber_name": "<string>",
"subscriber_member_id": "<string>",
"patient_relationship": "<string>",
"plan_name": "<string>",
"coverage_status": "<string>",
"status_message": "<string>",
"service_date": "2023-12-25",
"response_at": "<string>",
"plan_begin_date": "2023-12-25",
"plan_end_date": "2023-12-25",
"benefits_summary": {
"deductible": {
"individual": {
"total": 123,
"remaining": 123
},
"family": {
"total": 123,
"remaining": 123
}
},
"out_of_pocket": {
"individual": {
"total": 123,
"remaining": 123
},
"family": {
"total": 123,
"remaining": 123
}
}
},
"benefit_count": 123,
"synced_at": "<string>"
}
],
"pagination": {
"page": 123,
"page_size": 123,
"total_records": 123,
"total_pages": 123
}
}{
"success": false,
"message": "<string>"
}{
"success": false,
"message": "<string>"
}{
"success": false,
"message": "<string>"
}{
"success": false,
"message": "<string>"
}Each eligibility check is one 270/271 verification: a request sent to a payer and
the benefits response that came back. This endpoint returns the check headers,
each with a
benefits_summary (the headline deductible and out-of-pocket numbers)
and a benefit_count. To read the full per-benefit detail for a check, use its
id with Get Eligibility Benefits.
Filter by service-date range, patient_mrn, or coverage_status. A check whose
coverage_status is error is one the payer could not process (for example a
missing provider NPI); the reason is in status_message.
Example Request
curl -X GET "https://api.usecobalt.com/v1/eligibility-checks?start_date=2026-06-01&end_date=2026-06-30&coverage_status=active&page=1&page_size=100" \
-H 'Content-Type: application/json' \
-H 'client_id: ci_live_198908HJDKJSH98789OHKJL' \
-H 'client_secret: cs_live_9827hofdsklOYYHJLJh' \
-H 'access_token: 493JKLHIU98789hLKH9HHJH'
Example Response
{
"success": true,
"eligibility_checks": [
{
"id": "abc123def4567890abcdef1234567890",
"emr_id": "4588",
"emr_patient_id": "100482",
"patient_name": "Sample, Patient",
"patient_dob": "1990-01-01",
"emr_encounter_id": "293018",
"provider_name": "Pat Provider",
"payer_name": "Sample Health Plan",
"subscriber_name": "Patient Sample",
"subscriber_member_id": "W000000000",
"patient_relationship": "self",
"plan_name": "Sample PPO Plan",
"coverage_status": "active",
"status_message": null,
"service_date": "2026-06-01",
"response_at": "2026-06-01T05:01:00.000Z",
"plan_begin_date": "2026-01-01",
"plan_end_date": "2026-12-31",
"benefits_summary": {
"deductible": {
"individual": { "total": 2000, "remaining": 0 },
"family": { "total": 4000, "remaining": 1500 }
},
"out_of_pocket": {
"individual": { "total": 7000, "remaining": 917.76 },
"family": { "total": 10000, "remaining": 6217.76 }
}
},
"benefit_count": 61,
"synced_at": "2026-06-22T15:00:00.000Z"
}
],
"pagination": {
"page": 1,
"page_size": 100,
"total_records": 1,
"total_pages": 1
}
}
Query Parameters
- start_date / end_date: Filter by service date (
YYYY-MM-DD). - patient_mrn: Filter to a single patient by medical record number.
- coverage_status: Filter by
active,inactive,error, orunknown. - page: Page number (default
1). - page_size: Results per page (default
100, max500).
Response Parameters
- id: Cobalt’s eligibility check identifier. Use this in the benefits endpoint path.
- emr_id: The eligibility request identifier as it appears in the EMR.
- emr_patient_id / patient_name / patient_dob: The patient the check was run for.
- emr_encounter_id: The encounter/visit the check is tied to.
- provider_name / payer_name: Rendering provider and the payer that responded.
- subscriber_name / subscriber_member_id / patient_relationship: Subscriber details;
patient_relationshipisselfordependent. - plan_name: Plan description from the 271.
- coverage_status:
active,inactive,error(payer could not process the request), orunknown. - status_message: Payer reject reason when
coverage_statusiserror. - service_date / response_at: Date of service and when the payer response was received.
- plan_begin_date / plan_end_date: The plan’s effective date range (either may be
null). - benefits_summary: Headline EOB rollup.
deductibleandout_of_pocketare each split byindividual/familyintototalandremainingamounts. - benefit_count: Number of benefit lines parsed from the 271.
- pagination:
page,page_size,total_records,total_pages.
Authorizations
Query Parameters
Start of the check date range (ISO 8601, YYYY-MM-DD).
Example:
"2026-03-15"
End of the check date range (ISO 8601, YYYY-MM-DD).
Example:
"2026-03-20"
Filter by patient Medical Record Number.
Example:
"12345"
Filter by coverage status.
Example:
"active"
Page number.
Required range:
x >= 1Items per page.
Required range:
x >= 1