API Integration
Connect your external system to Ananas GDS using the v1 REST API — authentication, data pull, error handling.
Overview
The Ananas GDS v1 API provides read access to published fact sheets, stop sale calendars, photo galleries, B2B invoices, and rooming lists for all properties your API key is authorised to access. The API is token-based — the token appears in the URL path, making it compatible with virtually any HTTP client. All responses are personalized per tour operator: your mapping identity codes, room codes/names, and fact/photo overrides are applied automatically.
Base URL & Token
https://app.ananas-gds.com/api/v1/{endpoint}/{your-api-token}/
Create and manage API keys in Developer Tools → API Keys . Each key has granular permissions for facts, stop sale, photos, invoices, and rooming lists.
Endpoints
| Endpoint | Data | Permission Flag |
|---|---|---|
/api/v1/facts/{token}/ |
Full fact sheet for all accessible properties. | fact_sheet |
/api/v1/stop-sale/{token}/ |
Availability calendar with status codes and allotments. | stop_sale |
/api/v1/photos/{token}/ |
Photo gallery URLs for all properties. | hotel_photos |
/api/v1/invoices/{token}/ |
B2B invoices the account is a party to, with line items and property reference (received drafts excluded). | invoices |
/api/v1/rooming/{token}/ |
Rooming ledgers with reservation entries, both TO and hotel side. | rooming |
Response Format
All endpoints return JSON by default; send
Accept: application/xml
for the same envelope as XML. The response is a
meta
object plus a
data
array of property objects — one per property accessible to the token. Each object includes the property ID, hotel name, and the data specific to the endpoint.
Testing:
develop against the free test lane instead of the live endpoints —
Dev Tools → API Integration → Send Test Request
(or the
ananas_dev_test_call
MCP tool). It returns the identical response shape, capped at 10 properties, and never counts against your token rate limit.
Error Handling
| Code | Meaning |
|---|---|
403 |
Token valid but missing permission for this endpoint. |
404 |
Token not found or revoked. |
429 |
Rate limit exceeded. Back off and retry. |
Polling Recommendations
Ananas GDS is not a real-time booking system. Recommended polling frequencies: fact sheets — once per day; stop sale — every 15 minutes to 1 hour depending on plan; photos — once per week unless you detect a change notification via webhook.
Use webhooks for stop sale
Instead of polling stop sale, register a webhook for
stopsale.created
,
stopsale.updated
, and
stopsale.cancelled
events. This gives you real-time updates without unnecessary API calls.