EDistribution API

List listings#

GET/v1/listings

Bulk catalogue feed. Pass listingIds to fetch a specific set (max 100), or page with cursor. Pass updatedSince to receive only rows changed since that instant — the incremental sync feed. Never fetch listings one at a time.

Every parameter you supply is applied — they combine with AND, they are never ignored. listingIds + updatedSince returns only the listings in your set that changed since that instant; adding cursor/size pages that result. This matches /v1/bookings, which takes the same parameter names and behaves the same way. nextCursor is returned whenever the page came back full — including for a listingIds request — and is null on the last page. When listingIds is supplied without an explicit size, the page holds the whole requested set (up to the 100-id cap) rather than the default page size, so a plain id lookup never needs paging.

Request

cURL
curl -X GET 'https://partner-api.elivaas.com/v1/listings' \
  -u "$ELIVAAS_API_KEY:" \
  -H 'Content-Type: application/json'
Response 200
{
  "data": [
    {
      "id": "lst_0853ie",
      "title": "Querencia | Pet-friendly 5-BHK Villa With Sunset & Hill Views",
      "status": "ACTIVE",
      "type": "STANDALONE",
      "city": "Kasauli",
      "state": "Himachal Pradesh",
      "country": "India",
      "locality": "Garkhal",
      "latitude": 30.91535,
      "longitude": 76.95875,
      "maxAdults": 13,
      "maxChildren": 14,
      "price": 29553,
      "createdAt": "2026-02-15T22:00:57.719717Z",
      "updatedAt": "2026-05-21T11:09:03.024811Z",
      "properties": [
        {
          "id": "prop_20Etl54TyDHROM",
          "name": "Querencia | Pet-friendly 5-BHK Villa With Sunset & Hill Views",
          "brand": "ELIVAAS",
          "type": "STANDALONE",
          "city": "Kasauli",
          "state": "Himachal Pradesh",
          "country": "India",
          "location": "Garkhal",
          "latitude": 30.91535,
          "longitude": 76.95875,
          "maxAdults": 13,
          "maxChildren": 14,
          "applicableAdult": 8,
          "applicableChild": 8,
          "numberOfBeds": 5,
          "quantity": 1,
          "price": 29553,
          "isPetFriendly": true,
          "photos": [
            {
              "url": "https://cdn.elivaas.com/hero.webp",
              "name": "Hero shot"
            }
          ],
          "amenities": [
            {
              "icon": "https://cdn.elivaas.com/pool.svg",
              "name": "Private pool",
              "category": "Outdoor"
            }
          ]
        }
      ]
    }
  ],
  "nextCursor": "string"
}

Query parameters#

listingIdsstring[]

Listing ids to fetch. Max 100 per request.

updatedSincestring<date-time>

Return only listings updated at or after this instant (ISO 8601).

cursorstring

Keyset cursor: the nextCursor from the previous page.

sizeinteger<int32>

Page size, max 100.

Responses#

StatusMeaning
200OK
400Validation failure. The message names the offending parameter. Limits are rejected, never silently clamped: an over-length id list, a page size above 100 or a date window longer than 365 days all land here rather than coming back quietly truncated.
401Missing, malformed, revoked or unknown API key, or an agent group whose distribution access is disabled. Pass the key as the HTTP Basic username with an empty password.
429Rate limit exhausted for this credential. Wait Retry-After seconds before retrying; the budget is per credential, not per IP.

See Errors for the error body shape and which statuses are worth retrying.