# Zillow Agent Reviews

<p>Get the client reviews of an agent, page by page. Each review has the rating, the full text, the transaction summary, the date, the reviewer name, four sub-ratings (local knowledge, process expertise, responsiveness, negotiation skills) and the agent reply when there is one.</p><h2>Sorting and filtering</h2><p>Sort by date or by rating, ascending or descending. Filter by service type: 1 bought, 2 sold, 3 bought and sold, 4 to 7 and 999 connected but did not work out, 9 to 12 rental or property management.</p><h2>Paging</h2><p>Pages hold 10 to 50 reviews. <code>has_more</code> is false on the last page, which holds the remaining reviews. A page past the end returns an empty list.</p><p>Costs 1 credit per request.</p>

- **Documentation:** [https://scrappa.co/docs/zillow-api/zillow_agent_reviews](https://scrappa.co/docs/zillow-api/zillow_agent_reviews)
- **API group:** Zillow API
- **Endpoint:** `GET https://scrappa.co/api/zillow/agent-reviews`

## Authentication

Send your Scrappa API key in the `X-API-KEY` request header. Paid endpoints also support accountless x402 payments when called without an API key.

## Parameters

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `encoded_zuid` | string | Yes | The encoded_zuid of the agent, from the agent search or agent profile. |
| `page` | integer | No | Page number, 1-based. |
| `page_size` | integer | No | Reviews per page, 10 to 50. Default 10. |
| `sort_type` | string | No | date (default) or rating. |
| `sort_order` | string | No | desc (default, newest or best first) or asc. |
| `service_provided_type_ids[]` | array | No | Only reviews for these service types: 1, 2, 3, 4, 5, 6, 7, 9, 10, 11, 12 or 999. |

## Example request

```bash
#!/bin/bash

curl -X GET \
    -H "x-api-key: YOUR_API_KEY_HERE" \
    "https://scrappa.co/api/zillow/agent-reviews?encoded_zuid=X1-ZUwfyvmb7rwtmx_8b74a&page=1&page_size=10&sort_type=date&sort_order=desc"
```

## Example response

```json
{
    "data": {
        "encoded_zuid": "X1-ZUwfyvmb7rwtmx_8b74a",
        "page": 1,
        "page_size": 10,
        "count": 10,
        "has_more": true,
        "reviews": [
            {
                "review_id": "9381171",
                "rating": 5,
                "comment": "Great to work with.",
                "transaction_summary": "Bought a home in 2026.",
                "date": "10/28/2026",
                "reviewer": "A. Buyer"
            }
        ]
    }
}
```

## Errors

| Status | Error | Description |
| --- | --- | --- |
| 400 | The request validation failed | A query parameter is missing, malformed, or outside its documented range. This is the only Zillow response that carries no error code: the body has a message and a field list and nothing else, so match it on the 400 status. |
| 422 | No research dataset matches that family and geography | The requested research file does not exist for the combination given. |
| 422 | More than one research dataset matches | The family, geography and variant given do not identify a single research file. |
| 422 | No accuracy figures are published for that region | The named state or metropolitan area publishes no estimate-accuracy data. |
| 422 | The upstream rejected the request | Zillow answered with a deterministic 4xx. |
| 422 | The building returned does not match the requested address | The decoded building token resolved to a building at a different address than the slug names. |
| 503 | The listing source answered with a block or rate-limit page | The request reached the source, but what came back was a challenge or rate-limit page rather than the data. |
| 503 | The listing source returned a server error | The request was served and answered with a 5xx. |
| 503 | The listing source did not answer in time | The request was sent and no answer came back before the deadline. |
| 503 | The request could not be sent | No approved exit could be reached, so the request never reached the listing source. |
| 503 | No approved exit is available | There was no usable approved exit to send the request through. |
| 503 | The upstream returned a document this integration cannot read | The publisher changed the shape of a response or served a document that is not the expected file. |

## More Scrappa resources

- [API documentation](https://scrappa.co/docs)
- [Full LLM-readable API reference](https://scrappa.co/llms-full.txt)
- [OpenAPI specification](https://scrappa.co/docs/api.json)
- [Pricing](https://scrappa.co/pricing)
