# FHIR proof of concept in a free sandbox

> Run a FHIR R4 proof of concept the same afternoon: what to demonstrate, a free sandbox with 30 synthetic patients, the first calls, limits, and rules for clinical and pharma pilots.

Source: https://developers.anpheros.com/guides/fhir-proof-of-concept

**A FHIR proof of concept shows, with real API calls, that your product can store, read and share patient data in HL7 FHIR R4 — before anyone commits to infrastructure, contracts or real patients.** The fastest way to run one is against a managed FHIR server that already has realistic test patients. An Anpheros sandbox is free, takes one click, starts with 30 synthetic patients and is physically separate from production, so a pilot for a clinic, a pharmaceutical team or an investor demo can begin the same afternoon.

<!-- visual:poc-stats -->

## What a convincing proof of concept shows

| Question the pilot must answer | What to demonstrate | Where in Anpheros |
|---|---|---|
| Can we read a patient's history? | A timeline or an International Patient Summary for a synthetic patient | `/v1/patients/{id}/timeline`, `Patient/$summary` |
| Can we write our own data? | Create a patient, add a reading, import a lab report | REST v1, FHIR API, lab connector |
| Is the data standard? | Valid FHIR R4 with LOINC, ICD-10, ATC codes | Every resource; check with the [FHIR validator](https://developers.anpheros.com/tools/fhir-validator) |
| Can a patient control access? | The OAuth consent screen, then a revoked token failing | OAuth 2.1 + SMART on FHIR scopes |
| Can our systems react? | A webhook arriving at your server when data changes | Signed webhooks |
| Can AI use it safely? | A context with provenance labels inside a token budget | `POST /v1/context`, MCP server |

## The plan

<!-- visual:poc-steps -->

Minute one, after pressing **Get a sandbox key** in the dashboard:

```bash
export ANPHEROS_KEY=sk_test_...        # shown once in the dashboard
curl -s -H "Authorization: Bearer $ANPHEROS_KEY" "https://platform.anpheros.com/v1/patients?limit=3"
```

The first hour, with the TypeScript SDK:

```ts
import { Anpheros, apiKey } from '@anpheros/sdk';

const anpheros = new Anpheros({ auth: apiKey(process.env.ANPHEROS_KEY!) });
const { data: [first] } = await anpheros.patients.list({ limit: 1 });
const history = await anpheros.timeline.list(first.id, { limit: 20 });
console.log(history.data.map((i) => `${i.date} ${i.title}`));
```

When the pilot is over, **reset** the sandbox from the dashboard: the 30 synthetic patients return to their original state and your test data is gone.

## Sandbox limits

| Limit | Value |
|---|---|
| Price | Free, no card |
| Synthetic patients | 30 per project, with about six months of conditions, medications, labs and vitals |
| Your own patients | 500 per project |
| Resource writes | 10,000 per project per day (the synthetic patients and their reset do not count) |
| Documents | 250 MB per project |
| Sandbox projects | 5 per organisation |

Production is a separate database for verified organisations with a signed data processing agreement; plans start at €49 a month, with the first month free.

## Proofs of concept in regulated settings

- **Use synthetic data only.** The sandbox is meant for invented patients; a sandbox key physically cannot reach real ones. Real patient data belongs in production under a data processing agreement.
- **For pharmaceutical and research teams:** a sandbox shows the data model and the consent flow. Anpheros is not a clinical trial system, and research use of real records needs its own legal basis and agreements.
- **For clinics:** show the integration with your own systems using synthetic patients first; the [clinic integration guide](https://developers.anpheros.com/guides/integrate-clinic-systems-fhir) covers matching by record number and writing on behalf of an organisation.

## Frequently asked questions

### Is there a free FHIR server for a proof of concept?
Yes. An Anpheros sandbox is a managed FHIR R4 server, free and without a card, with 30 synthetic patients per project and room for 500 of your own.

### How long does it take to start?
Signing in with Google and pressing Get a sandbox key creates an organisation, a sandbox project and an API key in one step. The first API call can follow a minute later.

### Can I use real patient data in the sandbox?
No. The sandbox is for synthetic data. Real patients go to production, which is a separate database and requires a signed data processing agreement.

### What happens to my proof of concept when we go live?
The code stays the same: production uses the same API with an `sk_live_` key. Data does not move from sandbox to production; production starts empty.

### Can I show patient consent in a demo?
Yes. The OAuth consent flow works in the sandbox, so you can show the consent screen, the access log and a revoked token.

<!-- visual:cta-poc -->

## Related

- [Free FHIR database and sandbox](https://developers.anpheros.com/guides/free-fhir-database)
- [Synthetic patient data for testing](https://developers.anpheros.com/guides/synthetic-patient-data)
- [Getting started](https://developers.anpheros.com/guides/getting-started)
- [Patient consent platform for health apps](https://developers.anpheros.com/guides/patient-consent-platform)
- [Limits](https://developers.anpheros.com/guides/limits)
- [Pricing](https://developers.anpheros.com/guides/pricing)
