API Documentation
Integrate Acceling Software's powerful APIs into your applications
AiDGENT API v1.0.13
The NOA PDF Parsing API accepts one or more PDF files, classifies them, extracts structured data, and optionally generates suggested service schedules.
Base URL
https://aidgent-api.accelingsoftware.com
Authentication
Include your Azure subscription key in the header:
Header | Description |
---|---|
Ocp-Apim-Subscription-Key |
Your Azure API Management subscription key |
Endpoint: POST /parse
Upload one or more PDFs to parse and optionally generate service schedules. Supports both synchronous and asynchronous processing modes.
Query Parameters
Name | Type | Required | Default | Description |
---|---|---|---|---|
suggest_schedules |
boolean | No | true | Include suggested schedules |
use_ocr |
boolean | No | true | If False, skip OCR. Image-only PDFs will return immediately without OCR. |
callback_url |
string | No | null | URL to receive callback when processing is complete. If provided, processing will be asynchronous. |
Processing Modes
Synchronous Mode (Default)
When no callback_url
is provided, the API processes documents immediately and returns results in
the response.
Asynchronous Mode
When callback_url
is provided, the API returns immediately with a job ID and processes documents
in the background. Results are sent to the callback URL when complete.
Response Formats
Synchronous Response
{
"results": [
{
"filename": "document.pdf",
"status": "success",
"document_type": "united_v1",
"authorization_number": "AUTH123456",
"provider": { ... },
"patient": { ... },
"services": [ ... ],
"suggested_schedules": [ ... ]
}
],
"status": "completed"
}
Asynchronous Response
{
"job_id": "123e4567-e89b-12d3-a456-426614174000",
"status": "pending",
"message": "Documents queued for processing",
"callback_url": "https://your-callback-endpoint.com/webhook"
}
Endpoint: GET /parse/status/{job_id}
Get the status of an asynchronous parsing job.
Response
{
"job_id": "123e4567-e89b-12d3-a456-426614174000",
"status": "processing",
"progress": 45,
"created_at": "2025-01-15T10:00:00Z",
"updated_at": "2025-01-15T10:02:30Z",
"result": null,
"error": null,
"metadata": {
"file_count": 2,
"suggest_schedules": true,
"use_ocr": true
}
}
Job Statuses
pending
: Job created, waiting to startprocessing
: Job is currently runningcompleted
: Job finished successfullyfailed
: Job failed with an error
Code Examples
Synchronous Processing
curl --location 'https://aidgent-api.accelingsoftware.com/noa/parse?suggest_schedules=true&use_ocr=true' \
--header 'Ocp-Apim-Subscription-Key: YOUR_SUBSCRIPTION_KEY' \
--form 'files=@"/c/path/to/first.pdf"' \
--form 'files=@"/c/path/to/second.pdf"'
Asynchronous Processing
curl --location 'https://aidgent-api.accelingsoftware.com/noa/parse?suggest_schedules=true&use_ocr=true&callback_url=https://your-app.com/webhook' \
--header 'Ocp-Apim-Subscription-Key: YOUR_SUBSCRIPTION_KEY' \
--form 'files=@"/c/path/to/first.pdf"' \
--form 'files=@"/c/path/to/second.pdf"'
Check Job Status
curl --location 'https://aidgent-api.accelingsoftware.com/noa/parse/status/JOB_ID' \
--header 'Ocp-Apim-Subscription-Key: YOUR_SUBSCRIPTION_KEY'
Synchronous Processing
# === Synchronous Processing ===
import os
import requests
BASE_URL = "https://aidgent-api.accelingsoftware.com/noa"
API_KEY = "YOUR_SUBSCRIPTION_KEY"
SUGGEST_SCHEDULES = True
FILE_PATHS = [
"/c/path/to/first.pdf",
"/c/path/to/second.pdf",
]
url = f"{BASE_URL}/parse?suggest_schedules={str(SUGGEST_SCHEDULES).lower()}&use_ocr=true"
headers = {
"Ocp-Apim-Subscription-Key": API_KEY
}
# Build the multipart payload
files = []
for path in FILE_PATHS:
filename = os.path.basename(path)
file_obj = open(path, "rb")
files.append((
"files",
(filename, file_obj, "application/pdf")
))
response = requests.post(url, headers=headers, files=files)
# Always close your file handles afterward
for _, (_, fobj, _) in files:
fobj.close()
print(response.json())
Asynchronous Processing
# === Asynchronous Processing ===
import os
import requests
import time
BASE_URL = "https://aidgent-api.accelingsoftware.com/noa"
API_KEY = "YOUR_SUBSCRIPTION_KEY"
CALLBACK_URL = "https://your-app.com/webhook"
SUGGEST_SCHEDULES = True
FILE_PATHS = [
"/c/path/to/first.pdf",
"/c/path/to/second.pdf",
]
# Submit for async processing
url = f"{BASE_URL}/parse?suggest_schedules={str(SUGGEST_SCHEDULES).lower()}&use_ocr=true&callback_url={CALLBACK_URL}"
headers = {
"Ocp-Apim-Subscription-Key": API_KEY
}
files = []
for path in FILE_PATHS:
filename = os.path.basename(path)
file_obj = open(path, "rb")
files.append((
"files",
(filename, file_obj, "application/pdf")
))
response = requests.post(url, headers=headers, files=files)
# Close file handles
for _, (_, fobj, _) in files:
fobj.close()
job_data = response.json()
job_id = job_data['job_id']
print(f"Job submitted: {job_id}")
# Check job status (optional - results will be sent to callback_url)
status_url = f"{BASE_URL}/parse/status/{job_id}"
status_response = requests.get(status_url, headers=headers)
status = status_response.json()
print(f"Status: {status['status']}, Progress: {status['progress']}%")
Synchronous Processing
// === Synchronous Processing ===
const BASE_URL = "https://aidgent-api.accelingsoftware.com/noa";
const API_KEY = "YOUR_SUBSCRIPTION_KEY";
const SUGGEST_SCHEDULES = true;
const FILE_PATHS = [
"C:/path/to/first.pdf",
"C:/path/to/second.pdf",
];
const fs = require("fs");
const path = require("path");
const axios = require("axios");
const FormData = require("form-data");
const url = `${BASE_URL}/parse?suggest_schedules=${SUGGEST_SCHEDULES}&use_ocr=true`;
const form = new FormData();
FILE_PATHS.forEach(p => {
form.append(
"files",
fs.createReadStream(p),
{
filename: path.basename(p),
contentType: "application/pdf"
}
);
});
axios.post(url, form, {
headers: {
...form.getHeaders(),
"Ocp-Apim-Subscription-Key": API_KEY
}
})
.then(res => {
console.log(JSON.stringify(res.data, null, 2));
})
.catch(err => {
console.error(err);
});
Asynchronous Processing
// === Asynchronous Processing ===
const BASE_URL = "https://aidgent-api.accelingsoftware.com/noa";
const API_KEY = "YOUR_SUBSCRIPTION_KEY";
const CALLBACK_URL = "https://your-app.com/webhook";
const SUGGEST_SCHEDULES = true;
const FILE_PATHS = [
"C:/path/to/first.pdf",
"C:/path/to/second.pdf",
];
const fs = require("fs");
const path = require("path");
const axios = require("axios");
const FormData = require("form-data");
// Submit for async processing
const url = `${BASE_URL}/parse?suggest_schedules=${SUGGEST_SCHEDULES}&use_ocr=true&callback_url=${CALLBACK_URL}`;
const form = new FormData();
FILE_PATHS.forEach(p => {
form.append(
"files",
fs.createReadStream(p),
{
filename: path.basename(p),
contentType: "application/pdf"
}
);
});
axios.post(url, form, {
headers: {
...form.getHeaders(),
"Ocp-Apim-Subscription-Key": API_KEY
}
})
.then(res => {
const jobData = res.data;
const jobId = jobData.job_id;
console.log(`Job submitted: ${jobId}`);
// Check job status (optional - results will be sent to callback_url)
return axios.get(`${BASE_URL}/parse/status/${jobId}`, {
headers: {
"Ocp-Apim-Subscription-Key": API_KEY
}
});
})
.then(statusRes => {
const status = statusRes.data;
console.log(`Status: ${status.status}, Progress: ${status.progress}%`);
})
.catch(err => {
console.error(err);
});
Callback Format
When async processing completes, a POST request is sent to the provided callback URL with the following payload:
Success Callback
{
"job_id": "123e4567-e89b-12d3-a456-426614174000",
"status": "completed",
"timestamp": "2025-01-15T10:30:00Z",
"result": {
"results": [
{
"filename": "document.pdf",
"status": "success",
"document_type": "united_v1",
"authorization_number": "AUTH123456",
"provider": { ... },
"patient": { ... },
"services": [ ... ],
"suggested_schedules": [ ... ]
}
]
},
"error": null
}
Error Callback
{
"job_id": "123e4567-e89b-12d3-a456-426614174000",
"status": "failed",
"timestamp": "2025-01-15T10:30:00Z",
"result": null,
"error": "Document classification failed - insufficient confidence"
}
Response
Success Response
HTTP 200 OK. Returns JSON array of results.
Example Success Response
Error Responses
- 400 Invalid file type
- 500 Processing error
Schedule Generation Endpoints
The following endpoints allow you to generate service schedules based on different criteria. All schedule endpoints require authentication via the Ocp-Apim-Subscription-Key
header.
POST /schedules/fixed_monthly
Generate schedules with a fixed number of units per month.
Query Parameters
Name | Type | Required | Default | Description |
---|---|---|---|---|
units_ratio |
number | No | 4 | Hours-to-units ratio (units per hour) |
debug |
boolean | No | false | Include debug info in response |
Request Body
Field | Type | Required | Description |
---|---|---|---|
start_date |
string | Yes | Start date mm/dd/YYYY or mm-dd-YYYY |
end_date |
string | Yes | End date mm/dd/YYYY or mm-dd-YYYY |
units |
number | Yes | Units per month (fixed for each month) |
Example Request
curl -X POST \
'https://aidgent-api.accelingsoftware.com/schedules/fixed_monthly' \
--header 'Ocp-Apim-Subscription-Key: YOUR_SUBSCRIPTION_KEY' \
--header 'Content-Type: application/json' \
--data-raw '{
"start_date": "09/01/2025",
"end_date": "8/31/2026",
"units": 400
}'
import requests
import json
api_key = 'YOUR_SUBSCRIPTION_KEY'
base_url = 'https://aidgent-api.accelingsoftware.com'
endpoint = '/schedules/fixed_monthly'
payload = {
"start_date": "09/01/2025",
"end_date": "8/31/2026",
"units": 400
}
headers = {
'Ocp-Apim-Subscription-Key': api_key,
'Content-Type': 'application/json'
}
try:
response = requests.post(base_url + endpoint, headers=headers, data=json.dumps(payload))
response.raise_for_status()
print(response.json())
except requests.exceptions.RequestException as e:
print(f"An error occurred: {e}")
const axios = require('axios');
const apiKey = 'YOUR_SUBSCRIPTION_KEY';
const baseUrl = 'https://aidgent-api.accelingsoftware.com';
const endpoint = '/schedules/fixed_monthly';
const payload = {
"start_date": "09/01/2025",
"end_date": "8/31/2026",
"units": 400
};
const headers = {
'Ocp-Apim-Subscription-Key': apiKey,
'Content-Type': 'application/json'
};
axios.post(baseUrl + endpoint, payload, { headers })
.then(response => {
console.log(response.data);
})
.catch(error => {
console.error('An error occurred:', error.response ? error.response.data : error.message);
});
Example Success Response
POST /schedules/total
Generate schedules based on total units across the entire date range.
Query Parameters
Name | Type | Required | Default | Description |
---|---|---|---|---|
units_ratio |
number | No | 4 | Hours-to-units ratio (units per hour) |
debug |
boolean | No | false | Include debug info in response |
Request Body
Field | Type | Required | Description |
---|---|---|---|
start_date |
string | Yes | Start date mm/dd/YYYY or mm-dd-YYYY |
end_date |
string | Yes | End date mm/dd/YYYY or mm-dd-YYYY |
total_units |
number | Yes | Total units across the full date range |
Example Request
curl -X POST \
'https://aidgent-api.accelingsoftware.com/schedules/total' \
--header 'Ocp-Apim-Subscription-Key: YOUR_SUBSCRIPTION_KEY' \
--header 'Content-Type: application/json' \
--data-raw '{
"start_date": "09/01/2025",
"end_date": "8/31/2026",
"total_units": 7300
}'
import requests
import json
api_key = 'YOUR_SUBSCRIPTION_KEY'
base_url = 'https://aidgent-api.accelingsoftware.com'
endpoint = '/schedules/total'
payload = {
"start_date": "09/01/2025",
"end_date": "8/31/2026",
"total_units": 7300
}
headers = {
'Ocp-Apim-Subscription-Key': api_key,
'Content-Type': 'application/json'
}
try:
response = requests.post(base_url + endpoint, headers=headers, data=json.dumps(payload))
response.raise_for_status()
print(response.json())
except requests.exceptions.RequestException as e:
print(f"An error occurred: {e}")
const axios = require('axios');
const apiKey = 'YOUR_SUBSCRIPTION_KEY';
const baseUrl = 'https://aidgent-api.accelingsoftware.com';
const endpoint = '/schedules/total';
const payload = {
"start_date": "09/01/2025",
"end_date": "8/31/2026",
"total_units": 7300
};
const headers = {
'Ocp-Apim-Subscription-Key': apiKey,
'Content-Type': 'application/json'
};
axios.post(baseUrl + endpoint, payload, { headers })
.then(response => {
console.log(response.data);
})
.catch(error => {
console.error('An error occurred:', error.response ? error.response.data : error.message);
});
Example Success Response
{"perfect":["09/01/2025 - 08/31/2026 35hrs/wk (Sun-Sat 5hrs/day)"]}
POST /schedules/multi_month
Generate schedules with different units for each month.
Query Parameters
Name | Type | Required | Default | Description |
---|---|---|---|---|
units_ratio |
number | No | 4 | Hours-to-units ratio (units per hour) |
debug |
boolean | No | false | Include debug info in response |
Request Body
Field | Type | Required | Description |
---|---|---|---|
start_date |
string | Yes | Start date mm/dd/YYYY or mm-dd-YYYY |
end_date |
string | Yes | End date mm/dd/YYYY or mm-dd-YYYY |
monthly_units |
array[number] | Yes | Units for each month in the range, in order |
Example Request
curl -X POST \
'https://aidgent-api.accelingsoftware.com/schedules/multi_month' \
--header 'Ocp-Apim-Subscription-Key: YOUR_SUBSCRIPTION_KEY' \
--header 'Content-Type: application/json' \
--data-raw '{
"start_date": "01/01/2025",
"end_date": "03/31/2025",
"monthly_units": [248, 224, 248]
}'
import requests
import json
api_key = 'YOUR_SUBSCRIPTION_KEY'
base_url = 'https://aidgent-api.accelingsoftware.com'
endpoint = '/schedules/multi_month'
payload = {
"start_date": "01/01/2025",
"end_date": "03/31/2025",
"monthly_units": [248, 224, 248]
}
headers = {
'Ocp-Apim-Subscription-Key': api_key,
'Content-Type': 'application/json'
}
try:
response = requests.post(base_url + endpoint, headers=headers, data=json.dumps(payload))
response.raise_for_status()
print(response.json())
except requests.exceptions.RequestException as e:
print(f"An error occurred: {e}")
const axios = require('axios');
const apiKey = 'YOUR_SUBSCRIPTION_KEY';
const baseUrl = 'https://aidgent-api.accelingsoftware.com';
const endpoint = '/schedules/multi_month';
const payload = {
"start_date": "01/01/2025",
"end_date": "03/31/2025",
"monthly_units": [248, 224, 248]
};
const headers = {
'Ocp-Apim-Subscription-Key': apiKey,
'Content-Type': 'application/json'
};
axios.post(baseUrl + endpoint, payload, { headers })
.then(response => {
console.log(response.data);
})
.catch(error => {
console.error('An error occurred:', error.response ? error.response.data : error.message);
});
Example Success Response
{"perfect":["01/01/2025 - 03/31/2025 14hrs/wk (Sun-Sat 2hrs/day)"]}
POST /schedules/cost
Generate schedules based on cost and rate. Calculates total_units = cost / rate and treats it as a total units request.
Query Parameters
Name | Type | Required | Default | Description |
---|---|---|---|---|
units_ratio |
number | No | 4 | Hours-to-units ratio (units per hour) |
debug |
boolean | No | false | Include debug info in response |
Request Body
Field | Type | Required | Description |
---|---|---|---|
start_date |
string | Yes | Start date mm/dd/YYYY or mm-dd-YYYY |
end_date |
string | Yes | End date mm/dd/YYYY or mm-dd-YYYY |
cost |
number | Yes | Total cost amount |
rate |
number | Yes | Rate per unit |
Example Request
curl -X POST \
'https://aidgent-api.accelingsoftware.com/schedules/cost' \
--header 'Ocp-Apim-Subscription-Key: YOUR_SUBSCRIPTION_KEY' \
--header 'Content-Type: application/json' \
--data-raw '{
"start_date": "01/01/2025",
"end_date": "03/31/2025",
"cost": 384.00,
"rate": 4.00
}'
import requests
import json
api_key = 'YOUR_SUBSCRIPTION_KEY'
base_url = 'https://aidgent-api.accelingsoftware.com'
endpoint = '/schedules/cost'
payload = {
"start_date": "01/01/2025",
"end_date": "03/31/2025",
"cost": 384.00,
"rate": 4.00
}
headers = {
'Ocp-Apim-Subscription-Key': api_key,
'Content-Type': 'application/json'
}
try:
response = requests.post(base_url + endpoint, headers=headers, data=json.dumps(payload))
response.raise_for_status()
print(response.json())
except requests.exceptions.RequestException as e:
print(f"An error occurred: {e}")
const axios = require('axios');
const apiKey = 'YOUR_SUBSCRIPTION_KEY';
const baseUrl = 'https://aidgent-api.accelingsoftware.com';
const endpoint = '/schedules/cost';
const payload = {
"start_date": "01/01/2025",
"end_date": "03/31/2025",
"cost": 384.00,
"rate": 4.00
};
const headers = {
'Ocp-Apim-Subscription-Key': apiKey,
'Content-Type': 'application/json'
};
axios.post(baseUrl + endpoint, payload, { headers })
.then(response => {
console.log(response.data);
})
.catch(error => {
console.error('An error occurred:', error.response ? error.response.data : error.message);
});
Adhere API v1.8.1
The Adhere API enables automated eligibility checking for healthcare organizations, focusing on Medicaid Waiver and HCBS benefits. Integrate real-time verification into your systems.
Base URL
https://adhere-api.accelingsoftware.com/api
Health Check
GET /
A simple endpoint to verify that the API is online and reachable through the gateway.
Example Requests
curl -X GET \
'https://adhere-api.accelingsoftware.com/api/' \
--header 'Ocp-Apim-Subscription-Key: Your_Assigned_Subscription_Key'
import requests
api_key = 'Your_Assigned_Subscription_Key'
base_url = 'https://adhere-api.accelingsoftware.com/api'
endpoint = '/'
headers = {
'Ocp-Apim-Subscription-Key': api_key
}
try:
response = requests.get(base_url + endpoint, headers=headers)
response.raise_for_status()
print(response.json())
except requests.exceptions.RequestException as e:
print(f"An error occurred: {e}")
const axios = require('axios');
const apiKey = 'Your_Assigned_Subscription_Key';
const baseUrl = 'https://adhere-api.accelingsoftware.com/api';
const endpoint = '/';
const headers = {
'Ocp-Apim-Subscription-Key': apiKey
};
axios.get(baseUrl + endpoint, { headers })
.then(response => {
console.log(response.data);
})
.catch(error => {
console.error('An error occurred:', error.response ? error.response.data : error.message);
});
Success Response (200 OK)
{
"status": "ok",
"message": "Welcome to the Adhere API!"
}
Authentication
All API requests require your Azure subscription key. Include it in the header:
Header | Description |
---|---|
Ocp-Apim-Subscription-Key |
Your Assigned Subscription Key |
Check Eligibility for Multiple Members
POST /api/eligibility
Checks the current eligibility status for a list of members to determine if they have active HCBS Waiver or Pathways coverage.
Request Body
Field | Type | Required | Description |
---|---|---|---|
member_ids |
array[string] | Yes | An array of member IDs to check. |
Example Requests
curl -X POST \
'https://adhere-api.accelingsoftware.com/api/eligibility' \
--header 'Ocp-Apim-Subscription-Key: Your_Assigned_Subscription_Key' \
--header 'Content-Type: application/json' \
--data-raw '{
"member_ids": [
"111111111111",
"222222222222",
"333333333333"
]
}'
import requests
import json
api_key = 'Your_Assigned_Subscription_Key'
base_url = 'https://adhere-api.accelingsoftware.com/api'
endpoint = '/eligibility'
payload = {
"member_ids": [
"111111111111",
"222222222222",
"333333333333"
]
}
headers = {
'Ocp-Apim-Subscription-Key': api_key,
'Content-Type': 'application/json'
}
try:
response = requests.post(base_url + endpoint, headers=headers, data=json.dumps(payload))
response.raise_for_status()
print(response.json())
except requests.exceptions.RequestException as e:
print(f"An error occurred: {e}")
const axios = require('axios');
const apiKey = 'Your_Assigned_Subscription_Key';
const baseUrl = 'https://adhere-api.accelingsoftware.com/api';
const endpoint = '/eligibility';
const payload = {
"member_ids": [
"111111111111",
"222222222222",
"333333333333"
]
};
const headers = {
'Ocp-Apim-Subscription-Key': apiKey,
'Content-Type': 'application/json'
};
axios.post(baseUrl + endpoint, payload, { headers })
.then(response => {
console.log(response.data);
})
.catch(error => {
console.error('An error occurred:', error.response ? error.response.data : error.message);
});
Success Response (200 OK)
The response is a JSON array of objects. Each object contains the detailed eligibility status for a single member.
Field | Type | Description |
---|---|---|
member_id | string | The original member ID this result corresponds to. |
patient | string | The patient's name as returned in the X12 response ( Last, First M ). |
waiver_status | string | The primary eligibility status. Will be 'Eligible' if a Waiver or HCBS benefit is found; otherwise 'Not Eligible' or an error message. |
mce | string | The Managed Care Entity found (e.g., "HUMANA HEALTHY HORIZONS"). |
coverage | string | The specific benefit description found (e.g., "Aged and Disabled HCBS Pathways"). |
start_date | string | The coverage start date in YYYYMMDD format. |
end_date | string | The coverage end date in YYYYMMDD format, if available. |
date_of_birth | string | The patient's date of birth from the X12 response, in YYYYMMDD format. |
raw_x12_response | string | Raw X12 response for debugging purposes. |
Example Success Response
[
{
"member_id": "111111111111",
"patient": "DOE, JANE A",
"waiver_status": "Eligible",
"mce": "ANYTOWN HEALTH PLAN",
"coverage": "Aged and Disabled HCBS Pathways",
"start_date": "20250101",
"end_date": "20251231",
"date_of_birth": "19850115",
"raw_x12_response": "ISA*00* *00* *ZZ*IHCP *ZZ*A367 *250825*1543*^*00501*080960928*0*P*:~GS*HB*IHCP*A367*20250825*1543*24737*X*005010X279A1~ST*271*1240*005010X279A1~BHT*0022*11*10004218*20250825*1543~HL*1**20*1~NM1*PR*2*INDIANA HEALTH COVERAGE PROGRAM*****46*IHCP~HL*2*1*21*1~NM1*1P*2*ABSOLUTE CAREGIVERS LLC*****SV*300024773~HL*3*2*22*0~TRN*2*93175-012552-3*9877281234~TRN*1*25237HDKS1*1123456789~NM1*IL*1*DOE*JANE*A***MI*111111111111~N3*123 MAIN ST~N4*ANYTOWN*IN*46201~DMG*D8*19850115*F~DTP*307*RD8*20250101-20251231~EB*1*IND*30*MC*Aged and Disabled HCBS Pathways~DTP*307*RD8*20250101-20251231~SE*14*1240~GE*1*24737~IEA*1*080960928~"
},
{
"member_id": "222222222222",
"patient": "SMITH, JOHN B",
"waiver_status": "Not Eligible",
"mce": "STATE MEDICAID OFFICE",
"coverage": null,
"start_date": null,
"end_date": null,
"date_of_birth": "19920320",
"raw_x12_response": "ISA*00* *00* *ZZ*IHCP *ZZ*A367 *250825*1543*^*00501*080960928*0*P*:~GS*HB*IHCP*A367*20250825*1543*24737*X*005010X279A1~ST*271*1240*005010X279A1~BHT*0022*11*10004218*20250825*1543~HL*1**20*1~NM1*PR*2*INDIANA HEALTH COVERAGE PROGRAM*****46*IHCP~HL*2*1*21*1~NM1*1P*2*ABSOLUTE CAREGIVERS LLC*****SV*300024773~HL*3*2*22*0~TRN*2*93175-012552-3*9877281234~TRN*1*25237HDKS1*1123456789~NM1*IL*1*SMITH*JOHN*B***MI*222222222222~N3*456 OAK AVE~N4*ANYTOWN*IN*46201~DMG*D8*19920320*M~DTP*307*RD8*20250825-20250825~SE*14*1240~GE*1*24737~IEA*1*080960928~"
},
{
"member_id": "333333333333",
"patient": "PUBLIC, JOHN Q",
"waiver_status": "Eligible",
"mce": "COMMUNITY CARE CONNECT",
"coverage": "Health and Wellness Waiver",
"start_date": "20250801",
"end_date": "20250831",
"date_of_birth": "19750410",
"raw_x12_response": "ISA*00* *00* *ZZ*IHCP *ZZ*A367 *250825*1543*^*00501*080960928*0*P*:~GS*HB*IHCP*A367*20250825*1543*24737*X*005010X279A1~ST*271*1240*005010X279A1~BHT*0022*11*10004218*20250825*1543~HL*1**20*1~NM1*PR*2*INDIANA HEALTH COVERAGE PROGRAM*****46*IHCP~HL*2*1*21*1~NM1*1P*2*ABSOLUTE CAREGIVERS LLC*****SV*300024773~HL*3*2*22*0~TRN*2*93175-012552-3*9877281234~TRN*1*25237HDKS1*1123456789~NM1*IL*1*PUBLIC*JOHN*Q***MI*333333333333~N3*789 PINE ST~N4*ANYTOWN*IN*46201~DMG*D8*19750410*M~DTP*307*RD8*20250801-20250831~EB*1*IND*30*MC*Health and Wellness Waiver~DTP*307*RD8*20250801-20250831~SE*14*1240~GE*1*24737~IEA*1*080960928~"
}
]
Check Daily Eligibility for a Single Member
POST /api/daterange
This endpoint is used to audit or verify coverage for a single member over a period of time. For each day in the provided range, it determines if the member had active HCBS Waiver or Pathways coverage.
Request Body
Field | Type | Required | Description |
---|---|---|---|
member_id | string | Yes | The ID of the single member to check. |
start_date | string | Yes | The first date of the range in YYYYMMDD format. |
end_date | string | Yes | The last date of the range in YYYYMMDD format. |
Example Requests
curl -X POST \
'https://adhere-api.accelingsoftware.com/api/daterange' \
--header 'Ocp-Apim-Subscription-Key: Your_Assigned_Subscription_Key' \
--header 'Content-Type: application/json' \
--data-raw '{
"member_id": "111111111111",
"start_date": "20250301",
"end_date": "20250303"
}'
import requests
import json
api_key = 'Your_Assigned_Subscription_Key'
base_url = 'https://adhere-api.accelingsoftware.com/api'
endpoint = '/daterange'
payload = {
"member_id": "111111111111",
"start_date": "20250301",
"end_date": "20250303"
}
headers = {
'Ocp-Apim-Subscription-Key': api_key,
'Content-Type': 'application/json'
}
try:
response = requests.post(base_url + endpoint, headers=headers, data=json.dumps(payload))
response.raise_for_status()
print(response.json())
except requests.exceptions.RequestException as e:
print(f"An error occurred: {e}")
const axios = require('axios');
const apiKey = 'Your_Assigned_Subscription_Key';
const baseUrl = 'https://adhere-api.accelingsoftware.com/api';
const endpoint = '/daterange';
const payload = {
"member_id": "111111111111",
"start_date": "20250301",
"end_date": "20250303"
};
const headers = {
'Ocp-Apim-Subscription-Key': apiKey,
'Content-Type': 'application/json'
};
axios.post(baseUrl + endpoint, payload, { headers })
.then(response => {
console.log(response.data);
})
.catch(error => {
console.error('An error occurred:', error.response ? error.response.data : error.message);
});
Success Response (200 OK)
The response is a JSON array of objects, one for each day from start_date to end_date.
Field | Type | Description |
---|---|---|
date | string | The specific date this result applies to, in YYYYMMDD format. |
status | string | 'Eligible' if a relevant waiver was found for this date; otherwise 'Not Eligible'. |
reason | string | The specific waiver name found (e.g., "Aged and Disabled HCBS Pathways") or the reason for non-eligibility. |
mce | string | The Managed Care Entity associated with the coverage for that day. Will be 'N/A' if not eligible. |
Example Success Response
[
{
"date": "20250301",
"status": "Eligible",
"reason": "Aged and Disabled HCBS Pathways",
"mce": "ANYTOWN HEALTH PLAN"
},
{
"date": "20250302",
"status": "Not Eligible",
"reason": "Coverage not active on this date.",
"mce": "N/A"
},
{
"date": "20250303",
"status": "Eligible",
"reason": "Aged and Disabled HCBS Pathways",
"mce": "ANYTOWN HEALTH PLAN"
}
]
Check Eligibility by Name and Date of Birth
POST /api/referral
Performs a real-time check for the current eligibility status for a list of individuals using their first name, last name, and date of birth, specifically looking for HCBS Waiver or Pathways coverage.
Request Body
Field | Type | Required | Description |
---|---|---|---|
records |
array[object] | Yes | An array of referral records to process. |
Record Object Fields
Field | Type | Required | Description |
---|---|---|---|
first_name |
string | Yes | The first name of the individual. |
last_name |
string | Yes | The last name of the individual. |
date_of_birth |
string | Yes | The date of birth in YYYYMMDD format. |
Example Requests
curl -X POST \
'https://adhere-api.accelingsoftware.com/api/referral' \
--header 'Ocp-Apim-Subscription-Key: Your_Assigned_Subscription_Key' \
--header 'Content-Type: application/json' \
--data-raw '{
"records": [
{
"first_name": "John",
"last_name": "Doe",
"date_of_birth": "19850115"
},
{
"first_name": "Jane",
"last_name": "Smith",
"date_of_birth": "19920320"
}
]
}'
import requests
import json
api_key = 'Your_Assigned_Subscription_Key'
base_url = 'https://adhere-api.accelingsoftware.com/api'
endpoint = '/referral'
payload = {
"records": [
{
"first_name": "John",
"last_name": "Doe",
"date_of_birth": "19850115"
},
{
"first_name": "Jane",
"last_name": "Smith",
"date_of_birth": "19920320"
}
]
}
headers = {
'Ocp-Apim-Subscription-Key': api_key,
'Content-Type': 'application/json'
}
try:
response = requests.post(base_url + endpoint, headers=headers, data=json.dumps(payload))
response.raise_for_status()
print(response.json())
except requests.exceptions.RequestException as e:
print(f"An error occurred: {e}")
const axios = require('axios');
const apiKey = 'Your_Assigned_Subscription_Key';
const baseUrl = 'https://adhere-api.accelingsoftware.com/api';
const endpoint = '/referral';
const payload = {
"records": [
{
"first_name": "John",
"last_name": "Doe",
"date_of_birth": "19850115"
},
{
"first_name": "Jane",
"last_name": "Smith",
"date_of_birth": "19920320"
}
]
};
const headers = {
'Ocp-Apim-Subscription-Key': apiKey,
'Content-Type': 'application/json'
};
axios.post(baseUrl + endpoint, payload, { headers })
.then(response => {
console.log(response.data);
})
.catch(error => {
console.error('An error occurred:', error.response ? error.response.data : error.message);
});
Success Response (200 OK)
The response is a JSON array of objects. Each object contains the detailed eligibility status for a single individual.
Field | Type | Description |
---|---|---|
first_name | string | The first name provided in the request. |
last_name | string | The last name provided in the request. |
date_of_birth | string | The date of birth provided in the request. |
patient | string | The patient's name as returned in the X12 response (Last, First). |
waiver_status | string | The primary eligibility status. Will be 'Eligible' if a Waiver or HCBS benefit is found; otherwise 'Not Eligible', 'Patient Not Found or Inactive', or an error message. |
mce | string | The Managed Care Entity found (e.g., "ANTHEM BLUE CROSS AND BLUE SHIELD"). |
coverage | string | The specific benefit description found (e.g., "Aged and Disabled HCBS Pathways"). |
start_date | string | The coverage start date in YYYYMMDD format. |
end_date | string | The coverage end date in YYYYMMDD format, if available. |
raw_x12_response | string | Raw X12 response for debugging purposes. |
Example Success Response
[
{
"first_name": "John",
"last_name": "Doe",
"date_of_birth": "19850115",
"patient": "DOE, JOHN",
"waiver_status": "Eligible",
"mce": "ANTHEM BLUE CROSS AND BLUE SHIELD",
"coverage": "Aged and Disabled HCBS Pathways",
"start_date": "20250825",
"end_date": "20250825",
"raw_x12_response": "ISA*00* *00* *ZZ*IHCP *ZZ*A367 *250825*1551*^*00501*143815806*0*P*:~GS*HB*IHCP*A367*20250825*1551*24737*X*005010X279A1~ST*271*1240*005010X279A1~BHT*0022*11*10009077*20250825*1551~HL*1**20*1~NM1*PR*2*INDIANA HEALTH COVERAGE PROGRAM*****46*IHCP~HL*2*1*21*1~NM1*1P*2*ABSOLUTE CAREGIVERS LLC*****SV*300024773~HL*3*2*22*0~TRN*2*93175-012552-3*9877281234~TRN*1*25237HDT4V*1123456789~NM1*IL*1*DOE*JOHN~DMG*D8*19850115~DTP*307*RD8*20250825-20250825~EB*1*IND*30*MC*Aged and Disabled HCBS Pathways~DTP*307*RD8*20250825-20250825~SE*14*1240~GE*1*24737~IEA*1*143815806~"
},
{
"first_name": "Jane",
"last_name": "Smith",
"date_of_birth": "19920320",
"patient": "SMITH, JANE",
"waiver_status": "Patient Not Found or Inactive",
"mce": null,
"coverage": null,
"start_date": null,
"end_date": null,
"raw_x12_response": "ISA*00* *00* *ZZ*IHCP *ZZ*A367 *250825*1551*^*00501*142065816*0*P*:~GS*HB*IHCP*A367*20250825*1551*24737*X*005010X279A1~ST*271*1240*005010X279A1~BHT*0022*11*10006622*20250825*1551~HL*1**20*1~NM1*PR*2*INDIANA HEALTH COVERAGE PROGRAM*****46*IHCP~HL*2*1*21*1~NM1*1P*2*ABSOLUTE CAREGIVERS LLC*****SV*300024773~HL*3*2*22*0~TRN*2*93175-012552-3*9877281234~TRN*1*25237HDT51*1123456789~NM1*IL*1*SMITH*JANE~AAA*N**76*C~DMG*D8*19920320~DTP*307*RD8*20250825-20250825~SE*14*1240~GE*1*24737~IEA*1*142065816~"
}
]
Error Handling and Troubleshooting
This error means your Ocp-Apim-Subscription-Key
is
either
missing or invalid. Please verify your key and ensure it is
correctly placed
in the request header. If the issue persists, contact support to
confirm
your subscription status.
This error indicates that the request body you sent was not in the
expected
format (e.g., a field is missing, dates are in an invalid format, or
member_ids
is not an array). The response body will
contain a
detailed JSON object explaining which fields were invalid. Please
review the
documentation for the specific endpoint and correct your request
structure.
If you receive this error, it means an unexpected problem occurred on our end. We are automatically notified of these errors, but we encourage you to report them to support with the details mentioned above to help us correlate and resolve the issue faster.