IsomeraDocs

API Version v1

api.isomera.ai/v1

Patients

The Patient object represents an individual enrolled in care programs. Patients can be created, updated, and retrieved via the API, and are automatically linked to voice conversations and benefits verification.

The Patient object

A Patient represents an individual in your healthcare system. Each patient has demographic information, insurance details, and enrollment status.

Attributes
idinteger

Unique identifier for the patient.

first_namestring

Patient's first name.

last_namestring

Patient's last name.

date_of_birthstring

Date of birth in YYYY-MM-DD format.

phonestring

Primary phone number in E.164 format.

emailstring

Email address.

mrnstring

Medical record number (auto-generated if not provided).

payer_idstring

Insurance payer identifier (e.g., aetna, cigna, uhc).

member_idstring

Insurance member ID number.

medicationsarray

List of medications associated with the patient.

statusstring

Current status.

activeinactive
has_adverse_eventsboolean

Whether patient has reported any adverse events.

avg_satisfaction_scorefloat

Average satisfaction score from conversations (1-5).

created_atstring

ISO 8601 timestamp of when the patient was created.

The Patient object
{
  "id": 123,
  "first_name": "John",
  "last_name": "Doe",
  "date_of_birth": "1985-03-15",
  "phone": "+14155551234",
  "email": "john.doe@example.com",
  "mrn": "MRN1123",
  "member_id": "ABC123456",
  "payer_id": "aetna",
  "group_number": "GRP001",
  "address_line1": "123 Main St",
  "city": "San Francisco",
  "state": "CA",
  "zip_code": "94102",
  "status": "active",
  "has_adverse_events": false,
  "avg_satisfaction_score": 4.5,
  "total_conversations": 3,
  "medications": ["Keytruda", "Metformin"],
  "created_at": "2024-01-15T10:30:00Z"
}

List all patients

Returns a paginated list of patients. Supports filtering and search.

GET/patients
Query Parameters
limitintegeroptional

Maximum records to return.

Default: 20

skipintegeroptional

Number of records to skip.

Default: 0

searchstringoptional

Search by name, phone, email, MRN, or member ID.

statusstringoptional

Filter by status.

activeinactive
payer_idstringoptional

Filter by insurance payer.

has_adverse_eventsbooleanoptional

Filter patients with/without adverse events.

satisfaction_minfloatoptional

Minimum satisfaction score (1-5).

satisfaction_maxfloatoptional

Maximum satisfaction score (1-5).

Request
curl https://api.isomera.ai/v1/patients \
  -H "Authorization: Bearer sk_live_..."
Response
{
  "items": [
    {
      "id": 123,
      "first_name": "John",
      "last_name": "Doe",
      "date_of_birth": "1985-03-15",
      "phone": "+14155551234",
      "email": "john.doe@example.com",
      "mrn": "MRN1123",
      "member_id": "ABC123456",
      "payer_id": "aetna",
      "status": "active",
      "has_adverse_events": false,
      "avg_satisfaction_score": 4.5,
      "total_conversations": 3,
      "medications": ["Keytruda", "Metformin"],
      "created_at": "2024-01-15T10:30:00Z"
    }
  ],
  "total": 150,
  "page": 1,
  "page_size": 20
}

Create a patient

Creates a new patient record in the system.

POST/patients
Body Parameters
first_namestringrequired

Patient first name.

last_namestringrequired

Patient last name.

date_of_birthstringrequired

Date of birth (YYYY-MM-DD).

phonestringrequired

Phone number in E.164 format.

emailstringoptional

Email address.

payer_idstringoptional

Insurance payer identifier.

member_idstringoptional

Insurance member ID.

group_numberstringoptional

Insurance group number.

Request
curl https://api.isomera.ai/v1/patients \
  -H "Authorization: Bearer sk_live_..." \
  -H "Content-Type: application/json" \
  -d '{
    "first_name": "John",
    "last_name": "Doe",
    "date_of_birth": "1985-03-15",
    "phone": "+14155551234",
    "email": "john.doe@example.com",
    "member_id": "ABC123456",
    "payer_id": "aetna",
    "group_number": "GRP001"
  }'
Response
{
  "id": 124,
  "first_name": "John",
  "last_name": "Doe",
  "mrn": "MRN1124",
  "status": "active",
  "created_at": "2024-12-18T15:30:00Z"
}

Retrieve a patient

Retrieves an existing patient by their ID.

GET/patients/{patient_id}
Path Parameters
patient_idintegerrequired

The patient ID.

Request
curl https://api.isomera.ai/v1/patients/123 \
  -H "Authorization: Bearer sk_live_..."
Response
{
  "id": 123,
  "first_name": "John",
  "last_name": "Doe",
  "date_of_birth": "1985-03-15",
  "phone": "+14155551234",
  "email": "john.doe@example.com",
  "payer_id": "aetna",
  "member_id": "ABC123456",
  "medications": ["Keytruda"],
  "status": "active",
  "created_at": "2024-01-15T10:30:00Z"
}

Update a patient

Updates an existing patient. Only provided fields are updated.

PUT/patients/{patient_id}
Path Parameters
patient_idintegerrequired

The patient ID.

Body Parameters
phonestringoptional

Updated phone number.

emailstringoptional

Updated email address.

payer_idstringoptional

Updated payer identifier.

member_idstringoptional

Updated member ID.

statusstringoptional

Updated status.

activeinactive
Request
curl -X PUT https://api.isomera.ai/v1/patients/123 \
  -H "Authorization: Bearer sk_live_..." \
  -H "Content-Type: application/json" \
  -d '{
    "phone": "+14155559999",
    "payer_id": "bcbs"
  }'
Response
{
  "id": 123,
  "first_name": "John",
  "last_name": "Doe",
  "phone": "+14155559999",
  "payer_id": "bcbs",
  "status": "active",
  "updated_at": "2024-12-18T11:00:00Z"
}

Delete a patient

Soft deletes a patient by setting status to inactive.

DELETE/patients/{patient_id}
Path Parameters
patient_idintegerrequired

The patient ID.

Soft Delete

Patients are not permanently deleted. The status is set to "inactive" and the record is preserved for compliance purposes.

Request
curl -X DELETE https://api.isomera.ai/v1/patients/123 \
  -H "Authorization: Bearer sk_live_..."
Response
{
  "success": true,
  "message": "Patient deactivated"
}

Get verification status

Retrieve the most recent benefits verification status for a patient, including verification method results and extracted benefits data.

GET/patients/{patient_id}/verification-status
Path Parameters
patient_idintegerrequired

The patient ID.

Request
curl https://api.isomera.ai/v1/patients/123/verification-status \
  -H "Authorization: Bearer sk_live_..."
Response
{
  "verification_id": 456,
  "pa_case_id": 789,
  "status": "VERIFIED",
  "methods": {
    "api": {
      "status": "completed",
      "success": true,
      "duration": 2.5
    },
    "voice": {
      "status": "completed",
      "success": true,
      "duration": 180.0
    }
  },
  "benefits": {
    "deductible_individual": 500.00,
    "deductible_family": 1500.00,
    "copay_pcp": 25.00,
    "copay_specialist": 50.00,
    "out_of_pocket_max": 5000.00,
    "coverage_status": "active",
    "deductible_met_ytd": 350.00,
    "tier_1_copay": 10.00,
    "tier_2_copay": 30.00,
    "tier_3_copay": 60.00
  },
  "field_sources": {
    "deductible_individual": "api",
    "copay_specialist": "voice"
  }
}

Patient medications

Manage medications associated with a patient, including prescription status, prior authorization requirements, and step therapy tracking.

List medications

GET/patients/{patient_id}/medications

Add medication

POST/patients/{patient_id}/medications
Body Parameters
medication_namestringrequired

Name of the medication.

ndc_codestringoptional

National Drug Code.

is_prescribedbooleanoptional

Whether medication is currently prescribed.

prescribed_datestringoptional

Date prescribed (YYYY-MM-DD).

prescriber_namestringoptional

Name of prescribing physician.

prescriber_npistringoptional

NPI of prescribing physician.

pa_requiredbooleanoptional

Whether prior authorization is required.

pa_statusstringoptional

Prior authorization status.

pendingapproveddenied

Sync from conversations

Extract medications discussed in voice conversations and automatically create medication records.

POST/patients/{patient_id}/medications/sync
Add medication
curl https://api.isomera.ai/v1/patients/123/medications \
  -H "Authorization: Bearer sk_live_..." \
  -H "Content-Type: application/json" \
  -d '{
    "medication_name": "Keytruda",
    "ndc_code": "00006-3026-01",
    "is_prescribed": true,
    "prescribed_date": "2024-12-01",
    "prescriber_name": "Dr. Smith",
    "prescriber_npi": "1234567890",
    "pa_required": true,
    "pa_status": "pending"
  }'
Response
{
  "id": 1,
  "patient_id": 123,
  "medication_name": "Keytruda",
  "ndc_code": "00006-3026-01",
  "is_prescribed": true,
  "prescribed_date": "2024-12-01T00:00:00Z",
  "prescriber_name": "Dr. Smith",
  "prescriber_npi": "1234567890",
  "pa_required": true,
  "pa_status": "pending",
  "step_therapy_required": false,
  "step_therapy_completed": false,
  "step_therapy_drugs": [],
  "first_mentioned_at": "2024-11-15T10:00:00Z",
  "conversation_ids": [45, 67],
  "created_at": "2024-12-18T15:30:00Z"
}