> ## Documentation Index
> Fetch the complete documentation index at: https://docs.scrapebadger.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Get Listing Detail

> Full Immobiliare listing detail — price + €/m², surface, energy class, condo fees, GPS, all photos, per-unit breakdown, agency and agent contacts.

Fetch a single listing's complete detail by its numeric id (from
[`/search`](/api-reference/endpoint/immobiliare/search) or a portal URL such as
`immobiliare.it/annunci/121584766/`). The response is the full `Listing`
object — everything the search card has, plus the full description, all photos
and the complete per-unit `properties[]` breakdown.

## Path Parameters

<ParamField path="id" type="integer" required>
  Immobiliare listing id, e.g. `121584766`.
</ParamField>

## Query Parameters

<ParamField query="market" type="string" default="it">
  Market the listing belongs to. One of `it`, `es`, `gr`, `lu`.
</ParamField>

## Response

The full `Listing`:

<ResponseField name="id" type="integer">Immobiliare listing id.</ResponseField>
<ResponseField name="uuid" type="string">Stable listing UUID.</ResponseField>
<ResponseField name="url" type="string">Canonical listing URL on the market's portal.</ResponseField>

<ResponseField name="title" type="string" />

<ResponseField name="contract" type="string">`sale` or `rent`.</ResponseField>
<ResponseField name="is_new" type="boolean">New construction.</ResponseField>
<ResponseField name="luxury" type="boolean">Luxury (LuxuryEstate) listing.</ResponseField>
<ResponseField name="is_project" type="boolean">Off-plan / development project.</ResponseField>
<ResponseField name="is_mosaic" type="boolean">Multi-unit "mosaic" listing grouping several units.</ResponseField>
<ResponseField name="visibility" type="string">Paid visibility tier, e.g. `premium`, `top`, `star`.</ResponseField>
<ResponseField name="typology" type="string">Property typology, e.g. `Apartment`, `Villa`.</ResponseField>
<ResponseField name="category" type="string">e.g. `residential`.</ResponseField>

<ResponseField name="price" type="object">
  <Expandable title="price">
    <ResponseField name="value" type="integer">Price in EUR (null when hidden).</ResponseField>
    <ResponseField name="formatted" type="string">e.g. `€ 285.000`.</ResponseField>
    <ResponseField name="min_value" type="integer">Range lower bound (project/mosaic listings).</ResponseField>
    <ResponseField name="max_value" type="integer">Range upper bound.</ResponseField>
    <ResponseField name="currency" type="string">Always `EUR`.</ResponseField>
    <ResponseField name="visible" type="boolean">`false` = price on request.</ResponseField>
    <ResponseField name="price_per_sqm" type="string">e.g. `3.353 €/m²`.</ResponseField>
    <ResponseField name="loan_from" type="string">Estimated loan installment, e.g. `€ 741/month`.</ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="location" type="object">
  <Expandable title="location">
    <ResponseField name="address" type="string" />

    <ResponseField name="latitude" type="number" />

    <ResponseField name="longitude" type="number" />

    <ResponseField name="region" type="string" />

    <ResponseField name="province" type="string" />

    <ResponseField name="city" type="string" />

    <ResponseField name="macrozone" type="string" />

    <ResponseField name="microzone" type="string" />

    <ResponseField name="zipcode" type="string" />

    <ResponseField name="nation_code" type="string">e.g. `IT`.</ResponseField>

    <ResponseField name="nation_name" type="string" />
  </Expandable>
</ResponseField>

<ResponseField name="surface" type="string">e.g. `85 m²`.</ResponseField>

<ResponseField name="rooms" type="string" />

<ResponseField name="bathrooms" type="string" />

<ResponseField name="floor" type="string" />

<ResponseField name="energy_class" type="string" />

<ResponseField name="description" type="string">Full listing description.</ResponseField>

<ResponseField name="photo_count" type="integer" />

<ResponseField name="has_virtual_tour" type="boolean" />

<ResponseField name="photos" type="Photo[]">
  All listing photos.

  <Expandable title="Photo">
    <ResponseField name="id" type="integer" />

    <ResponseField name="caption" type="string" />

    <ResponseField name="small" type="string">Small image URL.</ResponseField>
    <ResponseField name="medium" type="string">Medium image URL.</ResponseField>
    <ResponseField name="large" type="string">Large image URL.</ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="agency" type="object">
  <Expandable title="agency">
    <ResponseField name="id" type="integer">Agency id — feed to [`/agencies/{id}`](/api-reference/endpoint/immobiliare/get-agency).</ResponseField>
    <ResponseField name="type" type="string">e.g. `agency`, `builder`.</ResponseField>

    <ResponseField name="display_name" type="string" />

    <ResponseField name="label" type="string" />

    <ResponseField name="url" type="string">Agency profile URL on the portal.</ResponseField>

    <ResponseField name="is_paid" type="boolean" />

    <ResponseField name="guaranteed" type="boolean" />

    <ResponseField name="show_logo" type="boolean" />

    <ResponseField name="image_small" type="string" />

    <ResponseField name="image_large" type="string" />

    <ResponseField name="phones" type="string[]" />
  </Expandable>
</ResponseField>

<ResponseField name="agent" type="object">
  <Expandable title="agent">
    <ResponseField name="type" type="string" />

    <ResponseField name="display_name" type="string" />

    <ResponseField name="label" type="string" />

    <ResponseField name="image_gender" type="string" />

    <ResponseField name="image_url" type="string" />

    <ResponseField name="phones" type="string[]" />
  </Expandable>
</ResponseField>

<ResponseField name="properties_count" type="integer">Number of units in this listing.</ResponseField>

<ResponseField name="properties" type="PropertyUnit[]">
  Per-unit breakdown (a plain listing has one main unit; projects/mosaics have
  several).

  <Expandable title="PropertyUnit">
    <ResponseField name="is_main" type="boolean" />

    <ResponseField name="surface" type="string">e.g. `85 m²`.</ResponseField>
    <ResponseField name="surface_value" type="number">Numeric surface (m²).</ResponseField>

    <ResponseField name="rooms" type="string" />

    <ResponseField name="bathrooms" type="string" />

    <ResponseField name="bedrooms" type="string" />

    <ResponseField name="floor" type="string">e.g. `3° floor, with lift`.</ResponseField>

    <ResponseField name="elevator" type="boolean" />

    <ResponseField name="garage" type="string">e.g. `1 in garage/box`.</ResponseField>
    <ResponseField name="heating" type="string">e.g. `Centralized, radiators, gas powered`.</ResponseField>

    <ResponseField name="energy_class" type="string" />

    <ResponseField name="condominium_fees" type="string">e.g. `€ 120/month`.</ResponseField>

    <ResponseField name="typology" type="string" />

    <ResponseField name="category" type="string" />

    <ResponseField name="caption" type="string" />

    <ResponseField name="description" type="string" />

    <ResponseField name="price" type="string" />

    <ResponseField name="features" type="Feature[]">
      <Expandable title="Feature">
        <ResponseField name="type" type="string">e.g. `balcony`.</ResponseField>

        <ResponseField name="label" type="string" />

        <ResponseField name="compact_label" type="string" />
      </Expandable>
    </ResponseField>

    <ResponseField name="ga4_features" type="string[]">Machine-readable feature slugs.</ResponseField>
    <ResponseField name="views" type="string[]">Views, e.g. `sea view`.</ResponseField>
    <ResponseField name="photos" type="Photo[]">Same shape as the listing-level `photos[]`.</ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="creation_date" type="string">When the listing was published.</ResponseField>
<ResponseField name="last_modified_utc" type="string">Last modification (UTC, ISO 8601).</ResponseField>
<ResponseField name="last_modified_at" type="string">Last modification (portal-local formatting).</ResponseField>
<ResponseField name="features_full" type="string[]">All feature labels, flattened.</ResponseField>

## Example

<CodeGroup>
  ```javascript Node.js theme={null}
  const res = await fetch(
    "https://api.scrapebadger.com/v1/immobiliare/listings/121584766?market=it",
    { headers: { "X-API-Key": process.env.SCRAPEBADGER_API_KEY } },
  );
  const listing = await res.json();
  ```

  ```python Python theme={null}
  import requests

  res = requests.get(
      "https://api.scrapebadger.com/v1/immobiliare/listings/121584766",
      headers={"X-API-Key": "YOUR_API_KEY"},
      params={"market": "it"},
  )
  listing = res.json()
  ```

  ```bash cURL theme={null}
  curl "https://api.scrapebadger.com/v1/immobiliare/listings/121584766?market=it" \
    -H "X-API-Key: YOUR_API_KEY"
  ```
</CodeGroup>

```json Response theme={null}
{
  "id": 121584766,
  "uuid": "c1f8a3f2-9a41-4a6e-bb3e-1e2f9d3a7c55",
  "url": "https://www.immobiliare.it/annunci/121584766/",
  "title": "Trilocale via Padova 120, Cimiano, Milano",
  "contract": "sale",
  "is_new": false,
  "luxury": false,
  "is_project": false,
  "is_mosaic": false,
  "visibility": "premium",
  "typology": "Apartment",
  "category": "residential",
  "price": {
    "value": 285000,
    "formatted": "€ 285.000",
    "min_value": null,
    "max_value": null,
    "currency": "EUR",
    "visible": true,
    "price_per_sqm": "3.353 €/m²",
    "loan_from": "€ 741/month"
  },
  "location": {
    "address": "via Padova, 120",
    "latitude": 45.4972,
    "longitude": 9.2296,
    "region": "Lombardia",
    "province": "Milano",
    "city": "Milano",
    "macrozone": "Cimiano, Crescenzago, Adriano",
    "microzone": "Padova",
    "zipcode": "20127",
    "nation_code": "IT",
    "nation_name": "Italia"
  },
  "surface": "85 m²",
  "rooms": "3",
  "bathrooms": "2",
  "floor": "3",
  "energy_class": "E",
  "description": "Luminoso trilocale al terzo piano con ascensore, doppia esposizione est/ovest, composto da soggiorno con balcone, cucina abitabile, due camere, doppi servizi e cantina. Riscaldamento centralizzato con contabilizzatori, portineria mezza giornata.",
  "photo_count": 24,
  "has_virtual_tour": true,
  "photos": [
    {
      "id": 987654321,
      "caption": "soggiorno",
      "small": "https://pic.im-cdn.it/image/987654321/xsmall.jpg",
      "medium": "https://pic.im-cdn.it/image/987654321/medium.jpg",
      "large": "https://pic.im-cdn.it/image/987654321/large.jpg"
    },
    {
      "id": 987654322,
      "caption": "cucina",
      "small": "https://pic.im-cdn.it/image/987654322/xsmall.jpg",
      "medium": "https://pic.im-cdn.it/image/987654322/medium.jpg",
      "large": "https://pic.im-cdn.it/image/987654322/large.jpg"
    }
  ],
  "agency": {
    "id": 41235,
    "type": "agency",
    "display_name": "Tecnocasa Milano Crescenzago",
    "label": "Tecnocasa",
    "url": "https://www.immobiliare.it/agenzie-immobiliari/41235/tecnocasa-milano/",
    "is_paid": true,
    "guaranteed": true,
    "show_logo": true,
    "image_small": "https://pic.im-cdn.it/agency/41235/small.png",
    "image_large": "https://pic.im-cdn.it/agency/41235/large.png",
    "phones": ["+39 02 2846120"]
  },
  "agent": {
    "type": "agent",
    "display_name": "Marco Rossi",
    "label": "Agente",
    "image_gender": "male",
    "image_url": "https://pic.im-cdn.it/agent/998877/photo.jpg",
    "phones": ["+39 340 5512347"]
  },
  "properties_count": 1,
  "properties": [
    {
      "is_main": true,
      "surface": "85 m²",
      "surface_value": 85,
      "rooms": "3",
      "bathrooms": "2",
      "bedrooms": "2",
      "floor": "3° floor, with lift",
      "elevator": true,
      "garage": "1 in garage/box",
      "heating": "Centralized, radiators, gas powered",
      "energy_class": "E",
      "condominium_fees": "€ 120/month",
      "typology": "Apartment",
      "category": "Residential",
      "caption": "Main unit",
      "description": "Trilocale ristrutturato nel 2021...",
      "price": "€ 285.000",
      "features": [
        { "type": "balcony", "label": "Balcony", "compact_label": "Balcony" },
        { "type": "cellar", "label": "Cellar", "compact_label": "Cellar" },
        { "type": "fitted_wardrobes", "label": "Fitted wardrobes", "compact_label": "Wardrobes" }
      ],
      "ga4_features": ["balcony", "cellar", "fitted_wardrobes", "external_exposure"],
      "views": [],
      "photos": [
        {
          "id": 987654321,
          "caption": "soggiorno",
          "small": "https://pic.im-cdn.it/image/987654321/xsmall.jpg",
          "medium": "https://pic.im-cdn.it/image/987654321/medium.jpg",
          "large": "https://pic.im-cdn.it/image/987654321/large.jpg"
        }
      ]
    }
  ],
  "creation_date": "2026-05-18",
  "last_modified_utc": "2026-07-02T09:14:05Z",
  "last_modified_at": "2026-07-02 11:14",
  "features_full": ["balcony", "cellar", "fitted wardrobes", "concierge"]
}
```

<Note>
  Each listing-detail request costs **10 credits**. Failed requests are not charged.
</Note>
