Veepee Scraper at a glance
Veepee Scraper is a ready-to-run Apify actor from abotapi for collecting news data. Its output documents 53 fields, including type, id, sale id, brand and name, which you can export as JSON, CSV or Excel or read through the Apify API. It costs $2.00 per 1,000 results on the Apify Free plan and from $1.20 on paid plans, with smaller per-run or optional feature charges listed on Apify.
- Runs on
- Apify cloud: console, API, schedules and integrations
- Data type
- News, Developer Tools
- Pricing
- $2.00 per 1,000 results (Free plan), from $1.20 on paid plans
- Output
- 53 documented fields · JSON, CSV, Excel
- Inputs
- 18 options
What Veepee Scraper can do
- Two ways in, every link shape covered. List the live sales of a market with optional keyword checks, or paste sale ids and links: bare ids, catalog links, product pages and legacy redirect links all resolve, and a full link always uses its own storefront. No need to build URLs by hand.
- Two record types, fully expanded. Campaigns carry brand, dates, operation code, sale type and logos; items carry price, was-price, discount percent, sizes, availability and deadlines.
- Five markets. France, Italy, Spain, Belgium and the Netherlands each map to their own storefront host and catalog partition, verified live.
- Built for schedules. Incremental mode returns only new and changed records on recurring runs, and a refused or session-blocked run fails loudly instead of returning an empty dataset.
Choose what to collect
These inputs let you configure Veepee Scraper - Flash Sales, Prices, Discounts & Sizes. Open the actor on Apify to enter your values and review the current options.
| Input | What it controls |
|---|---|
modestring | How to discover what to scrape. LIVE SALES & SEARCH lists the live flash sales of the selected market (anonymous) and optionally checks keywords against the site's search suggestions. PASTE IDS OR LINKS takes sale ids or Veepee links and returns their campaign rows plus, with Sale item detail on, per-item price and size rows. |
marketstring | Storefront country for Live sales & search (and for bare sale ids): fr (site 1), it (site 3), es (site 4), be (site 2), nl (site 7) verified live; de, lu, uk, pt best effort. A pasted full link always uses its own storefront. |
urlsarray | Veepee sale ids (e.g. 901048) or links (/gr/catalog/, product pages, legacy redirect links). A full link uses its own storefront (www.veepee.fr = France, www.veepee.it = Italy...); bare ids use the Market above. With Sale item detail on, each sale also returns its item rows. |
searchQueriesarray | Brand or theme keywords checked against the site's search suggestions (e.g. Nike). Leave empty to just list the live sales of the market. Only used when Mode = Live sales & search. |
includeItemsboolean | Fetch per-sale item rows (price, was-price, discount, sizes, availability) via the catalog API. The actor provisions its member session automatically and re-registers a fresh one if a saved session is ever rejected; off keeps the run to anonymous campaign rows only. |
includeItemDetailsboolean | Fetch each item's options/price endpoints (one extra request per item). Each enriched item bills the item-enrichment event; off by default so sale payload items bill only the dataset-item event. |
maxItemsinteger | The single cap: stop after this many records (0 = no limit). |
Show 11 more inputs
| Input | What it controls |
|---|---|
maxConcurrencyinteger | Parallel requests (1-5). Sale payloads are small; 3 is plenty. |
requestDelaySecsnumber | Politeness pause between fetches. |
resumeFromRunIdstring | Paste a previous run ID or dataset ID to continue an interrupted crawl without returning rows already collected there. For recurring monitoring of the same scope, use Incremental mode below instead. |
incrementalModeboolean | Turn this on for daily or recurring monitoring. The first run returns all matching records as NEW. Later runs normally return only NEW, UPDATED, and REAPPEARED records. Turn on Emit unchanged or Emit expired only when you also want those records returned. |
stateKeystring | Optional. Name this monitoring campaign to keep its state stable, or to deliberately share state across differently-configured runs. Leave empty to let the actor derive a key automatically from the mode, scope, and detail toggles. |
emitUnchangedboolean | Off by default. Turn on to also return records that have not changed since the last run, marked UNCHANGED. |
emitExpiredboolean | Off by default. Turn on to also return records that were present in a previous run but are no longer found, marked EXPIRED. Only produced once a run has fully scanned the tracked scope. |
ignoreFieldsForChangesarray | Output field names that should NOT make a record count as UPDATED. scrapedAt is always ignored because it is stamped fresh on every fetch. Ignored fields are still returned in the output. |
mcpConnectorsarray | Optionally send the scraped results into the apps you already use, via Model Context Protocol (MCP) connectors. Authorize a connector once under Apify → Settings → Integrations, then select it here. The connector receives a condensed, human-readable summary per item (title + key fields), not the full JSON, the complete record stays in the dataset. Leave empty to skip. Supported: Notion (https://mcp.notion.com/mcp), Linear (https://mcp.linear.app/sse), Airtable (https://mcp.airtable.com/mcp), Apify (https://mcp.apify.com). |
notionParentPageUrlstring | URL (or id) of the Notion page under which item pages are created. Required to enable the Notion export; ignored by other connectors. |
maxNotifyListingsinteger | Cap on items written to each connector per run. Does not affect the dataset. |
Fields in the output
The documented dataset includes the fields below. Availability can depend on the source page and selected mode.
typeType (text)idID (text)saleIdSale ID (number)brandBrand (text)nameName (text)operationCodeOperation (text)pricePrice (number)wasPriceWas (number)discountPctDiscount % (number)beginDateBegins (date)endDateEnds (date)deadlineDeadline (date)Show 41 more fields
availabilityAvailability (text)urlURL (link)saleUrlSale URL (link)changeTypeChange type (incremental mode) (text)changedFieldsChanged fields (incremental mode) (array)firstSeenAtFirst seen (incremental mode) (date)lastSeenAtLast seen (incremental mode) (date)saleTypeIdSale type (number)logoLogo (link)descriptionDescription (text)marketMarket (text)sourceSource (text)scrapedAtScraped at (date)brandsbrands (array)brandIdsbrandIds (array)imageimage (link)webImagewebImage (link)mobileImagemobileImage (link)logoslogos (object)taglinetagline (text)categoryIdcategoryId (number)saleBusinessIdsaleBusinessId (number)saleSectorIdsaleSectorId (number)saleSubSectorIdsaleSubSectorId (number)businessUnitbusinessUnit (number)isBrandAlertisBrandAlert (boolean)isShareableisShareable (boolean)isNewCatalogisNewCatalog (boolean)isPreopeningisPreopening (boolean)itemIdItem ID (text)currencyCurrency (text)sizesSizes (text)currencySymbolcurrencySymbol (text)quantityTotalquantityTotal (number)stockLabelstockLabel (text)comparisonPriceDescriptioncomparisonPriceDescription (text)paymentOptionspaymentOptions (array)imagesimages (array)thumbthumb (link)datasheetUrldatasheetUrl (link)sizeGuideUrlsizeGuideUrl (link)Example output
An example from this actor’s documentation. Values are illustrative; this is not a fresh live result.
{
"type": "campaign",
"id": "campaign:897798",
"saleId": 897798,
"brand": "Eden Park",
"operationCode": "EPARK112",
"beginDate": "2026-10-05T05:00:00Z",
"endDate": "2026-10-17T06:00:00Z",
"saleTypeId": 1,
"saleUrl": "https://www.veepee.fr/gr/catalog/897798",
"logo": "https://media.veepee.com/v1/media/2c9291ec-23fc-4b59-8817-ce3fedd8093b",
"market": "fr",
"source": "veepee"
}Ways to use this data
- Who: deal hunters and price trackers. What: watch flash-sale calendars per brand and get alerted when a new campaign opens or a price moves.
- Who: fashion resale and arbitrage sellers. What: collect discount depth and size availability across sales to spot stock worth listing elsewhere.
- Who: brand and retail analysts. What: track how often a brand appears, how long sales run, and how deep the markdowns go per market.
- Who: affiliate and content teams. What: feed live sale cards with dates, brand art and links into newsletters or deal pages automatically.
Before you run
Start with a small input and check the resulting records against your expected fields. Source content and actor options can change; the current Apify listing is the reference for availability and pricing.
Questions about this actor
What data does Veepee Scraper return?
Veepee Scraper returns 53 documented fields, including type, id, sale id, brand, name, operation, price and was. Availability of each field depends on the source page and the selected mode.
How much does Veepee Scraper cost?
It costs $2.00 per 1,000 results on the Apify Free plan and from $1.20 on paid plans, with smaller per-run or optional feature charges listed on Apify. The Apify listing shows the current rate for every plan.
Can I get only new or changed sales on a schedule?
Yes. Schedule the actor from the Schedules tab and turn on Incremental mode. Each run then returns only new and updated records, and unchanged ones are not billed.
Why did my sale run fail instead of returning an empty dataset?
If automatic session registration could not establish a session, the run stops with a clear message so "no session" is never confused with "sale has no items". The next run retries registration automatically; anonymous campaign rows are still returned when any could be read. If only some sales could be read, you still get what was found.
Can I use it with AI agents or MCP?
Yes. Call it from any Apify integration or MCP client, and use the connector field to push results into Notion, Linear or Airtable.
