# BoligPortal Listing Detail API Documentation

Scrappa's `GET /api/boligportal/listing` returns the full record of one BoligPortal rental ad.

## Input

Pass the `url` returned by `search` (the full link or just the path). Only BoligPortal rental ad pages are accepted; the host is not taken from your input. A new-build project page returns `422` (`detail_not_supported`).

## What you get

Everything search returns, plus the full `description`, all `images` (including floor plans), `other_details`, `address` when BoligPortal shows it, `breadcrumbs` and `landlord_information`: number of listed rentals, last activity date, profile creation date and whether the landlord is verified with BankID.

## Landlord and agency

BoligPortal shows no landlord name or agency profile publicly. A separate agency endpoint does not exist.

## Cost note

This route loads the full ad page, which is heavier than the JSON routes. Use `listings` when you only need the core fields.

- **Documentation:** [https://scrappa.co/docs/boligportal-api/boligportal_listing](https://scrappa.co/docs/boligportal-api/boligportal_listing)
- **API group:** BoligPortal API
- **Endpoint:** `GET https://scrappa.co/api/boligportal/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 |
| --- | --- | --- | --- |
| `url` | string | Yes | Ad url or path from search, for example /lejligheder/k%C3%B8benhavn/53m2-2-vaer-id-5450948. |

## Example request

```bash
#!/bin/bash

curl -X GET \
    -H "x-api-key: YOUR_API_KEY_HERE" \
    "https://scrappa.co/api/boligportal/listing?url=%2Flejligheder%2Fk%25C3%25B8benhavn%2F53m2-2-vaer-id-5450948"
```

## Example response

```json
{
    "success": true,
    "listing": {
        "id": 5450948,
        "url": "https://www.boligportal.dk/lejligheder/k%C3%B8benhavn/53m2-2-vaer-id-5450948",
        "title": "Perfekt delevenlig 2 v\u00e6relses Valby lejlighed",
        "category": "rental_apartment",
        "state": "ACTIVE_APPROVED",
        "city": "K\u00f8benhavn",
        "city_area": "Valby",
        "city_level_1": "k\u00f8benhavn",
        "city_level_2": "valby",
        "city_level_3": null,
        "postal_code": "2500",
        "street_name": "Gammel K\u00f8ge Landevej",
        "street_number": "178",
        "floor": 2,
        "rooms": 2,
        "size_m2": 53,
        "monthly_rent": 10000,
        "currency": "DKK",
        "monthly_rent_extra_costs": 500,
        "deposit": 30000,
        "prepaid_rent": 0,
        "rental_period": 0,
        "available_from": null,
        "advertised_date": "2026-10-24T14:53:16.021199+00:00",
        "created": "2024-08-11T16:12:32.761437+00:00",
        "energy_rating": "D",
        "energy_label_valid_to": "2030-11-21",
        "features": {
            "pet_friendly": true,
            "furnished": false,
            "balcony": true,
            "parking": true,
            "elevator": false,
            "shareable": true,
            "student_only": false,
            "senior_friendly": false,
            "electric_charging_station": null,
            "dishwasher": true,
            "washing_machine": null,
            "dryer": null,
            "social_housing": false,
            "newbuild": false
        },
        "images": [
            {
                "url": "https://image-lambda.boligportal.dk/8a0bcaa57234198fed3464214dad171a",
                "is_floor_plan": false
            }
        ],
        "location": {
            "lat": 55.645,
            "lng": 12.503
        },
        "is_newbuild": false,
        "social_housing": false,
        "has_video": false,
        "digital_showing": false,
        "open_house": null,
        "is_promoted": false,
        "has_owner": true,
        "description": "Lys og venlig 2 v\u00e6relses lejlighed med altan, t\u00e6t p\u00e5 S-tog og Valby Langgade.",
        "other_details": null,
        "address": null,
        "landlord_information": {
            "num_rentables": 13,
            "last_activity_date": "2026-10-25",
            "profile_created": "2019-06-01",
            "bank_id_verified": false
        },
        "breadcrumbs": [
            {
                "text": "Lejligheder",
                "url": "https://www.boligportal.dk/lejligheder/"
            }
        ]
    },
    "meta": {
        "endpoint_family": "listing",
        "billable": true
    }
}
```

## Errors

| Status | Error | Description |
| --- | --- | --- |
| 422 | Unsupported Ad Page | The `url` is not a BoligPortal rental ad path (`invalid_url`), or it is a new-build project page (`detail_not_supported`). Non-billable. |
| 404 | Not Found | BoligPortal has nothing for this request (`not_found`): an ad that is gone, a list of ids where none exists, or a postal code without a town. Non-billable. |
| 422 | Validation Error | A query parameter is missing, unknown or unusable. Unknown parameters are rejected, never ignored. Sale, bathroom and agency filters do not exist. Non-billable. |
| 503 | Upstream Unavailable | BoligPortal could not be reached after retries, blocked the request, returned another page than asked for, or returned a page this API could not read (`upstream_unavailable`, `upstream_blocked`, `offset_mismatch`, `parser_drift`, `transport_unavailable`, `no_exit_available`). 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)
