# VivaReal Property Detail API Documentation

Scrappa's `GET /api/vivareal/listing` returns the full record for one listing id from the search endpoint, in the same field shape as a search row.

## What you get

All search fields plus `url`, the portal's site-relative canonical path, and `units`, the units of a development with their own prices and areas. The advertiser block holds business identity only. Phone and WhatsApp numbers are never returned.

An unknown id returns 404 `not_found` and is not billed. A valid answer is billed, including an empty page. Failures never consume credits.

- **Documentation:** [https://scrappa.co/docs/vivareal-api/vivareal_listing](https://scrappa.co/docs/vivareal-api/vivareal_listing)
- **API group:** VivaReal & ZAP Imoveis API
- **Endpoint:** `GET https://scrappa.co/api/vivareal/listing`

## 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 |
| --- | --- | --- | --- |
| `portal` | string | No | ZAP (default) for ZAP Imoveis or VIVAREAL for VivaReal. Both use the same fields and filters. |
| `id` | string | Yes | Numeric listing id from the search endpoint. |

## Example request

```bash
#!/bin/bash

curl -X GET \
    -H "x-api-key: YOUR_API_KEY_HERE" \
    "https://scrappa.co/api/vivareal/listing?portal=ZAP&id=2814207417"
```

## Example response

```json
{
    "success": true,
    "listing": {
        "id": "2814207417",
        "external_id": "9015A005WH",
        "title": "Apartamento com 2 quartos a venda e para alugar em Pinheiros, Sao Paulo",
        "description": "Unidade disponivel em um dos empreendimentos mais sofisticados de Sao Paulo.",
        "listing_type": "USED",
        "property_type": "UNIT",
        "unit_types": [
            "APARTMENT"
        ],
        "unit_sub_types": [],
        "usage_types": [
            "RESIDENTIAL"
        ],
        "construction_status": null,
        "publication_type": "STANDARD",
        "show_price": true,
        "accepts_exchange": false,
        "prices": [
            {
                "business": "RENTAL",
                "price": 12800,
                "condo_fee": 2060,
                "iptu": null,
                "iptu_period": "YEARLY",
                "rent_total": 14860,
                "rent_period": "MONTHLY"
            },
            {
                "business": "SALE",
                "price": 2650000,
                "condo_fee": 2060,
                "iptu": null,
                "iptu_period": "YEARLY",
                "rent_total": null,
                "rent_period": null
            }
        ],
        "usable_area_m2": 85,
        "total_area_m2": 85,
        "bedrooms": 2,
        "bathrooms": 2,
        "suites": 2,
        "parking_spaces": 2,
        "floors": [],
        "unit_floor": null,
        "address": {
            "street": null,
            "street_number": null,
            "neighborhood": "Pinheiros",
            "zone": "Zona Oeste",
            "city": "Sao Paulo",
            "state": "Sao Paulo",
            "state_code": "SP",
            "zip_code": "05414020",
            "full_address": "Rua Francisco Leitao Pinheiros Sao Paulo SP",
            "location_id": "BR>Sao Paulo>NULL>Sao Paulo>Zona Oeste>Pinheiros",
            "lat": -23.561,
            "lon": -46.681,
            "approximate": true,
            "radius_m": 250,
            "precision": "GEOMETRIC_CENTER",
            "h3": [
                {
                    "index": "89a8100eab3ffff",
                    "resolution": 9
                }
            ],
            "pois": [
                "BS:Rua Henrique Schaumann, 462"
            ]
        },
        "amenities": [],
        "images": [
            {
                "id": "439a18da4c6f6047a797e444ec0520c0",
                "type": "IMAGE",
                "url": "https://resizedimgs.zapimoveis.com.br/img/vr-listing/439a18da4c6f6047a797e444ec0520c0/photo.jpg?action=fit-in&dimension=1024x768",
                "width": 1024,
                "height": 768
            }
        ],
        "advertiser": {
            "id": "cef4b87e-6256-8bb2-b798-cf23e10cd883",
            "legacy_id": 810901,
            "legacy_zap_id": null,
            "name": "Example Imoveis Ltda",
            "logo_url": "https://resizedimgs.zapimoveis.com.br/img/vr-listing/718513a5c1a190eb20c1107deb8b40dd/logo.jpg?action=fit-in&dimension=200x200",
            "license_number": null,
            "tier": "diamond",
            "trust_score": null,
            "created_at": "2023-07-26T21:29:17Z",
            "show_address": false,
            "minisite": null
        },
        "url": "/imovel/venda-apartamento-2-quartos-pinheiros-zona-oeste-sao-paulo-sp-85m2-id-2814207417/",
        "created_at": "2025-06-14T19:02:35.799Z",
        "updated_at": "2026-09-24T06:27:41.926Z",
        "stamps": [],
        "status": "ACTIVE",
        "units": []
    },
    "meta": {
        "billable": true,
        "endpoint_family": "listing",
        "portal": "ZAP",
        "attempts": 1
    }
}
```

## Frequently asked questions

### Is this the official VivaReal or ZAP API?

No. Scrappa is an independent service and is not affiliated with VivaReal, ZAP Imoveis or their owners. Neither portal publishes a developer API.

### Are failed requests charged?

A valid answer is billed, including an empty page. Failures never consume credits.

## Related endpoints

- [Advertiser Profile](https://scrappa.co/docs/vivareal-api/vivareal_advertiser)

## 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)
