council spending data currently shows transactions from london and greater manchester councils only. more councils coming soon.

Public Listener API

Search and analyse how UK councils spend public money. The API serves individual supplier payments (typically £500 and over) compiled from the transparency data councils publish, plus awarded contract notices from the UK Contracts Finder.

Free to use. No API key required. Data is updated daily.

https://council-api.arrakis.house/api

What's inside#

DatasetWhat it is
TransactionsIndividual council payments to suppliers: date, vendor, amount, category, purpose
CouncilsThe local authorities covered, with population and publishing details
Awarded contractsPublic contract awards: title, supplier, value, dates, SME/VCSE flags

Coverage#

39 local authorities across Greater Manchester and London, including the GMCA. Spending data runs from April 2025 onward; how complete each council's record is varies with what that council has published — see the live Coverage page for the current per-council picture.

REST API

All endpoints are GET and return JSON. Councils are identified by their slug (e.g. manchester, tower-hamlets) — get the full list from /councils. Fiscal years follow the UK convention (April–March): fiscalYear=2025 means April 2025 – March 2026.

Councils#

GET /councils

All covered councils with slug, display name, population and publishing details.

curl "https://council-api.arrakis.house/api/councils"

GET /councils/coverage

Per-council data coverage: date range and transaction count. This is what the Coverage page renders.

curl "https://council-api.arrakis.house/api/councils/coverage"

Transactions#

GET /transactions

The main listing. Filter and page through payments.

ParameterTypeNotes
councilstringcouncil slug
fiscalYearinte.g. 2025 for FY 2025/26
vendorSearchstringcase-insensitive supplier match
startDate / endDatedateISO dates, inclusive
page / pageSizeintdefaults 1 / 50
curl "https://council-api.arrakis.house/api/transactions?council=manchester&fiscalYear=2025&pageSize=2"
{
  "council": "Manchester City Council",
  "totalCount": 95613,
  "page": 1,
  "pageSize": 2,
  "totalPages": 47807,
  "transactions": [
    {
      "id": 1550259,
      "date": "2025-12-02T00:00:00",
      "vendor": "Master Moves Ltd",
      "amount": 1577.59,
      "currency": "GBP",
      "category": "Equipment",
      "purpose": "Removal Services",
      "councilName": "Manchester City Council"
    }
  ]
}

GET /transactions/search

Quick vendor search, optionally scoped to a council.

curl "https://council-api.arrakis.house/api/transactions/search?vendor=Amazon&council=hackney"

GET /transactions/summary

Totals for one council: ?council=<slug>.

GET /transactions/fiscal-years

Which fiscal years have data, optionally per council.

GET /transactions/export

Same filters as /transactions, returns a CSV download.

curl -o spending.csv "https://council-api.arrakis.house/api/transactions/export?council=salford&fiscalYear=2025"

Awarded contracts#

GET /awardedcontracts

Search public contract awards.

ParameterTypeNotes
searchstringmatches title, description, supplier
organisationstringexact awarding body name
minValue / maxValuedecimalawarded value range (GBP)
awardedFrom / awardedTodateaward date range
page / pageSizeintdefaults 1 / 50
curl "https://council-api.arrakis.house/api/awardedcontracts?search=housing&minValue=100000"

GET /awardedcontracts/organisations

The awarding bodies present in the data.

GET /awardedcontracts/stats

Headline statistics across the contracts dataset.

Data dictionary

Transaction fields#

FieldMeaning
datePayment date as reported by the council
vendorSupplier / beneficiary name as published. Names are not normalised — the same company can appear under several spellings
amountPayment value in GBP. Usually net of VAT, but this varies by council's published format
currencyAlways GBP at present
categoryThe council's own category label (e.g. service area, merchant category). Vocabulary differs per council
purposeFree-text description of what the payment was for, where the council publishes one
councilNameThe paying authority

Things to know before analysing#

  • Negative amounts are real — they are credits and refunds, not errors.
  • Fiscal years run April–March. fiscalYear=2025 covers 1 April 2025 to 31 March 2026. A payment in January 2026 belongs to fiscal year 2025.
  • Thresholds vary. Most councils publish payments of £500 and over; some publish from £250. Absence of small payments is a publishing choice, not missing data.
  • Categories are not comparable across councils. Each council uses its own labels; comparing categories between councils requires your own mapping.
  • Occasional date outliers exist in source data (e.g. clearly wrong years on a handful of rows). They are preserved as published.

Contract fields#

FieldMeaning
title / descriptionThe contract notice text
awardedSupplierWinning supplier
awardedValueAwarded value in GBP
awardedDate / publishedDateAward and publication dates
organisationThe awarding public body
awardedToSme / awardedToVcseWhether the winner is a small/medium enterprise or a voluntary/community organisation
cpvDescriptionProcurement classification (CPV) description

Fair use

  • No authentication and no API key. Please be reasonable: the data changes once a day, so there is nothing to gain from polling faster.
  • Bulk needs are better served by the CSV export endpoint than by paging through thousands of JSON requests.
  • No SLA — this is an independent project. Endpoints may evolve; changes will be noted on this page.
  • The underlying data is public sector transparency data published by the councils themselves. If you build something on this API, attribution to Public Listener is appreciated but not required.