LCSC Parts Price Scraper (MPN, Stock, Price Breaks) avatar

LCSC Parts Price Scraper (MPN, Stock, Price Breaks)

Pricing

from $1.60 / 1,000 priced part delivereds

Go to Apify Store
LCSC Parts Price Scraper (MPN, Stock, Price Breaks)

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

Steadfetch

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

4 hours ago

Last modified

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, adds previous and delta, 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

FieldTypeRequiredDefaultDescription
queriesarray of stringsYes["C25804"]Manufacturer part numbers and/or LCSC part codes. Duplicates are removed and values are normalized to uppercase without spaces.
warehousestringNoanyKeep parts with stock in china, overseas or any warehouse.
lastRunKeystringNoemptyKey-value store key for monitor mode. When set, only changed parts are delivered.
maxItemsintegerNo100Maximum priced parts pushed to the dataset (1-1000).
strictSchemabooleanNotrueFail 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

FieldTypeDescription
urlstringPublic LCSC product page used for the row.
titlestringProduct name as listed by LCSC.
scrapedAtdate-timeISO 8601 UTC timestamp of the run.
mpnstringManufacturer part number, uppercase without spaces.
distributorstringAlways lcsc.
partNumberstringLCSC catalogue code, for example C25804.
descriptionstring or nullShort technical description.
warehousestring or nullChina (main), Overseas, both, or null when unknown.
stockinteger or nullTotal units in stock.
priceBreaksarray{ "qty": integer, "unitPrice": number }, ascending by quantity.
currencystringISO 4217 currency code of the ladder (USD).
previousobjectPrevious unitPrice and stock; null values on a first run.
deltaobjectpriceChanged and stockChanged against the previous run.
fetchedAtdate-timeISO 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.