{"name":"GolfAPI.dev club catalog","description":"Read-only catalog of golf clubs. Every endpoint is a GET.","documentation":"https://golfapi.dev/api/","openapi":"https://clubapi.golfapi.dev/openapi.json","openapi_well_known":"https://clubapi.golfapi.dev/.well-known/openapi.json","docs":"https://clubapi.golfapi.dev/docs","version":{"current":"2026-10-02","header":"Golfapi-Version","retired":["2026-09-08","2026-09-14","2026-09-15"],"deprecated":[],"note":"The current version is 2026-10-02. Send it in Golfapi-Version, or omit the header. A deprecated version is served until its sunset date, at least 90 days after its replacement shipped. A retired date or any other date answers 400."},"authentication":{"scheme":"Bearer","header":"Authorization","format":"sk_live_<32 hex> or sk_test_<32 hex>","note":"The secret shown once at creation, not the 'key_…' key id."},"resources":[{"name":"drivers","entitlement":"drivers","serving":"2026-10-02","published":true,"list":"https://clubapi.golfapi.dev/drivers","detail":"https://clubapi.golfapi.dev/drivers/{id-or-slug}","sub_resources":[{"name":"hosel","entitlement":"club-builder","path":"https://clubapi.golfapi.dev/drivers/{id-or-slug}/hosel"}]},{"name":"mini-drivers","entitlement":"mini-drivers","serving":"2026-10-02","published":true,"list":"https://clubapi.golfapi.dev/mini-drivers","detail":"https://clubapi.golfapi.dev/mini-drivers/{id-or-slug}","sub_resources":[{"name":"hosel","entitlement":"club-builder","path":"https://clubapi.golfapi.dev/mini-drivers/{id-or-slug}/hosel"}]},{"name":"fairway-woods","entitlement":"fairway-woods","serving":"2026-10-02","published":true,"list":"https://clubapi.golfapi.dev/fairway-woods","detail":"https://clubapi.golfapi.dev/fairway-woods/{id-or-slug}","sub_resources":[{"name":"hosel","entitlement":"club-builder","path":"https://clubapi.golfapi.dev/fairway-woods/{id-or-slug}/hosel"}]},{"name":"hybrids","entitlement":"hybrids","serving":"2026-10-02","published":true,"list":"https://clubapi.golfapi.dev/hybrids","detail":"https://clubapi.golfapi.dev/hybrids/{id-or-slug}","sub_resources":[{"name":"hosel","entitlement":"club-builder","path":"https://clubapi.golfapi.dev/hybrids/{id-or-slug}/hosel"}]},{"name":"irons","entitlement":"irons","serving":"2026-10-02","published":true,"list":"https://clubapi.golfapi.dev/irons","detail":"https://clubapi.golfapi.dev/irons/{id-or-slug}"},{"name":"wedges","entitlement":"wedges","serving":"2026-10-02","published":true,"list":"https://clubapi.golfapi.dev/wedges","detail":"https://clubapi.golfapi.dev/wedges/{id-or-slug}"},{"name":"putters","entitlement":"putters","serving":"2026-10-02","published":true,"list":"https://clubapi.golfapi.dev/putters","detail":"https://clubapi.golfapi.dev/putters/{id-or-slug}"},{"name":"hosel-systems","entitlement":"club-builder","serving":"2026-10-02","published":false,"list":"https://clubapi.golfapi.dev/hosel-systems","detail":"https://clubapi.golfapi.dev/hosel-systems/{id}","sub_resources":[{"name":"clubs","entitlement":"club-builder","path":"https://clubapi.golfapi.dev/hosel-systems/{id}/clubs"}]},{"name":"weight-systems","entitlement":"weight-systems","serving":"2026-10-02","published":false,"list":"https://clubapi.golfapi.dev/weight-systems","detail":"https://clubapi.golfapi.dev/weight-systems/{id}"},{"name":"shafts","entitlement":"shafts","serving":"2026-10-02","published":false,"list":"https://clubapi.golfapi.dev/shafts","detail":"https://clubapi.golfapi.dev/shafts/{id}"},{"name":"grips","entitlement":"grips","serving":"2026-10-02","published":false,"list":"https://clubapi.golfapi.dev/grips","detail":"https://clubapi.golfapi.dev/grips/{id}"}],"rate_limit":{"limit":60,"window_seconds":60,"headers":["RateLimit-Limit","RateLimit-Remaining","RateLimit-Reset"],"note":"The default cap, per key, per wall-clock window. Your key's actual cap is on RateLimit-Limit after a key is accepted into an authenticated resource chain, including its 403 and 429 responses. Discovery at GET / carries these names but no rate-limit headers. A 304 is refunded."},"conventions":{"ordering":"Club lists are ordered by release_year descending, then club ID descending. With q, search relevance comes first. Hosel-system and equipment lists use their route-specific order. Exact released dates are optional and are not the club sort key.","absent_fields":"In the selected, unprojected document, an omitted field has no published value. A view or fields selection can exclude other fields. Preserve real false and 0 values. Coverage reports field presence in the accessible published build, not why an individual value is absent. OpenAPI requires id for projected documents and names the unprojected required set in x-required-unprojected.","view":"Golfapi-View names the served or revalidated catalog document. Core is the default unless view or fields selects another permitted document. view=basic is an accepted alias of core. Expanded requires club-builder; Market requires market and serves identity and historical US launch MSRP without specifications."},"coverage":{"name":"coverage","entitlement":"any club resource","path":"https://clubapi.golfapi.dev/coverage","note":"Counts of published club records and field presence for resources this key can access. catalog_complete is false; empty results and record 404s do not establish that a product does not exist."},"changes":{"name":"changes","entitlement":"any club resource","path":"https://clubapi.golfapi.dev/changes","note":"Club ids each catalog release added, updated or removed, after the release you name. Store the Golfapi-Catalog-Release header and pass it as after."},"health":"https://clubapi.golfapi.dev/health"}