{
  "data": {
    "a": {
      "slug": "medblocks",
      "name": "Medblocks",
      "vendor": "Medblocks Inc.",
      "vendorUrl": "https://medblocks.com",
      "kind": "http-api",
      "category": "health-data",
      "summary": "Medblocks Platform lets an app or agent connect a patient's hospital, clinic and insurer records through SMART on FHIR and read them back as FHIR R4, through a REST API, a TypeScript SDK or a remote MCP server.",
      "url": "https://www.anchorterminal.com/tools/medblocks",
      "markdownUrl": "https://www.anchorterminal.com/tools/medblocks.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/medblocks.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/medblocks.json",
      "repo": "https://github.com/medblocks/skills",
      "license": "Proprietary service under Medblocks' terms. The medblocks TypeScript SDK on npm carries a proprietary licence that forbids redistribution and reverse engineering. The agent skills repository has no licence file",
      "transports": [
        "http",
        "streamable-http"
      ],
      "remoteUrl": "https://app.medblocks.com/mcp",
      "packages": [
        {
          "registry": "npm",
          "name": "medblocks"
        }
      ],
      "auth": "mixed",
      "authNotes": "The REST API takes a workspace API key as a Bearer token (`mb_sk_sbx_` for Sandbox, `mb_sk_live_` for Production). Owners and admins mint, rotate and revoke keys in the dashboard, and the full key is shown once. The MCP server at https://app.medblocks.com/mcp also accepts OAuth from Medblocks' own authorisation server, which publishes dynamic client registration, PKCE and ten scopes (patients:read, patients:write, fhir:read and others), with a consent screen of three tick boxes. Patients authorise each hospital themselves through SMART on FHIR. A BAA is needed before production use.",
      "pricing": "freemium",
      "pricingNotes": "Free plan at $0 for up to 1,000 active patients, with patient access, synthetic sandboxes and full API access. Enterprise is $60,000 a year with no patient cap and adds backend services, clinical workflows, OCR and data structuring. A patient counts as active from the first successful FHIR pull. Upgrades go through support@medblocks.com, and requests outside the plan return 402 `billing_error` (checked 2026-10-14).",
      "priceSummary": "$5000 / mo",
      "where": "hosted",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the docs, llms-full.txt or the billing page. A 402 status is used only for `billing_error` when a plan does not cover a feature (checked 2026-10-14).",
        "endpoints": []
      },
      "toolCount": 10,
      "popularity": {
        "githubStars": null,
        "npmWeekly": 36,
        "pypiWeekly": null,
        "asOf": "2026-10-14"
      },
      "docsUrl": "https://medblocks.com/docs",
      "llmsTxt": "https://medblocks.com/docs/llms.txt",
      "capabilities": [
        "health.records",
        "health.consent",
        "health.ehr",
        "health.fhir",
        "agent.tools"
      ],
      "tags": [
        "hosted",
        "mcp",
        "oauth",
        "fhir",
        "smart-on-fhir",
        "typescript",
        "llms-txt",
        "free-tier",
        "hipaa"
      ],
      "lastRelease": "2026-09-14",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 52.7,
        "grade": "D",
        "agentReady": false,
        "rank": 773,
        "ranked": true,
        "rankOf": 1076,
        "categoryRank": 9,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 72,
          "maintenance": 69,
          "payments": 25,
          "reliability": 28,
          "schema": 62,
          "security": 67,
          "transparency": 51
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-14"
        },
        "negative": 0,
        "verdict": "Patient-authorised record retrieval with a ten-tool remote MCP server, OAuth with per-capability consent, an audit entry for every call and a free plan for 1,000 active patients. No status page, no published rate limits and no idempotency keys were found, and the OpenAPI file behind the reference is not published.",
        "bestFor": "A consumer or care app, or an assistant, that needs a patient's own records from US hospitals and payers with the patient's consent, and wants an MCP route as well as REST.",
        "strengths": [
          "Remote MCP server with ten tools, OAuth with dynamic client registration and a consent screen that can leave destructive actions off",
          "Free plan for up to 1,000 active patients and a Synthetic Hospital sandbox with seeded FHIR R4 patients",
          "One error envelope with 36 stable codes, a `param` field, a request ID and `Retry-After` on 429",
          "Every MCP tool call writes an audit entry, and the dashboard shows authorisation and pull history per patient",
          "llms.txt, llms-full.txt and a Markdown copy of every docs page, plus agent skills for Claude Code, Codex and Cursor"
        ],
        "weaknesses": [
          "No status page, SLA or published rate limits for the Platform API",
          "No idempotency keys were found, and the API conventions and versioning pages are unwritten placeholders",
          "The OpenAPI file the reference is generated from is not published",
          "Only one SDK, in TypeScript, with npm's latest tag still at 1.0.0 while the changelog documents 1.2.0",
          "The public terms cover the website and Blue Button app, and no sub-processor list or customer terms for the API were found"
        ],
        "agentNotes": [
          "Connect with `claude mcp add --transport http medblocks https://app.medblocks.com/mcp` and sign in, or send a workspace API key as a Bearer token from a backend",
          "Ask the person before calling `disconnect_health_system` or `delete_person`. Both are permanent",
          "Wait for the connection webhook or check connection status before reading records. Pulls run in the background after the patient approves",
          "Branch on `error.code`, not the message, and wait the `Retry-After` seconds on a 429",
          "Use a Sandbox workspace and the Synthetic Hospital (password `demopass`) for tests. Sandbox keys cannot reach production sources"
        ],
        "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": 52.7
          }
        ],
        "editorialScores": {
          "ergonomics": 72,
          "maintenance": 69,
          "payments": 25,
          "reliability": 28,
          "schema": 62,
          "security": 67,
          "transparency": 32
        },
        "provenanceScore": 70
      },
      "connect": {
        "install": "npm install medblocks",
        "http": "curl https://app.medblocks.com/patients -H \"Authorization: Bearer $MEDBLOCKS_API_KEY\" -H \"Content-Type: application/json\"",
        "claudeCode": "claude mcp add --transport http medblocks https://app.medblocks.com/mcp"
      },
      "letme": {
        "capability": "https://letme.dev/health.records",
        "tool": "https://letme.dev/medblocks"
      },
      "area": "domain-data",
      "unitPrices": [
        {
          "item": "Enterprise plan, uncapped patients",
          "unit": "month",
          "usd": 5000,
          "note": "$60,000 a year per the billing page, shown here as a monthly equivalent"
        }
      ],
      "provenance": {
        "legalEntity": "Medblocks Inc.",
        "domain": "medblocks.com",
        "domainRegistered": "2005-11-04",
        "endpointOnVendorDomain": true,
        "terms": "https://medblocks.com/terms",
        "privacy": "https://medblocks.com/privacy-policy",
        "statusPage": "",
        "changelog": "https://medblocks.com/docs/reference/changelog",
        "securityTxt": "none",
        "checked": "2026-10-14",
        "notes": [
          "The terms, last updated 5 October 2026, name Medblocks Inc., a Delaware corporation, at 100 Front Street, Suite 400 #122, Worcester, MA 01608, and cover the website and the CMS Blue Button application. No separate customer terms for the Platform API were found.",
          "The terms forbid using robots, scripts or scrapers to access the site. We read public pages and recorded that clause.",
          "The privacy policy, last updated 5 October 2026, covers the Medblocks applications including Medblocks Platform and the MCP server, and says no data is used to train AI models.",
          "medblocks.com/.well-known/security.txt returns 404. status.medblocks.com did not answer and no status page was linked from the docs.",
          "RDAP for medblocks.com gives a registration date of 2005-11-04."
        ],
        "score": 70
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/medblocks.json",
      "live": {
        "slug": "medblocks",
        "probe": {
          "target": "https://app.medblocks.com/mcp",
          "method": "get",
          "lastAt": "2026-10-14T09:41:57.376112052Z",
          "lastOk": true,
          "lastStatus": 401,
          "lastMs": 317,
          "lastNote": "asks for credentials",
          "authRequired": true,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 317,
          "p95ms24h": 463,
          "samples24h": 17,
          "samples30d": 17,
          "days": [
            {
              "date": "2026-10-14",
              "probes": 17,
              "ok": 17
            }
          ]
        },
        "updatedAt": "2026-10-14T09:41:57.376112052Z"
      }
    },
    "answer": "Terra API scores 65.9 (B) on agent readiness against Medblocks's 52.7 (D), and leads in 5 of 7 scored categories. Medblocks leads on payments \u0026 pricing.",
    "b": {
      "slug": "terra",
      "name": "Terra API",
      "vendor": "Terra Enabling Developers Inc.",
      "vendorUrl": "https://tryterra.co",
      "kind": "http-api",
      "category": "health-data",
      "summary": "Terra's Unified API collects activity, sleep, body and nutrition data from 500+ wearables and health apps, normalises it into one schema and sends it by webhook or REST. An MCP server, Terra AI, lets agents read a connected user's data.",
      "url": "https://www.anchorterminal.com/tools/terra",
      "markdownUrl": "https://www.anchorterminal.com/tools/terra.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/terra.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/terra.json",
      "repo": "https://github.com/tryterra/openapi",
      "license": "Proprietary service under Terra's terms of service. The OpenAPI specs repository is Apache 2.0",
      "transports": [
        "http",
        "streamable-http"
      ],
      "remoteUrl": "https://access.tryterra.co/api/v2/mcp/\u003cuser_id\u003e",
      "packages": [
        {
          "registry": "pypi",
          "name": "terra-python"
        },
        {
          "registry": "npm",
          "name": "terra-api"
        },
        {
          "registry": "npm",
          "name": "@tryterra/cli"
        }
      ],
      "auth": "mixed",
      "authNotes": "A self-serve dashboard account gives a dev-id and one x-api-key per environment, sent as headers to the Unified API and to Terra AI. The key has no scopes and can be rotated. The admin API and admin MCP server take personal access tokens with 26 scopes, lifetimes of 7 to 90 days and optional environment limits. The admin MCP server signs in by OAuth, and risky changes need approval in the dashboard. End users connect each wearable through Terra's widget, and Terra holds the provider tokens.",
      "pricing": "usage",
      "pricingNotes": "Quick Start from $499 a month includes 100,000 credits, then $0.005 a credit to 1,000,000 and $0.003 above. Sign-up asks for a plan and billing details, with a 30-day money-back guarantee and no free tier found. Testing and staging environments allow 50 users each. Enterprise is custom (checked 2026-10-14).",
      "priceSummary": "$499 / mo",
      "where": "hosted",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the docs, the OpenAPI specs or the pricing page (checked 2026-10-14).",
        "endpoints": []
      },
      "toolCount": 6,
      "popularity": {
        "githubStars": null,
        "npmWeekly": 13061,
        "pypiWeekly": 10636,
        "asOf": "2026-10-14"
      },
      "docsUrl": "https://docs.tryterra.co",
      "llmsTxt": "https://docs.tryterra.co/llms.txt",
      "openapi": "https://raw.githubusercontent.com/tryterra/openapi/master/dist/core/v2-bundled.yaml",
      "capabilities": [
        "health.wearables",
        "health.consent",
        "health.fhir"
      ],
      "tags": [
        "hosted",
        "wearables",
        "health-data",
        "mcp",
        "api-key",
        "openapi",
        "llms-txt",
        "webhooks",
        "status-page",
        "python",
        "typescript",
        "soc2",
        "hipaa"
      ],
      "lastRelease": "2026-10-13",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 65.9,
        "grade": "B",
        "agentReady": false,
        "rank": 327,
        "ranked": true,
        "rankOf": 1076,
        "categoryRank": 2,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 78,
          "maintenance": 75,
          "payments": 20,
          "reliability": 67,
          "schema": 89,
          "security": 65,
          "transparency": 56
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-14"
        },
        "negative": 0,
        "verdict": "Graded on the Unified API and the Terra AI MCP server. A public OpenAPI 3.1 spec, llms.txt, per-user rate limits with Retry-After, and scoped admin tokens with approvals. Access starts at $499 a month with billing details at sign-up, the data API key has no scopes, and API key requests failed for 2 hours 38 minutes on 7 August 2026.",
        "bestFor": "A fitness, wellness, insurance or research product whose users connect consumer wearables and apps, and an agent that needs to read one user's sleep, activity or body data through MCP.",
        "strengths": [
          "Public OpenAPI 3.1 specs on GitHub under Apache 2.0, republished almost daily (spec version 2026.10.08.1 for the Unified API)",
          "Rate limits documented per user, with a Retry-After header and an X-Terra-RateLimit-Rule header naming the rule that fired",
          "Terra AI MCP server has six read tools that take explicit fields or select lists, so an agent fetches only the columns it needs",
          "Admin tokens carry 26 scopes, expire within 90 days, can be limited to environments, and risky changes need approval in the dashboard",
          "Credit prices are public, $0.005 a credit from 100,001 to 1,000,000 and $0.003 above, with 200 credits per active user a month"
        ],
        "weaknesses": [
          "No free tier. Sign-up asks for a plan and billing details, and Quick Start starts at $499 a month with a 30-day money-back guarantee",
          "The Unified API key is one environment-wide x-api-key with no scopes, and Terra AI takes the same key",
          "status.tryterra.co shows REST requests failing with authorisation errors for 2 hours 38 minutes on 7 August 2026",
          "No SLA is published outside Enterprise contracts, and no idempotency keys were found for write endpoints",
          "The privacy policy, effective 20 April 2023, excludes end-user wearable data, and no public sub-processor list was found"
        ],
        "agentNotes": [
          "Send dev-id and x-api-key headers on every Unified API and Terra AI call. A missing header returns 401 problem+json",
          "Keep each request window to 1,825 days or less and under 6,000 requested days per user an hour. On 429 with rule r2, wait Retry-After seconds",
          "Pass either fields or select to Terra AI tools, never both and never neither, or the call fails with a validation error",
          "Expect data by webhook after a user connects through the widget session. REST reads are for backfills and on-demand queries",
          "Use the Read only access level for the admin MCP server unless a change is needed. The MCP level can read API keys"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "B",
            "methodology": "0.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 65.9
          }
        ],
        "editorialScores": {
          "ergonomics": 78,
          "maintenance": 75,
          "payments": 20,
          "reliability": 67,
          "schema": 89,
          "security": 65,
          "transparency": 42
        },
        "provenanceScore": 69
      },
      "connect": {
        "claudeCode": "claude mcp add --transport http terra-ai https://access.tryterra.co/api/v2/mcp/\u003cuser_id\u003e --header \"dev-id: \u003cYOUR_DEV_ID\u003e\" --header \"x-api-key: \u003cYOUR_API_KEY\u003e\"",
        "config": {
          "mcpServers": {
            "terra-ai": {
              "headers": {
                "dev-id": "YOUR_DEV_ID",
                "x-api-key": "YOUR_API_KEY"
              },
              "url": "https://access.tryterra.co/api/v2/mcp/\u003cuser_id\u003e"
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/health.wearables",
        "tool": "https://letme.dev/terra"
      },
      "area": "domain-data",
      "unitPrices": [
        {
          "item": "Quick Start plan, 100,000 credits included",
          "unit": "month",
          "usd": 499,
          "note": "From price on tryterra.co/pricing, 2026-10-14"
        },
        {
          "item": "Credit beyond the monthly allowance (100,001 to 1,000,000)",
          "unit": "credit",
          "usd": 0.005,
          "note": "$0.003 above 1,000,000 credits. An active user costs 200 credits a month"
        }
      ],
      "provenance": {
        "legalEntity": "Terra Enabling Developers Inc.",
        "domain": "tryterra.co",
        "domainRegistered": "",
        "endpointOnVendorDomain": true,
        "terms": "https://tryterra.co/terms-of-service",
        "privacy": "https://tryterra.co/privacy",
        "statusPage": "https://status.tryterra.co",
        "changelog": "https://docs.tryterra.co/changelog/2026/readme",
        "securityTxt": "none",
        "checked": "2026-10-14",
        "notes": [
          "The terms of service, last updated 1 May 2026, are between the customer and Terra Enabling Developers Inc., a Delaware corporation. The privacy policy names a UK subsidiary, Terra Enabling Developers Ltd.",
          "The privacy policy (effective 20 April 2023) says it doesn't cover data collected from wearables about end users, and that processing takes place mainly in the United Kingdom.",
          "tryterra.co/.well-known/security.txt returns 404.",
          "RDAP for tryterra.co returned no registration date.",
          "API and MCP endpoints answer at access.tryterra.co, a tryterra.co subdomain."
        ],
        "score": 69
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/terra.json",
      "live": {
        "slug": "terra",
        "probe": {
          "target": "https://access.tryterra.co/api/v2/mcp/\u003cuser_id\u003e",
          "method": "get",
          "lastAt": "2026-10-14T09:42:10.210334836Z",
          "lastOk": true,
          "lastStatus": 401,
          "lastMs": 45,
          "lastNote": "asks for credentials",
          "authRequired": true,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 47,
          "p95ms24h": 126,
          "samples24h": 17,
          "samples30d": 17,
          "days": [
            {
              "date": "2026-10-14",
              "probes": 17,
              "ok": 17
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.tryterra.co",
          "indicator": "unknown",
          "summary": "no machine-readable status found",
          "checkedAt": "2026-10-14T08:54:00.980823971Z"
        },
        "updatedAt": "2026-10-14T09:42:10.210334836Z"
      }
    },
    "facts": [
      {
        "a": "HTTP API",
        "b": "HTTP API",
        "name": "Kind"
      },
      {
        "a": "Medblocks Inc.",
        "b": "Terra Enabling Developers Inc.",
        "name": "Vendor"
      },
      {
        "a": "https://app.medblocks.com/mcp",
        "b": "https://access.tryterra.co/api/v2/mcp/\u003cuser_id\u003e",
        "name": "Hosted endpoint"
      },
      {
        "a": "HTTP, Streamable HTTP",
        "b": "HTTP, Streamable HTTP",
        "name": "Transports"
      },
      {
        "a": "OAuth or key",
        "b": "OAuth or key",
        "name": "Auth"
      },
      {
        "a": "Freemium",
        "b": "Pay per use",
        "name": "Pricing"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "Proprietary service under Medblocks' terms. The medblocks TypeScript SDK on npm carries a proprietary licence that forbids redistribution and reverse engineering. The agent skills repository has no licence file",
        "b": "Proprietary service under Terra's terms of service. The OpenAPI specs repository is Apache 2.0",
        "name": "Licence"
      },
      {
        "a": "10",
        "b": "6",
        "name": "Tools exposed"
      },
      {
        "a": "no",
        "b": "no",
        "name": "Read-only variant documented"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "llms.txt"
      },
      {
        "a": "2026-09-14",
        "b": "2026-10-13",
        "name": "Last release"
      },
      {
        "a": "2026-10-05",
        "b": "2026-05-01",
        "name": "Terms last updated"
      },
      {
        "a": "2026-10-05",
        "b": "2023-04-20",
        "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": "yes",
        "name": "Terms or service can change without notice"
      },
      {
        "a": "not found in the text",
        "b": "yes",
        "name": "Arbitration or class-action waiver"
      },
      {
        "a": "36 npm/wk",
        "b": "13k npm/wk, 11k PyPI/wk",
        "name": "Popularity"
      }
    ],
    "faq": [
      {
        "answer": "Terra API scores 65.9 (B) on agent readiness against Medblocks's 52.7 (D), and leads in 5 of 7 scored categories. Medblocks leads on payments \u0026 pricing.",
        "question": "Which is better for AI agents, Medblocks or Terra API?"
      },
      {
        "answer": "Both take an API key or an OAuth sign-in.",
        "question": "Do Medblocks and Terra API need an API key?"
      },
      {
        "answer": "Yes. Medblocks has a hosted endpoint at https://app.medblocks.com/mcp and Terra API at https://access.tryterra.co/api/v2/mcp/\u003cuser_id\u003e.",
        "question": "Can an agent call Medblocks and Terra API without installing anything?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Payments \u0026 pricing, 25 against 20"
        ],
        "also": null,
        "goodFor": "A consumer or care app, or an assistant, that needs a patient's own records from US hospitals and payers with the patient's consent, and wants an MCP route as well as REST.",
        "slug": "medblocks",
        "watchFor": "No status page, SLA or published rate limits for the Platform API"
      },
      {
        "aheadOn": [
          "Reliability, 67 against 28",
          "Schema \u0026 documentation, 89 against 62",
          "Agent ergonomics, 78 against 72",
          "Maintenance \u0026 community, 75 against 69",
          "Transparency \u0026 trust, 56 against 51"
        ],
        "also": null,
        "goodFor": "A fitness, wellness, insurance or research product whose users connect consumer wearables and apps, and an agent that needs to read one user's sleep, activity or body data through MCP.",
        "slug": "terra",
        "watchFor": "No free tier. Sign-up asks for a plan and billing details, and Quick Start starts at $499 a month with a 30-day money-back guarantee"
      }
    ],
    "job": {
      "capability": "health.consent",
      "name": "Patient consent"
    },
    "others": [
      {
        "json": "https://www.anchorterminal.com/compare/1uphealth-vs-terra.json",
        "title": "1upHealth vs Terra API",
        "url": "https://www.anchorterminal.com/compare/1uphealth-vs-terra"
      },
      {
        "json": "https://www.anchorterminal.com/compare/aidbox-vs-medblocks.json",
        "title": "Aidbox vs Medblocks",
        "url": "https://www.anchorterminal.com/compare/aidbox-vs-medblocks"
      },
      {
        "json": "https://www.anchorterminal.com/compare/aidbox-vs-terra.json",
        "title": "Aidbox vs Terra API",
        "url": "https://www.anchorterminal.com/compare/aidbox-vs-terra"
      },
      {
        "json": "https://www.anchorterminal.com/compare/health-gorilla-vs-terra.json",
        "title": "Health Gorilla vs Terra API",
        "url": "https://www.anchorterminal.com/compare/health-gorilla-vs-terra"
      },
      {
        "json": "https://www.anchorterminal.com/compare/medplum-vs-terra.json",
        "title": "Medplum vs Terra API",
        "url": "https://www.anchorterminal.com/compare/medplum-vs-terra"
      },
      {
        "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-terra.json",
        "title": "Particle Health vs Terra API",
        "url": "https://www.anchorterminal.com/compare/particle-health-vs-terra"
      },
      {
        "json": "https://www.anchorterminal.com/compare/redox-vs-terra.json",
        "title": "Redox vs Terra API",
        "url": "https://www.anchorterminal.com/compare/redox-vs-terra"
      },
      {
        "json": "https://www.anchorterminal.com/compare/1uphealth-vs-medblocks.json",
        "title": "1upHealth vs Medblocks",
        "url": "https://www.anchorterminal.com/compare/1uphealth-vs-medblocks"
      },
      {
        "json": "https://www.anchorterminal.com/compare/health-gorilla-vs-medblocks.json",
        "title": "Health Gorilla vs Medblocks",
        "url": "https://www.anchorterminal.com/compare/health-gorilla-vs-medblocks"
      },
      {
        "json": "https://www.anchorterminal.com/compare/medblocks-vs-medplum.json",
        "title": "Medblocks vs Medplum",
        "url": "https://www.anchorterminal.com/compare/medblocks-vs-medplum"
      },
      {
        "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/medblocks-vs-particle-health.json",
        "title": "Medblocks vs Particle Health",
        "url": "https://www.anchorterminal.com/compare/medblocks-vs-particle-health"
      },
      {
        "json": "https://www.anchorterminal.com/compare/medblocks-vs-redox.json",
        "title": "Medblocks vs Redox",
        "url": "https://www.anchorterminal.com/compare/medblocks-vs-redox"
      },
      {
        "json": "https://www.anchorterminal.com/compare/medblocks-vs-zus-health.json",
        "title": "Medblocks vs Zus Health",
        "url": "https://www.anchorterminal.com/compare/medblocks-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/medblocks-vs-validic.json",
        "title": "Medblocks vs Validic Inform",
        "url": "https://www.anchorterminal.com/compare/medblocks-vs-validic"
      },
      {
        "json": "https://www.anchorterminal.com/compare/terra-vs-zus-health.json",
        "title": "Terra API vs Zus Health",
        "url": "https://www.anchorterminal.com/compare/terra-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/terra-vs-validic.json",
        "title": "Terra API vs Validic Inform",
        "url": "https://www.anchorterminal.com/compare/terra-vs-validic"
      }
    ],
    "scores": [
      {
        "by": 39,
        "edge": "terra",
        "key": "reliability",
        "medblocks": 28,
        "name": "Reliability",
        "terra": 67,
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 27,
        "edge": "terra",
        "key": "schema",
        "medblocks": 62,
        "name": "Schema \u0026 documentation",
        "terra": 89,
        "weight": 13
      },
      {
        "by": 6,
        "edge": "terra",
        "key": "ergonomics",
        "medblocks": 72,
        "name": "Agent ergonomics",
        "terra": 78,
        "weight": 13
      },
      {
        "by": 2,
        "edge": "medblocks",
        "key": "security",
        "medblocks": 67,
        "name": "Security \u0026 auth",
        "terra": 65,
        "weight": 14
      },
      {
        "by": 5,
        "edge": "medblocks",
        "key": "payments",
        "medblocks": 25,
        "name": "Payments \u0026 pricing",
        "terra": 20,
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 6,
        "edge": "terra",
        "key": "maintenance",
        "medblocks": 69,
        "name": "Maintenance \u0026 community",
        "terra": 75,
        "weight": 7
      },
      {
        "by": 5,
        "edge": "terra",
        "key": "transparency",
        "medblocks": 51,
        "name": "Transparency \u0026 trust",
        "terra": 56,
        "weight": 7
      }
    ],
    "summary": "Terra API scores 65.9 (B) on agent readiness against Medblocks's 52.7 (D), and leads in 5 of 7 scored categories. Medblocks leads on payments \u0026 pricing. Both do patient consent.",
    "verdicts": {
      "medblocks": "Patient-authorised record retrieval with a ten-tool remote MCP server, OAuth with per-capability consent, an audit entry for every call and a free plan for 1,000 active patients. No status page, no published rate limits and no idempotency keys were found, and the OpenAPI file behind the reference is not published.",
      "terra": "Graded on the Unified API and the Terra AI MCP server. A public OpenAPI 3.1 spec, llms.txt, per-user rate limits with Retry-After, and scoped admin tokens with approvals. Access starts at $499 a month with billing details at sign-up, the data API key has no scopes, and API key requests failed for 2 hours 38 minutes on 7 August 2026."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/medblocks-vs-terra",
    "json": "https://www.anchorterminal.com/compare/medblocks-vs-terra.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/medblocks-vs-terra.md",
    "slim": "https://www.anchorterminal.com/compare/medblocks-vs-terra.min.md"
  },
  "markdown": "Terra API scores 65.9 (B) on agent readiness against Medblocks's 52.7 (D), and leads in 5 of 7 scored categories. Medblocks leads on payments \u0026 pricing. Both do patient consent.\n\n- Medblocks: grade D, 52.7/100, rank #773 of 1076. Markdown https://www.anchorterminal.com/tools/medblocks.md · JSON https://www.anchorterminal.com/api/v1/tools/medblocks.json\n- Terra API: grade B, 65.9/100, rank #327 of 1076. Markdown https://www.anchorterminal.com/tools/terra.md · JSON https://www.anchorterminal.com/api/v1/tools/terra.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### Medblocks (D)\n\nGood for: A consumer or care app, or an assistant, that needs a patient's own records from US hospitals and payers with the patient's consent, and wants an MCP route as well as REST.\n\nAhead on:\n- Payments \u0026 pricing, 25 against 20\n\nWatch for: No status page, SLA or published rate limits for the Platform API\n\n### Terra API (B)\n\nGood for: A fitness, wellness, insurance or research product whose users connect consumer wearables and apps, and an agent that needs to read one user's sleep, activity or body data through MCP.\n\nAhead on:\n- Reliability, 67 against 28\n- Schema \u0026 documentation, 89 against 62\n- Agent ergonomics, 78 against 72\n- Maintenance \u0026 community, 75 against 69\n- Transparency \u0026 trust, 56 against 51\n\nWatch for: No free tier. Sign-up asks for a plan and billing details, and Quick Start starts at $499 a month with a 30-day money-back guarantee\n\n\n## Score by category\n\n| Category | Weight | Medblocks | Terra API | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 28 | 67 | Terra API +39 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 62 | 89 | Terra API +27 |\n| Agent ergonomics | 13% (16.2 this run) | 72 | 78 | Terra API +6 |\n| Security \u0026 auth | 14% (17.5 this run) | 67 | 65 | Medblocks +2 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 25 | 20 | Medblocks +5 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 69 | 75 | Terra API +6 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 51 | 56 | Terra API +5 |\n| Negative events | ≤15 | 0 | 0 | |\n| **Total** | | **52.7 · D** | **65.9 · B** | |\n\n## Facts side by side\n\n| Fact | Medblocks | Terra API |\n| --- | --- | --- |\n| Kind | HTTP API | HTTP API |\n| Vendor | Medblocks Inc. | Terra Enabling Developers Inc. |\n| Hosted endpoint | `https://app.medblocks.com/mcp` | `https://access.tryterra.co/api/v2/mcp/\u003cuser_id\u003e` |\n| Transports | HTTP, Streamable HTTP | HTTP, Streamable HTTP |\n| Auth | OAuth or key | OAuth or key |\n| Pricing | Freemium | Pay per use |\n| x402 | no | no |\n| Licence | Proprietary service under Medblocks' terms. The medblocks TypeScript SDK on npm carries a proprietary licence that forbids redistribution and reverse engineering. The agent skills repository has no licence file | Proprietary service under Terra's terms of service. The OpenAPI specs repository is Apache 2.0 |\n| Tools exposed | 10 | 6 |\n| Read-only variant documented | no | no |\n| llms.txt | yes | yes |\n| Last release | 2026-09-14 | 2026-10-13 |\n| Terms last updated | 2026-10-05 | 2026-05-01 |\n| Privacy policy last updated | 2026-10-05 | 2023-04-20 |\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 | yes |\n| Arbitration or class-action waiver | not found in the text | yes |\n| Popularity | 36 npm/wk | 13k npm/wk, 11k PyPI/wk |\n\n## Verdicts\n\n**Medblocks.** Patient-authorised record retrieval with a ten-tool remote MCP server, OAuth with per-capability consent, an audit entry for every call and a free plan for 1,000 active patients. No status page, no published rate limits and no idempotency keys were found, and the OpenAPI file behind the reference is not published.\n\n**Terra API.** Graded on the Unified API and the Terra AI MCP server. A public OpenAPI 3.1 spec, llms.txt, per-user rate limits with Retry-After, and scoped admin tokens with approvals. Access starts at $499 a month with billing details at sign-up, the data API key has no scopes, and API key requests failed for 2 hours 38 minutes on 7 August 2026.\n\n## Before you call either\n\n### Medblocks\n\n1. Connect with `claude mcp add --transport http medblocks https://app.medblocks.com/mcp` and sign in, or send a workspace API key as a Bearer token from a backend\n2. Ask the person before calling `disconnect_health_system` or `delete_person`. Both are permanent\n3. Wait for the connection webhook or check connection status before reading records. Pulls run in the background after the patient approves\n4. Branch on `error.code`, not the message, and wait the `Retry-After` seconds on a 429\n5. Use a Sandbox workspace and the Synthetic Hospital (password `demopass`) for tests. Sandbox keys cannot reach production sources\n\n### Terra API\n\n1. Send dev-id and x-api-key headers on every Unified API and Terra AI call. A missing header returns 401 problem+json\n2. Keep each request window to 1,825 days or less and under 6,000 requested days per user an hour. On 429 with rule r2, wait Retry-After seconds\n3. Pass either fields or select to Terra AI tools, never both and never neither, or the call fails with a validation error\n4. Expect data by webhook after a user connects through the widget session. REST reads are for backfills and on-demand queries\n5. Use the Read only access level for the admin MCP server unless a change is needed. The MCP level can read API keys\n\n## Questions\n\n### Which is better for AI agents, Medblocks or Terra API?\n\nTerra API scores 65.9 (B) on agent readiness against Medblocks's 52.7 (D), and leads in 5 of 7 scored categories. Medblocks leads on payments \u0026 pricing.\n\n### Do Medblocks and Terra API need an API key?\n\nBoth take an API key or an OAuth sign-in.\n\n### Can an agent call Medblocks and Terra API without installing anything?\n\nYes. Medblocks has a hosted endpoint at https://app.medblocks.com/mcp and Terra API at https://access.tryterra.co/api/v2/mcp/\u003cuser_id\u003e.\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/medblocks-vs-terra.json, and with the fewest tokens: https://www.anchorterminal.com/compare/medblocks-vs-terra.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"medblocks\", \"b\": \"terra\"}`. From a terminal: `anchor compare medblocks terra`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/medblocks.json and https://www.anchorterminal.com/api/v1/tools/terra.json\n\n## Other comparisons with Medblocks or Terra API\n\n- [1upHealth vs Terra API](https://www.anchorterminal.com/compare/1uphealth-vs-terra.md)\n- [Aidbox vs Medblocks](https://www.anchorterminal.com/compare/aidbox-vs-medblocks.md)\n- [Aidbox vs Terra API](https://www.anchorterminal.com/compare/aidbox-vs-terra.md)\n- [Health Gorilla vs Terra API](https://www.anchorterminal.com/compare/health-gorilla-vs-terra.md)\n- [Medplum vs Terra API](https://www.anchorterminal.com/compare/medplum-vs-terra.md)\n- [Metriport Medical API vs Terra API](https://www.anchorterminal.com/compare/metriport-vs-terra.md)\n- [Particle Health vs Terra API](https://www.anchorterminal.com/compare/particle-health-vs-terra.md)\n- [Redox vs Terra API](https://www.anchorterminal.com/compare/redox-vs-terra.md)\n- [1upHealth vs Medblocks](https://www.anchorterminal.com/compare/1uphealth-vs-medblocks.md)\n- [Health Gorilla vs Medblocks](https://www.anchorterminal.com/compare/health-gorilla-vs-medblocks.md)\n- [Medblocks vs Medplum](https://www.anchorterminal.com/compare/medblocks-vs-medplum.md)\n- [Medblocks vs Metriport Medical API](https://www.anchorterminal.com/compare/medblocks-vs-metriport.md)\n- [Medblocks vs Particle Health](https://www.anchorterminal.com/compare/medblocks-vs-particle-health.md)\n- [Medblocks vs Redox](https://www.anchorterminal.com/compare/medblocks-vs-redox.md)\n- [Medblocks vs Zus Health](https://www.anchorterminal.com/compare/medblocks-vs-zus-health.md)\n- [Medblocks vs ROOK](https://www.anchorterminal.com/compare/medblocks-vs-rook.md)\n- [Medblocks vs Validic Inform](https://www.anchorterminal.com/compare/medblocks-vs-validic.md)\n- [Terra API vs Zus Health](https://www.anchorterminal.com/compare/terra-vs-zus-health.md)\n- [ROOK vs Terra API](https://www.anchorterminal.com/compare/rook-vs-terra.md)\n- [Terra API vs Validic Inform](https://www.anchorterminal.com/compare/terra-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": "Medblocks vs Terra API",
        "url": ""
      }
    ],
    "description": "Terra scores 65.9 (B) to Medblocks's 52.7 (D) for patient consent. Prices, MCP, x402, uptime and agent notes side by side.",
    "facts": [
      "Medblocks D 52.7",
      "Terra API B 65.9",
      "scores"
    ],
    "h1": "Medblocks vs Terra API",
    "image": "https://www.anchorterminal.com/assets/og/compare-medblocks-vs-terra.png",
    "path": "/compare/medblocks-vs-terra",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Medblocks vs Terra for AI agents in 2026: scores and prices",
    "toc": null,
    "updated": "2026-10-14",
    "url": "https://www.anchorterminal.com/compare/medblocks-vs-terra"
  },
  "tokens": {
    "markdown": 2350,
    "slim": 680
  },
  "version": 1
}
