# PAP Listing API Documentation

<p><strong>PAP Listing API</strong> returns the full record of one listing: title, description, price, rooms, bedrooms, living area, address, features, all photos, energy classes and the seller name. Pass the <code>id</code> from a search result. Pass the <code>url</code> of the same result as well when you can, because it makes the lookup more reliable.</p><p><code>geo</code>, <code>energy</code> and <code>reference</code> are filled only when the page shows them, otherwise they are null. Phone numbers and other private contact data are never returned. A listing that no longer exists returns 404 and is not billed.</p>

- **Documentation:** [https://scrappa.co/docs/pap-fr-api/pap_fr_listing](https://scrappa.co/docs/pap-fr-api/pap_fr_listing)
- **API group:** PAP API
- **Endpoint:** `GET https://scrappa.co/api/pap-fr/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 |
| --- | --- | --- | --- |
| `id` | string | Yes | Numeric listing id from a search result. Example: 458401326. |
| `url` | string | No | The url field of the same search result. Optional. |

## Example response

```json
{
    "data": {
        "id": "458401326",
        "geo": null,
        "url": "https://www.pap.fr/annonces/appartement-paris-17e-r458401326",
        "price": 740000,
        "rooms": 3,
        "title": "Appartement 3 pi\u00e8ces 70 m\u00b2 Paris 17E",
        "energy": {
            "dpe": "D",
            "ges": null
        },
        "images": [
            "https://cdn.pap.fr/photos/pap/d8/e7/d8e7d6645b989afdfa85d3a17129671f/d-p3.jpg"
        ],
        "seller": {
            "name": "Particulier",
            "type": "private"
        },
        "address": {
            "city": "Paris 17E",
            "country": "FR",
            "postal_code": "75017"
        },
        "heading": "Paris 17E 70 m\u00b2 740.000 \u20ac",
        "bedrooms": 2,
        "currency": "EUR",
        "features": {
            "Pi\u00e8ces": "3",
            "Surface": "70 m\u00b2",
            "Chambres": "2"
        },
        "reference": null,
        "surface_m2": 70,
        "description": "Id\u00e9alement situ\u00e9, dans une rue calme, proche de tous commerces.",
        "listing_type": "sale"
    },
    "meta": {
        "billable": true,
        "endpoint_family": "listing"
    },
    "success": true
}
```

## Errors

| Status | Error | Description |
| --- | --- | --- |
| 422 | Validation Error | A parameter is missing or outside its allowed values. This response is not billable. |
| 404 | Not Found | The listing does not exist or was removed. This response is not billable. |
| 503 | Upstream Unavailable | PAP could not be reached, or the page could not be confirmed as the requested one. Retry shortly. This response is not billable. |

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