Hostrail Docs
API Reference

API Reference

Reference for Hostrail discovery and booking endpoints, generated from the current OpenAPI 3.1 specification.

Metadata JSONDocs Graph

Base URLs

EnvironmentURL
Root sitehttps://hostrail.dev
Docshttps://docs.hostrail.dev
Productionhttps://api.hostrail.dev
MCPhttps://mcp.hostrail.dev/mcp
ACP discoveryhttps://hostrail.dev/.well-known/acp.json
Localhttp://localhost:4000

Root-site machine surfaces

Before calling protected booking routes, many runtimes should fetch one or more of the public machine surfaces on hostrail.dev:

Authentication

  • Public discovery on hostrail.dev is unauthenticated.
  • Protected API calls require Authorization: Bearer <key> and X-Tenant-Id.
  • The bearer can be an operator-managed hsk_live_* / hsk_test_* secret or an OAuth access token minted via client_credentials.

Endpoint groups

  • Discoveryllms.txt, llms-full.txt, capabilities, coverage, Agent Card, AI plugin, API catalog, OAuth metadata, error catalog, delegation issuers
  • Supply — List properties, get property details, search availability
  • Commerce — Quotes, holds, bookings, cancellations, receipts, checkout
  • Guest Portal — Magic link, self-service booking management
  • Admin — Inventory, agents, webhooks, delegation issuers, AI config, KPIs

ACP discovery

The platform also publishes ACP discovery metadata:

Current ACP services are deliberately limited to the platform capabilities that already exist:

  • catalog
  • pricing
  • reservation
  • booking

Treat ACP as a capability index, not as a promise of a second ACP-native checkout protocol beyond the existing REST and MCP execution lanes.

OpenAPI specification

Use the OpenAPI contract for exact request and response shapes. Use the docs site for quickstarts, concepts, and recovery behavior.

Property & room-type response shapes

Three response shapes exist for properties. Pick the narrowest that covers your use case.

ShapeReturned byRoom-type detail
PropertyOutGET /v1/properties (list)
PropertyDetailOutGET /v1/properties/{id}room_types[] with full RoomTypeOut
PropertyFullOutGET /v1/properties/{id}?full=trueroom_types[] plus property-level enrichment

PropertyOut (list)

id, slug, name, description, star_rating, address, geo, default_currency, timezone.

PropertyFullOut adds

FieldTypeNotes
amenitiesstring[]Property-level amenity codes
imagesstring[]Absolute URLs
phonestring | nullE.164 when known
emailstring | nullContact inbox, not guest-facing
pets_allowedboolean
number_of_roomsnumber | nullTotal sellable rooms on property
checkin_time / checkout_timestring | nullLocal time, HH:mm
policies[]objectCancellation/child policy versions attached to the property

RoomTypeOut

In addition to id, code, name, max_occupancy, default_inventory, rate_plans[], each room type now carries:

FieldTypeNotes
descriptionstring | nullMarketing-ready prose
bed_typestring | nulle.g. "king", "twin" — unconstrained string for now
floor_size_sqmnumber | nullSquare metres
amenitiesstring[]Room-level amenity codes
imagesstring[]Absolute URLs
smoking_allowedboolean

All additions are nullable or defaulted — existing agents that ignore unknown fields continue to work without changes.

On this page