HifiShark Used Hifi Listing Aggregator Scraper
HifiShark Used Hi-Fi Listing Aggregator Scraper
Scrape used hi-fi gear listings from HifiShark — the meta-search engine that indexes over 600 second-hand audio marketplaces in one place. Returns price, currency, source site, country, and direct listing URLs across Audiogon, USAudioMart, eBay, hifi-forsale, Marktplaats, ricardo.ch, and hundreds of other sources in a single run.
HifiShark Scraper Features
- Searches by keyword. Brand, model, or category — whatever you'd type into HifiShark itself.
- Returns up to 48 current listings per query, which is the full search-card payload the site renders server-side.
- Parses price strings across 11+ currency formats — €29, £8,200, MKD 21,500, SEK 12 000 — into clean
priceandcurrencyISO codes - Enriches each row with the source marketplace's ISO country code via a one-shot lookup against HifiShark's
/objectssite directory - Pure HTML scraping. No browser, no proxies needed.
- Respects the site's
crawl-delay: 2from robots.txt at concurrency 3 — polite by default, which is more than most aggregator scrapers can say
Who Uses HifiShark Data?
- Dealers — track cross-marketplace pricing for specific models without opening 30 browser tabs
- Arbitrageurs — surface price discrepancies between regions or platforms before someone else does
- Collectors — monitor every active listing for a model you've been hunting for two years
- Pricing models — feed cross-marketplace data into ML systems that need real second-hand transaction signal, not list-price wishes
- Brand teams — watch the global used market for a manufacturer's full product line in one feed
How HifiShark Scraper Works
- Supply a list of search terms. Brand names, model numbers, equipment categories — anything HifiShark accepts.
- The scraper hits
/search?q=<query>for each term and parses the server-rendered listing cards. Each query returns up to 48 of the most recent listings across all indexed marketplaces. - A site-metadata lookup runs once on startup to map listing IDs to marketplace name + country code. The rest of the run uses the cached map, so each listing carries a proper source site and ISO country with no extra requests.
Input
{
"queries": ["Marantz PM-10", "McIntosh MC275", "Naim Nait", "Linn LP12"],
"maxItems": 200
}
| Field | Type | Default | Description |
|---|---|---|---|
queries |
string[] | — | Search terms. Each query returns up to 48 listings across all indexed marketplaces. Required. |
maxItems |
integer | 10 |
Maximum listing records to return across all queries. Set to 0 for unlimited. |
HifiShark Scraper Output Fields
{
"listing_id": "118_2486411",
"title": "Marantz PM-10 Integrated Amplifier",
"manufacturer": null,
"model": null,
"category": null,
"price": 8200,
"currency": "GBP",
"condition": "Mint",
"country": "GB",
"source_site": "hifi-forsale",
"source_listing_url": "https://www.hifi-forsale.co.uk/...",
"listing_image_url": "https://cdn.hifishark.com/...",
"listing_first_seen_at": "2026-03-19T00:00:00.000Z",
"hifishark_url": "https://www.hifishark.com/search?q=Marantz%20PM-10",
"scraped_at": "2026-05-26T19:00:00.000Z"
}
| Field | Type | Description |
|---|---|---|
listing_id |
string | HifiShark internal ID in the format <site_id>_<item_id> |
title |
string | Listing title as shown on HifiShark |
manufacturer |
string | Always null in search-card output — derive from title if needed |
model |
string | Always null in search-card output — derive from title if needed |
category |
string | Always null in search-card output — derive from title if needed |
price |
number | Numeric price in the listing currency |
currency |
string | ISO 4217 currency code (EUR, USD, GBP, JPY, etc.) |
condition |
string | Mint, Excellent, Very Good, Good, New, or Used — inferred from title text, often null |
country |
string | Two-letter ISO country code of the source marketplace |
source_site |
string | Name of the source marketplace (Audiogon, hifi-forsale, USAudioMart, etc.) |
source_listing_url |
string | Direct URL to the listing on the source marketplace. /goto/ redirects are returned as-is when the site doesn't expose the direct link. |
listing_image_url |
string | Primary listing image URL |
listing_first_seen_at |
string | ISO 8601 timestamp when HifiShark first indexed this listing |
hifishark_url |
string | HifiShark search URL that surfaced this listing |
scraped_at |
string | ISO 8601 timestamp when this record was scraped |
FAQ
How do I scrape HifiShark?
HifiShark Scraper takes one or more search terms and returns up to 48 listings per term. Feed it brand names, model numbers, or categories and it handles the rest — no login, no API key, no browser required.
Does HifiShark Scraper need proxies?
HifiShark Scraper runs without proxies. The site is publicly indexed and the actor uses a concurrency of 3 to respect the site's crawl-delay: 2.
What data can I get from HifiShark?
HifiShark Scraper returns 15 fields per listing — price, currency, source marketplace, country, condition, direct source URL, image, and HifiShark's first-seen timestamp. Manufacturer, model, and category fields exist in the schema but are always null from the search-card view; derive them from the title.
Can I get historical pricing from HifiShark Scraper?
HifiShark Scraper returns the most recent 48 listings per query — that's all the search endpoint exposes. For historical sold-price data, HifiShark's price-history pages are a separate surface and not covered by this actor.
How much does HifiShark Scraper cost to run?
HifiShark Scraper uses pay-per-event pricing at the default 1.0 coefficient. You pay per record saved — so a 200-listing run costs roughly what you'd expect for 200 records.
Need More Features?
Need custom fields, a different source filter, or historical price data? File an issue or get in touch.
Why Use HifiShark Scraper?
- Cross-marketplace coverage — one query, 600+ marketplaces, no per-site adapter to maintain
- Clean output — returns structured JSON with parsed prices, ISO currencies, and ISO country codes, so you spend less time cleaning strings and more time using the data
- No infrastructure required — pure HTML scraping with no proxies, no browser, no CapSolver bill