SourceFinch Verified · Economic indicators & prices
UK consumer price inflation (CPI annual rate), monthly
The UK Consumer Prices Index 12-month inflation rate (ONS series D7G7) for every month since 1989, one record per month, with the time the ONS last updated each value so revisions are visible.
- Healthy · 100% of observed runs successful
- Economic indicators & prices
- Office for National Statistics
- United Kingdom
- Publisher's public API
- 7 typed fields
At a glance
- Publisher
- Office for National Statistics · homepage
- Category
- Economic indicators & prices
- Jurisdiction
- United Kingdom
- Publisher updates
- Monthly, about the middle of the following month
- SourceFinch checks
- Daily by default
- Records per run
- 452 in the latest run
- Record key
period- Acquired from
- Publisher's public API:
https://www.ons.gov.uk/economy/inflationandpriceindices/timeseries/d7g7/mm23/data - Recipe
- v1.0.0, approved October 12, 2026
- Verified since
- October 12, 2026
- Last green run
- October 12, 2026
What the data contains
The Consumer Prices Index (CPI) is the UK's headline measure of consumer price inflation and the measure the Bank of England's 2% target refers to. The Office for National Statistics publishes the CPI all-items 12-month rate as time series D7G7 in its Consumer price inflation dataset (MM23), monthly, about the middle of the following month. This source reads the series' monthly observations from the ONS website's time-series data on each daily run and makes one record per month, keyed by the ONS period code (for example 2026 AUG), with the rate as a number in percent and the time the ONS last updated that value. A monitor reports each new month's figure on release day and any later revision. The series is national statistics and contains no personal data. SourceFinch is independent of the ONS.
Fields and types
Every record has these fields. The key field period identifies a record across runs, so changes are reported field by field.
| Field | Type | Description |
|---|---|---|
periodkey | string | ONS period code for the month (for example 2026 AUG), unique within the series. The record key. |
value | number | CPI all-items 12-month rate for the month, in percent. |
label | string, nullable | Display label of the period as published (the month and year). |
year | integer, nullable | Calendar year of the period. |
month | string, nullable | Month name of the period. |
updated_at | datetime, nullable | Time the ONS last updated this value (UTC); a revision shows as a later time. |
source_dataset | string, nullable | ONS dataset the value comes from. |
Sample output
The first 5 of 452 records from SourceFinch's own run on October 12, 2026, exactly as delivered.
| Field | Record 1 | Record 2 | Record 3 | Record 4 | Record 5 |
|---|---|---|---|---|---|
period | 1989 JAN | 1989 FEB | 1989 MAR | 1989 APR | 1989 MAY |
value | 4.9 | 5 | 5 | 5.3 | 5.3 |
label | 1989 JAN | 1989 FEB | 1989 MAR | 1989 APR | 1989 MAY |
year | 1989 | 1989 | 1989 | 1989 | 1989 |
month | January | February | March | April | May |
updated_at | 2015-10-12T23:00:00.000Z | 2015-10-12T23:00:00.000Z | 2015-10-12T23:00:00.000Z | 2015-10-12T23:00:00.000Z | 2015-10-12T23:00:00.000Z |
source_dataset | MM23 | MM23 | MM23 | MM23 | MM23 |
Sample as JSON
[
{
"year": 1989,
"label": "1989 JAN",
"month": "January",
"value": 4.9,
"period": "1989 JAN",
"updated_at": "2015-10-12T23:00:00.000Z",
"source_dataset": "MM23"
},
{
"year": 1989,
"label": "1989 FEB",
"month": "February",
"value": 5,
"period": "1989 FEB",
"updated_at": "2015-10-12T23:00:00.000Z",
"source_dataset": "MM23"
},
{
"year": 1989,
"label": "1989 MAR",
"month": "March",
"value": 5,
"period": "1989 MAR",
"updated_at": "2015-10-12T23:00:00.000Z",
"source_dataset": "MM23"
},
{
"year": 1989,
"label": "1989 APR",
"month": "April",
"value": 5.3,
"period": "1989 APR",
"updated_at": "2015-10-12T23:00:00.000Z",
"source_dataset": "MM23"
},
{
"year": 1989,
"label": "1989 MAY",
"month": "May",
"value": 5.3,
"period": "1989 MAY",
"updated_at": "2015-10-12T23:00:00.000Z",
"source_dataset": "MM23"
}
]Evidence behind every value
- Each run keeps the publisher's exact response, hashed with SHA-256. This sample came from a response with hash
1e610c9a632e63c26d7c7c1f4cb37483a54b1dfd15a70380f77164f1d7b4226f. - Every value records where it came from in that response: a JSON Pointer into the retained capture.
- Each run gets a signed manifest (Ed25519) timestamped by an RFC 3161 authority: this run's manifest hash is
978e78a420ab63b79eb6d7ade003cee40555d1c5ed92500d8a0b0d7ca5981f4c, timestamped October 12, 2026. - The compliance state at capture is recorded with the evidence: robots.txt hash and verdict, AI-preference signals, crawler identity and the usage rights below.
- Download any run as an evidence bundle (WACZ) and check it offline, without trusting SourceFinch:
sourcefinch verify-bundle run.wacz.
Terms posture and usage rights
- Terms
- Automated access permitted · publisher's terms
- robots.txt
- None published (HTTP 404); access allowed under RFC 9309
- AI-preference signals
- None observed at review
- Public record
- Yes. Office for National Statistics official statistics, Crown copyright, released under the Open Government Licence v3.0.
- Reviewed
- October 12, 2026; next review April 12, 2027
- Licence basis
- Open data licence (OGL-UK-3.0)
- Commercial use
- Allowed
- Redistribution
- Allowed
- Attribution
- Required (text below)
The Office for National Statistics' terms state that most content on its website is Crown copyright published under the Open Government Licence v3.0, which permits copying, publishing, adapting and commercial use with attribution, and that content is made available through feeds for other websites and applications; photographs, illustrations and other listed exemptions are outside the OGL. Users must not say their website is associated with or endorsed by the ONS. www.ons.gov.uk serves no robots.txt (HTTP 404), which RFC 9309 treats as allowing access, and the time-series data needs no key.
Source: Office for National Statistics (CPI annual rate, series D7G7), licensed under the Open Government Licence v3.0. SourceFinch is independent of and not endorsed by the ONS.
Usage rights travel with every record SourceFinch delivers (API, exports, webhooks and evidence bundles). They are our documented understanding of the publisher's stated terms, not legal advice.
Reliability
- Runs, last 30 days
- 1
- Green
- 100%
- Failed
- 0
- Median run time
- 0.8 s
- Latest run
- success, October 12, 2026
Measured on completed runs of this recipe version across SourceFinch, anonymized, within a rolling 30-day window. First successful observation: October 12, 2026. A new recipe has only the history collected since that date; this is not a 30-day uptime guarantee.
Use it
Every surface creates the same monitor from this Verified recipe. Monitors keep record history, report field-level changes and deliver by webhook, export or email. You confirm you have the right to collect the source (rights: true).
Console
Open this recipe in the console: it preserves the reviewed URL, fields and record key. Review the latest captured sample, confirm source rights, and choose a schedule before creating your monitor.
Portable recipe
Copy into the console's Import or share a recipe panel to customize fields, types and schedules. This configuration contains no captured records or workspace IDs.
{
"schema": "sourcefinch/source@1",
"name": "UK consumer price inflation (CPI annual rate), monthly",
"url": "https://www.ons.gov.uk/economy/inflationandpriceindices/timeseries/d7g7/mm23/data",
"recipe": {
"mode": "http",
"format": "json",
"items": "months[*]",
"fields": {
"year": "year",
"label": "label",
"month": "month",
"value": "value",
"period": "date",
"updated_at": "updateDate",
"source_dataset": "sourceDataset"
},
"required": [
"period",
"value"
],
"types": {
"updated_at": "datetime",
"value": "number",
"year": "integer"
}
},
"schedule": "daily",
"key_field": "period"
}source.json
The request body used by the API, CLI and SDK examples.
{
"name": "UK consumer price inflation (CPI annual rate), monthly",
"url": "https://www.ons.gov.uk/economy/inflationandpriceindices/timeseries/d7g7/mm23/data",
"recipe": {
"mode": "http",
"format": "json",
"items": "months[*]",
"fields": {
"year": "year",
"label": "label",
"month": "month",
"value": "value",
"period": "date",
"updated_at": "updateDate",
"source_dataset": "sourceDataset"
},
"required": [
"period",
"value"
],
"types": {
"year": "integer",
"value": "number",
"updated_at": "datetime"
}
},
"key_field": "period",
"schedule": "daily",
"rights": true,
"catalog": {
"slug": "ons-uk-cpi-annual-inflation-rate",
"version_id": "fd5ee367-a26c-4a28-b7c0-a7aad0e3fba0"
}
}REST API
Create an API key under Console → API keys. Reference: /docs/api.
# the Verified entry (fields, recipe, sample, terms) as JSON
curl https://sourcefinch.com/v1/catalog/ons-uk-cpi-annual-inflation-rate -H "Authorization: Bearer $SOURCEFINCH_API_KEY"
# create the monitor from source.json (below)
curl -X POST https://sourcefinch.com/v1/sources \
-H "Authorization: Bearer $SOURCEFINCH_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d @source.json
# then run it now (later runs follow the schedule)
curl -X POST https://sourcefinch.com/v1/sources/$SOURCE_ID/runs \
-H "Authorization: Bearer $SOURCEFINCH_API_KEY" \
-H "Idempotency-Key: $(uuidgen)"CLI
The sourcefinch CLI is not on npm yet; see /docs/cli.
sourcefinch login
sourcefinch catalog get ons-uk-cpi-annual-inflation-rate --source-json > source.json
sourcefinch sources create --file source.json
sourcefinch runs create $SOURCE_ID --wait
sourcefinch records $SOURCE_IDTypeScript SDK
The SDK is not on npm yet; see /docs/sdk.
import { SourceFinch } from "@sourcefinch/sdk";
const sf = new SourceFinch({ apiKey: process.env.SOURCEFINCH_API_KEY });
const entry = await sf.catalog.get("ons-uk-cpi-annual-inflation-rate");
const source = await sf.sources.create({
catalog: { slug: entry.slug, version_id: entry.recipe.version_id },
name: entry.name.slice(0, 100),
url: entry.acquisition_path.endpoint,
recipe: entry.recipe.definition,
key_field: entry.recipe.key_field,
schedule: entry.recipe.schedule,
rights: true, // you confirm you have the right to collect this source
});
const run = await sf.runs.wait((await sf.runs.create(source.id)).id);
console.log(run.status);MCP
Remote MCP server with OAuth; see /docs/mcp.
claude mcp add --transport http sourcefinch https://sourcefinch.com/mcp
# then ask your agent:
"Use SourceFinch to monitor UK consumer price inflation (CPI annual rate), monthly: get_catalog_source ons-uk-cpi-annual-inflation-rate,
then create_source with its create_source_args (dry run first), then run_source."Pricing
Each check is one run, whatever the number of records, and failed runs are free. On its default daily schedule this source uses about 30 runs a month, which fits the Free plan's 300 runs. It uses HTTP acquisition, so no browser runs are needed. See plans.
Guides using this source
Related sources
More from Office for National Statistics and in economic indicators & prices.
SourceFinch is independent and is not affiliated with or endorsed by Office for National Statistics. This page describes uk consumer price inflation (cpi annual rate), monthly as SourceFinch acquires it.