Elivaas Distribution API
The Elivaas Distribution API enables channel partners to programmatically search properties, retrieve real-time availability and pricing, and create confirmed bookings. It is a RESTful API that accepts and returns JSON over HTTPS.Quick Start
Go from zero to your first booking in four steps.
API Reference
Explore the full endpoint reference with request and response schemas.
Support
Reach the integrations team at developers@elivaas.com.
Authentication
All requests are authenticated with two headers issued by the Elivaas team during onboarding.| Header | Type | Description |
|---|---|---|
Api-Key | string | A secret key that identifies your application. Treat it like a password — transmit it only over HTTPS and never expose it in client-side code. |
Channel-Id | string | Identifies your distribution channel. Determines which properties, rate plans, and promotions are accessible. |
Base URLs
| Environment | Base URL | Description |
|---|---|---|
| Sandbox | https://sandbox.elivaas.com | Isolated environment for development and testing. No real inventory is affected. |
| Production | https://api.elivaas.com/api | Live environment with real-time inventory. Bookings created here are fulfilled. |
Quick Start
The core booking flow requires four steps. Each step produces a value consumed by the next.1. Fetch Cities
Before you can search properties by location, you need the list of available cities and states. This call returns slug values that are required as thecity parameter in the Discovery API.
GET /v1/cities
- Display
displayNamein your location dropdown or filter UI. - Store the
slugvalue — pass it as thecityparameter in Step 2. STATEslugs (e.g.,stategoa) return properties across all cities in that state.CITYslugs (e.g.,citynorth-goa) return properties in that specific city only.
Cache this response. The cities list changes infrequently — fetch it once on app load and refresh periodically.
2. Search Properties & Rates
Use the Discovery API to retrieve a paginated list of available properties with calculated pricing. Pass theslug from Step 1 as the city parameter.
GET /v1/properties/rates
quotes (rate plan options):
| Field | Purpose |
|---|---|
quotes[].ratePlanCode | Identifies the rate plan. Required in Step 3 to generate a quote. |
quotes[].netAmountAfterTax | Total stay cost inclusive of tax. Display as the headline price. |
quotes[].netPerNightAmountAfterTax | Per-night price inclusive of tax. |
quotes[].originalNetAmountAfterTax | Price before discounts. Show as strike-through when a discount is applied. |
soldOut | When true, the property has no availability for the requested dates. |
| Parameter | Type | Default | Description |
|---|---|---|---|
city | string | — | City slug from Step 1. Required for location filtering. |
checkinDate | date | — | Check-in date (YYYY-MM-DD). |
checkoutDate | date | — | Check-out date (YYYY-MM-DD). |
adults | integer | 1 | Number of adult guests. |
children | integer | 0 | Number of child guests. |
propertyId | string | — | Retrieve rates for a single property. |
keyword | string | — | Free-text search across property names. |
couponCode | string | — | Apply a coupon to preview discounted pricing. |
bedroom | integer | — | Filter by number of bedrooms. |
page | integer | 0 | Zero-based page index. |
pageSize | integer | 50 | Results per page. |
3. Get a Quote
When the user selects a property and rate plan, request a quote by adding theratePlanCode parameter. The response returns a quoteId — a token that locks in the pricing for booking.
GET /v1/properties/rates?ratePlanCode=...
quoteId and final pricing breakdown:
| Display Label | Field |
|---|---|
| Rate Plan | ratePlanName |
| Nights | numberOfNights |
| Subtotal | netAmountBeforeTax |
| Tax (GST) | gstAmount |
| Total | netAmountAfterTax |
| Security Deposit | securityDeposit |
Persist the
quoteId — it is required to create the booking in the next step.4. Create a Booking
Submit thequoteId along with guest details to confirm the reservation.
POST /v2/bookings
| Field | Type | Required | Constraints |
|---|---|---|---|
quoteId | string | Yes | Must be a valid, unexpired quote from Step 3. |
bookingId | string | Yes | Your internal reference. Must be unique per channel. |
bookingStatus | string | Yes | Must be CONFIRMED. |
guest.email | string | Yes | Guest email address. |
guest.phone | string | Yes | Guest phone number with country code. |
guest.firstName | string | Yes | Guest first name. |
guest.lastName | string | Yes | Guest last name. |
201 Created:
- Blocks inventory for the booked dates
- Assigns an available property unit
- Dispatches confirmation to the guest via email and WhatsApp
Going Live Checklist
Complete each item before switching from Sandbox to Production.Obtain credentials
Receive your Production
Api-Key and Channel-Id from the Elivaas integrations team.Implement property search
Integrate
GET /v1/properties/rates with city slugs, date, and occupancy filters. Verify pagination works correctly.Implement quote generation
Add
ratePlanCode to the search request. Confirm a quoteId is returned and stored.Implement booking creation
Submit
POST /v2/bookings with the stored quoteId. Verify a 201 response with the bookingId.Handle errors gracefully
Implement error handling for
400, 401, and 500 responses. Display actionable messages to the user.Additional APIs
The following endpoints are not required for the core booking flow but provide capabilities for richer integrations.Promotions
Retrieve active promotions and coupon codes to display on property pages.
Inventory
Query raw availability by date — useful for building calendar views.
Rate Plans
Access detailed rate plan definitions including extra guest surcharges.
Fetch Rates
Bulk-fetch daily rates across multiple properties for rate synchronization.
Error Handling
All endpoints return a consistent error envelope.| HTTP Status | Meaning | Recommended Action |
|---|---|---|
200 / 201 | Success | Process the response body. |
400 | Bad Request | Inspect the message and details fields. Fix the request parameters or body. |
401 | Unauthorized | Verify that Api-Key and Channel-Id are present and valid. |
404 | Not Found | The referenced resource does not exist. Confirm the ID is correct. |
500 | Internal Server Error | Retry with exponential backoff. If the error persists, contact support with the timestamp and errorCode. |
Support
Contact the Integrations Team
For onboarding, technical issues, or credential requests — reach us at developers@elivaas.com.

