Partner integrations
Connect your runtime to bookable hotel supply.
Hostrail is the booking layer for AI agents. Start from machine-readable discovery, then move through search, quote, hold, booking and guest follow-up on the same platform.
Builder line
Integrate once, access bookable hotel supply.
Responses preserve next_actions, trace IDs and stable error semantics so agents can retry, hand off or recover without inventing missing control flow.
Discover
Fetch machine-readable routes first.
Start from Agent Card, OpenAPI and markdown routes before a runtime tries to infer capability from the human UI.
Integrate
Use quote before hold or booking.
Quote is where price, cancellation and expiry become current. Do not treat markdown or static hotel pages as final booking confirmation.
Operate
Plan for retries and handoff.
Receipts, audit surfaces and deterministic errors make retries and human escalation explicit instead of implied.
5-minute evaluator path
Start from one live property instead of abstract placeholders.
When live supply is available, this page hydrates a concrete property, room type and rate plan so an evaluator can move straight into quote creation. If no sample appears, the platform may still be up while inventory is unavailable.
Read first
Three URLs to fetch before a booking attempt.
Use this before tool selection so the runtime can see supported flows, auth expectations and available endpoints.
Use this for request, response and error shapes, especially on quote, hold, booking and receipt flows.
This is the primary human-readable reference for agent integrations, recovery patterns and booking flow details.
Useful for hotel, room-plan and policy grounding. Do not treat markdown as the final price or cancellation source of truth.
Practical limits
Do not treat every surface the same way.
Execution path
One explicit path from discovery to confirmation.
The goal is not just API coverage. It is giving the runtime a path it can reason about, retry and audit without inventing missing state.
Copy-paste examples
Run the full direct-booking flow from your terminal.
These snippets target the same commerce API the agent runtime calls. When a live sample exists, the quote snippet is already hydrated with real IDs.
curl -s 'https://api.agenthotel.dev/v1/properties' \
-H 'accept: application/json'curl -s -X POST 'https://api.agenthotel.dev/v1/quotes' \
-H 'content-type: application/json' \
-d '{
"hotel_id": "<property_id>",
"room_type_id": "<room_type_id>",
"rate_plan_id": "<rate_plan_id>",
"check_in": "2026-05-02",
"check_out": "2026-05-04",
"adults": 2
}'curl -s -X POST 'https://api.agenthotel.dev/v1/holds' \
-H 'content-type: application/json' \
-H 'Idempotency-Key: hold-demo-001' \
-d '{ "quote_id": "<quote_id>" }'curl -s -X POST 'https://api.agenthotel.dev/v1/bookings' \
-H 'content-type: application/json' \
-H 'Idempotency-Key: booking-demo-001' \
-d '{
"quote_id": "<quote_id>",
"hold_id": "<hold_id>",
"payment_intent_id": "<payment_intent_id>",
"guest": { "full_name": "Alex Nguyen", "email": "alex@example.com", "phone": "+84900111222" }
}'curl -s -X POST 'https://api.agenthotel.dev/v1/receipts/verify' \
-H 'content-type: application/json' \
-d '{ "receipt": <receipt_from_booking_response> }'