BYTETOOLS

Bank of England IADB API

Free Bank of England Interactive Database with no key: SONIA, Bank Rate, gilt yields and UK monetary series as CSV by series code and date range. Tested example.

No API key requiredHTTPSFree tier

Endpoint tested and returned HTTP 200 on 2026-08-21

What is the Bank of England IADB API?

The Bank of England's Interactive Database serves its published statistics as free CSV over HTTP with no key. A request names one or more series codes and a date range, and returns one dated row per observation.

The Interactive Database predates the fashion for JSON APIs and it shows — the endpoint is an `.asp` script with a dozen query parameters, several of which look like relics. They are not optional decoration: `csv.x=yes` is what switches the response from an HTML page to a file, and `UsingCodes=Y` is what makes `SeriesCodes` mean series codes rather than menu positions. Get the incantation right once and it is completely stable.

The output is business-days-only and silently so. A request covering July 2026 returns roughly 22 rows, not 31, because weekends and English bank holidays are simply absent rather than present with null values. Any code computing an average over a period, or joining against a calendar-day series, has to handle that gap explicitly — reindexing a sparse business-day series onto calendar days with forward fill is usually what you actually want.

Quick facts

Base URL
https://www.bankofengland.co.uk/boeapps/iadb
Authentication
No key or registration required. The database is a public Bank of England publication.
Rate limit
No documented limit. Daily series update once per working day.
Pricing
Free.
CORS
Not enabled — call it from your server
Official docs
Read the docs

How to use the Bank of England IADB API

Every request below was executed against the live API on 2026-08-21, and the response shown is the real body it returned — not an illustration.

1. Daily SONIA rate from 1 July to 20 August 2026

GET https://www.bankofengland.co.uk/boeapps/database/_iadb-FromShowColumns.asp?csv.x=yes&Datefrom=01/Jul/2026&Dateto=20/Aug/2026&SeriesCodes=IUDSOIA&CSVF=TN&UsingCodes=Y&VPD=Y&VFD=N

curl
curl 'https://www.bankofengland.co.uk/boeapps/database/_iadb-FromShowColumns.asp?csv.x=yes&Datefrom=01/Jul/2026&Dateto=20/Aug/2026&SeriesCodes=IUDSOIA&CSVF=TN&UsingCodes=Y&VPD=Y&VFD=N'
JavaScript (fetch)
const res = await fetch("https://www.bankofengland.co.uk/boeapps/database/_iadb-FromShowColumns.asp?csv.x=yes&Datefrom=01/Jul/2026&Dateto=20/Aug/2026&SeriesCodes=IUDSOIA&CSVF=TN&UsingCodes=Y&VPD=Y&VFD=N");
if (!res.ok) throw new Error(`Request failed: ${res.status}`);
const data = await res.json();
console.log(data);
Python (requests)
import requests

res = requests.get("https://www.bankofengland.co.uk/boeapps/database/_iadb-FromShowColumns.asp?csv.x=yes&Datefrom=01/Jul/2026&Dateto=20/Aug/2026&SeriesCodes=IUDSOIA&CSVF=TN&UsingCodes=Y&VPD=Y&VFD=N", timeout=20)
res.raise_for_status()
print(res.json())
Response — HTTP 200
DATE,IUDSOIA
01 Jul 2026,3.7309
02 Jul 2026,3.7305
03 Jul 2026,3.7302
06 Jul 2026,3.7297
07 Jul 2026,3.7297
08 Jul 2026,3.7303
09 Jul 2026,3.7311
10 Jul 2026,3.731
13 Jul 2026,3.7308
14 Jul 2026,3.7311
15 Jul 2026,3.7308
16 Jul 2026,3.7308
17 Jul 2026,3.7307
20 Jul 2026,3.7307
21 Jul 2026,3.7302
22 Jul 2026,3.7303
23 Jul 2026,3.731
24 Jul 2026,3.7307
27 Jul 2026,3.7312
28 Jul 2026,3.7316
29 Jul 2026,3.7313
30 Jul 2026,3.732
31 Jul 2026,3.7313
03 Aug 2026,3.7321
04 Aug 2026,3.7318
05 Aug 2026,3.7313
06 Aug 2026,3.7323
07 Aug 2026,3.7318
10 Aug 2026,3.7315
11 Aug 2026,3.7315
12 Aug 2026,3.731
13 Aug 2026,3.7308
14 Aug 2026,3.7307
17 Aug 2026,3.7312
18 Aug 2026,3.7311
19 Aug 2026,3.7313

Parameters

ParameterTypeRequiredDescription
SeriesCodesqueryRequiredComma-separated Bank of England series codes. `IUDSOIA` is SONIA, `IUDBEDR` is Bank Rate. IUDSOIA
Datefrom / DatetoqueryRequiredDate range in `DD/Mon/YYYY` form, for example `01/Jul/2026`. 01/Jul/2026
csv.xqueryRequiredSet to `yes` to receive CSV rather than an HTML page. yes
UsingCodesqueryRequired`Y` to interpret `SeriesCodes` as codes. Y
CSVFqueryOptionalColumn layout. `TN` gives dates in rows with a name header. TN
VPD / VFDqueryOptionalVintage flags controlling whether provisional and first-release values are included. Y

Response fields

DATEcolumn
Observation date as `DD Mon YYYY`, business days only.
{series code}column
One column per requested series, holding the observation as a decimal number.
(missing rows)n/a
Weekends and English bank holidays are absent from the output rather than present as blanks.

What you can build with the Bank of England IADB API

  • Show the current SONIA or Bank Rate on a UK finance page
  • Pull a gilt yield series for a chart without scraping a PDF
  • Load UK monetary statistics into a spreadsheet directly as CSV
  • Request several related series in one call by comma-separating the codes

Common errors and how to fix them

HTML page instead of CSV

`csv.x=yes` was missing.

Fix: The parameter name contains a dot and must be sent literally; some query builders mangle it.

Empty file or header only

The series code is wrong, or `UsingCodes=Y` is missing.

Fix: Without `UsingCodes=Y` the codes are not interpreted as codes and nothing matches.

Fewer rows than days

Not an error — the series is business days only.

Fix: Reindex onto a calendar if you need one row per day, and decide explicitly whether to forward-fill.

302 redirect

The endpoint redirects to a `_iadb-FromShowColumns.asp` path.

Fix: Follow redirects. Most HTTP clients do so by default; some CLI configurations do not.

Bank of England IADB API — frequently asked questions

Is Bank of England data free to access programmatically?

Yes. The Interactive Database serves CSV over plain HTTP with no key or registration, and the Bank publishes the series codes openly.

What is the series code for SONIA?

`IUDSOIA` is the daily SONIA rate. `IUDBEDR` is the official Bank Rate. The database's search interface lists codes for every published series.

Why does my date range return fewer rows than days?

Because the series only publishes on business days. Weekends and English bank holidays produce no row at all rather than a null, so the gaps are invisible unless you check the dates.

Is there a JSON version of this API?

No. The Interactive Database returns CSV or HTML only. Convert once at your boundary — the CSV layout is stable and has been for years.

Tools that pair with this API

Bank of England IADB is an independent third-party service and is not affiliated with ByteTools or ByteVancer. Details on this page were verified on 2026-08-21; always check the official documentation before relying on this API in production, as terms and limits can change.