# InfoCasas Property Detail API Documentation

Scrappa's `GET /api/infocasas/property` returns the full record of one InfoCasas listing, addressed by the numeric `id` or the short `code` that search returns. Send exactly one of them.

## What you get

Price (amount, currency, USD value, whether the price is hidden, admin-included price), common expenses, bedrooms, bathrooms, rooms, garage, all areas, floor, construction year, address and coordinates, the location hierarchy, every image with its tag, video and 3D tour links, facilities, the technical sheet, the dates, and the listing agent with a masked phone and a WhatsApp flag.

When the agent hides the exact address, `address` is `null` and `address_hidden` is `true`. A price that the agent hides is `null` with `price.hidden` set to `true`. Areas nobody entered are `null`, never `0`.

## Errors

An id or code that does not exist in the chosen country returns a non-billable `404`. Phone numbers and e-mail addresses typed into free text are removed.

- **Documentation:** [https://scrappa.co/docs/infocasas-api/infocasas_property](https://scrappa.co/docs/infocasas-api/infocasas_property)
- **API group:** InfoCasas API
- **Endpoint:** `GET https://scrappa.co/api/infocasas/property`

## 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 |
| --- | --- | --- | --- |
| `id` | string | No | Numeric listing id from search. Send id or code. |
| `code` | string | No | Listing code from search. Send id or code. |
| `country` | string | No | uy (default), py or bo. |

## Example request

```bash
#!/bin/bash

curl -X GET \
    -H "x-api-key: YOUR_API_KEY_HERE" \
    "https://scrappa.co/api/infocasas/property?id=194453624&country=uy"
```

## Example response

```json
{
    "success": true,
    "country": "uy",
    "listing": {
        "id": 194453624,
        "code": "O7DD3A",
        "title": "Alquiler apartamento de 2 dormitorios en el centro",
        "description": "Apartamento de 39 m2 en un segundo piso.",
        "url": "https://www.infocasas.com.uy/alquiler-apartamento-de-2-dormitorios-en-el-centro/194453624",
        "operation_type": {
            "id": 2,
            "name": "Alquiler"
        },
        "property_type": {
            "id": 2,
            "name": "Apartamento"
        },
        "price": {
            "amount": 25000,
            "currency": "$",
            "currency_id": 2,
            "hidden": false,
            "admin_included": 25000,
            "amount_usd": 624,
            "admin_included_usd": 624
        },
        "common_expenses": {
            "amount": null,
            "currency": null
        },
        "address": "Ejido 1500",
        "address_hidden": false,
        "latitude": -34.9014898,
        "longitude": -56.1873848,
        "location": {
            "state": {
                "id": "a475c197-e6d7-4833-aa87-0ffd96a879ec",
                "name": "Montevideo"
            },
            "neighbourhood": {
                "id": "3c2b142f-c4f2-4f02-8ed8-cb0fe7f08696",
                "name": "Centro"
            }
        },
        "bedrooms": 2,
        "bathrooms": 1,
        "rooms": 3,
        "garage": 0,
        "areas": {
            "m2": 39,
            "built": null,
            "terrain": null,
            "terrace": null,
            "apto": 39,
            "hectares": null
        },
        "construction_year": 1975,
        "images": [
            {
                "url": "https://cdn1.infocasas.com.uy/repo/img/example.jpg",
                "tag": null
            }
        ],
        "image_count": 24,
        "video": null,
        "tour_3d": null,
        "facilities": [
            {
                "id": 13,
                "name": "Parrillero / Barbacoa",
                "group": "Confort del apartamento"
            }
        ],
        "technical_sheet": [
            {
                "field": "bedrooms",
                "label": "Dormitorios",
                "value": "2"
            }
        ],
        "owner": {
            "id": 210,
            "name": "Example Inmobiliaria",
            "type": "inmobiliaria",
            "logo": "https://cdn1.infocasas.com.uy/repo/img/logo.jpg",
            "masked_phone": "+5989",
            "has_whatsapp": true,
            "subsidiaries": []
        },
        "created_at": "2026-10-25",
        "updated_at": "2026-10-25",
        "is_project": false,
        "sold": false,
        "active": true,
        "sea_view": null,
        "barter": false
    },
    "meta": {
        "billable": true,
        "attempts": 1,
        "last_status": 200,
        "endpoint_family": "property"
    }
}
```

## Errors

| Status | Error | Description |
| --- | --- | --- |
| 422 | Unsupported Filter or Page | A filter name this API does not support, an unusable value, an order code that is not offered, or a page past the first 10000 results (`unknown_filter`, `blocked_filter`, `page_out_of_range`). Non-billable. |
| 404 | Not Found | Nothing exists with that id or code in the chosen country (`not_found`). Non-billable. |
| 422 | Validation Error | A query parameter failed validation. Non-billable. |
| 503 | Upstream Unavailable | InfoCasas could not be reached after retries, or answered with a body this API cannot read (`upstream_unavailable`, `upstream_blocked`, `parser_drift`). Retryable and never billed. Clients are never rate limited. |

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