---
title: "List Medical Record Documents"
method: GET
path: "/v1/scribe-sessions/{id}/medical-record-documents"
tags: ["Medical Record Documents"]
---

# List Medical Record Documents

`GET /v1/scribe-sessions/{id}/medical-record-documents`

## Request

- Base URL: `https://scribe-api.telepatia.ai`
- URL: `https://scribe-api.telepatia.ai/v1/scribe-sessions/{id}/medical-record-documents`
- Auth: HTTP bearer

List the medical record documents produced for a scribe session.

A dictated report (`purpose` 'report') also carries `reportState`, which says
whether the radiologist signed it. Every other record has no workflow, so its
`reportState` is null. Check `reportState.lifecycleStatus` before you use a
report: a `draft` is not complete, and the radiologist can still change it.

## Path parameters

- `id` string, required: The session to look up — either your consultationInternalId, or the session id (ss_...) the API returns.

## Query parameters

- `purpose` string, nullable: Optional filter — return only documents with this purpose. Use 'report' to get only the dictated reports.

## Response `200`

Successful Response

- MedicalRecordDocumentListResponse: Response body for listing a scribe session's medical record documents.
  - `items` MedicalRecordDocumentItem[], required: Medical record documents for the session, one per purpose.
    - `id` string, required
    - `purpose` string, required: Identifies the record when a session produced several (e.g. 'primary', 'rpa', 'emr'). A dictated report has the purpose 'report'.
    - `reportState` ReportState: Workflow state of a dictated report. Only a dictated report carries this state. Every other record — the record of an ordinary Scribe consultation, for example — has no workflow, and `reportState` is null for it.
      - `lifecycleStatus` string, required: `draft` while the radiologist still works on the report. `final` once they sign it. `amended` after they change a report they already signed. Read a report as clinically complete only when the status is `final` or `amended`. Treat any other value the same way you treat `draft`: this field can take a new value in the future, and a value you do not know never means that the report is ready.
      - `revision` integer, required: Counter of the changes applied to this report. It only increases. Use it to tell two versions of the same report apart, for example to know that an amendment is newer than the copy you hold.
    - `specialty` string, nullable: Medical specialty associated with the record.
    - `language` string, nullable: Language of the record content.
    - `medicalRecordSummary` string, nullable: Plain-text summary of the medical record.
    - `createdAt` string, date-time, nullable
    - `updatedAt` string, date-time, nullable: When the record last changed. It only moves forward: a doctor edit in Scribe and a regeneration both move it. Other writes to the consultation can move it too.
    - `medicalRecord` object, nullable: The medical record as a JSON object keyed by section name (e.g. `chiefComplaint`, `vitalSigns`, `assessmentPlan`). Each section value is a plain string or a nested object, depending on the section. Iterate the keys that are present; the section set depends on the template. The record includes the doctor's edits made in Scribe. A section or field the doctor cleared is an empty string (or an empty list).
    - `medicalRecordSummaryStructured` object, nullable: Structured summary: vital signs, medication, past conditions, recent labs/imaging, and last consultation. Includes `pastMedicalConditionsCoded` — the past conditions with resolved ICD-10 codes (`content` plus a `code` object with the best `code` and scored `options`) — which is `null` until code resolution has run for the record.
    - `diagnosisCodes` DiagnosisCode[]: Diagnosis ICD-10 (CIE-10 / CID-10) codes for the record — the doctor-curated set (model suggestions plus doctor additions, minus deletions). Empty when the session has no diagnosis codes.
      - `code` string, required
      - `description` string, required: Localized description of the code (may be empty for legacy records).
      - `type` 'primary' | 'secondary', required: Whether the code is the primary diagnosis or a secondary one.
    - `cdssAlerts` CdssAlert[], nullable: Corrective CDSS ('conducta feedback') alerts for this record. `null` when clinical decision support is disabled for the session or no alerts were generated; `[]` when it ran and produced none.
      - `id` string, required: Stable opaque identifier for the alert. Use it as-is; do not parse it.
      - `elementId` string, required: Clinical element key (e.g. 'IBUPROFEN'). Human-meaningful but not unique across documents — never use it as an identifier.
      - `reason` string, required
      - `action` string, required
      - `actionCategory` string, required
      - `type` string, required
      - `issue` string, required
      - `element` string, required
      - `severity` string, required
      - `source` string[]
      - `newPlanElement` CdssAlertNewPlanElement: The plan element a CDSS alert proposes (present on add/replace/modify).
        - `type` string, required
        - `element` string, required
        - `id` string, required
        - `content` string, required
        - `laboratory` string, nullable
      - `previousTestDate` string, nullable
      - `guidelineIntervalDays` integer, nullable
      - `status` string: Doctor's decision on the alert: 'pending', 'accepted', or 'rejected'.
  - `total` integer, required: Total number of medical record documents.
  - `transcript` SessionTranscript: The transcript of the consultation audio of a scribe session.
    - `text` string, required: The full transcript of the consultation, as plain text. It is the text Telepatia used to generate the medical records of the session.
    - `updatedAt` string, date-time, nullable: When the stored transcript last changed.

## Other responses

- `400`: Bad Request — invalid parameters, validation failures, or missing fields.
- `401`: Unauthorized — missing or invalid API key.
- `403`: Forbidden — the API key is not allowed to perform this operation.
- `404`: Not Found — the requested resource does not exist.
- `503`: Service Unavailable — an external dependency is down.

---

[API](https://skmtc.dev/telepatia/apis/scribe-public-api.md) - [All operations](https://skmtc.dev/telepatia/apis/scribe-public-api/llms.txt) - [OpenAPI document](https://skmtc.dev/telepatia/apis/scribe-public-api/revisions/be963942e472?raw)
