Direct answer: at Azure Health Data Services public list prices on 11 November 2026 (eastus, USD, excluding tax and discounts), the core FHIR meters are: Structured Storage $0.39/GB/month (first 1 GB/month free), BLOB Storage $0.023/GB/month (first 1 GB free), API Requests $0.54/100,000 (first 50,000 free), FHIR Transformations $1.14/GB (first 0.5 GB free), Structured De-identification $1.14/GB (first 0.5 GB free), Unstructured De-identification $0.05/MB (first 50 MB free), Export batch from $0.19/GB, and Events $0.59/million (first 100,000 free). For 100 GB structured storage + 10M API requests + 100 GB FHIR transformation: $38.61 + $53.73 + $113.43 = $205.77/month; 1 TB + 100M API + 1 TB transformation = $2,105.49/month. The budget risks are clinical data volume, API polling/batch operations, de-identification and repeated transformations.
This guide is for healthcare IT, data platform, integration architects, finance and procurement building FHIR interoperability/health data platforms, comparing Azure Health Data Services with a self-hosted FHIR server, or budgeting storage/API/transformation. It separates official prices, editorial calculations and exclusions, covering free allowances, storage/API/transformation/de-identification/export/events, monthly TCO, hidden costs and a 90-day checklist. Prices come from the Health Data Services pricing page and Microsoft Learn FHIR/service overviews (11 November 2026). This is not procurement or medical-compliance advice.
(1) Storage, API, transformation, de-identification, export and events bill separately; monthly free allowances include 1 GB storage, 50K API calls, 0.5 GB transformation/structured de-id, 50 MB unstructured de-id, 1 GB export and 100K events. (2) Storage counts ingested data + indexes; DICOM pays both Structured and BLOB storage. (3) De-identification is expensive: unstructured $0.05/MB (about $50/GB), so 100 GB is about $5,117; structured de-id is $1.14/GB. API 500+/429 and initial import are not billed.
Meters and free allowances
HDS is usage-based PaaS: storage per GB/month of ingested data and indexes; API Requests per 100,000; FHIR Transformations and Structured De-identification per GB; Unstructured De-identification per MB; Export batch per GB; Events per million. Monthly free allowances: 1 GB storage, 50K API calls, 0.5 GB FHIR transformation, 0.5 GB structured de-id, 50 MB unstructured de-id, 1 GB export, 100K events. Microsoft also states: API responses 500+ or 429 are not billed; initial mode import is not billed; in a Batch, successful operations bill, while a Transaction bills as a whole.
| Meter | Price | Free/month | Note |
|---|---|---|---|
| Structured Storage | $0.39/GB | 1 GB | Ingested data + indexes |
| BLOB Storage | $0.023/GB | 1 GB | DICOM images etc. |
| API Requests | $0.54/100K | 50K | 500+/429 not billed |
| FHIR Transformations | $1.14/GB | 0.5 GB | Transformation operations |
| Structured De-identification | $1.14/GB | 0.5 GB | Structured de-id |
| Unstructured De-identification | $0.05/MB | 50 MB | Unstructured de-id |
| Export batch | From $0.19/GB | 1 GB | Bulk export |
| Events | $0.59/million | 100K | Events |
Source: Health Data Services pricing page (eastus, 11 November 2026). USD; excludes tax/discounts; allowances monthly; Batch/Transaction billing follows the official notes.
Storage: 10 GB / 100 GB / 1 TB
Structured Storage is free for the first 1 GB/month, then $0.39/GB: 10 GB = 9×0.39 = $3.51/month; 100 GB = 99×0.39 = $38.61; 1 TB (1,024 GB) = 1,023×0.39 = $398.97. BLOB Storage is cheaper ($0.023/GB): 100 GB = $2.28, 1 TB = $23.53; DICOM pays both Structured (metadata) and BLOB (images). FHIR resources mainly use Structured; images/large objects use BLOB.
| Capacity | Structured/month | BLOB/month | Note |
|---|---|---|---|
| 10 GB | $3.51 | $0.21 | First 1 GB free |
| 100 GB | $38.61 | $2.28 | FHIR resources/indexes |
| 1 TB (1,024 GB) | $398.97 | $23.53 | DICOM pays both |
| 10 TB (10,240 GB) | $3,993.21 | $235.50 | Tier long-term archives |
Editorial calculation: (capacity−1 GB)×price; 1 TB=1,024 GB; excludes requests/transformation/export/events, tax/discounts; DICOM pays Structured+BLOB.
API: 50K free, then $0.54/100K
API Requests are free for the first 50,000/month, then $0.54/100,000 (i.e., $5.40/million): 1M = 950K/100K×0.54 = $5.13; 10M = $53.73; 100M = $539.73; 1B = $5,399.73. Microsoft states 500+ and 429 responses are not billed and initial import is not billed; polling, batch reads and Bundle operations bill normally. In FHIR Batch/Transaction, Batch bills successful operations; Transaction bills as a whole.
| API requests/month | Billed requests | Cost/month |
|---|---|---|
| 50K | 0 | $0 |
| 1M | 950K | $5.13 |
| 10M | 9.95M | $53.73 |
| 100M | 99.95M | $539.73 |
| 1B | 999.95M | $5,399.73 |
Editorial calculation: (requests−50K)/100K×$0.54; 500+/429 and initial import are not billed; excludes tax/discounts.
Transformation, de-identification, export and events
FHIR Transformations and Structured De-identification are both $1.14/GB (first 0.5 GB free): 100 GB = $113.43, 1 TB = $1,166.79. Unstructured De-identification is $0.05/MB (first 50 MB free)—100 GB=102,400 MB, about $5,117.50, the most expensive transformation. Export batch is free for the first 1 GB, then $0.19/GB in the first tier and $0.139992/GB after; 100 GB about $14.05, 1 TB about $143.40. Events are free for the first 100K, then $0.59/million: 1M about $0.53, 10M about $5.84.
| Item | 100 GB/month | 1 TB/month | Note |
|---|---|---|---|
| FHIR Transformations | $113.43 | $1,166.79 | First 0.5 GB free |
| Structured De-id | $113.43 | $1,166.79 | First 0.5 GB free |
| Unstructured De-id | $5,117.50 | About $52,426.30 | $0.05/MB |
| Export batch | About $14.05 | About $143.40 | First tier $0.19/GB |
| Events (10M) | $5.84 | $5.84 | $0.59/million, first 100K free |
Editorial calculation: transformation/structured de-id=(GB−0.5)×1.14; unstructured=(MB−50)×0.05; export first+later tier; events=(million−0.1)×0.59; excludes tax/discounts.
Monthly TCO: small/medium/large
Stack the core items: small 10 GB storage + 1M API + 10 GB transformation = 3.51 + 5.13 + 10.83 = $19.47/month; medium 100 GB + 10M API + 100 GB transformation = 38.61 + 53.73 + 113.43 = $205.77; large 1 TB + 100M API + 1 TB transformation = 398.97 + 539.73 + 1,166.79 = $2,105.49. Add de-identification/export/events/DICOM BLOB; re-running full transformations monthly adds linearly, so transform only new/changed data.
| Scale | Storage | API | Transformation | Total/month |
|---|---|---|---|---|
| Small | 10 GB = $3.51 | 1M = $5.13 | 10 GB = $10.83 | $19.47 |
| Medium | 100 GB = $38.61 | 10M = $53.73 | 100 GB = $113.43 | $205.77 |
| Large | 1 TB = $398.97 | 100M = $539.73 | 1 TB = $1,166.79 | $2,105.49 |
| Medium + 100 GB de-id | 100 GB | 10M | 100 GB transform + 100 GB de-id | $319.20 |
| Medium + 100 GB unstructured de-id | 100 GB | 10M | +$5,117.50 | $5,323.27 |
Editorial calculation: core items summed; de-id structured/unstructured separately; excludes BLOB/export/events/DICOM, tax/discounts.
Hidden costs and 90-day checklist
Seven hidden costs: storage counts ingested data + indexes (not compressed), DICOM pays twice, API polling/batch, transformation/de-identification per GB and potentially repeated, unstructured de-id at $0.05/MB, export/events, and workspace/network/downstream analytics. Microsoft maintains/backs up the FHIR servers, but long-term archives, analytics, integration and labour bill separately. 90 days: weeks 1–2 inventory data volume, resource types and DICOM/unstructured share; weeks 2–3 count API calls and Batch/Transaction; weeks 3–4 price storage/API/transformation/de-id; weeks 4–6 optimize incremental transforms, caching and paging; weeks 6–8 load-test import/query/export; weeks 8–10 reconcile BLOB/export/events; weeks 10–12 set storage/API/transformation alerts.
| Scenario | First choice | Check first |
|---|---|---|
| FHIR resources/indexes | Structured Storage | Ingested + indexed volume |
| DICOM/large objects | BLOB Storage | Also pays Structured |
| API polling/batch | Paging/caching | 500+/429 free |
| Incremental transformation | Only new/changed data | $1.14/GB |
| Structured de-id | On demand | $1.14/GB |
| Unstructured de-id | Sample/mask first | $0.05/MB |
| Export/events | Batch/on demand | From $0.19/GB, $0.59/million |
Editorial summary, not a vendor recommendation; features/prices follow official pages; workspace/network/analytics/labour are not estimated.
FAQ
How is Azure Health Data Services billed?
Usage-based: Structured Storage $0.39/GB/month, BLOB $0.023/GB/month, API $0.54/100K, FHIR transformation/structured de-id $1.14/GB, unstructured de-id $0.05/MB, export from $0.19/GB, events $0.59/million; monthly free allowances apply.
What does 100 GB of storage cost per month?
Structured 99×$0.39=$38.61; BLOB 99×$0.023=$2.28. DICOM pays both Structured (metadata) and BLOB (images), not one or the other.
How are API requests counted?
First 50K/month free, then $0.54/100K ($5.40/million); 1M=$5.13, 10M=$53.73, 100M=$539.73. 500+/429 and initial import are not billed.
How much are transformation and de-identification?
FHIR transformation and structured de-id are both $1.14/GB (first 0.5 GB free); 100 GB=$113.43. Unstructured de-id is $0.05/MB, so 100 GB is about $5,117.50—the most expensive.
How is DICOM billed?
DICOM images bill BLOB Storage ($0.023/GB) while metadata bills Structured Storage ($0.39/GB); both charges apply. Transcoding has a separate per-GB meter.
Is there a free tier?
Monthly: 1 GB storage, 50K API, 0.5 GB FHIR transformation, 0.5 GB structured de-id, 50 MB unstructured de-id, 1 GB export, 100K events; overages bill per meter.
HDS or a self-hosted FHIR server?
HDS removes server/patch/backup/compliance operations and bills by usage; self-hosting needs VMs/database/storage/security/HA/labour. Small data with a strong team may self-host; managed FHIR/PHI capabilities and elasticity favor HDS.
How do I reduce cost?
Five steps: (1) transform only new/changed data; (2) page/cache API calls to cut polling; (3) use BLOB for large DICOM and trim metadata; (4) sample/mask before unstructured de-id; (5) export/events on demand and tier long-term archives.
Research method and limitations
Official facts (HDS pricing page, Learn FHIR/service overviews): storage/API/transformation/de-id/export/event prices and free allowances, DICOM double storage, 500+/429 and initial import not billed, Batch/Transaction billing. Editorial calculations: capacity−1 GB; API−50K; transformation−0.5 GB; unstructured−50 MB; export first tier; events−0.1M; small/medium/large TCO.
Seven limitations: (1) eastus USD list prices only, excluding tax/contract discounts/regional differences; (2) data volume, API volume and transformation/de-id ratios are editorial assumptions; (3) excludes workspace/network/analytics/long-term archive/labour; (4) no real import/query/export benchmark; (5) DICOM/Transcode/Export tier details follow the bill; (6) legacy Azure API for FHIR runtime/throughput billing is not covered; (7) prices/free allowances change—recheck official pages and bills before purchase.
Sources and basis
- Microsoft Azure, Azure Health Data Services Pricing: azure.microsoft.com/en-us/pricing/details/health-data-services. Storage/API/transformation/de-id/export/event prices, free allowances, DICOM double storage, 500+/429 and import billing notes. Accessed 11 November 2026.
- Microsoft Learn, Azure Health Data Services overview: healthcare-apis/healthcare-apis-overview. FHIR/DICOM/MedTech, PHI, managed backup and workspaces. Accessed 11 November 2026.
- Microsoft Learn, FHIR service overview: healthcare-apis/fhir/overview. FHIR service capabilities, storage and APIs. Accessed 11 November 2026.
Data cut-off 11 November 2026; prices/features follow Microsoft official pages and bills; this is not procurement, medical-compliance or legal advice.