Elation Health Data Import Request API

The parent resource for tracking batches of individual patient chart imports.

Operations 7

GET /data-import-requests Retrieve a list of existing data import requests. #
POST /data-import-requests Create a new data import request. #
GET /data-import-requests/{dir-id} Retrieve an existing data import request. #
PUT /data-import-requests/{dir-id} Update an existing data import request. #
PATCH /data-import-requests/{dir-id} Update an existing data import request. #
DELETE /data-import-requests/{dir-id} Delete an existing data import request. #
POST /data-import-requests/{dir-id}/run Convenience call #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/elation-health-data-import-request-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

elation-health-data-import-request-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  description: "This set of API resources allows you to import patient data into the Elation\nEMR.  For more information on Elation APIs, view [our\ndocumentation](https://docs.elationhealth.com/reference).\n\nThe expected flow for an import is:\n1. Create a Data Import Request for each batch of imports. There is no size limit on an import batch, though larger batches will take longer to process. You may separate your imports into batches using whatever logic you like. Each batch must be for a single practice and a single provider within that practice.\n\n2. Create Patient Chart Import Requests for each chart you want to import. Some validation will occur at create time, but final validation only occurs when the import is attempted. Patient Chart Import Requests are initially created in the `open` status.\n\n3. When you are ready to begin importing data, update the Patient Chart Import Request status to `pending`. It will not be imported immediately, but it will be added to the queue.  \n\n4. Alternatively, a convenience is provided at the Data Import Request level. POSTing to `/data-import-request/{dir-id}/run` will transition all child Patient Chart Import Requests in `open` to `pending`.\n\n5. Check the status of the import by polling the Data Import Request item. If import failures occur, you can review the Patient Chart Import Requests that failed and then update and rerun them individually.\n\n6. Once all Patient Chart Import Requests have succeeded, you should consider the Data Import Request to be successful. Please review your data within the web application to ensure that charts imported as you expected.\n\nIf you encounter any problems, please contact Elation at api-support@elationhealth.com."
  version: 1.0.2
  title: Elation Import Data Import Request API
  termsOfService: https://www.elationhealth.com/terms-of-use/
  contact:
    email: api-support@elationhealth.com
servers:
- description: Elation Production API
  url: https://api.app.elationemr.com/api/2.0
- description: Elation Sandbox API
  url: https://sandbox.elationemr.com/api/2.0
tags:
- name: Data Import Request
  description: The parent resource for tracking batches of individual patient chart imports.
paths:
  /data-import-requests:
    get:
      tags:
      - Data Import Request
      summary: Retrieve a list of existing data import requests.
      description: ''
      operationId: getDIRs
      responses:
        '200':
          description: An array of Data Import Request details without statuses
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DataImportRequestArray'
        '401':
          description: No valid credentials provided
        '403':
          description: Your credentials are not authorized to use the import API resources
      security:
      - elation_auth:
        - import
    post:
      tags:
      - Data Import Request
      summary: Create a new data import request.
      description: ''
      operationId: createDIR
      responses:
        '200':
          description: Details of the created Data Import Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ExistingDataImportRequest'
        '201':
          description: New Data Import Request successfully created; check Location reponse header
        '400':
          description: Validation error(s)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationErrorResponse'
        '401':
          description: No valid credentials provided
        '403':
          description: Your credentials are not authorized to use the import API resources
        '422':
          description: The request body could not be parsed as JSON
      security:
      - elation_auth:
        - import
      requestBody:
        $ref: '#/components/requestBodies/CreateDataImportRequest'
  /data-import-requests/{dir-id}:
    parameters:
    - in: path
      name: dir-id
      required: true
      schema:
        type: integer
        format: int64
      description: The id of the existing Data Import Request
    get:
      tags:
      - Data Import Request
      summary: Retrieve an existing data import request.
      description: This can be used to check on the status of all child Patient Chart Import Requests.
      operationId: getDIR
      responses:
        '200':
          description: Details of the Data Import Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ExistingDataImportRequest'
        '401':
          description: No valid credentials provided
        '403':
          description: Your credentials are not authorized to use the import API resources
        '404':
          description: Existing Data Import Request not found
      security:
      - elation_auth:
        - import
    put:
      tags:
      - Data Import Request
      summary: Update an existing data import request.
      description: All editable fields must be included even if the value is unchanged.
      operationId: updateDIR
      responses:
        '200':
          description: Details of the updated Data Import Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ExistingDataImportRequest'
        '400':
          description: Validation error(s)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationErrorResponse'
        '401':
          description: No valid credentials provided
        '403':
          description: Your credentials are not authorized to use the import API resources
        '404':
          description: Existing Data Import Request not found
        '422':
          description: The request body could not be parsed as JSON
      security:
      - elation_auth:
        - import
      requestBody:
        $ref: '#/components/requestBodies/ExistingDataImportRequest'
    patch:
      tags:
      - Data Import Request
      summary: Update an existing data import request.
      description: Only include fields where the value is changing.
      operationId: patchDIR
      responses:
        '400':
          description: Validation error(s)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationErrorResponse'
        '401':
          description: No valid credentials provided
        '403':
          description: Your credentials are not authorized to use the import API resources
        '404':
          description: Existing Data Import Request not found
        '422':
          description: The request body could not be parsed as JSON
      security:
      - elation_auth:
        - import
      requestBody:
        $ref: '#/components/requestBodies/ExistingDataImportRequest'
    delete:
      tags:
      - Data Import Request
      summary: Delete an existing data import request.
      description: Only possible if no Patient Chart Import Requests have ever been created for this Data Import Request.
      operationId: deleteDIR
      responses:
        '401':
          description: No valid credentials provided
        '403':
          description: The Data Import Request cannot be deleted because child records already exist; or your credentials are not authorized to use the import API resources
        '404':
          description: Existing Data Import Request not found
      security:
      - elation_auth:
        - import
  /data-import-requests/{dir-id}/run:
    parameters:
    - in: path
      name: dir-id
      required: true
      schema:
        type: integer
        format: int64
      description: The id of the existing Data Import Request
    post:
      tags:
      - Data Import Request
      summary: Convenience call
      description: Convenience call to transition all child Patient Chart Import Requests in `open` to `pending`
      operationId: runDIR
      responses:
        '202':
          description: Request accepted; Patient Chart Import Requests will be updated
        '401':
          description: No valid credentials provided
        '403':
          description: Your credentials are not authorized to use the import API resources
      security:
      - elation_auth:
        - import
components:
  schemas:
    DataImportRequestArray:
      type: array
      items:
        $ref: '#/components/schemas/ExistingDataImportRequestWithoutStatus'
    ExistingDataImportRequestWithoutStatus:
      required:
      - id
      - created_at
      - physician_id
      - practice_id
      - sections_to_import
      allOf:
      - $ref: '#/components/schemas/BaseDataImportRequest'
      - type: object
      properties:
        physician_id:
          type: integer
          format: int64
          readOnly: true
          description: The id of the physician provider to import all child patient charts for; cannot be updated after initial create
        practice_id:
          type: integer
          format: int64
          readOnly: true
          description: The id of the practice to import all child patient charts for; cannot be updated after initial create
    ValidationErrorResponse:
      type: object
      additionalProperties:
        description: Name of the field with validation errors
        type: array
        items:
          type: string
          description: Validation error string
    BaseDataImportRequest:
      type: object
      properties:
        id:
          type: integer
          format: int64
          readOnly: true
          description: The id of the Data Import Request
        created_at:
          type: string
          format: date-time
          readOnly: true
          description: The creation timestamp for the Data Import Request
        notes:
          type: string
          description: Arbitrary notes to associate with the Data Import Request
    ExistingDataImportRequest:
      required:
      - id
      - created_at
      - physician_id
      - practice_id
      - sections_to_import
      - status
      allOf:
      - $ref: '#/components/schemas/ExistingDataImportRequestWithoutStatus'
      - type: object
      properties:
        status:
          type: array
          readOnly: true
          items:
            type: object
            properties:
              importStatus:
                $ref: '#/components/schemas/JobStatus'
              numPatientImports:
                type: integer
                format: int32
                description: The number of child Patient Chart Import Requests in the associated status
    CreateDataImportRequest:
      required:
      - physician_id
      - practice_id
      - sections_to_import
      allOf:
      - $ref: '#/components/schemas/BaseDataImportRequest'
      - type: object
      properties:
        physician_id:
          type: integer
          format: int64
          description: The id of the physician provider to import all child patient charts for; cannot be updated after initial create
        practice_id:
          type: integer
          format: int64
          description: The id of the practice to import all child patient charts for; cannot be updated after initial create
    JobStatus:
      type: string
      default: open
      description: The current status of the patient chart import. Options are open, pending, processing, failed, completed
      enum:
      - open
      - pending
      - processing
      - failed
      - completed
  requestBodies:
    ExistingDataImportRequest:
      description: Data Import Request object
      required: true
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ExistingDataImportRequest'
    CreateDataImportRequest:
      description: Data Import Request object
      required: true
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/CreateDataImportRequest'
  securitySchemes:
    elation_auth:
      type: oauth2
      flows:
        password:
          tokenUrl: http://www.elationhealth.com/api/2.0/oauth
          refreshUrl: http://www.elationhealth.com/api/2.0/oauth
          scopes:
            import: interact with data imports in your practice
externalDocs:
  description: Elation API v2 Documentation
  url: https://docs.elationhealth.com/reference