Urban Observatory (Newcastle) API
Free Newcastle Urban Observatory API with no key: hundreds of live building and city sensors streaming air quality, climate, occupancy and energy readings. Tested example.
Endpoint tested and returned HTTP 200 on 2026-08-21
What is the Urban Observatory (Newcastle) API?
The Newcastle Urban Observatory runs the UK's largest set of publicly available real-time urban sensor data, exposed through a free API needing no key. It covers hundreds of entities — building floors, streets, weather stations — each carrying multiple metric feeds such as air quality, temperature, occupancy and energy use.
The data model here is three levels deep and worth understanding before you write any code. An `entity` is a place — "Urban Sciences Building: Floor 1" — carrying a `meta` object describing it and an array of `feed` objects. Each feed is one metric being measured at that place, identified by a `metric` string such as `BMSTimeSwitch`, with its own hardware, technology and provider attached. Readings hang off feeds, not entities, so a query that stops at the entity level returns structure but no numbers.
The `provider` block on every feed is the part that makes this credible for research use: it names the organisation, whether it is private sector, and carries contact details, so you can trace any reading back to whoever installed and maintains the sensor. Pagination is straightforward — 616 entities across 62 pages of 10 at the time of testing — but `position` is frequently an empty array for indoor sensors, since a room inside a building has no meaningful single coordinate. Do not assume every entity can be mapped.
Quick facts
- Base URL
https://api.usb.urbanobservatory.ac.uk/api/v2.0a- Authentication
- No API key or registration. The Observatory is a Newcastle University research facility publishing its data openly.
- Rate limit
- No published limit. This is university research infrastructure — poll sensibly and cache the entity list, which changes rarely.
- Pricing
- Free. Data is published for research and public use; cite the Urban Observatory when publishing results.
- CORS
- Enabled — callable directly from browser JavaScript
- Official docs
- Read the docs
How to use the Urban Observatory (Newcastle) 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. List Urban Observatory sensor entities
GET https://api.usb.urbanobservatory.ac.uk/api/v2.0a/sensors/entity?limit=1
curl 'https://api.usb.urbanobservatory.ac.uk/api/v2.0a/sensors/entity?limit=1'const res = await fetch("https://api.usb.urbanobservatory.ac.uk/api/v2.0a/sensors/entity?limit=1");
if (!res.ok) throw new Error(`Request failed: ${res.status}`);
const data = await res.json();
console.log(data);import requests
res = requests.get("https://api.usb.urbanobservatory.ac.uk/api/v2.0a/sensors/entity?limit=1", timeout=20)
res.raise_for_status()
print(res.json()){
"pagination": {
"pageNumber": 1,
"pageSize": 10,
"pageCount": 62,
"total": 616
},
"items": [
{
"entityId": "970d26c6-37c3-49e4-b2f8-00db042ac3eb",
"name": "Urban Sciences Building: Floor 1",
"meta": {
"building": "Urban Sciences Building",
"buildingFloor": "1"
},
"position": [],
"feed": [
{
"feedId": "bdefbeb4-4a16-4647-97d4-4d3ce3083005",
"metric": "BMSTimeSwitch",
"hardwareId": null,
"meta": {},
"hardware": null,
"technology": null,
"provider": {
"providerId": "d8bdbef0-d499-448c-9106-ac9916fd7ee9",
"licence": {
"licenceId": "124d6e24-62b2-40cc-b85d-69cc0fa9471a",
"name": "Urban Observatory: Open data",
"url": "http://www.urbanobservatory.ac.uk/",
"description": {
"open": true
}
},
"contact": {
"contactId": "19c2aabb-33d0-47f1-a4f5-3fbfe3c7bcf0",
"name": "Urban Observatory",
"email": "urbanobservatory@ncl.ac.uk",
"phone": "0191 208 8599"
},
"organisation": {
"organisationId": "2567c616-43f3-4b6b-930b-126ba9ad51c8",
"name": "Urban Observatory",
"url": "http://www.urbanobservatory.ac.uk/",
"privateSector": false
}
},
"brokerage": [
{
"brokerageId": "22feca2b-ded8-476e-92df-a325b923ee55",Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
limit | query | Optional | Entities per page. The default page size is 10. 1 |
page | query | Optional | Page number; `pagination.pageCount` tells you the maximum. 2 |
/sensors/entity | path | Optional | The entity list — places carrying sensor feeds. /sensors/entity |
/sensors/entity/{entityId} | path | Optional | One entity with its full feed list. /sensors/entity/970d26c6-... |
/sensors/feed/{feedId}/timeseries | path | Optional | Historic readings for one feed. /sensors/feed/bdefbeb4-.../timeseries |
Response fields
paginationobject- `pageNumber`, `pageSize`, `pageCount` and `total` — 616 entities over 62 pages when tested.
itemsarray- The entities.
items[].entityIdstring- UUID for the place. Use it to fetch full feed detail.
items[].namestring- Human name such as `Urban Sciences Building: Floor 1`.
items[].metaobject- Descriptive attributes — `building`, `buildingFloor` and similar, varying by entity type.
items[].positionarray- Coordinates, frequently empty for indoor sensors that have no single meaningful point.
items[].feedarray- The metrics measured at this entity. Readings hang off feeds, not entities.
feed[].feedIdstring- UUID for the individual metric stream — the key for time series queries.
feed[].metricstring- What is being measured, for example `BMSTimeSwitch` or an air quality parameter.
feed[].providerobject- Operating organisation with `name`, `url`, a `privateSector` flag and contact details.
What you can build with the Urban Observatory (Newcastle) API
- Plot live air quality readings across Newcastle
- Study building occupancy and energy patterns from real sensors
- Feed a smart city dashboard with genuine live urban data
- Correlate traffic, weather and pollution measurements
- Teach IoT and time series analysis with real-world data
Common errors and how to fix them
Entities returned but no readings
Readings hang off feeds, not entities.
Fix: Take `feedId` from the entity's `feed` array and query the timeseries endpoint for that feed.
Cannot map an entity
`position` is empty for indoor sensors.
Fix: Check the array is non-empty before mapping, and fall back to the `meta.building` value for a label.
Only 10 items returned
That is the default page size.
Fix: Set `limit` and page using `pagination.pageCount`, which reports the true number of pages.
Timeouts on broad queries
It is research infrastructure, not a commercial CDN.
Fix: Cache the entity list, request specific feeds rather than everything, and back off on failure.
Urban Observatory (Newcastle) API — frequently asked questions
Is the Urban Observatory API free?
Yes, no key and no registration. It is a Newcastle University research facility that publishes its sensor data openly, and asks only that you cite it in published work.
What is the difference between an entity and a feed?
An entity is a place, such as a building floor or a street site. A feed is one metric measured at that place. Readings belong to feeds, so you always drill from entity to feed before requesting numbers.
How much data is there?
616 entities at the time of testing, each carrying several feeds, which makes it the largest publicly available set of real-time urban sensor data in the UK. Historic time series are available per feed.
Why do some sensors have no coordinates?
Indoor sensors — a room or a floor within a building — have no single meaningful latitude and longitude, so `position` comes back empty. Use the `meta` object, which names the building and floor, for those.
Tools that pair with this API
JSON to CSV Converter
Convert a JSON array of objects to CSV online. Automatic column headers from the union of all keys, delimiter choice and proper quoting — all in-browser.
JSON Path Finder
Evaluate a dot/bracket path against your JSON and list every leaf path for discovery. Free online JSON path finder that runs 100% in your browser.
Timestamp Converter
Convert timestamps to human-readable dates and dates back to timestamps. Auto-detects seconds vs milliseconds, shows local, UTC and ISO 8601 formats.
Urban Observatory (Newcastle) 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.