Skip to content
Scrappa Get API key
Kijiji API 1 credit/request

Kijiji Search API Documentation

GET https://scrappa.co/api/kijiji/search

Kijiji Search API 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.

Kijiji Search API Documentation 1 credit/request

Endpoint

Request preview
GET
https://scrappa.co/api/kijiji/search
Auth header
x-api-key
Cost
1 credit/request
Response preview
200 OK
{
    "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"
...

Parameters

Start with the required fields, then add optional filters only when your use case needs them.

Runnable path

This endpoint has no required query parameters.

7 optional filters available.

q string Optional

Search keywords, 1 to 100 characters, e.g. road bike. Omit to browse a category. Example: road bike.

Example value coffee shops
category_id integer Optional

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.

Example value 1234567890
location_id integer Optional

Numeric Kijiji location id. 0 searches all of Canada (default). Use the location endpoint to look up a name. Example: 1700199.

Example value 1234567890
page integer Optional

Page number, 1 to 250, 40 listings per page. Defaults to 1.

Example value 1
sort string Optional

One of date_desc, date_asc, price_asc, price_desc or match. Defaults to date_desc, or match when q is set.

Example value relevance
min_price integer Optional

Minimum price in whole Canadian dollars.

Example value 10
max_price integer Optional

Maximum price in whole Canadian dollars. Must be greater than or equal to min_price.

Example value 10

Response Schema

Example response fields are illustrative; inspect the JSON before integrating.

Example response fields

Scan these fields before integrating.

data meta success
JSON Response
200 OK
{
    "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

Handle these documented responses before retrying or showing customer-facing failures.

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.

{
    "errors": {
        "id": [
            "The id is required."
        ]
    },
    "message": "The request validation failed"
}
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.

{
    "meta": {
        "billable": false,
        "retryable": true,
        "endpoint_family": "search"
    },
    "error": {
        "code": "UPSTREAM_UNAVAILABLE",
        "message": "The Kijiji API is temporarily unavailable. Please retry."
    },
    "success": false
}

Generate Code with AI

Copy a ready-made prompt with all the endpoint details, parameters, and example responses. Paste it into ChatGPT, Claude, or any AI assistant to instantly generate working code.

Try It Live

Test this endpoint in our interactive playground with real data.