# List a Yelp business's reviews

Returns a Yelp business's reviews, with rating, text, author, date and the owner's response. Use it to track what customers say about a business.

Tool `yelp.business.reviews` on Yelp. Contract version 1, released 2026-10-27.

## Example call

Over REST, send the input in the body. Over MCP, pass the same input to `call_tool`.

cURL:

```bash
curl https://api.voxoria.ai/v1/tools/yelp.business.reviews/calls \
  -H "Authorization: Bearer $VOXORIA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"input":{"business_id":"dDz2erKJ_Z2HMur0tQ_iJA","sort":"newest"}}'
```

Python:

```python
import os

import httpx

response = httpx.post(
    "https://api.voxoria.ai/v1/tools/yelp.business.reviews/calls",
    headers={"Authorization": f"Bearer {os.environ['VOXORIA_API_KEY']}"},
    json={
        "input": {"business_id": "dDz2erKJ_Z2HMur0tQ_iJA", "sort": "newest"},
    },
    timeout=60,
)
print(response.json())
```

TypeScript:

```ts
const response = await fetch("https://api.voxoria.ai/v1/tools/yelp.business.reviews/calls", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.VOXORIA_API_KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    "input": {"business_id": "dDz2erKJ_Z2HMur0tQ_iJA", "sort": "newest"},
  }),
});
console.log(await response.json());
```

MCP (`tools/call` params):

```json
{
  "name": "call_tool",
  "arguments": {
    "tool": "yelp.business.reviews",
    "input": {
      "business_id": "dDz2erKJ_Z2HMur0tQ_iJA",
      "sort": "newest"
    }
  }
}
```

Both return [the full response](/docs/call-response.md): the call's ID, status and cost, with this tool's result in `output`.

## Input

| Input | Type | Required | Default | Description |
| --- | --- | --- | --- | --- |
| `business_id` | string | Yes |  | Yelp's ID of the business, such as "dDz2erKJ_Z2HMur0tQ_iJA". 1 to 128 characters. Matches `^[A-Za-z0-9_-]+$`. |
| `sort` | string | No |  | Order of the reviews. Yelp's own order is relevance. One of `relevance`, `newest`, `highest_rating`, `lowest_rating`. |
| `rating` | integer | No |  | Keeps only the reviews that gave exactly this many stars. From 1 to 5. |
| `language` | string | No | `en` | Two-letter ISO 639-1 language code. Yelp returns the reviews written in it. Case-insensitive. One of the 184 values of the `languages` list: ISO 639-1 two-letter language codes, lowercase. |
| `page` | integer | No | `1` | Page of reviews, 10 to a page. A page past the last has no reviews. From 1 to 1001. |

## Output

A successful call returns these blocks in its `output`. A field not marked required can be `null`.

### reviews

A list of rows. Always present, possibly empty.

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `review_id` | string | No | Yelp's identifier of the review. |
| `rating` | number | Yes | Stars the reviewer gave, from 1 to 5. |
| `text` | string | No | What the reviewer wrote. |
| `url` | string | No | Address of the review on Yelp. |
| `author_name` | string | No |  |
| `author_id` | string | No | Yelp's identifier of the reviewer. |
| `author_url` | string | No | Address of the reviewer's Yelp profile. |
| `author_image_url` | string | No | Address of the reviewer's profile picture. |
| `published_at` | string | No | When the review was written, in ISO 8601. |
| `likes` | integer | No | Number of people who marked the review helpful. |
| `image_urls` | array of string | No | Address of each photo attached to the review. |
| `owner_response_text` | string | No | The owner's reply to the review. |
| `owner_response_published_at` | string | No | When the owner replied, in ISO 8601. |

### place

One object. Can be `null`.

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `title` | string | No | Name of the business. |
| `rating` | number | No | Average review rating, out of 5. |

## Example output

The `output` of a real call, each list cut to 3 items.

```json
{
  "reviews": [
    {
      "review_id": "bsc5JqLCP_A_MDzzPvWFKw",
      "rating": 5,
      "text": "Came to Cosmic with a friend. He suggested a Mexican food truck that is here. And of course we got drinks. \n\nHe got a frozen mango drink. And I got the black cherry lemonade drink. My black cherry, vodka based drink was so good. It was sweet, and cherry flavored. Loved it. Thought I would only have 1 so I closed out my tab. I ended up getting a second one. But my friend treated me to my second. \n\nMy friend also got the frozen coffee something. I didn't take a picture of the menu, and forgot what he got. I did have a sip of it, and wow, was that good. I need to come back here again, cause the food truck was great, the drinks were fantastic, and the whole area outside was perfect. I do have a friend coming to visit, so maybe we can come back and I can show her around.",
      "url": "https://www.yelp.com/biz/cosmic-austin?hrid=bsc5JqLCP_A_MDzzPvWFKw",
      "author_name": "Shannon G.",
      "author_id": "jT-pOXB4mpUA5N9Lu0ZN-g",
      "author_url": "https://www.yelp.com/user_details?userid=jT-pOXB4mpUA5N9Lu0ZN-g",
      "author_image_url": "https://s3-media0.fl.yelpcdn.com/photo/CkN3QEuWbjsATCyDPCDaXg/180s.jpg",
      "published_at": "2026-10-19T19:24:08Z",
      "likes": 33,
      "image_urls": [
        "https://s3-media0.fl.yelpcdn.com/bphoto/2EsUyPlJKgfDYKSYVyBGIw/o.jpg",
        "https://s3-media0.fl.yelpcdn.com/bphoto/7scHglsFO6hHCDRHzME4AA/o.jpg",
        "https://s3-media0.fl.yelpcdn.com/bphoto/47ds05MT4Y5TQF2yVo0zaA/o.jpg"
      ],
      "owner_response_text": null,
      "owner_response_published_at": null
    },
    {
      "review_id": "cLAjIjGT_HsbR1sOmI802g",
      "rating": 5,
      "text": "This is a fun place with drinks served up in the inside bar, then outside there are a bunch of food trucks, as well as many seating areas (including several with their own fire pits).  Service at the bar wasn't the most friendly I've seen.  It wasn't that busy, but the people behind the bar seemed put off to have to serve someone.  But the people in the various food trucks were very friendly (independent I assume).  And the atmosphere is super cool.",
      "url": "https://www.yelp.com/biz/cosmic-austin?hrid=cLAjIjGT_HsbR1sOmI802g",
      "author_name": "Kirk H.",
      "author_id": "_HV8_l0vrXqIPG91oFkT7w",
      "author_url": "https://www.yelp.com/user_details?userid=_HV8_l0vrXqIPG91oFkT7w",
      "author_image_url": "https://s3-media0.fl.yelpcdn.com/photo/3--oy_nSp27MZNmvyK70Ow/180s.jpg",
      "published_at": "2026-10-14T17:08:06Z",
      "likes": 0,
      "image_urls": null,
      "owner_response_text": "Hi, thank you so much for taking the time to leave a review. We’re glad you enjoyed the atmosphere, outdoor seating, fire pits, and variety of food trucks. We also appreciate your honest feedback about the bar service, and we’re sorry that part of your experience felt less welcoming. We’ll be sure to share your comments with the team as we continue working to provide a great experience for everyone. We hope to see you again soon!",
      "owner_response_published_at": "2026-10-16T14:12:56Z"
    },
    {
      "review_id": "BRMWkxDPKhqVkruHFIXxcQ",
      "rating": 1,
      "text": "Very poor service. I went on 10/8 at 8pm and the dirty blonde bartender with bumper sticker tattoos did not let me order a round on my tab that was already open. After waiting in a long line, I was the only one she ID'd.. even though my tab was open?! She refused to serve me, was very rude, and unwelcoming. I'll be sharing my experience on the socials until I hear back.",
      "url": "https://www.yelp.com/biz/cosmic-austin?hrid=BRMWkxDPKhqVkruHFIXxcQ",
      "author_name": "Frank M.",
      "author_id": "TuLrJN_eKYTCUsV3Ko53EA",
      "author_url": "https://www.yelp.com/user_details?userid=TuLrJN_eKYTCUsV3Ko53EA",
      "author_image_url": null,
      "published_at": "2026-10-09T01:47:49Z",
      "likes": 0,
      "image_urls": null,
      "owner_response_text": "Hi, thank you for bringing this to our attention. We’re sorry to hear about your experience and understand how frustrating it must have been to wait in line and then feel unwelcome when attempting to order. We take concerns about service seriously and will be addressing this with our team.",
      "owner_response_published_at": "2026-10-16T14:12:24Z"
    }
  ],
  "place": {
    "title": "Cosmic",
    "rating": 4.6
  }
}
```
