Get one course
ourpr_get_courseRead one published course: its place, distance, climb, how it was measured, and which streets carry it.
DELIBERATELY WITHOUT the elevation profile, the amenities and the centerline. Those are three more tools, because one course payload is about 83 KB and 91% of it is the profile.
Args:
slug (string): From ourpr_list_courses. Example: 'boston-marathon'.
response_format ('markdown' | 'json'): Default 'markdown'.
Returns: { "slug": string, "name": string, // the event's own name, title sponsor included "place": string | null, "alternate_names": string[], // curated geographic aliases "kind": string, "course_type": string, "distance_mi": number, // the stated race distance "measured_mi": number | null, // the centerline ourpr. measured "next_race_date": string | null, "days_out": number | null, "climb_ft": number | null, "descent_ft": number | null, "min_ft": number | null, "max_ft": number | null, "steepest_pct": number | null, "provenance": string | null, // one sentence on how it was built "sources": [{ "label": string, "value": string }], "recorded_on": string | null, // the watch that recorded the seed run "main_ways": [{ "name": string, "mi": number, "share_pct": number }], "through": string[], // named places the line passes through "photo_count": number, "counts": { "named_climbs_and_descents": number, "amenities": number, "mile_markers": number, "profile_points": number }, "page_url": string, "gpx_url": string }
distance_mi is what the race calls itself; measured_mi is what the centerline measures. They differ by a few hundredths and both are reported rather than reconciled.
Examples:
"Tell me about the Boston Marathon course" -> slug="boston-marathon"
"How much does San Diego climb?" -> slug="san-diego-marathon", read climb_ft
Do not use when: you want the hill-by-hill shape. Use ourpr_get_course_terrain.
Error handling:
Returns the slug list suggestion when the slug is unknown.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | The course's slug, exactly as ourpr_list_courses returns it. Example: 'boston-marathon'. | |
| response_format | No | Output format. 'markdown' reads well in a chat answer. 'json' carries every field for further computation. | markdown |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| kind | Yes | ||
| name | Yes | ||
| slug | Yes | ||
| place | Yes | ||
| counts | Yes | ||
| max_ft | Yes | ||
| min_ft | Yes | ||
| gpx_url | Yes | ||
| sources | Yes | ||
| through | Yes | ||
| climb_ft | Yes | ||
| days_out | Yes | ||
| page_url | Yes | ||
| main_ways | Yes | ||
| descent_ft | Yes | ||
| one_way_mi | Yes | ||
| provenance | Yes | ||
| course_type | Yes | ||
| distance_mi | Yes | ||
| measured_mi | Yes | ||
| photo_count | Yes | ||
| recorded_on | Yes | ||
| steepest_pct | Yes | ||
| next_race_date | Yes | ||
| alternate_names | Yes |