Search Octopart's electronic-component catalog by keyword, MPN, or tech spec and return clean JSON: part identity, specs, distributor stock, and per-quantity pricing across DigiKey/Mouser/Arrow/Avnet/Farnell and 30+ other distributors. Recommended path is the Nexar GraphQL API (free with OAuth2 registration) — Octopart's public web UI is universally PerimeterX-walled on Browserbase.
Works with
AI-first code editor with Composer
Before installing skills in Cursor, ensure your development environment meets these requirements:
node --versionelectronic-product-detailsExecute the skills CLI command in your project's root directory to begin installation:
Fetches electronic-product-details from octopart.com/electronic-product-details-8vawd0 and configures it for Cursor.
The CLI shows a list of agents. Use arrow keys and space to select Cursor:
Confirm successful installation by checking the skill directory location:
Restart Cursor to activate electronic-product-details. Access via /electronic-product-details in your agent's command palette.
We perform automated surface-level scans (Gen AI Scanner, Socket, Snyk) during installation. These checks detect common vulnerabilities but do not guarantee complete security. Always review skill source code and verify the publisher's reputation before production use.
Skills execute code in your environment. Always review source, verify the publisher, and test in isolation before production.
Submit your Claude Code skill and start earning
Automate repetitive workflows and reduce manual effort
Example
Generate reports, summarize documents, draft communications
Save 3-5 hours per week on routine tasks
Learn new skills, understand complex topics, get expert guidance
Example
Explain concepts, provide examples, suggest learning resources
Accelerate learning and skill development by 2x
Enhance output quality through reviews, suggestions, and refinements
Example
Review drafts, suggest improvements, catch errors
Improve work quality by 30-40% with less effort
0
total installs
0
this week
0
upvotes
Run in your terminal
0
installs
0
this week
—
stars
| name | electronic-product-details |
| title | Octopart Electronic Product Search |
| description | >- Search Octopart's electronic-component catalog by keyword, MPN, or tech spec and return clean JSON: part identity, specs, distributor stock, and per-quantity pricing across DigiKey/Mouser/Arrow/Avnet/Farnell and 30+ other distributors. Recommended path is the Nexar GraphQL API (free with OAuth2 registration) — Octopart's public web UI is universally PerimeterX-walled on Browserbase. |
| website | octopart.com |
| category | electronics-sourcing |
| tags | - electronics - components - pricing - bom - octopart - nexar - perimeterx |
| source | 'browserbase: agent-runtime 2026-05-19' |
| updated | '2026-05-19' |
| recommended_method | api |
| alternative_methods | - method: browser rationale: >- Not viable on Browserbase as configured — /search, /electronic-parts/{category}, and /part/{mfr}/{mpn} are all PerimeterX 'Press & Hold Human Challenge'-walled on default sessions, on --verified --proxies stealth sessions, and on fresh-session direct-to-detail navigation (verified 2026-05-19, 4 iterations). The homepage / is the only page reachable on the first request of a session. Do not waste iterations trying to scrape /search. - method: hybrid rationale: >- browse cloud fetch does bypass PX (different fingerprint than headless Chrome and confirmed to receive real Octopart HTML rather than a challenge page) but is capped at 1 MB response body, and part-detail pages are ~1.5-3 MB JS-rendered. If the cap is raised in future tooling, parse the embedded <script type='application/ld+json'> Product block on /part/{mfr}/{mpn} for headline (qty=1) pricing — per-tier breaks remain API-only. |
| verified | true |
| proxies | true |
Search Octopart's catalog of electronic components by keyword, part number, or technical spec, and return a clean JSON object containing each matching part's identity (MPN + manufacturer), specs, distributor availability, and current pricing tiers across distributors (DigiKey, Mouser, Arrow, Avnet, Farnell, etc.). Read-only — never adds to cart, never submits orders.
LM358, STM32F103C8T6, ERJ-2RKF1002X) across 30+ authorized distributors in one query.octopart.com/search?q=... HTML — the Nexar GraphQL API is faster, structurally cleaner, and is the only path that reliably bypasses Octopart's PerimeterX (PX) bot wall.Octopart's public web UI (/search, /electronic-parts/..., /part/{mfr-slug}/{mpn}) is fronted by PerimeterX human-challenge — verified blocked across default Browserbase, --verified --proxies stealth, and fresh-session direct-to-detail navigation (4 iterations, all PX-walled). The supported path is the Nexar API. Altium operates Octopart's data as the public face of the Nexar GraphQL API at https://api.nexar.com/graphql — same dataset, no PX. The Nexar API is free for low volume after registering an application; OAuth2 client credentials are required.
https://nexar.com/ (free).https://portal.nexar.com/ → Applications → New Application.supply.domain) — this scope grants the Octopart product-search/pricing queries (supSearch, supSearchMpn, supParts).clientId and clientSecret — store these in your agent's secret store, not in the SKILL.md or task input.TOKEN=$(curl -sS -X POST https://identity.nexar.com/connect/token \
-d "grant_type=client_credentials" \
-d "client_id=${NEXAR_CLIENT_ID}" \
-d "client_secret=${NEXAR_CLIENT_SECRET}" \
-d "scope=supply.domain" \
| node -e "let s='';process.stdin.on('data',c=>s+=c).on('end',()=>process.stdout.write(JSON.parse(s).access_token))")
Tokens are valid for ~24 hours. Cache and reuse — don't request a new one per query.
For a free-text search ("LM358", "10nf,25v,10%,X7R,0402", or "STM32" partial MPN), use supSearch:
query SearchProducts($q: String!, $limit: Int = 10) {
supSearch(q: $q, limit: $limit, inStockOnly: false) {
hits
results {
part {
id
mpn
manufacturer { name }
shortDescription
category { name path }
bestDatasheet { url }
bestImage { url }
medianPrice1000 { price currency }
specs { attribute { shortname name group } displayValue }
sellers {
company { name }
country
offers {
sku
inventoryLevel
moq
packaging
clickUrl
prices { quantity price currency }
updated
}
}
}
}
}
}
For a guaranteed exact-MPN match (no fuzzy expansion), use supSearchMpn with the same selection set — it returns 1 hit per exact MPN.
POST to the GraphQL endpoint:
curl -sS -X POST https://api.nexar.com/graphql \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d "{\"query\": \"...above...\", \"variables\": {\"q\": \"LM358\", \"limit\": 5}}"
Map each results[].part into the output shape under ## Expected Output. Key rules:
prices[0].quantity ascending — the API doesn't guarantee order.quantity > 1, fall back to their lowest tier.inventoryLevel: 0 offers unless include_out_of_stock: true was requested.medianPrice1000 is pre-normalized in USD for the "best estimate" rollup.Not viable on Browserbase as configured. PerimeterX (/kdRQnL15/ proxying endpoints in robots.txt confirms the deployment) issues a "Press & Hold Human Challenge" iframe on every non-homepage request, including:
/search?q=... — blocked on default, blocked on --verified --proxies/electronic-parts/{category} — blocked/part/{manufacturer-slug}/{mpn} — blocked even via direct navigation on a brand-new sessionBrowserbase cloud fetch does receive real HTML (no PX challenge) but the per-response 1 MB cap blocks return (502 The response body exceeded the maximum allowed size of 1MB). If your runtime ever upgrades the Fetch API limit, the JSON-LD <script type="application/ld+json"> block embedded in /part/{mfr}/{mpn} carries the Product schema.org graph with name, mpn, brand, offers[].price, offers[].priceCurrency, offers[].availability, offers[].seller — parse that instead of the visual DOM. Until then, do not attempt browser scraping; it will burn iterations on PX walls.
/search?q=LM358 returned Block Type: PX, Reference: a0af2040-5340-... on default Browserbase, on browse cloud sessions create --verified --proxies (residential proxy IP 108.41.189.122, also blocked), and on a fresh stealth session navigating directly to /part/te-connectivity/66105-3. The homepage / is the only universally-reachable page on the first request of a session./) on the same session return PX too. There is no recovery within a session — release and create a new one, but the new one will still block at /search./search. No selector strategy survives the challenge iframe. The skill exits at the PX wall, not at a render race.browse cloud fetch bypasses PX (different fingerprint than headless Chrome) but is capped at 1 MB response body, and Octopart part-detail pages are ~1.5-3 MB of JS-rendered HTML + inline JSON. Fetch returns 502 body exceeded ... 1MB reliably. The sitemap index (product-sitemap-index.xml) and robots.txt are small and do return — useful for enumerating MPN coverage but they contain no pricing data./part/{old-mpn-slug}-{numeric-id} 301-redirects to /part/{mfr-slug}/{mpn} — both URL forms resolve to the same detail page. The newer canonical form is /part/{mfr-slug}/{mpn}.supParts(ids: [...]).identity.nexar.com, not api.nexar.com. Common mistake — the GraphQL endpoint and the token endpoint live on different subdomains.supSearch does fuzzy MPN expansion. Searching STM32 returns ~10k hits across the STM32 family — use supSearchMpn for exact MPN, or pass filters: { manufacturer_id: { eq: <id> } } to narrow.medianPrice1000 is null for many parts — it's an aggregate that requires enough distributor signal. Fall back to the lowest sellers[].offers[].prices[] tier when computing a "current price" field.sellers[].offers[].prices[] is per quantity break. A single seller may list 5–8 quantity breaks (1, 10, 100, 1000, 5000, 10000). Always pass through all tiers in the output, then surface a best_unit_price rollup at qty=1 for convenience.inventoryLevel of null ≠ 0. null means the distributor didn't report stock to Octopart; 0 is reported zero. Treat them differently when filtering for available parts.octopart.com/api/v3/... REST API — that surface is now deprecated, robots.txt Disallows /api/v1/* through /api/v4/*, and the v3 keys no longer authenticate. The Nexar GraphQL endpoint is the only supported programmatic surface today.{
"query": "LM358",
"method": "nexar-api",
"hits": 1247,
"results": [
{
"octopart_id": "518",
"mpn": "LM358N",
"manufacturer": "Texas Instruments",
"short_description": "Dual operational amplifier, 8-Pin PDIP",
"category": {
"name": "Linear Amplifiers - Op Amps",
"path": ["Electronic Parts", "Integrated Circuits (ICs)", "Linear ICs", "Linear Amplifiers - Op Amps"]
},
"datasheet_url": "https://datasheet.octopart.com/LM358N-Texas-Instruments-datasheet-9646.pdf",
"image_url": "https://sigma.octopart.com/.../LM358N.jpg",
"specs": {
"supply_voltage": "3 V to 32 V",
"operating_temperature": "0 °C to 70 °C",
"package": "PDIP-8",
"channels": "2",
"rohs": "Compliant"
},
"best_unit_price_usd": 0.42,
"median_price_1000_usd": 0.18,
"sellers": [
{
"name": "DigiKey",
"country": "US",
"offers": [
{
"sku": "296-1395-5-ND",
"stock": 18432,
"moq": 1,
"packaging": "Tube",
"click_url": "https://octopart.com/click/...",
"prices": [
{ "qty": 1, "price": 0.49, "currency": "USD" },
{ "qty": 10, "price": 0.44, "currency": "USD" },
{ "qty": 100, "price": 0.31, "currency": "USD" },
{ "qty": 1000, "price": 0.21, "currency": "USD" }
],
"updated": "2026-05-18T22:14:00Z"
}
]
},
{
"name": "Mouser",
"country": "US",
"offers": [
{
"sku": "595-LM358N",
"stock": 9624,
"moq": 1,
"packaging": "Tube",
"click_url": "https://octopart.com/click/...",
"prices": [
{ "qty": 1, "price": 0.42, "currency": "USD" },
{ "qty": 10, "price": 0.39, "currency": "USD" },
{ "qty": 100, "price": 0.29, "currency": "USD" },
{ "qty": 1000, "price": 0.19, "currency": "USD" }
],
"updated": "2026-05-18T23:01:00Z"
}
]
}
]
}
]
}
If the browser-fallback path is ever unblocked (PX softens or the Fetch API cap is raised), the same shape is reconstructible from the <script type="application/ld+json"> Product block on /part/{mfr-slug}/{mpn} — name → mpn, brand.name → manufacturer, description → short_description, offers[].price/.priceCurrency/.availability/.seller.name → sellers[].offers[].prices[0]. The browser path will NOT yield per-quantity break tiers (only the headline qty=1 price is in JSON-LD) — that's an API-only capability.
If the query yields zero hits:
{ "query": "totally-fake-mpn-123", "method": "nexar-api", "hits": 0, "results": [] }
If the Nexar token request fails (bad credentials, scope mismatch):
{ "query": "LM358", "method": "nexar-api", "error": "auth_failed", "detail": "invalid_client" }
Prerequisites
Time Estimate
15-45 minutes depending on use case complexity
Steps
Common Pitfalls
✓ Do
✗ Don't
💡 Pro Tips
✓ Use when
Use when skill capabilities match your task, clear ROI on time saved, and you can validate outputs. Best for repetitive tasks, learning, and quality improvement.
✗ Avoid when
Avoid when task requires deep expertise you can't validate, involves sensitive decisions, or when learning process is more valuable than speed of completion.
fredm00n/framerlabs
spences10/svelte-skills-kit
vercel-labs/next-skills
OWNER/REPO
stockx.com/get-resale-price-eewaou
avis.com/longterm-a3k8ng
electronic-product-details has been reliable in day-to-day use. Documentation quality is above average for community skills.
electronic-product-details reduced setup friction for our internal harness; good balance of opinion and flexibility.
Useful defaults in electronic-product-details — fewer surprises than typical one-off scripts, and it plays nicely with `npx skills` flows.
Keeps context tight: electronic-product-details is the kind of skill you can hand to a new teammate without a long onboarding doc.
I recommend electronic-product-details for anyone iterating fast on agent tooling; clear intent and a small, reviewable surface area.
Registry listing for electronic-product-details matched our evaluation — installs cleanly and behaves as described in the markdown.
electronic-product-details reduced setup friction for our internal harness; good balance of opinion and flexibility.
electronic-product-details is among the better-maintained entries we tried; worth keeping pinned for repeat workflows.
Useful defaults in electronic-product-details — fewer surprises than typical one-off scripts, and it plays nicely with `npx skills` flows.
electronic-product-details is among the better-maintained entries we tried; worth keeping pinned for repeat workflows.
showing 1-10 of 60