← Back to Skills Marketplace
kesslerio

Amadeus Hotels

by kesslerio · GitHub ↗ · v1.0.2
cross-platform ✓ Security Clean
2313
Downloads
1
Stars
2
Active Installs
3
Versions
Install in OpenClaw
/install amadeus-hotels
Description
Search hotel prices and availability via Amadeus API. Find vacation hotels by city, coordinates, or amenities. Compare prices, view ratings, get offer details. Track prices with alerts. Use when user asks to "find hotels", "search hotels in [city]", "hotel prices", "vacation accommodation", "hotel deals", "track hotel price".
README (SKILL.md)

Amadeus Hotels Skill 🏨

Search hotel prices, availability, and ratings via the Amadeus Self-Service API. Perfect for vacation planning and deal hunting.

Setup

  1. Get API credentials at https://developers.amadeus.com/self-service

    • Create account → My Apps → Create new app
    • Copy API Key and API Secret
  2. Set environment variables:

export AMADEUS_API_KEY="your-api-key"
export AMADEUS_API_SECRET="your-api-secret"
export AMADEUS_ENV="test"  # or "production" for real bookings
  1. Install dependency:
pip install requests

Free tier: ~2,000 requests/month in test, pay-per-use after in production.

Quick Reference

Task Script Example
Search by city scripts/search.py --city PAR --checkin 2026-03-15 --checkout 2026-03-20
Get offers scripts/offers.py --hotels HTPAR123,HTPAR456 --adults 2
Offer details scripts/details.py --offer-id ABC123
Track price scripts/track.py --add --hotel HTPAR123 --target 150
Check tracked scripts/track.py --check

Capabilities

1. Hotel Search

Find hotels by city code (IATA) or coordinates:

# By city
python3 \x3Cskill>/scripts/search.py --city PAR --checkin 2026-03-15 --checkout 2026-03-20

# By coordinates (near a landmark)
python3 \x3Cskill>/scripts/search.py --lat 48.8584 --lon 2.2945 --radius 5 --checkin 2026-03-15 --checkout 2026-03-20

# With filters
python3 \x3Cskill>/scripts/search.py --city NYC --amenities WIFI,POOL,SPA --ratings 4,5

Common city codes: PAR (Paris), NYC (New York), TYO (Tokyo), BCN (Barcelona), LON (London), LAX (Los Angeles), SFO (San Francisco)

2. Get Pricing & Availability

Once you have hotel IDs from search:

python3 \x3Cskill>/scripts/offers.py \
  --hotels HTPAR001,HTPAR002 \
  --checkin 2026-03-15 \
  --checkout 2026-03-20 \
  --adults 2 \
  --rooms 1

Returns: Room types, prices, cancellation policies, board types.

3. Offer Details

Get full details for a specific offer before booking:

python3 \x3Cskill>/scripts/details.py --offer-id \x3Coffer-id-from-search>

Returns: Detailed room info, full cancellation policy, payment terms, hotel contact.

4. Hotel Ratings & Sentiment

Get aggregated review sentiment:

python3 \x3Cskill>/scripts/details.py --hotel-id HTPAR001 --ratings

Returns: Overall score (0-100), category scores (Staff, Location, WiFi, Cleanliness, etc.)

5. Price Tracking

Track hotels and get alerts when prices drop:

# Add hotel to tracking
python3 \x3Cskill>/scripts/track.py --add \
  --hotel HTPAR001 \
  --checkin 2026-03-15 \
  --checkout 2026-03-20 \
  --adults 2 \
  --target 150  # Alert if price drops below $150/night

# Check all tracked hotels (run via cron)
python3 \x3Cskill>/scripts/track.py --check

# List tracked hotels
python3 \x3Cskill>/scripts/track.py --list

# Remove from tracking
python3 \x3Cskill>/scripts/track.py --remove --hotel HTPAR001

Cron Setup for Price Alerts

Add to OpenClaw cron for automatic price monitoring:

# Check hotel prices twice daily
- schedule: "0 9,18 * * *"
  task: "Run hotel price tracker and alert on drops"
  command: "python3 \x3Cskill>/scripts/track.py --check"

When prices drop below target, the script outputs alert text. Configure your notification channel in the cron task.

Output Formatting

Scripts output JSON by default. Add --format human for readable output:

python3 \x3Cskill>/scripts/search.py --city PAR --format human

Human format example:

🏨 Hotel & Spa Paris Marais ★★★★
   📍 15 Rue du Temple, Paris
   💰 €189/night (was €220)
   ✨ WIFI, SPA, RESTAURANT
   📊 Rating: 87/100 (Staff: 92, Location: 95)

Amenity Codes

Common filters for --amenities:

Code Meaning
WIFI Free WiFi
POOL Swimming pool
SPA Spa/wellness
GYM Fitness center
RESTAURANT On-site restaurant
PARKING Parking available
PETS_ALLOWED Pet-friendly
AIR_CONDITIONING A/C
KITCHEN Kitchen/kitchenette

Full list in references/amenities.md.

⚠️ Important: Pricing Disclaimer

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.

Key differences:

  • Net vs Retail: API returns "net rates" (raw cost), not marked-up retail prices
  • B2B Pricing: Designed for travel agencies/developers to add their own markup
  • Negotiated Rates: May include corporate or consortia rates unavailable to consumers
  • Tax Breakdown: Prices often show base + taxes separately

Use these prices for comparison and tracking trends, not as exact retail quotes. Actual booking prices on consumer sites will differ.

Limitations & Notes

  • Test environment: Limited/cached data, not real-time. Good for development.
  • Production: Real prices but requires "Move to Production" in Amadeus dashboard.
  • No direct booking: API returns offer details; actual booking requires payment handling (PCI compliance).
  • Rate limits: 10 TPS (test), 40 TPS (production). Scripts include backoff.
  • Data freshness: Prices change frequently. Always re-check before booking elsewhere.
  • Not retail prices: See pricing disclaimer above.

Error Handling

Error Meaning Action
401 Auth failed Check API key/secret
429 Rate limited Wait and retry (auto-handled)
400 Bad request Check parameters (dates, codes)
No results No availability Try different dates or expand search

References

Usage Guidance
This skill appears to do what it says: call the Amadeus API to search hotels, fetch offers/details, and track prices. Before installing, consider: 1) Only provide AMADEUS_API_KEY and AMADEUS_API_SECRET from an account you control; test keys are fine for development. 2) The skill caches OAuth tokens and stores tracked items in files under the skill's state/ directory (token.json and tracked.json) — review and secure that directory if you run on a shared host. 3) SKILL.md mentions AMADEUS_ENV (test/production) but that variable is not listed in the declared requirements — set it appropriately to avoid accidentally using production credentials. 4) If you plan to run the tracker on cron, be mindful of API rate limits and your Amadeus plan (test vs production). If you want additional assurance, verify the upstream GitHub repo and owner before providing production credentials.
Capability Analysis
Type: OpenClaw Skill Name: amadeus-hotels Version: 1.0.2 The OpenClaw skill bundle for Amadeus Hotels appears benign. All scripts (`auth.py`, `details.py`, `offers.py`, `search.py`, `track.py`) interact with the legitimate Amadeus API using environment variables for credentials and `requests` for HTTP calls. File system access is limited to storing OAuth tokens and tracked hotel data in a skill-specific 'state' directory, which is necessary for its functionality. The `SKILL.md` and `README.md` provide clear instructions and documentation without any evidence of prompt injection attempts or malicious commands. There is no indication of data exfiltration to unauthorized endpoints, arbitrary code execution, or persistence mechanisms beyond the skill's stated purpose.
Capability Assessment
Purpose & Capability
Name/description (hotel search, offers, details, tracking) matches the included scripts and declared requirements. Requested binaries (python3), pip dependency (requests), and environment variables (AMADEUS_API_KEY, AMADEUS_API_SECRET) are appropriate for calling Amadeus APIs.
Instruction Scope
Runtime instructions (SKILL.md) and scripts are narrowly scoped to calling the Amadeus test/production endpoints and formatting results. One minor mismatch: SKILL.md instructs setting AMADEUS_ENV (test/production) and the code reads AMADEUS_ENV, but AMADEUS_ENV is not listed in the declared requires.env. The scripts also create/read local state files under the skill's state/ directory (token cache and tracked.json) — this is expected for token caching and price-tracking but worth noting.
Install Mechanism
Install uses pip to install the single dependency 'requests' (declared in metadata). No downloads from unknown URLs, no archive extraction, and no complex multi-step installers — low-risk, proportionate to the task.
Credentials
Only Amadeus credentials (AMADEUS_API_KEY and AMADEUS_API_SECRET) are required as primary secrets; these are the exact credentials needed for OAuth with Amadeus. No unrelated credentials or broad secrets are requested. (AMADEUS_ENV is used but optional.)
Persistence & Privilege
The skill does not request 'always: true' and does not modify other skills or global agent settings. It writes token and tracking state to its own 'state' directory under the skill root (token.json, tracked.json), which is reasonable for caching and tracking functionality — users should be aware these files are stored on disk.
How to Use
  1. Make sure OpenClaw is installed (local or Docker)
  2. Run the install command in chat: /install amadeus-hotels
  3. After installation, invoke the skill by name or use /amadeus-hotels
  4. Provide required inputs per the skill's parameter spec and get structured output
Version History
v1.0.2
Add pricing disclaimer: API returns net/wholesale rates, not retail prices
v1.0.1
Fix: correct skill files published
v1.0.0
Initial release: hotel search, pricing, ratings, price tracking
Metadata
Slug amadeus-hotels
Version 1.0.2
License
All-time Installs 2
Active Installs 2
Total Versions 3
Frequently Asked Questions

What is Amadeus Hotels?

Search hotel prices and availability via Amadeus API. Find vacation hotels by city, coordinates, or amenities. Compare prices, view ratings, get offer details. Track prices with alerts. Use when user asks to "find hotels", "search hotels in [city]", "hotel prices", "vacation accommodation", "hotel deals", "track hotel price". It is an AI Agent Skill for Claude Code / OpenClaw, with 2313 downloads so far.

How do I install Amadeus Hotels?

Run "/install amadeus-hotels" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.

Is Amadeus Hotels free?

Yes, Amadeus Hotels is completely free (open-source). You can download, install and use it at no cost.

Which platforms does Amadeus Hotels support?

Amadeus Hotels is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).

Who created Amadeus Hotels?

It is built and maintained by kesslerio (@kesslerio); the current version is v1.0.2.

💬 Comments