API v1 | REST + MCP
Partner API documentation
Use REST for conventional integrations or MCP for agents and LLM products. Both surfaces share the same business rules and safety boundaries.
QUICKSTART
1. Get access
Approved partners receive an Entra application assignment and an APIM subscription. Production booking permissions are enabled separately for reading, creating, cancelling and updating bookings.
REST quickstart
export BASE_URL="https://myroom24.azure-api.net"
export TOKEN="<short-lived-entra-token>"
export KEY="<apim-subscription-key>"
curl "$BASE_URL/production/partner/v1/openapi.json" \
-H "Authorization: Bearer $TOKEN" \
-H "Ocp-Apim-Subscription-Key: $KEY"
01 | MICROSOFT ENTRA ID
Identity and app roles
OAuth 2.0 client credentials validate the partner identity and restrict business operations.
02 | AZURE API MANAGEMENT
Account and quota
One subscription per partner controls approval, revocation, rate limits and monthly quota.
REST API
Operations
Production REST base: /production/partner/v1. Sandbox REST base: /partner/v1. Sandbox activation is arranged during onboarding. Use the credentials issued for each environment; sandbox access does not grant production booking permissions.
GET /search - Search live offers
POST /offers/{offerId}/revalidate - Refresh price and availability
POST /quotes - Create an idempotent quote
GET /quotes/{quoteId} - Read an owned quote
POST /quotes/{quoteId}/checkout-handoff - Create a confirmed checkout URL
POST /attribution/events - Accept a signed attribution event
POST /booking-actions - Prepare a booking, cancellation or contact update
GET /booking-actions/{actionId} - Read action and approval status
POST /booking-actions/{actionId}/execute - Execute an approved action
GET /bookings/{reservationId} - Read a booking created by your integration
BOOKING ACTIONS
Prepare, approve, then track the result.
1. Prepare | Send a stable idempotencyKey and an action with kind book, cancel or edit. A new booking requires a fresh quoteId and traveller details. Cancellation and contact updates require the reservationId and its latest expectedUpdatedAt.
2. Get guest approval | Open the returned consentUrl. The guest signs in to myroom24, reviews the exact action and confirms it. Confirmation executes the action; your integration polls its status. A partner-supplied guest ID or confirmation flag is not guest consent.
3. Complete payment | For a new booking, the guest follows the Stripe Checkout link to pay or authorize the first instalment. The approved payment method supports later instalments. Card details stay on Stripe.
4. Read the booking | An action marked completed does not mean the reservation is confirmed or paid. Read the current booking and payment status; request bookings may also require host approval.
5. Handle retries | Reuse the original action and idempotency key. If an action remains executing or requires review, contact support before attempting another action.
Cancellation | Existing cancellation terms determine fees and refund processing. A cancellation response does not mean a refund has arrived. Payments still processing must settle first.
Contact updates | Only email and phone details of existing travellers can change. Names, ages, traveller count, dates and room remain unchanged. These updates affect myroom24 contact records.
Access | Ask for bookings.read, bookings.create, bookings.cancel and bookings.edit as needed. Your integration can access only bookings it created. Each change requires fresh guest approval.
MODEL CONTEXT PROTOCOL
MCP Streamable HTTP
Connect to /production/partner/mcp with the same production credentials. The tools use the same booking rules and guest approval flow as REST. Booking tools are available to clients with booking access enabled.
Available tools
search_stays
revalidate_stay_offer
create_stay_quote
get_stay_quote
prepare_checkout_handoff
prepare_booking_action
execute_booking_action
get_booking_action
get_partner_booking
SAFETY CONTRACT
The guest approves every booking change.
Bookings, cancellations and contact updates combine partner permissions with a signed-in guest's approval. Stripe handles payment details. The existing checkout handoff remains available for integrations that use the myroom24 checkout journey.