ResQ Club Scraper - Surplus Food Offers & Venues avatar

ResQ Club Scraper - Surplus Food Offers & Venues

Pricing

from $1.20 / 1,000 offer or venue records

Go to Apify Store
ResQ Club Scraper - Surplus Food Offers & Venues

ResQ Club Scraper - Surplus Food Offers & Venues

Scrape ResQ Club surplus food offers in Finland, Sweden and Estonia: name, price, current price, discount, portions left, pickup and order windows, tags and photo, plus the venue address, phone, website, coordinates and ratings. Search by area, name or country, or paste venue links.

Pricing

from $1.20 / 1,000 offer or venue records

Rating

0.0

(0)

Developer

Abot API

Abot API

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Share

ResQ Club (resq-club.com) is the Nordic surplus-food marketplace where restaurants, cafes, bakeries, grocery stores and florists sell what would otherwise be thrown away, usually at a large discount. This scraper turns that live inventory into a dataset: every surplus offer on sale right now, with its price, its discount, how many portions are left, when it can be collected, and the venue behind it.

It covers the whole footprint in one run. Ask for a city, a radius, a venue name or a country, or paste the venue links you already care about, and get a flat row per offer with 46 columns. Turn on the venue directory option and you also get every partner venue that happens to have nothing listed today, which is how you build a complete map of the network rather than a snapshot of one morning.

Why This Scraper?

  • 46 columns per row, covering the offer (name, description, price, current price, discount, portions left, pickup window, order window, tags, photo) and the venue behind it (name, description, address, country, coordinates, phone, website, rating counts).
  • Two ways in. Search by area and radius, by venue name, or by country. Or paste venue links and read exactly those.
  • The whole network, not one city. One run can cover Finland, Sweden and Estonia together; the venue list carried 3,403 partners when this actor was built.
  • Venue directory on demand. Optionally return partner venues that list nothing right now, so the output is a directory of the network rather than only today's deals.
  • Sold-out offers are optional. Off by default you get only what can still be bought; switch them on to measure how fast things go.
  • Built for scheduling. Incremental mode returns only NEW, UPDATED, REAPPEARED and EXPIRED rows, so a daily run is cheap and the changes are the output.
  • Honest empty results. A run that could not read the source fails loudly instead of returning an empty dataset that looks like "nothing on sale today".

Data You Get

Sample shape - values are illustrative placeholders, not from a live listing.

FieldExample
recordTypeoffer
offerId10000001
urlhttps://app.resq-club.com/offer/10000001
offerNameSample Surprise Bag
offerDescriptionSample description of what is inside the bag.
price5.9
currentPrice4.9
currencyEUR
discountPercent16.9
unitsLeft2
isSoldOutfalse
pickupStart2026-01-01T00:00:00.000Z
pickupEnd2026-01-01T00:00:00.000Z
tags["snack","dessert"]
imageUrlhttps://resq-club.com/app/img/offers/00000000.jpg
venueId00000001
venueUrlhttps://resq-club.com/app/#provider/00000001
venueNameSample Cafe
addressSample Street 1, 00100 Sample City
countryfin
latitude60.1700
longitude24.9400
phone+358000000000
websitehttps://example.com
reviewsTotal33

Every row also carries each price in the currency's smallest denomination (priceMinorUnits, currentPriceMinorUnits), the order window (orderStart, orderEnd), the resolved tag labels (tagNames), the venue description, country name, distance from the search point, language, live offer and portion counters, the full rating breakdown (reviewsGood, reviewsOkay, reviewsBad, positiveReviewPercent), and the incremental quartet (changeType, changedFields, firstSeenAt, lastSeenAt): 46 columns in total.

A directory record (recordType: "venue") carries every venue column above and leaves the offer columns empty.

How to Use

Everything on sale near a point

{
"mode": "search",
"locations": ["60.1699,24.9384"],
"radiusKm": 5,
"maxItems": 50
}

A whole country, only bakery-style offers, including what is already gone

{
"mode": "search",
"countries": ["fin"],
"tags": ["pastry", "dessert"],
"includeSoldOutOffers": true,
"maxItems": 200
}

Add "includeVenuesWithoutOffers": true to any search to also receive the partner venues that list nothing right now, which turns the same run into a full directory of the network. Those records are billed as the venue-directory event.

Specific venues by link

{
"mode": "url",
"urls": [
"https://resq-club.com/app/#provider/282",
"1835"
],
"maxItems": 50
}

Daily monitoring, only what changed

{
"mode": "search",
"locations": ["Helsinki"],
"radiusKm": 10,
"incrementalMode": true,
"emitExpired": true,
"maxItems": 0
}

Input Parameters

ParameterTypeDefaultDescription
modestringsearchsearch picks venues out of the venue list; url reads only the venues you paste.
locationsarray(empty)Search mode. One area per entry: lat,lng or a place name. Empty means every country.
radiusKminteger25Search mode. How far from each area to look, 1 to 500.
searchPhrasestring(empty)Search mode. Keep only venues whose name contains this text.
includeVenuesWithoutOffersbooleanfalseSearch mode. Also return venues that list nothing right now. Each such record is billed as the venue-directory event.
urlsarray(empty)URL mode. Venue links such as https://resq-club.com/app/#provider/282, or bare venue ids.
countriesarray(empty)Keep only fin, swe or est venues. Applies in both modes.
tagsarray(empty)Keep only offers carrying one of these tag ids. Applies in both modes.
includeSoldOutOffersbooleanfalseAlso return offers with no portions left. Applies in both modes.
maxItemsinteger20Stop after this many records. 0 means no limit.
maxPagesinteger0Optional. Venues are read 25 at a time; 0 goes as deep as the list allows.
resumeFromRunIdstring(empty)Continue an interrupted run without repeating records it already returned.
incrementalModebooleanfalseReturn only what changed since the last run with the same settings.
stateKeystring(empty)Name a monitoring campaign, or deliberately share state between runs.
emitUnchangedbooleanfalseAlso return UNCHANGED rows in incremental mode.
emitExpiredbooleanfalseAlso return EXPIRED rows in incremental mode.
proxyConfigurationobject{ "useApifyProxy": true }Apify Proxy settings.
mcpConnectorsarray(empty)Optional MCP connectors to pipe results into. Never changes the dataset.
notionParentPageUrlstring(empty)Notion page under which item pages are created. Notion connector only.
maxNotifyListingsinteger50Cap on items written to each connector per run. Does not affect the dataset.

Output Example

Sample shape - values are illustrative placeholders, not from a live listing.

{
"recordType": "offer",
"offerId": 10000001,
"url": "https://app.resq-club.com/offer/10000001",
"offerName": "Sample Surprise Bag",
"offerDescription": "Sample description of what is inside the bag.",
"price": 5.9,
"currentPrice": 4.9,
"currency": "EUR",
"discountPercent": 16.9,
"priceMinorUnits": 590,
"currentPriceMinorUnits": 490,
"unitsLeft": 2,
"isSoldOut": false,
"pickupStart": "2026-01-01T00:00:00.000Z",
"pickupEnd": "2026-01-01T00:00:00.000Z",
"orderStart": "2026-01-01T00:00:00.000Z",
"orderEnd": "2026-01-01T00:00:00.000Z",
"tags": ["snack", "dessert"],
"tagNames": ["Snack", "Dessert"],
"imageUrl": "https://resq-club.com/app/img/offers/00000000.jpg",
"venueId": 1,
"venueUrl": "https://resq-club.com/app/#provider/1",
"venueName": "Sample Cafe",
"venueDescription": "Sample venue description.",
"address": "Sample Street 1, 00100 Sample City",
"country": "fin",
"countryName": "Finland",
"latitude": 60.17,
"longitude": 24.94,
"distanceKm": 1.234,
"phone": "+358000000000",
"website": "https://example.com",
"isBestOf": true,
"isNewVenue": false,
"venueLanguage": "fi",
"venueOffersLeft": 2,
"venueUnitsLeft": 3,
"reviewsGood": 22,
"reviewsOkay": 4,
"reviewsBad": 7,
"reviewsTotal": 33,
"positiveReviewPercent": 66.7,
"changeType": "NEW",
"changedFields": [],
"firstSeenAt": "2026-01-01T00:00:00.000Z",
"lastSeenAt": "2026-01-01T00:00:00.000Z"
}

Send results into your apps (MCP connectors)

Results can optionally be piped straight into the tools you already use, through Model Context Protocol (MCP) connectors. Authorize a connector once under Apify, Settings, API & Integrations, then select it in the mcpConnectors field. Notion receives a rich page per record; other connectors receive a best-effort write or a digest. Set notionParentPageUrl to tell the Notion export where to create the pages, and maxNotifyListings to cap how many records each connector receives in one run. Leaving mcpConnectors empty skips the export entirely, and the export never changes what lands in the dataset.

Plan Requirement

Only public, unauthenticated venue and offer data is read; no account is created and nothing is purchased. Offers are short-lived by nature, so a venue that had five offers this morning can have none by the afternoon. Keep usage respectful of the source's terms.

๐Ÿ”— Want more grocery data?

Pair this actor with these related scrapers from the same team:

๐Ÿฅฆ FoodHero Scraper
Scrape FoodHero surplus grocery deals across Canada by area, store or offer ID. Extract...
๐Ÿฅฆ Instacart Scraper
Scrape Instacart grocery catalogs with per-store prices. Run keywords across several...
๐Ÿฅฆ Lidl.es Products, Weekly Offers, Prices & Reviews Scraper
Scrape Lidl.es grocery and non-food products across weekly offers, tools, home, garden...
๐Ÿฅฆ REWE.de Scraper
Scrape REWE Germany (rewe.de) grocery products: current price, was-price and discount...
๐Ÿฅฆ Flashfood Scraper
Scrape Flashfood discounted groceries and stores by location or store. Extract current...
๐Ÿฅฆ ALDI AU Scraper
Scrape ALDI Australia (aldi.com.au) products: name, brand, price, was-price, savings...

๐Ÿ‘‰ Browse all abotapi scrapers

๐Ÿ’ฌ Support & custom scrapers

  • ๐Ÿž Found a bug or a missing field? Open a ticket on the Issues tab. We usually reply within hours.
  • ๐Ÿ› ๏ธ Need another site, extra fields or a private build? Email abotapi@proton.me or message Telegram @abotapi.
  • โญ Enjoying it? A quick review on the actor page helps other users find it.