All Endpoints
Complete reference of all Ananas GDS API endpoints, organised by domain. Base URL:
https://app.ananas-gds.com
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)
| Method | Path | Description |
|---|---|---|
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=
).
|