Build with SplashPadHub
11 JSON endpoints. Free. CC-BY 4.0. 24h edge cache. No auth, no rate limit, no signup. Built to be agent-callable and copy-pasteable.
Quick start
Every endpoint returns application/json with permissive caching headers. Hit them directly from a browser, server, or AI agent — no key required.
curl -s https://splashpadhub.com/api/pads.json \
| jq '.[] | select(.state == "Texas" and .cost == "free") | .name' \
| head -5// Bun / Node 18+ / browser
const res = await fetch("https://splashpadhub.com/api/pads.json");
const pads = await res.json();
const houstonFree = pads.filter(
(p) => p.citySlug === "houston" && (!p.cost || p.cost === "free"),
);
console.log(`${houstonFree.length} free splash pads in Houston`);import requests
pads = requests.get("https://splashpadhub.com/api/pads.json", timeout=10).json()
# Find top-rated toddler-friendly pads
top_toddler = sorted(
[p for p in pads if "toddler" in (p.get("features") or [])],
key=lambda p: p.get("rating") or 0,
reverse=True,
)[:5]
for p in top_toddler:
print(f"{p['rating']} {p['name']} ({p['city']}, {p['state']})")All 12 endpoints
All splash pads
GET /api/pads.jsonMap clients, geo agents, near-me lookups across all 50 states.
[
{
"id": "tx-houston-discovery-green",
"slug": "discovery-green-splash-pad",
"name": "Discovery Green Splash Pad",
"city": "Houston", "state": "Texas",
"stateSlug": "texas", "citySlug": "houston",
"lat": 29.7536, "lng": -95.3593,
"cost": "free", "rating": 4.7, "reviewCount": 312,
"features": ["toddler", "shade", "restrooms"]
},
...
]State + city index
GET /api/states.jsonBuild navigation, regional dashboards, or seasonal status overlays.
[
{
"slug": "texas", "name": "Texas", "padCount": 87,
"cities": [{ "slug": "houston", "name": "Houston", "padCount": 14 }, ...],
"topMetro": "Houston-The Woodlands-Sugar Land",
"seasonStart": "2026-04-01", "seasonEnd": "2026-10-31",
"yearRound": false
}
]Unified search index
GET /api/search.jsonDrop-in client-side search across pads, states, cities.
[
{ "type": "pad", "name": "Discovery Green", "href": "/pad/discovery-green-splash-pad", "subtitle": "Houston, Texas" },
{ "type": "state", "name": "Texas", "href": "/texas", "subtitle": "87 pads" },
{ "type": "city", "name": "Houston, Texas", "href": "/texas/houston", "subtitle": "14 pads" }
]Q&A bank
GET /api/qa.jsonRAG / AI agent ground-truth on splash-pad questions, safety, etiquette.
[
{
"slug": "are-splash-pads-safe-for-toddlers",
"q": "Are splash pads safe for toddlers?",
"shortAnswer": "Yes, for ages 18m+ with supervision...",
"longAnswer": "...",
"tags": ["safety", "toddler"],
"related": ["splash-pad-vs-pool", ...]
}
]Glossary terms
GET /api/glossary.jsonDefine splash-pad jargon (zero-depth, ground-spray, recirculating).
[
{ "slug": "zero-depth", "term": "Zero-depth entry", "definition": "..." }
]Category index
GET /api/categories.jsonDiscover curated lists: free, toddler, shade, accessible.
[
{ "slug": "free", "label": "Free splash pads", "count": 612 },
{ "slug": "toddler", "label": "Toddler-friendly", "count": 480 }
]Seasonal open/close status
GET /api/seasonal-status.jsonShow which states are open right now — peak summer signal.
[
{
"stateSlug": "texas",
"typicalOpenDate": "2026-04-01",
"typicalCloseDate": "2026-10-31",
"yearRound": false
}
]State-vs-state comparisons
GET /api/state-vs.jsonPre-built comparison data (Texas vs Florida, etc).
[{ "slug": "texas-vs-florida", "stateA": "Texas", "stateB": "Florida", ... }]City-vs-city comparisons
GET /api/city-vs.jsonPre-built city matchups for SEO and travel content.
[{ "slug": "houston-vs-austin", "cityA": "Houston", "cityB": "Austin", ... }]Blog feed
GET /api/blog.jsonSyndicate the latest splash-pad guides + reports.
[{ "slug": "summer-2026-guide", "title": "...", "publishedAt": "2026-05-01", "excerpt": "..." }]LLM grounding bundle
GET /api/llm-context.jsonOne-shot context for AI agents: totals, top pads, endpoints, slugs.
{
"site": "SplashPadHub", "url": "https://splashpadhub.com",
"totals": { "pads": 866, "states": 51, "qa": 200, "comparisons": 50 },
"stateCoverage": [...], "topPads": [...],
"endpoints": { "pads": ".../api/pads.json", ... }
}LLMs-full bundle (agent-ready)
GET /api/llms-full.jsonOne round-trip whole-site context for AI agents: every QA, glossary, seasonal status, state/regional/special guides, top 50 pads, recent blog, endpoint catalog.
{
"meta": { "generatedAt": "...", "version": "1.0", "license": "CC BY 4.0", ... },
"summary": { "pads": 866, "states": 51, "qa": 480, "blog": 20, "stateGuides": 51, ... },
"qaLibrary": [{ "slug": "...", "q": "...", "shortAnswer": "...", "tags": [...] }, ...],
"glossary": [{ "slug": "...", "term": "...", "definition": "..." }, ...],
"seasonalStatus": [{ "stateSlug": "...", "typicalOpenDate": "...", "bestMonthsToVisit": "..." }],
"stateGuides": [{ "stateSlug": "...", "title": "...", "intro": "..." }],
"regionalPicks": [...], "specialGuides": [...],
"recentBlog": [...], "topPads": [...],
"apis": [{ "url": "...", "description": "..." }, ...]
}Embed widget
Drop a list of splash pads for any US city into your site with a one-line iframe. Read-only, self-contained, no JS dependencies.
<iframe
src="https://splashpadhub.com/embed/texas/houston"
width="100%"
height="520"
loading="lazy"
style="border:0;border-radius:12px"
title="Splash pads in Houston, TX"
></iframe>URL pattern: /embed/[stateSlug]/[citySlug]. Slugs match the values in /api/states.json. See full embed docs for examples.
Caching
- Browser:
max-age=3600(1 hour) - Edge / CDN:
s-maxage=86400(24 hours) - Stale-while-revalidate:
604800(1 week) on most endpoints
There is currently no rate limit and no authentication. We trust you. If you plan to hit endpoints from a bot at high volume, please cache locally and respect the headers above.
License & attribution
All data is licensed CC-BY 4.0. You may use it commercially, modify it, and redistribute it. We ask for one thing: a visible link back to splashpadhub.com near the data.
Data from SplashPadHub.com (CC-BY 4.0)Honesty notes
- This is a free open-data project, not enterprise-grade. No SLA.
- Data refreshes quarterly; seasonal status updates more often. Treat
cost,features, and operating dates as best-effort. - If a field is missing, we left it blank on purpose — better than guessing.
- Endpoints are statically generated at build time; new pads appear after each deploy.
Build with us
Need a white-label feed, a custom slice, or a commercial license without the attribution requirement? We're happy to talk.
Email partners@splashpadhub.com — tell us what you're building.