Ofsted School Register Scraper avatar

Ofsted School Register Scraper

Pricing

Pay per event

Go to Apify Store
Ofsted School Register Scraper

Ofsted School Register Scraper

Extract official GOV.UK/Ofsted school register, provider details and inspection outcome CSV data with useful filters for education workflows.

Pricing

Pay per event

Rating

0.0

(0)

Developer

Stas Persiianenko

Stas Persiianenko

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Categories

Share

Extract official GOV.UK and Ofsted state-funded school register data, provider details, and inspection outcome fields into a clean Apify dataset.

The actor is built for public education data workflows where teams need more than a PDF or spreadsheet download. It discovers the latest official GOV.UK CSV, parses the school/provider rows, applies useful filters, and returns records with stable field names.

What does Ofsted School Register Scraper do?

Ofsted School Register Scraper downloads the official public state-funded schools inspections and outcomes dataset published on GOV.UK.

It returns structured rows for schools and providers, including identifiers, region, local authority, school type, phase, postcode, inspection dates, OEIF grades, ungraded inspection outcomes, safeguarding, trust details, sponsor details, and source metadata.

Who is it for?

  • Education suppliers building school lead lists
  • Local authority analysts monitoring Ofsted outcomes
  • Compliance teams checking provider status
  • Recruiters targeting schools by phase or region
  • Market researchers mapping education providers
  • Data teams enriching CRMs with URN and inspection fields

Why use this actor?

The GOV.UK CSV is large and changes over time. This actor makes the workflow repeatable.

  • Use the latest official file automatically
  • Or provide a direct historic CSV URL
  • Filter before exporting
  • Keep source dataset metadata on every row
  • Export to JSON, CSV, Excel, or API

Data source

Default source:

https://www.gov.uk/government/collections/maintained-schools-and-academies-inspections-and-outcomes-official-statistics

The actor follows GOV.UK pages and selects the main official CSV asset for state-funded schools inspections and outcomes.

Data fields

FieldDescription
urnOfficial unique reference number
laestabLocal authority establishment identifier
schoolNamePublished school/provider name
providerUrlOfficial Ofsted provider/report URL
ofstedPhasePhase such as Primary, Secondary, Nursery, Special
educationTypeType of education/provider
localAuthorityLocal authority name
regionGovernment region
ofstedRegionOfsted region
postcodePublished postcode
multiAcademyTrustNameMAT name when available
academySponsorNameSponsor name when available
totalPupilsTotal pupils from the source file
latestOeifOverallEffectivenessTextOutstanding, Good, Requires improvement, Inadequate, or Not applicable
latestOeifInspectionPublicationDatePublication date for latest OEIF inspection
ungradedInspectionOverallOutcomePublished ungraded inspection outcome
mostRecentCategoryOfConcernMost recent concern flag
sourceDatasetUrlCSV asset used
scrapedAtActor run timestamp

How much does it cost to extract Ofsted school register data?

The actor uses pay-per-event pricing:

  • Start fee: $0.005 per run
  • School record event: formula-derived tiered pricing starting at $0.000020902 per record on Bronze

A 20-record default run is designed to be cheap for first-time testing. Larger exports are priced per saved record.

Input

You can leave the default input as-is to fetch the latest official dataset.

{
"maxRecords": 20
}

Input options

  • startUrls - optional GOV.UK collection/statistics pages or direct CSV URLs
  • maxRecords - maximum records to save
  • ofstedRegions - exact Ofsted region filters
  • regions - exact government region filters
  • localAuthorities - exact local authority filters
  • phases - exact Ofsted phase filters
  • educationTypes - exact provider type filters
  • overallEffectivenessGrades - grades 1, 2, 3, or 4
  • onlyConcerns - include only category-of-concern rows
  • includeRawRecord - attach the full original CSV row

Output example

{
"urn": "100000",
"schoolName": "The Aldgate School",
"ofstedPhase": "Primary",
"educationType": "Voluntary Aided School",
"localAuthority": "City of London",
"region": "London",
"postcode": "EC3A 5DE",
"latestOeifOverallEffectiveness": "1",
"latestOeifOverallEffectivenessText": "Outstanding",
"providerUrl": "http://www.ofsted.gov.uk/inspection-reports/find-inspection-report/provider/ELS/100000"
}

How to run

  1. Open the actor on Apify.
  2. Keep the default source or add your own GOV.UK CSV URL.
  3. Set maxRecords.
  4. Add filters if needed.
  5. Start the run.
  6. Export the dataset.

Filtering examples

London primary schools

{
"maxRecords": 500,
"regions": ["London"],
"phases": ["Primary"]
}

Camden nursery providers

{
"maxRecords": 100,
"localAuthorities": ["Camden"],
"phases": ["Nursery"]
}

Schools with low Ofsted grades

{
"maxRecords": 1000,
"overallEffectivenessGrades": ["3", "4"]
}

Tips

  • Use exact published values for filters.
  • Start with a small maxRecords value when testing.
  • Use direct CSV URLs when you need a reproducible historic snapshot.
  • Turn on includeRawRecord only when you need audit-level detail.

Integrations

Use the results in:

  • CRM enrichment workflows
  • Local authority dashboards
  • Supplier lead generation pipelines
  • Education compliance monitoring
  • BI tools such as Looker, Power BI, or Tableau
  • Google Sheets or Airtable via Apify integrations

API usage

Node.js

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('automation-lab/ofsted-school-register-scraper').call({
maxRecords: 100,
regions: ['London']
});
console.log(run.defaultDatasetId);

Python

from apify_client import ApifyClient
client = ApifyClient('MY-APIFY-TOKEN')
run = client.actor('automation-lab/ofsted-school-register-scraper').call(run_input={
'maxRecords': 100,
'regions': ['London'],
})
print(run['defaultDatasetId'])

cURL

curl -X POST 'https://api.apify.com/v2/acts/automation-lab~ofsted-school-register-scraper/runs?token=MY-APIFY-TOKEN' \
-H 'Content-Type: application/json' \
-d '{"maxRecords":100,"regions":["London"]}'

MCP usage

Use Apify MCP with:

https://mcp.apify.com/?tools=automation-lab/ofsted-school-register-scraper

Claude Code setup:

$claude mcp add apify https://mcp.apify.com/?tools=automation-lab/ofsted-school-register-scraper

Claude Desktop JSON config:

{
"mcpServers": {
"apify-ofsted-school-register": {
"url": "https://mcp.apify.com/?tools=automation-lab/ofsted-school-register-scraper"
}
}
}

Example prompts:

  • "Extract 200 Ofsted school records for London primary schools."
  • "Find schools in Camden with the latest overall effectiveness grade 1 or 2."
  • "Create a CSV of schools with category-of-concern fields."

Legality

This actor reads public GOV.UK and Ofsted data. You are responsible for using the output lawfully, respecting applicable public-sector data terms, privacy rules, and your own compliance requirements.

FAQ

Does it require login?

No. The default workflow uses public GOV.UK pages and public CSV downloads.

Does it scrape individual PDF reports?

No. The MVP focuses on the official register/outcomes CSV and provider URLs. PDF parsing can be added later if users need report text.

Why did my filter return no rows?

Filters are exact matches against GOV.UK CSV values. Try a run without filters, inspect values, then copy the exact value into your input.

Can I use historic datasets?

Yes. Provide a direct GOV.UK CSV asset URL in startUrls.

Changelog

0.1

  • Initial release with latest GOV.UK CSV discovery
  • Direct CSV input support
  • Region, authority, phase, type, grade, and concern filters
  • Structured Ofsted school/provider output

Support

If a GOV.UK dataset changes shape, open an Apify issue with the source URL and example input so we can update the mapping.