# Metrocuadrado Property API Documentation

Scrappa's `GET /api/metrocuadrado/property` endpoint returns the full record for one listing as structured JSON: the description, all images, the feature list, the price split, the agency attribution and the geographic coordinates. Use an id from `GET /api/metrocuadrado/search`.

Search cards do not carry coordinates even though the underlying index has them for the large majority of listings, so this is the endpoint to read latitude and longitude from. It is also the endpoint that carries the full description, which search cards omit.

Contact details published on a listing are removed before the response is returned; the API returns listing data only. The source publishes no agency directory, so an agency can only be read as the attribution on a listing, not looked up as an entity.

An id the source no longer serves returns a non-billable `listing_not_found` error rather than an empty success.

- **Documentation:** [https://scrappa.co/docs/metrocuadrado-api/metrocuadrado_property](https://scrappa.co/docs/metrocuadrado-api/metrocuadrado_property)
- **API group:** Metrocuadrado API
- **Endpoint:** `GET https://scrappa.co/api/metrocuadrado/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 | Yes | Listing id from the search endpoint, for example 20622-M6020965 or 17004-C0001-10. |

## Example request

```bash
#!/bin/bash

curl -X GET \
    -H "x-api-key: YOUR_API_KEY_HERE" \
    "https://scrappa.co/api/metrocuadrado/property?id=20622-M6020965"
```

## Example response

```json
{
    "success": true,
    "listing": {
        "id": "20622-M6020965",
        "title": "Apartamento en venta, Chapinero, Bogot\u00e1",
        "subtitle": "Sector Chapinero Alto",
        "description": "Apartamento de 380 m2 en edificio familiar, con rooms, cocina integral y dos ascensores.",
        "url": "https://www.metrocuadrado.com/inmueble/apartamento-venta/chapinero/20622-M6020965",
        "type": "Apartamento",
        "project": null,
        "agency": {
            "name": "Inmobiliaria Ejemplo",
            "id": 20622
        },
        "price": {
            "sale": 1650000000,
            "lease": null,
            "admin": 1080000
        },
        "features": {
            "bedrooms": 5,
            "extras": [
                {
                    "title": "Amenidades",
                    "items": [
                        "Piscina",
                        "Gimnasio"
                    ]
                }
            ]
        },
        "area": 380,
        "parking": 4,
        "location": {
            "city": "Bogota",
            "neighborhood": "Chapinero",
            "latitude": 4.6486,
            "longitude": -74.0636
        },
        "images": [
            "https://multimedia.metrocuadrado.com/20622-M6020965/20622-M6020965_1_p.jpg"
        ],
        "video": null,
        "business_type_id": 1,
        "property_type": 1,
        "is_occasional": false,
        "is_used": true,
        "is_sale": true,
        "is_lease": false
    },
    "meta": {
        "endpoint_family": "property"
    }
}
```

## Errors

| Status | Error | Description |
| --- | --- | --- |
| 422 | Error | The id is missing or malformed. Nothing is charged. |
| 404 | Error | The source no longer serves this listing. Not charged. |
| 503 | Error | The source was unreachable. Not charged, safe to retry. |

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