Skip to main content

lbc

Latest version PyPI - Downloads GitHub license

Unofficial client for Leboncoin API

import lbc

client = lbc.Client()

location = lbc.City(
    lat=48.85994982004764,
    lng=2.33801967847424,
    radius=10_000,  # 10 km
    city="Paris",
)

result = client.search(
    text="maison",
    locations=[location],
    page=1,
    limit=35,
    sort=lbc.Sort.NEWEST,
    ad_type=lbc.AdType.OFFER,
    category=lbc.Category.IMMOBILIER,
    square=[200, 400],
    price=[300_000, 700_000],
)

for ad in result.ads:
    print(ad.url, ad.subject, ad.price)

lbc is not affiliated with, endorsed by, or in any way associated with Leboncoin or its services. Use at your own risk.

Installation

Required Python 3.10+

pip install lbc

Usage

Start with the examples to quickly understand how to use the library in real-world scenarios.

Client

To create client you need to use lbc.Client class

import lbc

client = lbc.Client()

Proxy

You can also configure the client to use a proxy by providing a Proxy object:

# Setup proxy1
proxy1 = lbc.Proxy(
    host="127.0.0.1",
    port=12345,
    username="username",
    password="password",
    scheme="http",
)

# Initialize client with proxy1
client = lbc.Client(proxy=proxy1)

# Setup proxy2
proxy2 = lbc.Proxy(
    host="127.0.0.1",
    port=23456,
)

# Change client proxy to proxy2
client.proxy = proxy2

# Remove proxy
client.proxy = None

To perform a search, use the client.search method.

This function accepts keyword arguments (**kwargs) to customize your query. For example, if you're looking for houses that include both land and parking, you can specify:

real_estate_type = ["3", "4"]

These values correspond to what you’d find in a typical Leboncoin URL, like:

https://www.leboncoin.fr/recherche?category=9&text=maison&...&real_estate_type=3,4

Here's a complete example of a search query:

client.search(
    text="maison",
    locations=[location],
    page=1,
    limit=35,
    limit_alu=0,
    sort=lbc.Sort.NEWEST,
    ad_type=lbc.AdType.OFFER,
    category=lbc.Category.IMMOBILIER,
    owner_type=lbc.OwnerType.ALL,
    search_in_title_only=True,
    square=[200, 400],
    price=[300_000, 700_000],
)

Alternatively

You can also perform search using a full Leboncoin URL:

client.search(
    url="https://www.leboncoin.fr/recherche?category=9&text=maison&locations=Paris__48.86023250788424_2.339006433295173_9256&square=100-200price=500000-1000000&rooms=1-6&bedrooms=3-6&outside_access=garden,terrace&orientation=south_west&owner_type=private",
    page=1,
    limit=35,
)

If url is provided, it overrides other keyword parameters such as text, category, locations, etc. However, pagination parameters like page, limit, and limit_alu are still applied.

You can pass a list of values to search for multiple terms at once.

The values are converted into a Leboncoin OR query. For example:

client.search(text=["Laptop", "Desktop"])

This generates a search equivalent to:

Laptop OR Desktop

This can be useful for combining multiple keywords into a single search query without having to perform separate requests.

Location

The locations parameter accepts a list of one or more location objects. You can use one of the following:

  • lbc.Region(...)
  • lbc.Department(...)
  • lbc.City(...)

Each one corresponds to a different level of geographic granularity.

City example

location = lbc.City(
    lat=48.85994982004764,
    lng=2.33801967847424,
    radius=10_000,  # in meters
    city="Paris",
)

Region / Department example

from lbc import Region, Department

region = Region.ILE_DE_FRANCE
department = Department.PARIS

403 Error

If you encounter a 403 Forbidden error, it usually means your requests are being blocked by Datadome. To resolve this:

  • Try reducing the request frequency (add delays between requests).
  • If you're using a proxy, make sure it is clean and preferably located in France.

Using residential or mobile proxies can also help avoid detection.

License

This project is licensed under the MIT License.

Support

Buy Me A Coffee

You can contact me via Telegram or Discord if you need help with scraping services or want to write a library.

Metadata

Release files for lbc 1.1.6

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for lbc 1.1.6
File Size Uploaded
lbc-1.1.6.tar.gz 16.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for lbc 1.1.6
File Interpreter ABI Platform
lbc-1.1.6-py3-none-any.whl Python 3 none any Details

Total release size: 36.9 kB

Release files / lbc-1.1.6.tar.gz

Download URL lbc-1.1.6.tar.gz
Size 16.1 kB
Tags Source
SHA-256 checksum
How to use checksums
8432b1dae151464b49fd2c9cfba1e08bd16f6763ece77954f03b4b3592d5b33f
BLAKE2b-256 checksum
How to use checksums
b63a6b78297e80d533b7f68ad0241a7ede304097141bbbd76e74b6a8496e8232
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.11.14 {"installer":{"name":"uv","version":"0.11.14","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Arch Linux","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release files / lbc-1.1.6-py3-none-any.whl

Download URL lbc-1.1.6-py3-none-any.whl
Size 20.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
2c7af4f50e1a40398bbdf29c60154e296f14b0dd0d93205443011ea3349eda94
BLAKE2b-256 checksum
How to use checksums
6387ee64ecb94adec3b351f67a506f4d36ff3ca5ae835ee709e0bab1761e2f44
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.11.14 {"installer":{"name":"uv","version":"0.11.14","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Arch Linux","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release history Release notifications | RSS feed

1.1.7

2 release files

This release

1.1.6 This release

2 release files

1.1.5

2 release files

1.1.4

2 release files

1.1.3

2 release files

1.1.2

2 release files

1.1.1

2 release files

1.1.0

2 release files

1.0.10

2 release files

1.0.9

2 release files

1.0.8

2 release files

1.0.7

2 release files

1.0.6

2 release files

1.0.5

2 release files

1.0.4

2 release files

1.0.3

2 release files

1.0.2

2 release files

1.0.1

2 release files

1.0.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page