START
Markdown ↗

Quickstart

From account to first API response. No subscription or card is required to use signup credits.

1. Sign in

Open the HotelUse dashboard, choose Sign in, then Continue with Google or email. First-time sign-in creates your account. Complete the Google or email verification in the browser when requested.

2. Create an API key

In Dashboard → API keys, enter a key name and choose Create API key. Save the displayed secret once; it cannot be retrieved later. Store it in your application's secret manager or environment.

bash
export HOTELUSE_API_KEY="hu_live_replace_with_your_key"

Do not commit the key or put it in browser JavaScript. API keys are for trusted server code. See authentication for rotation and revocation.

3. Make your first call

This static lookup does not need dates. It uses at most one hotel record unit. A repeat of the same record version is free.

bash
curl 'https://www.hoteluse.dev/v1/hotels/get' \
  -H "Authorization: Bearer $HOTELUSE_API_KEY" \
  -H 'Content-Type: application/json' \
  -H 'Idempotency-Key: replace-with-a-unique-operation-id' \
  --data '{
  "hotel_id": "hu_69450c903d9c06226f1ce17b",
  "billing": {
    "max_units": 1
  }
}'

A successful result includes data.hotel.name: "Hilton Bellevue", provider mappings, a record version and a usage receipt. Full captured response.

4. Search live prices

Use your own future check-in and check-out dates. Here is a JavaScript example with dates calculated from today. Run in Node.js 22 or later.

javascript
import { randomUUID } from 'node:crypto';
const date = offset => { const d = new Date(); d.setUTCDate(d.getUTCDate() + offset); return d.toISOString().slice(0, 10); };
const response = await fetch('https://www.hoteluse.dev/v1/hotels/search', {
  method: 'POST',
  headers: {
    Authorization: 'Bearer ' + process.env.HOTELUSE_API_KEY,
    'Content-Type': 'application/json',
    'Idempotency-Key': randomUUID()
  },
  body: JSON.stringify({
    location: { country: 'US', city: 'Bellevue', region: 'WA' },
    context: {
      check_in: date(14), check_out: date(16),
      rooms: [{ adults: 2, children_ages: [] }],
      currency: 'USD', market: { residency_country: 'US' }
    },
    page_size: 25
  })
});
const result = await response.json();
if (!response.ok) throw new Error(JSON.stringify(result.error));
console.log(result.data.results, result.data.coverage, result.usage);

Destination search reference · Room rates reference. Search uses one search call; opening room rates uses one room call.

Python

This example uses only Python's standard library. Set HOTELUSE_API_KEY in the environment first.

python
import json, os, uuid, urllib.request
request = urllib.request.Request(
    'https://www.hoteluse.dev/v1/hotels/get',
    data=json.dumps({'hotel_id': 'hu_69450c903d9c06226f1ce17b', 'billing': {'max_units': 1}}).encode(),
    headers={
        'Authorization': 'Bearer ' + os.environ['HOTELUSE_API_KEY'],
        'Content-Type': 'application/json',
        'Idempotency-Key': str(uuid.uuid4()),
    },
    method='POST',
)
with urllib.request.urlopen(request, timeout=35) as response:
    result = json.load(response)
    print(result['data']['hotel']['name'], result['usage'])

Next steps

Connect through MCP · Handle errors and retries.