PGA of Canada APIpgaofcanada.com ↗
Search and retrieve profiles of PGA of Canada golf professionals. Access contact info, facility details, specializations, and social links via 2 endpoints.
What is the PGA of Canada API?
The PGA of Canada API provides access to the official directory of golf professionals registered with the Professional Golfers' Association of Canada through 2 endpoints. Use search_pros to filter professionals by name, location, facility, or gender — with optional radius-based geographic filtering — and get_pro_profile to retrieve a full individual profile including email, phone, website, social media links, and lessons or programs offered.
curl -X GET 'https://api.parse.bot/scraper/62667c27-e8be-42d9-b9b9-1ac9c0e3e7a6/search_pros?name=Smith&gender=1&radius=25&facility=Golf+Club&location=Toronto%2C+ON' \ -H 'X-API-Key: $PARSE_API_KEY'
Typed, relational, agent-ready
A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.
- Fully typed · autocompletes
- Objects link to objects
- Typed errors & pagination
Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:
uv add parse-sdk uv run parse init uv run parse add --marketplace pgaofcanada-com-api
uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.
"""Walkthrough: PGA of Canada Pro Directory — search pros, drill into profiles."""
from parse_apis.PGA_of_Canada_Pro_Directory_API import PGAOfCanada, Gender, ProNotFound
client = PGAOfCanada()
# Search for golf pros by name near Toronto
for pro in client.pros.search(name="Smith", location="Toronto, ON", radius="50", limit=5):
print(pro.name, pro.type, pro.facility_name)
# Drill into one result's full profile
summary = client.pros.search(name="Smith", location="Toronto, ON", limit=1).first()
if summary:
detail = summary.details()
print(detail.name, detail.phone, detail.facility_location)
print("Programs:", detail.lessons_programs)
# Filter by gender enum
for pro in client.pros.search(name="Smith", gender=Gender.MALE, location="Toronto, ON", limit=3):
print(pro.name, pro.latitude, pro.longitude)
# Typed error handling: fetch a non-existent profile
try:
client.pros.get(profile_id="999999999")
except ProNotFound as exc:
print(f"Profile not found: {exc.profile_id}")
print("exercised: pros.search / pros.get / summary.details / Gender enum / ProNotFound error")
Search for golf professionals by name, location, facility, or gender. At least one of name, location, or facility must be provided. Results include basic profile information, facility details, and geographic coordinates when available.
| Param | Type | Description |
|---|---|---|
| name | string | Name or partial name of the golf professional to search for. |
| gender | string | Gender filter. Omit for no filter. |
| radius | string | Search radius in kilometers from the specified location. Must be between 1 and 100. |
| facility | string | Facility name or partial name to filter by. |
| location | string | City and province or postal code to search near (e.g. 'Toronto, ON' or 'M5V 1J2'). |
{
"type": "object",
"fields": {
"total": "integer",
"results": "array of professional summaries"
},
"sample": {
"data": {
"total": 28,
"results": [
{
"name": "Steve Smith",
"type": "Class \"A\" Teaching Professional",
"latitude": "43.8994757",
"longitude": "-79.3193444",
"profile_id": "105502",
"facility_url": "http://www.angusglen.com",
"facility_name": "Angus Glen Golf Academy"
}
]
},
"status": "success"
}
}About the PGA of Canada API
Searching the Directory
The search_pros endpoint accepts at least one of name, location, or facility as input. The location parameter accepts a city-and-province string (e.g. Toronto, ON) or a postal code, and can be combined with the radius parameter (1–100 km) to find professionals near a geographic point. The gender parameter adds an optional filter on top of any other criteria. Results return a total count and an array of professional summaries including basic profile information, facility details, and geographic coordinates where available.
Retrieving Full Profiles
Once you have a profile_id from search_pros, the get_pro_profile endpoint returns the complete record for that individual. Fields include name, type, about, email, phone, website, facility_url, a social_links object with platform URLs, and a lessons_programs array listing the programs that professional offers. This makes it straightforward to build contact workflows or instructor-matching features without needing to paginate through the site's directory manually.
Coverage and Scope
The directory covers professionals registered with the PGA of Canada. Profile completeness varies by individual — some entries include full contact details and social links, while others may have only partial information. The about field and lessons_programs array reflect whatever the professional has published to their public-facing profile.
The PGA of Canada API is a managed, monitored endpoint for pgaofcanada.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when pgaofcanada.com changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official pgaofcanada.com API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Build a golf instructor finder that filters by city, province, or postal code using the
locationandradiusparameters. - Populate a CRM with PGA of Canada pro contact data — email, phone, and website — pulled from
get_pro_profile. - Match golfers to instructors offering specific lesson types by querying the
lessons_programsarray. - Display facility information and maps for nearby golf professionals using geographic coordinates from
search_pros. - Aggregate social media profiles of PGA of Canada professionals using the
social_linksobject. - Filter the directory by gender to support targeted outreach or diversity-focused programs.
- Monitor public profile changes for a set of professionals by periodically calling
get_pro_profilewith knownprofile_idvalues.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does the PGA of Canada provide an official developer API?+
What does `get_pro_profile` return beyond what `search_pros` shows?+
search_pros returns summary-level data: basic profile info, facility details, and coordinates. get_pro_profile adds the email, phone, website, facility_url, social_links object (with individual platform URLs), about text, and the lessons_programs array. You need a profile_id from a search result to call it.Can I search by specialization or certification level?+
search_pros endpoint filters by name, location, facility, and gender. Specialization or certification-level filtering is not exposed. You can fork this API on Parse and revise it to add the missing endpoint or filter parameter.Are all profiles guaranteed to have contact details?+
email, phone, website, and social_links may be empty or absent for some individuals. The lessons_programs array may also be empty if the professional has not listed any programs.