# Tripadvisor

Measured Tripadvisor data, one operation per call. Places are named by their Tripadvisor URL (Hotel\_Review / Restaurant\_ Review / Attraction\_Review). Every fetch adds rating, review count and rank to the place's history. ops: hotels, restaurants, attractions (full cards for up to ten places of that kind — contact, address and coordinates, rating with breakdown and review tags, rank out of, photos count; hotels add class, rooms, amenities, price range and OTA offers for a stay; restaurants add cuisines, dishes, hours, menu, price level; attractions add types, ticket offers, booking links), searchHotels, searchRestaurants, searchAttractions (a destination or dish, every hit a full card), reviews (reviews for up to ten places of any kind — text, rating, dates, trip type, sub-ratings, owner response; filter by minimum date, ratings, languages), history (stored rating/review-count/rank series for places already held, free). Ops are independent — issue several as PARALLEL tool calls. Fresh fetches cost credits; anything already held is free.

`POST https://api.zomler.com/api/v1/platforms/tripadvisor`

-   [hotels](#hotels)
-   [restaurants](#restaurants)
-   [attractions](#attractions)
-   [searchHotels](#searchHotels)
-   [searchRestaurants](#searchRestaurants)
-   [searchAttractions](#searchAttractions)
-   [reviews](#reviews)
-   [history](#history)

## hotels

from 2 credits · fresh for 3 days

Full cards for up to ten hotels by Tripadvisor URL — rating breakdown, rank, class, rooms, amenities, price range, OTA offers for the stay.

### Request fields

| Field | Type | Default | Values / limits |
| --- | --- | --- | --- |
| `subjects` (required) | list of string | — | 1-10 items |
| `language` | string | `en` | BCP-47 |
| `currency` | string | `USD` | ISO 4217 |
| `stay` | object | `all defaults` | — |
| `stay.checkIn` | string | `—` | YYYY-MM-DD |
| `stay.checkOut` | string | `—` | YYYY-MM-DD |

### Example

```bash
curl -X POST https://api.zomler.com/api/v1/platforms/tripadvisor \
  -H "X-API-Key: zk_live_…" \
  -H "Content-Type: application/json" \
  -d '{
  "request": {
    "subjects": [
      "example"
    ],
    "op": "hotels"
  },
  "estimateOnly": false
}'
```

```js
const res = await fetch("https://api.zomler.com/api/v1/platforms/tripadvisor", {
  method: "POST",
  headers: {
    "X-API-Key": process.env.ZOMLER_API_KEY,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    "request": {
      "subjects": [
        "example"
      ],
      "op": "hotels"
    },
    "estimateOnly": false
  }),
});
const envelope = await res.json();
console.log(envelope.data, envelope.cost.creditsCharged);
```

```python
import os, httpx

res = httpx.post(
    "https://api.zomler.com/api/v1/platforms/tripadvisor",
    headers={"X-API-Key": os.environ["ZOMLER_API_KEY"]},
    json={
      "request": {
        "subjects": [
          "example"
        ],
        "op": "hotels"
      },
      "estimateOnly": False
    },
    timeout=120,
)
envelope = res.json()
print(envelope["data"], envelope["cost"]["creditsCharged"])
```

## restaurants

from 2 credits · fresh for 3 days

Full cards for up to ten restaurants by URL — cuisines, dishes, hours, menu link, price level, rating breakdown, rank.

### Request fields

| Field | Type | Default | Values / limits |
| --- | --- | --- | --- |
| `subjects` (required) | list of string | — | 1-10 items |
| `language` | string | `en` | BCP-47 |
| `currency` | string | `USD` | ISO 4217 |

### Example

```bash
curl -X POST https://api.zomler.com/api/v1/platforms/tripadvisor \
  -H "X-API-Key: zk_live_…" \
  -H "Content-Type: application/json" \
  -d '{
  "request": {
    "subjects": [
      "example"
    ],
    "op": "restaurants"
  },
  "estimateOnly": false
}'
```

```js
const res = await fetch("https://api.zomler.com/api/v1/platforms/tripadvisor", {
  method: "POST",
  headers: {
    "X-API-Key": process.env.ZOMLER_API_KEY,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    "request": {
      "subjects": [
        "example"
      ],
      "op": "restaurants"
    },
    "estimateOnly": false
  }),
});
const envelope = await res.json();
console.log(envelope.data, envelope.cost.creditsCharged);
```

```python
import os, httpx

res = httpx.post(
    "https://api.zomler.com/api/v1/platforms/tripadvisor",
    headers={"X-API-Key": os.environ["ZOMLER_API_KEY"]},
    json={
      "request": {
        "subjects": [
          "example"
        ],
        "op": "restaurants"
      },
      "estimateOnly": False
    },
    timeout=120,
)
envelope = res.json()
print(envelope["data"], envelope["cost"]["creditsCharged"])
```

## attractions

from 2 credits · fresh for 3 days

Full cards for up to ten attractions by URL — types, ticket offers, booking links, rating breakdown, rank.

### Request fields

| Field | Type | Default | Values / limits |
| --- | --- | --- | --- |
| `subjects` (required) | list of string | — | 1-10 items |
| `language` | string | `en` | BCP-47 |
| `currency` | string | `USD` | ISO 4217 |

### Example

```bash
curl -X POST https://api.zomler.com/api/v1/platforms/tripadvisor \
  -H "X-API-Key: zk_live_…" \
  -H "Content-Type: application/json" \
  -d '{
  "request": {
    "subjects": [
      "example"
    ],
    "op": "attractions"
  },
  "estimateOnly": false
}'
```

```js
const res = await fetch("https://api.zomler.com/api/v1/platforms/tripadvisor", {
  method: "POST",
  headers: {
    "X-API-Key": process.env.ZOMLER_API_KEY,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    "request": {
      "subjects": [
        "example"
      ],
      "op": "attractions"
    },
    "estimateOnly": false
  }),
});
const envelope = await res.json();
console.log(envelope.data, envelope.cost.creditsCharged);
```

```python
import os, httpx

res = httpx.post(
    "https://api.zomler.com/api/v1/platforms/tripadvisor",
    headers={"X-API-Key": os.environ["ZOMLER_API_KEY"]},
    json={
      "request": {
        "subjects": [
          "example"
        ],
        "op": "attractions"
      },
      "estimateOnly": False
    },
    timeout=120,
)
envelope = res.json()
print(envelope["data"], envelope["cost"]["creditsCharged"])
```

## searchHotels

from 20 credits for 10

Hotels for a destination — every hit a full card, priced for the stay when dates are given.

### Request fields

| Field | Type | Default | Values / limits |
| --- | --- | --- | --- |
| `query` (required) | string | — | ≤300 chars |
| `language` | string | `en` | BCP-47 |
| `currency` | string | `USD` | ISO 4217 |
| `limit` | integer | `10` | 1-100 |
| `stay` | object | `all defaults` | — |
| `stay.checkIn` | string | `—` | YYYY-MM-DD |
| `stay.checkOut` | string | `—` | YYYY-MM-DD |

### Example

```bash
curl -X POST https://api.zomler.com/api/v1/platforms/tripadvisor \
  -H "X-API-Key: zk_live_…" \
  -H "Content-Type: application/json" \
  -d '{
  "request": {
    "query": "example",
    "op": "searchHotels"
  },
  "estimateOnly": false
}'
```

```js
const res = await fetch("https://api.zomler.com/api/v1/platforms/tripadvisor", {
  method: "POST",
  headers: {
    "X-API-Key": process.env.ZOMLER_API_KEY,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    "request": {
      "query": "example",
      "op": "searchHotels"
    },
    "estimateOnly": false
  }),
});
const envelope = await res.json();
console.log(envelope.data, envelope.cost.creditsCharged);
```

```python
import os, httpx

res = httpx.post(
    "https://api.zomler.com/api/v1/platforms/tripadvisor",
    headers={"X-API-Key": os.environ["ZOMLER_API_KEY"]},
    json={
      "request": {
        "query": "example",
        "op": "searchHotels"
      },
      "estimateOnly": False
    },
    timeout=120,
)
envelope = res.json()
print(envelope["data"], envelope["cost"]["creditsCharged"])
```

## searchRestaurants

from 20 credits for 10

Restaurants for a destination or dish — every hit a full card.

### Request fields

| Field | Type | Default | Values / limits |
| --- | --- | --- | --- |
| `query` (required) | string | — | ≤300 chars |
| `language` | string | `en` | BCP-47 |
| `currency` | string | `USD` | ISO 4217 |
| `limit` | integer | `10` | 1-100 |

### Example

```bash
curl -X POST https://api.zomler.com/api/v1/platforms/tripadvisor \
  -H "X-API-Key: zk_live_…" \
  -H "Content-Type: application/json" \
  -d '{
  "request": {
    "query": "example",
    "op": "searchRestaurants"
  },
  "estimateOnly": false
}'
```

```js
const res = await fetch("https://api.zomler.com/api/v1/platforms/tripadvisor", {
  method: "POST",
  headers: {
    "X-API-Key": process.env.ZOMLER_API_KEY,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    "request": {
      "query": "example",
      "op": "searchRestaurants"
    },
    "estimateOnly": false
  }),
});
const envelope = await res.json();
console.log(envelope.data, envelope.cost.creditsCharged);
```

```python
import os, httpx

res = httpx.post(
    "https://api.zomler.com/api/v1/platforms/tripadvisor",
    headers={"X-API-Key": os.environ["ZOMLER_API_KEY"]},
    json={
      "request": {
        "query": "example",
        "op": "searchRestaurants"
      },
      "estimateOnly": False
    },
    timeout=120,
)
envelope = res.json()
print(envelope["data"], envelope["cost"]["creditsCharged"])
```

## searchAttractions

from 20 credits for 10

Things to do for a destination — every hit a full card.

### Request fields

| Field | Type | Default | Values / limits |
| --- | --- | --- | --- |
| `query` (required) | string | — | ≤300 chars |
| `language` | string | `en` | BCP-47 |
| `currency` | string | `USD` | ISO 4217 |
| `limit` | integer | `10` | 1-100 |

### Example

```bash
curl -X POST https://api.zomler.com/api/v1/platforms/tripadvisor \
  -H "X-API-Key: zk_live_…" \
  -H "Content-Type: application/json" \
  -d '{
  "request": {
    "query": "example",
    "op": "searchAttractions"
  },
  "estimateOnly": false
}'
```

```js
const res = await fetch("https://api.zomler.com/api/v1/platforms/tripadvisor", {
  method: "POST",
  headers: {
    "X-API-Key": process.env.ZOMLER_API_KEY,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    "request": {
      "query": "example",
      "op": "searchAttractions"
    },
    "estimateOnly": false
  }),
});
const envelope = await res.json();
console.log(envelope.data, envelope.cost.creditsCharged);
```

```python
import os, httpx

res = httpx.post(
    "https://api.zomler.com/api/v1/platforms/tripadvisor",
    headers={"X-API-Key": os.environ["ZOMLER_API_KEY"]},
    json={
      "request": {
        "query": "example",
        "op": "searchAttractions"
      },
      "estimateOnly": False
    },
    timeout=120,
)
envelope = res.json()
print(envelope["data"], envelope["cost"]["creditsCharged"])
```

## reviews

from 49 credits for 25 · fresh for 3 days

Reviews for up to ten places of any kind — text, rating, dates, trip type, sub-ratings, owner response, reviewer.

### Request fields

| Field | Type | Default | Values / limits |
| --- | --- | --- | --- |
| `subjects` (required) | list of string | — | 1-10 items |
| `since` | string | `—` | YYYY-MM-DD |
| `ratings`◆ | list of integer | `[]` | each 1-5 |
| `languages`◆ | list of string | `[]` | each BCP-47 |
| `limit` | integer | `25` | 1-100 |

### Example

```bash
curl -X POST https://api.zomler.com/api/v1/platforms/tripadvisor \
  -H "X-API-Key: zk_live_…" \
  -H "Content-Type: application/json" \
  -d '{
  "request": {
    "op": "reviews",
    "subjects": [
      "example"
    ]
  },
  "estimateOnly": false
}'
```

```js
const res = await fetch("https://api.zomler.com/api/v1/platforms/tripadvisor", {
  method: "POST",
  headers: {
    "X-API-Key": process.env.ZOMLER_API_KEY,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    "request": {
      "op": "reviews",
      "subjects": [
        "example"
      ]
    },
    "estimateOnly": false
  }),
});
const envelope = await res.json();
console.log(envelope.data, envelope.cost.creditsCharged);
```

```python
import os, httpx

res = httpx.post(
    "https://api.zomler.com/api/v1/platforms/tripadvisor",
    headers={"X-API-Key": os.environ["ZOMLER_API_KEY"]},
    json={
      "request": {
        "op": "reviews",
        "subjects": [
          "example"
        ]
      },
      "estimateOnly": False
    },
    timeout=120,
)
envelope = res.json()
print(envelope["data"], envelope["cost"]["creditsCharged"])
```

## history

free · reads what is held

Stored rating/review-count/rank series of places already held — free.

### Request fields

| Field | Type | Default | Values / limits |
| --- | --- | --- | --- |
| `subjects` (required) | list of string | — | 1-10 items |
| `metric` | enum | `rating` | `rating`, `reviews`, `rank` |
| `days` | integer | `90` | 1-730 |

### Example

```bash
curl -X POST https://api.zomler.com/api/v1/platforms/tripadvisor \
  -H "X-API-Key: zk_live_…" \
  -H "Content-Type: application/json" \
  -d '{
  "request": {
    "op": "history",
    "subjects": [
      "example"
    ]
  },
  "estimateOnly": false
}'
```

```js
const res = await fetch("https://api.zomler.com/api/v1/platforms/tripadvisor", {
  method: "POST",
  headers: {
    "X-API-Key": process.env.ZOMLER_API_KEY,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    "request": {
      "op": "history",
      "subjects": [
        "example"
      ]
    },
    "estimateOnly": false
  }),
});
const envelope = await res.json();
console.log(envelope.data, envelope.cost.creditsCharged);
```

```python
import os, httpx

res = httpx.post(
    "https://api.zomler.com/api/v1/platforms/tripadvisor",
    headers={"X-API-Key": os.environ["ZOMLER_API_KEY"]},
    json={
      "request": {
        "op": "history",
        "subjects": [
          "example"
        ]
      },
      "estimateOnly": False
    },
    timeout=120,
)
envelope = res.json()
print(envelope["data"], envelope["cost"]["creditsCharged"])
```

---

Source: https://zomler.com/docs/api/platforms/tripadvisor
