# EU Clinical Trials (CTIS) Scraper (`crawlerbros/eu-ctis-scraper`) Actor

Scrape the EU Clinical Trials Information System (CTIS) - the EMA's official register of clinical trials across the EU/EEA. Search by title, condition, sponsor, status, phase, therapeutic area, country, and more, or look up full trial detail by EU CT number. Public REST API - no auth, no proxy.

- **URL**: https://apify.com/crawlerbros/eu-ctis-scraper.md
- **Developed by:** [Crawler Bros](https://apify.com/crawlerbros) (community)
- **Categories:** Automation, Developer tools, Integrations
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $3.00 / 1,000 results

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

## EU Clinical Trials (CTIS) Scraper

Scrape the **EU Clinical Trials Information System (CTIS)** — the European Medicines Agency's official public register of clinical trials authorised across the EU and EEA. Search by title, medical condition, sponsor, trial status, phase, therapeutic area, country, age group, and more, or look up complete trial detail by EU CT number. HTTP-only via the public euclinicaltrials.eu JSON API. No auth, no proxy required.

### What this actor does

- **Two modes:** `search` (filtered trial listing) and `byTrialId` (full detail for one or more EU CT numbers)
- **Rich server-side filters:** title, condition, sponsor, EU CT number, trial status, phase, therapeutic area, EU/EEA member state, age group, gender, sponsor type, trial region, rare disease, low intervention, orphan designation, has-results
- **Full trial detail on demand:** objectives, endpoints, recruitment dates, per-country site counts, product names
- **Trial URL included** — direct link to the public CTIS trial page
- **Empty fields are omitted** — no `null`, `""`, `[]`, or `{}` in the output

### Output per trial (mode = `search`)

- `ctNumber` — EU CT number, e.g. `2023-509723-41-00`
- `title`, `shortTitle`
- `condition` — medical condition(s) under study
- `sponsor`, `sponsorType`
- `therapeuticAreas[]` — MeSH-derived therapeutic area(s)
- `countries[]` — EU/EEA member states concerned
- `status`, `statusCode` — human-readable status + its numeric code
- `phase` — trial phase
- `ageGroup`, `gender`
- `trialRegion` — EEA only / non-EEA only / both
- `products[]` — investigational medicinal product name(s)
- `totalNumberEnrolled`
- `primaryEndPoint`, `endPoint`
- `decisionDate`, `decisionDateDetail`, `startDate`, `endDate`, `endDateDetail`, `lastUpdated`, `lastPublicationUpdate`
- `hasResults` — whether results have been submitted
- `trialUrl` — public CTIS trial page
- `recordType: "trial"`, `scrapedAt`

### Output per trial (mode = `byTrialId`)

- `ctNumber`, `title`, `shortTitle`
- `status`, `statusCode`
- `decisionDate`, `publishDate`, `startDate`, `endDate`
- `trialRegion`, `sponsor`
- `conditions[]`, `therapeuticAreas[]`, `products[]`
- `isLowIntervention`
- `mainObjective`, `primaryEndPoint`
- `estimatedRecruitmentStartDate`, `estimatedEndDate`
- `countries[]`, `totalNumberEnrolled` (summed across reporting member states)
- `hasResults`
- `trialUrl`
- `recordType: "trialDetail"`, `scrapedAt`

Trials that fail to resolve (invalid EU CT number format, or a number not found in the public register) are still emitted as a typed record with `recordType: "error"` and an `error` message — they are never silently dropped.

### Input

| Field | Type | Default | Description |
|---|---|---|---|
| `mode` | string | `search` | `search` / `byTrialId` |
| `title` | string | – | Free-text search against the trial title (mode=search) |
| `medicalCondition` | string | – | Free-text search against condition(s) (mode=search) |
| `sponsorName` | string | – | Free-text search against sponsor name (mode=search) |
| `ctNumberQuery` | string | – | Free-text / partial EU CT number search (mode=search) |
| `status` | array | `[]` | One or more trial statuses (12 options) |
| `trialPhase` | array | `[]` | One or more trial phases (11 options) |
| `therapeuticArea` | array | `[]` | One or more therapeutic areas (58 options) |
| `ageGroup` | array | `[]` | One or more participant age groups (4 options) |
| `gender` | array | `[]` | One or more participant genders |
| `countries` | array | `[]` | One or more EU/EEA member states (30 options) |
| `trialRegion` | string | – | EEA only / non-EEA only / both (note: since CTIS is the EU/EEA trial register, "non-EEA only" trials are rare-to-nonexistent in practice) |
| `sponsorType` | array | `[]` | One or more sponsor organisation types |
| `hasResultsOnly` | boolean | `false` | Only trials with published results |
| `isRareDiseaseOnly` | boolean | `false` | Only rare-disease trials |
| `isLowInterventionOnly` | boolean | `false` | Only low-intervention trials |
| `hasOrphanDesignationOnly` | boolean | `false` | Only trials with an orphan-designated product |
| `ctNumbers` | array | `[]` | EU CT numbers to fetch (mode=byTrialId) |
| `sortBy` | string | `decisionDate` | Sort search results by `decisionDate` or `ctNumber` (mode=search) |
| `sortDirection` | string | `DESC` | `ASC` or `DESC`, used with `sortBy` (mode=search) |
| `maxItems` | integer | `5` | Hard cap on emitted records (1–2000) |

#### Example: search by condition and status

```json
{
  "mode": "search",
  "medicalCondition": "leukemia",
  "status": ["2", "3", "4"],
  "maxItems": 25
}
````

#### Example: search by therapeutic area and country

```json
{
  "mode": "search",
  "therapeuticArea": ["4"],
  "countries": ["724", "250"],
  "trialPhase": ["4", "5"],
  "maxItems": 50
}
```

#### Example: rare-disease trials with published results

```json
{
  "mode": "search",
  "isRareDiseaseOnly": true,
  "hasResultsOnly": true,
  "maxItems": 20
}
```

#### Example: lookup by EU CT number

```json
{
  "mode": "byTrialId",
  "ctNumbers": ["2023-509723-41-00", "2024-517420-20-00"]
}
```

### Use cases

- **Pharma competitive intelligence** — track competitor trials by sponsor, therapeutic area, or phase across the EU
- **Regulatory monitoring** — watch trial status transitions (authorised, halted, suspended, ended) for a therapy area
- **Market access research** — identify which EU/EEA member states host trials for a given condition
- **Academic research** — bulk-export CTIS records for meta-analysis or systematic review
- **Patient advocacy** — find ongoing rare-disease or orphan-designation trials enrolling participants
- **Investment research** — monitor clinical development pipelines by sponsor or product

### FAQ

**What is the data source?**
The European Medicines Agency's Clinical Trials Information System (CTIS) public portal at euclinicaltrials.eu — the EU's official register of clinical trials since January 2023, covering all EU/EEA member states.

**Is this affiliated with the EMA or CTIS?**
No. This is an independent third-party actor built on CTIS's public read API. It is not endorsed by or affiliated with the European Medicines Agency.

**Do I need an account or API key?**
No. CTIS's trial search and detail data is fully public — no login or credentials required.

**What's the difference between `search` and `byTrialId` mode?**
`search` returns a filtered list of trials matching your criteria (title, condition, sponsor, status, etc.). `byTrialId` returns the complete detail record for one or more specific trials when you already know their EU CT number.

**Why do some trials only return a `status` of "Not authorised" or "Cancelled" with limited fields?**
CTIS discloses fewer public fields for trials that were withdrawn, refused, or cancelled before authorisation — this actor surfaces every field CTIS makes public for each trial state.

**How fresh is the data?**
Every run queries the live CTIS API directly, so results reflect the current public register at run time.

**Why is my EU CT number rejected in `byTrialId` mode?**
EU CT numbers follow the fixed format `YYYY-NNNNNN-NN-NN` (e.g. `2023-509723-41-00`). Numbers that don't match this shape, or that aren't found in the public register, are returned as a typed error record explaining why.

**Can I combine multiple filters in `search` mode?**
Yes — all filters are combined with AND logic. For example, `therapeuticArea` + `countries` + `trialPhase` together narrow to trials matching all three.

# Actor input Schema

## `mode` (type: `string`):

What to fetch.

## `title` (type: `string`):

Free-text search against the trial's public title (mode=search).

## `medicalCondition` (type: `string`):

Free-text search against the trial's medical condition(s) (mode=search).

## `sponsorName` (type: `string`):

Free-text search against the sponsor organisation name (mode=search).

## `ctNumberQuery` (type: `string`):

Free-text search against the EU CT number, e.g. `2023-509723` (mode=search). For an exact single-trial lookup use mode=byTrialId instead.

## `status` (type: `array`):

Restrict to one or more overall trial statuses. Empty = no filter (mode=search).

## `trialPhase` (type: `array`):

Restrict to one or more clinical trial phases. Empty = no filter (mode=search).

## `therapeuticArea` (type: `array`):

Restrict to one or more MeSH-derived CTIS therapeutic areas. Empty = no filter (mode=search).

## `ageGroup` (type: `array`):

Restrict to one or more participant age groups. Empty = no filter (mode=search).

## `gender` (type: `array`):

Restrict to trials enrolling one or more genders. Empty = no filter (mode=search).

## `countries` (type: `array`):

Restrict to trials with a site in one or more EU/EEA member states concerned. Empty = no filter (mode=search).

## `trialRegion` (type: `string`):

Restrict to trials run only in the EEA, only outside it, or in both. Empty = no filter (mode=search).

## `sponsorType` (type: `array`):

Restrict to one or more sponsor organisation types. Empty = no filter (mode=search).

## `hasResultsOnly` (type: `boolean`):

Only emit trials that have published results (mode=search).

## `isRareDiseaseOnly` (type: `boolean`):

Only emit trials targeting a rare disease (mode=search).

## `isLowInterventionOnly` (type: `boolean`):

Only emit trials classified as low-intervention (mode=search).

## `hasOrphanDesignationOnly` (type: `boolean`):

Only emit trials involving a product with orphan drug designation (mode=search).

## `ctNumbers` (type: `array`):

One or more EU CT numbers to fetch full trial detail for, e.g. `2023-509723-41-00`.

## `sortBy` (type: `string`):

Field to sort search results by.

## `sortDirection` (type: `string`):

Ascending or descending, used together with `Sort by`.

## `maxItems` (type: `integer`):

Hard cap on emitted records.

## Actor input object example

```json
{
  "mode": "search",
  "status": [],
  "trialPhase": [],
  "therapeuticArea": [],
  "ageGroup": [],
  "gender": [],
  "countries": [],
  "sponsorType": [],
  "hasResultsOnly": false,
  "isRareDiseaseOnly": false,
  "isLowInterventionOnly": false,
  "hasOrphanDesignationOnly": false,
  "ctNumbers": [],
  "sortBy": "decisionDate",
  "sortDirection": "DESC",
  "maxItems": 5
}
```

# Actor output Schema

## `trials` (type: `string`):

Dataset containing all scraped CTIS trial records.

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "mode": "search",
    "status": [],
    "trialPhase": [],
    "therapeuticArea": [],
    "ageGroup": [],
    "gender": [],
    "countries": [],
    "sponsorType": [],
    "hasResultsOnly": false,
    "isRareDiseaseOnly": false,
    "isLowInterventionOnly": false,
    "hasOrphanDesignationOnly": false,
    "ctNumbers": [],
    "sortBy": "decisionDate",
    "sortDirection": "DESC",
    "maxItems": 5
};

// Run the Actor and wait for it to finish
const run = await client.actor("crawlerbros/eu-ctis-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "mode": "search",
    "status": [],
    "trialPhase": [],
    "therapeuticArea": [],
    "ageGroup": [],
    "gender": [],
    "countries": [],
    "sponsorType": [],
    "hasResultsOnly": False,
    "isRareDiseaseOnly": False,
    "isLowInterventionOnly": False,
    "hasOrphanDesignationOnly": False,
    "ctNumbers": [],
    "sortBy": "decisionDate",
    "sortDirection": "DESC",
    "maxItems": 5,
}

# Run the Actor and wait for it to finish
run = client.actor("crawlerbros/eu-ctis-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "mode": "search",
  "status": [],
  "trialPhase": [],
  "therapeuticArea": [],
  "ageGroup": [],
  "gender": [],
  "countries": [],
  "sponsorType": [],
  "hasResultsOnly": false,
  "isRareDiseaseOnly": false,
  "isLowInterventionOnly": false,
  "hasOrphanDesignationOnly": false,
  "ctNumbers": [],
  "sortBy": "decisionDate",
  "sortDirection": "DESC",
  "maxItems": 5
}' |
apify call crawlerbros/eu-ctis-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=crawlerbros/eu-ctis-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "EU Clinical Trials (CTIS) Scraper",
        "description": "Scrape the EU Clinical Trials Information System (CTIS) - the EMA's official register of clinical trials across the EU/EEA. Search by title, condition, sponsor, status, phase, therapeutic area, country, and more, or look up full trial detail by EU CT number. Public REST API - no auth, no proxy.",
        "version": "1.0",
        "x-build-id": "Qp1aDdYqwbFrRZhf9"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/crawlerbros~eu-ctis-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-crawlerbros-eu-ctis-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/crawlerbros~eu-ctis-scraper/runs": {
            "post": {
                "operationId": "runs-sync-crawlerbros-eu-ctis-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/crawlerbros~eu-ctis-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-crawlerbros-eu-ctis-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "required": [
                    "mode"
                ],
                "properties": {
                    "mode": {
                        "title": "Mode",
                        "enum": [
                            "search",
                            "byTrialId"
                        ],
                        "type": "string",
                        "description": "What to fetch.",
                        "default": "search"
                    },
                    "title": {
                        "title": "Trial title contains",
                        "type": "string",
                        "description": "Free-text search against the trial's public title (mode=search)."
                    },
                    "medicalCondition": {
                        "title": "Medical condition",
                        "type": "string",
                        "description": "Free-text search against the trial's medical condition(s) (mode=search)."
                    },
                    "sponsorName": {
                        "title": "Sponsor name contains",
                        "type": "string",
                        "description": "Free-text search against the sponsor organisation name (mode=search)."
                    },
                    "ctNumberQuery": {
                        "title": "EU CT number contains",
                        "type": "string",
                        "description": "Free-text search against the EU CT number, e.g. `2023-509723` (mode=search). For an exact single-trial lookup use mode=byTrialId instead."
                    },
                    "status": {
                        "title": "Trial status",
                        "uniqueItems": true,
                        "type": "array",
                        "description": "Restrict to one or more overall trial statuses. Empty = no filter (mode=search).",
                        "items": {
                            "type": "string",
                            "enum": [
                                "1",
                                "2",
                                "3",
                                "4",
                                "5",
                                "6",
                                "7",
                                "8",
                                "9",
                                "10",
                                "11",
                                "12"
                            ],
                            "enumTitles": [
                                "Under evaluation",
                                "Authorised, not started",
                                "Authorised, recruitment pending",
                                "Authorised, recruiting",
                                "Ongoing, recruitment ended",
                                "Temporarily halted",
                                "Suspended",
                                "Ended",
                                "Expired",
                                "Revoked",
                                "Not authorised",
                                "Cancelled"
                            ]
                        },
                        "default": []
                    },
                    "trialPhase": {
                        "title": "Trial phase",
                        "uniqueItems": true,
                        "type": "array",
                        "description": "Restrict to one or more clinical trial phases. Empty = no filter (mode=search).",
                        "items": {
                            "type": "string",
                            "enum": [
                                "1",
                                "2",
                                "3",
                                "4",
                                "5",
                                "6",
                                "7",
                                "8",
                                "9",
                                "10",
                                "11"
                            ],
                            "enumTitles": [
                                "Human Pharmacology (Phase I) - First administration to humans",
                                "Human Pharmacology (Phase I) - Bioequivalence Study",
                                "Human Pharmacology (Phase I) - Other",
                                "Therapeutic exploratory (Phase II)",
                                "Therapeutic confirmatory (Phase III)",
                                "Therapeutic use (Phase IV)",
                                "Phase I and Phase II (Integrated) - First administration to humans",
                                "Phase I and Phase II (Integrated) - Bioequivalence Study",
                                "Phase I and Phase II (Integrated) - Other",
                                "Phase II and Phase III (Integrated)",
                                "Phase III and phase IV (Integrated)"
                            ]
                        },
                        "default": []
                    },
                    "therapeuticArea": {
                        "title": "Therapeutic area",
                        "uniqueItems": true,
                        "type": "array",
                        "description": "Restrict to one or more MeSH-derived CTIS therapeutic areas. Empty = no filter (mode=search).",
                        "items": {
                            "type": "string",
                            "enum": [
                                "1",
                                "2",
                                "3",
                                "4",
                                "5",
                                "6",
                                "7",
                                "8",
                                "9",
                                "10",
                                "11",
                                "12",
                                "13",
                                "14",
                                "15",
                                "16",
                                "17",
                                "18",
                                "19",
                                "20",
                                "21",
                                "22",
                                "23",
                                "24",
                                "25",
                                "26",
                                "27",
                                "28",
                                "29",
                                "30",
                                "31",
                                "32",
                                "33",
                                "34",
                                "35",
                                "36",
                                "37",
                                "38",
                                "39",
                                "40",
                                "41",
                                "42",
                                "43",
                                "44",
                                "45",
                                "46",
                                "47",
                                "48",
                                "49",
                                "50",
                                "51",
                                "52",
                                "53",
                                "54",
                                "55",
                                "56",
                                "57",
                                "58"
                            ],
                            "enumTitles": [
                                "Diseases [C] - Bacterial Infections and Mycoses [C01]",
                                "Diseases [C] - Virus Diseases [C02]",
                                "Diseases [C] - Parasitic Diseases [C03]",
                                "Diseases [C] - Neoplasms [C04]",
                                "Diseases [C] - Musculoskeletal Diseases [C05]",
                                "Diseases [C] - Digestive System Diseases [C06]",
                                "Diseases [C] - Stomatognathic Diseases [C07]",
                                "Diseases [C] - Respiratory Tract Diseases [C08]",
                                "Diseases [C] - Otorhinolaryngologic Diseases [C09]",
                                "Diseases [C] - Nervous System Diseases [C10]",
                                "Diseases [C] - Eye Diseases [C11]",
                                "Diseases [C] - Male Urogenital Diseases [C12]",
                                "Diseases [C] - Female Urogenital Diseases and Pregnancy Complications [C13]",
                                "Diseases [C] - Cardiovascular Diseases [C14]",
                                "Diseases [C] - Hemic and Lymphatic Diseases [C15]",
                                "Diseases [C] - Congenital, Hereditary, and Neonatal Diseases and Abnormalities [C16]",
                                "Diseases [C] - Skin and Connective Tissue Diseases [C17]",
                                "Diseases [C] - Nutritional and Metabolic Diseases [C18]",
                                "Diseases [C] - Hormonal diseases [C19]",
                                "Diseases [C] - Immune System Diseases [C20]",
                                "Diseases [C] - Disorders of Environmental Origin [C21]",
                                "Diseases [C] - Animal Diseases [C22]",
                                "Diseases [C] - Pathological Conditions, Signs and Symptoms [C23]",
                                "Analytical, Diagnostic and Therapeutic Techniques and Equipment [E] - Diagnosis [E01]",
                                "Analytical, Diagnostic and Therapeutic Techniques and Equipment [E] - Therapeutics [E02]",
                                "Analytical, Diagnostic and Therapeutic Techniques and Equipment [E] - Anesthesia and Analgesia [E03]",
                                "Analytical, Diagnostic and Therapeutic Techniques and Equipment [E] - Surgical Procedures, Operative [E04]",
                                "Analytical, Diagnostic and Therapeutic Techniques and Equipment [E] - Investigative Techniques [E05]",
                                "Analytical, Diagnostic and Therapeutic Techniques and Equipment [E] - Dentistry [E06]",
                                "Analytical, Diagnostic and Therapeutic Techniques and Equipment [E] - Equipment and Supplies [E07]",
                                "Psychiatry and Psychology [F] - Behavior and Behavior Mechanisms [F01]",
                                "Psychiatry and Psychology [F] - Psychological Phenomena [F02]",
                                "Psychiatry and Psychology [F] - Mental Disorders [F03]",
                                "Psychiatry and Psychology [F] - Behavioral Disciplines and Activities [F04]",
                                "Phenomena and Processes [G] - Physical Phenomena [G01]",
                                "Phenomena and Processes [G] - Chemical Phenomena [G02]",
                                "Phenomena and Processes [G] - Metabolism [G03]",
                                "Phenomena and Processes [G] - Cell Physiological Phenomena [G04]",
                                "Phenomena and Processes [G] - Genetic Phenomena [G05]",
                                "Phenomena and Processes [G] - Microbiological Phenomena [G06]",
                                "Phenomena and Processes [G] - Physiological processes [G07]",
                                "Phenomena and Processes [G] - Reproductive and Urinary Physiological Phenomena [G08]",
                                "Phenomena and Processes [G] - Circulatory and Respiratory Physiological Phenomena [G09]",
                                "Phenomena and Processes [G] - Digestive System and Oral Physiological Phenomena [G10]",
                                "Phenomena and Processes [G] - Musculoskeletal and Neural Physiological Phenomena [G11]",
                                "Phenomena and Processes [G] - Immune system processes [G12]",
                                "Phenomena and Processes [G] - Immune System Phenomena [G13]",
                                "Phenomena and Processes [G] - Ocular Physiological Phenomena [G14]",
                                "Phenomena and Processes [G] - Plant Physiological Phenomena [G15]",
                                "Phenomena and Processes [G] - Biological Phenomena [G16]",
                                "Phenomena and Processes [G] - Mathematical Concepts [G17]",
                                "Health Care [N] - Population Characteristics [N01]",
                                "Health Care [N] - Health Care Facilities, Manpower, and Services [N02]",
                                "Health Care [N] - Health Care Economics and Organizations [N03]",
                                "Health Care [N] - Health Services Administration [N04]",
                                "Health Care [N] - Health Care Quality, Access, and Evaluation [N05]",
                                "Health Care [N] - Environment and Public Health [N06]",
                                "Not possible to specify"
                            ]
                        },
                        "default": []
                    },
                    "ageGroup": {
                        "title": "Age group",
                        "uniqueItems": true,
                        "type": "array",
                        "description": "Restrict to one or more participant age groups. Empty = no filter (mode=search).",
                        "items": {
                            "type": "string",
                            "enum": [
                                "1",
                                "2",
                                "3",
                                "4"
                            ],
                            "enumTitles": [
                                "In utero",
                                "0-17 years (children)",
                                "18-64 years (adults)",
                                "65+ years (elderly)"
                            ]
                        },
                        "default": []
                    },
                    "gender": {
                        "title": "Participant gender",
                        "uniqueItems": true,
                        "type": "array",
                        "description": "Restrict to trials enrolling one or more genders. Empty = no filter (mode=search).",
                        "items": {
                            "type": "string",
                            "enum": [
                                "1",
                                "2"
                            ],
                            "enumTitles": [
                                "Male",
                                "Female"
                            ]
                        },
                        "default": []
                    },
                    "countries": {
                        "title": "EU/EEA member state",
                        "uniqueItems": true,
                        "type": "array",
                        "description": "Restrict to trials with a site in one or more EU/EEA member states concerned. Empty = no filter (mode=search).",
                        "items": {
                            "type": "string",
                            "enum": [
                                "40",
                                "56",
                                "100",
                                "191",
                                "196",
                                "203",
                                "208",
                                "233",
                                "246",
                                "250",
                                "276",
                                "300",
                                "348",
                                "352",
                                "372",
                                "380",
                                "428",
                                "438",
                                "440",
                                "442",
                                "470",
                                "528",
                                "578",
                                "616",
                                "620",
                                "642",
                                "703",
                                "705",
                                "724",
                                "752"
                            ],
                            "enumTitles": [
                                "Austria",
                                "Belgium",
                                "Bulgaria",
                                "Croatia",
                                "Cyprus",
                                "Czechia",
                                "Denmark",
                                "Estonia",
                                "Finland",
                                "France",
                                "Germany",
                                "Greece",
                                "Hungary",
                                "Iceland",
                                "Ireland",
                                "Italy",
                                "Latvia",
                                "Liechtenstein",
                                "Lithuania",
                                "Luxembourg",
                                "Malta",
                                "Netherlands",
                                "Norway",
                                "Poland",
                                "Portugal",
                                "Romania",
                                "Slovakia",
                                "Slovenia",
                                "Spain",
                                "Sweden"
                            ]
                        },
                        "default": []
                    },
                    "trialRegion": {
                        "title": "Trial region",
                        "enum": [
                            "1",
                            "2",
                            "3"
                        ],
                        "type": "string",
                        "description": "Restrict to trials run only in the EEA, only outside it, or in both. Empty = no filter (mode=search)."
                    },
                    "sponsorType": {
                        "title": "Sponsor type",
                        "uniqueItems": true,
                        "type": "array",
                        "description": "Restrict to one or more sponsor organisation types. Empty = no filter (mode=search).",
                        "items": {
                            "type": "string",
                            "enum": [
                                "1",
                                "2",
                                "3",
                                "6",
                                "8"
                            ],
                            "enumTitles": [
                                "Educational Institution",
                                "Health care",
                                "Industry",
                                "Patient organisation/association",
                                "Hospital/Clinic/Other health care facility"
                            ]
                        },
                        "default": []
                    },
                    "hasResultsOnly": {
                        "title": "Has results only",
                        "type": "boolean",
                        "description": "Only emit trials that have published results (mode=search).",
                        "default": false
                    },
                    "isRareDiseaseOnly": {
                        "title": "Rare disease only",
                        "type": "boolean",
                        "description": "Only emit trials targeting a rare disease (mode=search).",
                        "default": false
                    },
                    "isLowInterventionOnly": {
                        "title": "Low-intervention trials only",
                        "type": "boolean",
                        "description": "Only emit trials classified as low-intervention (mode=search).",
                        "default": false
                    },
                    "hasOrphanDesignationOnly": {
                        "title": "Orphan designation only",
                        "type": "boolean",
                        "description": "Only emit trials involving a product with orphan drug designation (mode=search).",
                        "default": false
                    },
                    "ctNumbers": {
                        "title": "EU CT numbers (mode=byTrialId)",
                        "type": "array",
                        "description": "One or more EU CT numbers to fetch full trial detail for, e.g. `2023-509723-41-00`.",
                        "default": [],
                        "items": {
                            "type": "string"
                        }
                    },
                    "sortBy": {
                        "title": "Sort by (mode=search)",
                        "enum": [
                            "decisionDate",
                            "ctNumber"
                        ],
                        "type": "string",
                        "description": "Field to sort search results by.",
                        "default": "decisionDate"
                    },
                    "sortDirection": {
                        "title": "Sort direction (mode=search)",
                        "enum": [
                            "DESC",
                            "ASC"
                        ],
                        "type": "string",
                        "description": "Ascending or descending, used together with `Sort by`.",
                        "default": "DESC"
                    },
                    "maxItems": {
                        "title": "Max items",
                        "minimum": 1,
                        "maximum": 2000,
                        "type": "integer",
                        "description": "Hard cap on emitted records.",
                        "default": 5
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
