OFFERSBEAT API
Build on traveler intent.Integrate real offers.
A secure REST API for enterprise, white-label and travel-platform integrations.
REST / JSON
Bearer auth
Scoped access
Signed webhooks
Production credentials are issued only after partner approval.
POST /api/v1/enterprise/intents
curl -X POST \
https://offersbeat.com/api/v1/enterprise/intents \
-H "Authorization: Bearer <YOUR_API_TOKEN>" \
-H "X-OffersBeat-Anonymous-Token: <SESSION_TOKEN>" \
-H "Idempotency-Key: hotel-intent-001" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{
"vertical": "travel.hotel",
"request": {
"destination": {"country":"GR","city":"Athens"},
"stay": {"check_in":"2026-10-20","check_out":"2026-10-22"},
"occupancy": {"rooms":1,"adults":2,"children":0}
},
"response_rules": {"max_offers":10}
}'
Copy
ONE API, CONTROLLED CONTEXT
Your credential resolves the tenant, brand and channel server-side.
Enterprise credentials are bound to a specific partner context and scopes.
INTEGRATION MODES
Choose the surface that matches your role.
01
ENTERPRISE / WHITE-LABEL
Server-to-server Enterprise API
For enterprise partners that want OffersBeat inside their own product.
Bearer credential with immutable scopes
Anonymous session + intent lifecycle
Offer retrieval, selection and handoff
Optional signed lifecycle webhooks
02
HOTEL / SUPPLY PARTNERS
Managed supplier connectivity
For PMS, channel managers, CRS, booking engines and hotel technology providers.
Provider-specific onboarding and certification
Normalized offer contract
Signed callbacks and idempotency
No traveler PII in booking callbacks
DEVELOPER SANDBOX
Test the complete lifecycle without touching production.
QUICK START
A complete hotel intent flow in six steps.
The examples below describe the approved server-to-server Enterprise API surface.
01 Request credentials OffersBeat provisions a client bound to your partner context.
02 Verify context GET /api/v1/enterprise/context
03 Create an anonymous session POST /api/v1/enterprise/anonymous-sessions
04 Submit the hotel intent POST /api/v1/enterprise/intents + Idempotency-Key
05 Finalize and read offers POST .../finalize → GET .../offers
06 Select and hand off POST .../selections → POST .../booking-handoff
1 GET /context Copy
curl https://offersbeat.com/api/v1/enterprise/context \
-H "Authorization: Bearer <YOUR_API_TOKEN>" \
-H "Accept: application/json"
2 POST /anonymous-sessions Copy
curl -X POST https://offersbeat.com/api/v1/enterprise/anonymous-sessions \
-H "Authorization: Bearer <YOUR_API_TOKEN>" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{}'
3 POST /intents Copy
curl -X POST https://offersbeat.com/api/v1/enterprise/intents \
-H "Authorization: Bearer <YOUR_API_TOKEN>" \
-H "X-OffersBeat-Anonymous-Token: <SESSION_TOKEN>" \
-H "Idempotency-Key: intent-20261020-001" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d @examples/create-intent.json
4 Finalize + offers Copy
curl -X POST https://offersbeat.com/api/v1/enterprise/intents/<INTENT_ID>/finalize \
-H "Authorization: Bearer <YOUR_API_TOKEN>" \
-H "X-OffersBeat-Anonymous-Token: <SESSION_TOKEN>" \
-H "Accept: application/json"
curl https://offersbeat.com/api/v1/enterprise/intents/<INTENT_ID>/offers \
-H "Authorization: Bearer <YOUR_API_TOKEN>" \
-H "X-OffersBeat-Anonymous-Token: <SESSION_TOKEN>" \
-H "Accept: application/json"
5 Select + booking handoff Copy
curl -X POST https://offersbeat.com/api/v1/enterprise/intents/<INTENT_ID>/selections \
-H "Authorization: Bearer <YOUR_API_TOKEN>" \
-H "X-OffersBeat-Anonymous-Token: <SESSION_TOKEN>" \
-H "Idempotency-Key: selection-001" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"offer_id":"<OFFER_UUID>"}'
curl -X POST https://offersbeat.com/api/v1/enterprise/intents/<INTENT_ID>/booking-handoff \
-H "Authorization: Bearer <YOUR_API_TOKEN>" \
-H "X-OffersBeat-Anonymous-Token: <SESSION_TOKEN>" \
-H "Idempotency-Key: handoff-001" \
-H "Accept: application/json"
CORE ENDPOINTS
Enterprise API v1 reference.
Method Endpoint Scope Purpose
GET /contextcontext.readVerify server-resolved partner context
POST /anonymous-sessionssessions.writeCreate an anonymous journey token
POST /intentsintents.writeCreate and route traveler intent
GET /intents/{intentId}intents.readRead intent lifecycle status
POST /intents/{intentId}/finalizeoffers.finalizeFinalize the current offer collection
GET /intents/{intentId}/offersoffers.readRead normalized eligible offers
POST /intents/{intentId}/selectionsselections.writeSelect an eligible offer
POST /intents/{intentId}/booking-handoffhandoffs.writeIssue a controlled booking handoff
Base URL https://offersbeat.com/api/v1/enterprise
WEBHOOKS
Lifecycle events without polling.
Approved enterprise clients can receive signed lifecycle notifications.
intent.created offer.received offer.selected handoff.completed conversion.reported
SIGNATURE CONTRACT
HMAC-SHA256 · v1
v1\n{timestamp}\n{delivery_id}\n{sha256(body)}
X-OffersBeat-Webhook-Id
X-OffersBeat-Webhook-Timestamp
X-OffersBeat-Webhook-Signature
X-OffersBeat-Webhook-Profile
The Integration Kit includes a verification example.
SECURITY & PRIVACY
Designed around minimum disclosure.
Anonymous by default Hotel search and matching can operate with an anonymous journey token.
Least privilege Each enterprise credential carries immutable scopes.
Idempotent writes Sensitive writes use Idempotency-Key.
No public secrets Bearer tokens and signing secrets are issued out-of-band.
DOWNLOADS
Everything a technical team needs to start the review.
The kit contains OpenAPI, Postman, examples and webhook verification code.
API ACCESS
Ready to connect your platform?
Tell us your use case and preferred integration mode.
Request API access →
Your privacy choices Οι επιλογές απορρήτου σου
We use essential cookies to run OffersBeat. Analytics and marketing cookies stay off unless you choose them.
Χρησιμοποιούμε απαραίτητα cookies για τη λειτουργία του OffersBeat. Analytics και marketing cookies παραμένουν ανενεργά αν δεν τα επιλέξεις.
Cookie Policy Πολιτική Cookies
Reject optional Απόρριψη μη απαραίτητων
Settings Ρυθμίσεις
Accept all Αποδοχή όλων