{
  "openapi": "3.0.1",
  "info": {
    "title": "Leboncoin Scraper - Ads, Real Estate, Cars & Seller Data",
    "description": "Scrape leboncoin.fr ads from any search URL, keyword, category, place or seller: price, full description, every attribute, GPS, seller type, SIREN, photos and dates. Real-estate and car fields typed, past the 3,500-ad limit, monitor mode, optional seller profiles. No login.",
    "version": "0.1",
    "x-build-id": "d0WeHz9hIg28lUmlh"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/scrapersdelight~leboncoin-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-scrapersdelight-leboncoin-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/acts/scrapersdelight~leboncoin-scraper/runs": {
      "post": {
        "operationId": "runs-sync-scrapersdelight-leboncoin-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor and returns information about the initiated run in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/runsResponseSchema"
                }
              }
            }
          }
        }
      }
    },
    "/acts/scrapersdelight~leboncoin-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-scrapersdelight-leboncoin-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "inputSchema": {
        "type": "object",
        "properties": {
          "searchUrls": {
            "title": "Search URLs",
            "type": "array",
            "description": "leboncoin search pages with your filters applied, e.g. https://www.leboncoin.fr/recherche?category=9&locations=Paris&real_estate_type=2 or https://www.leboncoin.fr/c/voitures. Every filter in the URL is applied.",
            "items": {
              "type": "string"
            }
          },
          "keywords": {
            "title": "Keywords",
            "type": "array",
            "description": "One search per keyword, as you would type it on leboncoin, e.g. \"peugeot 308\", \"maison piscine\", \"iphone 15\". The filters below apply to these searches.",
            "items": {
              "type": "string"
            }
          },
          "adUrls": {
            "title": "Ad links or ids",
            "type": "array",
            "description": "Single ads to fetch, e.g. https://www.leboncoin.fr/ad/voitures/3287999313 or 3287999313. Each returns the same full row as a search.",
            "items": {
              "type": "string"
            }
          },
          "sellerIds": {
            "title": "Sellers (all their ads)",
            "type": "array",
            "description": "Every active ad of a seller: the seller id (sellerUserId of any of their ads, e.g. c7041ea4-7898-486c-8372-a50a6bc1ee09), a profile link, or a store id (storeId). Filters below apply.",
            "items": {
              "type": "string"
            }
          },
          "category": {
            "title": "Category",
            "enum": [
              "all",
              "8",
              "9",
              "10",
              "11",
              "12",
              "13",
              "1",
              "2",
              "3",
              "4",
              "5",
              "7",
              "6",
              "44",
              "14",
              "15",
              "17",
              "43",
              "84",
              "82",
              "16",
              "18",
              "19",
              "20",
              "21",
              "39",
              "52",
              "72",
              "22",
              "53",
              "42",
              "47",
              "79",
              "23",
              "24",
              "29",
              "55",
              "41",
              "40",
              "30",
              "27",
              "89",
              "28",
              "71",
              "33",
              "56",
              "57",
              "105",
              "106",
              "59",
              "31",
              "34",
              "37"
            ],
            "type": "string",
            "description": "leboncoin category. Leave on 'All categories' to search everywhere.",
            "default": "all"
          },
          "categoryId": {
            "title": "Category id",
            "type": "string",
            "description": "Any leboncoin category id or URL slug not in the list, e.g. 81 or accessoires_telephone_objets_connectes. Overrides Category."
          },
          "locations": {
            "title": "Locations",
            "type": "array",
            "description": "Cities, postcodes, departments or regions, resolved by leboncoin's own place search, e.g. \"Lyon\", \"75011\", \"Gironde\", \"69\" (department number). Several = one search covering all of them.",
            "items": {
              "type": "string"
            }
          },
          "radiusKm": {
            "title": "Radius (km)",
            "minimum": 1,
            "maximum": 200,
            "type": "integer",
            "description": "Search this far around a city (or the latitude/longitude point). Empty = the city itself."
          },
          "latitude": {
            "title": "Latitude",
            "type": "string",
            "description": "Point search instead of a named place, e.g. 45.7640 (with Longitude and Radius)."
          },
          "longitude": {
            "title": "Longitude",
            "type": "string",
            "description": "Point search, e.g. 4.8357 (with Latitude and Radius)."
          },
          "priceMin": {
            "title": "Min price (€)",
            "minimum": 0,
            "type": "integer",
            "description": "Lowest price in euros."
          },
          "priceMax": {
            "title": "Max price (€)",
            "minimum": 0,
            "type": "integer",
            "description": "Highest price in euros."
          },
          "ownerType": {
            "title": "Seller type",
            "enum": [
              "all",
              "private",
              "pro"
            ],
            "type": "string",
            "description": "Private individuals, professionals, or both.",
            "default": "all"
          },
          "sortBy": {
            "title": "Sort",
            "enum": [
              "newest",
              "relevance",
              "cheapest",
              "mostExpensive",
              "oldest"
            ],
            "type": "string",
            "description": "Order leboncoin returns the ads in.",
            "default": "newest"
          },
          "searchInTitleOnly": {
            "title": "Keywords in title only",
            "type": "boolean",
            "description": "Match keywords in the ad title only, not the description.",
            "default": false
          },
          "urgentOnly": {
            "title": "Urgent ads only",
            "type": "boolean",
            "description": "Only ads the seller marked \"Urgent\".",
            "default": false
          },
          "shippableOnly": {
            "title": "Shippable ads only",
            "type": "boolean",
            "description": "Only ads with leboncoin delivery.",
            "default": false
          },
          "donationOnly": {
            "title": "Free items only (dons)",
            "type": "boolean",
            "description": "Only ads given away for free.",
            "default": false
          },
          "realEstateTypes": {
            "title": "Property type",
            "type": "array",
            "description": "Houses, apartments, land, parking or other.",
            "items": {
              "type": "string",
              "enum": [
                "1",
                "2",
                "3",
                "4",
                "5"
              ],
              "enumTitles": [
                "House (Maison)",
                "Apartment (Appartement)",
                "Land (Terrain)",
                "Parking",
                "Other (Autre)"
              ]
            }
          },
          "surfaceMin": {
            "title": "Min living area (m²)",
            "minimum": 0,
            "type": "integer",
            "description": "Smallest living area in m²."
          },
          "surfaceMax": {
            "title": "Max living area (m²)",
            "minimum": 0,
            "type": "integer",
            "description": "Largest living area in m²."
          },
          "roomsMin": {
            "title": "Min rooms",
            "minimum": 0,
            "maximum": 20,
            "type": "integer",
            "description": "Fewest rooms (pièces)."
          },
          "roomsMax": {
            "title": "Max rooms",
            "minimum": 0,
            "maximum": 20,
            "type": "integer",
            "description": "Most rooms (pièces)."
          },
          "bedroomsMin": {
            "title": "Min bedrooms",
            "minimum": 0,
            "maximum": 20,
            "type": "integer",
            "description": "Fewest bedrooms."
          },
          "bedroomsMax": {
            "title": "Max bedrooms",
            "minimum": 0,
            "maximum": 20,
            "type": "integer",
            "description": "Most bedrooms."
          },
          "landSurfaceMin": {
            "title": "Min land area (m²)",
            "minimum": 0,
            "type": "integer",
            "description": "Smallest plot in m²."
          },
          "landSurfaceMax": {
            "title": "Max land area (m²)",
            "minimum": 0,
            "type": "integer",
            "description": "Largest plot in m²."
          },
          "energyClasses": {
            "title": "Energy class (DPE)",
            "type": "array",
            "description": "Energy performance classes to keep.",
            "items": {
              "type": "string",
              "enum": [
                "a",
                "b",
                "c",
                "d",
                "e",
                "f",
                "g",
                "v"
              ],
              "enumTitles": [
                "A",
                "B",
                "C",
                "D",
                "E",
                "F",
                "G",
                "Blank (Vierge)"
              ]
            }
          },
          "furnished": {
            "title": "Furnished",
            "enum": [
              "any",
              "furnished",
              "unfurnished"
            ],
            "type": "string",
            "description": "Rentals: furnished or unfurnished.",
            "default": "any"
          },
          "carBrands": {
            "title": "Car brands",
            "type": "array",
            "description": "Brands as leboncoin writes them, e.g. PEUGEOT, RENAULT, MERCEDES-BENZ, TOYOTA.",
            "items": {
              "type": "string"
            }
          },
          "fuels": {
            "title": "Fuel",
            "type": "array",
            "description": "Fuel types to keep.",
            "items": {
              "type": "string",
              "enum": [
                "1",
                "2",
                "3",
                "4",
                "6",
                "8"
              ],
              "enumTitles": [
                "Petrol (Essence)",
                "Diesel",
                "LPG (GPL)",
                "Electric (Électrique)",
                "Hybrid (Hybride)",
                "Plug-in hybrid (Hybride rechargeable)"
              ]
            }
          },
          "gearboxes": {
            "title": "Gearbox",
            "type": "array",
            "description": "Manual, automatic or both.",
            "items": {
              "type": "string",
              "enum": [
                "1",
                "2"
              ],
              "enumTitles": [
                "Manual (Manuelle)",
                "Automatic (Automatique)"
              ]
            }
          },
          "mileageMin": {
            "title": "Min mileage (km)",
            "minimum": 0,
            "type": "integer",
            "description": "Lowest mileage in km."
          },
          "mileageMax": {
            "title": "Max mileage (km)",
            "minimum": 0,
            "type": "integer",
            "description": "Highest mileage in km."
          },
          "yearMin": {
            "title": "Min year",
            "minimum": 1900,
            "maximum": 2100,
            "type": "integer",
            "description": "Oldest registration year, e.g. 2015."
          },
          "yearMax": {
            "title": "Max year",
            "minimum": 1900,
            "maximum": 2100,
            "type": "integer",
            "description": "Newest registration year."
          },
          "customFilters": {
            "title": "Custom filters (JSON)",
            "type": "object",
            "description": "Any other leboncoin filter, as on its search URLs: {\"enums\": {\"vehicle_type\": [\"4x4\"]}, \"ranges\": {\"horse_power_din\": {\"min\": 150}}}."
          },
          "includeKeywords": {
            "title": "Must contain",
            "type": "array",
            "description": "Keep an ad only if its title or description contains one of these words (case-insensitive).",
            "items": {
              "type": "string"
            }
          },
          "excludeKeywords": {
            "title": "Must not contain",
            "type": "array",
            "description": "Drop ads whose title or description contains any of these words, e.g. \"épave\", \"pour pièces\".",
            "items": {
              "type": "string"
            }
          },
          "postedWithinDays": {
            "title": "Posted within (days)",
            "minimum": 1,
            "maximum": 365,
            "type": "integer",
            "description": "Only ads first published in the last N days. Searches then read newest first and stop at the cutoff. Pairs well with a daily schedule."
          },
          "includeSellerProfile": {
            "title": "Seller profiles",
            "type": "boolean",
            "description": "Add each seller's profile: member since, active ads, rating and reviews, reply rate, last seen; for professionals also SIREN, SIRET, address, website and opening hours. Charged once per seller per run.",
            "default": false
          },
          "extractContacts": {
            "title": "Contacts from the ad text",
            "type": "boolean",
            "description": "List phone numbers and links sellers wrote in their description (descriptionPhones, descriptionLinks). leboncoin removes most numbers from ad texts, so expect few. No extra charge.",
            "default": false
          },
          "monitorMode": {
            "title": "Only new or re-priced ads",
            "type": "boolean",
            "description": "Deliver only ads this monitor has not delivered before, plus known ads whose price changed (changeType, previousPrice). Ads that disappeared are listed in OUTPUT, free.",
            "default": false
          },
          "monitorKey": {
            "title": "Monitor name",
            "type": "string",
            "description": "Optional name for this monitor's memory. Empty = derived from your inputs, so different searches never share one."
          },
          "webhookUrl": {
            "title": "Webhook URL",
            "type": "string",
            "description": "Receives one JSON POST per run that delivered something (counts, dataset id, removed ads). Works with Make, Zapier, n8n."
          },
          "maxItems": {
            "title": "Max ads",
            "minimum": 1,
            "maximum": 100000,
            "type": "integer",
            "description": "Most ads delivered in this run, across all searches. One leboncoin query stops at 3,500 ads; bigger searches are split by price automatically.",
            "default": 100
          },
          "maxItemsPerSearch": {
            "title": "Max ads per search",
            "minimum": 1,
            "type": "integer",
            "description": "Cap for each search URL / keyword / seller. Empty = only Max ads applies."
          },
          "splitLargeSearches": {
            "title": "Split large searches",
            "type": "boolean",
            "description": "When a search holds more than 3,500 ads and you asked for more, read it in price bands so you get past leboncoin's 3,500-ad limit.",
            "default": true
          },
          "compact": {
            "title": "Compact output",
            "type": "boolean",
            "description": "Core fields only (id, url, title, price, place, seller, date, key specs, short description) - for AI agents and spreadsheets.",
            "default": false
          },
          "descriptionMaxLength": {
            "title": "Description length",
            "minimum": 50,
            "type": "integer",
            "description": "Cut descriptions to this many characters. Empty = full text."
          },
          "proxyConfiguration": {
            "title": "Proxy",
            "type": "object",
            "description": "Optional. Leave empty: the actor picks its own route (French residential exits, then Apify's unblocker). Set it only to use your own proxies."
          }
        }
      },
      "runsResponseSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "actId": {
                "type": "string"
              },
              "userId": {
                "type": "string"
              },
              "startedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "finishedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "status": {
                "type": "string",
                "example": "READY"
              },
              "meta": {
                "type": "object",
                "properties": {
                  "origin": {
                    "type": "string",
                    "example": "API"
                  },
                  "userAgent": {
                    "type": "string"
                  }
                }
              },
              "stats": {
                "type": "object",
                "properties": {
                  "inputBodyLen": {
                    "type": "integer",
                    "example": 2000
                  },
                  "rebootCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "restartCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "resurrectCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "computeUnits": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "options": {
                "type": "object",
                "properties": {
                  "build": {
                    "type": "string",
                    "example": "latest"
                  },
                  "timeoutSecs": {
                    "type": "integer",
                    "example": 300
                  },
                  "memoryMbytes": {
                    "type": "integer",
                    "example": 1024
                  },
                  "diskMbytes": {
                    "type": "integer",
                    "example": 2048
                  }
                }
              },
              "buildId": {
                "type": "string"
              },
              "defaultKeyValueStoreId": {
                "type": "string"
              },
              "defaultDatasetId": {
                "type": "string"
              },
              "defaultRequestQueueId": {
                "type": "string"
              },
              "buildNumber": {
                "type": "string",
                "example": "1.0.0"
              },
              "containerUrl": {
                "type": "string"
              },
              "usage": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "integer",
                    "example": 1
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "usageTotalUsd": {
                "type": "number",
                "example": 0.00005
              },
              "usageUsd": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "number",
                    "example": 0.00005
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}