UK Health Time Series: Cases, Admissions, Tests, Vaccinations by Area (UKHSA Data Dashboard)
ukhsadashboard/metric-timeseries
Time series from the UKHSA (UK Health Security Agency) data dashboard: one health metric for one area, such as daily COVID-19 PCR tests in England or weekly influenza hospital admission rate by age band. Each row has the date, epiweek, age band, sex, stratum and `metric_value`. Filter by year, date, epiweek, age, sex or stratum. Rows come oldest first in pages of up to 365 (default 30); `count` gives the total and `next` the following page, so for the newest data filter by the current `year`. Points still in the reporting delay are flagged. Discover the path values with the topics, geography-types, geographies and metrics tools. A combination with no data returns count 0 and an empty list. Contains public sector information licensed under the Open Government Licence v3.0 (source: UKHSA data dashboard); served by Eden Engine, not an official UKHSA product.
Price
$0.0026 per call
You pay the price shown. If a call turns out to cost more than its quote, you pay the actual price, capped at twice the quote. No monthly minimum. Top-ups start at $5.
Data source
Contains public sector information licensed under the Open Government Licence v3.0. Source: UKHSA data dashboard. Served by Eden Engine; not an official UKHSA product.
Use it
Five steps: search, inspect, learn, run, settle. No per-tool setup; your agent reaches this tool through the meta-tools it already has.
Connect once and your AI can find and run this tool, and any other it needs.
// 1. search: find the tool
omnial_search({ query: "what you need" })
// 2. inspect: price and input schema
omnial_inspect({ tool: "ukhsadashboard/metric-timeseries" })
// 3. learn: read the usage guide at runtime
omnial_learn({ tool: "ukhsadashboard/metric-timeseries" })
// 4. run: price the exact call first, then run it
omnial_execute({ tool: "ukhsadashboard/metric-timeseries", input: { /* see input_schema */ }, dry_run: true })
omnial_execute({ tool: "ukhsadashboard/metric-timeseries", input: { /* ... */ } })
// 5. settle: the call is charged when it finishes, nothing to doNot connected yet? Point your MCP client at https://mcp.eden-engine.com/mcp, then copy a config for your client.
Pricing
Every charge this tool can incur.
| Charge | Price |
|---|---|
Per call | $0.0026 |
- Updated
- Oct 20, 2026
Input and output schemas
Input schema
{
"type": "object",
"required": [
"theme",
"sub_theme",
"topic",
"geography_type",
"geography",
"metric"
],
"properties": {
"age": {
"type": "string",
"pattern": "^[A-Za-z0-9][A-Za-z0-9+_-]{0,15}$",
"description": "Only this age band exactly as the data writes it, for example 55-64, 00-04 or all. Which bands exist depends on the metric."
},
"sex": {
"enum": [
"all",
"f",
"m"
],
"type": "string",
"description": "Only this sex: all, f or m. Many metrics only carry `all`."
},
"date": {
"type": "string",
"pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$",
"description": "Only the row for this date, YYYY-MM-DD."
},
"page": {
"type": "integer",
"maximum": 100000,
"minimum": 1,
"description": "Page number, from 1. Follow `next` in the response for the following page; a page past the end is an error."
},
"year": {
"type": "integer",
"maximum": 2100,
"minimum": 2000,
"description": "Only rows recorded in this calendar year, for example 2025. Use the current year to get the newest data."
},
"theme": {
"type": "string",
"pattern": "^[A-Za-z0-9][A-Za-z0-9_-]{0,59}$",
"description": "Top-level theme: climate_and_environment, immunisation, infectious_disease or medicines."
},
"topic": {
"type": "string",
"pattern": "^[A-Za-z0-9][A-Za-z0-9_-]{0,59}$",
"description": "A topic name exactly as the topics tool lists it, for example COVID-19, Influenza or RSV (case matters)."
},
"metric": {
"type": "string",
"pattern": "^[A-Za-z0-9][A-Za-z0-9_.-]{0,99}$",
"description": "A metric id exactly as the metrics tool lists it, for example COVID-19_testing_PCRcountByDay."
},
"epiweek": {
"type": "integer",
"maximum": 53,
"minimum": 1,
"description": "Only rows in this epidemiological week number (1 to 53); combine with `year`."
},
"stratum": {
"type": "string",
"pattern": "^[A-Za-z0-9][A-Za-z0-9 _.+-]{0,59}$",
"description": "Only this stratum (the finest subgroup a metric is split by), for example default."
},
"geography": {
"type": "string",
"pattern": "^[A-Za-z0-9][A-Za-z0-9 ,.'()&_-]{0,79}$",
"description": "A geography name exactly as the geographies tool lists it, for example England or East Midlands."
},
"page_size": {
"type": "integer",
"default": 30,
"maximum": 365,
"minimum": 1,
"description": "Rows per page, 1 to 365 (the dashboard's own maximum). Defaults to 30."
},
"sub_theme": {
"type": "string",
"pattern": "^[A-Za-z0-9][A-Za-z0-9_-]{0,59}$",
"description": "Sub-theme within the theme. climate_and_environment: chemical_exposure, seasonal_environmental, vectors. immunisation: childhood-vaccines. infectious_disease: antimicrobial_resistance, bloodborne, bloodstream_infection, childhood_illness, contact, gastrointestinal, invasive_bacterial_infections, respiratory, vaccine_preventable, vector_borne. medicines: antimicrobials."
},
"geography_type": {
"type": "string",
"pattern": "^[A-Za-z0-9][A-Za-z0-9 ,.'()&_-]{0,79}$",
"description": "A geography type exactly as the geography-types tool lists it, for example Nation, UKHSA Region, NHS Region, Upper Tier Local Authority. Spaces are fine."
}
},
"additionalProperties": false
}Output schema
{
"type": "object",
"required": [
"count",
"results"
],
"properties": {
"next": {
"type": [
"string",
"null"
],
"description": "Link to the next page, null on the last page."
},
"count": {
"type": "integer",
"description": "How many rows match the filters in total, across all pages."
},
"results": {
"type": "array",
"items": {
"type": "object",
"required": [
"metric",
"date",
"metric_value"
],
"properties": {
"age": {
"type": "string",
"description": "Age band such as 55-64, or all."
},
"sex": {
"type": "string",
"description": "all, f or m."
},
"date": {
"type": "string",
"description": "The date the data point relates to, YYYY-MM-DD."
},
"year": {
"type": "integer"
},
"month": {
"type": "integer"
},
"theme": {
"type": "string"
},
"topic": {
"type": "string"
},
"metric": {
"type": "string"
},
"epiweek": {
"type": "integer"
},
"stratum": {
"type": "string"
},
"geography": {
"type": "string"
},
"sub_theme": {
"type": "string"
},
"metric_group": {
"type": "string"
},
"metric_value": {
"type": [
"number",
"null"
],
"description": "The recorded value; its unit is given by the metric name (count, rate, percentage)."
},
"geography_code": {
"type": "string",
"description": "ONS geography code, for example E92000001 for England."
},
"geography_type": {
"type": "string"
},
"in_reporting_delay_period": {
"type": "boolean",
"description": "True while the point is inside the reporting delay and may still be revised."
}
},
"additionalProperties": true
}
},
"previous": {
"type": [
"string",
"null"
]
}
},
"additionalProperties": true
}