LCSC Parts Price Scraper (MPN, Stock, Price Breaks)
Pricing
from $1.60 / 1,000 priced part delivereds
LCSC Parts Price Scraper (MPN, Stock, Price Breaks)
Look up LCSC electronic components by manufacturer part number or LCSC code: one JSON row per part with its quantity price breaks, stock, warehouse and description, plus price/stock delta in monitor mode. For BOM cost monitoring and component price research. Keyless, no login, no proxies.
Pricing
from $1.60 / 1,000 priced part delivereds
Rating
0.0
(0)
Developer
Steadfetch
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
4 hours ago
Last modified
Categories
Share
Look up public LCSC electronic component data by manufacturer part number (MPN) or by LCSC part code. Each row carries one part with its quantity price ladder, stock, warehouse split and description, normalized so price-monitoring jobs do not have to parse LCSC pages or manage API keys.
What it does
- Resolves manufacturer part numbers through LCSC's public catalogue search and part codes (
C25804) directly, without an API key. - Returns one row per part: the full quantity price ladder stays inside
priceBreaks, so quantity tiers never create extra billable rows. - Reads stock, warehouse split (China main / overseas) and the technical description from the same public product page.
- Optional monitor mode (
lastRunKey): compares each part with the previous run, addspreviousanddelta, and delivers only parts whose price or stock changed. Unchanged checks are billed 0. - Parts that are not found, are filtered out, or are unchanged in monitor mode are written to run notes, never to the dataset, so they are never charged.
- Plain HTTP only: no browser, no login, no paywall, no CAPTCHA bypass and no proxies.
Source and compliance
- Product pages:
https://www.lcsc.com/product-detail/C<code>.html - Catalogue search:
https://wmsc.lcsc.com/ftps/wm/search/v3/global - LCSC
robots.txt(checked 2026-10-24) only disallows/cart/,/checkout/,/order/,/personalCenter/, their mobile equivalents and/product-detail-v2/. This Actor requests only the two public endpoints above; a hard allow-list rejects any other URL at runtime and in CI. - LCSC terms of use contain no anti-scraping clause for these public catalogue pages.
- No personal data: only public component prices, stock and technical descriptions. Contact fields are never extracted.
- At least 2 seconds between effective requests, with a descriptive User-Agent that identifies Steadfetch.
Input
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
queries | array of strings | Yes | ["C25804"] | Manufacturer part numbers and/or LCSC part codes. Duplicates are removed and values are normalized to uppercase without spaces. |
warehouse | string | No | any | Keep parts with stock in china, overseas or any warehouse. |
lastRunKey | string | No | empty | Key-value store key for monitor mode. When set, only changed parts are delivered. |
maxItems | integer | No | 100 | Maximum priced parts pushed to the dataset (1-1000). |
strictSchema | boolean | No | true | Fail the run when a row does not match the output schema. Keep enabled. |
Empty queries falls back to the documented example part C25804, so the Store daily test always runs.
Example input
Matches the declared exampleRunInput:
{"queries": ["C25804"],"warehouse": "any","maxItems": 10}
Output
Example output
One dataset item (truncated ladder):
{"url": "https://www.lcsc.com/product-detail/C25804.html","title": "RES 10k ohm +/-1% 100mW 0603","scrapedAt": "2026-10-24T19:42:00.000Z","mpn": "0603WAF1002T5E","distributor": "lcsc","partNumber": "C25804","description": "RES 10k ohm +/-1% 100mW 0603","warehouse": "China (main) and overseas","stock": 1108500,"priceBreaks": [{ "qty": 100, "unitPrice": 0.0022 },{ "qty": 1000, "unitPrice": 0.0018 },{ "qty": 5000, "unitPrice": 0.0016 }],"currency": "USD","previous": { "unitPrice": 0.0022, "stock": 12300 },"delta": { "priceChanged": false, "stockChanged": true },"fetchedAt": "2026-10-24T19:42:00.000Z"}
Output fields
| Field | Type | Description |
|---|---|---|
url | string | Public LCSC product page used for the row. |
title | string | Product name as listed by LCSC. |
scrapedAt | date-time | ISO 8601 UTC timestamp of the run. |
mpn | string | Manufacturer part number, uppercase without spaces. |
distributor | string | Always lcsc. |
partNumber | string | LCSC catalogue code, for example C25804. |
description | string or null | Short technical description. |
warehouse | string or null | China (main), Overseas, both, or null when unknown. |
stock | integer or null | Total units in stock. |
priceBreaks | array | { "qty": integer, "unitPrice": number }, ascending by quantity. |
currency | string | ISO 4217 currency code of the ladder (USD). |
previous | object | Previous unitPrice and stock; null values on a first run. |
delta | object | priceChanged and stockChanged against the previous run. |
fetchedAt | date-time | ISO 8601 UTC timestamp of the product page retrieval. |
New fields are additive and required fields never change, so downstream code can rely on the documented contract.
Monitor mode
Pass a stable lastRunKey (for example acme-bom-daily) on every scheduled run:
{"queries": ["STM32F103C8T6", "C25804"],"lastRunKey": "acme-bom-daily","maxItems": 100}
The first run delivers every priced part and saves one state entry per LCSC code in the lcsc-parts-price-extractor-state key-value store. Later runs deliver only parts whose smallest-tier unit price or stock changed, and bill 0 for unchanged checks. A check that fails or finds no price delivers no rows.
Pricing
Pay-per-event with the two synthetic platform events:
apify-actor-start: 0.00005 USD per run (Apify-recommended default, includes the first 5 seconds of compute).apify-default-dataset-item: 0.002 USD per row = 2.00 USD per 1,000 results.
There is no custom per-item event, so users are never billed twice for the same part. Not-found parts and unchanged monitor checks are notes, not dataset rows, and are never charged.
Measured locally: 2 parts in 9.2 s (one MPN search plus two page fetches) at the 256 MB memory floor, with at least 2 s between requests. Estimated platform cost is about 0.03 USD per 1,000 MPNs (two requests each) and below 0.10 USD per 1,000 parts for direct LCSC codes: static HTML, no browser, no proxies. The price keeps a wide margin above cost.
Works on the Apify free plan: with the 5 USD monthly credit, about 2,499 priced parts can be delivered per month (N = floor((5.00 - 0.00005) / 0.002)).
Usage with the API
curl -X POST "https://api.apify.com/v2/acts/steadfetch~lcsc-parts-price-extractor/runs?token=<YOUR_API_TOKEN>" \-H 'Content-Type: application/json' \-d '{"queries":["C25804","STM32F103C8T6"],"maxItems":10}'
Then read the default dataset of the run.
FAQ
Do I need an LCSC account or an API key? No. The Actor reads public catalogue pages and the public catalogue search endpoint. It never logs in and never bypasses a paywall, CAPTCHA or account.
Can I pass a manufacturer part number instead of an LCSC code? Yes. The Actor resolves exact manufacturer part numbers through the public search endpoint and falls back to the LCSC code when you already have one.
Are quantity tiers billed separately? No. One part is one row and one charge. The whole ladder is inside priceBreaks.
Why is a part missing from the output? Parts without a public price (not listed or out of catalogue) are written to run notes with notFound: true and are not billed. Check the lcsc-parts-price-extractor-notes key-value store of the run.
What changes in monitor mode? With lastRunKey, each row also carries previous and delta, and only changed parts are delivered. A no-change check costs only the run start.
Does the Actor use a browser? No. HTTP plus parsing is roughly 10x cheaper than a browser, and LCSC serves the product data in the page payload.
Is the output schema stable? Yes. New fields are added additively and required fields never change.
Maintenance
The Actor is tested daily through the Steadfetch catalogue QA and the monorepo CI (npm test and npm run publish:check on every push). Repairs take priority over new features. Schema changes are announced through repository releases.
Support
Report bugs or request features through the Apify Store page (Issues tab) of this Actor, or through the Steadfetch actors repository issues. Include the run ID and the input used.