Court data for AI assistants and developers
CourtlyGo is an open, structured database of tennis, pickleball and padel courts, built so AI assistants and apps can look up real courts instead of guessing.
Status
| Interface | Status | What it is |
|---|---|---|
| MCP server | Live | Lets an AI assistant search courts and open one record. Address: https://courtlygo.com/mcp |
| API | Coming soon | The same data over HTTPS for sports, travel and local-search apps. Free. |
| City data files | Available now | One JSON file per city, free to download under ODbL: Los Angeles area · San Francisco · New York · Chicago · Austin. |
The website, the MCP server and the data files are free to use. Need higher volume, bulk export or a custom feed? Email hello@courtlygo.com.
MCP server
MCP (Model Context Protocol) is a standard way for an AI assistant to call outside tools and data, so it can look up real courts instead of guessing. The CourtlyGo MCP server is open (no key or sign-in) and read-only: it only looks courts up.
Address: https://courtlygo.com/mcp
How to connect it to an AI assistant
- Claude.ai (web or desktop app): Settings → Connectors → Add custom connector → enter the name “CourtlyGo” and the URL above, then save. Then ask a question about courts; the assistant will use the tools below.
- Claude Code: run in a terminal:
claude mcp add --transport http courtlygo https://courtlygo.com/mcp - Any other assistant or app with MCP support: add a remote (HTTP) MCP server and paste the address above.
Menu names differ between apps and change over time; look for “connectors”, “MCP servers” or “tools” in your assistant's settings.
Tools
| Tool | What it does |
|---|---|
search_courts | Find courts in a covered US city (for example Austin, TX, Long Beach or Los Angeles area) or around a point (lat, lon, radius_km). Filters: sport (tennis, pickleball, padel), setting (outdoor or indoor), lit, open_to_public, free, min_courts; paging with limit and offset. Every answer states the source and the data date. |
get_court | Full record of one court by id (from search_courts): courts per sport, surface, access, links to OpenStreetMap, source, data date and caveats. |
list_coverage | Which cities are covered and how many courts each has. |
Filters are strict: a court passes only if the property is explicitly mapped. Pass match_unknown: true to also include courts where it is unknown.
Example
Request:
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "search_courts",
"arguments": {
"city": "Chicago, IL",
"sport": "pickleball",
"open_to_public": true,
"limit": 2
}
}
}
Response (abridged; a real call against our data of 2026-10-08):
{
"total_matches": 15,
"returned": 2,
"results": [
{
"id": "way-1140694382",
"name": "Tennis & Pickleball courts at McGuane Park · 15+ courts",
"city": "Chicago, IL",
"sports": [
"tennis",
"pickleball"
],
"courts_by_sport": {
"tennis": 5,
"pickleball": 10
},
"open_to_public": "yes",
"place": {
"rel": "at",
"name": "McGuane Park",
"kind": "park"
},
"source": {
"name": "OpenStreetMap contributors (ODbL 1.0)",
"url": "https://www.openstreetmap.org/way/1140694382",
"data_date": "2026-10-08"
}
},
{
"id": "way-1144168856",
"name": "Tennis & Pickleball courts at Horner Park · 12+ courts",
"city": "Chicago, IL",
"sports": [
"tennis",
"pickleball"
],
"courts_by_sport": {
"tennis": 4,
"pickleball": 8
},
"open_to_public": "yes",
"place": {
"rel": "at",
"name": "Horner Park",
"kind": "park"
},
"source": {
"name": "OpenStreetMap contributors (ODbL 1.0)",
"url": "https://www.openstreetmap.org/way/1144168856",
"data_date": "2026-10-08"
}
}
],
"attribution": "Data © OpenStreetMap contributors, available under the Open Database License (ODbL 1.0): https://www.openstreetmap.org/copyright",
"data_note": "Many courts in OpenStreetMap have no name, address, lighting or fee information; 'unknown' means the data is missing, not that the answer is no."
}
Example questions
- “Find pickleball courts open to the public in Chicago.”
- “Which tennis courts in Austin have lights?”
- “How many padel courts are listed in New York?”
- “Show padel courts near me with more than 2 courts.”
What every record contains
| Field | Meaning |
|---|---|
| name, address or place | Name if mapped; otherwise the park or street nearby (“at …” / “near …”) |
| sports, courts per sport | Tennis, pickleball, padel; number of courts (a lower estimate where the count is not mapped) |
| setting, lit, surface | Indoor or outdoor, lighting, surface type |
| access, fee, open to public | Public, private, members; free or paid; the “open to public” verdict |
| hours, website, operator | Where mapped |
| lat, lon | Coordinates |
| source and date | OpenStreetMap object ids, and the date of the data snapshot (data_date) on every file and answer |
Unknown values are returned as “unknown”, not guessed: “unknown” means “not mapped”, not “no”. Records are built from volunteer-mapped data and are not individually verified, so they can be incomplete or out of date. Live now: Los Angeles area, San Francisco, New York, Chicago and Austin; more are coming.
What a record looks like
A real court from the directory. The same fields are in the city files you can download today (data/<city>.json), under the ODbL license.
{
"name": "Roosevelt Park Pickleball Court",
"city": "Chicago",
"sports": ["tennis", "pickleball"],
"courts_total": 4,
"courts_by_sport": {"tennis": 2, "pickleball": 2},
"setting": "outdoor",
"lit": "unknown",
"surface": ["acrylic"],
"access": "public",
"fee": "no",
"address": "62 West Roosevelt Road, Chicago, IL 60605",
"lat": 41.867781,
"lon": -87.630014,
"osm_ids": ["way/1144169594"]
}Attribution and license
The data is © OpenStreetMap contributors, available under the Open Database License 1.0. If you use it, credit it, for example: “Contains information from OpenStreetMap contributors (ODbL 1.0), via CourtlyGo.” Derived databases stay under the same license. Details: Data & license. Questions: hello@courtlygo.com.