# UK Renewable Project Pipeline Records — DESNZ REPD (`nexgensignal/uk-renewable-project-pipeline-records`) Actor

Keyless pay-per-record UK DESNZ Renewable Energy Planning Database (REPD) — operator (org), technology, installed capacity, development status, location, planning milestones. Site address excluded; no person data. OGL v3.0.

- **URL**: https://apify.com/nexgensignal/uk-renewable-project-pipeline-records.md
- **Developed by:** [NexGen Signal](https://apify.com/nexgensignal) (community)
- **Categories:** Business, Developer tools
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $33.50 / 1,000 renewable project records

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## UK Renewable Project Pipeline Records — DESNZ REPD

**Keyless. Pay per record. Every UK renewable and low-carbon energy project in the planning pipeline — technology, capacity, status, and milestones.**

This actor turns the **UK Department for Energy Security and Net Zero (DESNZ) Renewable Energy Planning Database (REPD)** into clean, per-project records — the renewable and low-carbon electricity projects tracked through the UK planning system, from application to operation. Each run reads the official quarterly REPD extract published on GOV.UK and delivers one row per project: the operator or applicant organisation, the site name, the technology type, the installed capacity, the development status, the administrative location, the planning authority, and the key planning milestone dates. Project grain, structured for energy-market and planning analysis, reproduced under the Open Government Licence v3.0, with no personal data of any kind.

### What this is, in one paragraph

DESNZ maintains the Renewable Energy Planning Database — a quarterly register of renewable and low-carbon electricity projects in the UK, covering every stage from planning application to operation. This actor reads the official CSV extract published on GOV.UK and flattens each project into a single analysis-ready record: the operator or applicant (an organisation), the site name, the technology type (onshore and offshore wind, solar PV, biomass, energy-from-waste, battery storage, and more), the installed capacity in MW electrical, turbine and solar attributes where relevant, the development status, the administrative location (county, region, country, post code, and grid coordinates), the planning authority, and the milestone dates (application submitted, permission granted, under construction, operational). Values are carried **verbatim** as published. It is the UK renewable-energy planning pipeline as clean rows. You are billed only for records actually delivered.

### Who buys this and for what job

- **Energy developers and investors** tracking the UK renewable pipeline by technology, capacity, and planning stage.
- **Grid, storage, and supply-chain teams** sizing demand from projects at each development status.
- **Planning consultancies and researchers** analysing consent rates and timelines by technology and authority.
- **Data engineers** who want the REPD extract as clean, keyless rows for a pipeline.

### DESNZ licence — Open Government Licence v3.0

REPD is Crown copyright, reproduced under the **Open Government Licence v3.0 (OGL v3.0)**: free to reuse, including commercially, with attribution to DESNZ. Each record carries the attribution line "Contains public sector information licensed under the Open Government Licence v3.0. Source: UK Department for Energy Security and Net Zero, Renewable Energy Planning Database (REPD)." These are planning-register values as published — not a forecast.

### Project grain — no person data

The unit of every record is a renewable-energy project — an asset in the planning system, never a person. The operator/applicant field is an **organisation** name (dispatch-sanctioned, standard in the public planning register). The source CSV carries a free-text site-address line that can, for small or domestic-scale applicants, read like a residential address; **that free-text address is deliberately excluded** and never emitted. Administrative geography — county, region, country, post code, and grid coordinates — is kept instead, and these are standard published attributes of a proposed energy project site. There is no named-individual, agent, or contact field, and a person-key guard runs on every record as a backstop.

### Sample output

![Sample output — UK Renewable Project Pipeline Records — DESNZ REPD](https://api.apify.com/v2/key-value-stores/IXCaMKjxSmUTLHhmq/records/uk-renewable-project-pipeline-records.png)

*Real rows from a live run of this actor (first 5 rows, selected columns).*

One full record from the same run, exactly as delivered:

```json
{
  "record_id": "1",
  "old_ref_id": "N00053B",
  "record_last_updated": "16/01/2026",
  "operator": "RWE npower",
  "site_name": "Aberthaw Power Station Biomass",
  "technology_type": "Biomass (co-firing)",
  "storage_type": null,
  "installed_capacity_mwelec": 35,
  "chp_enabled": "No",
  "cfd_allocation_round": null,
  "ro_banding_roc_mwh": null,
  "turbine_capacity_mw": null,
  "number_of_turbines": null,
  "height_of_turbines_m": null,
  "mounting_type_solar": null,
  "development_status": "Decommissioned",
  "development_status_short": "Decommissioned",
  "county": "South Glamorgan",
  "region": "Wales",
  "country": "Wales",
  "post_code": "CF62 4ZW",
  "x_coordinate": 302219,
  "y_coordinate": 166320,
  "planning_authority": "Vale of Glamorgan",
  "planning_application_reference": "04/00580/FUL",
  "offshore_wind_round": null,
  "planning_application_submitted": "16/04/2004",
  "planning_permission_granted": "03/09/2004",
  "under_construction": "01/05/2006",
  "operational": "01/05/2007",
  "solar_site_area_sqm": null,
  "source": "UK DESNZ Renewable Energy Planning Database (REPD)",
  "source_url": "https://www.gov.uk/government/publications/renewable-energy-planning-database-quarterly-extract",
  "licence": "UK Department for Energy Security and Net Zero (DESNZ) Renewable Energy Planning Database (REPD) — reproduced under the Open Government Licence v3.0 (OGL v3.0): free to reuse, including commercially, with attribution to DESNZ. Project attributes, capacities, planning status, and milestone dates are carried VERBATIM as published.",
  "attribution": "Contains public sector information licensed under the Open Government Licence v3.0. Source: UK Department for Energy Security and Net Zero, Renewable Energy Planning Database (REPD).",
  "disclaimer": "UK renewable and low-carbon project pipeline records at project grain from the DESNZ Renewable Energy Planning Database. Project/site attributes only — operator or applicant ORGANISATION name, technology, installed capacity, development status, administrative location (county, region, country, post code, coordinates), planning authority, and milestone dates, carried verbatim. The free-text site-address line is DELIBERATELY EXCLUDED; there is no named-individual, agent, or contact field, and none is emitted — a person-key guard runs on every record as a backstop. Planning-register status, not a forecast or a guarantee that a project will be built.",
  "observed_at": "2026-09-25T17:26:38Z"
}
```

### Pricing

| Event | Free plan | Bronze | Silver | Gold / Platinum / Diamond |
|-------|-----------|--------|--------|---------------------------|
| `renewable_project_record` | $0.05 | $0.045 | $0.04 | $0.0335 |

Delivered before charged. Blocked runs and empty results cost nothing.

### Input

| Field | Type | Default | Description |
|-------|------|---------|-------------|
| `technologyContains` | string | — | Optional. Keep only projects whose technology type contains this text (e.g. Solar, Wind, Battery). |
| `statusContains` | string | — | Optional. Keep only projects whose development status contains this text (e.g. Operational, Application). |
| `country` | string | — | Optional. England, Scotland, Wales, or Northern Ireland. |
| `maxRecords` | integer | 500 | Ceiling on records delivered and billed. |

### Output

One JSON object per project. Real example (values as published):

```json
{
  "record_id": "1",
  "old_ref_id": "N00053B",
  "record_last_updated": "16/01/2026",
  "operator": "RWE npower",
  "site_name": "Aberthaw Power Station Biomass",
  "technology_type": "Biomass (co-firing)",
  "storage_type": null,
  "installed_capacity_mwelec": 150.0,
  "development_status": "Operational",
  "development_status_short": "Operational",
  "county": "Vale of Glamorgan",
  "region": "Wales",
  "country": "Wales",
  "post_code": "CF62",
  "x_coordinate": 302000.0,
  "y_coordinate": 166000.0,
  "planning_authority": "Vale of Glamorgan",
  "operational": "01/01/2010",
  "source": "UK DESNZ Renewable Energy Planning Database (REPD)",
  "licence": "UK Department for Energy Security and Net Zero ... Open Government Licence v3.0 ...",
  "attribution": "Contains public sector information licensed under the Open Government Licence v3.0. ...",
  "disclaimer": "UK renewable and low-carbon project pipeline records ... free-text site-address line is DELIBERATELY EXCLUDED ...",
  "observed_at": "2026-08-22T00:00:00Z"
}
```

An unbilled `RUN_RECEIPT` records the robots check, the resolved file, the filters, rows matched and delivered, and whether charged equals delivered.

### Field reference

Each record is one project. Identity: `record_id`, `old_ref_id`, `record_last_updated`, `operator` (organisation), and `site_name`. Technology and capacity: `technology_type`, `storage_type`, `installed_capacity_mwelec`, `chp_enabled`, `cfd_allocation_round`, `ro_banding_roc_mwh`, `turbine_capacity_mw`, `number_of_turbines`, `height_of_turbines_m`, `mounting_type_solar`, and `solar_site_area_sqm`. Status: `development_status`, `development_status_short`. Location: `county`, `region`, `country`, `post_code`, `x_coordinate`, `y_coordinate`, and `planning_authority`. Milestones: `planning_application_reference`, `offshore_wind_round`, `planning_application_submitted`, `planning_permission_granted`, `under_construction`, and `operational`. Provenance: `source`, `source_url`, `licence`, `attribution`, `disclaimer`, and `observed_at`.

### How a run works

A run first re-reads the robots posture of the GOV.UK assets host from your runtime and stops at the door if that ever changes. It resolves the current REPD CSV link from the GOV.UK publication page — so it always reads the latest quarterly extract — downloads and decodes the file, applies your optional `technologyContains`, `statusContains`, and `country` filters, and flattens each project to one record, carrying every value **verbatim** and never emitting the free-text site-address line. Records are delivered **before** they are charged, so a blocked or empty run costs you nothing. The actor stops at your `maxRecords` ceiling and records `charge_equals_delivered` in the receipt.

### Coverage and scope

The REPD extract holds on the order of **14,000+ projects** across every renewable and low-carbon technology and every stage of the planning pipeline. Because each record carries the `technology_type`, `installed_capacity_mwelec`, `development_status_short`, and `country`, segmenting the pipeline by technology, size, stage, or nation is straightforward. Pull all operational solar in Scotland, or the whole database to seed a pipeline warehouse.

### Working with the pipeline

The pipeline is a funnel, and the fields make it measurable. Because every project carries a `development_status_short` alongside `installed_capacity_mwelec` and `technology_type`, an analyst can sum capacity by stage and technology in a single group-by — how much offshore wind is consented but not yet built, how much solar is in the application queue — and the milestone date fields (`planning_application_submitted`, `planning_permission_granted`, `under_construction`, `operational`) let a buyer reconstruct each project's journey and measure consent timelines by authority. The `planning_authority`, `county`, `region`, and `country` frame each project geographically, and the grid coordinates support mapping. The `operator` organisation groups projects by developer for portfolio views.

### Location and joins

Administrative geography is carried at project-site level — county, region, country, post code, and Ordnance Survey grid coordinates — which is standard published planning data and lets a buyer place each project on a map or roll it up by authority. The `planning_application_reference` keys each project back to the local planning authority's own record for deeper research, and the `record_id` (REPD Ref ID) is the stable key across quarterly extracts, so two quarters can be diffed to see which projects advanced a stage. Because the free-text site-address line is excluded and the operator is an organisation, the record stays a clean, person-free asset record rather than anything resembling a personal directory.

### Cost guidance

One `renewable_project_record` per delivered project: cost = projects delivered × your plan's per-record price. Scope with `technologyContains`, `statusContains`, or `country` to keep runs bounded. The database is ~14,000 projects; 1,000 projects is **$50** (Free) / **$33.50** (Gold).

### Honest limitations

- **As published.** Values are as recorded in the quarterly extract; this actor reformats, it does not audit.
- **A planning register, not a guarantee.** A project's presence or status is a planning-system fact, not a promise that it will be built or operate.
- **Site address excluded by design.** The free-text address line is never emitted; administrative geography and coordinates are kept instead.
- **Living source.** REPD is refreshed quarterly; a run reads the latest extract, so figures shift between quarters.
- **Acknowledge DESNZ under OGL v3.0.** The attribution travels on every record.
- **No person data** of any kind.

### Differentiation

This is a **net-new** category for the NexGenData fleet. It is distinct from the fleet's **world-bank-project-records** (global development-finance projects funded by the World Bank) — REPD is a UK-specific renewable-energy *planning* register at project grain, tracking technology, capacity, consent status, and milestones through the UK planning system, an entirely different source, geography, and subject. It is also distinct from the fleet's UK contract and company cells. Its specific job is the **UK renewable and low-carbon project pipeline** — what is proposed, where it stands, and how big it is.

### The NexGen Signal family

Part of the NexGen Signal family of pay-per-record data products:

- [World Bank Project Records](https://apify.com/nexgensignal/world-bank-project-records)
- [UK Contract Opportunity Records](https://apify.com/nexgensignal/uk-contract-opportunity-records)
- [UK Company Status Records](https://apify.com/nexgensignal/uk-company-status-records)
- [UK Port Freight Flow Records — DfT](https://apify.com/nexgensignal/uk-port-freight-flow-records)
- [UK Road Traffic Flow Records — DfT](https://apify.com/nexgensignal/uk-road-traffic-flow-records)

*Source: UK Department for Energy Security and Net Zero (DESNZ), Renewable Energy Planning Database (REPD), quarterly extract published on GOV.UK. Contains public sector information licensed under the Open Government Licence v3.0. Project grain; the operator/applicant is an organisation; the free-text site-address line is deliberately excluded; no named-individual, agent, or contact field, no natural-person data of any kind. Values as published in the quarterly extract, not a forecast or a guarantee of delivery.*

# Actor input Schema

## `technologyContains` (type: `string`):

Optional. Keep only projects whose technology type contains this text (e.g. Solar, Wind, Battery).

## `statusContains` (type: `string`):

Optional. Keep only projects whose development status contains this text (e.g. Operational, Application).

## `country` (type: `string`):

Optional. England, Scotland, Wales, or Northern Ireland.

## `maxRecords` (type: `integer`):

Maximum records delivered and billed.

## Actor input object example

```json
{
  "maxRecords": 500
}
```

# Actor output Schema

## `results` (type: `string`):

Delivered records.

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "maxRecords": 500
};

// Run the Actor and wait for it to finish
const run = await client.actor("nexgensignal/uk-renewable-project-pipeline-records").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = { "maxRecords": 500 }

# Run the Actor and wait for it to finish
run = client.actor("nexgensignal/uk-renewable-project-pipeline-records").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "maxRecords": 500
}' |
apify call nexgensignal/uk-renewable-project-pipeline-records --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,nexgensignal/uk-renewable-project-pipeline-records"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/XjXM2agq2dS5nWVxb/builds/J2w5NqNcwS63xNzfT/openapi.json
