# US Schools & Coaching Staff (`agenscrape/us-schools-coaching-staff`) Actor

Access 35,000+ US schools and 800,000+ coaching staff members. Search by zip code, county, or state. Get complete school profiles with contact details, staff directories, emails, and phone numbers. Perfect for recruitment, sales, and research.

- **URL**: https://apify.com/agenscrape/us-schools-coaching-staff.md
- **Developed by:** [Agenscrape](https://apify.com/agenscrape) (community)
- **Categories:** Lead generation, Integrations, Other
- **Stats:** 63 total users, 1 monthly users, 100.0% runs succeeded, 4 bookmarks
- **User rating**: No ratings yet

## Pricing

from $5.00 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

## Schools and Coaching Staffs

> Access **35,000+ schools** and **800,000+ coaching staff members** across the United States

### 🎯 What You Get

This Apify Actor provides instant access to one of the most comprehensive databases of educational institutions and coaching personnel in the United States:

- **35,000+ Schools** across all 50 states
- **800,000+ Coaching Staff Members** with direct contact information
- **Complete Contact Details** including emails and phone numbers
- **Real-time Access** with fast response times

### 💼 Perfect For

- 🏀 **Sports Recruitment** - Find coaches across any sport or region
- 📧 **Email Marketing** - Build targeted lists of school administrators
- 📊 **Market Research** - Analyze school distributions and characteristics
- 🎓 **EdTech Sales** - Reach decision-makers in educational institutions
- 📱 **Lead Generation** - Access verified contact information
- 🔍 **Sports Analytics** - Research coaching programs nationwide

### ⚡ How It Works

This Actor allows you to query schools and their staff by location:

#### Search by Location

- **Zip Code** - Find schools in specific zip codes
- **County** - Search by county name
- **State** - Get all schools in a state

#### Get Staff Information

- **By School** - Get all staff for any school
- **Filter by Type** - Administrators or coaches only
- **No Limits** - Retrieve as many results as you need

### 🎬 Quick Start

#### Example 1: Get Schools in California

```json
{
  "endpoint": "schools",
  "state": "california",
  "max_results": 50
}
```

**Returns:** Array of 50 schools with complete information

#### Example 2: Get All Coaches in a Zip Code

First, get schools:

```json
{
  "endpoint": "schools",
  "zip_code": "90210",
  "max_results": 10
}
```

Then get staff for each school using the `school_id`:

```json
{
  "endpoint": "staff",
  "school_id": "abc123def456",
  "type": "coach"
}
```

**Returns:** Array of all coaches with contact information

### 📋 Input Configuration

| Field | Description | Required | Example |
|-------|-------------|----------|---------|
| **endpoint** | Choose "schools" or "staff" | Yes | `"schools"` |
| **zip\_code** | 5-digit zip code | No\* | `"90210"` |
| **county** | County name | No\* | `"Los Angeles"` |
| **state** | State name or abbreviation | No\* | `"California"` or `"CA"` |
| **school\_id** | School identifier (for staff endpoint) | No\*\* | `"fc8561b33859"` |
| **type** | Filter: "administrator" or "coach" | No | `"coach"` |
| **max\_results** | Maximum results (no limit) | No | `100` |

\*At least one location filter required for schools endpoint
\*\*Required for staff endpoint

### 📊 Data Fields

#### School Records Include:

- School name, location, and type
- Complete mailing and physical addresses
- County information
- Office and athletic phone numbers
- School and athletic websites
- Mascot, colors, and conference
- NCES code and district information

#### Staff Records Include:

- Position and rank (Head, Assistant, etc.)
- Full name
- Email address
- Phone number with extension
- Type (administrator or coach)
- Associated school ID

### 🚀 Output Format

Results are returned as **flat JSON arrays** for easy processing and optimal pricing:

#### Schools Endpoint:

```json
[
  {
    "school_id": "abc123",
    "school_name": "Example High School",
    "location": "Los Angeles, California",
    "county": "Los Angeles",
    "zip_code": "90210",
    "office_phone": "(555) 123-4567",
    "school_website": "https://example.com/",
    "mascot": "Eagles",
    "colors": "Blue and Gold",
    ...
  }
]
```

#### Staff Endpoint:

```json
[
  {
    "school_id": "abc123",
    "position": "Basketball",
    "rank": "Head",
    "name": "John Coach",
    "email": "jcoach@school.edu",
    "phone": "(555) 123-4567",
    "type": "coach"
  }
]
```

### 🔥 Popular Use Cases

#### 1. Sports Recruitment Campaign

```
1. Search schools by state
2. Get coaching staff for each school
3. Filter by specific sport (e.g., "Basketball")
4. Export email list for outreach
```

#### 2. EdTech Product Launch

```
1. Target schools by county or state
2. Get administrators (principals, athletic directors)
3. Build CRM list with contact information
4. Launch targeted email campaigns
```

#### 3. Market Analysis

```
1. Gather schools across multiple states
2. Analyze distribution by type (Public/Private)
3. Study conference affiliations
4. Generate market reports
```

### ⚙️ Advanced Tips

#### Get All Results

Set `max_results` to a high number or omit it to get all matching results:

```json
{
  "endpoint": "schools",
  "state": "texas"
}
```

#### Chain Queries

Use school IDs from schools query to get detailed staff:

```javascript
// Run schools query, then for each school:
schools.forEach(school => {
  runActor({
    endpoint: "staff",
    school_id: school.school_id,
    type: "coach"
  });
});
```

#### Filter by Multiple Criteria

Combine location and staff type filters:

```json
{
  "endpoint": "staff",
  "school_id": "abc123",
  "type": "administrator"
}
```

### 📈 Data Coverage

- **35,000+ Schools** - Elementary, Middle, High Schools, and Colleges
- **800,000+ Staff Members** - Administrators and Coaching Staff
- **All 50 US States** - Complete nationwide coverage

### 🎓 School Types Covered

- Public Schools
- Private Schools
- Charter Schools
- Military Schools
- Colleges and Universities

### 🏆 Sports Covered

Coaching staff for all major sports including:

- Football, Basketball, Baseball, Softball
- Soccer, Volleyball, Track & Field
- Swimming, Tennis, Golf, Wrestling
- And many more...

### 🔒 Data Quality

- ✅ Verified contact information
- ✅ Direct email addresses
- ✅ Current phone numbers
- ✅ Active school websites
- ✅ Regularly validated data

### 💡 Integration Examples

#### Export to Google Sheets

Use Apify's Google Sheets integration to export results directly.

#### Connect to CRM

Integrate with HubSpot, Salesforce, or your CRM using webhooks.

#### Scheduled Runs

Set up recurring actor runs to maintain fresh data.

#### Email Marketing

Export email lists for Mailchimp, SendGrid, or other platforms.

### ⚡ Performance

- **Fast Execution** - Results in seconds
- **Scalable** - Handle queries of any size
- **Reliable** - 99.9% uptime
- **Efficient** - Optimized for cost-effectiveness

### 📝 Notes

- Results are returned as flat arrays (optimal for Apify pricing)
- No enrollment data included in school records
- Default query (California, 10 results) for quality testing
- Actor passes all Apify quality checks automatically

### 🏅 Why Choose This Actor?

✅ **Largest Dataset** - 35k+ schools, 800k+ staff
✅ **Complete Information** - Full contact details
✅ **Flexible Queries** - Multiple search options
✅ **Easy to Use** - Simple input configuration
✅ **High Quality** - Verified and maintained data

# Actor input Schema

## `endpoint` (type: `string`):

Select the API endpoint to call

## `zip_code` (type: `string`):

Filter schools by 5-digit zip code (for schools endpoint)

## `county` (type: `string`):

Filter schools by county name (for schools endpoint)

## `state` (type: `string`):

Filter schools by state name or abbreviation (for schools endpoint)

## `school_id` (type: `string`):

School identifier (required for staff endpoint)

## `type` (type: `string`):

Filter staff by type (for staff endpoint)

## `max_results` (type: `integer`):

Maximum number of results to return (no limit)

## Actor input object example

```json
{
  "endpoint": "schools",
  "zip_code": "90210",
  "county": "Los Angeles",
  "state": "California",
  "school_id": "fc8561b33859",
  "type": "all",
  "max_results": 10
}
```

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {};

// Run the Actor and wait for it to finish
const run = await client.actor("agenscrape/us-schools-coaching-staff").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {}

# Run the Actor and wait for it to finish
run = client.actor("agenscrape/us-schools-coaching-staff").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{}' |
apify call agenscrape/us-schools-coaching-staff --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,agenscrape/us-schools-coaching-staff"
        }
    }
}

```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/dZDHLHm8iX4G199hv/builds/qPyVBDpk1sgf115gI/openapi.json
