Metriport · OpenAPI Overlay 1.0.0

API Evangelist enhancements for Metriport Consolidated Devices Data API

6 actions 6 updates update extends openapi/metriport-devices-data-api-openapi.yml
Generated by API Evangelist Written by API Evangelist tooling for Metriport's API. It is a proposal applied on top of the contract, not a document Metriport publishes.
View Overlay File View on GitHub Overlay Specification

What the actions change

deprecatedx-statusx-evidencex-conventionsx-errorsx-lifecyclex-rate-limitsx-webhooks

Targets 6

$.info
$.paths['/activity'].get
$.paths['/biometrics'].get
$.paths['/body'].get
$.paths['/nutrition'].get
$.paths['/sleep'].get

OpenAPI Overlay

Raw ↑
overlay: 1.0.0
info:
  title: API Evangelist enhancements for Metriport Consolidated Devices Data API
  version: 1.0.0
  x-generated: '2026-08-14'
  x-method: generated
  x-source: 'Extends openapi/metriport-devices-data-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-devices-data-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['/activity'].get
  description: Annotate getActivity.
  update:
    deprecated: true
    x-status: retired
    x-evidence: Devices API documentation returns HTTP 404 as of 2026-08-14 and no devices-api section
      appears in the published docs index. See lifecycle/metriport-lifecycle.yml.
- target: $.paths['/biometrics'].get
  description: Annotate getBiometrics.
  update:
    deprecated: true
    x-status: retired
    x-evidence: Devices API documentation returns HTTP 404 as of 2026-08-14 and no devices-api section
      appears in the published docs index. See lifecycle/metriport-lifecycle.yml.
- target: $.paths['/body'].get
  description: Annotate getBody.
  update:
    deprecated: true
    x-status: retired
    x-evidence: Devices API documentation returns HTTP 404 as of 2026-08-14 and no devices-api section
      appears in the published docs index. See lifecycle/metriport-lifecycle.yml.
- target: $.paths['/nutrition'].get
  description: Annotate getNutrition.
  update:
    deprecated: true
    x-status: retired
    x-evidence: Devices API documentation returns HTTP 404 as of 2026-08-14 and no devices-api section
      appears in the published docs index. See lifecycle/metriport-lifecycle.yml.
- target: $.paths['/sleep'].get
  description: Annotate getSleep.
  update:
    deprecated: true
    x-status: retired
    x-evidence: Devices API documentation returns HTTP 404 as of 2026-08-14 and no devices-api section
      appears in the published docs index. See lifecycle/metriport-lifecycle.yml.