Développeurs
Attraction publie une API produits publique en lecture seule ainsi que des miroirs Markdown de ce site, pour que les personnes et les agents IA puissent intégrer des données produit à jour et le contexte de l'entreprise dans leurs propres outils. Cette page est le point de départ; la référence API complète couvre chaque point d'accès, paramètre et champ de réponse.
Commencer
GET /v1/products?locale=fr-CA
curl "https://api.attraction.com/v1/products?locale=fr-CA"- Référence complète des points d'accès : attraction.com/api/
- Description OpenAPI : api.attraction.com/openapi.json
- Aucune clé API n'est requise pour les données produit publiques.
Authentification
Les données produit publiques ne demandent ni clé ni compte connecté : listes de produits, détail produit, couleurs, tailles, inventaire en temps réel, prix de détail suggéré, images et compatibilité de décoration sont toutes en lecture libre. Les clés API de compte pour les prix nets distributeurs ne sont pas encore offertes; la page des clés API reste masquée jusqu'à ce lancement.
Limites de débit
Chaque réponse de /v1/products et /v1/products/{sku} porte des en-têtes de limite de débit pour une politique nommée default : 600 requêtes par minute par IP cliente. Ce chiffre est indicatif et suivi par instance de l'API, pas par un compteur global unique — ne dimensionnez pas une intégration en vous fiant strictement à 600/min. L'infrastructure applique aussi un plafond strict de 100 requêtes par seconde (rafale de 200), indépendamment du compteur indicatif. Respectez toujours Retry-After sur un 429. Ces en-têtes suivent draft-ietf-httpapi-ratelimit-headers. Une requête au-delà de la limite reçoit un 429 avec Retry-After et une erreur rate_limited.
RateLimit-Policy: "default";q=600;w=60RateLimit: "default";r=<remaining>;t=<seconds>
Les points d'accès de catalogue servent aussi le gzip : envoyez Accept-Encoding: gzip; la liste de produits d'environ 274 Ko se compresse à environ 24 Ko.
Versions et dépréciation
L'API est versionnée dans l'URL : les points d'accès actuels sont sous /v1. Les changements non rétrocompatibles sont publiés sous /v2 plutôt que de modifier /v1 en place; les changements additifs, comme un nouveau champ ou un nouveau paramètre optionnel, ne changent jamais la version.
Quand une version est dépréciée, l'annonce se fait au moins trois mois à l'avance, et chaque réponse porte un en-tête Deprecation (RFC 9745) et un en-tête Sunset (RFC 8594) indiquant la date de retrait.
Erreurs
Les erreurs sont des objets problem+json conformes à la RFC 9457, servis en application/problem+json :
product_not_found — 404
{
"type": "https://www.attraction.com/developers/#error-product_not_found",
"title": "Product not found",
"status": 404,
"detail": "No product matches SKU NOPE-NOT-A-SKU.",
"instance": "/v1/products/nope-not-a-sku",
"code": "product_not_found"
}Chaque code ci-dessous a sa propre URI type sur cette page : https://www.attraction.com/developers/#error-<code>.
route_not_found — 404
Aucune route ne correspond au chemin demandé.
method_not_allowed — 405
La route existe mais pas pour cette méthode HTTP. La réponse porte Allow: GET, HEAD, OPTIONS.
invalid_request — 400
La requête ne correspond pas à ce qu'attend la route, par exemple un paramètre de requête malformé.
unsupported_locale — 400
locale doit être en-CA, en-US ou fr-CA.
invalid_sku — 400
Le paramètre de chemin sku n'est pas un SKU valide.
unauthorized — 401
Réservé aux routes privées /v1/sync/*; les points d'accès produits publics ne retournent jamais cette erreur.
product_not_found — 404
Aucun produit ne correspond au SKU fourni.
rate_limited — 429
Le client dépasse la politique de limite de débit. La réponse porte Retry-After et les en-têtes RateLimit/RateLimit-Policy.
upstream_unavailable — 503
La source du catalogue est temporairement inaccessible. La réponse porte Retry-After: 30.
internal_error — 500
Une erreur serveur inattendue, sans trace d'exécution ni détail interne dans la réponse.
Ressources pour agents
- Envoyez
Accept: text/markdownà n'importe quelle URL de page, ou ajoutez.md, par exemple attraction.com/products.md, pour obtenir une copie Markdown de cette page. - llms.txt et llms-full.txt indexent le site pour les modèles de langage et les agents.
- .well-known/api-catalog liste les points d'entrée machine-lisibles de l'API (RFC 9727).
- .well-known/agent-skills/index.json publie les Agent Skills pour l'API produits et les pages Markdown du site.
Statut et soutien
/v1/health indique le statut de l'API. Pour toute autre question, joignez l'équipe à service@attraction.com.
Journal des changements
- 2026-08-24 — Publication de ce centre développeurs. Les réponses d'erreur passent au format
application/problem+jsonde la RFC 9457; ajout des en-têtes de limite de débit et d'une politique de versions et de dépréciation. - 2026-06-26 — Lancement officiel : l'API produits publique en lecture seule sur api.attraction.com — liste et détail sous
/v1, sans clé — avec sa description OpenAPI et sa documentation interactive.