The provider integration surface for the Tratok hospitality platform.
REST API for hotels, activity operators and restaurants on tratok.net — sync your inventory and pricing, pull bookings, subscribe to event webhooks, and run channel-manager calendars from your existing PMS or back-office.
Documentation · Quick Start · Examples · OpenAPI · Postman · Provider Portal
Tratok (TRAT) is an ERC-20 utility token founded in 2017 in Dubai by Mohammed Altajir. It powers a blockchain-based hospitality ecosystem connecting travellers directly with hotels, car rentals, restaurants, activities and cruises — cutting the 15–30 % that legacy intermediaries take.
This repository documents the provider-facing REST API at hospitality.tratok.net — the surface your PMS / channel manager / back-office uses to manage listings, push pricing, pull bookings, and receive real-time event notifications. Sign in at the provider portal, generate an API key in Documentation → API, and start integrating.
| 📦 Inventory Sync | Push room availability per-day or across a date range in one call |
| 💵 Dynamic Pricing | Set per-date prices for any room, single-day or bulk |
| 📅 Bookings | Pull every reservation across all your listings, filter by type and status |
| 🔔 Real-Time Webhooks | HMAC-signed notifications on booking, payment, review and listing events |
| 📈 Revenue Reports | Pre-aggregated gross/net summaries by date and listing |
| 🔄 Channel Manager | iCal export + import for Airbnb, Booking.com, Vrbo, Expedia and more |
| 🌐 i18n First | Listings and bookings carry data in 16 languages out of the box |
| 🔒 Secure by Default | X-API-Key header auth, HTTPS only, per-key rate-limited, audit-logged |
Sign in at hospitality.tratok.net, open Documentation → API in the side nav, and click Generate API Key. The key + secret are shown once — store them in a secret manager.
Every endpoint is dispatched off a single ?endpoint=… query parameter on https://hospitality.tratok.net/api.php. Send the key in the X-API-Key header.
curl -X GET "https://hospitality.tratok.net/api.php?endpoint=me" \
-H "X-API-Key: YOUR_API_KEY"{
"success": true,
"data": {
"id": 1,
"name": "John Smith",
"email": "john@hotel.com",
"company": "Grand Hotel Group",
"country": "United Kingdom",
"city": "London",
"email_verified": true,
"api_rate_limit": 100,
"member_since": "2025-01-15 10:30:00"
}
}Working examples for every endpoint in PHP, Node.js, Python and cURL live in /examples. Each language bundle ships a thin client, a runnable demo, and a webhook receiver.
| Module | Endpoints | Docs |
|---|---|---|
| 👤 Account | me · api_key |
Read → |
| 🏨 Properties | properties · rooms |
Properties → · Rooms → |
| 💵 Pricing & Inventory | pricing · pricing_bulk · inventory · inventory_bulk |
Pricing → · Inventory → |
| 🎯 Activities | activities |
Read → |
| 🍽️ Restaurants | restaurants |
Read → |
| 📅 Bookings | bookings |
Read → |
| 📈 Revenue | revenue |
Read → |
| 🔔 Webhooks | 8 event types — booking.*, payment.*, review.*, listing.* |
Read → |
| 🔄 iCal Sync | Channel-manager calendar export + import | Read → |
| 🚀 Getting Started | Account setup, your first API call |
| 🔐 Authentication | API keys, rotation, CORS, best practices |
| ⏱ Rate Limits | Per-key request quotas and 429 handling |
| Error envelope, HTTP codes, retry guidance | |
| 📄 Pagination | page / limit and iteration patterns |
| 🔔 Webhooks | Event subscriptions, HMAC signing, retries |
| 🔄 iCal Channel Sync | Airbnb / Booking.com / Vrbo calendar bridging |
| 📋 OpenAPI 3.1 Spec | Machine-readable spec — feed into Swagger UI, codegen, etc. |
| 📬 Postman Collection | One-click import — fill in {{api_key}} and you're testing |
- PMS integrations — push your nightly rate + availability state into Tratok with two API calls
- Channel manager bridges — pair iCal sync with REST writes for sub-30-minute calendar sync
- Custom dashboards — pull bookings, revenue and reviews into your own BI / accounting tools
- Mobile apps for property managers — read-write access to everything the portal exposes
- Automated pricing engines — react to demand signals with
pricing_bulkrange updates - AI-driven guest engagement — webhook-triggered messaging on
booking.confirmed
.
├── README.md ← you are here
├── LICENSE ← MIT
├── CHANGELOG.md ← version history
├── CONTRIBUTING.md ← how to contribute
├── SECURITY.md ← reporting vulnerabilities
├── CODE_OF_CONDUCT.md ← community standards
├── openapi.yaml ← OpenAPI 3.1 specification
├── postman_collection.json ← importable Postman v2.1 collection
├── docs/
│ ├── authentication.md
│ ├── rate-limiting.md
│ ├── errors.md
│ ├── pagination.md
│ ├── webhooks.md
│ ├── ical-channel-sync.md
│ └── modules/
│ ├── me.md
│ ├── properties.md
│ ├── rooms.md
│ ├── pricing.md
│ ├── inventory.md
│ ├── activities.md
│ ├── restaurants.md
│ ├── bookings.md
│ └── revenue.md
├── examples/
│ ├── curl/ ← shell recipes for every endpoint
│ ├── python/ ← Python client + demo + webhook receiver
│ ├── node/ ← Node.js client + demo + webhook receiver
│ └── php/ ← PHP client + demo + webhook receiver
└── .github/
├── ISSUE_TEMPLATE/
└── PULL_REQUEST_TEMPLATE.md
- Provider Portal: hospitality.tratok.net
- Main website: tratok.net
- Developer API (for data queries, not provider management): developer.tratok.net → TratokToken/tratok-labs
- Information hub: tratok.info
- Twitter / X: @TratokT
- LinkedIn: Tratok Holding Limited
- Issues & feature requests: open an issue in this repo
This repository is the public source of truth for the Tratok Hospitality API surface. Contributions to the documentation, OpenAPI spec, and example clients are welcome — please read CONTRIBUTING.md before opening a pull request.
For security issues, please do not open a public issue. Email security@tratok.com or follow the disclosure process in SECURITY.md.
The contents of this repository (documentation, OpenAPI spec, example clients) are released under the MIT License. The Tratok Hospitality API itself is governed by the Tratok Terms of Service. Tratok is operated by Tratok Holding Limited in Dubai, United Arab Emirates.
© 2017–2026 Tratok Holding Limited · The world's travel token, since 2017