Production access is free and self-serve with an account. · Synthetic demo · no account needed

FinchNode

Demo

Public Demo API: synthetic EHR records with no account or API key.

Twelve named synthetic scenarios from two synthetic sources, with no account or API key.

Give an agent or developer one URL. The accountless demo serves twelve named synthetic scenarios from two synthetic sources, Northstar Health System and Quillhaven Medical Group, as platform-shaped records, FHIR R4 resources, a simulated Connect flow, and an MCP endpoint.

What it is

Built for: Agents and developers building prototypes, tutorials, and automated tests before creating an account.

Base URL: https://api.finchnode.com/demo/v1

Authentication: No account, API key, OAuth flow, or billing method is required, and a GET request works immediately. Every response is synthetic.

At a glance

Status
Available
Auth
None
Contract
OpenAPI 3.1
Public demo MCP endpoint (no key, synthetic)
https://api.finchnode.com/demo/mcp

Documents for this product

Try it in 30 seconds

Read a synthetic health record

curl 'https://api.finchnode.com/demo/v1/users/patient-demo-001/records?categories=demographics,labs,medications'

No account or key. patient-demo-001 is the baseline-adult scenario; https://api.finchnode.com/demo/v1/scenarios lists all twelve.

Expected response: 200 with a platform-shaped synthetic health_record (meta.schemaVersion 2) whose consent and sync metadata are explicitly simulated, with X-FinchNode-Data: synthetic and RateLimit-* response headers.

Synthetic data only. Not for clinical use.

For coding agents

Three ways in for a coding agent: connect the MCP endpoint below, load the OpenAPI document (https://finchnode.com/demo-openapi.json), or fetch this page as markdown (https://finchnode.com/products/demo-api.md). https://finchnode.com/llms.txt lists every product’s markdown twin.

Public demo MCP endpoint (no key, synthetic)

MCP endpoint
https://api.finchnode.com/demo/mcp
Transport
Streamable HTTP (JSON-RPC over POST)
Auth
None
Clients
ChatGPT, Codex, Claude, and other MCP clients, with no key
MCP Registry name
com.finchnode/health-records-demo

Tools at https://api.finchnode.com/demo/mcp

  • list_demo_scenarios
  • get_demo_health_record
  • get_demo_record
  • get_demo_fhir_bundle
  • search_demo_fhir
  • simulate_demo_connect
  • get_demo_demographics
  • get_demo_medications
  • get_demo_conditions
  • get_demo_labs
  • get_demo_vitals
  • get_demo_allergies
  • get_demo_immunizations
  • get_demo_encounters

Claude Code

claude mcp add --transport http finchnode-demo https://api.finchnode.com/demo/mcp

Codex CLI

codex mcp add finchnode-demo --url https://api.finchnode.com/demo/mcp

Cursor (.cursor/mcp.json)

{
  "mcpServers": {
    "finchnode-demo": {
      "url": "https://api.finchnode.com/demo/mcp"
    }
  }
}

Claude.ai

  • Where your plan offers custom connectors: on a Free, Pro, or Max plan, open Customize > Connectors, click Add custom connector, enter https://api.finchnode.com/demo/mcp as the remote MCP server URL, and click Add. If the dialog asks how people connect, choose No sign-in: the demo takes no key. Turn the connector on for a chat from the + button, under Connectors.
  • Where your plan offers custom connectors: on a Team or Enterprise plan, an Owner adds https://api.finchnode.com/demo/mcp under Organization settings > Connectors (Add, then Custom, then Web if asked), and each member clicks Connect on it under Customize > Connectors.

ChatGPT

  • Where your plan offers custom connectors: turn on Developer mode under Settings > Security and login, then open ChatGPT Plugins (chatgpt.com/plugins), select the plus button, and create a developer-mode app for the remote MCP server https://api.finchnode.com/demo/mcp with no authentication.
  • Where your plan offers custom connectors: in a conversation, choose Developer mode from the Plus menu and select the app you created for https://api.finchnode.com/demo/mcp.

Machine-readable resources

How it works

  1. Pick a scenario

    Six record scenarios, four behavior scenarios, and two Connect session outcomes, each with its links, such as patient, records, healthRecord, fhirBundle, fhirSearch, and connect. The exercises and controls fields describe the authenticated sandbox; the accountless demo lists them for reference only and cannot perform them.

    curl https://api.finchnode.com/demo/v1/scenarios
  2. Read a platform-shaped record

    The /users/{subject}/records route returns the normalized clinical data shape of the authenticated API, with consent and sync explicitly simulated. The legacy /patients/{patientId}/records route returns category-grouped FHIR resources in a different shape.

    curl 'https://api.finchnode.com/demo/v1/users/patient-demo-polypharmacy/records?categories=medications,conditions'
  3. Exercise an error path

    Behavior subjects answer with the production error codes: consent-revoked with 410 consent_inactive, consent-partial with 403 consent_scope_exceeded for categories outside its receipt, and rate-limited with 429 rate_limited and Retry-After in alternating time slots (the demo OpenAPI document gives the slot length). Their record-route responses carry Cache-Control: no-store and X-FinchNode-Scenario.

    curl -i 'https://api.finchnode.com/demo/v1/users/patient-demo-consent-revoked/records'
  4. Query FHIR R4 resources

    Search one resource type as a FHIR searchset Bundle, optionally for one scenario subject, or read a whole scenario Bundle.

    curl 'https://api.finchnode.com/demo/v1/fhir/Observation?patient=patient-demo-001'
  5. Simulate a Connect result

    The POST response is non-persistent. Add an optional scenario to the body: connect-cancelled and connect-failed end the session cancelled or failed.

    curl -X POST https://api.finchnode.com/demo/v1/connect/sessions -H 'Content-Type: application/json' -d '{"external_user_id":"prototype-user-1","categories":["demographics","labs","medications"]}'

Reference

Endpoints
MethodPathOpenAPI operationId
GEThttps://api.finchnode.com/demo/v1/getDemoIndex
GEThttps://api.finchnode.com/demo/v1/healthgetDemoHealth
GEThttps://api.finchnode.com/demo/v1/providerslistDemoProviders
GEThttps://api.finchnode.com/demo/v1/scenarioslistDemoScenarios
GEThttps://api.finchnode.com/demo/v1/scenarios/{scenarioId}getDemoScenario
POSThttps://api.finchnode.com/demo/v1/connect/sessionscreateDemoConnectSession
GEThttps://api.finchnode.com/demo/v1/patientslistDemoPatients
GEThttps://api.finchnode.com/demo/v1/patients/{patientId}getDemoPatient
GEThttps://api.finchnode.com/demo/v1/patients/{patientId}/recordsgetDemoPatientRecords
GEThttps://api.finchnode.com/demo/v1/users/{subject}/recordsgetDemoHealthRecord
GEThttps://api.finchnode.com/demo/v1/fhir/metadatagetDemoCapabilityStatement
GEThttps://api.finchnode.com/demo/v1/fhir/{resourceType}searchDemoFhirResources
GEThttps://api.finchnode.com/demo/v1/fhir/{resourceType}/{resourceId}readDemoFhirResource

What it does not do

  • Synthetic data only: it never accesses production records, real patient accounts, credentials, or vendor sandboxes, and it is not for clinical use.
  • Writes are unsupported and Connect sessions are simulated; the REST and MCP services may be reset.
  • It is rate limited: the default is 120 requests per minute per IP and running API instance, and behavior-scenario requests are charged to their own per-IP bucket. Follow the RateLimit-Limit, RateLimit-Remaining, RateLimit-Reset, and Retry-After headers.
  • Do not assume shape parity on the legacy /patients/{patientId}/records route: it returns category-grouped FHIR resources that differ from the authenticated envelope.
  • It cannot access real patient data. With a FinchNode account, developers get free, self-serve production access to real, patient-authorized records.

Frequently asked questions

Do I need an account or API key?

No. No account, API key, OAuth flow, or billing method is required. The route is read-only, CORS-enabled, and rate limited, so a browser prototype can call it without a proxy.

Which synthetic scenarios can I use?

Record scenarios: baseline-adult (patient-demo-001), polypharmacy-senior, pediatric-asthma, multi-source-overlap, sparse-record, and messy-coding. Behavior scenarios: rate-limited, consent-revoked, consent-partial, and source-unavailable. Session scenarios: connect-cancelled and connect-failed. GET /demo/v1/scenarios describes each one, and list_demo_scenarios returns the same list over MCP. Every scenario is fictional.

Is FinchNode only a synthetic demo or sandbox?

No. With a FinchNode account, developers get free, self-serve production access to real, patient-authorized records. The public demo cannot access real patient data; real requests require a live key, current patient authorization, and available sources.

How do the error scenarios behave?

consent-revoked answers 410 consent_inactive, consent-partial answers 403 consent_scope_exceeded for categories outside its receipt, and rate-limited answers 429 rate_limited with Retry-After in alternating time slots, whose length the demo OpenAPI document gives. Their record-route responses carry Cache-Control: no-store.