Data Formats
Export and API response formats: JSON, OTA XML, OCTO, CSV, and accounting integrations.
Overview
Ananas GDS distributes data in multiple industry-standard formats to maximise compatibility with tour operator systems, channel managers, PMS platforms, and accounting software. The format is selected at the API key level or specified as a query parameter on export requests.
| Format | Code | Best for |
|---|---|---|
| REST JSON | json | Modern integrations, web apps, custom backends. |
| OTA XML | xml_ota | GDS connections, legacy travel systems (OpenTravel 2003B standard). |
| OCTO JSON | octo | Tours and activities operators using the OCTO standard. |
| CSV | csv | Spreadsheet import, data analysis, general bulk export. |
| Xero CSV | xero | Invoice export for Xero accounting software. |
| QuickBooks IIF | quickbooks | Invoice export for QuickBooks Desktop/Online. |
REST JSON (Default)
The default format for all v1 API endpoints. Responses follow a consistent structure with snake_case field names. All timestamps are ISO 8601 in UTC.
{
"property_id": 42,
"hotel_name": "Grand Palace Hotel",
"stars": 5,
"rooms": 120,
"main_info": {
"check_in": "14:00",
"check_out": "11:00",
"pets_allowed": false,
"languages": ["en", "de", "ar"]
},
"photos": [
{
"id": 1,
"url": "https://ik.imagekit.io/ananas/photo_1.jpg",
"category": "exterior",
"caption": "Main entrance"
}
],
"stop_sales": {
"2026-07-15": { "status": 1, "allotment": 5 },
"2026-07-16": { "status": 0, "allotment": 10 }
}
}
OTA XML
Conforms to the OpenTravel Alliance 2003B schema. Used for GDS integration via Amadeus, Sabre, and Travelport connections. Property data maps to OTA_HotelDescriptiveContentRS; availability maps to OTA_HotelAvailRS.
<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelDescriptiveContentRS
xmlns="http://www.opentravel.org/OTA/2003/05"
Version="1.0">
<HotelDescriptiveContents>
<HotelDescriptiveContent
HotelName="Grand Palace Hotel"
HotelCityCode="DXB"
HotelCode="GDS-42">
<HotelInfo>
<Descriptions>
<MultimediaDescriptions>
<MultimediaDescription>
<TextItems>
<TextItem Language="en">
<Description>5-star luxury hotel...</Description>
</TextItem>
</TextItems>
</MultimediaDescription>
</MultimediaDescriptions>
</Descriptions>
</HotelInfo>
</HotelDescriptiveContent>
</HotelDescriptiveContents>
</OTA_HotelDescriptiveContentRS>
OCTO JSON
The Open Connectivity for Tours & Experiences standard. Primarily used by tour operator platforms integrating activity and tour data. The OCTO exporter maps Ananas GDS property and availability data to OCTO Supplier, Product, and Availability objects.
{
"id": "avail-2026-07-15",
"localDateTimeStart": "2026-07-15T00:00:00+00:00",
"localDateTimeEnd": "2026-07-15T23:59:59+00:00",
"status": "AVAILABLE",
"vacancies": 10,
"capacity": 10,
"pricingFrom": []
}
CSV Export
CSV exports are available for facts, photos metadata, stop sale calendars, and invoices. Each scope has its own column schema. CSV files use UTF-8 encoding with BOM for Excel compatibility and comma delimiters.
Facts CSV Columns
property_id, hotel_name, stars, rooms, check_in, check_out, address, country, city, phone, email, website, last_updated.
Stop Sale CSV Columns
property_id, hotel_name, date, status_code, status_label, allotment, room_type, source.
Invoices CSV Columns
invoice_number, direction, from_company, to_company, subject, amount, currency, status, issue_date, due_date, paid_at.
Accounting Formats
Invoice data can be exported in formats compatible with popular accounting packages. These exports are available via the Export Center in Developer Tools.
| Format | Description |
|---|---|
| Xero CSV | Contact, Description, Quantity, Unit Amount, Account Code, Tax Type — maps directly to Xero's invoice import template. |
| QuickBooks IIF | Intuit Interchange Format. Compatible with QuickBooks Desktop 2020+ and QuickBooks Online via third-party IIF importers. |
Requesting a Format
For the v1 public API, format is determined by the API key configuration. For bulk exports via the Export Center, specify format in the export creation request body:
POST /api/dev/integrations/exports/create/
Authorization: Token <token>
Content-Type: application/json
{
"format": "xml_ota",
"scope": "facts",
"filters": {
"property_ids": [42, 43],
"updated_after": "2026-01-01"
}
}