Groupon Deal Scraper (12 Countries) avatar

Groupon Deal Scraper (12 Countries)

Pricing

from $3.00 / 1,000 search results

Go to Apify Store
Groupon Deal Scraper (12 Countries)

Groupon Deal Scraper (12 Countries)

Scrape deals from Groupon across DE, US, UK, FR, IT, ES, NL, BE, AT, PL, AU, IE. Extract prices, discounts, merchant info, ratings, locations with GPS coordinates, and images. Optional detail pages for descriptions, options, reviews, and fine print. HTTP-only, ~100MB RAM, fast and lightweight.

Pricing

from $3.00 / 1,000 search results

Rating

0.0

(0)

Developer

Alessandro Santamaria

Alessandro Santamaria

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Share

Groupon Deal Scraper — International

Scrapes deals from Groupon across 12 countries: DE, US, UK, FR, IT, ES, NL, BE, AT, PL, AU, IE.

How it works

  1. Loads Groupon browse pages which contain __NEXT_DATA__ with the full Apollo GraphQL cache
  2. Extracts deal cards (9 per page) from the SSR data — no browser needed
  3. Category fan-out: Discovers category sub-pages and loads each one to collect ~80 unique deals per city
  4. Deduplicates by UUID across categories
  5. Optionally fetches detail pages for full descriptions, options, locations, and reviews

Input

ParameterTypeDefaultDescription
countryenumDECountry code (DE, US, UK, FR, IT, ES, NL, BE, AT, PL, AU, IE)
citystringberlinCity name for URL path
categorystring""Optional category slug filter
querystring""Optional search keyword (overrides browse)
maxResultsinteger100Max deals to return
includeDetailsbooleanfalseFetch detail pages for full data
proxyConfigurationobjectApify proxyProxy settings

Output fields

SERP (always available)

title, deal_url, deal_id, deal_slug, merchant_name, merchant_rating, merchant_rating_count, price, original_price, currency, discount_percent, location_name, location_address, latitude, longitude, locations_total, image_url, category

Detail (with includeDetails: true)

description, highlights, fine_print, sold_quantity, expiry_date, merchant_website, merchant_phone, merchant_address, opening_hours, review_rating, review_count, options[], locations[]

Performance

  • HTTP-only — CheerioCrawler, ~128MB RAM
  • ~80 deals per city via category fan-out (no API calls needed)
  • Datacenter proxy works fine

Enrichment add-ons

After the scrape completes, this actor can automatically trigger AI-powered extraction on every merchant website found in the results. Each add-on runs as a separate actor and produces its own dataset.

Contact extraction

Extracts team member names, email addresses, phone numbers, positions, and departments from merchant websites. Powered by the Website Contact Extractor.

Enable it by setting enableContactExtraction: true and providing at least one LLM API key. The sub-actor run ID is stored in the key-value store as CONTACT_EXTRACTOR_RUN_ID.

Job listing extraction

Extracts open positions, job titles, locations, departments, and career page URLs from merchant websites. Powered by the Website Job Extractor.

Enable it by setting enableJobExtraction: true and providing at least one LLM API key. The sub-actor run ID is stored in the key-value store as JOB_EXTRACTOR_RUN_ID.

Browser fallback

Some websites are built with JavaScript frameworks (React, Vue, Angular) that require a full browser to render. When enableBrowserFallback is set to true, the contact/job extractors will automatically re-scrape these sites with Playwright. This catches ~25% more sites but increases cost and runtime. Only applies when contact or job extraction is enabled.

LLM API keys

Both add-ons use LLMs to extract structured data. Provide one or more API keys. When multiple keys are provided, the system uses them in priority order with automatic fallback:

  1. Gemini (recommended) -- Best quality-to-cost ratio. Free tier includes 1M tokens/min. Get a key at Google AI Studio.
  2. Groq (optional) -- Ultra-fast inference. Get a key at Groq Console.
  3. OpenRouter (optional) -- Access to 100+ models. Get a key at OpenRouter.

One key is sufficient. With multiple keys, if the primary provider hits a rate limit, the system falls back to the next available provider automatically.

Support

Found a bug or have a feature request? Open an issue.