Government — entry 032 of 90
Gazette Data, UK
The Gazette publishes the UK's official public record — insolvencies, company notices, deceased-estates, and personal notices — as a keyless read API. A live GET against `thegazette.co.uk/all-notices/notice/data.json` returned `200` with full JSON and no `Access-Control-Allow-Origin` header, so cross-origin browser calls aren't supported without a proxy. The stored `OAuth` requirement was stale for reading: OAuth only gates the separate notice-publishing API used by legal filers, not the public search/read endpoints.
The Gazette is the UK's official public record — insolvencies, company notices, deceased-estates, and personal notices — served as a keyless read API that transcodes its underlying Atom feed straight into JSON rather than a native JSON shape. A live GET this run against /all-notices/notice/data.json?results-page-size=1 returned a genuine 200, 3,188 B document at content-type: application/json;charset=UTF-8, with no access-control-allow-origin header on any probe — browser code needs a server-side proxy. The stored OAuth requirement was already known to be stale for reading: OAuth only gates the separate notice-*publishing* API used by legal filers, confirmed live again this run.
GreatAPIs Score
Auth quickstart
- No API key, signup, or credit card required for reading — a live GET this run against
/all-notices/notice/data.json?results-page-size=1returned a full result set on the first anonymous try. Category-scoped feeds work the same way with no extra auth: a live GET against/insolvency/notice/data.json?results-page-size=1this run also returned 200, 3,181 B.
Your key is stored only in this browser (localStorage) and sent directly to the API — never to greatapis.
Search all notices, one result page
GEThttps://www.thegazette.co.uk/all-notices/notice/data.json?results-page-size=1
{
"id": "https://www.thegazette.co.uk/all-notices/notice/data.feed?results-page-size=1&results-page=1",
"link": [
{
"@href": "https://www.thegazette.co.uk/all-notices/notice/data.feed?results-page-size=1&results-page=1",
"@rel": "alternate",
"@type": "application/atom+xml",
"@title": "ATOM"
},
{
"@href": "https://www.thegazette.co.uk/all-notices/notice/data.htm?results-page-size=1&results-page=1",
"@rel": "alternate",
"@title": "HTML",
"@type": "application/xhtml+xml"
}
],
"title": "Search Result",
"updated": "2026-08-01T20:03:11.571206Z",
"f:page-number": "1",
"f:page-size": "1",
"f:page-start": "1",
"f:page-stop": "1",
"f:total": "9217334",
"f:total-errors": "1893",
"entry": [
{
"id": "https://www.thegazette.co.uk/id/notice/5183736",
"f:status": "published",
"f:notice-code": "2509",
"title": "Jane HANCOX",
"link": [
{ "@href": "https://www.thegazette.co.uk/id/notice/5183736", "@rel": "self" },
{ "@href": "https://www.thegazette.co.uk/notice/5183736" }
],
"category": { "@term": "Notice of Intended Dividends" },
"content": "<div><p>In the County Court at Torquay and Newton Abbot No 460 of 2006 Bankruptcy order date: 11 July 2006...</p></div>"
}
]
}The full live response above is 3,188 B; f:total reports 9,217,334 total notices as of this run, and the link array (2 of 6 shown here, trimmed) also carries first/next/last pagination links alongside the ATOM/HTML alternates shown.
Try it
Developer reference
https://www.thegazette.co.uk5 requests every 10 seconds, per thegazette.co.uk/fair-use-policy
- GET/all-notices/notice/data.json
- GET/insolvency/notice/data.json
Gotchas & limits
- Keys mix Atom-namespace prefixes and XML-attribute markers instead of being plain JSON — confirmed live above: counts live under
f:total/f:page-size(anf:prefix from the feed's own XML namespace), and everylinkentry uses@href/@rel/@typekeys (an@prefix marking a former XML attribute). Code written for a typical JSON API's flattotal/hrefkeys will findundefinedhere. - Every numeric-looking count is a quoted string, not a JSON number — confirmed live above:
"f:total": "9217334"and"f:page-size": "1"are both strings. Code that sums or compares these directly withoutparseIntfirst will concatenate instead of adding. - A zero-result query drops the
entrykey entirely rather than returning an empty array — confirmed live this run against/all-notices/notice/data.json?text=zzzznonexistentqueryxyzzzz12345, which returned 200, 1,251 B with"f:total": "0"and noentrykey anywhere in the document. Code that readsresponse.entry.lengthunconditionally will throwCannot read properties of undefinedon a no-match search instead of seeing zero results. results-page-sizeis silently capped at 100, not honored above it — confirmed live this run: requesting99returns exactly 99 entries,100returns exactly 100, but101,150, and500all silently return only 100 entries ("f:page-size": "100"in every one of those responses, never the requested value). Code that requests a large page expecting it back in full will silently get truncated results with no error or warning.