{
  "schemaVersion": "1.0",
  "item": {
    "slug": "amadeus-hotels",
    "name": "Amadeus Hotels",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/kesslerio/amadeus-hotels",
    "canonicalUrl": "https://clawhub.ai/kesslerio/amadeus-hotels",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/amadeus-hotels",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=amadeus-hotels",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "README.md",
      "SKILL.md",
      "references/amenities.md",
      "scripts/auth.py",
      "scripts/details.py",
      "scripts/offers.py"
    ],
    "primaryDoc": "SKILL.md",
    "quickSetup": [
      "Download the package from Yavira.",
      "Extract the archive and review SKILL.md first.",
      "Import or place the package into your OpenClaw setup."
    ],
    "agentAssist": {
      "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
      "steps": [
        "Download the package from Yavira.",
        "Extract it into a folder your agent can access.",
        "Paste one of the prompts below and point your agent at the extracted folder."
      ],
      "prompts": [
        {
          "label": "New install",
          "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Then review README.md for any prerequisites, environment setup, or post-install checks. Tell me what you changed and call out any manual steps you could not complete."
        },
        {
          "label": "Upgrade existing",
          "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Then review README.md for any prerequisites, environment setup, or post-install checks. Summarize what changed and any follow-up checks I should run."
        }
      ]
    },
    "sourceHealth": {
      "source": "tencent",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-04-23T16:43:11.935Z",
      "expiresAt": "2026-04-30T16:43:11.935Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=4claw-imageboard",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=4claw-imageboard",
        "contentDisposition": "attachment; filename=\"4claw-imageboard-1.0.1.zip\"",
        "redirectLocation": null,
        "bodySnippet": null
      },
      "scope": "source",
      "summary": "Source download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this source.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/amadeus-hotels"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    },
    "downloadPageUrl": "https://openagent3.xyz/downloads/amadeus-hotels",
    "agentPageUrl": "https://openagent3.xyz/skills/amadeus-hotels/agent",
    "manifestUrl": "https://openagent3.xyz/skills/amadeus-hotels/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/amadeus-hotels/agent.md"
  },
  "agentAssist": {
    "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
    "steps": [
      "Download the package from Yavira.",
      "Extract it into a folder your agent can access.",
      "Paste one of the prompts below and point your agent at the extracted folder."
    ],
    "prompts": [
      {
        "label": "New install",
        "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Then review README.md for any prerequisites, environment setup, or post-install checks. Tell me what you changed and call out any manual steps you could not complete."
      },
      {
        "label": "Upgrade existing",
        "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Then review README.md for any prerequisites, environment setup, or post-install checks. Summarize what changed and any follow-up checks I should run."
      }
    ]
  },
  "documentation": {
    "source": "clawhub",
    "primaryDoc": "SKILL.md",
    "sections": [
      {
        "title": "Amadeus Hotels Skill 🏨",
        "body": "Search hotel prices, availability, and ratings via the Amadeus Self-Service API. Perfect for vacation planning and deal hunting."
      },
      {
        "title": "Setup",
        "body": "Get API credentials at https://developers.amadeus.com/self-service\n\nCreate account → My Apps → Create new app\nCopy API Key and API Secret\n\n\n\nSet environment variables:\n\nexport AMADEUS_API_KEY=\"your-api-key\"\nexport AMADEUS_API_SECRET=\"your-api-secret\"\nexport AMADEUS_ENV=\"test\"  # or \"production\" for real bookings\n\nInstall dependency:\n\npip install requests\n\nFree tier: ~2,000 requests/month in test, pay-per-use after in production."
      },
      {
        "title": "Quick Reference",
        "body": "TaskScriptExampleSearch by cityscripts/search.py--city PAR --checkin 2026-03-15 --checkout 2026-03-20Get offersscripts/offers.py--hotels HTPAR123,HTPAR456 --adults 2Offer detailsscripts/details.py--offer-id ABC123Track pricescripts/track.py--add --hotel HTPAR123 --target 150Check trackedscripts/track.py--check"
      },
      {
        "title": "1. Hotel Search",
        "body": "Find hotels by city code (IATA) or coordinates:\n\n# By city\npython3 <skill>/scripts/search.py --city PAR --checkin 2026-03-15 --checkout 2026-03-20\n\n# By coordinates (near a landmark)\npython3 <skill>/scripts/search.py --lat 48.8584 --lon 2.2945 --radius 5 --checkin 2026-03-15 --checkout 2026-03-20\n\n# With filters\npython3 <skill>/scripts/search.py --city NYC --amenities WIFI,POOL,SPA --ratings 4,5\n\nCommon city codes: PAR (Paris), NYC (New York), TYO (Tokyo), BCN (Barcelona), LON (London), LAX (Los Angeles), SFO (San Francisco)"
      },
      {
        "title": "2. Get Pricing & Availability",
        "body": "Once you have hotel IDs from search:\n\npython3 <skill>/scripts/offers.py \\\n  --hotels HTPAR001,HTPAR002 \\\n  --checkin 2026-03-15 \\\n  --checkout 2026-03-20 \\\n  --adults 2 \\\n  --rooms 1\n\nReturns: Room types, prices, cancellation policies, board types."
      },
      {
        "title": "3. Offer Details",
        "body": "Get full details for a specific offer before booking:\n\npython3 <skill>/scripts/details.py --offer-id <offer-id-from-search>\n\nReturns: Detailed room info, full cancellation policy, payment terms, hotel contact."
      },
      {
        "title": "4. Hotel Ratings & Sentiment",
        "body": "Get aggregated review sentiment:\n\npython3 <skill>/scripts/details.py --hotel-id HTPAR001 --ratings\n\nReturns: Overall score (0-100), category scores (Staff, Location, WiFi, Cleanliness, etc.)"
      },
      {
        "title": "5. Price Tracking",
        "body": "Track hotels and get alerts when prices drop:\n\n# Add hotel to tracking\npython3 <skill>/scripts/track.py --add \\\n  --hotel HTPAR001 \\\n  --checkin 2026-03-15 \\\n  --checkout 2026-03-20 \\\n  --adults 2 \\\n  --target 150  # Alert if price drops below $150/night\n\n# Check all tracked hotels (run via cron)\npython3 <skill>/scripts/track.py --check\n\n# List tracked hotels\npython3 <skill>/scripts/track.py --list\n\n# Remove from tracking\npython3 <skill>/scripts/track.py --remove --hotel HTPAR001"
      },
      {
        "title": "Cron Setup for Price Alerts",
        "body": "Add to OpenClaw cron for automatic price monitoring:\n\n# Check hotel prices twice daily\n- schedule: \"0 9,18 * * *\"\n  task: \"Run hotel price tracker and alert on drops\"\n  command: \"python3 <skill>/scripts/track.py --check\"\n\nWhen prices drop below target, the script outputs alert text. Configure your notification channel in the cron task."
      },
      {
        "title": "Output Formatting",
        "body": "Scripts output JSON by default. Add --format human for readable output:\n\npython3 <skill>/scripts/search.py --city PAR --format human\n\nHuman format example:\n\n🏨 Hotel & Spa Paris Marais ★★★★\n   📍 15 Rue du Temple, Paris\n   💰 €189/night (was €220)\n   ✨ WIFI, SPA, RESTAURANT\n   📊 Rating: 87/100 (Staff: 92, Location: 95)"
      },
      {
        "title": "Amenity Codes",
        "body": "Common filters for --amenities:\n\nCodeMeaningWIFIFree WiFiPOOLSwimming poolSPASpa/wellnessGYMFitness centerRESTAURANTOn-site restaurantPARKINGParking availablePETS_ALLOWEDPet-friendlyAIR_CONDITIONINGA/CKITCHENKitchen/kitchenette\n\nFull list in references/amenities.md."
      },
      {
        "title": "⚠️ Important: Pricing Disclaimer",
        "body": "Amadeus API prices are NOT retail prices. The API returns negotiated, net, or wholesale rates — not the public prices you see on Booking.com, Expedia, or hotel websites.\n\nKey differences:\n\nNet vs Retail: API returns \"net rates\" (raw cost), not marked-up retail prices\nB2B Pricing: Designed for travel agencies/developers to add their own markup\nNegotiated Rates: May include corporate or consortia rates unavailable to consumers\nTax Breakdown: Prices often show base + taxes separately\n\nUse these prices for comparison and tracking trends, not as exact retail quotes. Actual booking prices on consumer sites will differ."
      },
      {
        "title": "Limitations & Notes",
        "body": "Test environment: Limited/cached data, not real-time. Good for development.\nProduction: Real prices but requires \"Move to Production\" in Amadeus dashboard.\nNo direct booking: API returns offer details; actual booking requires payment handling (PCI compliance).\nRate limits: 10 TPS (test), 40 TPS (production). Scripts include backoff.\nData freshness: Prices change frequently. Always re-check before booking elsewhere.\nNot retail prices: See pricing disclaimer above."
      },
      {
        "title": "Error Handling",
        "body": "ErrorMeaningAction401Auth failedCheck API key/secret429Rate limitedWait and retry (auto-handled)400Bad requestCheck parameters (dates, codes)No resultsNo availabilityTry different dates or expand search"
      },
      {
        "title": "References",
        "body": "references/amenities.md — Full amenity code list\nhttps://developers.amadeus.com/self-service/apis-docs — Official API docs"
      }
    ],
    "body": "Amadeus Hotels Skill 🏨\n\nSearch hotel prices, availability, and ratings via the Amadeus Self-Service API. Perfect for vacation planning and deal hunting.\n\nSetup\n\nGet API credentials at https://developers.amadeus.com/self-service\n\nCreate account → My Apps → Create new app\nCopy API Key and API Secret\n\nSet environment variables:\n\nexport AMADEUS_API_KEY=\"your-api-key\"\nexport AMADEUS_API_SECRET=\"your-api-secret\"\nexport AMADEUS_ENV=\"test\"  # or \"production\" for real bookings\n\nInstall dependency:\npip install requests\n\n\nFree tier: ~2,000 requests/month in test, pay-per-use after in production.\n\nQuick Reference\nTask\tScript\tExample\nSearch by city\tscripts/search.py\t--city PAR --checkin 2026-03-15 --checkout 2026-03-20\nGet offers\tscripts/offers.py\t--hotels HTPAR123,HTPAR456 --adults 2\nOffer details\tscripts/details.py\t--offer-id ABC123\nTrack price\tscripts/track.py\t--add --hotel HTPAR123 --target 150\nCheck tracked\tscripts/track.py\t--check\nCapabilities\n1. Hotel Search\n\nFind hotels by city code (IATA) or coordinates:\n\n# By city\npython3 <skill>/scripts/search.py --city PAR --checkin 2026-03-15 --checkout 2026-03-20\n\n# By coordinates (near a landmark)\npython3 <skill>/scripts/search.py --lat 48.8584 --lon 2.2945 --radius 5 --checkin 2026-03-15 --checkout 2026-03-20\n\n# With filters\npython3 <skill>/scripts/search.py --city NYC --amenities WIFI,POOL,SPA --ratings 4,5\n\n\nCommon city codes: PAR (Paris), NYC (New York), TYO (Tokyo), BCN (Barcelona), LON (London), LAX (Los Angeles), SFO (San Francisco)\n\n2. Get Pricing & Availability\n\nOnce you have hotel IDs from search:\n\npython3 <skill>/scripts/offers.py \\\n  --hotels HTPAR001,HTPAR002 \\\n  --checkin 2026-03-15 \\\n  --checkout 2026-03-20 \\\n  --adults 2 \\\n  --rooms 1\n\n\nReturns: Room types, prices, cancellation policies, board types.\n\n3. Offer Details\n\nGet full details for a specific offer before booking:\n\npython3 <skill>/scripts/details.py --offer-id <offer-id-from-search>\n\n\nReturns: Detailed room info, full cancellation policy, payment terms, hotel contact.\n\n4. Hotel Ratings & Sentiment\n\nGet aggregated review sentiment:\n\npython3 <skill>/scripts/details.py --hotel-id HTPAR001 --ratings\n\n\nReturns: Overall score (0-100), category scores (Staff, Location, WiFi, Cleanliness, etc.)\n\n5. Price Tracking\n\nTrack hotels and get alerts when prices drop:\n\n# Add hotel to tracking\npython3 <skill>/scripts/track.py --add \\\n  --hotel HTPAR001 \\\n  --checkin 2026-03-15 \\\n  --checkout 2026-03-20 \\\n  --adults 2 \\\n  --target 150  # Alert if price drops below $150/night\n\n# Check all tracked hotels (run via cron)\npython3 <skill>/scripts/track.py --check\n\n# List tracked hotels\npython3 <skill>/scripts/track.py --list\n\n# Remove from tracking\npython3 <skill>/scripts/track.py --remove --hotel HTPAR001\n\nCron Setup for Price Alerts\n\nAdd to OpenClaw cron for automatic price monitoring:\n\n# Check hotel prices twice daily\n- schedule: \"0 9,18 * * *\"\n  task: \"Run hotel price tracker and alert on drops\"\n  command: \"python3 <skill>/scripts/track.py --check\"\n\n\nWhen prices drop below target, the script outputs alert text. Configure your notification channel in the cron task.\n\nOutput Formatting\n\nScripts output JSON by default. Add --format human for readable output:\n\npython3 <skill>/scripts/search.py --city PAR --format human\n\n\nHuman format example:\n\n🏨 Hotel & Spa Paris Marais ★★★★\n   📍 15 Rue du Temple, Paris\n   💰 €189/night (was €220)\n   ✨ WIFI, SPA, RESTAURANT\n   📊 Rating: 87/100 (Staff: 92, Location: 95)\n\nAmenity Codes\n\nCommon filters for --amenities:\n\nCode\tMeaning\nWIFI\tFree WiFi\nPOOL\tSwimming pool\nSPA\tSpa/wellness\nGYM\tFitness center\nRESTAURANT\tOn-site restaurant\nPARKING\tParking available\nPETS_ALLOWED\tPet-friendly\nAIR_CONDITIONING\tA/C\nKITCHEN\tKitchen/kitchenette\n\nFull list in references/amenities.md.\n\n⚠️ Important: Pricing Disclaimer\n\nAmadeus API prices are NOT retail prices. The API returns negotiated, net, or wholesale rates — not the public prices you see on Booking.com, Expedia, or hotel websites.\n\nKey differences:\n\nNet vs Retail: API returns \"net rates\" (raw cost), not marked-up retail prices\nB2B Pricing: Designed for travel agencies/developers to add their own markup\nNegotiated Rates: May include corporate or consortia rates unavailable to consumers\nTax Breakdown: Prices often show base + taxes separately\n\nUse these prices for comparison and tracking trends, not as exact retail quotes. Actual booking prices on consumer sites will differ.\n\nLimitations & Notes\nTest environment: Limited/cached data, not real-time. Good for development.\nProduction: Real prices but requires \"Move to Production\" in Amadeus dashboard.\nNo direct booking: API returns offer details; actual booking requires payment handling (PCI compliance).\nRate limits: 10 TPS (test), 40 TPS (production). Scripts include backoff.\nData freshness: Prices change frequently. Always re-check before booking elsewhere.\nNot retail prices: See pricing disclaimer above.\nError Handling\nError\tMeaning\tAction\n401\tAuth failed\tCheck API key/secret\n429\tRate limited\tWait and retry (auto-handled)\n400\tBad request\tCheck parameters (dates, codes)\nNo results\tNo availability\tTry different dates or expand search\nReferences\nreferences/amenities.md — Full amenity code list\nhttps://developers.amadeus.com/self-service/apis-docs — Official API docs"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/kesslerio/amadeus-hotels",
    "publisherUrl": "https://clawhub.ai/kesslerio/amadeus-hotels",
    "owner": "kesslerio",
    "version": "1.0.2",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/amadeus-hotels",
    "downloadUrl": "https://openagent3.xyz/downloads/amadeus-hotels",
    "agentUrl": "https://openagent3.xyz/skills/amadeus-hotels/agent",
    "manifestUrl": "https://openagent3.xyz/skills/amadeus-hotels/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/amadeus-hotels/agent.md"
  }
}