Discover/Nomisweb API
live

Nomisweb APInomisweb.co.uk

Access UK resident population estimates, qualification levels, and a full Nomis dataset catalogue via 3 structured API endpoints covering ONS labour market data.

Endpoint health
verified 7d ago
list_datasets
get_resident_population
get_qualifications
3/3 passing latest checkself-healing
Endpoints
3
Updated
22d ago

What is the Nomisweb API?

This API exposes 3 endpoints drawing from Nomis (Official Labour Market Statistics), the ONS-backed platform for UK labour and population data. Use get_resident_population to retrieve mid-year population estimates by local authority and year, get_qualifications to pull Annual Population Survey qualification counts for residents aged 16–64, or list_datasets to browse the full Nomis catalogue of labour market and census datasets.

Try it
Year for population estimates (e.g. 2023, 2022, 2021).
Name of the local authority area (e.g. Camden, Westminster, Islington, Hackney, Tower Hamlets).
api.parse.bot/scraper/e7adfedd-b405-4182-9141-8fe60da3c355/<endpoint>
Ready to send
Fill in the parameters and hit sign in to send to see live response data here.
Call it over HTTPgrab a free API key at signup
curl -X GET 'https://api.parse.bot/scraper/e7adfedd-b405-4182-9141-8fe60da3c355/get_resident_population?year=2023&area_name=Camden' \
  -H 'X-API-Key: $PARSE_API_KEY'
Python SDK · recommended

Typed, relational, agent-ready

A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.

  • Fully typed · autocompletes
  • Objects link to objects
  • Typed errors & pagination

Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:

uv add parse-sdk
uv run parse init
uv run parse add --marketplace nomisweb-co-uk-api

uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.

from parse_apis.nomis_web_api_scraper import Nomis, PopulationEstimate, QualificationReport, Dataset

nomis = Nomis()

# List all available datasets in the Nomis catalogue
for dataset in nomis.datasets.list():
    print(dataset.id, dataset.name)

# Retrieve resident population estimate for a specific area and year
estimate = nomis.populationestimates.get(area_name="Camden", year="2023")
print(estimate.area_name, estimate.geogcode, estimate.population_count, estimate.year)

# Retrieve qualification levels for an area
report = nomis.qualificationreports.get(area_name="Westminster", time_period="2023-12")
print(report.area_name, report.time_period)
for qual in report.qualifications:
    print(qual.qualification_level, qual.count, qual.status)
All endpoints · 3 totalmissing one? ·

Retrieve resident population estimates from ONS dataset NM_31_1 for a given local authority area and year. Returns a single observation with population count, ONS geography code, and data quality status. The underlying dataset covers mid-year population estimates for England and Wales local authorities.

Input
ParamTypeDescription
yearstringYear for population estimates (e.g. 2023, 2022, 2021).
area_namestringName of the local authority area (e.g. Camden, Westminster, Islington, Hackney, Tower Hamlets).
Response
{
  "type": "object",
  "fields": {
    "year": "integer, the year of the estimate",
    "status": "string, data quality status (e.g. Normal Value)",
    "geogcode": "string, ONS geography code (e.g. E09000007)",
    "area_name": "string, name of the geographic area",
    "population_count": "integer, resident population count"
  },
  "sample": {
    "data": {
      "year": 2023,
      "status": "Normal Value",
      "geogcode": "E09000007",
      "area_name": "Camden",
      "population_count": 217235
    },
    "status": "success"
  }
}

About the Nomisweb API

Endpoints and Response Data

The get_resident_population endpoint queries dataset NM_31_1 and returns a single observation per request, scoped by area_name (e.g. Camden, Westminster) and year. The response includes population_count, the ONS geogcode (e.g. E09000007), the area_name, the year, and a status field indicating data quality (e.g. "Normal Value"). Coverage spans mid-year population estimates for local authority areas in England and Wales.

Qualifications Data

The get_qualifications endpoint draws from NM_17_1 (Annual Population Survey) and returns counts broken down by RQF qualification level for people aged 16–64 in a given local authority. The time_period parameter accepts a YYYY-MM format string where the month is the survey end month (e.g. 2023-12 for Jan–Dec 2023). The response includes a qualifications array where each object carries qualification_level, count, and status. Some values may be suppressed for statistical disclosure reasons, in which case count returns as an empty string.

Dataset Catalogue

The list_datasets endpoint returns the full Nomis catalogue with no required inputs. Each item in the datasets array carries an id (e.g. NM_1_1) and a human-readable name. This is useful for discovering dataset identifiers covering unemployment, claimant counts, census tables, and more — identifiers that correspond to data accessible in the other endpoints.

Reliability & maintenanceVerified

The Nomisweb API is a managed, monitored endpoint for nomisweb.co.uk — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when nomisweb.co.uk changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.

This isn't an official nomisweb.co.uk API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.

Last verified
7d ago
Latest check
3/3 endpoints passing
Maintenance
Monitored & self-healing
Will this API break when the source site changes?+
It's built not to. Every endpoint is health-checked on a schedule with automated test probes. When the source site changes and a check fails, the API is automatically queued for repair and re-verified — that's the self-healing layer. Each API page shows when its endpoints were last verified. And because marketplace APIs are shared, any fix reaches everyone using it.
Is this an official API from the source site?+
No — Parse APIs are independent, managed REST wrappers over publicly available data. That is the point: where a site has no official API (or only a limited one), Parse gives you a maintained, monitored endpoint for that data and keeps it working as the site changes — so you get a stable contract over a source that never promised one.
Can I fix or extend this API myself if I need a new endpoint or field?+
Yes — and you don't have to wait on us. This API was generated by the Parse agent, which stays attached. Describe the change in plain English ("add an endpoint that returns reviews", "fix the price field") in the revise box on the API page or via the revise_api MCP tool, and the agent rebuilds it against the live site in minutes. Contributing the change back to the public API is free.
What happens if I call an endpoint that has an issue?+
Errors are machine-readable: a bad call returns a clean status with the list of available endpoints and a repair hint, so an agent (or you) can recover or trigger a fix instead of failing silently. Confirmed failures feed the automatic repair queue.
Common use cases
  • Mapping local authority population size over multiple years using population_count and geogcode fields.
  • Comparing RQF qualification attainment across London boroughs using get_qualifications time-series data.
  • Identifying the ONS geography code for a named area to cross-reference with other ONS or OS datasets.
  • Building a dashboard that tracks mid-year population changes by supplying different year values to get_resident_population.
  • Auditing available Nomis datasets via list_datasets before deciding which NM_ identifiers to query programmatically.
  • Flagging suppressed qualification counts in statistical analyses by checking the status field in the qualifications response.
  • Generating annual workforce skills reports for a specific local authority by combining population and qualification data.
Pricing & limitsSee full pricing →
TierPriceCredits/monthRate limit
Free$0/mo1005 req/min
Hobby$30/mo1,00020 req/min
Developer$100/mo5,000100 req/min

One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.

Frequently asked questions
Does Nomis have an official developer API?+
Yes. Nomis provides an official public API documented at https://www.nomisweb.co.uk/api/v01/help. It supports dataset queries, geography filtering, and time series extraction using URL parameters.
What does `get_qualifications` return when a value is statistically suppressed?+
When the ONS suppresses a qualification count for disclosure reasons, the count field in the relevant qualifications array object returns as an empty string rather than an integer. The status field accompanying that object indicates why the value is not reported.
Which geographies are covered by `get_resident_population`?+
The endpoint covers local authority areas in England and Wales, matching ONS mid-year population estimate coverage for dataset NM_31_1. Scottish and Northern Irish local authorities are not currently included. You can fork this API on Parse and revise it to add an endpoint targeting a different NM_ dataset that covers those geographies.
Can I retrieve claimant count or unemployment rate data through this API?+
Not currently. The three endpoints cover resident population estimates, RQF qualification levels, and the dataset catalogue. Claimant count and unemployment figures exist in other Nomis datasets (identifiable via list_datasets), but are not exposed as dedicated endpoints. You can fork this API on Parse and revise it to add an endpoint targeting the relevant NM_ dataset identifier.
How current is the population data returned by `get_resident_population`?+
The endpoint reflects ONS mid-year population estimate releases for NM_31_1. ONS publishes these annually, typically around a year after the reference date, so the most recent year available lags the current calendar year. Pass a specific year parameter to control which release year you retrieve.
Page content last updated . Spec covers 3 endpoints from nomisweb.co.uk.
Related APIs in Government PublicSee all →
worlddata.info API
Explore global statistics and compare countries across population, economy, demographics, quality of life, education, and health metrics. Search worldwide data on everything from life expectancy and languages to religions and regional breakdowns to gain comprehensive insights into how nations rank against each other.
worldometers.info API
Track current world population statistics, compare country rankings, and explore historical population trends and future projections. Monitor demographic changes across nations and understand global population dynamics in real-time.
naco.org API
Search and explore detailed U.S. county government information, including profiles, economic indicators, funding data, and research resources all in one place. Quickly access bulk county statistics and NACo insights to support planning, analysis, and decision-making at the local government level.
pharmdata.co.uk API
Search UK pharmacies, access NHS service statistics, and retrieve pharmacy dispensing data to compare performance across regions. Monitor MHRA drug safety alerts and view LPC rankings to make informed decisions about pharmacy services and medications.
data.stats.gov.cn API
Access comprehensive statistical data, economic indicators, and official reports from China's National Bureau of Statistics through simple searches and structured queries. Retrieve detailed articles, data releases, indicator trends, and downloadable documents to analyze China's economic and social statistics.
notgoingtouni.co.uk API
Search and discover apprenticeship opportunities across sectors and companies on NotGoingToUni.co.uk, filtering by opportunity types and viewing detailed information about specific roles. Browse featured apprenticeships and explore available sectors and employers to find the right career path.
data.ers.usda.gov API
Access comprehensive economic and demographic data for any US county, including unemployment rates, employment figures, income levels, poverty statistics, and population characteristics from the USDA Economic Research Service. Search and filter across all 3,143 US counties to analyze rural economic trends and county classifications for research, planning, or policy development.
data.unhcr.org API
Access comprehensive humanitarian data on refugee situations, population statistics, and operational information across countries and regions managed by UNHCR. Search and retrieve detailed documents, partner organizations, and country-specific insights to support humanitarian planning and research.