# Daft.ie Search

Returns full listing rows rather than summary cards. The section must be one of the eleven Daft.ie sections; anything else is rejected before a request leaves the server. Requesting a geo area without the full coordinate set is rejected rather than silently widened to the whole country.

- **Documentation:** [https://scrappa.co/docs/daft-ie-api/daft_ie_search](https://scrappa.co/docs/daft-ie-api/daft_ie_search)
- **API group:** Daft.ie API
- **Endpoint:** `GET https://scrappa.co/api/daft-ie/search`

## 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 |
| --- | --- | --- | --- |
| `section` | string | Yes | Daft.ie section: residential-for-sale, residential-to-rent, commercial-for-sale, commercial-to-rent, sharing, student-accommodation-for-rent, student-accommodation-to-share, parking-for-sale, parking-to-rent, new-homes or holiday-homes. |
| `ad_state` | string | No | published (default) or sale-agreed. Sale-agreed rows carry asking price only; Daft.ie publishes no transacted price. |
| `sort` | string | No | bestMatch, publishDateDesc, publishDateAsc, priceDesc, priceAsc or distance. |
| `page` | integer | No | 1-based page number. Page N starts at row (N-1) x per_page, so consecutive pages never overlap and never skip rows. The paging block is restated in these terms: currentPage, pageSize, totalPages, displayingFrom/displayingTo and nextFrom all describe per_page pages, not the 50-row pages Daft.ie itself sends. |
| `per_page` | integer | No | Rows to return, 1 to 50. Default 50. Daft.ie always answers with a full 50-row page; rows beyond this count are dropped so the returned row count matches the request. Note the cost: one upstream call always buys 50 rows, so walking a full result set with per_page=10 spends five times the calls that per_page=50 does for the same rows. |
| `price_min` | number | No | Lower price bound. Applied to salePrice on sale sections and rentalPrice on rent sections. |
| `price_max` | number | No | Upper price bound, same unit as price_min. |
| `min_beds` | integer | No | Minimum bedroom count. |
| `max_beds` | integer | No | Maximum bedroom count. |
| `min_bathrooms` | integer | No | Minimum bathroom count. |
| `property_type` | string | No | Daft.ie property type id, for example houses, apartments, semi-detached-houses or studio-apartments. Use the filters endpoint to list the ids one section accepts. |
| `facility` | string | No | Comma-separated Daft.ie facility values, for example parking. Every facility listed must be present. Use the filters endpoint to list them. |
| `first_publish_date` | string | No | Daft.ie first-publish-date window: now-1d/d, now-3d/d, now-7d/d, now-14d/d, now-30d/d or "At any time". Use the filters endpoint to confirm the values one section accepts. |
| `keyword` | string | No | Free-text term applied across the section. |
| `lat` | number | No | Centre latitude for a radius search. Requires lon and radius. |
| `lon` | number | No | Centre longitude for a radius search. Requires lat and radius. |
| `radius` | integer | No | Radius in metres for a radius search. Requires lat and lon. |
| `north` | number | No | Bounding-box north edge. Requires south, east and west. |
| `south` | number | No | Bounding-box south edge. |
| `east` | number | No | Bounding-box east edge. |
| `west` | number | No | Bounding-box west edge. |

## Example request

```bash
#!/bin/bash

curl -X GET \
    -H "x-api-key: YOUR_API_KEY_HERE" \
    "https://scrappa.co/api/daft-ie/search?section=residential-to-rent&per_page=50&sort=publishDateDesc"
```

## Example response

```json
{
    "success": true,
    "data": {
        "listings": [
            {
                "listing": {
                    "id": 6686946,
                    "title": "2 bed apartment to rent",
                    "price": 1800,
                    "numBedrooms": 2,
                    "publishDate": "2026-10-03",
                    "canonicalUrl": "https://www.daft.ie/residential-to-rent/listing/6686946"
                },
                "imageRestricted": false,
                "savedAd": false
            }
        ],
        "totalResults": 2677,
        "page": 1,
        "perPage": 50,
        "paging": {
            "currentPage": 1,
            "pageSize": 50,
            "pagesize": "50",
            "totalResults": 2677,
            "totalPages": 54,
            "displayingFrom": 1,
            "displayingTo": 50,
            "previousFrom": 0,
            "nextFrom": 50,
            "from": "0"
        },
        "dfpTargetingValues": {
            "section": "residential-to-rent",
            "adState": "published"
        }
    },
    "meta": {
        "duration_ms": 1350,
        "endpoint_family": "search"
    }
}
```

## Errors

| Status | Error | Description |
| --- | --- | --- |
| 404 | Not Found | The requested Daft.ie resource does not exist. This response is not billable. |
| 422 | Invalid Request | A parameter was missing, out of range, or not one of the accepted values — for example an unknown section, ad state, sort or area id. Nothing was requested from Daft.ie, so retrying unchanged will fail the same way. Not billable. |
| 422 | Rejected As Untrustworthy | Daft.ie returned a response that did not match the request, so no data is returned. This happens instead of silently widening a result set. A request did reach Daft.ie and its answer was discarded. Not billable. |
| 501 | Not Public Data | Daft.ie serves this route as gated, so it carries no public listing data. Not billable. |
| 503 | Service Unavailable | Daft.ie is inspecting or refusing the request, it refused the request shape outright, or no approved upstream route is available. This is not an empty result set. Not billable. A gateway-level 502 is rewritten to 503 before it reaches a client, so this endpoint never answers 502. |

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