Twelve scrapers you don't have to write.
We run the collection pipeline — twelve scrapers, nightly, geocoded, deduplicated, expired on schedule — and serve the result as six standalone datasets: courts, clubs, tournaments, leagues, instructors, ambassadors. Buy only what you need, one time or on a monthly subscription, or take all six together as the discounted Full map bundle. Evaluate any of them without signing anything; a signed acceptable-use rider unlocks the personal contact fields on the four datasets that carry them — see Terms below.
Queried live from the production database on every page load — not a snapshot that goes stale.
Pipeline activity, Jul 9 – Oct 2, 2026, from our nightly run logs. Updated after every run.
What you are actually buying
The records are the visible part. The part that costs you money is keeping them true: source sites redesign without warning, republish the same event under a new URL, sit behind logins or CAPTCHAs before you can even reach the data, ship addresses that are missing or wrong, and never tell you when a listing dies. That is the work we do in every pipeline run.
Build it yourself
- Reverse-engineer twelve sources, two behind logins
- Geocode every address yourself, and pay per lookup
- Detect the same tournament republished under a new URL
- Expire finished and cancelled events so you stop showing them
- Repair scrapers each time a source site is redesigned
- Run and monitor all of it, nightly, indefinitely
Plug into ours
- One authenticated endpoint, one integration
- Coordinates already resolved on every record — you never pay per lookup
- Content-matched deduplication, with human review of edge cases
- Finished listings leave the live set automatically
- Source breakage is our problem, repaired inside 5 business days
- Nightly, whether or not you think about it
What you get, dataset by dataset
A one-time export is every record in the second column, frozen at the moment you buy. A subscription is the same records kept current nightly, plus the new ones in the third column as they arrive.
| Dataset | Records today | New per month |
|---|---|---|
| Courts & venues | 29,048 venues 125,447 individual courts |
~250 |
| Clubs | 20,081 | ~940 |
| Tournaments (subscription only) | 1,413 upcoming plus 17,384 finished, back to 2022 |
~520 |
| Leagues (subscription only) | 305 current plus 7,276 finished |
~160 |
| Instructors | 13,278 | ~370 |
| Ambassadors | 2,312 | Refreshed nightly |
Records today are live counts using the same filters the API applies. New per month is the average from our nightly run logs (Jul 9 – Oct 2, 2026), recomputed after every run and leaving out one-off bulk reloads.
Extensive US coverage in every state, plus 25,000+ records abroad
All 50 states plus DC. Venue coverage reaches every US state and the District of Columbia. The court network — every venue geocoded, linked back to its source listing — is the largest single asset in the data.
45 countries with live tournaments. Beyond the US: Canada, Australia, the UK, Spain, Portugal and New Zealand carry the most events. Every record states where it came from — PickleballTournaments, APP Tour, UTR Sports, Swish, PickleballDen, pickleballleagues.com, Pickleheads, DUPR, the Professional Pickleball Registry and USA Pickleball, plus direct submissions from users on the site. Tournaments and leagues are filterable by source; courts, clubs, instructors and ambassadors document it in every record but aren't filterable by it yet.
How it stays current
Nightly scrape
All twelve scrapers run at midnight daily. A steady night re-checks 57,000+ source records.
Deduplicate
Source sites re-publish events under new URLs. Matching on date, city and name catches those; suspected duplicates are held for human review, never silently merged.
Expire
Finished and cancelled listings leave the live set automatically the day after they end, so you are never serving a stale event.
Community-added
Tournament organizers, league operators, venues and instructors can add themselves directly through the site. Every submission is reviewed by a human before it goes live.
Built to fail safely
Source sites go down, time out and change without notice. The pipeline assumes they will.
- Isolated scrapers. Each source runs on its own, so one site failing never takes the others down with it.
- Retries with backoff. Page fetches, database writes and address lookups retry on transient errors, and the longest crawl resumes where it stopped.
- Anomaly detection. Each source's nightly count is checked against its own history. A zero, a crash or a sharp drop is flagged in the morning report, with thresholds tuned on real runs so a flag means a real problem.
- Hard deadline. A run that hangs is stopped at five hours, naming the stuck source, so it can never block the next night.
- Independent watchdog. A separate check every morning alerts if no run has completed in 26 hours, catching the one failure a pipeline can't report on itself: not running at all.
A read-only JSON API over HTTPS
Bearer-token authentication, cursor pagination on every collection, and an
updated_since parameter on every collection so you can sync
incrementally instead of re-pulling the world. Radius searches page the
same way and report a total alongside each page, so a dense
metro never hands you a silently partial answer, and every page reports a
total so you can size a sync and confirm it ran to completion.
Every record carries
structured country, region and city
alongside its full address, and every collection can be filtered on them
(?country=, ?region=, ?city=, or
?state= for a two-letter US code) — so "every court in Spain"
is one call, not a string match. Courts, Clubs, Instructors
and Ambassadors additionally require a signed acceptable-use rider on the
key — see Terms below.
GET /v1/tournaments | Filter by bounding box, radius from a point, date range, cost, source. ?status=live (default) is what is still to come; archived is every event that has finished, back to 2022; all is both |
GET /v1/tournaments/{id} | Single listing with full detail |
GET /v1/leagues | Same filters and the same ?status=, on season-based dates |
GET /v1/courts | Filter by bounding box, radius, state, indoor/outdoor, minimum court count, access type. Contact email/phone on ~15% of venues, with the rider |
GET /v1/courts/{id} | Single venue with court configuration; contact fields with the rider |
GET /v1/clubs | Filter by bounding box or radius. Member counts, plus contact info on 97.6% of clubs and full director/organizer structure, with the rider |
GET /v1/instructors | Coaches and pros by location, filterable by certification. Contact email on 23% of coaches, with the rider |
GET /v1/ambassadors | USA Pickleball ambassadors by location — the original August 2026 roster plus nightly additions. Contact email on 69%, with the rider |
GET /v1/openapi.json | The full machine-readable contract — every endpoint, parameter, response field and error code. No key needed to read it, so you can review the API before signing up |
GET /v1/exports/{dataset}?format=csv|parquet | Your one-time buy-in's download link — a frozen snapshot as of your purchase date, re-downloadable any time. {dataset} is the one you bought: courts, clubs, instructors, ambassadors, or full_map, which returns a ZIP of all six plus the free tournament-director bonus |
# Everything within 50 miles of Austin opening for registration soon
curl -H "Authorization: Bearer $PBM_KEY" \
"https://www.pickleballtournamentsmap.com/api/v1/tournaments?lat=30.27&lng=-97.74&radius=50"
{
"id": 24817,
"name": "Texas Open Pickleball Championships",
"start_date": "2026-10-09",
"registration_status": "Registration opens on 08-31-2026",
"cost": 65.0,
"formatted_address": "3918 Manchaca Rd, Austin, TX 78704, USA",
"lat": 30.2371, "lng": -97.7823,
"distance_miles": 3.4,
"source": "PickleballTournaments",
"url": "https://www.pickleballtournaments.com/...",
"first_seen": "2026-08-01"
}
What counts, what it costs, what happens when it breaks
| An API call | One HTTP request, whatever it returns. Pagination is the exception — each page is its own call, so pull a larger page size per request if volume matters to you. |
| Going over | Nothing is cut off. You keep serving, we invoice the overage at $6 per additional 1,000 calls. No silent throttling, no surprise suspension. Every response carries X-Quota-Limit, X-Quota-Used and X-Quota-Remaining, so the number we invoice is one you can see and forecast all month. |
| Rate limit | 10 requests per second sustained, 50 in a burst. Above that you get HTTP 429 with a Retry-After header rather than a dropped connection. |
| Caching | Expected, not merely tolerated — mirror it in your database and serve your users from your own copy. Refresh at least every 7 days. |
| Record identity | Integer ids are stable for the life of a record and never reused, so historical rows stay joinable even after a listing leaves the live set. |
| If you cancel | After the 12-month minimum term, a final full export in CSV or Parquet, yours to keep, at no charge. You keep what you already cached under the normal refresh policy either way. |
| When a source breaks | Every run is monitored and each source reports its own record count, so a silent failure is caught the same night rather than weeks later. Repaired inside 5 business days. |
| Reporting bad data | Email the record id. Corrections that are ours to make — geocoding, deduplication, expiry — are fixed within 2 business days. |
Terms, in plain language
| License | Non-exclusive. Subscriptions carry a 12-month minimum term, billed monthly, then continue month to month, terminable at 30 days. You license use of the data; PickleballMaps retains ownership of the compilation. |
| Attribution | One credit per surface, not per record: "Data by PickleballMaps" with a link, somewhere on any screen built on the data. |
| Availability | Target 99.5% monthly uptime, measured on the API rather than the scrapers. Freshness is guaranteed to one nightly cycle. |
| Acceptable-use rider | The rider governs the personal contact fields, not the datasets holding them: permission-based outreach only, no resale or list transfer, opt-outs honored within 5 business days. Without it every dataset is still fully available — Courts, Clubs, Instructors and Ambassadors simply arrive with their contact fields withheld, and each response says so in X-Contact-Fields-Withheld. You can evaluate everything before signing anything. Tournaments and Leagues carry no contact columns at all. |
| One-time exports | Courts, Clubs, Instructors, Ambassadors and Full map nationwide, plus Courts for any single state. Tournaments and Leagues are subscription-only: most of what a snapshot of them holds is over within months. A frozen snapshot as of your purchase date and time. Re-download any time — it always returns exactly what you paid for, never later updates. Delivered as CSV or Parquet via your own download token, not an API key. |
| Subscribing to a dataset | Sold on its own — no export purchase needed first. A 12-month minimum term, billed monthly, which you agree to at checkout; after that, month to month. The subscription includes the whole current dataset through the API from day one. |
Plans
Six standalone datasets — courts, clubs, tournaments, leagues, instructors, ambassadors — each with a monthly subscription (12-month minimum term), and all but Tournaments and Leagues with a one-time export too. Buy only what you need, or take all six as the discounted Full map bundle and get the 2024 tournament-director contact list free as a bonus (that role has no home of its own dataset). Courts, Clubs, Instructors and Ambassadors carry real personal contact info and require the acceptable-use rider above; Tournaments and Leagues don't.
| Dataset | Fields beyond name & location | One-time export | Monthly subscription | In Full map |
|---|---|---|---|---|
| Courts & venues | Indoor/outdoor court counts, lights & surface flags, access type, venue photo; contact email/phone where published (~15% of venues, rider required) | $4,000 | $150/mo | ✓ |
| Clubs | Member count, contact email on 97.6% and contact name on 88% (rider required), directors and organizers as structured JSON | $3,000 | $125/mo | ✓ |
| Tournaments | Start/end dates, registration window, live registration status, entry cost, registration URL, first-seen date, source | Subscription only | $200/mo | ✓ |
| Leagues | Season start & end, registration window, cost, listing URL, first-seen date | Subscription only | $100/mo | ✓ |
| Instructors | Certification body, profile URL, bio text, photo; contact email on 23% of coaches (rider required). Phone is present on well under 1% — treat it as absent | $2,000 | $100/mo | ✓ |
| Ambassadors | USA Pickleball's directory by territory, contact email on 69% where published (rider required), refreshed nightly | $750 | $50/mo | ✓ |
Full map ($9,000 one-time / $500/mo) bundles all six datasets above plus the 2024 tournament-director contact list — name, email and phone for every director we've ever captured, free, since Tournaments itself carries no contact info at all.
Courts
$4,000 one-time
$150 / month
25,000 calls/mo
Clubs
$3,000 one-time
$125 / month
20,000 calls/mo
Tournaments
$200 / month
20,000 calls/mo
Leagues
$100 / month
10,000 calls/mo
Instructors
$2,000 one-time
$100 / month
15,000 calls/mo
Ambassadors
$750 one-time
$50 / month
5,000 calls/mo
Full map
$9,000 one-time
$500 / month
75,000 calls/mo
Courts by state
Need one state rather than the country? Every approved court and venue in a single state, as a one-time CSV or Parquet export: the same fields and the same acceptable-use rider as the full Courts dataset, cut to that state. Priced by how many venues the state has.
| $449 one time |
California · Florida · Texas |
| $299 one time |
Alabama · Arizona · Colorado · Georgia · Illinois · Indiana · Iowa · Maryland · Massachusetts · Michigan · Minnesota · Missouri · New Jersey · New York · North Carolina · Ohio · Oregon · Pennsylvania · South Carolina · Tennessee · Utah · Virginia · Washington · Wisconsin |
| $199 one time |
Alaska · Arkansas · Connecticut · Delaware · District of Columbia · Hawaii · Idaho · Kansas · Kentucky · Louisiana · Maine · Mississippi · Montana · Nebraska · Nevada · New Hampshire · New Mexico · North Dakota · Oklahoma · Rhode Island · South Dakota · Vermont · West Virginia · Wyoming |
Test it before you decide
A 5-day key against the live production feed — free, and with no call to sit through first. Capped at 500 records per dataset, enough to check the shape and the fill rates against the real thing. Subscribe later with the same email and the same key unlocks to full volume — no new key, no re-integration.
Getting started
Tell us the shape
Which datasets, which geography, and how you plan to use it. Reply to any confirmation email — fifteen minutes is usually enough.
Evaluate on real data
A 5-day evaluation key against the live feed, capped at 500 records per dataset, at no cost — so you test against production rather than a sample file.
Buy and subscribe
Subscribe to the dataset you evaluated, with the same email, and the same eval key unlocks to full volume. No cutover, no new integration.
Pickleball Maps, LLC — questions on any of this go to whoever replies to your confirmation email.