September 22, 2026 · 12 min read
iScrap App Scraper: $0.005 Per Scrap Metal Record (2026)
This scraper extracts scrap metal prices from iScrap App across 9 controls, with 1 required. It returns live market values, recent regional yard reports, and material categories for the United States and Canada, but it does not generate historical time-series charts or statistical yard samples. Lifetime usage sits at 70 runs across 3 users. It is designed for recycling yard operators and individual scrappers needing daily scrap commodity benchmarks, not for quantitative traders looking for exchange-traded industrial futures.
What does a iScrap App Metal Prices Scraper run cost?
Each result costs $0.005 on the free tier, which is $5.00 per 1,000 results. Starting a run is charged separately at $0.01 per GB of Actor memory.
| 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 |
At $0.005 per result, which is $5.00 per 1,000 results on the free tier, your primary cost driver is the metalSlugs array when operating in metalDetail mode. Running mode browse to catalog 200+ metal slugs costs pennies, but querying detail pages for every metal daily adds up. Keep costs negligible by limiting metalDetail runs to the specific materials your business actively buys or sells.
How do you run iScrap App Metal Prices Scraper from the API?
The schema marks 1 of its 9 controls as required: mode. Every value in the payload below comes from the published schema's own prefills, which means you can paste it, swap the token, and get a real result.
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~iscrapapp-metal-prices-scraper/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"mode":"topPrices","metalSlugs":["1-bare-bright-copper-wire","shreddable-steel","yellow-brass"],"category":"all","country":"US","keyword":"","unitFilter":"any","maxItems":15}'
The same run from Python, using the official client:
from apify_client import ApifyClient
client = ApifyClient("<YOUR_APIFY_TOKEN>")
run_input = {
"mode": "topPrices",
"metalSlugs": [
"1-bare-bright-copper-wire",
"shreddable-steel",
"yellow-brass"
],
"category": "all",
"country": "US",
"keyword": "",
"unitFilter": "any",
"maxItems": 15
}
run = client.actor("crawlerbros~iscrapapp-metal-prices-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": "topPrices",
"metalSlugs": [
"1-bare-bright-copper-wire",
"shreddable-steel",
"yellow-brass"
],
"category": "all",
"country": "US",
"keyword": "",
"unitFilter": "any",
"maxItems": 15
}
const run = await client.actor('crawlerbros~iscrapapp-metal-prices-scraper').call(input)
const { items } = await client.dataset(run.defaultDatasetId).listItems()
console.log(items)
That endpoint blocks until the run completes. Fine while you are testing a handful of records, risky once a run takes minutes: a dropped connection loses the response even though the run itself finished. Switch to an asynchronous start with polling or a webhook before you schedule anything.
Which iScrap App Metal Prices Scraper inputs matter, and which can you skip?
The mode selector is the only required parameter and governs the entire output schema between topPrices, browse, and metalDetail. When using topPrices, use unitFilter and keyword to constrain records before they hit your dataset. Leave minPrice and maxPrice empty on initial test runs so you do not accidentally filter out valid records priced under unfamiliar units.
mode(string): What to fetch. Default:"topPrices".metalSlugs(array): (mode=metalDetail) Metal slugs (e.g.1-bare-bright-copper-wire) or full iScrapApp.com metal URLs to fetch detail pages for.category(string): (mode=browse) Filter the metal directory by category. Default:"all".country(string): (mode=topPrices, metalDetail) Regional price market to scrape. Default:"US".keyword(string): (mode=topPrices, browse) Case-insensitive substring match against the metal name, e.g.copper.unitFilter(string): (mode=topPrices) Only return metals priced in this unit. Default:"any".minPrice(number): (mode=topPrices) Only return metals with a price at or above this value (in the metal's own display unit).maxPrice(number): (mode=topPrices) Only return metals with a price at or below this value (in the metal's own display unit).maxItems(integer): Maximum number of records to return. Default:50.
Fixed-choice controls: mode accepts topPrices, browse, metalDetail; category accepts all, non-ferrous-materials, ferrous-materials, electronics; country accepts US, CA; unitFilter accepts any, lb, ton, each.
Change a single control per run and diff the result against the last sample, sorting records into accepted, uncertain, and excluded. A control that increases volume without improving decision quality still bills at $0.005 per result.
What does iScrap App Metal Prices Scraper return?
Returned records provide structured metal names, price floats, units, percentage changes, and yard-level reports containing dates and locations. They do not contain raw chart coordinates or timestamped historical series. Directory listings under browse mode only contain metadata and omit pricing entirely.
The Actor does not publish a per-field output list, so treat the first run as the specification: collect a small sample and record which fields are present before anything downstream depends on them.
How do you build the workflow end to end?
Open iScrap App Metal Prices 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.
- Run mode topPrices with country set to US and maxItems set to 5 to verify the payload structure matches your parser expectations.
- Verify that the initial run returns records where recordType is topMetalPrice and priceValue is populated with a float.
- Switch mode to browse with category set to all and maxItems set to 250 to harvest metalSlug and metalName pairs across the entire catalog.
- Check that the directory listings contain recordType metalListing without expecting price fields, as browse pages do not contain prices.
- Filter your harvested slugs down to the specific materials you need to monitor, avoiding unnecessary requests for dormant metals.
- Run mode metalDetail passing your target slugs into the metalSlugs array with country set to your operating market (US or CA).
- Inspect the resulting records to ensure lastUpdated, change45DayPercent, and recentPriceReports arrive populated before inserting into your storage pipeline.
How do you apply it? Three worked playbooks
These are iScrap App Metal Prices Scraper's own documented use cases, each worked through as an operating pattern rather than a description.
Use case 1: Scrap yard owners / recyclers
Outcome: track daily market rates for the metals you buy
Configure: Set mode to metalDetail, country to US, and populate metalSlugs with your yard's highest-volume materials like 1-bare-bright-copper-wire, shreddable-steel, and yellow-brass.
Working method: Execute the run daily at yard opening, inspect the recentPriceReports array for competitor yard submissions within your state, and compare the published national price against your floor buy rate.
Deliverable: A daily JSON or CSV dataset of local competitor price points and current national baseline rates for high-volume purchasing decisions.
Stop condition: The metalDetail response returns an empty recentPriceReports array across all specified metalSlugs for more than three consecutive days.
Use case 2: Individual scrappers
Outcome: decide which materials are worth collecting today
Configure: Set mode to topPrices, country to US, unitFilter to lb, and minPrice to 1.50.
Working method: Trigger the Actor on pickup mornings to evaluate high-value metals currently trending upward based on changeDirection and priceValue before routing route stops.
Deliverable: A filtered triage list of metals priced above $1.50 per pound with positive changeDirection indicators.
Stop condition: The returned record count from topPrices drops below 5 items or fails to return expected non-ferrous commodities.
Use case 3: Price-comparison tools
Outcome: feed live per-lb/per-ton rates into a pricing dashboard
Configure: Set mode to topPrices, maxItems to 50, and run two scheduled passes: one with country set to US and the second with country set to CA.
Working method: Execute both regional passes concurrently, join the resulting datasets on metalSlug, and compute the normalized price variance between markets.
Deliverable: A side-by-side US and Canadian price comparison feed mapped to standardized material identifiers.
Stop condition: A primary metalSlug found in the US dataset is missing from the CA dataset or arrives with an unrecognized priceUnit.
What breaks, and how do you design around it?
mode=topPricesmirrors the iScrap App homepage's curated "most popular" list - currently 15 metals. For the full 200+ metal catalog, usemode=browse(names/descriptions) combined withmode=metalDetail(price) for the specific metals you need.mode=browselisting pages do not include price - iScrapApp's directory pages are metadata-only; fetchmode=metalDetailfor pricing on any given metal.- Sparkline/trend-chart pixel data shown on the site is not exposed as a field: without accompanying timestamps the underlying values aren't independently meaningful, so we only surface the labeled
changePercent/change45DayPercentfigures the site itself publishes. recentPriceReportsreflects whichever individual yard reports the site currently has surfaced for that metal (crowd-submitted); it is not a statistically representative sample of every yard.- iScrapApp.com's Cloudflare protection returns a challenge page to requests without a normal browser
User-Agentheader (a barecurlwith no UA gets a 403). AllmetalUrl/ page links resolve with a normal browser UA (exactly what this actor sends); direct image asset URLs (imageUrl) work with any client, no UA needed.
Because mode topPrices only returns the curated homepage list of roughly 15 metals, you must pipeline mode browse into metalDetail to access pricing on the broader 200+ catalog. The site omits timestamped points for trendline graphics, so you must log daily change45DayPercent readings to an internal database to maintain historical tracking. For regional scrap reports, treat recentPriceReports as crowdsourced yard submissions rather than an exhaustive census.
When should you not use iScrap App Metal Prices Scraper?
Do not use this Actor if you require institutional spot prices or continuous exchange feeds for primary commodities. Scrap yard prices are localized, reflect unprocessed salvage values, and rely on crowd submissions rather than cleared transactions. For financial settlement or commodity derivative pricing, an official API from the London Metal Exchange or CME Group is required and will provide mill-grade, audit-ready data. Additionally, do not use this scraper if you need comprehensive national yard coverage; iScrap App's detail pages only surface yards where operators or users actively submit prices. If you need verified directory data for every licensed recycler in a municipality, querying state environmental agency registries directly is far more reliable.
What should you check before trusting the output?
- Verify that priceValue is a non-null positive float on every record returned from mode topPrices or metalDetail.
- Confirm priceUnit matches one of the expected values: lb, ton, or each, especially before computing bulk tonnage values.
- Flag records where lastUpdated shows older stale dates instead of expected values like Today or recent day counts.
- Abort downstream ingestion if recordType metalListing unexpectedly appears when running mode topPrices or metalDetail.
- Validate that recentPriceReports is an array where each object contains a valid reportedDate and priceValue.
None of this proves a record is correct. It gives a scheduled iScrap App Metal Prices Scraper run defined points where it should stop instead of quietly passing bad data downstream.
Frequently asked questions
What does this Actor charge per result?
This scraper costs $0.005 per result, which equals $5.00 per 1,000 results on the free tier. Running mode topPrices returns around 15 records per call, costing under ten cents per execution, whereas querying individual metal detail pages costs $0.005 per requested slug.
Why does mode browse return records without any prices?
The iScrap App catalog directory pages list metals, categories, and descriptions without market prices. To obtain prices for metals found in browse mode, pass their metalSlug values into the metalSlugs array using mode metalDetail.
Why do changePercent and change45DayPercent show different values for the same metal?
The homepage uses a shorter-term window to calculate the changePercent badge shown in topPrices mode. Detail pages compute change45DayPercent over a 45-day window. The Actor reports both fields exactly as published on the respective pages.
Can I query scrap metal prices specifically for Canadian yards?
Yes. Set the country control to CA when using mode topPrices or metalDetail. iScrap App maintains separate regional price tables and yard submissions for Canadian scrap operations, returning localized values.
What does a priceUnit value of each indicate?
Certain recyclable items like catalytic converters, car batteries, or specific electronics are traded per unit rather than by weight. The source site labels these as per item, which the Actor maps to the value each.
Where to go next
Start with the iScrap App Metal Prices 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:
- Product and price scrapers covers 378 Actors in this family.
Readers running iScrap App Metal Prices Scraper commonly pair it with:
- OpenInsider Scraper Scrape SEC Form 4 insider trading data from OpenInsider.com - browse recent purchases and sales, filter by ticker, date range, transaction type, and value.
- SEC EDGAR Filings Scraper Scrape SEC EDGAR filings (10-K, 10-Q, 8-K, Form 4 insider trades, 13F holdings) for any US public company.
- RateYourMusic Album & Chart Scraper Scrape RateYourMusic - the world's largest music ratings community.
- Corporations Canada Registry Scraper Look up federally incorporated Canadian companies on Corporations Canada (ised-isde.canada.ca).
- VLR.gg Valorant Esports Scraper Scrape Valorant esports data from VLR.gg - world and regional team rankings, match results, upcoming matches, and tournament events.
- Monday.com Marketplace Scraper Scrape the monday.com App Marketplace, browse featured, trending, editor's choice, and new apps; browse by category; or search for specific apps.
- Boxing Stats Scraper Scrape boxing fighter profiles and fight records using TheSportsDB free API.
- Dev.to Scraper Scrape Dev.to, the popular blogging platform for developers (forem.com).
Related guides:
- Vivian Health Jobs Scraper: Build 3 Robust Healthcare Data Playbooks
- United Real Estate Homes for Sale Scraper: 3 Practical Use Cases
- Uganda Business Directory Scraper: 3 Operational Workflows
- Tally (Cactus) DAO Governance Scraper: $5.00 per 1,000 results (2026)
Resources
Actor documentation, input schema, and pricing: verified against the published Actor on 2026-09-22.
Actor last updated by its maintainers on 2026-07-14.
Run outcome figures cover the 30 day public window ending 2026-09-22.
● Featured actors
iScrap App Metal Prices Scraper
Scrape daily scrap metal prices from iScrap App - today's top prices for copper, aluminum, brass, steel, and 200+ other metals, the full metal directory by category, and per-metal detail pages with recent price reports from scrap yards across the US and Canada.
Run on Apify ↗