# Uk Solar Planning Leads (`devon_gtme/uk-solar-planning-leads`) Actor

Lead-gen for solar installers. Find solar panel, PV and battery-storage planning applications across 425+ UK councils: site addresses, applicant and agent contacts, decision status and council portal links. Filter by council, postcode radius, status and date. No API key needed.

- **URL**: https://apify.com/devon\_gtme/uk-solar-planning-leads.md
- **Developed by:** [Devon Kellar](https://apify.com/devon_gtme) (community)
- **Categories:** Lead generation, Real estate, Business
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $20.00 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

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

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
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.
Actors are written with capital "A".

## 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.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

## UK Solar Panel Planning Applications — Installer Leads

Find **solar panel, solar PV, and battery storage planning applications** across **425+ UK councils** — every one a live buying signal. A homeowner or business that submits a planning application for solar is actively investing in an installation *right now*. A large solar farm application means a developer about to procure panels, mounting systems, inverters, batteries, and electrical contractors at scale.

This actor turns that public data into a lead list: site addresses, applicant and planning agent contacts, decision status, and direct links to council portals. Export to CSV and start calling.

No API key needed. No login required. Just configure your region and run.

### Who this is for

- **Solar installers** — find homeowners and businesses in your service area with live or newly permitted solar applications. Undecided applications are prospects mid-decision; permitted ones are ready to build.
- **Battery & storage vendors** — battery storage applications (included in the default search terms) signal buyers speccing systems now.
- **Mounting & racking suppliers** — large solar array and solar farm applications mean bulk procurement is coming.
- **Electrical contractors** — every permitted solar install needs a qualified electrician. Target the postcode areas where permissions are being granted.
- **Renewables marketing agencies** — build regional demand maps and prospect lists for installer clients.
- **B2B suppliers to solar farms** — track Large applications to reach developers before they've chosen suppliers.

### Features

- **Solar search baked in** — preset terms `solar panel`, `solar pv`, `photovoltaic`, `solar array`, `battery storage`, fully editable (narrow to `solar farm` only, or add `heat pump`, `ev charging`)
- Search any council or go nationwide across all 425+ councils
- Filter by decision status (Undecided = live pipeline, Permitted = green-lit projects)
- Postcode radius search (find solar applications within X km of your base)
- Filter by application size (Small = householder installs, Large = solar farms)
- Extract applicant and planning agent contacts directly from the data
- Monitor-friendly: designed for weekly scheduled runs per region

**Coverage:** 425+ local authorities across England, Scotland, and Wales.

### Typical usage: weekly lead monitor per region

Set up a **weekly scheduled run** on Apify with your service area, and get a fresh lead list every Monday:

```json
{
    "postcode": "M1 1AD",
    "radiusKm": 40,
    "appState": ["Permitted", "Undecided"],
    "daysBack": 7,
    "maxResults": 200
}
````

Each run returns only the last 7 days of applications within 40 km of Manchester — new leads only, no repeats. Connect the dataset to Google Sheets, email, or your CRM via Apify integrations.

### Input parameters

The input of this scraper should be JSON containing the filter configuration for your search. Possible fields are:

**searchTerms**: (Optional) (String\[]) Solar/renewables terms to match in application descriptions. Terms are OR-combined — an application matching ANY term is returned. Multi-word terms match as exact phrases. Default is `["solar panel", "solar pv", "photovoltaic", "solar array", "battery storage"]`.

**councils**: (Optional) (String\[]) List of council names to search. Leave empty for a nationwide search across all 425+ councils. Type any UK council name — for example: `"Wiltshire"`, `"Cornwall"`, `"Manchester"`.

**appSize**: (Optional) (String\[]) Filter by development size. The values can be: `Large`, `Medium`, and `Small`. Leave empty for all sizes (recommended — most domestic solar installs are Small/householder, solar farms are Large). Default is all sizes.

**appState**: (Optional) (String\[]) Filter by decision status. The values can be: `Permitted`, `Undecided`, `Conditions`, `Rejected`, `Withdrawn`, `Referred`, and `Appeal`. Default is `["Permitted", "Undecided"]` — green-lit projects plus the live pipeline.

**daysBack**: (Optional) (Number) How many days back to search from today. For decided applications, this filters by decision date. For undecided applications, this filters by submission date. Range: 1–365. Default is `30`. Set to 7–14 for weekly scheduled runs.

**postcode**: (Optional) (String) UK postcode as the centre point for a radius search. Requires `radiusKm` to be set. Example: `"M1 1AD"`, `"BS1 4DJ"`.

**radiusKm**: (Optional) (Number) Search radius in kilometres from the postcode centre point. Only used when `postcode` is provided. Range: 1–100. Default is `10`.

**appTypes**: (Optional) (String\[]) Filter by application type. Leave empty for all types. Common values: `Full`, `Outline`, `Householder`. These match as substrings.

**maxResults**: (Optional) (Number) Maximum total results to return. The actor stops fetching once this cap is reached. Range: 1–5,000. Default is `500`.

### Input examples

#### Nationwide solar leads (last 30 days)

```json
{
    "appState": ["Permitted", "Undecided"],
    "daysBack": 30,
    "maxResults": 1000
}
```

#### Solar farms only (B2B suppliers)

```json
{
    "searchTerms": ["solar farm", "solar array", "photovoltaic park", "battery energy storage"],
    "appSize": ["Large"],
    "appState": ["Permitted", "Undecided"],
    "daysBack": 90,
    "maxResults": 500
}
```

#### Installer service area (specific councils)

```json
{
    "councils": ["Cornwall", "Devon", "Somerset"],
    "appState": ["Undecided"],
    "daysBack": 14,
    "maxResults": 300
}
```

### Tips

- **Undecided applications are the warmest leads for installers** — the applicant is planning an install but may not have committed to a contractor. Permitted applications are best for equipment suppliers and electricians.
- Leave `appSize` empty: domestic solar installs are classed `Small` and would be missed by the parent scraper's Large/Medium default.
- Start with a low `maxResults` (e.g. 20) and your own postcode to verify the data matches your patch before scaling up.
- Combine this actor with a contact enrichment actor — take the `applicantName`, `agentCompany`, and `address` fields and enrich them with phone numbers and emails.
- Please keep in mind that multi-council or multi-status queries require a 62-second delay between each query to respect rate limits. The default (nationwide, 2 statuses) runs in ~2 minutes; a 3-council × 2-status query takes ~6 minutes.

### Compute unit consumption

Since the underlying data source enforces a rate limit of approximately 1 request per minute, compute unit consumption depends on the number of queries (councils × statuses × sizes):

- **Nationwide, default input:** ~2 minutes, ~0.05 compute units
- **3 councils × 2 statuses:** ~6 minutes, ~0.1 compute units
- **Weekly regional monitor (postcode radius):** ~2 minutes, ~0.05 compute units

### Scraped solar planning application data

Each dataset item is one planning application with 50+ fields (coverage varies by council):

```json
{
    "council": "Wiltshire",
    "address": "Manor Farm, Church Lane, Bishopstone, Salisbury",
    "postcode": "SP5 4DB",
    "description": "Installation of up to 22 solar panels on the roofs of the modern barns adjacent to the road.",
    "appType": "Full",
    "appSize": "Small",
    "appState": "Permitted",
    "decidedDate": "2026-07-02",
    "startDate": "2026-05-11",
    "agentCompany": "GreenSpark Renewables Ltd",
    "agentTel": "01722 000000",
    "applicantName": "Mr J Smith",
    "latitude": 51.0742,
    "longitude": -1.8926,
    "portalUrl": "https://development.wiltshire.gov.uk/pr/s/planning-application/...",
    "planitUrl": "https://www.planit.org.uk/planapplic/Wiltshire/PL/2026/04321/",
    "reference": "PL/2026/04321",
    "planitId": "Wiltshire/PL/2026/04321"
}
```

Core fields: `council`, `address`, `postcode`, `description`, `appType`, `appSize`, `appState`, `decidedDate`, `startDate`, `agentCompany`, `agentTel`, `applicantCompany`, `latitude`, `longitude`, `portalUrl`, `planitUrl`, `reference`, `planitId`.

Extended fields (where the council publishes them): `applicantName`, `applicantAddress`, `agentName`, `agentAddress`, `caseOfficer`, `applicationType`, `status`, `decision`, `decidedBy`, `dateReceived`, `dateValidated`, `targetDecisionDate`, `consultationStartDate`, `consultationEndDate`, `wardName`, `parish`, `district`, `nDocuments`, `nComments`, `docsUrl`, `commentUrl`, `mapUrl`, and more.

Export to **JSON**, **CSV**, or **Excel** in one click from the Apify Console, or pull via the [Apify API](https://docs.apify.com/api/v2).

### Bugs, fixes, updates, and changelog

This scraper is under active development. If you have any feature requests, you can create an issue from [here](https://github.com/tqc-data/uk-planning-scraper/issues).

### Need something more custom?

Need a different vertical (heat pumps, EV charging, wind), webhook alerts for new applications in your patch, or contact enrichment built in? Create an issue from [here](https://github.com/tqc-data/uk-planning-scraper/issues) and tell us what you need — custom builds are usually turned around quickly.

### Data source

All data comes from [PlanIt](https://www.planit.org.uk), which aggregates publicly available planning data from UK local authority portals. The data is published by councils under statutory obligation — this actor provides structured, filterable access to it.

# Actor input Schema

## `searchTerms` (type: `array`):

Solar/renewables terms to match in application descriptions. Terms are OR-combined — an application matching ANY term is returned. Multi-word terms are matched as exact phrases. Edit to narrow (e.g. only 'solar farm') or widen (e.g. add 'heat pump', 'ev charging').

## `councils` (type: `array`):

Council names to search. Leave empty for nationwide search. Type any UK council name — suggestions show the most popular.

## `appSize` (type: `array`):

Filter by development size. Leave empty for all sizes (recommended — most domestic solar installs are Small/householder, solar farms are Large). Large = major developments (10+ dwellings or 1000+ sqm). Medium = minor. Small = householder.

## `appState` (type: `array`):

Filter by decision status. 'Undecided' = live pipeline (homeowner/business planning an install now). 'Permitted' = green-lit projects ready to buy equipment and hire contractors.

## `daysBack` (type: `integer`):

How many days back to search from today (based on decision date). For 'Undecided' apps, this filters by submission date. Set to 7-14 for weekly scheduled runs.

## `postcode` (type: `string`):

UK postcode for radius search. Requires Radius to be set. Example: M1 1AE. Note: PlanIt's radius search can time out server-side when combined with text search — if you get 0 results, filter by Councils instead.

## `radiusKm` (type: `number`):

Search radius in kilometres from the postcode centre point.

## `appTypes` (type: `array`):

Filter by application type substring. Leave empty for all types. Common values: Full, Outline, Reserved, Hybrid, Householder.

## `maxResults` (type: `integer`):

Maximum total results to return. The actor stops fetching once this cap is reached.

## Actor input object example

```json
{
  "searchTerms": [
    "solar panel",
    "solar pv",
    "photovoltaic",
    "solar array",
    "battery storage"
  ],
  "councils": [],
  "appSize": [],
  "appState": [
    "Permitted",
    "Undecided"
  ],
  "daysBack": 30,
  "radiusKm": 10,
  "appTypes": [],
  "maxResults": 500
}
```

# 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 = {
    "searchTerms": [
        "solar panel",
        "solar pv",
        "photovoltaic",
        "solar array",
        "battery storage"
    ],
    "councils": [],
    "appSize": [],
    "appState": [
        "Permitted",
        "Undecided"
    ],
    "daysBack": 30,
    "radiusKm": 10,
    "appTypes": [],
    "maxResults": 500
};

// Run the Actor and wait for it to finish
const run = await client.actor("devon_gtme/uk-solar-planning-leads").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 = {
    "searchTerms": [
        "solar panel",
        "solar pv",
        "photovoltaic",
        "solar array",
        "battery storage",
    ],
    "councils": [],
    "appSize": [],
    "appState": [
        "Permitted",
        "Undecided",
    ],
    "daysBack": 30,
    "radiusKm": 10,
    "appTypes": [],
    "maxResults": 500,
}

# Run the Actor and wait for it to finish
run = client.actor("devon_gtme/uk-solar-planning-leads").call(run_input=run_input)

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

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

```

## CLI example

```bash
echo '{
  "searchTerms": [
    "solar panel",
    "solar pv",
    "photovoltaic",
    "solar array",
    "battery storage"
  ],
  "councils": [],
  "appSize": [],
  "appState": [
    "Permitted",
    "Undecided"
  ],
  "daysBack": 30,
  "radiusKm": 10,
  "appTypes": [],
  "maxResults": 500
}' |
apify call devon_gtme/uk-solar-planning-leads --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=devon_gtme/uk-solar-planning-leads",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Uk Solar Planning Leads",
        "description": "Lead-gen for solar installers. Find solar panel, PV and battery-storage planning applications across 425+ UK councils: site addresses, applicant and agent contacts, decision status and council portal links. Filter by council, postcode radius, status and date. No API key needed.",
        "version": "0.1",
        "x-build-id": "rGgsEQ8Z0MHGhwNyI"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/devon_gtme~uk-solar-planning-leads/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-devon_gtme-uk-solar-planning-leads",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/devon_gtme~uk-solar-planning-leads/runs": {
            "post": {
                "operationId": "runs-sync-devon_gtme-uk-solar-planning-leads",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/devon_gtme~uk-solar-planning-leads/run-sync": {
            "post": {
                "operationId": "run-sync-devon_gtme-uk-solar-planning-leads",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "properties": {
                    "searchTerms": {
                        "title": "Search Terms",
                        "type": "array",
                        "description": "Solar/renewables terms to match in application descriptions. Terms are OR-combined — an application matching ANY term is returned. Multi-word terms are matched as exact phrases. Edit to narrow (e.g. only 'solar farm') or widen (e.g. add 'heat pump', 'ev charging').",
                        "default": [
                            "solar panel",
                            "solar pv",
                            "photovoltaic",
                            "solar array",
                            "battery storage"
                        ],
                        "items": {
                            "type": "string"
                        }
                    },
                    "councils": {
                        "title": "Councils",
                        "type": "array",
                        "description": "Council names to search. Leave empty for nationwide search. Type any UK council name — suggestions show the most popular.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "appSize": {
                        "title": "Application Size",
                        "type": "array",
                        "description": "Filter by development size. Leave empty for all sizes (recommended — most domestic solar installs are Small/householder, solar farms are Large). Large = major developments (10+ dwellings or 1000+ sqm). Medium = minor. Small = householder.",
                        "items": {
                            "type": "string",
                            "enum": [
                                "Large",
                                "Medium",
                                "Small"
                            ]
                        },
                        "default": []
                    },
                    "appState": {
                        "title": "Application Status",
                        "type": "array",
                        "description": "Filter by decision status. 'Undecided' = live pipeline (homeowner/business planning an install now). 'Permitted' = green-lit projects ready to buy equipment and hire contractors.",
                        "items": {
                            "type": "string",
                            "enum": [
                                "Permitted",
                                "Undecided",
                                "Conditions",
                                "Rejected",
                                "Withdrawn",
                                "Referred",
                                "Appeal"
                            ]
                        },
                        "default": [
                            "Permitted",
                            "Undecided"
                        ]
                    },
                    "daysBack": {
                        "title": "Days Back",
                        "minimum": 1,
                        "maximum": 365,
                        "type": "integer",
                        "description": "How many days back to search from today (based on decision date). For 'Undecided' apps, this filters by submission date. Set to 7-14 for weekly scheduled runs.",
                        "default": 30
                    },
                    "postcode": {
                        "title": "Postcode (centre point)",
                        "type": "string",
                        "description": "UK postcode for radius search. Requires Radius to be set. Example: M1 1AE. Note: PlanIt's radius search can time out server-side when combined with text search — if you get 0 results, filter by Councils instead."
                    },
                    "radiusKm": {
                        "title": "Radius (km)",
                        "minimum": 1,
                        "maximum": 100,
                        "type": "number",
                        "description": "Search radius in kilometres from the postcode centre point.",
                        "default": 10
                    },
                    "appTypes": {
                        "title": "Application Types",
                        "type": "array",
                        "description": "Filter by application type substring. Leave empty for all types. Common values: Full, Outline, Reserved, Hybrid, Householder.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "maxResults": {
                        "title": "Max Results",
                        "minimum": 1,
                        "maximum": 5000,
                        "type": "integer",
                        "description": "Maximum total results to return. The actor stops fetching once this cap is reached.",
                        "default": 500
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
