Metriport · OpenAPI Overlay 1.0.0

API Evangelist enhancements for Metriport Consolidated Document API

4 actions 4 updates update extends openapi/metriport-document-api-openapi.yml
Derived by API Evangelist Built from the contracts Metriport publishes. Metriport did not publish this file.
View Overlay File View on GitHub Overlay Specification

What the actions change

x-statusx-superseded-byx-conventionsx-errorsx-lifecyclex-rate-limitsx-webhooksx-error-envelope

Targets 4

$.info
$.paths['/medical/v1/document/query'].get
$.paths['/medical/v1/document'].get
$.paths['/medical/v1/document/query'].post

OpenAPI Overlay

Raw ↑
overlay: 1.0.0
info:
  title: API Evangelist enhancements for Metriport Consolidated Document API
  version: 1.0.0
  x-generated: '2026-08-14'
  x-method: generated
  x-source: 'Extends openapi/metriport-document-api-openapi.yml with the runtime semantics Metriport documents
    in prose but does not express in a machine-readable contract: published per-operation rate limits,
    ETag concurrency, cursor pagination, the error envelope, and the retirement status of the Devices
    API operations. The original OpenAPI is never mutated.'
extends: openapi/metriport-document-api-openapi.yml
actions:
- target: $.info
  description: Record the cross-cutting runtime semantics Metriport documents outside the spec.
  update:
    x-conventions: conventions/metriport-conventions.yml
    x-errors: errors/metriport-problem-types.yml
    x-lifecycle: lifecycle/metriport-lifecycle.yml
    x-rate-limits: rate-limits/metriport-rate-limits.yml
    x-webhooks: asyncapi/metriport-webhooks.yml
    x-error-envelope: Every failure returns {"status","name","title","detail"} as application/json. RFC
      7807-inspired, not RFC 7807 or RFC 9457 conformant. See https://docs.metriport.com/medical-api/more-info/error-responses
    x-idempotency: Not supported. Metriport documents no Idempotency-Key header; retrying a POST is not
      safe by contract. Updates use ETag/If-Match optimistic concurrency instead (412 on mismatch).
    x-rate-limit-headers: None published. No X-RateLimit-* or RateLimit-* response headers and no documented
      status code on exhaustion.
- target: $.paths['/medical/v1/document/query'].get
  description: Annotate getDocumentQueryStatus.
  update:
    x-status: legacy
    x-superseded-by: Network Query (https://docs.metriport.com/medical-api/api-reference/network/start-network-query)
- target: $.paths['/medical/v1/document'].get
  description: Annotate listDocuments.
  update:
    x-pagination:
      style: cursor
      params:
      - count
      - fromItem
      - toItem
      default_count: 50
      max_count: 500
      response:
      - meta.itemsOnPage
      - meta.itemsInTotal
      - meta.nextPage
      - meta.prevPage
      source: https://docs.metriport.com/medical-api/handling-data/pagination
- target: $.paths['/medical/v1/document/query'].post
  description: Annotate startDocumentQuery.
  update:
    x-rate-limit:
      limit: '20'
      window: minute
      rate: 1 every 3 seconds
      scope: account
      source: https://docs.metriport.com/medical-api/more-info/limits
    x-status: legacy
    x-superseded-by: Network Query (https://docs.metriport.com/medical-api/api-reference/network/start-network-query)

Work with this as data

Every overlay 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 openapi overlays

4 MCP tools reach this
  • find_overlaysBrowse and filter every overlay in the catalog.
  • 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 overlay
curl "https://apis.io/api/v1/overlays/metriport-document-api-overlay"
All openapi overlays
curl "https://apis.io/api/v1/overlays?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

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