Medblocks · Authentication Profile

Medblocks Authentication

Authentication

Medblocks secures its APIs with http, oauth2, and openIdConnect across 3 declared security schemes, as derived from its OpenAPI definitions.

HealthHealthcareFHIRopenEHRInteroperabilityElectronic Health RecordsPatient AccessHealth DataSMART on FHIRWebhooksModel Context ProtocolCompany
Methods: http, oauth2, openIdConnect Schemes: 3 OAuth flows: API key in:

Security Schemes

BearerAuth http
scheme: bearer
MedblocksOAuth oauth2
· flows:
MedblocksOIDC openIdConnect

Source

Authentication Profile

Raw ↑
generated: '2026-09-02'
method: searched
source: >-
  https://medblocks.com/docs/mcp, https://medblocks.com/docs/security-and-compliance,
  https://medblocks.com/docs/sandboxes, https://medblocks.com/docs/reference/errors,
  https://app.medblocks.com/.well-known/oauth-authorization-server,
  openapi/medblocks-platform-openapi.json
summary:
  types:
  - http
  - oauth2
  - openIdConnect
  note: >-
    Two distinct authentication surfaces. The REST Medblocks Platform API is bearer API key
    only — that is the single securityScheme in the contract, applied globally. The hosted MCP
    server at https://app.medblocks.com/mcp additionally accepts OAuth 2.1 / OIDC with a
    consent screen, and will also accept the same mb_sk_ key as a bearer token for
    non-interactive developer clients.
schemes:
- name: BearerAuth
  type: http
  scheme: bearer
  bearerFormat: API key (mb_sk_live_...)
  description: Medblocks API key for server-side requests.
  applies_to: medblocks-platform-api
  global: true
  sources:
  - openapi/medblocks-platform-openapi.json
  key_prefixes:
  - prefix: mb_sk_live_
    environment: production
  - prefix: mb_sk_sbx_
    environment: sandbox
    note: minted by a Sandbox workspace; only sees sandbox-scoped sources
  - prefix: mb_sk_
    environment: any
    note: >-
      The MCP docs and the provider's own agent skill refer to the key generically as mb_sk_;
      live and sandbox are the two documented environment suffixes.
  provisioning: Dashboard > Settings > API Keys
  workspace_binding: >-
    A key is bound to the workspace that minted it and cannot switch workspaces.
  failure_codes:
  - {status: 401, code: missing_api_key, meaning: Authorization header is missing}
  - {status: 401, code: invalid_api_key, meaning: API key is invalid}
  - {status: 401, code: expired_api_key, meaning: API key is expired}
  - {status: 403, code: insufficient_scope, meaning: API key lacks the required scope}
  - {status: 429, code: api_key_limit_exceeded, meaning: organization has reached its active API key cap}
- name: MedblocksOAuth
  type: oauth2
  applies_to: mcp
  flows:
    authorizationCode:
      authorizationUrl: https://app.medblocks.com/api/auth/oauth2/authorize
      tokenUrl: https://app.medblocks.com/api/auth/oauth2/token
      refreshUrl: https://app.medblocks.com/api/auth/oauth2/token
      pkce: S256
  additional_grants: [client_credentials, refresh_token]
  dynamic_client_registration: https://app.medblocks.com/api/auth/oauth2/register
  scopes_artifact: scopes/medblocks-scopes.yml
  sources:
  - https://app.medblocks.com/.well-known/oauth-authorization-server
  note: >-
    Not declared in the OpenAPI document. Discovered from the provider's RFC 8414 metadata and
    the RFC 9728 challenge the MCP endpoint returns.
- name: MedblocksOIDC
  type: openIdConnect
  openIdConnectUrl: https://app.medblocks.com/.well-known/openid-configuration
  applies_to: mcp
  id_token_signing_alg: [EdDSA]
  claims: [sub, iss, aud, exp, iat, sid, scope, azp, email, email_verified, name, picture, family_name, given_name]
  sources:
  - https://app.medblocks.com/.well-known/openid-configuration
upstream_authentication:
  note: >-
    Distinct from calling Medblocks. Medblocks itself authenticates to the EHRs and payers on
    the customer's behalf. Patient-mediated sources use per-patient OAuth against the source's
    portal; backend/bulk sources use SMART Backend Services with a customer-supplied private
    key. Source client secrets and SMART private keys are configured server-side in Medblocks
    under Configure connections, never in browser code.
  docs: https://medblocks.com/docs/configure-connections
secret_handling:
  rules:
  - Keep MEDBLOCKS_API_KEY server-side only; the frontend calls your backend and your backend calls Medblocks.
  - Never place an API key in a URL, prompt, tool argument, browser bundle or log.
  - Webhook signing secrets, source client secrets, SMART private keys and export-destination credentials are all server-side secrets.
  - Do not log API keys, webhook secrets, bearer tokens, access tokens, or full FHIR resources.
  docs: https://medblocks.com/docs/security-and-compliance
revocation:
  api_key: Rotate or revoke from Dashboard > Settings > API Keys.
  oauth: >-
    Dashboard > Settings > MCP server revokes an AI assistant's access; already-issued access
    expires within an hour.
  webhook_secret: POST /webhooks/{id}/rotate-secret (api.rotateWebhookSecret).

Work with this as data

Every security artifact 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 security posture

4 MCP tools reach this
  • find_securityBrowse and filter every security artifact 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 security artifact
curl "https://apis.io/api/v1/security/medblocks-authentication"
All security posture
curl "https://apis.io/api/v1/security?limit=25"

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

Get an API key

Free tier, no email required.

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