Vepler logo
Conservation & Nature API

The UK's protected nature, layered.

SSSIs, SACs, SPAs, Ramsar wetlands, ancient woodland, national parks and priority habitats, from the four national statutory bodies, served as map-ready geometry with each body's licence and attribution on every record. Protections overlap, and one call returns the stack, kept current with the source registers.

Read the Docs
Pixel-art plate of the Borrowdale valley in the Lake District, over which designation layers accumulate: the National Park point, the wooded SAC, SSSI and National Nature Reserve flanks, an ancient woodland parcel, and the River Derwent SAC
Borrowdale, Lake DistrictNational Park
GET /v1/conservation?point=54.52,-3.15&radius=250 → 1 designations

4

National custodians

10

Designation registers

1

Schema, stable ids

OGL

Open Government Licence

The stack

One point. Every protection on it.

Protected nature does not come one designation at a time. This is a real point in Borrowdale: a national park, a national nature reserve, two Special Areas of Conservation, an SSSI and ancient woodland cover the same ground, and each carries its own legal regime with its own consent rules. Miss one and a desk study is wrong.

Borrowdale, the Lake District · point=54.52,-3.15

One call at one pointNational Park
GET /v1/conservation?point=54.52,-3.15&radius=250

{
  "type": "national_park",
  "name": "Lake District",
  "designated": "1951",
  "area_ha": 236234,
  "custodian": "Natural England"
}

→ layer 1 of 6 in this response

GET /v1/conservation with a point returns every layer that covers it in one response, widest first. Six layers here, one payload. The answer is the stack, not the nearest match.

The reconciliation

Four statutory bodies. One record shape.

Natural England, NatureScot, Natural Resources Wales and Northern Ireland's DAERA each notify and map their own sites, in their own formats, on two different national grids, with their own update cycles. We reconcile all four into one schema, give every designation a stable identifier, and track changes as the custodians revise their registers.

Natural England

England · EPSG:27700

SSSINNRNational Park

NatureScot

Scotland · EPSG:27700

SSSINSAWild Land

Natural Resources Wales

Wales · EPSG:27700

SSSIAONBNNR

DAERA

Northern Ireland · EPSG:29903

ASSIRamsarMCZ
One schema24 designation types
id           stable across register revisions
designation  the nation's own term, never translated
geometry     EPSG:4326, reprojected from both grids
attribution  the statutory body, on every record

Designations are never translated. Northern Ireland's ASSI stays an ASSI, because presenting it as an SSSI would misstate the law that protects the land.

The alternative

The pipeline you don't have to build.

Without the API, conservation data is a project. Twenty-four designation types from four statutory bodies, each published its own way. Downloads that start going stale the day you fetch them. Reprojection from two national grids. MultiPolygons that arrive broken and need repair. Then a site is notified or a boundary amended, and your copy is quietly wrong.

What you'd build

NE · EnglandNatureScot · ScotlandNRW · WalesDAERA · N. Ireland

fetch

Twenty-four designation types from four statutory bodies, each published its own way.

reproject

British National Grid and Irish Grid into WGS84, without smearing a boundary.

repair

MultiPolygons that arrive self-intersecting and break spatial queries.

reconcile

Overlapping designations resolved per point: SSSI under SAC under national park.

watch

Notifications, amendments and denotifications, every cycle, forever.

host

The database, the spatial index and the uptime.

…every cycle, forever. Or:

What you call

We run that pipeline so you don't have to. Ingest, reconciliation, geometry repair and serving all happen on our infrastructure. You call one endpoint, and the stale-copy problem is ours.

One request
GET /v1/conservation?point=54.52,-3.15&radius=250

→ 200 OK · 6 designations, one stack

geometry      EPSG:4326, repaired, valid
regimes       the law named on every record
attribution   inline, the statutory body named
provenance    snapshot and source dates, on every response

Everything on the left, already done.

This is infrastructure, not a download. We run the pipeline; you build the product.

The record

Every record names the law that applies.

A stable identifier, the exact statutory regime, the custodian's own condition wording, the boundary as EPSG:4326 geometry, and Natural England's attribution inline. The record repeats the register rather than paraphrasing it.

Borrowdale Woodland Complex

Natural England · Lake District, Cumbria

SSSI
GET /v1/conservation/vco_des_01J9RVN8
 
{
"id": "vco_des_01J9RVN8",
"type": "site_of_special_scientific_interest",
"name": "Borrowdale Woodland Complex",
"jurisdiction": "england",
"regime": "Wildlife and Countryside Act 1981",
"condition": "Unfavourable - Recovering",
"custodian": "Natural England",
"geometry": {
"type": "Polygon",
"coordinates": [[
[-3.1581, 54.5243],
[-3.1449, 54.5228],
[-3.1467, 54.5138],
[-3.1602, 54.5170],
[-3.1581, 54.5243]
]]
},
"attribution": "© Natural England copyright. OGL v3.0.",
"provenance": {
"snapshotId": "conservation-20260618-01",
"sources": [{
"custodian": "Natural England",
"releaseDate": "2026-06-11",
"fetchedAt": "2026-06-13T02:47:31Z"
}]
}
}

The cycle

When the register moves, the API moves.

Designations move. Sites are notified and denotified, boundaries are amended, habitats are remapped. A shapefile you downloaded in the spring knows none of this.

The designation wireJun 2026
Thu11
Fri12
Sat13
Sun14
Mon15
Tue16
Wed17
Thu18

2026-06-11 · register release

Natural England amends a site notification

vco_des_01J9RWFN · boundary amended

2026-06-13 · ingested

fetched 02:47:31Z · reconciled · geometry validated

re-served under the same id vco_des_01J9RWFN

2026-06-18 · your next call

"id": "vco_des_01J9RWFN"

"snapshotId": "conservation-20260618-01"

"releaseDate": "2026-06-11"

"fetchedAt": "2026-06-13T02:47:31Z"

You never host a copy, so you never host a stale one.

The datasets

Every designation, on its own page.

Coverage follows what the statutory bodies publish. Each dataset page carries its own coverage, sources and schema, including what is not there yet.

The API

You already know how to query it.

Conservation answers the same location queries as the rest of the platform. Point, radius, bounding box or polygon, or a single designation by its identifier. One key, one schema, all four nations.

One call returns everything protecting a point. Over Borrowdale that is six overlapping designations, from the national park down to the woodland parcel — the same stack the plate above draws.

Query by point
GET /v1/conservation?point=54.52,-3.15

{
  "count": 6,
  "results": [
    {
      "id": "vco_des_01J9RTK2",
      "type": "national_park",
      "name": "Lake District"
    },
    {
      "id": "vco_des_01J9RSXE",
      "type": "national_nature_reserve",
      "name": "Borrowdale Rainforest"
    },
    {
      "id": "vco_des_01J9RQWD",
      "type": "sac",
      "name": "Borrowdale Woodland Complex"
    },
    {
      "id": "vco_des_01J9RVN8",
      "type": "site_of_special_scientific_interest",
      "name": "Borrowdale Woodland Complex"
    },
    {
      "id": "vco_des_01J9RWKM",
      "type": "ancient_woodland",
      "name": "Johnny Wood"
    },
    {
      "id": "vco_des_01J9RXDQ",
      "type": "sac",
      "name": "River Derwent & Bassenthwaite Lake"
    }
  ]
}

The use cases

Built for what you're building.

One API, four jobs. Each of these is a question the API answers in one request.

Desk studies

What protections sit on this land?

One point query returns the stack: SSSI, SAC, SPA, Ramsar, ancient woodland, each layer naming its statutory regime.

GET /v1/conservation?point=54.52,-3.15

HRA screening

Which protected sites are within 5 km?

Radius queries return the SACs, SPAs and Ramsar wetlands around a plan or project: the trigger list for a Habitats Regulations assessment.

GET /v1/conservation?point=...&radius=5000&types=sac,spa,ramsar

BNG and land tools

Which priority habitats does this parcel touch?

Polygon queries return habitat parcels with area computed from the geometry, ready for biodiversity net gain screening and land management products.

POST /v1/conservation/query · types=priority_habitat

Statutory bodies and LPAs

We already publish this. Why run a server too?

Publishing through the standard routes is the whole job. The layers arrive here hosted, versioned and queryable, alongside every neighbouring authority's. No GIS server to procure, no API to run.

One stack, served at /v1/conservation

Your GIS team has better things to do than stitch four custodians' registers back together every quarter.

The guarantees

Answers you can defend.

Licence

Open Government Licence sources, with each record carrying its register's licence terms inline.

Attribution

The custodian is named on every record, so attribution is never guesswork.

Provenance

Every response names its snapshot, the custodian's release date and the moment we ingested it.

Layering

Every designation at a point comes back in one response, each under its own stable id.

Frequently asked questions

Ready to build on
something you can trust?

View Docs