PAP Scraper 🇫🇷 Particuliers + Téléphone du Propriétaire
Pricing
from $1.00 / 1,000 listing founds
PAP Scraper 🇫🇷 Particuliers + Téléphone du Propriétaire
Annonces de particuliers PAP.fr, sans agences, avec le téléphone du propriétaire et l'adresse complète en option. Prix, surface, pièces, €/m², DPE et photos pour chaque annonce, dès 1$/1000 annonces. Idéal pour la pige immobilière, la prospection et les agents IA (API + MCP).
Pricing
from $1.00 / 1,000 listing founds
Rating
0.0
(0)
Developer
Tagada Data
Maintained by CommunityActor stats
0
Bookmarked
3
Total users
1
Monthly active users
7 days ago
Last modified
Categories
Share
PAP Real Estate Listings, Owner-Direct Sales & Rentals (France)
Scrape French property ads from PAP.fr (Particulier à Particulier). Paste a PAP search URL and get clean, structured listings for every result page, complete with price, surface, rooms, €/m², energy class, description and photos.
PAP is owner-direct only: no agencies, no agency fees. Every record is a private seller, which makes this ideal for buyer/renter search, market analysis, lead sourcing, and AI agents (works via API and MCP).
Why this actor
Every lead here is owner-direct, since PAP carries no agency listings at all, so each result comes straight from a private individual selling or renting their own property. Turn on scrapeDetails (optional) and the actor also pulls the owner's phone number and the exact street address from the ad itself, for direct-to-owner contact with no agency standing in between.
Using it is as simple as it gets: build whatever search you want on pap.fr (city, sale or rental, property type, filters), paste the resulting URL into the actor, and every result page after that is followed automatically. Fields come back clean and computed too, French prices and surfaces parsed into numbers, €/m² computed for sales, and the DPE energy class extracted straight from the listing.
Need to narrow things down further? Filter inside the actor by price, surface, rooms, property type or keywords, on top of whatever the search URL already selects. And pricing stays fair throughout: you pay per listing returned, and the phone/address premium is only charged when contact data is actually found.
Companion actors in the French real-estate suite
- SeLoger Scraper: listings from SeLoger, France's #1 portal, with seller phone plus a particulier/agence flag.
- Logic-Immo Scraper: listings from Logic-Immo, including the advertiser's phone number and an agency/private flag.
- French Real Estate Sales (DVF) gives you official recorded sold prices, handy for benchmarking PAP asking prices against reality.
- Real Estate Deal Score scores PAP asking prices against DVF sold prices and ranks the best deals first.
Pair PAP with DVF for asking-vs-achieved price analysis, or feed both into Deal Score for an over/under-market ranking.
Input
{"searchUrls": ["https://www.pap.fr/annonce/vente-appartements-bordeaux-33000-g43898"],"minPrice": 150000,"maxPrice": 400000,"minSurface": 40,"minRooms": 2,"propertyTypes": ["Appartement"],"keywords": ["terrasse", "balcon"],"scrapeDetails": true,"maxResults": 500}
Set scrapeDetails: true to also fetch each listing's page for the owner phone, street address and full description. Leave it false (default) for a faster, list-only run.
How to get a search URL: go to pap.fr, run the search you want (choose city, acheter or louer, property type, and any filters), then copy the address-bar URL and paste it into searchUrls. You can pass several URLs at once.
Output (one record per listing)
{"source": "PAP","id": "450001168","url": "https://www.pap.fr/annonces/appartement-aix-en-provence-r450001168","transactionType": "sale","propertyType": "Appartement","title": "Aix-En-Provence","location": "Aix-En-Provence","price": 389000,"currency": "EUR","pricePerM2": 9262,"rooms": 2,"bedrooms": 1,"surface": 42,"landSurface": null,"energyClass": "B","description": "Beau Loft avec terrasse et parking, Aix centre…","photos": ["https://cdn.pap.fr/photos/…-p3.jpg"],"photoCount": 8,"seller": "Particulier","phone": "06 71 26 79 76","streetAddress": "rue Constant Coquelin","postalCode": "94400","reference": "vente-450001168","sourceRef": "pap.fr (Particulier à Particulier)"}
The phone, streetAddress, postalCode and reference fields are populated only when scrapeDetails is on; otherwise they are null.
Pricing
Pay per event, no subscription:
| Event | When |
|---|---|
| Actor start | Once per run |
| Listing found | Per listing returned |
| Listing detailed | Per listing enriched with owner phone/address (only when scrapeDetails is on and contact data is found) |
FAQ
What's the source? Public listings on pap.fr, France's largest owner-to-owner (particulier à particulier) real-estate site. Agencies can't list there, so results are private sellers/landlords.
Sales and rentals? Both. The actor detects sale vs rental from the search URL; €/m² is computed for sales only.
How do I target a specific city or neighbourhood? Build the search on pap.fr: its filters (arrondissement, budget, surface, rooms, exterior, etc.) all encode into the URL you paste.
Why do some fields come back null? When a listing genuinely omits a value (e.g. price on request, no DPE), the field is null rather than a guess.
Does it work with AI agents? Yes, it's exposed via REST API and MCP.
Something missing?
If you need an extra field, another source, or a different output, open an issue on this Actor and describe it. I read every request and small additions usually ship within days. More French real estate Actors (pige, DVF, deal score, DPE leads) are on my profile.
Keywords: PAP, particulier à particulier, annonces immobilières, immobilier France, real estate listings, property France, prix immobilier, €/m², location appartement, vente maison, owner-direct, no agency, proptech.