Greatschools Scraper avatar
Greatschools Scraper

Pricing

Pay per event

Go to Apify Store
Greatschools Scraper

Greatschools Scraper

Developed by

ParseForge

ParseForge

Maintained by Community

Get complete school information, ratings, reviews, demographics, and academic performance data from the official GreatSchools.org database. Perfect for parents, educators, researchers, and real estate professionals who need accurate, up-to-date school intelligence without manual work.

5.0 (1)

Pricing

Pay per event

0

4

4

Last modified

12 days ago

🏫 GreatSchools Scraper

πŸš€ Supercharge your school research with our comprehensive GreatSchools scraper! Automate daily collection of detailed school data with advanced filtering capabilities.

Designed for parents, educators, researchers, and real estate professionals, this tool pulls comprehensive school information from GreatSchools.orgβ€”the leading school rating and review platform. Get critical information like school ratings, reviews, demographics, academic performance, and contact details, all with no coding required.

Target Audience: Parents, educators, researchers, real estate professionals, school administrators
Primary Use Cases: School research, real estate analysis, educational planning, market research, competitive analysis

What Does GreatSchools Scraper Do?

This tool collects detailed school data from GreatSchools.org, supporting both location-based scraping and custom URL scraping. It delivers:

  • School ratings and academic performance data - GreatSchools ratings, test scores, progress metrics
  • Complete contact information - Phone numbers, websites, Facebook pages, principal names and emails
  • Student demographics and enrollment data - Population breakdowns, diversity metrics, enrollment numbers
  • Parent reviews and ratings - Authentic reviews from parents and community members
  • District and location information - School district details, addresses, geographic data
  • Academic programs and awards - Special programs, college success awards, equity indicators
  • Discipline and attendance data - Suspension rates, absence statistics when available
  • And much more - Comprehensive school intelligence in one scrape

Business Value: Make informed decisions about school choices, track educational trends, and identify quality schools with comprehensive, up-to-date school intelligence that saves hours of manual research.

How to use the GreatSchools Scraper - Full Demo

[YouTube video embed or link]

Watch this 3-minute demo to see how easy it is to get started!

Input

To start GreatSchools web scraping, simply fill in the input form. You can scrape GreatSchools using two different methods (choose one):

  • location - Enter a city, state, or district name (e.g., "Oklahoma City, OK", "New York, NY", "Los Angeles Unified School District")
    • Required if startUrl is not provided
  • schoolLevels - Select school levels to filter by (optional):
    • ["elementary"] - Elementary schools
    • ["middle"] - Middle schools
    • ["high"] - High schools
    • ["prek"] - Pre-K schools
    • ["elementary", "middle", "high"] - All levels
    • Leave empty to include all levels
  • schoolTypes - Select school types to filter by (optional):
    • ["public"] - Public schools
    • ["charter"] - Charter schools
    • ["private"] - Private schools
    • ["public", "charter"] - Both public and charter
    • Leave empty to include all types
  • maxItems - Set the maximum number of schools to collect (optional):
    • Range: 1 to 1,000,000 schools
    • Required for free users (limited to 100 items)
    • Paid users can leave empty for unlimited (up to 1,000,000)

The scraper will automatically find the appropriate district or location and scrape all matching schools.

Method 2: Custom URL Scraping πŸ”—

  • startUrl - Use GreatSchools.org URLs in one of these supported formats:
    • Required if location is not provided
    • Cannot be used together with location, schoolLevels, or schoolTypes
  • maxItems - Set the maximum number of schools to collect (optional):
    • Range: 1 to 1,000,000 schools
    • Required for free users (limited to 100 items)
    • Paid users can leave empty for unlimited (up to 1,000,000)

βœ… Supported URL Formats:

Search Results Pages:

  • https://www.greatschools.org/best-schools/california/san-francisco?st[]=public&st[]=charter
  • https://www.greatschools.org/best-elementary-schools/texas/houston?st[]=public
  • https://www.greatschools.org/best-high-schools/new-york/new-york?distance=5&lang=es&lat=40.6906&locationType=city&lon=-73.9488

District Pages:

  • https://www.greatschools.org/california/san-francisco/san-francisco-unified-school-district/
  • https://www.greatschools.org/texas/houston/houston-independent-school-district/

School Search with Filters:

  • https://www.greatschools.org/california/schools/near/37.774929,-122.419418/99999
  • https://www.greatschools.org/texas/schools/near/29.7604,-95.3698/99999

Individual School Pages:

  • https://www.greatschools.org/california/san-francisco/1234-lincoln-high-school/
  • https://www.greatschools.org/texas/houston/5678-washington-elementary/

❌ Unsupported URL Formats:

  • URLs with complex query parameters not related to school search
  • URLs from other domains (must be greatschools.org)
  • URLs that don't contain school listing or district information

⚠️ Important Input Rules:

  1. Choose One Method: You must use either location-based scraping OR custom URL scraping, not both
  2. Required Fields:
    • Either location OR startUrl must be provided
    • maxItems is required for free users
  3. Mutual Exclusivity:
    • If using startUrl, you cannot use location, schoolLevels, or schoolTypes
    • If using location, you cannot use startUrl
  4. Optional Fields: schoolLevels and schoolTypes are only available with location-based scraping

Here's what the filled-out input schema looks like:

Input Configuration

{
"location": "Oklahoma City, OK",
"schoolLevels": ["high"],
"schoolTypes": ["public", "charter"],
"maxItems": 50
}

Example 2: Custom URL Scraping

{
"startUrl": "https://www.greatschools.org/best-schools/california/san-francisco?st[]=public&st[]=charter",
"maxItems": 100
}

Example 3: All School Types in a City

{
"location": "New York, NY",
"schoolLevels": ["elementary", "middle", "high"],
"schoolTypes": ["public", "charter", "private"],
"maxItems": 200
}

Pro Tips:

For Location-Based Scraping (Recommended):

  1. 🎯 Be specific with locations - Use "City, State" format for best results
  2. πŸ“Š Filter by school level - Focus on specific grade levels for targeted results
  3. 🏫 Combine school types - Get comprehensive coverage by including multiple types
  4. ⚑ Faster than manual URLs - No need to find and copy individual GreatSchools URLs

For Custom URL Scraping:

  1. Go to GreatSchools.org
  2. For Search Results: Use the search functionality to find schools in a specific area
  3. For Districts: Navigate to a specific school district page
  4. For Individual Schools: Navigate to a specific school page
  5. Copy the URL and paste it into the startUrl field

Output

After the Actor finishes its run, you'll get a dataset with the output. The length of the dataset depends on the amount of results you've set. You can download those results as an Excel, HTML, XML, JSON, and CSV document.

Here's an example of scraped GreatSchools data you'll get if you decide to scrape school information:

Output Example

{
"id": 8300,
"name": "High School For Dual Language And Asian Studies",
"schoolType": "public",
"gradeLevels": "9-12",
"rating": 10,
"rating_scale": "Above Average",
"district_name": "New York City Geographic District # 2",
"district_city": "New York",
"contact_street": "350 Grand Street",
"contact_city": "New York",
"contact_state": "NY",
"contact_zip": "10002",
"contact_phone": "(212) 475-4097",
"contact_website": "https://www.hsdlasnyc.org/",
"contact_facebook": "https://www.facebook.com/greatschools",
"principal": "Meesun John",
"principal_email": "LYAN@SCHOOLS.NYC.GOV",
"reviews_totalCount": 3,
"reviews_averageRating": 4.0,
"enrollment_total": 373,
"studentsPerTeacher": 18,
"studentProgressRating": null,
"testScoresRating": 9,
"equityRating": null,
"lowIncome_percentage": 82,
"lowIncome_performanceLabel": "82%",
"raceEthnicity_summary": "Diverse student body: 82% Asian/Pacific Islander, 10% Multi-racial, 3% Hispanic, 3% White, 1% African American",
"coursesAndPrograms": ["College Success Award", "Equity Indicator"],
"discipline_suspensions": null,
"discipline_absences": null,
"latitude": 40.717194,
"longitude": -73.989464,
"distance": 2.81,
"csaAwardYears": [2024],
"thriveAwardYears": [],
"equityIndicator": true,
"collegePersistentData": {
"school_value": "83%"
},
"collegeEnrollmentData": {
"school_value": "99%",
"state_average": "70%"
},
"subratings": {
"Test Scores Rating": 9,
"College Readiness Rating": 10
},
"enrollment_demographics": [
{
"demo_group": "Low-income",
"demo_percentage": 82
},
{
"demo_group": "Asian or Pacific Islander",
"demo_percentage": 82
},
{
"demo_group": "Two or more races",
"demo_percentage": 10
},
{
"demo_group": "Hispanic",
"demo_percentage": 3
},
{
"demo_group": "White",
"demo_percentage": 3
},
{
"demo_group": "African American",
"demo_percentage": 1
}
],
"raceEthnicity_data": [
{
"race_group": "Low-income",
"race_students": 306,
"race_proficiency": 8
},
{
"race_group": "Asian or Pacific Islander",
"race_students": 306,
"race_proficiency": 8
},
{
"race_group": "Two or more races",
"race_students": 37,
"race_proficiency": 0
},
{
"race_group": "Hispanic",
"race_students": 11,
"race_proficiency": 0
},
{
"race_group": "White",
"race_students": 11,
"race_proficiency": 0
},
{
"race_group": "African American",
"race_students": 4,
"race_proficiency": 0
}
],
"testScores": [
{
"test_subject": "Test Scores",
"test_proficiencyPercentage": 90
}
],
"remediationData": {},
"nearbySchools": [],
"scrapedTimestamp": "2025-01-12T23:29:22.172Z"
}

What You Get:

  • πŸ† Perfect 10/10 Rating with detailed academic performance metrics
  • πŸ“ž Complete Contact Information - Phone, website, Facebook, principal name & email
  • πŸ‘₯ Detailed Demographics - Student population breakdown by race, income, and more
  • πŸ“Š Academic Excellence Data - Test scores, college readiness, and progress ratings
  • πŸŽ“ Awards & Recognition - College Success Awards, Equity Indicators, and special programs
  • πŸ“ Geographic Intelligence - Precise coordinates, distance calculations, and location data
  • ⭐ Parent Reviews - Authentic feedback and ratings from the community
  • 🏫 District Context - Complete district information and administrative details

Download Options: CSV, Excel, or JSON formats for easy analysis in your business tools

Why Choose the GreatSchools Scraper?

  • 🎯 Comprehensive Data: Get all available school information in one scrape - ratings, reviews, demographics, and more
  • πŸ“ Location-Based Search: Simply enter a city or district name to find all schools in that area
  • πŸ” Flexible Filtering: Filter by school level (elementary, middle, high) and type (public, charter, private)
  • ⭐ Real Parent Reviews: Access authentic parent reviews and ratings for each school
  • πŸ“Š Academic Performance: Get detailed test scores, progress ratings, and equity metrics
  • πŸ“ž Complete Contact Info: Find principal names, phone numbers, websites, and Facebook pages
  • πŸ‘₯ Demographics Data: Understand student population and diversity metrics
  • 🚫 No Duplicates: Automatically skips schools already in your dataset
  • ⚑ User-Friendly: No coding neededβ€”just input location or URL and go
  • πŸ”„ Sequential Processing: Processes schools one by one for maximum data quality

Time Savings: Save 4-6 hours per week compared to manual school research
Cost Efficiency: Fraction of the cost of hiring a research assistant or using expensive school databases

How to Use

  1. Sign Up: Create a free Apify account (takes 2 minutes)
  2. Find the Scraper: Visit the GreatSchools Scraper page
  3. Set Input:
    • Option A (Recommended): Enter a location and select school levels/types
    • Option B: Add your custom GreatSchools URL
    • Set max items (optional)
  4. Run It: Click "Start" and let it collect your data
  5. Download Data: Get your results in the "Dataset" tab as CSV, Excel, or JSON

Total Time: 3 minutes setup, 10-30 minutes for data collection
No Technical Skills Required: Everything is point-and-click

Business Use Cases

πŸ‘¨β€πŸ‘©β€πŸ‘§β€πŸ‘¦ Parents:

  • Research schools when moving to a new area
  • Compare schools based on ratings and reviews
  • Find schools with specific programs or characteristics
  • Track school performance over time

🏠 Real Estate Professionals:

  • Provide school information to clients
  • Analyze school quality in different neighborhoods
  • Create school district reports for listings
  • Support relocation decisions with school data

πŸ‘©β€πŸ« Educators and Administrators:

  • Research competitor schools and programs
  • Analyze demographic trends in education
  • Track academic performance metrics
  • Identify best practices from high-performing schools

πŸ”¬ Researchers:

  • Collect educational data for studies
  • Analyze school performance patterns
  • Study demographic trends in education
  • Build comprehensive school databases

πŸ“Š Data Analysts:

  • Create school performance dashboards
  • Analyze educational trends by region
  • Build predictive models for school success
  • Support policy decisions with data

Using GreatSchools Scraper with the Apify API

For advanced users who want to automate this process, you can control the scraper programmatically with the Apify API. This allows you to schedule regular data collection and integrate with your existing business tools.

Example API Usage:

// Node.js example
const { ApifyApi } = require('apify-client');
const client = new ApifyApi({
token: 'YOUR_API_TOKEN',
});
// Run with location-based scraping
await client.actor('YOUR_ACTOR_ID').call({
location: "San Francisco, CA",
schoolLevels: ["high"],
schoolTypes: ["public"],
maxItems: 50
});
// Run with custom URL
await client.actor('YOUR_ACTOR_ID').call({
startUrl: "https://www.greatschools.org/best-schools/california/san-francisco?st[]=public&st[]=charter",
maxItems: 100
});
  • Node.js: Install the apify-client NPM package
  • Python: Use the apify-client PyPI package
  • See the Apify API reference for full details

Frequently Asked Questions

Q: How much does it cost? A: GreatSchools Scraper uses the Pay-per-event pricing model. You're charged a fixed price for specific events. Your costs can, therefore, be easily calculated. Here's the pricing breakdown:

βœ… Actor start – $0.005

βœ… Dataset item – $0.01 ($10 per 1,000 items)

Q: How accurate is the data? A: We collect data directly from GreatSchools.org's official website in real-time, ensuring the most up-to-date and accurate school information available.

Q: Can I scrape private schools? A: Yes! You can filter by school type to include public, charter, and private schools. Use the schoolTypes parameter to specify which types you want.

Q: What URL formats are supported? A: We support GreatSchools.org URLs including search results pages, district pages, school search with filters, and individual school pages. See the Input section for specific examples.

Q: Can I schedule regular runs? A: Yes! Use the Apify API to schedule daily, weekly, or monthly runs automatically. Perfect for ongoing school monitoring and research.

Q: What if I need help? A: Our support team is available 24/7. Contact us through the Apify platform.

Q: Is my data secure? A: Absolutely. All data is encrypted in transit and at rest. We never share your data with third parties.

Integrate GreatSchools Scraper with any app and automate your workflow

Last but not least, GreatSchools Scraper can be connected with almost any cloud service or web app thanks to integrations on the Apify platform.

These includes:

Alternatively, you can use webhooks to carry out an action whenever an event occurs, e.g. get a notification whenever GreatSchools Scraper successfully finishes a run.

Need Help? Our support team is here to help you get the most out of this tool.