Ofsted Children's Home Inspection Reports Scraper avatar

Ofsted Children's Home Inspection Reports Scraper

Pricing

from $20.00 / 1,000 reports

Go to Apify Store
Ofsted Children's Home Inspection Reports Scraper

Ofsted Children's Home Inspection Reports Scraper

Finds Ofsted children's home full inspection reports in your date range and parses each PDF into 18 clean fields. Get ratings, registered managers, responsible individuals, enforcement actions, inspectors, home capacity and home type. Schedule it daily for new reports, export to CSV or database.

Pricing

from $20.00 / 1,000 reports

Rating

0.0

(0)

Developer

Alkausari M

Alkausari M

Maintained by Community

Actor stats

0

Bookmarked

5

Total users

1

Monthly active users

3 days ago

Last modified

Share

This Actor searches Ofsted's public register at reports.ofsted.gov.uk, opens every children's home full inspection report published in your date range, and reads each PDF into 18 fields: the three Ofsted judgements, the provider and its registered office, the responsible individual and registered manager, inspection dates, enforcement action, the named inspectors, how many children the home can look after, and the needs of the children it looks after.

Paste a search link, pick your dates, click Start, and download the results as Excel, CSV or JSON. It can also run on a daily schedule so new reports arrive without you lifting a finger.

Who uses Ofsted inspection data, and for what

  • Children's home providers and Responsible Individuals. See how homes like yours are rated: run a search for your region, then compare your latest judgements with homes that look after children with similar needs. Spot a competitor's new report the day it's published.
  • Recruitment platforms and agencies in children's residential care. Show candidates each employer's latest Ofsted judgements, and keep them current automatically as new reports come out.
  • Inspection preparation consultants. Find homes that have just dropped to Requires improvement or Inadequate, or picked up enforcement action. See which inspectors are active in a region, and how the homes they inspect are rated.
  • Local authority commissioning and placement teams. Check the current rating of every home you place children with, without opening a single PDF.
  • Researchers, journalists, investors and policy analysts. Build a multi-year dataset of judgements by provider and type of home, and track how the sector changes. To compare regions, run one search per region.
  • Developers and data teams. Feed a dashboard, an app or a matching engine from a table that keeps itself up to date.

Key features

  • ๐Ÿ“„ 18 fields from every report, read straight from the PDF
  • ๐Ÿ“… Date filter: only reports published in the dates you choose
  • ๐Ÿ”ข Result limit: stop after a set number of reports, or take everything
  • ๐Ÿ” Automatic retries: a download that fails because of a network problem is tried again, up to 3 times
  • ๐Ÿšซ No proxies needed: Ofsted's register is public, so there's no proxy traffic to pay for
  • ๐Ÿ”— Direct PDF mode: already have report links? Paste them in and skip the search
  • ๐Ÿงพ Nothing dropped silently: reports the Actor can't read are logged, and can be included for review

Ready-made examples

Don't want to build a search link? These are set up already: open one, click Run example, and get results. Each becomes a normal task, so you can change the dates or filters and save it as your own.

ExampleWhat it doesBest for
Today's full inspection reportsEvery children's home full inspection published today, nationwidePutting on a daily schedule as a new-report alert
London inspections, todayThe same, narrowed to one regionLocal authority teams, and seeing how the location filter works
Parse a list of PDFs directlySkips the search: give it report links you already haveFilling in a known set of reports, or seeing the 18 fields in seconds

How to scrape Ofsted inspection reports, step by step

  1. Find the reports on Ofsted's website. Open Ofsted's search for children's homes, add any filters you want (a region, for example) and click Search. You don't need to set dates there: the Actor uses the dates you pick in step 3 instead.
  2. Copy the web address from your browser's address bar and paste it into Start URLs on the Actor's Input tab. Or leave the default, which searches all children's homes.
  3. Pick your dates in Report Date From and Report Date To. These are the dates Ofsted published the reports, not the inspection dates. Leave both empty to get today's reports.
  4. Choose how many reports in Max Reports. It starts at 10, enough for a quick look. Set it to 0 to get every report in your date range.
  5. Click Start. You can follow progress in the Log tab.
  6. When the run finishes, open the Output tab and download the results as Excel, CSV, JSON or HTML.

First time? Try a 2 to 3 day date range with Max Reports left at 10. You'll see exactly what the data looks like within a few minutes.

How long does a run take?

It depends mostly on how many reports you collect. The Actor pauses a few seconds between requests on purpose, to keep the load on Ofsted's public servers low, so it works through reports steadily rather than all at once. Direct PDF links are quicker than a search because there's no search step. The short first run suggested above shows how long your own filters take.

Input

Everything can be set on the Input tab. Only Start URLs is required.

Field on the Input tabAPI nameWhat it doesDefault
Start URLsstart_urlsAn Ofsted search link, or links to individual report PDFs (files.ofsted.gov.uk/...). You can mix both.A search of all children's homes
Report Date Fromlatest_report_date_startFirst publication date to includeToday
Report Date Tolatest_report_date_endLast publication date to includeToday
Only Latest Inspections per URNonly_latest_inspectionOn: only each home's most recent full inspection. Off: every full inspection the home has had, for its full history. (URN is Ofsted's reference number for a home.)On
Max Reportsmax_reportsStop after this many reports. 0 means no limit.10
Include Unsupported PDFs datainclude_unsupportedAlso save a row for reports whose layout the Actor can't fully read, so you can check them yourselfOff

Minimal Working Example (Input JSON)

Use this if you'd rather write the input as JSON than fill in the form: paste it into the JSON view of the Input tab, or send it when you start the Actor through the API. Any field you leave out takes its default from the Input table.

This example collects full inspection reports for children's homes published between 15 and 17 February 2026:

{
"start_urls": [
{ "url": "https://reports.ofsted.gov.uk/search?q=&level_1_types=3&level_2_types%5B0%5D=11&status%5B0%5D=1&start=0&rows=10" }
],
"latest_report_date_start": "2026-02-15",
"latest_report_date_end": "2026-02-17"
}
  • start_urls: the Ofsted search to run. Replace it with a link copied from Ofsted's report search to apply your own filters, such as a region.
  • latest_report_date_start and latest_report_date_end: the first and last publication dates to include, written as YYYY-MM-DD (for example 2026-02-15). Leave both out to get today's reports.
  • max_reports isn't set, so the run stops after 10 reports. Add "max_reports": 0 to get every report in the date range.

To read reports you already have links for, list the PDF links instead of a search. No dates are needed, because each link points to one specific report:

{
"start_urls": [{ "url": "https://files.ofsted.gov.uk/v1/file/50287454" }]
}

What data do you get?

One row per inspection report:

{
"PDF URL": "https://files.ofsted.gov.uk/v1/file/50298941",
"Unique reference number": "2587763",
"Registered provider": "Mercia Children Services Ltd",
"Registered provider address": "Windsor House, Bayshill Road, Cheltenham, Gloucestershire GL50 3AT",
"Provision sub-type": "Children's home",
"Responsible individual": "Michael Lloyd",
"Registered manager": "David Griffiths",
"Inspection dates": "3 and 4 March 2026",
"Inspection type": "Full inspection",
"Overall experiences and progress": "good",
"Help and protection": "good",
"Leadership and management": "good",
"Date of last inspection": "25 February 2025",
"Overall judgement at last inspection": "good",
"Enforcement action since last inspection": "None",
"Inspectors": [
{ "name": "Helen Fee", "role": "Social Care Inspector" }
],
"Home Capacity": "4",
"Home Type": "social and emotional difficulties"
}

Good to know about the data

  • Home Type wording varies. Ofsted describes the same kind of home in several ways, for example "social and emotional difficulties" and "emotional and behavioural difficulties".
  • Only full inspections are collected. Monitoring visits and other inspection types are left out.
  • There's no region or home address. The only address is the provider's registered office, because inspection reports don't say where the home is. To work by region, filter your search on Ofsted's site.
  • A blank field means the report didn't include that information, or phrased it in a way the Actor doesn't recognise yet. If you spot one of those, tell us on the Issues tab.

Get new reports automatically

Run it on a schedule. Leave both dates empty, set Max Reports to 0, and schedule the Actor to run once a day, late in the evening (for example 23:00 UK time). Each run then collects everything Ofsted published that day. Send the results to a spreadsheet and you have a new-inspection alert.

Results don't have to stay on Apify. You can:

  • Send new reports to Google Sheets, Airtable or Slack: pick the integration on the Actor's Integrations tab, and every run adds its results automatically
  • Connect anything else through Zapier or Make, triggered when a run finishes
  • Fire a webhook to your own server the moment a run completes, with a link to the new results
  • Pull the data over the API in JSON, CSV, Excel or XML
  • Call it from an AI agent over MCP: Apify's MCP server makes this Actor available as a tool to MCP-compatible agents such as Claude, so an agent can fetch inspection data during a conversation

Avoiding duplicates. Each run's results are separate. If you send them to a spreadsheet, make sure runs don't cover the same dates twice (the daily schedule above already does this).

Tips

  • Narrow your search first. Filters you apply on Ofsted's report search, such as region or type of provider, carry over into the link you paste. That's the biggest lever on both run time and cost.
  • Leave Only Latest Inspections on unless you need history. It skips older reports for the same home.

FAQ and troubleshooting

I only got 10 reports. Max Reports is 10 by default, and that includes lists of direct PDF links. Set it to 0 to remove the limit.

The run returned no reports. Check that your dates cover when the reports were published, not when the inspections happened, and try a wider range. Dates set on Ofsted's own website are ignored; use Report Date From and Report Date To. From the API, write dates as YYYY-MM-DD: a date in a format the Actor can't read stops the run with an error rather than searching the wrong dates.

A field is empty. The report didn't include it, or worded it in a way the Actor doesn't recognise yet. A blank is safer than a guess.

Some reports are missing. Reports whose layout the Actor can't read are logged rather than saved. Turn on Include Unsupported PDFs data to get a row for them too.

Is it legal to scrape Ofsted reports? The Actor only reads reports Ofsted publishes openly on its public register. No login is needed and no private data is accessed. Make sure your use of the data complies with the law, including data protection law where the data names people.

Can you add fields or other types of provider? Yes. Custom fields, other Ofsted provision types and scheduled data pipelines are all possible: get in touch below.

Support

Bugs, feature requests or custom work: open an issue on the Actor's Issues tab, or email alkausarimujahid@gmail.com.