SMART Health IT Bulk Data API

FHIR Bulk Data $export operations on the reference Bulk Data server.

OpenAPI Specification

smarthealthit-bulk-data-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: SMART Health IT Sandbox FHIR APIs Bulk Data API
  description: Public, free sandbox APIs operated by SMART Health IT (Computational Health Informatics Program, Boston Children's Hospital / Harvard Medical School) for building and testing SMART on FHIR apps. Three surfaces are described here. (1) The open FHIR R4 sandbox at https://r4.smarthealthit.org - synthetic patient records served over plain FHIR REST with no authentication (DSTU2 and STU3 variants exist at r2/r3.smarthealthit.org). (2) The SMART App Launcher's protected FHIR R4 proxy at https://launch.smarthealthit.org/v/r4/fhir, which requires an OAuth 2.0 access token obtained through the HL7 SMART App Launch flow at /v/r4/auth/authorize and /v/r4/auth/token (no client registration needed). (3) The reference Bulk Data server at https://bulk-data.smarthealthit.org/fhir, which implements FHIR Bulk Data $export with SMART Backend Services JWT authentication. All data is synthetic; these servers are for development and testing, never real PHI.
  version: '1.0'
  contact:
    name: SMART Health IT
    url: https://smarthealthit.org
  license:
    name: Apache 2.0
    url: https://github.com/smart-on-fhir/smart-launcher-v2/blob/main/LICENSE
servers:
- url: https://r4.smarthealthit.org
  description: Open FHIR R4 sandbox (no authentication required)
- url: https://launch.smarthealthit.org/v/r4/fhir
  description: SMART App Launcher protected FHIR R4 proxy (SMART App Launch OAuth 2.0)
- url: https://bulk-data.smarthealthit.org/fhir
  description: Reference Bulk Data server (SMART Backend Services authentication)
security:
- smartOnFhir: []
- {}
tags:
- name: Bulk Data
  description: FHIR Bulk Data $export operations on the reference Bulk Data server.
paths:
  /$export:
    servers:
    - url: https://bulk-data.smarthealthit.org/fhir
      description: Reference Bulk Data server
    get:
      operationId: bulkSystemExport
      tags:
      - Bulk Data
      summary: Start a system-level bulk export (Bulk Data server only)
      description: Kicks off an asynchronous export of all resources on the reference Bulk Data server (https://bulk-data.smarthealthit.org/fhir). Requires the Prefer respond-async header and a SMART Backend Services access token. Responds 202 with a Content-Location status URL to poll (honor Retry-After); when complete, the status endpoint returns a manifest of NDJSON file URLs to download.
      parameters:
      - $ref: '#/components/parameters/OutputFormat'
      - $ref: '#/components/parameters/Type'
      - $ref: '#/components/parameters/Since'
      responses:
        '202':
          description: Export accepted; poll the Content-Location URL for status.
          headers:
            Content-Location:
              description: Absolute URL of the export status endpoint.
              schema:
                type: string
        '401':
          $ref: '#/components/responses/Unauthorized'
  /Patient/$export:
    servers:
    - url: https://bulk-data.smarthealthit.org/fhir
      description: Reference Bulk Data server
    get:
      operationId: bulkPatientExport
      tags:
      - Bulk Data
      summary: Start a patient-level bulk export (Bulk Data server only)
      description: Kicks off an asynchronous export of all data for all patients on the reference Bulk Data server, following the same async-request pattern as the system-level export.
      parameters:
      - $ref: '#/components/parameters/OutputFormat'
      - $ref: '#/components/parameters/Type'
      - $ref: '#/components/parameters/Since'
      responses:
        '202':
          description: Export accepted; poll the Content-Location URL for status.
          headers:
            Content-Location:
              schema:
                type: string
        '401':
          $ref: '#/components/responses/Unauthorized'
  /Group/{id}/$export:
    servers:
    - url: https://bulk-data.smarthealthit.org/fhir
      description: Reference Bulk Data server
    get:
      operationId: bulkGroupExport
      tags:
      - Bulk Data
      summary: Start a group-level bulk export (Bulk Data server only)
      description: Kicks off an asynchronous export of all data for the patients in a Group on the reference Bulk Data server.
      parameters:
      - $ref: '#/components/parameters/ResourceId'
      - $ref: '#/components/parameters/OutputFormat'
      - $ref: '#/components/parameters/Type'
      - $ref: '#/components/parameters/Since'
      responses:
        '202':
          description: Export accepted; poll the Content-Location URL for status.
          headers:
            Content-Location:
              schema:
                type: string
        '401':
          $ref: '#/components/responses/Unauthorized'
components:
  parameters:
    ResourceId:
      name: id
      in: path
      required: true
      description: The logical id of the resource.
      schema:
        type: string
    Since:
      name: _since
      in: query
      description: Only include resources modified after this instant.
      schema:
        type: string
        format: date-time
    Type:
      name: _type
      in: query
      description: Comma-separated FHIR resource types to include in the export.
      schema:
        type: string
    OutputFormat:
      name: _outputFormat
      in: query
      description: Requested bulk output format; defaults to application/fhir+ndjson.
      schema:
        type: string
  responses:
    Unauthorized:
      description: Missing or invalid access token (protected servers only).
      content:
        application/fhir+json:
          schema:
            $ref: '#/components/schemas/OperationOutcome'
  schemas:
    OperationOutcome:
      type: object
      description: A FHIR OperationOutcome describing an error.
      properties:
        resourceType:
          type: string
          enum:
          - OperationOutcome
        issue:
          type: array
          items:
            type: object
            properties:
              severity:
                type: string
              code:
                type: string
              diagnostics:
                type: string
  securitySchemes:
    smartOnFhir:
      type: oauth2
      description: HL7 SMART App Launch OAuth 2.0 profile, used by the launcher's protected FHIR proxy. The open r4.smarthealthit.org sandbox requires no authentication; the Bulk Data server uses SMART Backend Services (client_credentials with a signed JWT assertion).
      flows:
        authorizationCode:
          authorizationUrl: https://launch.smarthealthit.org/v/r4/auth/authorize
          tokenUrl: https://launch.smarthealthit.org/v/r4/auth/token
          scopes:
            openid: OpenID Connect identity.
            fhirUser: Identity of the launching user as a FHIR resource.
            launch/patient: Request a patient in context at launch.
            patient/*.read: Read all resources for the patient in context.
            user/*.read: Read all resources the user can access.
            system/*.read: Backend services system-level read access.
        clientCredentials:
          tokenUrl: https://launch.smarthealthit.org/v/r4/auth/token
          scopes:
            system/*.read: Backend services system-level read access.
externalDocs:
  description: SMART on FHIR developer documentation
  url: https://docs.smarthealthit.org