# Products built for developers and the agents they work with.

Canonical URL: https://finchnode.com/products

Hosted Connect, the Records API, the Consent Ledger, MCP endpoints, the accountless demo, the Scenario Sandbox, and the Conformance Suite, each with a first request, agent setup, reference tables, and boundaries.

## Available now

**Set FINCHNODE_API_KEY once in the shell that runs these commands or starts your agent client (replace ck_test_... with your sandbox key; it is the only key value to substitute)**

```bash
export FINCHNODE_API_KEY=ck_test_...
```

In the first requests below, SUBJECT is an app-scoped subject ID, which a completed Connect session exposes and GET /users lists; RECEIPT_ID is a consent receipt ID, found in record responses (consent.receiptIds) and in webhook events. Each product page says more.

### [Hosted Connect](https://finchnode.com/products/hosted-connect.md)

One hosted link takes a patient from provider search to a signed consent receipt.

- Page: https://finchnode.com/products/hosted-connect
- Status: Available
- Base URL: https://api.finchnode.com/api/v1
- Auth: Sandbox or live API key
- OpenAPI: https://finchnode.com/openapi.yaml
- Authenticated MCP endpoint (API key): `https://api.finchnode.com/api/mcp`

**First request: Create a sandbox Connect session**

```bash
curl -X POST https://api.finchnode.com/api/v1/connect/sessions -H "Authorization: Bearer $FINCHNODE_API_KEY" -H "Idempotency-Key: <a fresh UUID>" -H "Content-Type: application/json" -d '{"returnUrl":"http://localhost:3000/return"}'
```

### [Records API](https://finchnode.com/products/records-api.md)

Consent-filtered, normalized health records with stable IDs, cursor pages, and a change feed.

- Page: https://finchnode.com/products/records-api
- Status: Available
- Base URL: https://api.finchnode.com/api/v1
- Auth: Sandbox or live API key
- OpenAPI: https://finchnode.com/openapi.yaml
- Authenticated MCP endpoint (API key): `https://api.finchnode.com/api/mcp`

**First request: Read a consent-filtered snapshot**

```bash
curl "https://api.finchnode.com/api/v1/users/$SUBJECT/records?categories=medications,labs" -H "Authorization: Bearer $FINCHNODE_API_KEY"
```

### [Consent Ledger and Webhooks](https://finchnode.com/products/consent-ledger.md)

Versioned consent receipts and signed, retryable webhooks for every grant, revocation, and sync.

- Page: https://finchnode.com/products/consent-ledger
- Status: Available
- Base URL: https://api.finchnode.com/api/v1
- Auth: Sandbox or live API key
- OpenAPI: https://finchnode.com/openapi.yaml
- Authenticated MCP endpoint (API key): `https://api.finchnode.com/api/mcp`

**First request: Fetch a consent receipt**

```bash
curl https://api.finchnode.com/api/v1/consents/$RECEIPT_ID -H "Authorization: Bearer $FINCHNODE_API_KEY"
```

### [MCP for Agents](https://finchnode.com/products/mcp.md)

Two Streamable HTTP MCP endpoints: a keyless synthetic demo and your consented records.

- Page: https://finchnode.com/products/mcp
- Status: Available
- Base URL: https://api.finchnode.com/demo/mcp (public demo, no key) and https://api.finchnode.com/api/mcp (authenticated, API key)
- Auth: None for the demo endpoint; API key for the authenticated endpoint
- OpenAPI: https://finchnode.com/openapi.yaml
- OpenAPI: https://finchnode.com/demo-openapi.json
- Public demo MCP endpoint (no key, synthetic): `https://api.finchnode.com/demo/mcp`
- Authenticated MCP endpoint (API key): `https://api.finchnode.com/api/mcp`

**First request: List the demo MCP tools**

```bash
curl -X POST https://api.finchnode.com/demo/mcp -H "Content-Type: application/json" -H "Accept: application/json, text/event-stream" -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'
```

### [Public Demo API](https://finchnode.com/products/demo-api.md)

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

- Page: https://finchnode.com/products/demo-api
- Status: Available
- Base URL: https://api.finchnode.com/demo/v1
- Auth: None
- OpenAPI: https://finchnode.com/demo-openapi.json
- Public demo MCP endpoint (no key, synthetic): `https://api.finchnode.com/demo/mcp`

**First request: Read a synthetic health record**

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

### [Scenario Sandbox](https://finchnode.com/products/scenario-sandbox.md)

Named synthetic patients and deterministic failure cases, on the public demo and inside your sandbox.

- Page: https://finchnode.com/products/scenario-sandbox
- Status: Available
- Base URL: https://api.finchnode.com/demo/v1 (public demo, no key) and https://api.finchnode.com/api/v1 (simulation and controls, sandbox key)
- Auth: None for the demo scenarios; sandbox key for simulation and controls
- OpenAPI: https://finchnode.com/openapi.yaml
- OpenAPI: https://finchnode.com/demo-openapi.json
- Public demo MCP endpoint (no key, synthetic): `https://api.finchnode.com/demo/mcp`
- Authenticated MCP endpoint (API key): `https://api.finchnode.com/api/mcp`

**First request: List the named synthetic scenarios**

```bash
curl https://api.finchnode.com/demo/v1/scenarios
```

### [Conformance Suite](https://finchnode.com/products/conformance-suite.md)

A scripted run that grades how your sandbox app handles consent, pagination, rate limits, and webhooks.

- Page: https://finchnode.com/products/conformance-suite
- Status: Available
- Base URL: https://api.finchnode.com/api/v1
- Auth: Sandbox key on a sandbox application
- OpenAPI: https://finchnode.com/openapi.yaml
- Authenticated MCP endpoint (API key): `https://api.finchnode.com/api/mcp`

**First request: Start a conformance run**

```bash
curl -X POST https://api.finchnode.com/api/v1/conformance/runs -H "Authorization: Bearer $FINCHNODE_API_KEY" -H "Content-Type: application/json" -d '{"scenario":"polypharmacy-senior"}'
```

## For coding agents

**Machine-readable resources**

- [This index as markdown](https://finchnode.com/products.md)
- [llms.txt: every FinchNode product and guide for agents](https://finchnode.com/llms.txt)
- [OpenAPI 3.1: https://finchnode.com/openapi.yaml](https://finchnode.com/openapi.yaml)
- [OpenAPI 3.1: https://finchnode.com/demo-openapi.json](https://finchnode.com/demo-openapi.json)
- [Create a free account to get sandbox keys](https://finchnode.com/signup)

**MCP endpoints (Streamable HTTP, JSON-RPC over POST only)**

- **Public demo MCP endpoint (no key, synthetic):** `https://api.finchnode.com/demo/mcp`
- **Authenticated MCP endpoint (API key):** `https://api.finchnode.com/api/mcp`
