---
title: "Lookup a patient all their records synchronously given their full business identifier"
method: POST
path: "/patients/lookup"
tags: ["Patient"]
---

# Lookup a patient all their records synchronously given their full business identifier

`POST /patients/lookup`

## Headers

- `HTTP_X_USER_ID` unknown
- `HTTP_X_FACILITY_ID` unknown

## Request body

- object
  - `identifier` string, required — Full identifier string of the BP Passport, or other supported identifier type

## Response `200`

patient lookup successful

- object
  - `patients` LookupPatient[], nullable
    - `id` string, uuid
    - `gender` 'male' | 'female' | 'transgender'
    - `full_name` string — This string should not be empty.
    - `status` 'active' | 'dead' | 'migrated' | 'unresponsive' | 'inactive'
    - `date_of_birth` string, date, nullable
    - `age` integer, nullable — When age is present, age_updated_at must be present as well.
    - `age_updated_at` string, date-time, nullable — Timestamp with millisecond precision.
    - `deleted_at` string, date-time, nullable — Timestamp with millisecond precision.
    - `created_at` string, date-time — Timestamp with millisecond precision.
    - `updated_at` string, date-time — Timestamp with millisecond precision.
    - `recorded_at` string, date-time — Timestamp with millisecond precision.
    - `registration_facility_id` string, uuid, nullable
    - `assigned_facility_id` string, uuid, nullable
    - `reminder_consent` 'granted' | 'denied'
    - `deleted_reason` 'duplicate' | 'unknown' | 'accidental_registration' | 'null', nullable
    - `eligible_for_reassignment` 'yes' | 'no' | 'unknown'
    - `address` Address, nullable
      - `id` string, uuid, required
      - `street_address` string, nullable
      - `village_or_colony` string, nullable
      - `zone` string, nullable
      - `district` string, nullable
      - `state` string, nullable
      - `country` string, nullable
      - `pin` string, nullable
      - `deleted_at` string, date-time, nullable — Timestamp with millisecond precision.
      - `created_at` string, date-time, required — Timestamp with millisecond precision.
      - `updated_at` string, date-time, required — Timestamp with millisecond precision.
    - `phone_numbers` PhoneNumber[], nullable
      - `id` string, uuid, required
      - `number` string, required — This string should not be empty.
      - `phone_type` 'mobile' | 'landline'
      - `active` boolean
      - `deleted_at` string, date-time, nullable — Timestamp with millisecond precision.
      - `created_at` string, date-time, required — Timestamp with millisecond precision.
      - `updated_at` string, date-time, required — Timestamp with millisecond precision.
    - `business_identifiers` PatientBusinessIdentifier[], nullable
      - `id` string, uuid, required
      - `identifier` string, nullable, required
      - `identifier_type` 'simple_bp_passport' | 'bangladesh_national_id' | 'sri_lanka_national_id' | 'sri_lanka_personal_health_number' | 'ethiopia_medical_record' | 'india_national_health_id' | 'external_import_id', required
      - `metadata_version` string
      - `metadata` string
      - `deleted_at` string, date-time, nullable — Timestamp with millisecond precision.
      - `created_at` string, date-time, required — Timestamp with millisecond precision.
      - `updated_at` string, date-time, required — Timestamp with millisecond precision.
    - `appointments` Appointment[], nullable, required
      - `id` string, uuid, required
      - `patient_id` string, uuid, required
      - `facility_id` string, uuid, required
      - `creation_facility_id` string, uuid
      - `scheduled_date` string, date, required
      - `status` 'scheduled' | 'cancelled' | 'visited', required
      - `cancel_reason` 'not_responding' | 'refused_to_come_back' | 'invalid_phone_number' | 'public_hospital_transfer' | 'moved_to_private' | 'moved' | 'dead' | 'other' | 'null', nullable
      - `remind_on` string, date, nullable
      - `agreed_to_visit` boolean, nullable
      - `appointment_type` 'manual' | 'automatic', required
      - `deleted_at` string, date-time, nullable — Timestamp with millisecond precision.
      - `created_at` string, date-time, required — Timestamp with millisecond precision.
      - `updated_at` string, date-time, required — Timestamp with millisecond precision.
    - `blood_pressures` BloodPressure[], nullable, required
      - `id` string, uuid
      - `systolic` integer, required
      - `diastolic` integer, required
      - `deleted_at` string, date-time, nullable — Timestamp with millisecond precision.
      - `created_at` string, date-time, required — Timestamp with millisecond precision.
      - `updated_at` string, date-time, required — Timestamp with millisecond precision.
      - `recorded_at` string, date-time — Timestamp with millisecond precision.
      - `patient_id` string, uuid, required
      - `facility_id` string, uuid, required
      - `user_id` string, uuid, required
    - `blood_sugars` BloodSugar[], nullable, required
      - `id` string, uuid, required
      - `blood_sugar_type` 'random' | 'post_prandial' | 'fasting' | 'hba1c', required
      - `blood_sugar_value` number, required
      - `deleted_at` string, date-time, nullable — Timestamp with millisecond precision.
      - `created_at` string, date-time, required — Timestamp with millisecond precision.
      - `updated_at` string, date-time, required — Timestamp with millisecond precision.
      - `recorded_at` string, date-time — Timestamp with millisecond precision.
      - `patient_id` string, uuid, required
      - `facility_id` string, uuid, required
      - `user_id` string, uuid, required
    - `medical_history` NullableMedicalHistory, nullable, required
      - `id` string, uuid, required
      - `patient_id` string, uuid, required
      - `prior_heart_attack` 'yes' | 'no' | 'unknown', required
      - `prior_stroke` 'yes' | 'no' | 'unknown', required
      - `chronic_kidney_disease` 'yes' | 'no' | 'unknown', required
      - `receiving_treatment_for_hypertension` 'yes' | 'no' | 'unknown', required
      - `receiving_treatment_for_diabetes` 'yes' | 'no' | 'unknown'
      - `diabetes` 'yes' | 'no' | 'unknown', required
      - `hypertension` 'yes' | 'no' | 'unknown'
      - `diagnosed_with_hypertension` 'yes' | 'no' | 'unknown', required
      - `smoking` 'yes' | 'no' | 'unknown'
      - `smokeless_tobacco` 'yes' | 'no' | 'unknown'
      - `cholesterol_value` number
      - `deleted_at` string, date-time, nullable — Timestamp with millisecond precision.
      - `created_at` string, date-time, required — Timestamp with millisecond precision.
      - `updated_at` string, date-time, required — Timestamp with millisecond precision.
    - `prescription_drugs` PrescriptionDrug[], nullable, required
      - `id` string, uuid, required
      - `deleted_at` string, date-time, nullable — Timestamp with millisecond precision.
      - `created_at` string, date-time, required — Timestamp with millisecond precision.
      - `updated_at` string, date-time, required — Timestamp with millisecond precision.
      - `name` string, required — This string should not be empty.
      - `dosage` string
      - `rxnorm_code` string
      - `is_protocol_drug` boolean, required
      - `is_deleted` boolean, required
      - `patient_id` string, uuid, required
      - `facility_id` string, uuid, required
      - `frequency` 'OD' | 'BD' | 'QDS' | 'TDS' | 'null', nullable
      - `duration_in_days` integer, nullable
      - `teleconsultation_id` string, uuid, nullable
    - `retention` object, required
      - `type` 'temporary' | 'permanent' — This enum might have more values in the future.
      - `duration_seconds` integer — This key is only present in the response when the retention type is temporary.

## Other responses

- `404` — No patients found with this identifier

---

[API](https://skmtc.dev/simpledotorg/apis/untitled-api.md) · [All operations](https://skmtc.dev/simpledotorg/apis/untitled-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/simpledotorg/untitled-api/revisions/31ffa1d07978/schema)
