---
type: "firecrawl-provider"
description: "EU centrally authorised medicines (EPAR medicine pages) and EMA-assessed medicine supply shortages from EMA's published JSON data files, with EMA attribution on every result."
use_when: "EU centrally authorised medicines (EPAR medicine pages) and EMA-assessed medicine supply shortages from EMA's published JSON data files, with EMA attribution on every result."
categories: "Health"
capabilities: 2
credits_per_call: 5
---
# European Medicines Agency on Firecrawl Alexandria

EU centrally authorised medicines (EPAR medicine pages) and EMA-assessed medicine supply shortages from EMA's published JSON data files, with EMA attribution on every result.

- Categories: Health
- Category index: [Health category](https://firecrawl.dev/alexandria/agents/categories/health)
- Provider key: `ema-europa-eu`
- Access: Firecrawl credits
- Cost: 5 credits per call

## More

- [Human guide](https://firecrawl.dev/app/alexandria/ema-europa-eu)
- [OpenAPI spec](https://firecrawl.dev/alexandria/agents/providers/ema-europa-eu/openapi.json)

## Capabilities

- [Medicines](https://firecrawl.dev/alexandria/agents/providers/ema-europa-eu/records/medicines): Search medicines evaluated through EMA's centralised procedure (EU EPAR medicine pages): name, EMA product number, status (Authorised, Withdrawn, Refused, ...), INN, active substance, ATC code, therapeutic area, marketing authorisation holder, procedure dates and flags such as orphan, generic, biosimilar and conditional approval. Filter by words, category or status, or resolve one ema_product_number. Therapeutic indications are withheld. Every result carries EMA attribution.
- [Shortages](https://firecrawl.dev/alexandria/agents/providers/ema-europa-eu/records/shortages): Search medicine supply shortages assessed by EMA: medicine, INN, status (Shortage ongoing, Shortage resolved, Medicine discontinued), pharmaceutical forms and strengths affected, availability of alternatives, expected resolution and the EMA shortage page. Filter by words, category or status, or resolve one record_id. Covers shortages EMA assessed, not every national shortage. Every result carries EMA attribution.

## 1. Choose this provider when

EU centrally authorised medicines (EPAR medicine pages) and EMA-assessed medicine supply shortages from EMA's published JSON data files, with EMA attribution on every result.

## 2. Minimal request

Call `POST https://api.firecrawl.dev/v2/scrape` with `{ alexandria: { provider, capability, options } }`. For a batch, send `{ alexandria: [...] }` with up to 10 calls.

```json
{
  "provider": "ema-europa-eu",
  "capability": "records/medicines",
  "options": {
    "ema_product_number": "EMEA/H/C/000603"
  }
}
```

## 3. Add provider options

Use only the options needed for the task:

- `category` (string): category Example: `Human`
- `cursor` (string): next_cursor from a previous page with the same filters. Pattern: ^[0-9]{1,6}$. Example: `<cursor>`
- `ema_product_number` (string): Exact EMA product number, e.g. EMEA/H/C/000603. No match is not_found. Pattern: ^EMEA/[HV]/C/[0-9]{6}$. Example: `<ema_product_number>`
- `limit` (number): limit Example: `10`
- `query` (string): Words that must all appear, case-insensitive, in the medicine name, product number, INN, active substance, therapeutic area, ATC code or marketing authorisation holder, e.g. natalizumab. Example: `<query>`
- `status` (string): Exact medicine_status, case-insensitive, e.g. Authorised, Withdrawn, Refused, Lapsed, Expired, Revoked, Opinion, Application withdrawn. Example: `<status>`

## 4. Request through your preferred interface

### JavaScript

```javascript
const result = await firecrawl.scrape({
  alexandria: {
    provider: "ema-europa-eu",
    capability: "records/medicines",
    options: {
      ema_product_number: "EMEA/H/C/000603",
    },
  },
});
```

### Python

```python
result = firecrawl.scrape_alexandria({
  "provider": "ema-europa-eu",
  "capability": "records/medicines",
  "options": {
    "ema_product_number": "EMEA/H/C/000603"
  }
})
```

### cURL

```sh
curl https://api.firecrawl.dev/v2/scrape \
  -H "Authorization: Bearer $FIRECRAWL_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "alexandria": {
    "provider": "ema-europa-eu",
    "capability": "records/medicines",
    "options": {
      "ema_product_number": "EMEA/H/C/000603"
    }
  }
}'
```

### CLI

```sh
firecrawl scrape 'ema-europa-eu/records/medicines' \
  --options '{"ema_product_number":"EMEA/H/C/000603"}'
```


### MCP

Call the FCX MCP retrieve tool with this object:

```json
{
  "provider": "ema-europa-eu",
  "capability": "records/medicines",
  "options": {
    "ema_product_number": "EMEA/H/C/000603"
  }
}
```

Ask for only the returned fields needed by the task.

## 5. Full request shape

```json
{
  "provider": "ema-europa-eu",
  "capability": "records/medicines",
  "options": {
    "ema_product_number": "EMEA/H/C/000603"
  }
}
```

## 6. Response data

The response includes `success`, `provider`, `capability`, `creditsCost` and `data`. This example shows the provider payload in `data`:

```json
{
  "attribution": "Source: European Medicines Agency (EMA), https://www.ema.europa.eu. Reproduced under EMA's legal notice, which requires EMA to be acknowledged as the source: https://www.ema.europa.eu/en/about-us/about-website/legal-notice",
  "data_timestamp": "2026-09-27T18:08:33Z",
  "dataset_records": 2746,
  "next_cursor": null,
  "observed_at_ms": 1790554594287,
  "records": [
    {
      "data": {
        "accelerated_assessment": "No",
        "active_substance": "natalizumab",
        "additional_monitoring": "No",
        "advanced_therapy": "No",
        "atc_code_human": "L04AG03",
        "atcvet_code_veterinary": "",
        "biosimilar": "No",
        "category": "Human",
        "conditional_approval": "No",
        "ema_product_number": "EMEA/H/C/000603",
        "european_commission_decision_date": "18/06/2026",
        "exceptional_circumstances": "No",
        "first_published_date": "02/08/2018",
        "generic": "No",
        "international_non_proprietary_name_common_name": "natalizumab",
        "last_updated_date": "06/07/2026",
        "latest_procedure_affecting_product_information": "VR/0000314828",
        "marketing_authorisation_date": "27/06/2006",
        "marketing_authorisation_developer_applicant_holder": "Biogen Netherlands B.V.",
        "medicine_status": "Authorised",
        "medicine_url": "https://www.ema.europa.eu/en/medicines/human/EPAR/tysabri",
        "name_of_medicine": "Tysabri",
        "opinion_adopted_date": "",
        "opinion_status": "",
        "orphan_medicine": "No",
        "patient_safety": "No",
        "pharmacotherapeutic_group_human": "Monoclonal antibodies",
        "pharmacotherapeutic_group_veterinary": "",
        "prime_priority_medicine": "No",
        "refusal_of_marketing_authorisation_date": "",
        "revision_number": "53",
        "species_veterinary": "",
        "start_of_evaluation_date": "",
        "start_of_rolling_review_date": "",
        "suspension_of_marketing_authorisation_date": "",
        "therapeutic_area_mesh": "Multiple Sclerosis",
        "withdrawal_expiry_revocation_lapse_of_marketing_authorisation_date": "",
        "withdrawal_of_application_date": ""
      },
      "ema_product_number": "EMEA/H/C/000603",
      "medicine_url": "https://www.ema.europa.eu/en/medicines/human/EPAR/tysabri",
      "name_of_medicine": "Tysabri"
    }
  ],
  "source_url": "https://www.ema.europa.eu/en/documents/report/medicines-output-medicines_json-report_en.json",
  "total_matching": 1,
  "withheld_fields": [
    "therapeutic_indication"
  ]
}
```

## API reference-derived contract

The following capability contract is generated from the same normalized Alexandria API reference exposed in the API spec.

### Medicines

- Capability: `records/medicines`
- Description: Search medicines evaluated through EMA's centralised procedure (EU EPAR medicine pages): name, EMA product number, status (Authorised, Withdrawn, Refused, ...), INN, active substance, ATC code, therapeutic area, marketing authorisation holder, procedure dates and flags such as orphan, generic, biosimilar and conditional approval. Filter by words, category or status, or resolve one ema_product_number. Therapeutic indications are withheld. Every result carries EMA attribution.
- Instructions: Search medicines evaluated through EMA's centralised procedure (EU EPAR medicine pages): name, EMA product number, status (Authorised, Withdrawn, Refused, ...), INN, active substance, ATC code, therapeutic area, marketing authorisation holder, procedure dates and flags such as orphan, generic, biosimilar and conditional approval. Filter by words, category or status, or resolve one ema_product_number. Therapeutic indications are withheld. Every result carries EMA attribution.
- Cost: 5 credits per call
- Capability file: [Medicines](https://firecrawl.dev/alexandria/agents/providers/ema-europa-eu/records/medicines)

Accepted options:
- `category` (string): category Example: `Human`
- `cursor` (string): next_cursor from a previous page with the same filters. Pattern: ^[0-9]{1,6}$. Example: `<cursor>`
- `ema_product_number` (string): Exact EMA product number, e.g. EMEA/H/C/000603. No match is not_found. Pattern: ^EMEA/[HV]/C/[0-9]{6}$. Example: `<ema_product_number>`
- `limit` (number): limit Example: `10`
- `query` (string): Words that must all appear, case-insensitive, in the medicine name, product number, INN, active substance, therapeutic area, ATC code or marketing authorisation holder, e.g. natalizumab. Example: `<query>`
- `status` (string): Exact medicine_status, case-insensitive, e.g. Authorised, Withdrawn, Refused, Lapsed, Expired, Revoked, Opinion, Application withdrawn. Example: `<status>`

Response schema example:
```json
{
  "attribution": "Source: European Medicines Agency (EMA), https://www.ema.europa.eu. Reproduced under EMA's legal notice, which requires EMA to be acknowledged as the source: https://www.ema.europa.eu/en/about-us/about-website/legal-notice",
  "data_timestamp": "2026-09-27T18:08:33Z",
  "dataset_records": 2746,
  "next_cursor": null,
  "observed_at_ms": 1790554594287,
  "records": [
    {
      "data": {
        "accelerated_assessment": "No",
        "active_substance": "natalizumab",
        "additional_monitoring": "No",
        "advanced_therapy": "No",
        "atc_code_human": "L04AG03",
        "atcvet_code_veterinary": "",
        "biosimilar": "No",
        "category": "Human",
        "conditional_approval": "No",
        "ema_product_number": "EMEA/H/C/000603",
        "european_commission_decision_date": "18/06/2026",
        "exceptional_circumstances": "No",
        "first_published_date": "02/08/2018",
        "generic": "No",
        "international_non_proprietary_name_common_name": "natalizumab",
        "last_updated_date": "06/07/2026",
        "latest_procedure_affecting_product_information": "VR/0000314828",
        "marketing_authorisation_date": "27/06/2006",
        "marketing_authorisation_developer_applicant_holder": "Biogen Netherlands B.V.",
        "medicine_status": "Authorised",
        "medicine_url": "https://www.ema.europa.eu/en/medicines/human/EPAR/tysabri",
        "name_of_medicine": "Tysabri",
        "opinion_adopted_date": "",
        "opinion_status": "",
        "orphan_medicine": "No",
        "patient_safety": "No",
        "pharmacotherapeutic_group_human": "Monoclonal antibodies",
        "pharmacotherapeutic_group_veterinary": "",
        "prime_priority_medicine": "No",
        "refusal_of_marketing_authorisation_date": "",
        "revision_number": "53",
        "species_veterinary": "",
        "start_of_evaluation_date": "",
        "start_of_rolling_review_date": "",
        "suspension_of_marketing_authorisation_date": "",
        "therapeutic_area_mesh": "Multiple Sclerosis",
        "withdrawal_expiry_revocation_lapse_of_marketing_authorisation_date": "",
        "withdrawal_of_application_date": ""
      },
      "ema_product_number": "EMEA/H/C/000603",
      "medicine_url": "https://www.ema.europa.eu/en/medicines/human/EPAR/tysabri",
      "name_of_medicine": "Tysabri"
    }
  ],
  "source_url": "https://www.ema.europa.eu/en/documents/report/medicines-output-medicines_json-report_en.json",
  "total_matching": 1,
  "withheld_fields": [
    "therapeutic_indication"
  ]
}
```

### Shortages

- Capability: `records/shortages`
- Description: Search medicine supply shortages assessed by EMA: medicine, INN, status (Shortage ongoing, Shortage resolved, Medicine discontinued), pharmaceutical forms and strengths affected, availability of alternatives, expected resolution and the EMA shortage page. Filter by words, category or status, or resolve one record_id. Covers shortages EMA assessed, not every national shortage. Every result carries EMA attribution.
- Instructions: Search medicine supply shortages assessed by EMA: medicine, INN, status (Shortage ongoing, Shortage resolved, Medicine discontinued), pharmaceutical forms and strengths affected, availability of alternatives, expected resolution and the EMA shortage page. Filter by words, category or status, or resolve one record_id. Covers shortages EMA assessed, not every national shortage. Every result carries EMA attribution.
- Cost: 5 credits per call
- Capability file: [Shortages](https://firecrawl.dev/alexandria/agents/providers/ema-europa-eu/records/shortages)

Accepted options:
- `category` (string): category Example: `Human`
- `cursor` (string): next_cursor from a previous page with the same filters. Pattern: ^[0-9]{1,6}$. Example: `<cursor>`
- `limit` (number): limit Example: `10`
- `query` (string): Words that must all appear, case-insensitive, in the medicine affected, INN, therapeutic area or pharmaceutical form, e.g. immunoglobulins. Example: `<query>`
- `record_id` (string): record_id returned by this function, e.g. cerezyme. No match is not_found. Pattern: ^[a-z0-9-]{1,200}$. Example: `<record_id>`
- `status` (string): Exact supply_shortage_status, case-insensitive: Shortage ongoing, Shortage resolved or Medicine discontinued. Example: `<status>`

Response schema example:
```json
{
  "attribution": "Source: European Medicines Agency (EMA), https://www.ema.europa.eu. Reproduced under EMA's legal notice, which requires EMA to be acknowledged as the source: https://www.ema.europa.eu/en/about-us/about-website/legal-notice",
  "data_timestamp": "2026-09-27T18:15:40Z",
  "dataset_records": 85,
  "next_cursor": null,
  "observed_at_ms": 1790554594287,
  "records": [
    {
      "data": {
        "availability_of_alternatives": "No",
        "category": "Human",
        "expected_resolution": "",
        "expected_resolution_date": "",
        "first_published_date": "04/11/2013",
        "international_non_proprietary_name_inn_or_common_name": "imiglucerase",
        "last_updated_date": "01/10/2018",
        "medicine_affected": "Cerezyme",
        "pharmaceutical_forms_affected": "Solution for infusion",
        "shortage_url": "https://www.ema.europa.eu/en/medicines/human/shortages/cerezyme",
        "start_of_shortage_date": "",
        "strengths_affected": "",
        "supply_shortage_status": "Shortage resolved",
        "therapeutic_area_mesh": "Gaucher Disease"
      },
      "medicine_affected": "Cerezyme",
      "record_id": "cerezyme",
      "shortage_url": "https://www.ema.europa.eu/en/medicines/human/shortages/cerezyme"
    }
  ],
  "source_url": "https://www.ema.europa.eu/en/documents/report/shortages-output-json-report_en.json",
  "total_matching": 1
}
```
