# Ofsted Reports Data Scraper (`solidcode/ofsted-reports-data-scraper`) Actor

\[💰 $8.0 / 1K] Extract Ofsted inspection reports and ratings for England's schools, nurseries, childminders, colleges, and children's social care providers. Get provider name, URN, address, latest judgement, sub-grades, inspection dates, and report PDF links.

- **URL**: https://apify.com/solidcode/ofsted-reports-data-scraper.md
- **Developed by:** [SolidCode](https://apify.com/solidcode) (community)
- **Categories:** Developer tools, Automation, Other
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $8.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.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

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/docs.md):

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

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python/docs.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/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

## Ofsted Reports Data Scraper

Pull Ofsted inspection reports and ratings for England's education and care providers at scale — provider name, URN, full address, latest overall judgement, sub-judgement grades, inspection dates, and report PDF links for schools, nurseries, childminders, colleges, and children's social care. Built for education researchers, multi-academy trust operations teams, EdTech and childcare lead-generation teams, and property and childcare due-diligence teams who need Ofsted data without clicking through thousands of report pages by hand.

### Why This Scraper?

- **Every Ofsted provider type, not just one** — schools, colleges, nurseries, childminders, further education & skills, and all children's social care (children's homes, fostering, adoption) across 5 top-level categories in a single run.
- **Sub-judgement grades broken out as named fields** — quality of education, behaviour & attitudes, personal development, and leadership & management captured individually, not left buried inside a report PDF.
- **Up to ~14 historical inspections per provider** — turn on inspection history to get every past inspection's date, type, rating, and report PDF link for rating-trend analysis.
- **4 Ofsted rating filters** — Outstanding, Good, Requires improvement, and Inadequate, applied to each provider's latest overall judgement.
- **Radius search around any town or postcode** — type "Manchester", "Kent", or "M1 4BT" and get every provider within a 10-mile radius, exactly like Ofsted's own location box.
- **URN, full address, and report PDF link on every row** — the Ofsted Unique Reference Number, full street address with postcode, and a direct link to the latest inspection report PDF.
- **Latest-report date-range filter** — restrict to providers whose most recent report was published inside a window you set, ideal for catching newly released reports since your last pull.
- **England-wide coverage, de-duplicated by URN** — sweep every Ofsted-registered provider in England, with overlapping searches merged so no provider appears twice.
- **Redacted providers handled gracefully** — children's homes that withhold their name and address still return their URN, rating, and report links instead of breaking the run.

### Use Cases

**Education Research & Policy**
- Build a dataset of every Good and Outstanding primary school in a region for attainment studies
- Track how ratings shift across inspection cycles using the full inspection history
- Compare sub-judgement grades (quality of education vs. leadership) across provider types
- Assemble regional or local-authority league tables from URN-level records

**MAT & School-Group Operations**
- Benchmark every school in a multi-academy trust against neighbouring providers
- Monitor when trust schools receive a new inspection report and how the rating moved
- Map catchment competitors around each site by radius search
- Keep a live register of URNs, addresses, and latest judgements across a school group

**EdTech & Childcare Lead Generation**
- Build outreach lists of nurseries and childminders by town or postcode
- Target schools by rating tier for sales, tutoring, or curriculum offerings
- Segment colleges and further-education providers for B2B campaigns
- Enrich existing prospect lists with URN, provider type, and latest rating

**Property & Location Due Diligence**
- Score neighbourhoods by the ratings of nearby schools and nurseries for relocation and property tools
- Attach the closest Outstanding-rated providers to home and rental listings
- Compare childcare availability and quality across postcodes
- Feed local school ratings into home-buyer and rental platforms

**Compliance & Safeguarding Monitoring**
- Watch children's social care providers for Requires improvement or Inadequate judgements
- Track fostering and adoption agency ratings across a local authority
- Flag newly published Inadequate reports in a chosen date window
- Keep an auditable record of a provider's inspection timeline and report links

### Getting Started

#### Search by Name or Keyword

The simplest run — one keyword and a result cap:

```json
{
    "searchQueries": ["primary school"],
    "maxResults": 50
}
````

#### Providers Near a Location

Find childcare providers within a radius of a postcode:

```json
{
    "searchQueries": ["nursery"],
    "location": "M1 4BT",
    "providerType": ["childcare"],
    "maxResults": 100
}
```

#### Filter by Rating and Report Date

Only Good and Outstanding schools inspected in 2024, with full inspection history:

```json
{
    "searchQueries": ["secondary school"],
    "location": "Kent",
    "providerType": ["education"],
    "rating": ["outstanding", "good"],
    "latestReportDateStart": "2024-01-01",
    "latestReportDateEnd": "2024-12-31",
    "includeInspectionHistory": true,
    "maxResults": 200
}
```

#### Paste Ofsted URLs Directly

Skip the search and pull specific providers or a pre-filtered Ofsted results page:

```json
{
    "startUrls": [
        "https://reports.ofsted.gov.uk/provider/21/140696",
        "https://reports.ofsted.gov.uk/search?q=childminder&location=Leeds"
    ],
    "includeInspectionHistory": true,
    "maxResults": 100
}
```

### Input Reference

#### What to Search

| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| `searchQueries` | array | `["primary school"]` | One or more provider names, URNs, or keywords. Each entry runs its own search and results are merged and de-duplicated. Leave empty to browse using only filters or URLs. |
| `location` | string | `""` | Town, city, county, or postcode to search near, such as "Manchester", "Kent", or "M1 4BT". Applied to every search term. Leave empty to search all of England. |
| `startUrls` | array | `[]` | Paste full Ofsted provider pages or Ofsted search-result URLs. Any filters already on a search URL are respected. Can be mixed with the search above. |

#### Filters

| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| `providerType` | array | `[]` | Limit to specific categories: Schools, colleges & training (all education); Further education & skills only (colleges); Childcare & early years (nurseries, childminders); Children's social care (homes, fostering, adoption); Other organisations. Picking several returns the union. Leave empty to include every type. |
| `rating` | array | `[]` | Limit to providers whose latest overall judgement is Outstanding, Good, Requires improvement, or Inadequate. Leave empty to include every rating. |
| `latestReportDateStart` | string | `""` | Only include providers whose most recent report was published on or after this date. Leave empty for no earliest limit. |
| `latestReportDateEnd` | string | `""` | Only include providers whose most recent report was published on or before this date. Leave empty for no latest limit. |

#### Output & Limits

| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| `includeInspectionHistory` | boolean | `false` | Off by default for faster, cheaper runs. Each record already includes the latest judgement, dates, and report link. Turn on to also include a list of the provider's earlier inspections (dates, types, ratings, and report PDF links). |
| `maxResults` | integer | `100` | Cap on total providers returned across all searches and URLs. Set to `0` to collect as many as possible. Results are read a page of 10 at a time and the current page always finishes, so a small cap can return up to 9 providers more than requested. |

### Output

One clean row per provider, with the latest judgement, sub-grades, address, and report links. Here is a representative school record with inspection history enabled:

```json
{
    "providerName": "St Mary's Church of England Primary School",
    "urn": "140696",
    "providerType": "Primary school",
    "category": "Schools",
    "address": "Church Lane, Didsbury, Manchester, Greater Manchester",
    "postcode": "M20 3PH",
    "localAuthority": "Manchester",
    "region": "North West",
    "ageRange": "3 to 11",
    "totalPupils": 412,
    "gender": "Mixed",
    "telephone": "0161 555 0123",
    "website": "https://www.stmarysprimary.example.sch.uk",
    "trust": "Holy Family Catholic Multi Academy Trust",
    "overallRating": "Good",
    "previousRating": "Requires improvement",
    "judgements": {
        "Quality of education": "Good",
        "Behaviour and attitudes": "Outstanding",
        "Personal development": "Good",
        "Leadership and management": "Good"
    },
    "latestInspectionDate": "14 May 2024",
    "latestInspectionType": "Graded inspection",
    "reportPublicationDate": "21 June 2024",
    "latestReportUrl": "https://files.ofsted.gov.uk/v1/file/50206212",
    "ofstedUrl": "https://reports.ofsted.gov.uk/provider/21/140696",
    "inspectionHistory": [
        {
            "inspectionDate": "14 May 2024",
            "inspectionType": "Graded inspection",
            "overallRating": "Good",
            "publicationDate": "21 June 2024",
            "reportUrl": "https://files.ofsted.gov.uk/v1/file/50206212"
        },
        {
            "inspectionDate": "8 March 2019",
            "inspectionType": "Ungraded inspection",
            "overallRating": "Requires improvement",
            "publicationDate": "2 April 2019",
            "reportUrl": "https://files.ofsted.gov.uk/v1/file/50098711"
        }
    ]
}
```

#### Core Fields

| Field | Type | Description |
|-------|------|-------------|
| `providerName` | string | Provider or establishment name. Null for redacted children's homes. |
| `urn` | string | Ofsted Unique Reference Number. Can be alphanumeric (e.g. `EY295936`, `RP907442`). |
| `providerType` | string | Specific type, e.g. "Primary school", "Childminder", "Children's home". |
| `category` | string | High-level group: Schools, Childcare & early years, Further education & skills, or Children's social care. |
| `ofstedUrl` | string | Provider page on Ofsted's reports site. |

#### Address & Location

| Field | Type | Description |
|-------|------|-------------|
| `address` | string | Full street address. Null for redacted providers. |
| `postcode` | string | Postcode, extracted from the address. |
| `localAuthority` | string | Local authority responsible for the provider. |
| `region` | string | English region (e.g. "North West"), where published. |

#### Provider Profile

| Field | Type | Description |
|-------|------|-------------|
| `ageRange` | string | Age range served, for schools and early years. |
| `totalPupils` | integer | Number of pupils or places, where published. Nullable. |
| `gender` | string | Gender of entry, where published. |
| `telephone` | string | Published contact telephone number, where available. |
| `website` | string | Provider website, where available. |
| `trust` | string | Parent multi-academy trust, where the provider belongs to one. |

#### Judgements & Latest Report

| Field | Type | Description |
|-------|------|-------------|
| `overallRating` | string | Latest overall Ofsted judgement (Outstanding / Good / Requires improvement / Inadequate). Legitimately null for many childcare providers and post-2024 school inspections that carry no single overall grade. |
| `previousRating` | string | Overall judgement at the previous graded inspection, for trend analysis. |
| `judgements` | object | Sub-judgements as name→rating pairs. Keys vary by provider type (e.g. quality of education, behaviour & attitudes, personal development, leadership & management). |
| `latestInspectionDate` | string | Date of the most recent inspection. |
| `latestInspectionType` | string | Inspection type, e.g. "Graded inspection", "Ungraded inspection", "Monitoring visit". |
| `reportPublicationDate` | string | Date the latest report was published. |
| `latestReportUrl` | string | Direct link to the latest inspection report PDF. |

#### Inspection History

Present only when `includeInspectionHistory` is on. `inspectionHistory` is an array (newest first) of the provider's earlier inspections; each entry contains:

| Field | Type | Description |
|-------|------|-------------|
| `inspectionDate` | string | Date of that inspection. |
| `inspectionType` | string | Type of that inspection. |
| `overallRating` | string | Overall judgement at that inspection, where graded. |
| `publicationDate` | string | Date that report was published. |
| `reportUrl` | string | Link to that inspection's report PDF. |

### Tips for Best Results

- **Start small.** Set `maxResults` to 10–50 on your first run to confirm the data matches your needs, then scale up.
- **Rating filters hide ungraded providers.** Filtering by `rating` excludes any provider with no single overall grade — many childcare providers and schools inspected under the post-2024 framework carry none and will not appear. Leave `rating` empty to include them.
- **Browse without a keyword.** Leave `searchQueries` empty and combine a `location` with a `providerType` filter to sweep every matching provider in an area.
- **Keep history off unless you need the trend.** `includeInspectionHistory` is off by default for faster, cheaper runs — the latest judgement and report link are always included regardless.
- **Combine searches and URLs in one run.** Mix several `searchQueries` and `startUrls` together; results are merged and de-duplicated by URN.
- **Use the location box like Ofsted's own.** A town, county, or full postcode all work, and results are drawn from a 10-mile radius around the point.
- **Catch new reports with the date window.** Set `latestReportDateStart` to the day of your last pull to collect only providers with a freshly published report.

### Pricing

**From $8.00 per 1,000 results** — undercuts comparable Ofsted extractors while covering every provider type, not just children's homes. Bronze, Silver, and Gold subscribers pay progressively less; the table below shows total cost at each discount tier.

| Results | No discount | Bronze | Silver | Gold |
|---------|-------------|--------|--------|------|
| 100 | $0.96 | $0.91 | $0.85 | $0.80 |
| 1,000 | $9.60 | $9.05 | $8.50 | $8.00 |
| 10,000 | $96.00 | $90.50 | $85.00 | $80.00 |
| 100,000 | $960.00 | $905.00 | $850.00 | $800.00 |

A "result" is any provider row in the output dataset. No compute or time-based charges — you pay per result, plus a small fixed per-run start fee.

### Integrations

Export data in JSON, CSV, Excel, XML, or RSS. Connect to 1,500+ apps via:

- **Zapier** / **Make** / **n8n** — Workflow automation
- **Google Sheets** — Direct spreadsheet export
- **Slack** / **Email** — Notifications on new results
- **Webhooks** — Trigger custom APIs on run completion
- **Apify API** — Full programmatic access

### Legal & Ethical Use

Ofsted inspection reports are public information published under the Open Government Licence and Crown copyright. This actor is designed for legitimate research, market analysis, lead generation, and due diligence. Users are responsible for complying with applicable laws, Ofsted's terms of use, and the Open Government Licence terms, including proper attribution where required. Coverage is England only — Scotland, Wales, and Northern Ireland have separate inspectorates. Do not use extracted data for spam, harassment, or any illegal purpose.

# Actor input Schema

## `searchQueries` (type: `array`):

One or more provider names, unique reference numbers (URN), or keywords to search on Ofsted, such as 'St Mary's Primary School', 'Busy Bees Nursery', or a URN like '123456'. Each entry runs its own search and results are merged and de-duplicated. Leave empty if you only want to use the filters or URLs below.

## `location` (type: `string`):

Town, city, county, or postcode to search near, such as 'Manchester', 'Kent', or 'M1 4BT'. Matches what you would type into Ofsted's location box. Applied to every search term above. Leave empty to search all of England.

## `startUrls` (type: `array`):

Optional. Paste full Ofsted provider pages (e.g. https://reports.ofsted.gov.uk/provider/21/140696) or Ofsted search-result URLs. Any filters already applied on a search URL are respected. You can mix URLs with the search above.

## `providerType` (type: `array`):

Only include these kinds of providers. Each choice matches Ofsted's own top-level categories, and picking several returns the union of them. Leave empty to include every type of Ofsted-registered provider.

## `rating` (type: `array`):

Only include providers whose most recent overall Ofsted judgement is one of these. Note that filtering by rating excludes providers that do not carry a single overall grade (for example many childcare providers and schools inspected under the newest framework). Leave empty to include every rating.

## `latestReportDateStart` (type: `string`):

Only include providers whose most recent report was published on or after this date. Leave empty for no earliest limit.

## `latestReportDateEnd` (type: `string`):

Only include providers whose most recent report was published on or before this date. Leave empty for no latest limit.

## `includeInspectionHistory` (type: `boolean`):

Off by default for faster, cheaper runs. Each provider record already includes its latest inspection judgement, dates, and report link. Turn this on to also include a list of that provider's earlier inspections (dates, types, ratings, and report PDF links) — useful for tracking how a provider's rating has changed over time.

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

Cap on the total number of providers returned across all searches and URLs. Defaults to 100 for a quick first run; raise it for larger pulls. Set to 0 to collect as many as possible. Results are read a page of 10 at a time and the current page always finishes, so a small cap can return up to 9 providers more than requested.

## Actor input object example

```json
{
  "searchQueries": [
    "primary school"
  ],
  "startUrls": [],
  "providerType": [],
  "rating": [],
  "includeInspectionHistory": false,
  "maxResults": 100
}
```

# Actor output Schema

## `overview` (type: `string`):

Table of providers with the most useful columns at a glance.

## `judgements` (type: `string`):

Table focused on the latest overall judgement and the inspection report link.

# 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 = {
    "searchQueries": [
        "primary school"
    ],
    "location": "",
    "startUrls": [],
    "providerType": [],
    "rating": [],
    "latestReportDateStart": "",
    "latestReportDateEnd": "",
    "includeInspectionHistory": false,
    "maxResults": 100
};

// Run the Actor and wait for it to finish
const run = await client.actor("solidcode/ofsted-reports-data-scraper").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 = {
    "searchQueries": ["primary school"],
    "location": "",
    "startUrls": [],
    "providerType": [],
    "rating": [],
    "latestReportDateStart": "",
    "latestReportDateEnd": "",
    "includeInspectionHistory": False,
    "maxResults": 100,
}

# Run the Actor and wait for it to finish
run = client.actor("solidcode/ofsted-reports-data-scraper").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 '{
  "searchQueries": [
    "primary school"
  ],
  "location": "",
  "startUrls": [],
  "providerType": [],
  "rating": [],
  "latestReportDateStart": "",
  "latestReportDateEnd": "",
  "includeInspectionHistory": false,
  "maxResults": 100
}' |
apify call solidcode/ofsted-reports-data-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=solidcode/ofsted-reports-data-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Ofsted Reports Data Scraper",
        "description": "[💰 $8.0 / 1K] Extract Ofsted inspection reports and ratings for England's schools, nurseries, childminders, colleges, and children's social care providers. Get provider name, URN, address, latest judgement, sub-grades, inspection dates, and report PDF links.",
        "version": "1.0",
        "x-build-id": "Ov39IhnR4sRCzYX4v"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/solidcode~ofsted-reports-data-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-solidcode-ofsted-reports-data-scraper",
                "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/solidcode~ofsted-reports-data-scraper/runs": {
            "post": {
                "operationId": "runs-sync-solidcode-ofsted-reports-data-scraper",
                "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/solidcode~ofsted-reports-data-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-solidcode-ofsted-reports-data-scraper",
                "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": {
                    "searchQueries": {
                        "title": "Names, URNs, or keywords",
                        "type": "array",
                        "description": "One or more provider names, unique reference numbers (URN), or keywords to search on Ofsted, such as 'St Mary's Primary School', 'Busy Bees Nursery', or a URN like '123456'. Each entry runs its own search and results are merged and de-duplicated. Leave empty if you only want to use the filters or URLs below.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "location": {
                        "title": "Location or postcode",
                        "type": "string",
                        "description": "Town, city, county, or postcode to search near, such as 'Manchester', 'Kent', or 'M1 4BT'. Matches what you would type into Ofsted's location box. Applied to every search term above. Leave empty to search all of England."
                    },
                    "startUrls": {
                        "title": "Ofsted URLs",
                        "type": "array",
                        "description": "Optional. Paste full Ofsted provider pages (e.g. https://reports.ofsted.gov.uk/provider/21/140696) or Ofsted search-result URLs. Any filters already applied on a search URL are respected. You can mix URLs with the search above.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "providerType": {
                        "title": "Provider type",
                        "uniqueItems": true,
                        "type": "array",
                        "description": "Only include these kinds of providers. Each choice matches Ofsted's own top-level categories, and picking several returns the union of them. Leave empty to include every type of Ofsted-registered provider.",
                        "items": {
                            "type": "string",
                            "enum": [
                                "education",
                                "further-education",
                                "childcare",
                                "social-care",
                                "other"
                            ],
                            "enumTitles": [
                                "Schools, colleges & training (all education)",
                                "Further education & skills only (colleges)",
                                "Childcare & early years (nurseries, childminders)",
                                "Children's social care (homes, fostering, adoption)",
                                "Other organisations"
                            ]
                        }
                    },
                    "rating": {
                        "title": "Latest overall rating",
                        "uniqueItems": true,
                        "type": "array",
                        "description": "Only include providers whose most recent overall Ofsted judgement is one of these. Note that filtering by rating excludes providers that do not carry a single overall grade (for example many childcare providers and schools inspected under the newest framework). Leave empty to include every rating.",
                        "items": {
                            "type": "string",
                            "enum": [
                                "outstanding",
                                "good",
                                "requires-improvement",
                                "inadequate"
                            ],
                            "enumTitles": [
                                "Outstanding",
                                "Good",
                                "Requires improvement",
                                "Inadequate"
                            ]
                        }
                    },
                    "latestReportDateStart": {
                        "title": "Latest report on or after",
                        "type": "string",
                        "description": "Only include providers whose most recent report was published on or after this date. Leave empty for no earliest limit."
                    },
                    "latestReportDateEnd": {
                        "title": "Latest report on or before",
                        "type": "string",
                        "description": "Only include providers whose most recent report was published on or before this date. Leave empty for no latest limit."
                    },
                    "includeInspectionHistory": {
                        "title": "Include full inspection history",
                        "type": "boolean",
                        "description": "Off by default for faster, cheaper runs. Each provider record already includes its latest inspection judgement, dates, and report link. Turn this on to also include a list of that provider's earlier inspections (dates, types, ratings, and report PDF links) — useful for tracking how a provider's rating has changed over time.",
                        "default": false
                    },
                    "maxResults": {
                        "title": "Maximum results",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Cap on the total number of providers returned across all searches and URLs. Defaults to 100 for a quick first run; raise it for larger pulls. Set to 0 to collect as many as possible. Results are read a page of 10 at a time and the current page always finishes, so a small cap can return up to 9 providers more than requested.",
                        "default": 100
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
