🧩 API platform

Micro-services de recherche/prix devant SerpApi (clé serveur, cache BDD, auth, rate limiting).

Base URL
https://price.test.gpa07.com
Authentification
Clé requise : ?key= ou en-tête X-Api-Key
Rate limit
60 req / 60 s · en-têtes X-RateLimit-*

Micro-services

GET /api/search 🔑 clé

Proxy SerpApi brut (passthrough) + cache BDD.

ParamTypeRequisDescription
q string oui Requête de recherche
engine string Moteur SerpApi (google, google_shopping, ebay, bing…)
nocache 0|1 Bypass cache (force un appel amont)
Exemple
curl "https://price.test.gpa07.com/api/search?q=iphone+15&engine=google&key=VOTRE_CLE"
GET /api/shopping 🔑 clé

Pipeline multi-engine (Google Shopping + eBay) : dédoublonnage 3 niveaux + grouping par type de source + fourchette de prix.

ParamTypeRequisDescription
q string oui Requête produit (réf OEM + désignation + véhicule)
gpa_price number Prix GPA (€) → ajoute le positionnement + enregistre un instantané
label string Étiquette GPA associée (pour l'historique de positionnement)
nocache 0|1 Bypass cache
Exemple
curl "https://price.test.gpa07.com/api/shopping?q=620905715R+pompe+ABS+Renault&key=VOTRE_CLE"
GET /api/etiquette 🔑 clé

Résout une étiquette GPA (ex. Z1-1937C) → désignation, réf OEM, véhicule (API GPA ou jeu local).

ParamTypeRequisDescription
code string oui Identifiant étiquette GPA
Exemple
curl "https://price.test.gpa07.com/api/etiquette?code=Z1-1937C&key=VOTRE_CLE"
GET /api/recent 🔑 clé

Liste des dernières recherches en cache (cliquables côté front).

ParamTypeRequisDescription
mode string all | shopping | search
limit integer Nb max d'entrées (déf. 20)
Exemple
curl "https://price.test.gpa07.com/api/recent?mode=shopping&limit=15&key=VOTRE_CLE"
GET /api/snapshots 🔑 clé

Historique des positionnements prix GPA enregistrés (price_snapshots).

ParamTypeRequisDescription
limit integer Nb max d'entrées (déf. 20)
Exemple
curl "https://price.test.gpa07.com/api/snapshots?limit=20&key=VOTRE_CLE"
GET /health public

Healthcheck : statut DB, présence clé SerpApi, stats cache, config rate limit.

Exemple
curl "https://price.test.gpa07.com/health"

Découverte programmatique : GET https://price.test.gpa07.com/api renvoie ce catalogue en JSON. Process complet : docs/api-platform.md.