Halfords UK Product Scraper avatar

Halfords UK Product Scraper

Under maintenance

Pricing

from $0.40 / 1,000 results

Go to Apify Store
Halfords UK Product Scraper

Halfords UK Product Scraper

Under maintenance

Search Halfords UK products, scrape public category listings, fetch exact product IDs, and collect normalized prices, URLs, images, and available product metadata.

Pricing

from $0.40 / 1,000 results

Rating

0.0

(0)

Developer

Dmitriy Gyrbu

Dmitriy Gyrbu

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

11 hours ago

Last modified

Share

Scrape Halfords UK product listings and exact product IDs into clean, normalized records for price monitoring, catalog research, ecommerce analysis, and product discovery.

The Actor has a credential-free public mode for normal buyer workflows. Search, public category URLs/paths, and exact product IDs can currently run without a Halfords SLAS secret. An optional SLAS credential enables the authenticated API path for advanced controls such as numeric category IDs and API pagination/filtering.

What you can collect

  • Product IDs and names
  • Current and regular/list prices when exposed by the source
  • Discount price when a lower current price is visible
  • Currency
  • Product page URLs
  • Product images
  • Brand, stock status, rating, review count, category ID, and barcode when the selected source path exposes them

Missing retailer data is returned as null or omitted; the Actor does not invent unavailable values.

Supported workflows

1. Search products

Use query for keyword search.

{
"query": "engine oil",
"limit": 10
}

The credential-free public route currently uses Halfords' public HTML and is intended for the first native listing page. limit caps how many matching rows are returned.

2. Scrape a public category

category_url is the clearest option:

{
"category_url": "https://www.halfords.com/motoring/engine-oils-and-fluids/engine-oil/",
"limit": 10
}

You can also provide a public path with category_slug:

{
"category_slug": "/motoring/engine-oils-and-fluids/engine-oil/",
"limit": 10
}

3. Fetch exact products by ID

Use product_ids for one or more Halfords product/SKU IDs:

{
"product_ids": ["224411"]
}

In credential-free mode the Actor resolves only exact matching IDs and does not substitute a fuzzy product.

4. Authenticated API mode (advanced)

If you already have a valid Halfords SLAS client credential, provide slas_secret or the HALFORDS_SLAS_SECRET environment variable. This enables the internal API route used for numeric category_id, API pagination, sort options, filters, and richer fields where Halfords exposes them.

A SLAS secret is not required for the normal public search, public category URL/path, or exact product-ID workflows above.

Input reference

FieldUse
queryKeyword product search
category_urlFull public Halfords category URL
category_slugPublic Halfords category path
product_idsExact product/SKU IDs
category_idNumeric/internal category ID; advanced authenticated route
limitMaximum rows to return from the selected listing/request
pageAPI page number; public credential-free listing currently supports page 1
sortAPI sort option; applies to authenticated API mode
filtersRaw Halfords refinement filters; applies to authenticated API mode
slas_secretOptional advanced Halfords SLAS credential
proxyConfigurationOptional Apify proxy configuration

Use one primary workflow at a time. If several selectors are supplied, the current execution priority is query → category (category_url / category_slug / category_id) → product_ids.

Output

Public credential-free rows use a compact normalized shape similar to:

{
"id": "224411",
"name": "TotalEnergies Quartz INEO MC3 5W/30 5L",
"brand": null,
"current_price": 33.5,
"price": 33.5,
"discount_price": null,
"currency": "GBP",
"availability": null,
"in_stock": null,
"source_url": "https://www.halfords.com/...",
"url": "https://www.halfords.com/...",
"images": ["https://..."],
"source": "halfords_public_html"
}

Depending on the route and source data, authenticated results can also expose fields such as image, rating, review_count, category_id, and barcode.

Notes and limitations

  • Halfords can change page markup or internal APIs without notice.
  • Public HTML can expose less metadata than the authenticated API, so fields such as brand or stock state may legitimately be null.
  • Credential-free search/category scraping currently targets the first native listing page; use the authenticated route when you need API pagination, sorting, or refinements.
  • Numeric category_id is an authenticated API feature. For credential-free category scraping, use category_url or category_slug.
  • Direct access currently works for the public fallback. Configure proxyConfiguration only when your network or a future Halfords change requires it.
  • A genuine no-match request can finish successfully with an empty Dataset.

Disclaimer

This Actor is unofficial and is not affiliated with or endorsed by Halfords. Users are responsible for complying with applicable terms, policies, and laws.

AI, MCP and automation contract

Every successful product row is self-describing and includes record_type=product, the resolved operation (search, category, or item), retailer=Halfords, country=GB, and an ISO-8601 retrieved_at timestamp. Existing product fields remain backward compatible. The source field identifies the route that produced the row (for example halfords_public_html).

For autonomous agents, use query for discovery, then reuse an exact returned id in product_ids for deterministic item resolution. A legitimate no-match returns an empty Dataset. Access/runtime failures are not converted into fake product rows. Public HTML search can legitimately omit brand or stock fields; the Actor keeps those values null rather than guessing. Exact product pages additionally extract brand and availability when Halfords exposes them in structured product markup.

The default Dataset is the canonical machine-readable output and can be consumed directly through the Apify API, MCP integrations, or downstream automation.