🏨
Tribeds Intelligence
Booking Price Monitor
Internal only
Checking...
⚠ Usage strictement interne — ne jamais exposer ces données côté client ou tiers.
URL Booking.com
Chargement de la page...
Chargement de la page…
Données brutes
Générateur d'URL de recherche
URL GÉNÉRÉE
Scrapes sauvegardés
📭
Chargement…
Compare le prix de ton contrat hôtel avec le prix public Booking.com et reçois une recommandation automatique sur la viabilité de la vente.
Analyse de parité
Analyse en cours…
Intégration Ogilio (PHP)
// Renseignez une clé API ci-dessus pour voir l'exemple
Historique des analyses
📊
Chargement…
Chaque agence Ogilio reçoit sa propre clé API. Elle s'envoie dans le header X-Api-Key de chaque requête vers /api/analyze.
Créer une nouvelle clé
Clés actives
🔑
Chargement…
Documentation API
POST https://booking.test/api/analyze
Header: X-Api-Key: sk_votre_cle

{
  "hotel_name":     "Riad Sidi Fatah",
  "contract_price": 850,
  "currency":       "MAD",
  "checkin":        "2026-07-01",
  "checkout":       "2026-07-02",
  "booking_url":    "https://www.booking.com/hotel/ma/..."
  // OU
  "destination":    "Marrakech"
}

── Réponse ──────────────────────────────
{
  "verdict":       "warning",          // excellent|good|warning|danger|critical|no_price
  "verdict_label": "⚠️ Marge faible",
  "margin_pct":    7.4,
  "contract_price": 850,
  "booking_price":  918,
  "message":       "Seulement 7.4% d'écart...",
  "actions": [
    { "type": "reduce_commission", "label": "...", "priority": "high" },
    { "type": "package",           "label": "...", "priority": "medium" }
  ]
}
Ce projet tourne sur Laravel Valet — PHP + Node.js, aucun serveur séparé requis.
Structure du projet
Booking/
├── index.html          ← interface admin
├── index.php           ← toutes les routes API
├── router.php          ← Valet router
├── scraper.js          ← scraper Playwright + stealth
└── data/               ← JSON sauvegardés
    ├── scrape_*.json       scrapes manuels
    ├── analysis_*.json     analyses parité
    └── api_keys.json       clés API agences
Routes API complètes
── Publiques ──────────────────────────────────────────
GET  /api/status                 → état du service

── Admin (interface locale) ───────────────────────────
POST /api/scrape                 → scrape manuel
POST /api/search-url             → génère URL Booking
GET  /api/history                → liste scrapes
GET  /api/history/:file          → détail scrape
DEL  /api/history/:file          → supprimer scrape
GET  /api/analyze/history        → liste analyses parité
GET  /api/analyze/history/:file  → détail analyse
DEL  /api/analyze/history/:file  → supprimer analyse
GET  /api/keys                   → liste clés API
POST /api/keys                   → créer clé  { name }
DEL  /api/keys/:id               → révoquer clé

── Ogilio (auth X-Api-Key) ────────────────────────────
POST /api/analyze                → analyse parité tarifaire
  body: { hotel_name, contract_price, currency,
          checkin, checkout, booking_url | destination }
  retour: { verdict, verdict_label, margin_pct,
            contract_price, booking_price, actions[] }
Limitation — Prix Booking.com
⚠ Les prix en temps réel (API squeak) nécessitent une vraie session navigateur. Booking.com peut bloquer les requêtes headless — utilise toujours une URL avec sr_pri_blocks pour garantir le prix.

Sources de prix par ordre de fiabilité :

  1. URL sr_pri_blocks — prix de la chambre mise en avant dans les résultats de recherche
  2. Playwright headless — intercepte squeak si Booking ne bloque pas
Setup Valet
# Depuis Documents/Laravel/Booking/
valet link
# → http://booking.test

valet secure Booking
# → https://booking.test

# Installer les navigateurs Playwright (une seule fois)
node_modules/.bin/playwright-core install chromium