GreatSchools District Scraper
Pricing
from $12.99 / 1,000 result items
GreatSchools District Scraper
Scrapes GreatSchools district profiles by state, city, or direct URL. Returns district names, ratings, student counts, addresses, and contact details as a flat row.
Pricing
from $12.99 / 1,000 result items
Rating
5.0
(3)
Developer
ParseForge
Maintained by CommunityActor stats
2
Bookmarked
67
Total users
1
Monthly active users
7 days ago
Last modified
Categories
Share
GreatSchools District Scraper
Scrape school district data from GreatSchools by state, city, or direct URL. Collect district names, ratings, student counts, and contact details for every district in a region. Export to CSV, JSON, Excel, or XML.
GreatSchools district data is spread across thousands of pages with no bulk export. This scraper reads the public district listings directly, so you can pull structured records by state, city, or a list of URLs. You get a clean dataset of district profiles without writing code.
| Who uses it | What they scrape GreatSchools for |
|---|---|
| Real estate professionals | Build neighborhood guides with district ratings and school counts for client presentations. |
| Education researchers | Compare district sizes, ratings, and geographic distribution across states. |
| Data journalists | Investigate correlations between district demographics and academic outcomes. |
| EdTech companies | Enrich a CRM with current district contact information for outreach campaigns. |
What it does
This Actor collects GreatSchools district profiles by state, city, or direct URL and returns each district as a flat row.
- 🔗 Direct URL scraping: Paste a list of district page URLs and collect their full profiles immediately.
- 🗺️ State and city discovery: Provide a state name, optionally narrow it down with a city, and the Actor finds every district listing for you.
- ⚙️ Configurable concurrency: Set the maximum parallel requests from 1 to 20 to stay under any rate limits.
Results export to CSV, JSON, Excel, or XML, or straight from the API.
What you can do with GreatSchools data
🏡 Power a real estate search tool.
A property portal runs the scraper weekly on a list of district URLs to keep school ratings current on every listing page.
📊 Build a statewide education report.
A policy analyst provides a state name like 'texas' and collects every district's rating and student count for an annual comparison.
🎯 Generate a lead list for school services.
A sales team scrapes districts by city to get names, addresses, and phone numbers for a direct mail campaign.
Why choose this scraper
| What you get | |
|---|---|
| No API key required | Reads the public GreatSchools pages directly, so you skip the registration and approval process. |
| Structured output | Every district comes back in a consistent schema ready for analysis or a database import. |
| Flexible targeting | Scrape a hand-picked list of districts or discover every district in a state with one run. |
How it compares
This Actor focuses on district-level data, while the GreatSchools Schools Scraper targets individual school listings.
| Feature | ParseForge | GreatSchools Schools Scraper - Low-cost |
|---|---|---|
| Scrapes district profiles | Yes | Not listed |
| Scrapes individual school profiles | Not listed | Yes |
| Discovery by state and city | Yes | Yes |
| Direct URL input | Yes | Not listed |
| Returns district contact details | Yes | Not listed |
Configure the run
Drive the Actor from a list of district URLs or let it discover districts by state and city, and set a cap on the total number of results collected per run. The Input tab lists every parameter.
A first run with the defaults:
{"startUrls": ["https://www.greatschools.org/california/los-angeles/los-angeles-unified-school-district/"],"maxItems": 10}
A larger pull:
{"startUrls": ["https://www.greatschools.org/california/los-angeles/los-angeles-unified-school-district/"],"maxItems": 200}
Pricing
Pay-per-result: $0.01734 per result collected. You pay only for the results written to your dataset.
| Results collected | Approximate cost |
|---|---|
| 100 results | $1.73 |
| 1,000 results | $17.34 |
| 10,000 results | $173.40 |
New Apify accounts start with $5 in free credit.
Free users
Free-plan runs return up to 10 results as a preview. Upgrade your Apify plan to collect more results per run.
Run it
- Create a free Apify account with $5 in credit.
- Open the GreatSchools District Scraper.
- Set your inputs and any filters, then click Start.
- Export the results as CSV, Excel, JSON, or XML from the Dataset tab.
Run it programmatically through the Apify API (run-sync-get-dataset-items) or the ApifyClient for JavaScript and Python.
Use with AI agents (MCP)
Give an AI agent live access to GreatSchools through the Model Context Protocol. Add the Actor to Claude, Cursor, or any MCP client:
$claude mcp add --transport http apify "https://mcp.apify.com?tools=parseforge/greatschools-scraper"
Then prompt it in plain language to run the scraper and read back the results.
Troubleshooting
Why am I getting no results?
Check that your state or city name matches the exact format used in GreatSchools URLs. For example, use 'north-carolina' not 'nc'. If you are using startUrls, verify the URLs point to a valid district page and not a school page.
The run is very slow or timing out.
Lower the 'Max Concurrency' setting to 1 or 2 to reduce the load on the target site. Also, try reducing the 'Maximum results' number to limit the scope of the run.
I received a 403 or 429 error.
GreatSchools is rate-limiting your requests. Reduce the max concurrency and consider using Apify residential proxies for a less detectable request pattern.
The data is missing some fields like the phone number.
Not every GreatSchools district profile has a listed phone number or address. The scraper returns whatever is publicly available on the page, so some fields may be empty for certain districts.
FAQ
| Question | Answer |
|---|---|
| Can I scrape school data instead of district data? | This Actor is built for district profiles. If you need individual school listings, use the GreatSchools Schools Scraper, which extracts school names, ratings, and addresses from city or state pages. |
| How do I format the state and city inputs? | Use the full lowercase state name as it appears in a GreatSchools URL, like 'california' or 'new-york'. For cities, use the lowercase hyphenated form, like 'los-angeles' or 'san-francisco'. |
| What happens if I provide both a start URL and a state? | The direct URLs in the startUrls field take priority. The state and city filters are ignored so you get exactly the districts you listed. |
| Is there a limit on how many districts I can scrape? | You control the maximum number of results collected per run with the 'Maximum results' setting. Set it high to get every district in a large state. |
| What data fields does the scraper return? | The output includes the district name, rating, number of schools, student count, address, phone number, and the GreatSchools profile URL. The exact fields are shown in a sample record on the Actor's page. |
| Can I run this on a schedule? | Yes, you can set up a recurring schedule in Apify to run the scraper daily or weekly and keep your district data fresh. |
| Will I get blocked by GreatSchools? | The Actor uses reasonable defaults and lets you lower the max concurrency if you see rate limiting. For large, frequent runs, using Apify proxies is recommended. |
| How do I export the results? | Your dataset can be downloaded in CSV, JSON, Excel, or XML from the Apify storage tab after the run finishes. |
Related actors
Browse the full ParseForge collection for more scrapers.
🆘 Need help? Email parseforge@protonmail.com with your run ID, your input, and what you expected.
⚠️ Disclaimer. This Actor is unofficial and is not affiliated with, endorsed by, or sponsored by GreatSchools, Inc. It collects only publicly available data. You are responsible for using the collected data in compliance with the source's terms of service and applicable data-protection laws, including GDPR, CCPA, and PIPL. Do not use it to collect personal data unlawfully.
