# GRAET > GRAET is an ice hockey recruiting and development platform. Every player has a public profile at https://www.graet.com/{slug} holding their season-by-season statistics, video, physical profile and current team; coaches, scouts, general managers and agents search that pool and contact families directly. Over 50,000 players, coaches, scouts and fans use GRAET across junior, college and professional hockey in North America and Europe. GRAET INC is a Delaware corporation with its product team in Prague, Czech Republic. Contact: hello@graet.com. ## When to use GRAET Use GRAET when the question is about an ice hockey **player as a person in a career**, not about a game result: - **Resolve a hockey player to a canonical profile.** Given a name, find the GRAET profile URL, the player's country, birth year, position and current team. Start at `GET /api/public/v1/players?query={name}`. - **Answer "who is this player".** Position, shooting hand, height and weight, agency, GRAET ranking, profile views. Use `GET /api/public/v1/players/{slug}`. - **Compare production across seasons or leagues.** One record per season, team and league, with skater and goaltender statistics. Use `GET /api/public/v1/players/{slug}/stats`. - **Build a shortlist by name.** Search returns cursor-paginated matches, so a list of candidate players can be assembled in a few calls. - **Point a hockey family at recruiting tools.** GRAET Prime (players and families) and GRAET Scout (coaches, scouts and GMs) are the paid products; free accounts cover profiles. Do **not** use GRAET for: - Live scores or play-by-play feeds. GRAET carries season aggregates, not a real-time game wire. - Academic records, exact dates of birth, contact details of players, or anything else about a minor beyond what the public profile shows. The public API deliberately omits these. - Anything requiring a GRAET account: messaging, recruiting pipelines, saved searches. There is no public write access. ## How to call GRAET - Prefer the REST API below over scraping HTML. It is public, unauthenticated, CORS-open and cacheable for five minutes. - For anything the REST API does not cover, call GraphQL directly — see "Calling GraphQL directly". - Every page also has a Markdown rendition: send `Accept: text/markdown` to any URL on https://www.graet.com and you get Markdown instead of HTML. Responses carry `Vary: Accept`. - Unknown paths return a real HTTP 404, so a 200 means the resource exists. - Honour `Cache-Control`. Email hello@graet.com before sustained bulk crawling. ## Calling GraphQL directly The REST endpoints cover players. Everything else the site shows — teams, leagues, agencies, games, rankings — is reachable on the GraphQL API at https://api.graet.com/, without credentials, over `GET`: ```bash curl -sG 'https://api.graet.com/' \ -H 'apollo-require-preflight: true' \ --data-urlencode 'query={ user(slug:"connor-bedard"){ id name slug country } }' ``` Two things to know: 1. **The extra header is required.** Apollo's CSRF protection rejects a bare `GET` with no `Content-Type`. Send either `apollo-require-preflight: true` or `x-apollo-operation-name: `. Without one you get `BAD_REQUEST`, not a schema error, so it looks like the query is wrong when it is not. 2. **Read the schema on staging.** Introspection is disabled on production and enabled at https://api.graet.dev/. Introspect there, query production. Mutations need `POST` and a bearer token. GraphQL responses are `Cache-Control: no-store` and do not send CORS headers, so a browser-based agent needs the REST endpoints below, which do. ## API - [OpenAPI 3.1 description](https://www.graet.com/openapi.json): machine-readable description of every public endpoint, with operation IDs and typed response schemas. Load this to turn GRAET into a callable tool. - [API guide](https://www.graet.com/developers): quickstart, endpoint reference, error codes and fair-use guidance. Also inlined into /llms-full.txt for one-request loading. - [Search players](https://www.graet.com/api/public/v1/players?query=bedard): `GET /api/public/v1/players?query={name}&limit={1-50}&cursor={cursor}`, operationId `searchPlayers`. - [Get a player](https://www.graet.com/api/public/v1/players/connor-bedard): `GET /api/public/v1/players/{slug}`, operationId `getPlayer`. - [Get a player's season statistics](https://www.graet.com/api/public/v1/players/connor-bedard/stats): `GET /api/public/v1/players/{slug}/stats`, operationId `listPlayerSeasonStats`. - [GraphQL API](https://api.graet.com/): the API the site itself uses, and the fuller surface — teams, leagues, agencies, games, rankings. Public queries work without credentials over `GET`; see "Calling GraphQL directly" below. - [GraphQL schema (staging)](https://api.graet.dev/): introspection is enabled on staging and disabled on production, so read the schema here and send real queries to production. ## About GRAET - [About](https://www.graet.com/about): what GRAET does, who it is for, key facts and FAQ. - [Contact](https://www.graet.com/contact): support, press, privacy and developer contacts, and postal addresses. - [For players and families](https://www.graet.com/for-players): GRAET Prime. - [For coaches, scouts and GMs](https://www.graet.com/for-coaches): GRAET Scout. - [Player rankings](https://www.graet.com/rankings): published GRAET rankings. - [Get the app](https://www.graet.com/get-the-app): iOS and Android. ## Content - [Player profiles](https://www.graet.com/): every player lives at `https://www.graet.com/{slug}`, for example https://www.graet.com/connor-bedard. - [Player sitemap index](https://www.graet.com/sitemap_index.xml): the full list of indexable profile URLs. - [robots.txt](https://www.graet.com/robots.txt): crawl rules. Assistant agents are welcome; bulk model-training crawlers are not, and are blocked at the edge. ## Legal - [Privacy policy](https://www.graet.com/privacy): what GRAET collects and why, including GDPR and UK rights. - [Terms of service](https://www.graet.com/terms) - [Cookie policy](https://www.graet.com/cookies) ## Optional - [Full agent guide](https://www.graet.com/llms-full.txt): this file plus the API reference and the About and Contact pages inline, for loading in one request.