Portail développeurs FlyAway Golf

La base de parcours FlyAway est lisible sans compte : ni clé d'API, ni OAuth, ni inscription. Chaque opération listée ici répond à une requête GET anonyme et renvoie du JSON. La description complète, lisible par machine, est publiée sous forme de document OpenAPI 3.1.

Démarrage rapide

Trois appels couvrent l'essentiel des besoins d'une intégration : résoudre un parcours, lire sa fiche complète, ou trouver les parcours les plus proches d'une coordonnée.

# Full profile of one course curl -s "https://api.flyawaygolf.com/v2/golfs/profile/golf-national" # The 10 courses nearest a coordinate, with distances in metres curl -s "https://api.flyawaygolf.com/v2/search/map/golfs?lat=48.75&long=2.07&max_distance=50000&limit=10" # The same course as prose, for a language model curl -s "https://flyawaygolf.com/golfs/golf-national/llm.md" # Base URL https://api.flyawaygolf.com/v2

Endpoints

Ce tableau est généré à partir du document OpenAPI : les deux ne peuvent donc pas diverger. Toutes les opérations sont des GET et toute réponse réussie est encapsulée dans une clé data de premier niveau.

OpérationEndpointDescription
Courses
listGolfCoursesGET /golfsList golf courses
getGolfCourseProfileGET /golfs/profile/{slug}Get the full profile of a golf course
getGolfCourseSummaryGET /seo/golfs/{identifier}Get a compact summary of a golf course
resolveGolfCourseIdGET /golfs/resolve/{golf_id}Resolve a course id to its slug
searchGolfCoursesByLocationGET /search/map/golfsFind golf courses around a coordinate
Directory
listContinentsGET /public/golfs/continentsList continents with course counts
listCountriesGET /public/golfs/countriesList countries with course counts
getDirectoryEntryGET /public/golfs/{slug}Get a continent or a country by slug
listCountryRegionsGET /public/golfs/{country}/regionsList the regions of a country
listRegionGolfCoursesGET /public/golfs/{country}/{region}List the golf courses of a region
listCityGolfCoursesGET /public/golfs/{country}/{region}/{city}List the golf courses of a city
Rankings
listBestGolfCoursesWorldwideGET /public/best/worldList the highest-rated courses worldwide
listBestGolfCoursesByAreaGET /public/best/{slug}List the highest-rated courses of a continent or country
listBestGolfCoursesByRegionGET /public/best/{country}/{region}List the highest-rated courses of a region
Metadata
getCountryMetadataGET /seo/country/{slug}Get breadcrumbs and counts for a country
getContinentMetadataGET /seo/continent/{slug}Get breadcrumbs and counts for a continent
getRegionMetadataGET /seo/region/{country}/{region}Get breadcrumbs and counts for a region
Enumeration
listSitemapContinentsGET /seo/sitemap/continentsEnumerate every continent slug
listSitemapCountriesGET /seo/sitemap/countriesEnumerate every country slug
listSitemapRegionsGET /seo/sitemap/regionsEnumerate every region slug
listSitemapCitiesGET /seo/sitemap/citiesEnumerate every city slug
Agent files
getGolfCourseMarkdownGET /golfs/{slug}/llm.mdGet a golf course as markdown
getLlmsTxtGET /llms.txtGet the llms.txt index
getOpenApiDocumentGET /openapi.jsonGet this document

Fichiers pour les agents IA

Quatre fichiers lisibles par machine décrivent le site à un agent. Commencez par llms.txt : il indique ce que contient le jeu de données, quand FlyAway est la bonne source, et les motifs d'URL de tout le reste.

  • /llms.txtWhat FlyAway is, what the dataset contains, when to use it, and the URL patterns for everything else. Start here.
  • /llms-full.txtThe same, at length: the product surface, the data model and the caveats in full.
  • /openapi.jsonThe public API as an OpenAPI 3.1 document. Also served as YAML at /openapi.yaml.
  • /golfs/{slug}/llm.mdAny course as markdown, e.g. https://flyawaygolf.com/golfs/golf-national/llm.md.
  • /sitemaps/indexThe sitemap index: every indexable URL, paginated, including all 35,165 course pages.

Authentification

Les endpoints publics en lecture ne demandent aucune information d'authentification : envoyez la requête et lisez la réponse. Les endpoints qui touchent aux données personnelles d'un membre (parties, statistiques, messages, assistant IA) exigent un jeton de session émis par les applications FlyAway ; ils ne font pas partie de la surface publique et sont volontairement absents du document OpenAPI, puisqu'un agent ne peut pas les appeler.

Limites de débit

Restez sous 5 requêtes par seconde depuis une même IP, et mettez en cache ce que vous lisez : les données de parcours ne changent pas d'une semaine à l'autre. FlyAway suit la convention RFC 9331 sur toute réponse portant un quota — RateLimit-Limit, RateLimit-Remaining et RateLimit-Reset, plus Retry-After sur un 429. Une réponse ne portant aucun de ces en-têtes n'a pas été décomptée d'un quota par appelant. Sur un 429, patientez le nombre de secondes indiqué par Retry-After puis réessayez une fois.

Erreurs

Les échecs renvoient un corps JSON contenant un objet error avec un message lisible et un code numérique stable. Un 400 signifie que l'identifiant ou un paramètre a été rejeté ; un 404 qu'aucune ressource ne correspond.

Utiliser l'API en function calling

Le document OpenAPI est écrit pour être chargé directement comme manifeste de function calling : chaque opération porte un operationId unique, une description écrite pour un modèle et non pour un moteur de recherche, des paramètres typés avec leurs bornes, et un schéma de réponse. Convertissez-le avec l'utilitaire OpenAPI-vers-outils de votre framework : aucun wrapper manuel n'est nécessaire.

Bibliothèques clientes

Il n'existe pas encore de CLI officielle ni de serveur MCP. En attendant, le document OpenAPI est le chemin d'intégration pris en charge, et les pages de parcours en markdown sont la façon prise en charge de lire un parcours sous forme de texte.

Assistance

Les questions techniques que la documentation ne couvre pas sont bienvenues par e-mail. Merci d'indiquer l'URL exacte appelée et la réponse obtenue.

[email protected]