Ofsted School Register Scraper
Pricing
Pay per event
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
Maintained by CommunityActor 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:
The actor follows GOV.UK pages and selects the main official CSV asset for state-funded schools inspections and outcomes.
Data fields
| Field | Description |
|---|---|
urn | Official unique reference number |
laestab | Local authority establishment identifier |
schoolName | Published school/provider name |
providerUrl | Official Ofsted provider/report URL |
ofstedPhase | Phase such as Primary, Secondary, Nursery, Special |
educationType | Type of education/provider |
localAuthority | Local authority name |
region | Government region |
ofstedRegion | Ofsted region |
postcode | Published postcode |
multiAcademyTrustName | MAT name when available |
academySponsorName | Sponsor name when available |
totalPupils | Total pupils from the source file |
latestOeifOverallEffectivenessText | Outstanding, Good, Requires improvement, Inadequate, or Not applicable |
latestOeifInspectionPublicationDate | Publication date for latest OEIF inspection |
ungradedInspectionOverallOutcome | Published ungraded inspection outcome |
mostRecentCategoryOfConcern | Most recent concern flag |
sourceDatasetUrl | CSV asset used |
scrapedAt | Actor 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 URLsmaxRecords- maximum records to saveofstedRegions- exact Ofsted region filtersregions- exact government region filterslocalAuthorities- exact local authority filtersphases- exact Ofsted phase filterseducationTypes- exact provider type filtersoverallEffectivenessGrades- grades1,2,3, or4onlyConcerns- include only category-of-concern rowsincludeRawRecord- 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
- Open the actor on Apify.
- Keep the default source or add your own GOV.UK CSV URL.
- Set
maxRecords. - Add filters if needed.
- Start the run.
- 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
maxRecordsvalue when testing. - Use direct CSV URLs when you need a reproducible historic snapshot.
- Turn on
includeRawRecordonly 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 ApifyClientclient = 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.
Related scrapers
- https://apify.com/automation-lab/uk-ofsted-inspections-scraper
- https://apify.com/automation-lab/uk-companies-house-scraper
- https://apify.com/automation-lab/uk-charity-commission-scraper
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.