You get a Clay table of school districts with headcount, location and website, plus the superintendent and a work email for each. LeadOcean supplies the districts and the people. Clay's own template also pulls average SAT and ACT scores and student-teacher ratio (Clay template, September 2026). LeadOcean holds none of those scores, so add them from a public education dataset.
How it works
- Size the list first. Call
GET /v1/companies/countwith an education industry and a country. It is free and returns the exact total with breakdowns by headcount band and HQ state (LeadOcean docs, October 2026). - Search the districts. Call
POST /v1/companies/searchwithindustry,hqCountryandemployeeRange. Each company returned is one record. One search pages to 10,000 rows (LeadOcean docs, September 2026). - Import the CSV into Clay. Keep
company_domain,company_name, headcount and HQ state. - Find the superintendent. Add an HTTP API column that calls
POST /v1/people/searchwith the district domain and the titleSuperintendent. Gate it with "Only run if" on a filled domain (Clay docs, September 2026). Search returns the name and title, never the address. - Get the email. Add a second HTTP API column that calls
POST /v1/people/enrichwith the row'smeta.source_ids.person_idandreveal_email: true. Run it only where step 4 found someone. - Add scores from a public source. Join SAT, ACT and student-teacher ratio on the district name or state ID. LeadOcean does not carry these.
Configuration
Step 2. Industry values are exact strings. List them with GET /v1/enums/industry?q=education (free) and pick the ones that fit.
curl -X POST "https://api.leadocean.io/v1/companies/search" \
-H "x-api-key: $LEADOCEAN_API_KEY" \
-H "content-type: application/json" \
-d '{
"industry": ["Primary and Secondary Education", "Education Administration Programs"],
"hqCountry": ["US"],
"employeeRange": ["201-500", "501-1000"],
"limit": 100
}'Steps 4 and 5, Clay's HTTP API columns. Run each once per district.
Method: POST
URL: https://api.leadocean.io/v1/people/search
Headers: x-api-key: <your LeadOcean key>
content-type: application/json
Body: { "domain": ["/Domain"], "title": ["Superintendent"], "limit": 1 }
Method: POST
URL: https://api.leadocean.io/v1/people/enrich
Body: { "person_id": "/Person ID", "reveal_email": true }Test one row before a full table. Add count=true as a query parameter with limit=1 to test it for free.
Field mapping
| LeadOcean field | Clay column | Note |
|---|---|---|
company_data.company_name | District | Display name. |
company_data.company_domain | Domain | Join key for the superintendent step. |
company_data.company_employees | Staff headcount | A size proxy, not student enrollment. |
company_data.company_primary_address | State | HQ address. Take the state to join public score data. |
meta.source_ids.person_id | Person ID | From the people search. Feeds step 5. |
profile_data.profile_full_name | Superintendent | From the people search. |
contact_data.contact_emails[].email | Work email | From step 5. Read email_status before sending. |
Cost at 10,000 rows
LeadOcean. 10,000 districts is 10,000 records. Each superintendent found is one search record plus one enrichment, so up to 20,000 more. A search or enrichment that finds nobody costs nothing. Counting is free. Free holds 1,000 records for life at 5 requests a second. Solo is $97 a month and Agency is $497 a month, with a fair-use pace and no per-record price (LeadOcean pricing).
Clay. Each HTTP API call uses one Action, so two columns over 10,000 rows is up to 20,000 Actions. Growth includes 40,000 Actions a month and costs $495 a month billed monthly, or $446 billed yearly (Clay pricing, September 2026). Launch and Free have no HTTP API column.
Troubleshooting
| Symptom | Cause | Fix |
|---|---|---|
| Industry returns zero rows | The value is not an exact string | Run GET /v1/enums/industry?q=education and copy the value. |
| Districts look like single schools | The industry label covers schools too | Raise employeeRange and check the domain. |
| No superintendent found | The district page lists none, or the title differs | Retry with Superintendent of Schools or Director. |
| 402 mid-run | The 1,000 free records are spent | Move to Solo or Agency, or stop. |
| 429 | Over 5 requests a second on Free | Honor Retry-After and slow the column. |
FAQ
Does LeadOcean have SAT or ACT scores?
No. LeadOcean is people and company data. Scores are public records, so join them from your state education department's data.
Can I find school districts by student enrollment?
Not directly. Headcount counts employees, not students. Use it as a rough size band and join enrollment from public data.
Do I need Clay for this?
No. Steps 1, 2, 4 and 5 work from a script and a spreadsheet. Clay adds the table and the score join. For the sign-up pattern behind this, see the sign-up enrichment workflow.
Do I need a card to try it?
No. The free plan needs no card and gives 1,000 records for life, with every feature.
Back to all integrations. Related: score prospects on work history and build an account list and score it.
Build your school district list. Start free.
Free to start. No credit card. 1,000 records to spend whenever you like.
Get your free API key →