Documentation
Simple API. Structured course data. No setup.
Use DiscGolfAPI to fetch disc golf course data for maps, directories, apps, tools, and research. Public endpoints do not require an API key.
https://io.discgolfapi.com/v1GET Quick start
Fetch five courses from Great Britain.
Sample request
fetch("https://io.discgolfapi.com/v1/courses?country=GB&limit=5")
.then(response => response.json())
.then(data => console.log(data));
Sample response
{
"count": 5,
"total": 29,
"offset": 0,
"courses": [
{
"id": "example-course-id",
"name": "Example Disc Golf Course",
"country_code": "GB",
"region_code": "ENG",
"holes": 18,
"confidence_score": 0.86,
"verification_strength": "medium"
}
]
}
Endpoints
| Method | Endpoint | Use |
|---|---|---|
| GET | /courses |
List courses, optionally filtered by country, region, limit, or offset. |
| GET | /courses/{id} |
Fetch a single course by public ID. |
| GET | /countries |
List countries represented in the API. |
| GET | /regions |
List regions represented in the API. |
| GET | /updates/recent |
Review recent data updates when available. |
| POST | /report |
Report missing, outdated, or incorrect course data. |
Filtering and limits
The course list can be filtered and paginated for common directory and map workflows.
country=GBfilters courses by country code.region=ENGfilters courses by region code where supported.limit=5limits the number of returned records. It must be a positive integer.offset=10skips records before returning the current page. It must be zero or a positive integer.
When country, region, limit, or offset is used, the response includes total, count, offset, and courses. total is the count before pagination and count is the returned page size.
Paginated request
GET https://io.discgolfapi.com/v1/courses?country=GB&limit=5&offset=10
Course object
Course records are designed for structured display rather than reviews or rankings.
| Field | Meaning |
|---|---|
id | Stable public course identifier. |
name | Course name. |
country_code | Country code for filtering and grouping. |
region_code | Region code where available. |
holes | Known hole count where available. |
confidence_score | Numeric confidence signal for the record. |
verification_strength | Human-readable verification bucket such as low, medium, or high. |
Full schema reference
The schema page includes a complete course object, field definitions, status values, layout fields, and guidance for handling unknown values.
Confidence and verification
DiscGolfAPI makes confidence explicit rather than implied. Confidence fields help you decide how to display, review, or qualify a record in your own product.
- Use high-confidence records directly in maps and directories.
- Use medium-confidence records with normal display and sensible fallbacks.
- Review low-confidence or incomplete records before relying on them for critical decisions.
Errors
Clients should handle standard HTTP error states and show a calm fallback to users.
400for invalid filters or request data.400whenlimitis not a positive integer oroffsetis negative.404when a course or endpoint is not found.429if automated traffic is excessive.500for temporary server errors.
Fair use
Public endpoints are intended for apps, websites, maps, directories, and research. Cache responses where practical, avoid unnecessary repeated requests, and do not mirror or republish the full dataset as a competing service.
Attribution
If you use DiscGolfAPI data, include visible attribution near the data.
See the full licence and terms of use for details.
Send API questions, documentation feedback, or data correction notes.
