Supporting Info
Attach supporting information (vital signs, attachments, lab results, clinical notes, etc.) to pre-authorization requests and claims. Supporting info records carry structured clinical data that the Najeeb AI Engine uses during adjudication.
Supporting info can also be submitted inline as part of the prior authorization creation body using the supporting_info field. Use the endpoints below when you need to attach supporting information to an existing pre-auth or claim after it has been created.
For more information, see the Supporting Info Object.
Base URL
https://api.{client_namespace}.najeeb.ai/v4.0/health
Authentication
All API requests are authenticated using an API key passed in a dedicated header:
access-key: YOUR_API_KEY
For access key provisioning, please contact Najeeb support.
API Endpoints
Create Supporting Info for Prior Authorization
POST /supporting-info/create-for-preauth
Creates a new supporting information record linked to a pre-authorization request. The prior authorization is identified by its transaction_id (the same identifier used when creating the pre-auth).
Request Headers
| Header | Type | Required | Description |
|---|---|---|---|
access-key | string | Yes | API key for authentication |
Content-Type | string | Yes | Must be application/json |
Request Body Parameters
| Parameter | Type | Required | Description | Accepted Values |
|---|---|---|---|---|
transaction_id * | string | Yes | Transaction ID of the prior authorization to attach this record to (same value used when creating the pre-auth) | Alphanumeric string, 1-255 characters |
sequence_number | number | No | Sequence number for ordering multiple supporting info entries | Integer, minimum 1 |
type | string | No | Type of supporting information (e.g. "MEDICAL_RECORD") | String, max 255 characters |
code | string | No | NPHIES supporting-info code | See Supported Codes table |
value | string | No | Value of the supporting information. When code is attachment, pass base64-encoded file content | String, max 1000 characters |
file_name | string | No | Original file name when code is attachment (used to infer extension, e.g. "lab-result.pdf") | String, max 255 characters |
unit | string | No | Unit of measurement (e.g. "mmHg", "kg", "cm") | String, max 50 characters |
start_date * | string | Yes | Start date for the information | ISO 8601 format: YYYY-MM-DDTHH:mm:ss.sssZ |
end_date * | string | Yes | End date for the information | ISO 8601 format: YYYY-MM-DDTHH:mm:ss.sssZ |
value_url | string | No | URL to additional information or an external document | Valid HTTP/HTTPS URL, max 500 characters |
Supported Codes
The code field accepts any of the following NPHIES supporting-information codes:
| Code | Description |
|---|---|
INFO | Information |
ONSET | Onset |
ATTACHMENT | Attachment |
MISSING_TOOTH | Missing Tooth |
EMPLOYMENT_IMPACTED | Employment Impacted |
LAB_TEST | Lab Test |
REASON_FOR_VISIT | Reason for Visit |
DAYS_SUPPLY | Days Supply |
VITAL_SIGN_WEIGHT | Weight |
VITAL_SIGN_SYSTOLIC | Systolic |
VITAL_SIGN_DIASTOLIC | Diastolic |
VITAL_SIGN_HEIGHT | Height |
ICU_HOURS | ICU Hours |
VENTILATION_HOURS | Ventilation Hours |
CHIEF_COMPLAINT | Chief Complaint |
BIRTH_WEIGHT | Birth Weight |
TEMPERATURE | Temperature |
PULSE | Pulse |
OXYGEN_SATURATION | Oxygen Saturation |
RESPIRATORY_RATE | Respiratory Rate |
MORPHOLOGY | Morphology |
LAST_MENSTRUAL_PERIOD | Last Menstrual Period |
TREATMENT_PLAN | Treatment Plan |
PATIENT_HISTORY | Patient History |
PHYSICAL_EXAMINATION | Physical Examination |
HISTORY_OF_PRESENT_ILLNESS | History of Present Illness |
ADMISSION_WEIGHT | Admission Weight |
ESTIMATED_LENGTH_OF_STAY | Estimated Length of Stay |
INVESTIGATION_RESULT | Investigation Result |
SIGNIFICANT_SIGNS | Significant Signs |
GENERAL_EXAMINATION | General Examination |
VITAL_INFORMATION | Vital Information |
OTHER | Other |
Example Request
- cURL
- JavaScript
- Python
curl -X POST \
"https://api.{client_namespace}.najeeb.ai/v4.0/health/supporting-info/create-for-preauth" \
-H "access-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"transaction_id": "550e8400-e29b-41d4-a716-446655440000",
"sequence_number": 1,
"type": "MEDICAL_RECORD",
"code": "VITAL_SIGN_SYSTOLIC",
"value": "120",
"unit": "mmHg",
"start_date": "2024-01-15T10:30:00.000Z",
"end_date": "2024-01-15T10:30:00.000Z"
}'
const response = await fetch(
'https://api.{client_namespace}.najeeb.ai/v4.0/health/supporting-info/create-for-preauth',
{
method: 'POST',
headers: {
'access-key': 'YOUR_API_KEY',
'Content-Type': 'application/json',
},
body: JSON.stringify({
transaction_id: '550e8400-e29b-41d4-a716-446655440000',
sequence_number: 1,
type: 'MEDICAL_RECORD',
code: 'VITAL_SIGN_SYSTOLIC',
value: '120',
unit: 'mmHg',
start_date: '2024-01-15T10:30:00.000Z',
end_date: '2024-01-15T10:30:00.000Z',
}),
}
);
const data = await response.json();
console.log(data);
import requests
response = requests.post(
'https://api.{client_namespace}.najeeb.ai/v4.0/health/supporting-info/create-for-preauth',
headers={
'access-key': 'YOUR_API_KEY',
'Content-Type': 'application/json',
},
json={
'transaction_id': '550e8400-e29b-41d4-a716-446655440000',
'sequence_number': 1,
'type': 'MEDICAL_RECORD',
'code': 'VITAL_SIGN_SYSTOLIC',
'value': '120',
'unit': 'mmHg',
'start_date': '2024-01-15T10:30:00.000Z',
'end_date': '2024-01-15T10:30:00.000Z',
},
)
result = response.json()
print(result)
Response
Success Response (201 Created)
{
"id": 1,
"code": 201,
"message": "Supporting info created successfully"
}
Response Fields
| Field | Type | Description |
|---|---|---|
id | number | Internal identifier assigned to the supporting info record |
code | number | HTTP status code (201) |
message | string | Success message |
Error Responses
Error Response Structure
{
"ErrorCode": "string",
"message": "string",
"details": ["string"]
}
Error Codes
| Error Code | HTTP Status | Description |
|---|---|---|
E_BAD_REQUEST_400 | 400 | Request validation failed — see the details array for field-level errors |
E_EPA_064 | 404 | Prior authorization not found for the given transaction_id |
401 Unauthorized | 401 | Missing or invalid access-key |
Example Error Responses
Bad Request:
{
"ErrorCode": "E_BAD_REQUEST_400",
"message": "Bad request - Invalid input data or validation errors",
"details": ["transaction_id should not be empty"]
}
Prior Authorization Not Found:
{
"ErrorCode": "E_EPA_064",
"message": "Prior authorization not found, The id of the prior authorization is: 550e8400-e29b-41d4-a716-446655440000",
"details": []
}
Unauthorized:
{
"ErrorCode": "API key is required",
"message": "Unauthorized",
"details": []
}
Create Supporting Info for Claim
POST /supporting-info/create-for-claim
Creates a new supporting information record linked to a claim. The claim is identified by its claim_number.
Request Headers
| Header | Type | Required | Description |
|---|---|---|---|
access-key | string | Yes | API key for authentication |
Content-Type | string | Yes | Must be application/json |
Request Body Parameters
| Parameter | Type | Required | Description | Accepted Values |
|---|---|---|---|---|
claim_number * | string | Yes | Claim number of the claim to attach this record to | Alphanumeric string, 1-255 characters |
sequence_number | number | No | Sequence number for ordering multiple supporting info entries | Integer, minimum 1 |
type | string | No | Type of supporting information (e.g. "MEDICAL_RECORD") | String, max 255 characters |
code | string | No | NPHIES supporting-info code | See Supported Codes table |
value | string | No | Value of the supporting information | String, max 1000 characters |
unit | string | No | Unit of measurement (e.g. "mmHg", "kg", "cm") | String, max 50 characters |
start_date | string | No | Start date for the information | ISO 8601 format: YYYY-MM-DDTHH:mm:ss.sssZ |
end_date | string | No | End date for the information | ISO 8601 format: YYYY-MM-DDTHH:mm:ss.sssZ |
value_url | string | No | URL to additional information or an external document | Valid HTTP/HTTPS URL, max 500 characters |
The code field accepts the same values listed in the Supported Codes table above.
Example Request
- cURL
- JavaScript
- Python
curl -X POST \
"https://api.{client_namespace}.najeeb.ai/v4.0/health/supporting-info/create-for-claim" \
-H "access-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"claim_number": "AU-12345",
"sequence_number": 1,
"type": "MEDICAL_RECORD",
"code": "CHIEF_COMPLAINT",
"value": "Patient presents with persistent headache",
"start_date": "2024-01-15T10:30:00.000Z",
"end_date": "2024-01-15T10:30:00.000Z"
}'
const response = await fetch(
'https://api.{client_namespace}.najeeb.ai/v4.0/health/supporting-info/create-for-claim',
{
method: 'POST',
headers: {
'access-key': 'YOUR_API_KEY',
'Content-Type': 'application/json',
},
body: JSON.stringify({
claim_number: 'AU-12345',
sequence_number: 1,
type: 'MEDICAL_RECORD',
code: 'CHIEF_COMPLAINT',
value: 'Patient presents with persistent headache',
start_date: '2024-01-15T10:30:00.000Z',
end_date: '2024-01-15T10:30:00.000Z',
}),
}
);
const data = await response.json();
console.log(data);
import requests
response = requests.post(
'https://api.{client_namespace}.najeeb.ai/v4.0/health/supporting-info/create-for-claim',
headers={
'access-key': 'YOUR_API_KEY',
'Content-Type': 'application/json',
},
json={
'claim_number': 'AU-12345',
'sequence_number': 1,
'type': 'MEDICAL_RECORD',
'code': 'CHIEF_COMPLAINT',
'value': 'Patient presents with persistent headache',
'start_date': '2024-01-15T10:30:00.000Z',
'end_date': '2024-01-15T10:30:00.000Z',
},
)
result = response.json()
print(result)
Response
Success Response (201 Created)
{
"id": 1,
"code": 201,
"message": "Supporting info created successfully"
}
Response Fields
| Field | Type | Description |
|---|---|---|
id | number | Internal identifier assigned to the supporting info record |
code | number | HTTP status code (201) |
message | string | Success message |
Error Responses
Error Response Structure
{
"ErrorCode": "string",
"message": "string",
"details": ["string"]
}
Error Codes
| Error Code | HTTP Status | Description |
|---|---|---|
E_BAD_REQUEST_400 | 400 | Request validation failed — see the details array for field-level errors |
E_CLAIM_001 | 404 | Claim not found for the given claim_number |
401 Unauthorized | 401 | Missing or invalid access-key |
Example Error Responses
Bad Request:
{
"ErrorCode": "E_BAD_REQUEST_400",
"message": "Bad request - Invalid input data or validation errors",
"details": ["claim_number should not be empty"]
}
Claim Not Found:
{
"ErrorCode": "E_CLAIM_001",
"message": "Claim not found",
"details": []
}
Unauthorized:
{
"ErrorCode": "API key is required",
"message": "Unauthorized",
"details": []
}