> ## Documentation Index
> Fetch the complete documentation index at: https://docs.healos.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# List clinical notes

> Paginated list of clinical notes authored by your organization's members. Lightweight items — use GET /notes/{noteId} for full content, codes, transcript, and patient context. A bulk dump is available at GET /notes/export (?format=json|csv|ndjson).



## OpenAPI

````yaml /openapi/ext-api-v1.json get /notes
openapi: 3.0.0
info:
  title: Healos External API
  version: 1.0.0
  description: >-
    External API for managing patients, documents, and appointments, listing
    providers, and for pulling clinical notes (with transcript and patient
    context).
servers:
  - url: https://api.healos.ai/ext-api/v1
    description: Production
  - url: http://localhost:8787/ext-api/v1
    description: Local development
security:
  - ApiKeyAuth: []
paths:
  /notes:
    get:
      tags:
        - Notes
      summary: List clinical notes
      description: >-
        Paginated list of clinical notes authored by your organization's
        members. Lightweight items — use GET /notes/{noteId} for full content,
        codes, transcript, and patient context. A bulk dump is available at GET
        /notes/export (?format=json|csv|ndjson).
      parameters:
        - schema:
            type: string
            default: '1'
            example: '1'
          required: false
          name: page
          in: query
        - schema:
            type: string
            default: '20'
            example: '20'
          required: false
          name: limit
          in: query
        - schema:
            type: string
            description: Filter by patient ID.
            example: '481926357104938271'
          required: false
          name: patient_id
          in: query
        - schema:
            type: string
            description: Filter by session ID.
            example: f47ac10b-58cc-4372-a567-0e02b2c3d479
          required: false
          name: session_id
          in: query
        - schema:
            type: string
            description: Filter by the template the note was generated from.
          required: false
          name: template_id
          in: query
        - schema:
            type: string
            description: Filter by authoring clinician (must be a member of your org).
          required: false
          name: created_by
          in: query
        - schema:
            type: string
            description: Filter by note type.
            example: clinical_visit
          required: false
          name: note_type
          in: query
        - schema:
            type: string
            description: Only notes created on/after this date (ISO 8601).
            example: '2026-01-01'
          required: false
          name: from
          in: query
        - schema:
            type: string
            description: Only notes created on/before this date (ISO 8601).
            example: '2026-06-30'
          required: false
          name: to
          in: query
      responses:
        '200':
          description: Paginated list of notes
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NoteListResponse'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Insufficient scope
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '429':
          description: Rate limit exceeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RateLimitError'
components:
  schemas:
    NoteListResponse:
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/NoteListItem'
        meta:
          type: object
          properties:
            page:
              type: number
            limit:
              type: number
            total_pages:
              type: number
          required:
            - page
            - limit
            - total_pages
      required:
        - data
        - meta
    Error:
      type: object
      properties:
        error:
          type: string
      required:
        - error
    RateLimitError:
      type: object
      properties:
        error:
          type: string
          example: Rate limit exceeded. Please retry after the window resets.
      required:
        - error
    NoteListItem:
      type: object
      properties:
        id:
          type: string
          example: 9b2d4f6a-1c3e-4a5b-8d7f-0e1a2b3c4d5e
        patient_id:
          type: string
          nullable: true
          example: '481926357104938271'
        session_id:
          type: string
          nullable: true
          example: f47ac10b-58cc-4372-a567-0e02b2c3d479
        note_type:
          type: string
          nullable: true
          example: clinical_visit
        specialty:
          type: string
          nullable: true
          example: Cardiology
        template_id:
          type: string
          nullable: true
        template_name:
          type: string
          nullable: true
          example: Follow-Up Patient Visit
        created_at:
          type: string
          nullable: true
          example: '2026-03-15T09:30:00.000Z'
        updated_at:
          type: string
          nullable: true
          example: '2026-03-15T10:00:00.000Z'
      required:
        - id
        - patient_id
        - session_id
        - note_type
        - specialty
        - template_id
        - template_name
        - created_at
        - updated_at
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: X-API-Key
      description: API key obtained from /api/v1/ext-api-keys

````