ParuVendu API

Search France's general classifieds by section, then read any advert and its seller in full

ParuVendu.fr is one of France's big general classifieds sites, and this API reads it section by section.

no credit card1,000 free credits · instant API key · pay by card or crypto
Missing a ParuVendu endpoint, or need a source we don't have yet?Contact us real people · same-day reply.
P
/paruvendu/v1

4 active endpoints, on 1, 2 and 3 credit tiers.

  • POST/paruvendu/v1/search
  • POST/paruvendu/v1/listing
  • POST/paruvendu/v1/car_facets
  • POST/paruvendu/v1/categories

What ParuVendu endpoints does ReefAPI ship?

4 live read endpoints. Read-only data API: no writes, no account actions, no dashboard access on the target site.

4 endpoints

search

3 cr

Search ParuVendu.fr, one of France's big general classifieds sites, section by section.

required
section
optional
query, category, brand, model, fuel, gearbox, body_type, year_min, year_max, mileage_max, transaction, property_type, surface_min, min_price, max_price, ad_type, condition, seller_type, department, sort, page, include_pii

listing

2 cr

One ParuVendu ad in full.

required
—
optional
id, url, include_pii

car_facets

1 cr

ParuVendu's own car filter vocabulary.

required
—
optional
brand

categories

1 cr

The category codes search accepts.

required
—
optional
section

Every parameter, every allowed value →

ParuVendu API

6 of 4 endpoints, ready to run

View docs ↗

Used cars of one brand under a price

3 credits1 required · 3 optional
POST/paruvendu/v1/search
idle
// Press "Try it" and this pane shows exactly what the
// live site returned this second — including an empty
// result, if that is the truth. No key, no account.

How the ParuVendu API works

ParuVendu is a normal ReefAPI surface — the same four rules that hold for every other engine on the key.

01
Authenticate
x-api-key header

No OAuth app, no request signing, no per-site account. One key covers all 491 engines.

02
Call
POST /paruvendu/v1/…

Every route is a POST with a JSON body. Parameters are validated against the published schema before anything is charged.

03
Pay
1 or 2 or 3 credits per call

Credits, not seats. Failed and blocked calls are never charged, and cache hits cost nothing.

04
Read
{ ok, data, meta, error }

One envelope everywhere. meta carries latency_ms, record_count and the endpoint that answered.

From a car model to a priced French market feed with dealers

Resolve the model code once, filter the market to it, then read the adverts that matter in full.

01car_facets?brand=VVOBM000
GET/paruvendu/v1/car_facets?brand=VVOBM000

BMW's model codes, 35 of them on 2026-10-14, for example VVOBMS1 for the Série 1, plus fuel, gearbox and body codes.

02search?section=cars&brand=VVOBM000&model=VVOBMS1&year_min=2020
GET/paruvendu/v1/search?section=cars&brand=VVOBM000&model=VVOBMS1&year_min=2020

665 adverts on 2026-10-14, 25 per page, each with price in euros, year, mileage, fuel, city, postal code and the dealer behind it. total is ParuVendu's own count.

03listing?id=<id>
GET/paruvendu/v1/listing?id=<id>

The full advert: description, every photo, 16 to 17 labelled attributes including version, CO2 and Crit'Air, region, and the seller block with the dealer page.

A dated feed of French used-car adverts for one model, priced in euros with year and mileage, the dealers behind them, and the full advert where you need it.

request
curl -X POST https://api.reefapi.com/paruvendu/v1/search \
  -H "x-api-key: $REEF_KEY" \
  -H "content-type: application/json" \
  -d '{"section":"cars","brand":"VVOBM000","max_price":15000,"sort":"price_desc"}'
response envelope
{
  "ok": true,
  "data": { … },
  "meta": {
    "api": "paruvendu",
    "endpoint": "search",
    "mode": "live",
    "latency_ms": …,
    "record_count": …
  },
  "error": null
}

What a ParuVendu field actually contains

Fields that read differently from how they look. Every row was measured against live ParuVendu pages on 2026-10-14.

FieldWhat it holds
price_eur vs price_textprice_text is what the page prints. price_eur is that number in euros, or null when the advert shows no price: 'Faire offre' on goods (37 of 90 sampled goods rows), 'NC' on services, and 0. Prices are typed by sellers and not checked by ParuVendu: the cheapest BMW sorted by price read 1 euro.
Listing price witnesseslisting returns the printed price plus the page's own analytics price (price_analytics) and, on cars and goods, its structured product price (price_ld_json). On 14 adverts across five sections every available witness agreed; price_mismatch flags any disagreement.
idThe full ParuVendu id such as 1296268993A1KVVOBMS1, exactly as search returns it. Pass it unchanged to listing; 14 of 14 sampled ids resolved to the same advert. ad_number is the numeric part only.
Real-estate search titlesParuVendu titles property cards as '<type> <surface> m2 <city> (<department>)'. We read property_kind, surface_m2, city and department from it; listing returns the advert's own title, which is a different sentence for the same advert.
seller_type on search rowsDealers and agencies are marked Professionnel with their ParuVendu page in seller_url (121 of 132 car rows). On pet rows it is always null: the card prints the same label for breeders and private owners, so the real seller type comes from listing.
department and postal_codedepartment is the French department number. Cars, pets and services rows carry the 5-digit postal code; property and goods cards print the department only, so postal_code is null there and filled on listing.
total and last_pagetotal is ParuVendu's own count. ParuVendu serves 500 pages at most for any query, so last_page stops there; asking past the real end returns an empty page with page_beyond_end, never a repeat.

Brand and model filters take ParuVendu's own codes (VVOBM000 is BMW, VVOBMS1 the BMW Série 1). car_facets lists them all.

France coverage, measured

Every number below was read from live ParuVendu pages on 2026-10-14; two consecutive runs of 35 calls each gave the same filter counts within a handful of adverts.

Market

Metropolitan France and overseas departments, prices in euros as the seller typed them. Five sections: cars, real estate (sale and rent), second-hand goods in 28 categories, pets and services.

Live volume

104,073 used cars; 218,931 houses for sale and 3,181 for rent; 907,606 second-hand items; 7,759 pet adverts and 6,139 service adverts.

Filters that bite

BMW 7,013 cars, at most 15,000 euros 1,161, electric 291, Série 1 from 2020 665; houses 150 m² or more under 300,000 euros 21,167; sofas 11,924, given away in Furniture 125.

Field fill

On 132 car rows: price 128, year 126, mileage 128, fuel 125, dealer name 113. On 122 property rows: price 122, surface 121, rooms 120, energy class 111. On 90 goods rows: category 90, price 53 (the rest ask for offers).

Identity and prices

14 of 14 search ids resolved to the same advert in listing, across all five sections. Every available price witness on the page agreed with the search price 14 of 14 times.

Limits

500 pages per query. No map coordinates, no seller ratings and no view counts are returned. Service adverts rarely carry a price; pet search rows carry no seller type (listing does).

What people build with ParuVendu

The jobs this data is most often used for.

4

endpoints

1/2/3

credits per call

01

Track French used-car prices for one model: search section=cars with brand and model codes, sorted by price, and keep year, mileage, fuel and the dealer.

02

Build a house-price or rent index by department from section=real_estate with property type, surface and price.

03

Watch second-hand demand in one category, such as furniture or bikes, with the item price, city and department of each advert.

04

Find car dealers and real-estate agencies active in a region: professional rows carry the dealer name, its ParuVendu page and its advert count.

What ParuVendu data costs

The cheapest call here is 1 credit, so $15/mo (Pro) buys 10,000 of them — $1.50 per 1,000 credits. Credits roll over and never expire, and failed or blocked calls are not charged.

Full pricing →
$0.67–$1.50 / 1,000 credits
  • 1,000 free credits on signup, no card
  • One key, all 491 APIs, one credit pool
  • Failed and blocked calls are never charged
  • Credits roll over and never expire

Call it in two lines

Sign up, get 1,000 credits and one key that works on every engine. Then this is the whole protocol.

curl
curl -X POST https://api.reefapi.com/paruvendu/v1/search \
  -H "x-api-key: $REEF_KEY" \
  -H "content-type: application/json" \
  -d '{"section":"cars","brand":"VVOBM000","max_price":15000,"sort":"price_desc"}'
python
import requests

r = requests.post(
    "https://api.reefapi.com/paruvendu/v1/search",
    headers={"x-api-key": REEF_KEY},
    json={
  "section": "cars",
  "brand": "VVOBM000",
  "max_price": 15000,
  "sort": "price_desc"
},
)
print(r.json()["data"])
FAQ

Have a question? We got answers.

The questions people actually ask before wiring up ParuVendu.

Get a free key →
Do I need a ParuVendu account or a French IP?▾

No. Every endpoint reads public pages without an account or login, and you call reefapi.com from anywhere.

Which sections can I search?▾

Five: cars (used cars), real_estate (houses, flats, land, parking and buildings, for sale or rent), goods (28 second-hand categories from furniture to bikes), pets and services. Each section accepts its own filters; a filter from another section is rejected with a clear error instead of being silently ignored.

How do I filter cars by make, model and year?▾

Take the brand code from car_facets (BMW is VVOBM000), call car_facets with that brand for the model codes, then search with section=cars, brand, model and year_min. Measured on 2026-10-14: BMW 7,013 adverts, of which 1,161 at 15,000 euros or less, 291 electric, and 665 Série 1 from 2020 on.

Can I search houses or flats in one department, for sale or rent?▾

Yes: section=real_estate with transaction (sale or rent), property_type (house, apartment, land, parking, building) and department. Measured: 218,931 houses for sale in France, 3,181 for rent, 3,859 flats for sale in Gironde (33); 150 m² or more at 300,000 euros or less left 21,167 houses.

Does it return the seller?▾

Yes, as the page publishes it. Search rows carry the dealer name, its ParuVendu page and how many adverts it has. listing returns the seller block: name, private or professional, the dealer or agency page and, on dealer car adverts, the phone the dealer publishes on the page.

How deep can I page?▾

Up to page 500 of any query, which is where ParuVendu itself stops: 25 cars per page, about 30 rows elsewhere. Narrow with filters, such as one department, to reach everything in a large result set.

Why is a price null?▾

Because the advert shows no price: 'Faire offre' (make an offer), 'NC', or 0 for items given away. We keep the printed text in price_text so you can tell those cases apart.

What does the listing add over search?▾

The full description, every photo (20 on a typical dealer car advert), region, the full attribute list (16 to 17 labelled attributes on a car), the advert reference and last-update time, and the complete seller block.

What is the ParuVendu API?▾

ParuVendu API is a ReefAPI endpoint group for france's general classifieds as json: used cars, homes for sale or rent and second-hand goods, with prices in euros and the seller block. It returns live JSON through POST requests under /paruvendu/v1.

Is the ParuVendu API free to try?▾

Yes. ReefAPI starts with 1,000 free credits, no card required. ParuVendu calls use the same shared credit balance as every other ReefAPI engine.

Do I need a ParuVendu login or account?▾

No login to ParuVendu is needed for the API response. You call ReefAPI with your x-api-key header, and the playground can run live examples before you create a production key.

How fresh is the ParuVendu data?▾

The page example is captured from a live search call, and production requests fetch live data through ReefAPI rather than a static sample.

How many credits does the ParuVendu API use?▾

ParuVendu actions currently cost 1-3 credits per successful call. Failed or blocked calls are free. All APIs draw from one credit pool.

Can I call ParuVendu from an AI assistant or MCP client?▾

Yes. Connect ReefAPI once through MCP and your assistant can call paruvendu actions with the same key, credit pool and JSON envelope used by normal REST requests.

107 Classifieds & Second-hand APIs on the same key

One key, one credit pool, one response envelope. If you are pulling ParuVendu, you are one call away from the rest of the category — no second contract, no second integration.

Need something this API does not do?

Name the endpoint, the field, or a source we do not carry yet. We ship new APIs every week and you would be first to get the key. Real people read every message and reply the same day.

0/4000

No account needed · we reply from [email protected]

Try it on your own data before you pay anything

The call above is the real endpoint, not a recording. A free key gives you 1,000 credits, the other 490 APIs, and the same envelope everywhere.

Endpoints, parameters and credit costs on this page are read from the live catalog and cannot drift from what the API accepts. Field notes were captured on 2026-10-14.