# Kijiji Search API Documentation

<p><strong>Kijiji Search API</strong> returns one page of public Kijiji (Canada) classified ads for a keyword, category and location. Each listing carries the ad id, title, a description snippet, the public ad url, category id, images, publish date (ISO 8601, UTC), location with address and coordinates, price, attributes (canonical codes) and a verified-seller flag. Prices are major-unit CAD floats; ads priced as CONTACT, SWAP_TRADE or GIVE_AWAY return the price type only, never an amount of 0. Paid top ads carry is_sponsored. Pages hold 40 listings; has_more tells whether another page exists. A search with zero matches is a valid, billable empty result. Category and location need numeric ids: Common ids: Canada 0, Alberta 9003, Ontario 9004, Calgary 1700199, Toronto 1700273; Buy & Sell 10, Cars & Vehicles 27, Cars & Trucks 174, Bikes 644, Cell phones 760.</p>

- **Documentation:** [https://scrappa.co/docs/kijiji-api/kijiji_search](https://scrappa.co/docs/kijiji-api/kijiji_search)
- **API group:** Kijiji API
- **Endpoint:** `GET https://scrappa.co/api/kijiji/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 |
| --- | --- | --- | --- |
| `q` | string | No | Search keywords, 1 to 100 characters, e.g. road bike. Omit to browse a category. Example: road bike. |
| `category_id` | integer | No | Numeric Kijiji category id. 0 searches all categories (default). Use the category endpoint to look up a name. Common ids: Canada 0, Alberta 9003, Ontario 9004, Calgary 1700199, Toronto 1700273; Buy & Sell 10, Cars & Vehicles 27, Cars & Trucks 174, Bikes 644, Cell phones 760. Example: 644. |
| `location_id` | integer | No | Numeric Kijiji location id. 0 searches all of Canada (default). Use the location endpoint to look up a name. Example: 1700199. |
| `page` | integer | No | Page number, 1 to 250, 40 listings per page. Defaults to 1. |
| `sort` | string | No | One of date_desc, date_asc, price_asc, price_desc or match. Defaults to date_desc, or match when q is set. |
| `min_price` | integer | No | Minimum price in whole Canadian dollars. |
| `max_price` | integer | No | Maximum price in whole Canadian dollars. Must be greater than or equal to min_price. |

## Example response

```json
{
    "data": {
        "listings": [
            {
                "id": "1744858222",
                "url": "https://www.kijiji.ca/v-bike-frames-parts/calgary/schwalbe-puncture-protection-bicycle-tire/1744858222",
                "price": {
                    "type": "FIXED",
                    "amount": 10,
                    "currency": "CAD"
                },
                "title": "Schwalbe Puncture Protection Bicycle Tire",
                "images": [
                    "https://media.kijiji.ca/api/v1/ca-prod-fsbo-ads/images/85/854bac91-5a53-4753-b825-8a93cdfa4dc7?rule=kijijica-200-jpg"
                ],
                "location": {
                    "id": 1700199,
                    "name": "Calgary",
                    "address": "Calgary, AB T2L",
                    "latitude": 51.09223,
                    "longitude": -114.12218
                },
                "position": 1,
                "posted_at": "2026-10-15T16:57:01Z",
                "attributes": [
                    {
                        "key": "forsaleby",
                        "values": [
                            "ownr"
                        ]
                    },
                    {
                        "key": "condition",
                        "values": [
                            "usedgood"
                        ]
                    }
                ],
                "updated_at": "2026-10-15T16:57:01Z",
                "category_id": 649,
                "description": "Schwalbe bicycle tire with puncture protection. Size 28/32-630 (27 x 1 1/4), suitable for road bikes. Tire is in good condition. Pickup near Morley Trail NW, Calgary.",
                "image_count": 7,
                "seller_verified": false
            }
        ],
        "pagination": {
            "page": 1,
            "has_more": true,
            "per_page": 40,
            "total_count": 188
        }
    },
    "meta": {
        "billable": true,
        "endpoint_family": "search"
    },
    "success": true
}
```

## Errors

| Status | Error | Description |
| --- | --- | --- |
| 422 | Validation Error | A parameter is invalid: q contains a slash or control character, page is outside 1 to 250, sort is unknown, ids are not integers, or max_price is below min_price. This response is not billable. |
| 503 | Upstream Unavailable | Kijiji is temporarily unreachable, blocked the request or answered with data that does not match the documented shape (error code PARSER_DRIFT). Retry later; 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)
