Selency Scraper: New Listing & Price Drop Alerts avatar

Selency Scraper: New Listing & Price Drop Alerts

Pricing

from $1.50 / 1,000 listing returneds

Go to Apify Store
Selency Scraper: New Listing & Price Drop Alerts

Selency Scraper: New Listing & Price Drop Alerts

Selency scraper by keyword: French vintage furniture and decor with price, material, style and dealer info, plus new-listing and price-drop alerts. No login required. Pay per listing; misses and quiet runs are free.

Pricing

from $1.50 / 1,000 listing returneds

Rating

0.0

(0)

Developer

Adrian Voss

Adrian Voss

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 hours ago

Last modified

Share

Watch a search, get only what's new. New listings and price drops since your last run, charged per new row, free on quiet days. Schedule it hourly and send it to Discord, Slack, Google Sheets or n8n.

This actor searches Selency, France's vintage furniture and decor marketplace, the way you would in your browser: type keywords in French (or any language) or paste a category link, and get one row per listing with the title, price in euros, material, style, category, the main photo and the link. Turn on monitoring and each run returns only the listings that appeared, or got cheaper, since the previous run.

Who it's for

  • Dealers and sourcing agents hunting vintage pieces on the French market who lose good finds to whoever refreshes the page fastest. A watchlist on "commode scandinave" or "fauteuil vintage", run every hour, puts new listings in your Discord or Telegram without keeping a tab open.
  • Interior designers researching what a style or material genuinely costs on the French vintage market right now.
  • Resellers who want a price-check before they flip a piece, or a running log of a keyword's price movement.
  • Bot and workflow builders who are tired of maintaining their own scraper each time Selency changes its site. You get a stable JSON row per listing and keep your own logic.

Why this one

  • Free-text French keyword search, not a fixed category list — search exactly the way a Selency buyer does ("chaise scandinave", "vaisselle Digoin", "luminaire art deco"). A pasted selency.fr/c/<category> link also works.
  • Monitoring built in, not bolted on. deltaMode remembers what each watchlist has seen. New listings and price drops (with your own minimum drop %) come back; everything else is removed before billing. A quiet run returns one summary row and costs only the start fee.
  • Dealer transparency. Selency mixes professional dealers and private sellers; sellerType tells you which, straight from Selency's own seller flag. You get an anonymous seller hash to group listings by seller without a name.
  • Material and style, not just price. Selency tags most listings with a material (bois, teck, laiton...) and a style (scandinave, art déco, vintage...) — useful filters for a design-focused search that a plain keyword match would miss.

What you get

By default each listing is its own row. Every row also repeats the search it came from.

FieldWhat it is
listingId, url, titleSelency's listing ID, the listing link and its title
price, currencyThe price in euros
category, material, styleSelency's own tags, in French, when it shows them
isDiscounted, discountPctSelency's own discount flag and percentage (its own permanent record, independent of this actor's monitoring)
postedAtWhen the listing was published
imageUrlLink to the main photo (links only, nothing is downloaded)
countryThe seller's country
sellerType, sellerHashpro or private, and an anonymous 16-character seller hash
isNew, changeType, firstSeenAtMonitoring: new, price-drop or seen, and when this watchlist first saw it
previousPrice, priceDropPctMonitoring: the price last seen and the drop in %, on price-drop rows
searchQuery, listingCount, totalAvailable, truncatedThe search summary
newCount, priceDropCount, monitorStatusMonitoring summary

Not in this actor: a structured condition grade. Selency is a 100% pre-owned/vintage marketplace (no listing sampled during this build carried anything but "used"), so there is no varying condition signal worth a column — every item is, by definition, a used/vintage piece.

Monitoring: new listings and price drops

The recipe most buyers use:

  1. Put your search in searches (keywords, or paste a Selency category link), and turn on Only return listings that are new, or cheaper, since the last run (deltaMode).
  2. Optionally turn on Seed silently so the first run remembers today's listings without sending them all to your webhook.
  3. Save it as a Task and add an hourly Schedule in Apify.
  4. Add a webhook or integration on the Task for Run succeeded: Discord or Slack webhook, Telegram bot via n8n or Make, a Google Sheets append, or an HTTP call to your own bot.
{
"searches": ["commode scandinave"],
"maxPrice": 800,
"deltaMode": true,
"skipFirstRun": true,
"alertOnNew": true,
"alertOnPriceDrop": true,
"minPriceDropPct": 10
}

How it decides:

  • New means this watchlist has never returned that listing ID before.
  • Price drop means the euro price is at least minPriceDropPct below the price last seen. The remembered price updates every run, so a second cut is measured from the latest price. This is independent of Selency's own isDiscounted/discountPct flag, which is always included either way.
  • Unchanged listings are removed before you are billed. A run with nothing new returns one summary row with monitorStatus: NO_NEW_ROWS, listingCount: 0, and costs only the start fee.
  • Each watchlist remembers up to 5,000 listings, oldest forgotten first.

The window limitation. A run only sees the newest maxListingsPerSearch listings (60 by default). A listing that drops in price after it has slid out of that window is not seen again. For price-drop alerts keep searches narrow or raise maxListingsPerSearch.

France only. This actor reads Selency's .fr site and its FR search index. Selency also runs .co.uk and .nl sites; those are not covered by this actor.

Price

  • Listings: $3 per 1,000 listings returned, plus a $0.00005 start fee per run.
  • A monitoring run with nothing new costs the start fee only. A search that returns nothing is never billed.

How to use

  1. In the Apify Console. Open the actor page and click Start — the searches field is already pre-filled with a working example. Results land in the run's dataset as soon as each item is found.
  2. Via the API. Call it directly with a POST request — no Console needed once you have an API token:
    curl "https://api.apify.com/v2/acts/accountable_eel~selency-listing-lookup/run-sync-get-dataset-items?token=<YOUR_TOKEN>" \
    -X POST \
    -H "Content-Type: application/json" \
    -d '{"searches":["chaise scandinave"]}'
  3. On a schedule. Save this actor as an Apify Task with the input you want, then add a Schedule (hourly, daily, weekly) so it runs on its own — no server of your own required.

Tips:

  • Search in French for the best coverage ("commode" not "dresser") — Selency's own catalog is French, and Algolia's text match favors the listing's own language.
  • includeKeywords/excludeKeywords match the title, category, material and style before billing, so "reproduction" in excludeKeywords never costs you a row.
  • minPrice/maxPrice filter on Selency's own current price (after any discount), applied inside the search itself, not after.

Input

{
"searches": [
"chaise scandinave"
]
}

One search per line — any French (or other) keywords, e.g. "chaise scandinave", "commode vintage", "luminaire art deco". A pasted selency.fr category link (.../c/

Sample output

queryfoundstatussearchQuerylistingCounttotalAvailabletruncatednewCountpriceDropCountmonitorStatuslistingslistingIdtitlepricecurrencycategorymaterialstyleisDiscounteddiscountPctpostedAtimageUrlcountrysellerTypesellerHashsellerIdsellerNamechangeTypeisNewpreviousPricepriceDropPctfirstSeenAturlscrapedAt
chaise scandinavetrueOK<monitoring status (quiet / seeded runs)><all listings found (full list)> <price (eur)><category (selency's own, in french)><material, when selency shows one><style, when selency shows one><selency's own discount flag><selency's own discount %><posted (published)><seller's country><seller type (pro / private)><seller/shop id (raw seller info only)><seller name (raw seller info only)><new / price-drop / seen><is this listing new?><previous price seen by this monitor (eur)><price drop % (this monitor)>1970-01-01T00:00:00.000Z

A real row from a chaise run (2026-09-22), trimmed:

{
"searchQuery": "chaise scandinave",
"listingCount": 5,
"totalAvailable": 26378,
"listingId": "c34367ffb890396b9d9b3c9191410868",
"url": "https://www.selency.fr/p/CDY21CVC/chaises-longues-en-cuir-de-style-mid-century-par-burkhard-vogtherr-pour-rosenthal-annees-1970",
"title": "Chaises longues en cuir de style mid-century par Burkhard Vogtherr pour Rosenthal, années 1970.",
"price": 1099,
"currency": "EUR",
"category": "S'asseoir",
"material": "bois (Matériau)",
"style": "vintage",
"isDiscounted": true,
"discountPct": 15,
"postedAt": "2026-09-18T09:25:39.000Z",
"imageUrl": "https://images.selency.com/08f41df2-ac9c-4ff7-b7af-98c5aadb552d.jpg",
"country": "PL",
"sellerType": "pro",
"sellerHash": "9e0a2f6c1d5b8347"
}

Use it from Clay, n8n, Make, or an AI agent

This actor runs synchronously over plain HTTP — call it directly from a script, a workflow tool, or an AI agent, no Apify Console needed once you have an API token.

curl "https://api.apify.com/v2/acts/accountable_eel~selency-listing-lookup/run-sync-get-dataset-items?token=<YOUR_TOKEN>" \
-X POST \
-H "Content-Type: application/json" \
-d '{"searches":["chaise scandinave"]}'

n8n. Add an HTTP Request node: Method POST, URL https://api.apify.com/v2/acts/accountable_eel~selency-listing-lookup/run-sync-get-dataset-items?token=<YOUR_TOKEN>, Body Content Type JSON, JSON Body {"searches":["chaise scandinave"]} (swap in an expression from an earlier node for a real value).

Clay. Add an "HTTP API" column: Method POST, URL https://api.apify.com/v2/acts/accountable_eel~selency-listing-lookup/run-sync-get-dataset-items?token=<YOUR_TOKEN>, Body {"searches":["{{search}}"]}, mapping the row's search into the searches array.

MCP. In Claude, Cursor, or any MCP client with the Apify MCP server, ask for "Selency Scraper: Vintage Furniture Price Alerts" — the agent will find and run this actor.

Discord or Slack alerts without code. Schedule the monitoring Task hourly, then add an integration on the Task: in n8n or Make, trigger on "Apify: run succeeded", read the run's dataset, skip rows where listingCount is 0, and post title, price, material and url to a Discord or Slack webhook. Google Sheets users can append the same rows for a running price log.

vs. alternatives

What it costsWhat you getTrade-off
This actor$3 per 1,000 listings, quiet monitoring runs freeFree-text French keyword search, material/style tags, built-in new-listing and price-drop monitoringFrance only; no structured condition grade, because Selency is 100% pre-owned by design
Checking Selency by handFree, plus your timeFull controlDoesn't scale past a handful of searches and misses whatever appears between visits

Data & privacy

Data & privacy. This actor reads public search results that anyone can see without logging in. It doesn't log in, solve CAPTCHAs or reveal hidden contact details. Seller identity is off by default: you get a pro/private flag and an anonymous seller hash so you can group listings by seller without names. Turning on seller info makes you responsible for having a lawful reason to process it. Not affiliated with Selency.

FAQ

Is this allowed? It collects the same public listing data your browser shows, for the searches you choose. It's built for monitoring a search, not for copying the marketplace. Check that your use fits Selency's terms and your local law.

Why did my monitoring run return nothing? Nothing new or cheaper appeared since the last run. You get one row with

monitorStatus: NO_NEW_ROWS
and are charged only the start fee. On the very first run with "Seed silently" on, the status is SEEDED.

Does it cover selency.co.uk or selency.nl? No — this actor reads the French site and index only. See "France only" above.

Why is material or style sometimes empty? Selency only tags a listing with these when the seller filled them in — not every listing has both.

What do I need to set up? Nothing. No Selency account, no cookies, no proxy settings.

Can an AI agent call this? Yes, through the Apify MCP server or the API call shown above. Ask for "Selency Scraper: New Listing & Price Drop Alerts".