{
  "data": {
    "a": {
      "slug": "metriport",
      "name": "Metriport Medical API",
      "vendor": "Metriport Inc.",
      "vendorUrl": "https://www.metriport.com",
      "kind": "http-api",
      "category": "health-data",
      "summary": "Metriport's Medical API retrieves a patient's records from US health information exchanges, pharmacies and labs, converts them to deduplicated FHIR, and returns them through a REST API with webhooks. Production use requires a covered entity with an NPI.",
      "url": "https://www.anchorterminal.com/tools/metriport",
      "markdownUrl": "https://www.anchorterminal.com/tools/metriport.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/metriport.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/metriport.json",
      "repo": "https://github.com/metriport/metriport",
      "license": "Proprietary hosted service under Metriport's terms of use. The source in metriport/metriport is AGPLv3, with an enterprise directory under its own licence, and the @metriport/api-sdk package on npm is MIT",
      "transports": [
        "http"
      ],
      "packages": [
        {
          "registry": "npm",
          "name": "@metriport/api-sdk"
        }
      ],
      "auth": "api-key",
      "authNotes": "Every request sends a key in the `x-api-key` header to https://api.metriport.com, or https://api.sandbox.metriport.com in sandbox mode. Keys are generated in the developer dashboard after Metriport approves the account, up to two at once for rotation, each revocable at once and each with full access including destructive operations. No scopes or read-only key were found. Production access needs a covered entity with an NPI and a treatment purpose of use, agreed on an intro call.",
      "pricing": "paid",
      "pricingNotes": "No public prices. metriport.com has no pricing page, the terms say some services carry a fee paid by card, wire or Stripe, and production access starts with an intro call booked from the dashboard. A sandbox with example patients opens once Metriport approves the access request, and its cost is not stated (checked 2026-10-14).",
      "priceSummary": "Paid",
      "where": "local",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the documentation, llms.txt, the repository README or the terms (checked 2026-10-14).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": 793,
        "npmWeekly": 28168,
        "pypiWeekly": null,
        "asOf": "2026-10-14"
      },
      "docsUrl": "https://docs.metriport.com/medical-api/getting-started/quickstart",
      "llmsTxt": "https://docs.metriport.com/llms.txt",
      "capabilities": [
        "health.records",
        "health.fhir",
        "health.consent",
        "health.ehr"
      ],
      "tags": [
        "hosted",
        "health-records",
        "fhir",
        "open-source",
        "agpl",
        "typescript",
        "llms-txt",
        "webhooks",
        "status-page",
        "sales-led",
        "hitrust",
        "soc2"
      ],
      "lastRelease": "2026-09-28",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 50.1,
        "grade": "D",
        "agentReady": false,
        "rank": 833,
        "ranked": true,
        "rankOf": 1076,
        "categoryRank": 10,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 70,
          "maintenance": 74,
          "payments": 5,
          "reliability": 45,
          "schema": 65,
          "security": 41,
          "transparency": 56
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-14"
        },
        "negative": 0,
        "verdict": "One network query pulls a patient's records from HIEs, pharmacies and labs and returns deduplicated FHIR, with per-operation rate limits, RFC 7807 errors and AGPLv3 source. Each API key has full access with no scopes, there are no public prices, and the sandbox opens only after Metriport approves the account.",
        "bestFor": "US care providers and digital health companies that need a patient's network records as FHIR with webhooks.",
        "strengths": [
          "One asynchronous network query covers HIEs, pharmacies and labs, with a webhook as each source is merged",
          "Consolidated FHIR output is deduplicated and coded, with PDF or HTML record summaries",
          "Rate limits published per operation, and `count` up to 500 per page",
          "AGPLv3 source on GitHub and an MIT TypeScript SDK released on 28 September 2026"
        ],
        "weaknesses": [
          "Every API key has full access, including destructive operations, with no scopes",
          "No public prices, and the sandbox needs Metriport's approval first",
          "The Fern definition covers only part of the API and no public changelog was found",
          "The status page renders only with JavaScript, so its history could not be read"
        ],
        "agentNotes": [
          "Check the `errors` array after Start Network Query. It returns 2XX even when some sources fail",
          "Wait for `network-query.*` webhooks or poll Get Network Query Status before reading consolidated data, which is cached from the last query",
          "Send the resource's `eTag` in `If-Match` on updates to avoid overwriting newer data",
          "Keep patient creates under 15 a minute and network queries under 20 a minute per source",
          "In sandbox, create patients whose first name matches a pre-defined persona to get example records"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "D",
            "methodology": "0.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 50.1
          }
        ],
        "editorialScores": {
          "ergonomics": 70,
          "maintenance": 74,
          "payments": 5,
          "reliability": 45,
          "schema": 65,
          "security": 41,
          "transparency": 43
        },
        "provenanceScore": 69
      },
      "connect": {
        "install": "npm install --save @metriport/api-sdk",
        "http": "POST https://api.sandbox.metriport.com/medical/v1/patient?facilityId=\u003cfacility-id\u003e\nx-api-key: \u003capi-key\u003e\nContent-Type: application/json"
      },
      "letme": {
        "capability": "https://letme.dev/health.records",
        "tool": "https://letme.dev/metriport"
      },
      "area": "domain-data",
      "provenance": {
        "legalEntity": "Metriport Inc.",
        "domain": "metriport.com",
        "domainRegistered": "2021-02-09",
        "endpointOnVendorDomain": true,
        "terms": "https://www.metriport.com/terms",
        "privacy": "https://www.metriport.com/privacy-policy",
        "statusPage": "https://status.metriport.com",
        "changelog": "",
        "securityTxt": "none",
        "checked": "2026-10-14",
        "notes": [
          "The terms of use (last updated January 2024) give a registered office at 2261 Market Street #4818, San Francisco, CA 94114, forbid access 'through automated or non-human means' and the use of 'data mining, robots, or similar data gathering and extraction tools', and say the site is not built for HIPAA-regulated use. We read them as a fact and fetched only what robots.txt allows.",
          "The privacy policy (last updated 21 February 2023) covers website visitors and customer contacts, says data is stored in the US, and does not mention API data or PHI.",
          "www.metriport.com/.well-known/security.txt returns 404. SECURITY.md in the repository sends reports to GitHub's vulnerability reporting or support@metriport.com.",
          "No public changelog was found in the documentation or on the website.",
          "RDAP gives metriport.com a registration date of 2021-02-09."
        ],
        "score": 69
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/metriport.json",
      "live": {
        "slug": "metriport",
        "vendorStatus": {
          "page": "https://status.metriport.com",
          "indicator": "unknown",
          "summary": "no machine-readable status found",
          "checkedAt": "2026-10-14T08:53:23.949542071Z"
        },
        "updatedAt": "2026-10-14T08:53:23.949542071Z"
      }
    },
    "answer": "ROOK scores 54.9 (C) on agent readiness against Metriport Medical API's 50.1 (D), and leads in 3 of 7 scored categories. Metriport Medical API leads on agent ergonomics and security \u0026 auth.",
    "b": {
      "slug": "rook",
      "name": "ROOK",
      "vendor": "Rookeries Development Corp.",
      "vendorUrl": "https://www.tryrook.io",
      "kind": "http-api",
      "category": "health-data",
      "summary": "ROOK Connect, from Rookeries Development Corp., collects health data from wearables and phone health stores, normalises it into sleep, physical and body summaries and events, and sends it by webhook or a REST API.",
      "url": "https://www.anchorterminal.com/tools/rook",
      "markdownUrl": "https://www.anchorterminal.com/tools/rook.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/rook.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/rook.json",
      "repo": "https://github.com/RookeriesDevelopment",
      "license": "Proprietary service under ROOK's Terms and Conditions for ROOK services",
      "transports": [
        "http"
      ],
      "packages": [
        {
          "registry": "npm",
          "name": "react-native-rook-sdk"
        },
        {
          "registry": "npm",
          "name": "capacitor-rook-sdk"
        }
      ],
      "auth": "api-key",
      "authNotes": "A person registers an organisation in the ROOK Portal, which enables a Sandbox project, then generates a client UUID and secret key. The secret is shown once. Calls use HTTP Basic auth with the UUID as username and the secret as password. Production needs new credentials, an active plan and signed agreements. No scopes or key rotation were found. End users authorise each data source through ROOK's authoriser pages, the mobile SDKs or the ROOK App.",
      "pricing": "paid",
      "pricingNotes": "Core $399 a month for up to 750 active users, Core+ $999 for 5,000, Business $1,999 for 15,000, Enterprise custom. Add-ons cost $79 to $499 a month. A Sandbox is available before buying a plan. The standard term is 12 months with 30 days' notice to cancel (checked 2026-10-14).",
      "priceSummary": "$399 / mo",
      "where": "local",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the docs, the OpenAPI file or the pricing page (checked 2026-10-14).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": null,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-10-14"
      },
      "docsUrl": "https://docs.tryrook.io",
      "llmsTxt": "https://docs.tryrook.io/llms.txt",
      "openapi": "https://docs.tryrook.io/redocusaurus/plugin-redoc-0.yaml",
      "capabilities": [
        "health.wearables",
        "health.consent",
        "health.fhir"
      ],
      "tags": [
        "hosted",
        "wearables",
        "health-data",
        "api-key",
        "openapi",
        "llms-txt",
        "sandbox",
        "webhooks",
        "status-page",
        "hipaa"
      ],
      "lastRelease": "2026-10-07",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 54.9,
        "grade": "C",
        "agentReady": false,
        "rank": 718,
        "ranked": true,
        "rankOf": 1076,
        "categoryRank": 8,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 49,
          "maintenance": 73,
          "payments": 25,
          "reliability": 75,
          "schema": 74,
          "security": 32,
          "transparency": 55
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-14"
        },
        "negative": 0,
        "verdict": "Graded on the REST API. A public OpenAPI file, a free Sandbox from the self-serve portal, published plan prices and a dated changelog. Credentials are one client UUID and secret per environment with no scopes, 429 handling isn't documented, the API is meant for occasional queries rather than bulk reads, and no SOC 2 report or security contact was found.",
        "bestFor": "A wellness, insurance, corporate wellness or remote monitoring product that wants normalised wearable data pushed to its backend, with plan prices it can see up front.",
        "strengths": [
          "OpenAPI 3.0.3 file with 29 operations and production and sandbox servers, linked from the API reference",
          "A self-serve portal enables a Sandbox on registration, and the pricing FAQ says it can be tested before buying a plan",
          "Plan prices are public, from $399 a month for 750 active users, with add-on prices listed",
          "Data webhooks carry an X-ROOK-HASH HMAC header and are retried on a published schedule",
          "Dated changelog with five entries between 25 August and 7 October 2026, and SDK LTS releases with a six-month support period"
        ],
        "weaknesses": [
          "Credentials are one client UUID and secret per environment, sent by Basic auth, with no scopes or rotation documented",
          "Typical limits of 60 requests a minute and 10,000 a day vary by plan, and no 429 or Retry-After behaviour is documented",
          "No server-side SDK. The official SDKs are mobile libraries for iOS, Android, Flutter, React Native and Capacitor",
          "The services terms cite an SLA page that isn't linked or published, and no SOC 2 or ISO 27001 report was found",
          "A WAF blocks requests without a User-Agent header and parameters containing localhost or SQL-like text"
        ],
        "agentNotes": [
          "Send HTTP Basic auth with client_uuid as the username and the secret key as the password, plus a User-Agent header, or the WAF returns 403",
          "Use https://api.rook-connect.review for Sandbox and https://api.rook-connect.com for production. Each has its own credentials",
          "Read health data from the data webhook. Use the API only for occasional queries, and stay under 60 requests a minute",
          "Deduplicate summaries on document_version and datetime. ROOK resends a summary with a higher document_version when it changes",
          "Call POST /api/v1/user_id/{user_id}/data_sources/revoke_auth to end a connection. Some providers take hours to stop sending data"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "C",
            "methodology": "0.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 54.9
          }
        ],
        "editorialScores": {
          "ergonomics": 49,
          "maintenance": 73,
          "payments": 25,
          "reliability": 75,
          "schema": 74,
          "security": 32,
          "transparency": 52
        },
        "provenanceScore": 58
      },
      "connect": {
        "http": "curl https://api.rook-connect.review/api/v1/client/users/status \\\n  -u \u003cclient_uuid\u003e:\u003csecret_key\u003e \\\n  -H 'User-Agent: MyApp/1.0.0'"
      },
      "letme": {
        "capability": "https://letme.dev/health.wearables",
        "tool": "https://letme.dev/rook"
      },
      "area": "domain-data",
      "unitPrices": [
        {
          "item": "Core plan, up to 750 active users",
          "unit": "month",
          "usd": 399,
          "note": "tryrook.io/pricing, 2026-10-14"
        },
        {
          "item": "Business plan, up to 15,000 active users, all add-ons",
          "unit": "month",
          "usd": 1999,
          "note": "tryrook.io/pricing, 2026-10-14"
        }
      ],
      "provenance": {
        "legalEntity": "Rookeries Development Corp.",
        "domain": "tryrook.io",
        "domainRegistered": "",
        "endpointOnVendorDomain": false,
        "terms": "https://www.tryrook.io/terms-rook-connect/",
        "privacy": "https://www.tryrook.io/privacy-policy/",
        "statusPage": "https://rook.statuspage.io",
        "changelog": "https://rook.canny.io/changelog",
        "securityTxt": "none",
        "checked": "2026-10-14",
        "notes": [
          "The Terms and Conditions for ROOK services (last updated August 2026) and the website terms (4 June 2026) name Rookeries Development Corp., 224 NE 59th St, Miami, FL 33137.",
          "The website terms forbid robots, spiders and page scraping to acquire, copy or monitor any part of the site. robots.txt on www.tryrook.io and docs.tryrook.io allows all paths, and we read public pages only.",
          "The API answers at api.rook-connect.com and api.rook-connect.review, which are not on tryrook.io.",
          "rookmotion.com, the domain in the founder's list, did not load (expired certificate). The current site is www.tryrook.io.",
          "www.tryrook.io/.well-known/security.txt returns 404."
        ],
        "score": 58
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/rook.json",
      "live": {
        "slug": "rook",
        "vendorStatus": {
          "page": "https://rook.statuspage.io",
          "indicator": "none",
          "summary": "All Systems Operational",
          "checkedAt": "2026-10-14T09:53:23.529135186Z"
        },
        "updatedAt": "2026-10-14T09:53:23.529135186Z"
      }
    },
    "facts": [
      {
        "a": "HTTP API",
        "b": "HTTP API",
        "name": "Kind"
      },
      {
        "a": "Metriport Inc.",
        "b": "Rookeries Development Corp.",
        "name": "Vendor"
      },
      {
        "a": "no (local only)",
        "b": "no (local only)",
        "name": "Hosted endpoint"
      },
      {
        "a": "HTTP",
        "b": "HTTP",
        "name": "Transports"
      },
      {
        "a": "API key",
        "b": "API key",
        "name": "Auth"
      },
      {
        "a": "Paid",
        "b": "Paid",
        "name": "Pricing"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "Proprietary hosted service under Metriport's terms of use. The source in metriport/metriport is AGPLv3, with an enterprise directory under its own licence, and the @metriport/api-sdk package on npm is MIT",
        "b": "Proprietary service under ROOK's Terms and Conditions for ROOK services",
        "name": "Licence"
      },
      {
        "a": "no",
        "b": "no",
        "name": "Read-only variant documented"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "llms.txt"
      },
      {
        "a": "2026-09-28",
        "b": "2026-10-07",
        "name": "Last release"
      },
      {
        "a": "2024-01-01",
        "b": "2026-08-01",
        "name": "Terms last updated"
      },
      {
        "a": "2023-02-21",
        "b": "2026-05-28",
        "name": "Privacy policy last updated"
      },
      {
        "a": "not found in the text",
        "b": "not found in the text",
        "name": "Customer content may train models"
      },
      {
        "a": "yes",
        "b": "not found in the text",
        "name": "Terms restrict automated access"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "Terms restrict benchmarking"
      },
      {
        "a": "yes",
        "b": "not found in the text",
        "name": "Terms or service can change without notice"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "Arbitration or class-action waiver"
      },
      {
        "a": "793 stars, 28k npm/wk",
        "b": "none",
        "name": "Popularity"
      }
    ],
    "faq": [
      {
        "answer": "ROOK scores 54.9 (C) on agent readiness against Metriport Medical API's 50.1 (D), and leads in 3 of 7 scored categories. Metriport Medical API leads on agent ergonomics and security \u0026 auth.",
        "question": "Which is better for AI agents, Metriport Medical API or ROOK?"
      },
      {
        "answer": "Both need an API key.",
        "question": "Do Metriport Medical API and ROOK need an API key?"
      },
      {
        "answer": "No hosted endpoint is listed for Metriport Medical API. No hosted endpoint is listed for ROOK.",
        "question": "Can an agent call Metriport Medical API and ROOK without installing anything?"
      },
      {
        "answer": "Metriport Medical API is open source (Proprietary hosted service under Metriport's terms of use. The source in metriport/metriport is AGPLv3, with an enterprise directory under its own licence, and the @metriport/api-sdk package on npm is MIT). No open-source release is listed for ROOK.",
        "question": "Are Metriport Medical API and ROOK open source?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Agent ergonomics, 70 against 49",
          "Security \u0026 auth, 41 against 32"
        ],
        "also": [
          "Open source"
        ],
        "goodFor": "US care providers and digital health companies that need a patient's network records as FHIR with webhooks.",
        "slug": "metriport",
        "watchFor": "Every API key has full access, including destructive operations, with no scopes"
      },
      {
        "aheadOn": [
          "Reliability, 75 against 45",
          "Schema \u0026 documentation, 74 against 65",
          "Payments \u0026 pricing, 25 against 5"
        ],
        "also": null,
        "goodFor": "A wellness, insurance, corporate wellness or remote monitoring product that wants normalised wearable data pushed to its backend, with plan prices it can see up front.",
        "slug": "rook",
        "watchFor": "Credentials are one client UUID and secret per environment, sent by Basic auth, with no scopes or rotation documented"
      }
    ],
    "job": {
      "capability": "health.fhir",
      "name": "FHIR servers"
    },
    "others": [
      {
        "json": "https://www.anchorterminal.com/compare/1uphealth-vs-rook.json",
        "title": "1upHealth vs ROOK",
        "url": "https://www.anchorterminal.com/compare/1uphealth-vs-rook"
      },
      {
        "json": "https://www.anchorterminal.com/compare/aidbox-vs-metriport.json",
        "title": "Aidbox vs Metriport Medical API",
        "url": "https://www.anchorterminal.com/compare/aidbox-vs-metriport"
      },
      {
        "json": "https://www.anchorterminal.com/compare/aidbox-vs-rook.json",
        "title": "Aidbox vs ROOK",
        "url": "https://www.anchorterminal.com/compare/aidbox-vs-rook"
      },
      {
        "json": "https://www.anchorterminal.com/compare/health-gorilla-vs-rook.json",
        "title": "Health Gorilla vs ROOK",
        "url": "https://www.anchorterminal.com/compare/health-gorilla-vs-rook"
      },
      {
        "json": "https://www.anchorterminal.com/compare/medplum-vs-metriport.json",
        "title": "Medplum vs Metriport Medical API",
        "url": "https://www.anchorterminal.com/compare/medplum-vs-metriport"
      },
      {
        "json": "https://www.anchorterminal.com/compare/medplum-vs-rook.json",
        "title": "Medplum vs ROOK",
        "url": "https://www.anchorterminal.com/compare/medplum-vs-rook"
      },
      {
        "json": "https://www.anchorterminal.com/compare/metriport-vs-terra.json",
        "title": "Metriport Medical API vs Terra API",
        "url": "https://www.anchorterminal.com/compare/metriport-vs-terra"
      },
      {
        "json": "https://www.anchorterminal.com/compare/particle-health-vs-rook.json",
        "title": "Particle Health vs ROOK",
        "url": "https://www.anchorterminal.com/compare/particle-health-vs-rook"
      },
      {
        "json": "https://www.anchorterminal.com/compare/redox-vs-rook.json",
        "title": "Redox vs ROOK",
        "url": "https://www.anchorterminal.com/compare/redox-vs-rook"
      },
      {
        "json": "https://www.anchorterminal.com/compare/1uphealth-vs-metriport.json",
        "title": "1upHealth vs Metriport Medical API",
        "url": "https://www.anchorterminal.com/compare/1uphealth-vs-metriport"
      },
      {
        "json": "https://www.anchorterminal.com/compare/health-gorilla-vs-metriport.json",
        "title": "Health Gorilla vs Metriport Medical API",
        "url": "https://www.anchorterminal.com/compare/health-gorilla-vs-metriport"
      },
      {
        "json": "https://www.anchorterminal.com/compare/medblocks-vs-metriport.json",
        "title": "Medblocks vs Metriport Medical API",
        "url": "https://www.anchorterminal.com/compare/medblocks-vs-metriport"
      },
      {
        "json": "https://www.anchorterminal.com/compare/metriport-vs-particle-health.json",
        "title": "Metriport Medical API vs Particle Health",
        "url": "https://www.anchorterminal.com/compare/metriport-vs-particle-health"
      },
      {
        "json": "https://www.anchorterminal.com/compare/metriport-vs-redox.json",
        "title": "Metriport Medical API vs Redox",
        "url": "https://www.anchorterminal.com/compare/metriport-vs-redox"
      },
      {
        "json": "https://www.anchorterminal.com/compare/metriport-vs-zus-health.json",
        "title": "Metriport Medical API vs Zus Health",
        "url": "https://www.anchorterminal.com/compare/metriport-vs-zus-health"
      },
      {
        "json": "https://www.anchorterminal.com/compare/medblocks-vs-rook.json",
        "title": "Medblocks vs ROOK",
        "url": "https://www.anchorterminal.com/compare/medblocks-vs-rook"
      },
      {
        "json": "https://www.anchorterminal.com/compare/metriport-vs-validic.json",
        "title": "Metriport Medical API vs Validic Inform",
        "url": "https://www.anchorterminal.com/compare/metriport-vs-validic"
      },
      {
        "json": "https://www.anchorterminal.com/compare/rook-vs-zus-health.json",
        "title": "ROOK vs Zus Health",
        "url": "https://www.anchorterminal.com/compare/rook-vs-zus-health"
      },
      {
        "json": "https://www.anchorterminal.com/compare/rook-vs-terra.json",
        "title": "ROOK vs Terra API",
        "url": "https://www.anchorterminal.com/compare/rook-vs-terra"
      },
      {
        "json": "https://www.anchorterminal.com/compare/rook-vs-validic.json",
        "title": "ROOK vs Validic Inform",
        "url": "https://www.anchorterminal.com/compare/rook-vs-validic"
      }
    ],
    "scores": [
      {
        "by": 30,
        "edge": "rook",
        "key": "reliability",
        "metriport": 45,
        "name": "Reliability",
        "rook": 75,
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 9,
        "edge": "rook",
        "key": "schema",
        "metriport": 65,
        "name": "Schema \u0026 documentation",
        "rook": 74,
        "weight": 13
      },
      {
        "by": 21,
        "edge": "metriport",
        "key": "ergonomics",
        "metriport": 70,
        "name": "Agent ergonomics",
        "rook": 49,
        "weight": 13
      },
      {
        "by": 9,
        "edge": "metriport",
        "key": "security",
        "metriport": 41,
        "name": "Security \u0026 auth",
        "rook": 32,
        "weight": 14
      },
      {
        "by": 20,
        "edge": "rook",
        "key": "payments",
        "metriport": 5,
        "name": "Payments \u0026 pricing",
        "rook": 25,
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 1,
        "edge": "metriport",
        "key": "maintenance",
        "metriport": 74,
        "name": "Maintenance \u0026 community",
        "rook": 73,
        "weight": 7
      },
      {
        "by": 1,
        "edge": "metriport",
        "key": "transparency",
        "metriport": 56,
        "name": "Transparency \u0026 trust",
        "rook": 55,
        "weight": 7
      }
    ],
    "summary": "ROOK scores 54.9 (C) on agent readiness against Metriport Medical API's 50.1 (D), and leads in 3 of 7 scored categories. Metriport Medical API leads on agent ergonomics and security \u0026 auth. Both do fhir servers.",
    "verdicts": {
      "metriport": "One network query pulls a patient's records from HIEs, pharmacies and labs and returns deduplicated FHIR, with per-operation rate limits, RFC 7807 errors and AGPLv3 source. Each API key has full access with no scopes, there are no public prices, and the sandbox opens only after Metriport approves the account.",
      "rook": "Graded on the REST API. A public OpenAPI file, a free Sandbox from the self-serve portal, published plan prices and a dated changelog. Credentials are one client UUID and secret per environment with no scopes, 429 handling isn't documented, the API is meant for occasional queries rather than bulk reads, and no SOC 2 report or security contact was found."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/metriport-vs-rook",
    "json": "https://www.anchorterminal.com/compare/metriport-vs-rook.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/metriport-vs-rook.md",
    "slim": "https://www.anchorterminal.com/compare/metriport-vs-rook.min.md"
  },
  "markdown": "ROOK scores 54.9 (C) on agent readiness against Metriport Medical API's 50.1 (D), and leads in 3 of 7 scored categories. Metriport Medical API leads on agent ergonomics and security \u0026 auth. Both do fhir servers.\n\n- Metriport Medical API: grade D, 50.1/100, rank #833 of 1076. Markdown https://www.anchorterminal.com/tools/metriport.md · JSON https://www.anchorterminal.com/api/v1/tools/metriport.json\n- ROOK: grade C, 54.9/100, rank #718 of 1076. Markdown https://www.anchorterminal.com/tools/rook.md · JSON https://www.anchorterminal.com/api/v1/tools/rook.json\n- Best health record and wellness data APIs for AI agents: https://www.anchorterminal.com/best/health-data/index.md\n- All 63 health comparisons: https://www.anchorterminal.com/compare/health-data/index.md\n\n## Which one, for what\n\n### Metriport Medical API (D)\n\nGood for: US care providers and digital health companies that need a patient's network records as FHIR with webhooks.\n\nAhead on:\n- Agent ergonomics, 70 against 49\n- Security \u0026 auth, 41 against 32\n\nAlso in its favour:\n- Open source\n\nWatch for: Every API key has full access, including destructive operations, with no scopes\n\n### ROOK (C)\n\nGood for: A wellness, insurance, corporate wellness or remote monitoring product that wants normalised wearable data pushed to its backend, with plan prices it can see up front.\n\nAhead on:\n- Reliability, 75 against 45\n- Schema \u0026 documentation, 74 against 65\n- Payments \u0026 pricing, 25 against 5\n\nWatch for: Credentials are one client UUID and secret per environment, sent by Basic auth, with no scopes or rotation documented\n\n\n## Score by category\n\n| Category | Weight | Metriport Medical API | ROOK | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 45 | 75 | ROOK +30 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 65 | 74 | ROOK +9 |\n| Agent ergonomics | 13% (16.2 this run) | 70 | 49 | Metriport Medical API +21 |\n| Security \u0026 auth | 14% (17.5 this run) | 41 | 32 | Metriport Medical API +9 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 5 | 25 | ROOK +20 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 74 | 73 | Metriport Medical API +1 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 56 | 55 | Metriport Medical API +1 |\n| Negative events | ≤15 | 0 | 0 | |\n| **Total** | | **50.1 · D** | **54.9 · C** | |\n\n## Facts side by side\n\n| Fact | Metriport Medical API | ROOK |\n| --- | --- | --- |\n| Kind | HTTP API | HTTP API |\n| Vendor | Metriport Inc. | Rookeries Development Corp. |\n| Hosted endpoint | no (local only) | no (local only) |\n| Transports | HTTP | HTTP |\n| Auth | API key | API key |\n| Pricing | Paid | Paid |\n| x402 | no | no |\n| Licence | Proprietary hosted service under Metriport's terms of use. The source in metriport/metriport is AGPLv3, with an enterprise directory under its own licence, and the @metriport/api-sdk package on npm is MIT | Proprietary service under ROOK's Terms and Conditions for ROOK services |\n| Read-only variant documented | no | no |\n| llms.txt | yes | yes |\n| Last release | 2026-09-28 | 2026-10-07 |\n| Terms last updated | 2024-01-01 | 2026-08-01 |\n| Privacy policy last updated | 2023-02-21 | 2026-05-28 |\n| Customer content may train models | not found in the text | not found in the text |\n| Terms restrict automated access | yes | not found in the text |\n| Terms restrict benchmarking | yes | yes |\n| Terms or service can change without notice | yes | not found in the text |\n| Arbitration or class-action waiver | yes | yes |\n| Popularity | 793 stars, 28k npm/wk | none |\n\n## Verdicts\n\n**Metriport Medical API.** One network query pulls a patient's records from HIEs, pharmacies and labs and returns deduplicated FHIR, with per-operation rate limits, RFC 7807 errors and AGPLv3 source. Each API key has full access with no scopes, there are no public prices, and the sandbox opens only after Metriport approves the account.\n\n**ROOK.** Graded on the REST API. A public OpenAPI file, a free Sandbox from the self-serve portal, published plan prices and a dated changelog. Credentials are one client UUID and secret per environment with no scopes, 429 handling isn't documented, the API is meant for occasional queries rather than bulk reads, and no SOC 2 report or security contact was found.\n\n## Before you call either\n\n### Metriport Medical API\n\n1. Check the `errors` array after Start Network Query. It returns 2XX even when some sources fail\n2. Wait for `network-query.*` webhooks or poll Get Network Query Status before reading consolidated data, which is cached from the last query\n3. Send the resource's `eTag` in `If-Match` on updates to avoid overwriting newer data\n4. Keep patient creates under 15 a minute and network queries under 20 a minute per source\n5. In sandbox, create patients whose first name matches a pre-defined persona to get example records\n\n### ROOK\n\n1. Send HTTP Basic auth with client_uuid as the username and the secret key as the password, plus a User-Agent header, or the WAF returns 403\n2. Use https://api.rook-connect.review for Sandbox and https://api.rook-connect.com for production. Each has its own credentials\n3. Read health data from the data webhook. Use the API only for occasional queries, and stay under 60 requests a minute\n4. Deduplicate summaries on document_version and datetime. ROOK resends a summary with a higher document_version when it changes\n5. Call POST /api/v1/user_id/{user_id}/data_sources/revoke_auth to end a connection. Some providers take hours to stop sending data\n\n## Questions\n\n### Which is better for AI agents, Metriport Medical API or ROOK?\n\nROOK scores 54.9 (C) on agent readiness against Metriport Medical API's 50.1 (D), and leads in 3 of 7 scored categories. Metriport Medical API leads on agent ergonomics and security \u0026 auth.\n\n### Do Metriport Medical API and ROOK need an API key?\n\nBoth need an API key.\n\n### Can an agent call Metriport Medical API and ROOK without installing anything?\n\nNo hosted endpoint is listed for Metriport Medical API. No hosted endpoint is listed for ROOK.\n\n### Are Metriport Medical API and ROOK open source?\n\nMetriport Medical API is open source (Proprietary hosted service under Metriport's terms of use. The source in metriport/metriport is AGPLv3, with an enterprise directory under its own licence, and the @metriport/api-sdk package on npm is MIT). No open-source release is listed for ROOK.\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/metriport-vs-rook.json, and with the fewest tokens: https://www.anchorterminal.com/compare/metriport-vs-rook.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"metriport\", \"b\": \"rook\"}`. From a terminal: `anchor compare metriport rook`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/metriport.json and https://www.anchorterminal.com/api/v1/tools/rook.json\n\n## Other comparisons with Metriport Medical API or ROOK\n\n- [1upHealth vs ROOK](https://www.anchorterminal.com/compare/1uphealth-vs-rook.md)\n- [Aidbox vs Metriport Medical API](https://www.anchorterminal.com/compare/aidbox-vs-metriport.md)\n- [Aidbox vs ROOK](https://www.anchorterminal.com/compare/aidbox-vs-rook.md)\n- [Health Gorilla vs ROOK](https://www.anchorterminal.com/compare/health-gorilla-vs-rook.md)\n- [Medplum vs Metriport Medical API](https://www.anchorterminal.com/compare/medplum-vs-metriport.md)\n- [Medplum vs ROOK](https://www.anchorterminal.com/compare/medplum-vs-rook.md)\n- [Metriport Medical API vs Terra API](https://www.anchorterminal.com/compare/metriport-vs-terra.md)\n- [Particle Health vs ROOK](https://www.anchorterminal.com/compare/particle-health-vs-rook.md)\n- [Redox vs ROOK](https://www.anchorterminal.com/compare/redox-vs-rook.md)\n- [1upHealth vs Metriport Medical API](https://www.anchorterminal.com/compare/1uphealth-vs-metriport.md)\n- [Health Gorilla vs Metriport Medical API](https://www.anchorterminal.com/compare/health-gorilla-vs-metriport.md)\n- [Medblocks vs Metriport Medical API](https://www.anchorterminal.com/compare/medblocks-vs-metriport.md)\n- [Metriport Medical API vs Particle Health](https://www.anchorterminal.com/compare/metriport-vs-particle-health.md)\n- [Metriport Medical API vs Redox](https://www.anchorterminal.com/compare/metriport-vs-redox.md)\n- [Metriport Medical API vs Zus Health](https://www.anchorterminal.com/compare/metriport-vs-zus-health.md)\n- [Medblocks vs ROOK](https://www.anchorterminal.com/compare/medblocks-vs-rook.md)\n- [Metriport Medical API vs Validic Inform](https://www.anchorterminal.com/compare/metriport-vs-validic.md)\n- [ROOK vs Zus Health](https://www.anchorterminal.com/compare/rook-vs-zus-health.md)\n- [ROOK vs Terra API](https://www.anchorterminal.com/compare/rook-vs-terra.md)\n- [ROOK vs Validic Inform](https://www.anchorterminal.com/compare/rook-vs-validic.md)\n",
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-10-14",
    "license": "CC-BY-4.0",
    "method": "https://www.anchorterminal.com/benchmark/",
    "methodology": "0.4",
    "openapi": "https://www.anchorterminal.com/openapi.json",
    "preview": false,
    "run": "2026-10-01",
    "runLabel": "October 2026 research run"
  },
  "page": {
    "breadcrumbs": [
      {
        "name": "Home",
        "url": "https://www.anchorterminal.com/"
      },
      {
        "name": "Compare",
        "url": "https://www.anchorterminal.com/compare/"
      },
      {
        "name": "Metriport Medical API vs ROOK",
        "url": ""
      }
    ],
    "description": "ROOK scores 54.9 (C) to Metriport Medical's 50.1 (D) for fhir servers. Prices, MCP, x402, uptime and agent notes side by side.",
    "facts": [
      "Metriport Medical API D 50.1",
      "ROOK C 54.9",
      "scores"
    ],
    "h1": "Metriport Medical API vs ROOK",
    "image": "https://www.anchorterminal.com/assets/og/compare-metriport-vs-rook.png",
    "path": "/compare/metriport-vs-rook",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Metriport Medical vs ROOK for AI agents in 2026: scores and prices",
    "toc": null,
    "updated": "2026-10-14",
    "url": "https://www.anchorterminal.com/compare/metriport-vs-rook"
  },
  "tokens": {
    "markdown": 2400,
    "slim": 630
  },
  "version": 1
}
