Skip to content
    ↑↓ to choose · Enter to open

    · 12 min read

    Aldi US Scraper: 21 Data Fields, Up to 1,000 Free Results/Month (2026)

    By CrawlerBros Engineering Team

    Each record carries 21 fields, including current price, unit size, brand, dietary tags, stock levels, and promotional discounts direct from Aldi storefront data. You can search by keyword or browse curated collections like weekly specials and price drops without an account. A thousand results cost $5.00 on the free-plan price, and the tool uses Apify's free datacenter proxy pool automatically. This is built for retail analysts, price comparison developers, and researchers tracking private-label assortments. It is not for teams needing store-level physical stock counts across individual retail locations, which this data does not provide.

    Try it before you read further. Apify's free plan includes $5.00 of usage every month with no credit card, enough for up to 1,000 results at $0.005 each before platform usage. Open Aldi US Scraper on Apify and run the prefilled example.

    How reliable is Aldi US Scraper in production?

    Across the last 30 days of public runs on the Apify platform, Aldi US Scraper recorded 188 runs with the following outcomes.

    Outcome Runs Share
    Succeeded 188 100.0%
    Failed 0 0.0%
    Aborted by the user 0 0.0%
    Timed out 0 0.0%
    Total 188 100.0%

    No run failed or timed out in the last 30 days. Keep a retry and an alert on scheduled runs all the same: a clean month is a record, not a guarantee.

    What does it cost to run Aldi US Scraper?

    Each result costs $0.005 on Apify's free plan, which is $5.00 per 1,000 results. Starting a run is charged separately at $0.005 per GB of Actor memory. Apify also bills the platform usage each run consumes, at the rates of your Apify plan, on top of these charges.

    Apify plan Per result Per 1,000 results
    FREE $0.005 $5.00
    BRONZE $0.00433 $4.33
    SILVER $0.00367 $3.67
    GOLD $0.003 $3.00
    PLATINUM $0.003 $3.00
    DIAMOND $0.003 $3.00

    Worked example: collecting 10,000 results costs $50.00 in result charges before run-start fees and platform usage. No run failed or timed out in the last 30 days, so the list price is a fair budget; keep a retry in place all the same.

    The maxItems control has the largest impact on total run charges because dataset fees scale per written result. Running your initial test with maxItems set to 24 keeps result charges capped at $0.12. This lets you confirm that fields like pricePerUnit and subcategory fit your workflow before scaling.

    How do you run Aldi US Scraper from the API?

    The schema marks 1 of its 9 controls as required: mode. Nothing in the payload below is illustrative. Those are the schema's prefilled defaults for Aldi US Scraper, so the request works once your token is in place.

    Call the synchronous endpoint to start a run and receive dataset items in one request:

    curl -X POST "https://api.apify.com/v2/acts/crawlerbros~aldi-us-scraper/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
      -H "Content-Type: application/json" \
      -d '{"mode":"search","searchQuery":"milk","category":"weekly-specials","onSaleOnly":false,"maxItems":24,"proxyConfiguration":{"useApifyProxy":true}}'
    

    The same run from Python, using the official client:

    from apify_client import ApifyClient
    
    client = ApifyClient("<YOUR_APIFY_TOKEN>")
    
    run_input = {
      "mode": "search",
      "searchQuery": "milk",
      "category": "weekly-specials",
      "onSaleOnly": False,
      "maxItems": 24,
      "proxyConfiguration": {
        "useApifyProxy": True
      }
    }
    
    run = client.actor("crawlerbros~aldi-us-scraper").call(run_input=run_input)
    
    for item in client.dataset(run["defaultDatasetId"]).iterate_items():
        print(item)
    

    And from Node.js:

    import { ApifyClient } from 'apify-client'
    
    const client = new ApifyClient({ token: '<YOUR_APIFY_TOKEN>' })
    
    const input = {
      "mode": "search",
      "searchQuery": "milk",
      "category": "weekly-specials",
      "onSaleOnly": false,
      "maxItems": 24,
      "proxyConfiguration": {
        "useApifyProxy": true
      }
    }
    
    const run = await client.actor('crawlerbros~aldi-us-scraper').call(input)
    const { items } = await client.dataset(run.defaultDatasetId).listItems()
    console.log(items)
    

    Because the call is synchronous, your client waits for the whole run. Keep it for exploration. For scheduled work, start the run without waiting and collect the dataset afterwards, so network trouble costs you a retry rather than the results.

    Which Aldi US Scraper inputs matter, and which can you skip?

    The required mode parameter dictates how the Actor navigates, offering search, byCategory, and weeklyDeals. On your first run, enter a single item term in searchQuery or select a collection in category while keeping brand, minPrice, and maxPrice unset. This isolates basic storefront coverage before applying restrictive criteria.

    • mode (string): What to fetch. Default: "search".
    • searchQuery (string): Free-text product search, e.g. milk, chicken, chocolate. Default: "milk".
    • category (string): Aldi's curated storefront collection to browse. Aldi US does not expose a stable server-rendered department/aisle browse page, so these official collections are the reliable browse surface. Default: "weekly-specials".
    • minPrice (number): Drop products cheaper than this.
    • maxPrice (number): Drop products pricier than this.
    • onSaleOnly (boolean): Only emit products currently on a promotional offer. Default: false.
    • brand (string): Only emit products whose brand contains this text (case-insensitive), e.g. Aldi, Friendly Farms.
    • maxItems (integer): Hard cap on emitted records (Aldi serves up to ~24-50 products per search/collection view). Default: 24.
    • proxyConfiguration (object): Uses Apify's free datacenter proxy pool. A direct (no-proxy) fallback is used automatically if needed. Default: {"useApifyProxy":true}.

    Fixed-choice controls: mode accepts search (Search products), byCategory (Browse a collection), weeklyDeals (Weekly deals / specials); category accepts weekly-specials (Weekly Specials), price-drops (Price Drops), this-weeks-aldi-finds (This Week's ALDI Finds), aldi-finds (ALDI Finds), aldi-brands (ALDI Exclusive Brands), upcoming-aldi-finds (Upcoming ALDI Finds).

    What does Aldi US Scraper return?

    Output records provide structured product listings complete with unit pricing, brand markers, image URLs, and discount percentages ideal for market research and comparison feeds. They do not contain physical store aisle mapping or customer review data.

    • productId, name, brand, unit (pack size, e.g. 8 oz, 1 gal)
    • price - current price (USD)
    • originalPrice, discount, discountPercent - only present when the product is discounted
    • subcategory - Aldi's own fine-grained product category (e.g. Hass Avocado, Canned Coconut Milk and Cream)
    • category - the collection name, when browsing a collection or weekly deals
    • imageUrl, productUrl
    • isOnSale, inStock, stockLevel (e.g. High stock, In stock, Limited stock)
    • pricePerUnit - Aldi's own per-unit price string (e.g. $0.13/oz, $1.10 each)
    • isStoreBrand - true when the product is one of Aldi's own private-label brands
    • dietaryAttributes - dietary/shopping tags when Aldi flags them (e.g. Organic, Gluten Free, Low Sugar, Lactose Free, Preservative Free)
    • sourceUrl, scrapedAt, recordType: "product"

    These are the documented fields. Optional ones can be empty on a given record, so measure how often each field your deliverable depends on is populated across a real sample before automating the handoff.

    How do you build the workflow end to end?

    Open Aldi US Scraper and work through these in order. Each step ends with something to check, so a bad configuration surfaces on a small run rather than a scheduled one.

    1. Set the required mode parameter to search, byCategory, or weeklyDeals depending on whether you want query results, collections, or sales.
    2. If mode is set to search, enter a target product query like milk into searchQuery and leave category default.
    3. If mode is set to byCategory, select a valid option like weekly-specials or aldi-finds in category.
    4. Set maxItems to 24 for your initial test run to limit charges while verifying output structure.
    5. Optionally filter your run by passing a string to brand or setting onSaleOnly to true.
    6. Leave proxyConfiguration set to useApifyProxy: true to rely on the default datacenter proxy pool.
    7. Execute the run and inspect the returned dataset to ensure output contains expected fields like productId, price, and subcategory.
    8. Verify that isStoreBrand and dietaryAttributes are accurately populated before scheduling larger automated runs.

    How do you apply it? Three worked playbooks

    These are Aldi US Scraper's own documented use cases, each worked through as an operating pattern rather than a description.

    Use case 1: Price monitoring

    Outcome: Track Aldi US prices and promotions over time

    Configure: Set mode to "byCategory", category to "weekly-specials", and maxItems to 50.

    Working method: Execute the run on a regular schedule, log dataset outputs to a database, and trace changes in price or discount for each productId over time.

    Deliverable: A structured database log or export tracking historical price and discountPercent values by productId.

    Stop condition: The run returns zero products or price is missing across all output records.

    Use case 2: Grocery comparison apps

    Outcome: Feed real Aldi US pricing into a comparison tool

    Configure: Set mode to "search", searchQuery to "chicken", and maxItems to 24.

    Working method: Execute search queries across key product keywords, map price against unit and pricePerUnit, and ingest records into your application backend.

    Deliverable: An API-ready JSON dataset mapping Aldi product names, prices, units, and images for grocery catalog matching.

    Stop condition: Output records lack unit or pricePerUnit values needed for standardized unit comparison.

    Use case 3: Deal alerts

    Outcome: Surface products newly on offer or freshly price-dropped

    Configure: Set mode to "weeklyDeals", onSaleOnly to true, and maxItems to 50.

    Working method: Run weekly deals extraction, filter dataset records where isOnSale is true, and send products with high discountPercent to your notification system.

    Deliverable: A promotional summary listing on-sale items with current price, originalPrice, and discount statistics.

    Stop condition: Output datasets include items marked on sale where discount is missing or zero.

    What breaks, and how do you design around it?

    • Over the last 30 days, 0.0% of public runs failed and 0.0% timed out. Build retries and alerting around those rates rather than assuming every run completes.

    Aldi serves roughly 24 to 50 products per view, capping maxItems per run. To pull larger sets, split your pipeline into multiple targeted runs across distinct search terms or specific curated collections. If queries return zero records, verify that your brand or price filters are not overly strict.

    When should you not use Aldi US Scraper?

    Do not use this Actor if you need localized store-level weekly ad prices and regional circulars linked to postal codes. Instead, use Flipp Grocery Deals Scraper to aggregate flyer pricing across multiple supermarket chains. If you are scraping international grocery catalogs, this tool will not work; use Woolworths Australia Scraper for Australian inventory or Morrisons Groceries Scraper for United Kingdom storefronts. If your project requires navigating a fixed server-rendered department tree rather than curated collections, you will need a custom solution because Aldi does not publish static aisle pages.

    What should you check before trusting the output?

    • Verify that productId is present and non-empty on every record.
    • Check that price contains a valid numeric dollar amount.
    • Ensure originalPrice, discount, and discountPercent are present whenever isOnSale is true.
    • Confirm that category is populated with the collection name when mode is set to byCategory or weeklyDeals.
    • Halt execution if more than 20% of records in a run return empty subcategory fields.

    None of this proves a record is correct. It gives a scheduled Aldi US Scraper run defined points where it should stop instead of quietly passing bad data downstream.

    Frequently asked questions

    How reliable is the Aldi US Scraper for scheduled tasks?

    In the last 30 days, all 188 runs succeeded with zero failures or timeouts. Because it reads public storefront data directly, it provides a stable operational foundation for automated pricing workflows.

    What does it cost to extract 1,000 product records?

    On the free-plan price, results cost $0.005 each, which equals $5.00 per 1,000 results. Apify offers $5.00 in monthly usage on the free plan, allowing you to fetch up to 1,000 records at no initial cost before platform run charges apply.

    Do I need to supply proxy credentials to run this Actor?

    No proxy configuration is required. The Actor uses Apify's free datacenter proxy pool automatically and includes an automatic direct connection fallback if necessary.

    Why are fields like discount and originalPrice missing on some items?

    Empty fields are omitted from output records to save space. Promotional attributes like originalPrice, discount, and discountPercent are only populated when Aldi flags an item with isOnSale set to true.

    Why does the byCategory mode use collections instead of department aisles?

    Aldi US does not expose stable server-rendered department or aisle browse pages. The curated collections provided in category, such as weekly-specials and aldi-finds, serve as official reliable browse surfaces.

    Where to go next

    When you are ready to run it, open Aldi US Scraper on Apify; the free plan covers up to 1,000 results a month.

    Start with the Aldi US Scraper Actor page for the current input schema, pricing tier, and run history.

    If you are comparing approaches rather than committing to one Actor, these category pages list every option we publish:

    Other Actors we maintain for related data:

    • Woolworths Australia Scraper: Scrape Woolworths Australia groceries - search products by keyword, browse any of 19 departments, or pull current specials.
    • Morrisons Groceries Scraper: Scrape Morrisons UK online groceries - search products, browse by department, or pull current promotions.
    • Flipp Grocery Deals Scraper: Scrape real store-level weekly-ad prices near any US or Canadian postal code - Kroger, Publix, ALDI, Walmart, Target, Costco, CVS, Walgreens and dozens more retailers.
    • Hodinkee Shop Scraper: Scrape the Hodinkee Shop - curated luxury and limited-edition watches.
    • Collective Horology Scraper: Scrape Collective Horology - a curated independent luxury watch boutique.
    • Banggood Product & Price Scraper: Scrape Banggood.com - search by keyword, browse by category, or fetch full product detail by URL.

    Related guides:

    Resources

    • Actor documentation, input schema, and pricing: verified against the published Actor on 2026-09-25.

    • Actor last updated by its maintainers on 2026-07-02.

    • Run outcome figures cover the 30 day public window ending 2026-09-25.

    • Aldi US Scraper on Apify

    Featured actors

    Aldi US Scraper

    Scrape Aldi US groceries - search products by keyword, browse curated collections (Weekly Specials, ALDI Finds, Price Drops, ALDI Brands), real prices, discounts and images.

    Run on Apify ↗