Medications - JSON Export Format

Documentation for medications structure in JSON exports

Last updated: February 6, 2026

On this page

Medications

Medication data includes all medications you've added to Apple Health, including scheduled medications, dosages, adherence information, and medication details. In JSON exports, medications are stored in the medications array.

Availability

Medication export is available on iOS 26.0 and later. If you're using an older iOS version, this data type will not be available in your exports.

Structure

Each medication entry includes comprehensive information about the medication, its schedule, and adherence:

{
  "displayText": "Aspirin",
  "nickname": "Daily Aspirin",
  "start": "2024-01-01 08:00:00 -0800",
  "end": null,
  "scheduledDate": "2024-02-06 08:00:00 -0800",
  "form": "Tablet",
  "status": "Taken",
  "isArchived": false,
  "dosage": 81,
  "codings": [
    {
      "code": "1191",
      "system": "http://www.nlm.nih.gov/research/umls/rxnorm",
      "version": null
    }
  ]
}

Fields

Basic Information

  • displayText (String): The display name of the medication (e.g., "Aspirin", "Lisinopril")
  • nickname (String | undefined): Optional nickname you've assigned to the medication
  • form (String): Physical form of the medication. Possible values:
    • "Capsule"
    • "Cream"
    • "Device"
    • "Drops"
    • "Foam"
    • "Gel"
    • "Inhaler"
    • "Injection"
    • "Liquid"
    • "Lotion"
    • "Ointment"
    • "Patch"
    • "Powder"
    • "Spray"
    • "Suppository"
    • "Tablet"
    • "Topical"
    • "Unknown"

Dates

  • start (Date): Date and time when you started taking this medication in format yyyy-MM-dd HH:mm:ss Z
  • end (Date | undefined): Date and time when you stopped taking this medication (null if still active)
  • scheduledDate (Date | undefined): Date and time when the medication is scheduled to be taken

Status and Adherence

  • status (String): Current status of the medication entry. Possible values:
    • "Not Interacted" - No interaction recorded
    • "Notification Not Sent" - Notification was not sent
    • "Snoozed" - Medication reminder was snoozed
    • "Taken" - Medication was taken
    • "Skipped" - Medication was skipped
    • "Not Logged" - No logging action taken
    • "Unspecified" - Status is unspecified

Additional Information

  • isArchived (Boolean): Whether the medication has been archived (no longer actively tracked)
  • dosage (Number | undefined): Dosage amount (units depend on the medication)
  • codings (Array): Array of medication coding information for standardized identification

Medication Codings

The codings array contains standardized medication identifiers:

{
  "codings": [
    {
      "code": "1191",
      "system": "http://www.nlm.nih.gov/research/umls/rxnorm",
      "version": null
    }
  ]
}

Coding Fields:

  • code (String): The medication code identifier
  • system (String): The coding system used (e.g., RxNorm, NDC)
  • version (String | undefined): Optional version of the coding system

Example Entries

Active Medication

{
  "displayText": "Lisinopril",
  "nickname": "Blood Pressure Med",
  "start": "2023-06-01 08:00:00 -0800",
  "end": null,
  "scheduledDate": "2024-02-06 08:00:00 -0800",
  "form": "Tablet",
  "status": "Taken",
  "isArchived": false,
  "dosage": 10,
  "codings": [
    {
      "code": "29046",
      "system": "http://www.nlm.nih.gov/research/umls/rxnorm",
      "version": null
    }
  ]
}

Discontinued Medication

{
  "displayText": "Antibiotic",
  "nickname": null,
  "start": "2024-01-15 12:00:00 -0800",
  "end": "2024-01-22 12:00:00 -0800",
  "scheduledDate": "2024-01-22 12:00:00 -0800",
  "form": "Capsule",
  "status": "Taken",
  "isArchived": true,
  "dosage": 500,
  "codings": []
}

Scheduled Medication Entry

{
  "displayText": "Multivitamin",
  "nickname": null,
  "start": "2024-01-01 07:00:00 -0800",
  "end": null,
  "scheduledDate": "2024-02-06 07:00:00 -0800",
  "form": "Tablet",
  "status": "Not Logged",
  "isArchived": false,
  "dosage": 1,
  "codings": []
}

Understanding Status Values

The status field helps track medication adherence:

  • "Taken": Medication was successfully taken
  • "Skipped": Medication was intentionally skipped
  • "Snoozed": Reminder was snoozed (may indicate delayed intake)
  • "Not Logged": No action was recorded (may indicate missed dose)
  • "Not Interacted": No interaction with the reminder

Use Cases

Medication data can be useful for:

  • Adherence tracking: Monitor how consistently medications are taken
  • Medical records: Maintain comprehensive medication history
  • Healthcare provider sharing: Share medication lists with doctors
  • Drug interaction analysis: Cross-reference with other health data
  • Compliance reporting: Generate reports on medication adherence