Simplifier.net FHIR Package API

The Simplifier.net FHIR Package API serves every publicly published FHIR package — including packages from Simplifier.net, HL7 International, and other public feeds — and is the package backbone of the FHIR Registry at registry.fhir.org. Endpoints follow an NPM-compatible layout (`/{package-name}/-/{package-name}-{version}.tgz`) plus FHIR-specific catalog search by canonical URL, FHIR version, and package metadata. Public packages require no authentication; private feeds use JWT tokens from api.simplifier.net/token.

Simplifier.net FHIR Package API is one of 2 APIs that Firely publishes on the APIs.io network, described by a machine-readable OpenAPI specification.

Tagged areas include FHIR, Packages, Registry, Implementation Guides, and Profiles. The published artifact set on APIs.io includes API documentation and an OpenAPI specification.

OpenAPI Specification

simplifier-package-api-openapi.yml Raw ↑
openapi: 3.0.0

info:
  version: 1.0.1
  title: Simplifier.net FHIR Package API
  description: |
    API to find and retrieve all publicly published FHIR packages.
    * Serves all FHIR packages from Simplifier.net, HL7 International and other public feeds
    * For humans there is the [FHIR Registry at registry.fhir.org](https://registry.fhir.org/) for searching the full package library.
    
    Find the documentation for [other Simplifier.net APIs](https://docs.fire.ly/projects/Simplifier/api.html).

servers:
  - url: 'https://packages.simplifier.net/'
  - url: 'https://packages.fhir.org/'
  - url: 'https://packages2.fhir.org/packages/'
  - url: 'https://npm.fhir.org/packages/'

paths:
  /catalog:
    get:
      summary: Search FHIR packages
      description: |
        Search for FHIR packages by name, canonical and other attributes.
        * Can be used for populating intellisense dropdowns for package search.
        * Does not intend to follow NPM in all aspects and adds extra FHIR specific searches, like canonicals and FHIR versions.
        
        Known limitations:
        * Packages from which all versions are marked as `unlisted` are not returned.
        * The attribute names of the return value are documented here as camelCase, but are in fact currently PascalCase.
      parameters:
        - name: name
          description: Search by (part of) a package name
          in: query
          schema:
            type: string
          examples: 
            hl7.fhir.us.core:
              value: hl7.fhir.us.core
              summary: Full package name
            hl7.fhir:
              value: hl7.fhir
              summary: Partial package name
        - name: version
          description: Search for packages with a version containing this term
          in: query
          schema:
            type: string
          examples:
            4.1.0:
              value: 4.1.0
              summary: Full semver package version
            4.0:
              value: 4.0
              summary: Partial semver package version
        - name: canonical
          description: Search for packages or resource contained in it with this term in their canonical
          in: query
          schema:
            type: string
          examples:
            full-canonical:
              value: http://hl7.org/fhir/us/core/StructureDefinition/us-core-patient
              summary: Full canonical
            partial-canonical:
              value: http://hl7.org/fhir/
              summary: Partial canonical
        - name: pkgcanonical
          description: Search for packages with this exact canonical
          in: query
          schema:
            type: string
          example: http://hl7.org/fhir/us/core
        - name: fhirVersion
          description: Limit search by FHIR version
          in: query
          schema:
            type: string
            enum:
              - R2
              - R3
              - R4
              - R4B
              - R5
        - name: prerelease
          description: Whether to include or exclude prerelease package versions
          in: query
          schema:
            type: boolean
            default: false
      responses:
        '200':
          description: A list of package objects
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PackageList'
        '404':
          description: No packages found for the package name
        
  /{package-name}:
    get:
      summary: List package versions.
      description: |
        Endpoint to retrieve all versions for a package name.
        * The payload is compliant with the NPM package version listing.
        * The `dist-tags` element will provide tags on certain versions, like the label of which version is the `latest`.
        * In calculating `latest` the highest stable semver version is used, not the most recently published version.
        * If an author has indicated that the package should no longer be used, the element `unlisted` will be populated for a version.
      parameters:
        - name: package-name
          in: path
          description: Name of the package
          required: true
          schema:
            type: string
          example: hl7.fhir.us.core
      responses:
        '200':
          description: A package object with all available versions
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PackageVersionsObject'
        '404':
          description: No packages found for the package name
        
  /{package-name}/{package-version}:
    get:
      summary: Download package version
      description: |
        Download a specific package version.
      parameters:
        - name: package-name
          in: path
          description: Name of the package
          required: true
          schema:
            type: string
          example: hl7.fhir.us.core
        - name: package-version
          in: path
          description: Version of the package
          required: true
          schema:
            type: string
          example: 3.1.1
      responses:
        '200':
          description: A package object with all available versions
          content:
            application/tar+gzip:
              schema:
                type: string
                format: binary
        '404':
          description: No packages found for the package name or version

components:
  schemas:
    PackageVersionsObject:
      description: An object listing package metadata and all individual versions
      properties:
        _id:
          description: Package Id
          type: string
          example: hl7.fhir.us.core
        name:
          description: Package name
          type: string
          example: hl7.fhir.us.core
        dist-tags:
          title: Distribution tags
          description: Tags describing specific package versions
          type: object
          properties:
            latest:
              title: latest
              description: A pointer to the latest package version
              type: string
              example: 1.0.0
        versions:
          title: Package versions
          description: Dictionary object of package versions
          type: object
          additionalProperties:
            $ref: '#/components/schemas/PackageVersion'
            
    PackageList:
      description: A list of Package objects
      type: array
      items:
        $ref: '#/components/schemas/Package'
        
    PackageVersion:
      description: An object describing a specific version of a package
      allOf:
      - $ref: '#/components/schemas/Package'
      - type: object
        properties:
          version:
            type: string
            description: Package version
            example: 1.0.0
          dist:
            type: object
            properties:
              shasum:
                type: string
                example: 8dd6ac852c1d2cb4ac7312188d8d6ef7ccb65da6
              tarball:
                type: string
                example: https://packages.simplifier.net/hl7.fhir.us.core/1.0.0
          url:
            type: string
            description: Url for downloading this package
            example: https://packages.simplifier.net/hl7.fhir.us.core/1.0.0
            
    Package:
      description: An object describing a package
      properties:
        name:
          type: string
          description: Package name
          example: hl7.fhir.us.core
        description:
          type: string
          description: Package description
          example: "The US Core Implementation Guide is based on FHIR Version R4 and defines the minimum conformance requirements for accessing patient data. The Argonaut pilot implementations, ONC 2015 Edition Common Clinical Data Set (CCDS), and ONC U.S. Core Data for Interoperability (USCDI) v1 provided the requirements for this guide."
        fhirVersion:
          type: string
          description: Package FHIR version
          example: R4