ℹ

Authentication

All endpoints prefixed /api/ require Authorization: Token <token> unless noted as public. The v1 partner API uses token-in-URL — see API Authentication .

Authentication

Method Path Description Auth
POST /api/auth/token/login/ Log in, receive session token. Public
POST /api/auth/token/logout/ Log out, invalidate session. Token
GET /api/auth/check-token/ Validate the current token and return user data. Token
GET /api/auth/session/ Session startup — loads user, company, and preferences in one call. Token
PUT /api/auth/profile/update Update user profile (name, email, avatar). Token
GET /api/auth/authorized-users/ List sub-users for the account. Token (manager)
POST /api/auth/authorized-users/create/ Create a sub-user. Token (manager)
GET /api/auth/authorized-users/{id}/ Get sub-user details. Token (manager)
PUT /api/auth/authorized-users/{id}/update/ Update sub-user profile. Token (manager)
DELETE /api/auth/authorized-users/{id}/delete/ Remove a sub-user. Token (manager)
GET /api/auth/authorized-users/{id}/permissions/ Get sub-user permissions. Token (manager)
POST /api/auth/permissions/create/ Create permissions for a sub-user. Token (manager)
PUT /api/auth/permissions/update/{id}/ Update sub-user permissions. Token (manager)

Properties & Fact Sheets

Method Path Description
GET /api/info/properties/ List all properties for the account.
GET /api/info/properties/search/ Search properties by name, country, or status.
GET /api/info/property/{id}/ Get property detail with all fact categories.
POST /api/info/property/create/ Create a new property.
PUT /api/info/property/update/{id}/ Update property fields.
DELETE /api/info/property/delete/{id}/ Delete a property and all associated data.
GET/POST /api/info/init-facts-info/{id}/ Initialise all fact categories for a new property.
GET /api/info/property/{id}/gallery/ Get photo gallery for a property.
POST /api/info/property/{id}/publish/create/ Submit fact sheet for review/publication.
GET /api/info/property/{id}/publish/{type}/ Get the published fact sheet in specified type.
GET /api/info/last-publish-date/ Get last publication timestamp.
GET /api/info/publish/pending/ List fact sheets awaiting admin review.
GET /api/info/publish/pending/{id}/preview/ Preview a pending submission.
POST /api/info/publish/pending/{id}/approve/ Approve a pending fact sheet.
POST /api/info/publish/pending/{id}/decline/ Decline a pending fact sheet.
GET /api/info/published-partners/{token}/ Partner-facing published facts (token auth).
GET /api/info/partners-photos/{token}/ Partner-facing photo gallery (token auth).
POST /api/info/send-facts/{list_id}/sheet/{prop_id}/ Email PDF fact sheet to a mailing list.
GET /api/info/download-facts/{id}/ Download PDF fact sheet.
POST /api/info/send-photos/{list_id}/acc/{prop_id}/ Email photo gallery to a mailing list.
GET /api/info/download-photos/{id}/ Download compressed photo gallery.

Allotment Calendar & Stop Sale

Session-authenticated management API for the Allotment Calendar (the successor to the legacy Stop Sale module). Operators consume the calendars via the token-based /api/v1/allotment-stop-sale/{token}/ export listed under Public v1 API.

Method Path Description
GET POST /api/allotment/calendars/?property={id} List calendars (auto-creates the Master) / create a sub-calendar.
GET PATCH DELETE /api/allotment/calendars/{id}/ Retrieve, edit, or delete a calendar (Master is immutable).
GET POST /api/allotment/calendars/{id}/blocks/ List / create allotment blocks (rejected on contract-fed calendars).
POST /api/allotment/calendars/{id}/pull-contract/ Re-pull allotment from the Pricing Engine rate contract (idempotent).
POST /api/allotment/calendars/{id}/daily/batch/ Atomic multi-day save of counts / statuses (the buffered Save).
GET /api/allotment/calendars/{id}/grid/?from=&to= Computed availability cascade per room / day.
GET /api/allotment/calendars/{id}/day-breakdown/?room=&date= Per-day consumption of one room, by operator + PMS source.
GET /api/allotment/calendars/{id}/timeline/?from=&to= Allocation bars + rooming reservation spans + PMS bars.
GET /api/allotment/calendars/{id}/pdf/?from=&to= Download / email the calendar PDF (see module doc for mail variants).
GET /api/allotment/property/{property_id}/pdf/?from=&to= Same, keyed by property — resolves that property's Master calendar. Used by the Export Centre.
GET POST PATCH DELETE /api/allotment/shares/ Manage directional shared-inventory rules.
Legacy Stop Sale endpoints (frozen)
MethodPathDescription
GET/api/stop-sale/calendar/{id}/Legacy stop sale calendar (month view).
POST/api/stop-sale/event/create/Create a legacy stop sale event.
PUT/api/stop-sale/event/update/{id}/Update a legacy event.
DELETE/api/stop-sale/event/delete/{id}/Delete a legacy event.
GET/api/stop-sale/partner-availability/{token}/Partner-facing availability (legacy token URL).

Partners & Contracts

Method Path Description
GET /api/partners/contracts/ List all contracts (incoming, current, outgoing).
POST /api/partners/contracts/create/ Create a new contract / send partner invitation.
GET /api/partners/contracts/{id}/ Get contract detail.
PUT /api/partners/contracts/{id}/update/ Update contract terms.
DELETE /api/partners/contracts/{id}/delete/ Cancel and delete a contract.
POST /api/partners/contracts/{id}/accept/ Accept a contract or amendment.
POST /api/partners/contracts/{id}/reject/ Reject a contract or amendment.
GET /api/partners/discover/ Partner marketplace — discover new hotel or TO connections.
GET /api/partners/properties/{contract_id}/ List properties accessible under a contract.
GET /api/partners/facts-access/{contract_id}/ Check data access permissions for a contract.

Invoicing

Method Path Description
GET /api/invoicing/invoices/ List invoices (sent, received, drafts).
POST /api/invoicing/invoices/create/ Create a new invoice.
GET /api/invoicing/invoices/{id}/ Get invoice detail with line items and activity log.
PUT /api/invoicing/invoices/{id}/update/ Update a draft invoice.
POST /api/invoicing/invoices/{id}/send/ Send invoice to recipient.
POST /api/invoicing/invoices/{id}/mark-paid/ Mark invoice as paid.
POST /api/invoicing/invoices/{id}/dispute/ Raise a dispute on a received invoice.
POST /api/invoicing/invoices/{id}/cancel/ Cancel an invoice.
POST /api/invoicing/invoices/{id}/duplicate/ Duplicate an invoice as a new draft.
POST /api/invoicing/invoices/{id}/send-reminder/ Send a payment reminder email.
GET /api/invoicing/invoices/{id}/download/ Download PDF of invoice.
GET /api/invoicing/stats/ Invoice summary statistics for the dashboard.

Payments & Subscriptions

Method Path Description
GET /api/payments/plans/ List subscription plans.
GET /api/payments/overview/ Billing overview: subscription, cards, history.
GET/PUT /api/payments/billing-address/ Billing address.
POST /api/payments/subscription/upgrade/ Upgrade plan.
POST /api/payments/subscription/cancel/ Cancel at period end.
POST /api/payments/subscription/resume/ Resume cancelled subscription.
POST /api/payments/subscription/auto-renew/ Toggle auto-renew.
GET /api/payments/cards/ List payment cards.
DELETE /api/payments/cards/{id}/ Delete card.
POST /api/payments/cards/set-primary/{id}/ Set primary card.
POST /api/payments/stripe/setup-intent/ Create Stripe SetupIntent.
POST /api/payments/stripe/attach-method/ Attach Stripe payment method.
POST /api/payments/verify-payment/ Confirm payment, activate plan.

Notifications

Method Path Description
GET /api/notification/notification/ List notifications.
GET /api/notification/notification/count/ Unread count.
PATCH /api/notification/notification/edit/ Mark one as read.
POST /api/notification/notification/mark-all-read/ Mark all as read.
DELETE /api/notification/notification/delete/ Dismiss notifications.
GET /api/notification/announce-app/ Platform announcements.

Settings

Method Path Description
GET /api/settings/account/settings Personal settings (canonical).
GET /api/settings/company/settings Company settings (canonical).
GET/PUT /api/settings/company/ Company profile.
GET /api/settings/preferences/ Personal preferences.
PUT /api/settings/preferences/edit/ Update preferences.
GET /api/settings/mailing-lists/ List mailing lists.
POST /api/settings/mailing-lists/create/ Create mailing list.
GET /api/settings/contacts/ List contacts.
POST /api/settings/contacts/create/ Add contact.
POST /api/settings/contacts/import/csv/ Import contacts from CSV.
GET /api/settings/api-keys/ List API keys.
POST /api/settings/api-key/create/ Create API key.
DELETE /api/settings/api-key/delete/{id}/ Delete API key.
GET /api/settings/whitelists/ List whitelisted domains.
GET /api/settings/widget/{property_id}/ Get widget for a property.
POST /api/settings/widget/create/ Create widget.
GET /api/settings/audit/ Audit trail log.

Public v1 API (Partner Access)

ℹ

Token in URL

These endpoints use the API key token in the URL path. No Authorization header is needed.

Method Path Description
GET /api/v1/facts/{token}/ Published fact sheet data. Requires fact_sheet permission on the key.
GET /api/v1/photos/{token}/ Published photo gallery. Requires hotel_photos permission.
GET /api/v1/stop-sale/{token}/ Stop sale calendar (legacy, frozen). Requires stop_sale permission. New integrations should use /api/v1/allotment-stop-sale/ instead.
GET /api/v1/allotment-stop-sale/{token}/ Availability from the allotment calendars. Requires stop_sale permission. Accommodation tokens export their own Master + sub-calendars with full counts (allotment, closed, confirmed, available, PMS-external, physical remaining) — the PMS/channel-manager output feed. Tour operator tokens get their contract portfolio: the sub-calendar bound to them (connected partnership calendar, else the rate-contract calendar), falling back to the Master calendar; day statuses arrive both as a stable enum (free / open / on_request / stop / block) and as the operator's own mapped event codes. Filters: ?from=, ?to=, ?granularity=daily|spans (spans collapses identical consecutive days into date ranges), ?calendar=master (explicit Master pull — operators need an active partnership contract with stop-sale sync), ?include=reasons (day-status reason codes, shared only when the contract term "share stop-sale reasons" is enabled), plus ?country= and ?property_id=. Accommodation-only filters: ?calendar_id=, ?kind=. Rate-contract-only operators without a bound calendar receive a per-property error entry ("Contact the accommodation to create a calendar" / "Contract has ended").
GET /api/v1/invoices/{token}/ B2B invoices the account is a party to (received drafts excluded). Requires invoices permission. Filters: ?direction= , ?status= , ?from= , ?to= .
GET /api/v1/rooming/{token}/ Rooming ledgers with reservation entries (TO and hotel side). Requires rooming permission. Filters: ?status= , ?from= , ?to= , ?property_id= .
POST /api/v1/test-call/ Session-authenticated test lane: same response shape, capped at 10 properties, does not count against the token rate limit.

All v1 responses are personalized per calling tour operator: mapping identity codes (hotel / internal / external / supplier) are merged into property headers, room names and codes are replaced by the TO's mapping, and fact/photo overrides are applied. Responses are JSON by default; send Accept: application/xml for XML.

Developer Tools — Integrations, Webhooks & Exports

Method Path Description
GET/POST /api/v1/integrations/connections/ List or create external connections.
GET/PATCH/DELETE /api/v1/integrations/connections/{id}/ Manage a connection.
POST /api/v1/integrations/connections/{id}/sync/ Trigger manual sync.
GET /api/v1/integrations/connections/{id}/sync-logs/ Sync log history.
POST /api/v1/integrations/inbound/{token}/ Inbound webhook receiver for PMS adapters (Apaleo, Cloudbeds, Mews).
POST /api/v1/integrations/import/{token}/ Generic CSV/JSON availability import ( ?format=csv|json&target=availability ).
GET /api/v1/integrations/export/{token}/ Generic CSV/JSON availability export ( ?format=&from=&to= ).
POST /api/v1/alpinebits/ AlpineBits HotelData server (multipart, HTTP Basic auth).
GET/POST /api/v1/integrations/webhooks/ List or register webhook endpoints.
GET/PATCH/DELETE /api/v1/integrations/webhooks/{id}/ Manage a webhook endpoint.
POST /api/v1/integrations/webhooks/{id}/test/ Send test ping.
GET /api/v1/integrations/webhooks/{id}/deliveries/ List delivery attempts.
POST /api/v1/integrations/webhooks/deliveries/{id}/retry/ Retry a failed delivery.
GET /api/v1/integrations/exports/ List export requests.
POST /api/v1/integrations/exports/create/ Run a bulk export (JSON, CSV, OTA XML, OCTO, Xero, QuickBooks).
POST /api/einvoice/import/ Receive an EN 16931 e-invoice (UBL/XRechnung or CII/ZUGFeRD XML body).
GET /api/einvoice/inbox/ List received e-invoices; /api/einvoice/inbox/{id}/ for full detail.
GET /api/einvoice/{invoice_id}/ Download an invoice as XRechnung/ZUGFeRD ( ?format= ).
GET /api/einvoice/export/csv/ Accounting CSV of issued + received invoices ( ?from=&to= ).