element14
element14 / Newark / Farnell — Component Search, Datasheets & Ordering
Related Skills
| Skill | Purpose |
|---|---|
kicad |
Schematic analysis — extracts MPNs for part lookup |
bom |
BOM management — orchestrates sourcing across distributors |
spice |
Uses element14 parametric data for behavioral SPICE models |
One API covers three regional storefronts — same catalog, same datasheets, only pricing/stock vary by region:
| Storefront | Region | Store ID |
|---|---|---|
| Newark | North America | www.newark.com |
| Farnell | UK / Europe | uk.farnell.com |
| element14 | Asia-Pacific | au.element14.com |
For BOM management and export workflows, see bom.
Key Differences from DigiKey/Mouser
- Simple auth — API key as a query parameter, no OAuth flow
- Free API key — register at partner.element14.com, courtesy usage allowance
- Global coverage — same API covers US (Newark), EU (Farnell), APAC (element14)
- Unprotected PDFs — datasheets hosted on farnell.com CDN, download freely with no bot protection
- Datasheet URL in API response —
responseGroup=mediumincludesdatasheets[].url
API Credential Setup
- Register at partner.element14.com/member/register
- Free account — just username, email, password. No credit card needed.
- Provides a "courtesy usage allowance" (2 calls/sec, 1,000 calls/day — sufficient for normal use)
- Register an application — after logging in, go to My API Keys and click "Get API Keys"
- App name: anything (e.g., "kicad-happy")
- Type: "Desktop application"
- Users: "1-10"
- Commercial: No
- Advertising: No
- Check "Issue a new key for Product Search API" → select "Basic" tier
- Agree to Terms of Service and click "Register Application"
- Copy your API key — a 24-character alphanumeric string shown on the My API Keys page
- Set the environment variable
ELEMENT14_API_KEYbefore running the scripts:
If credentials are stored in a central secrets file (e.g.,export ELEMENT14_API_KEY=your_api_key_here~/.config/secrets.env), load them first:export $(grep -v '^#' ~/.config/secrets.env | grep -v '^$' | xargs)
Product Search API
Base URL: https://api.element14.com/catalog/products
All requests use GET with query parameters. Authentication is via callInfo.apiKey.
Search Modes
The term parameter supports three search types:
| Mode | Format | Example |
|---|---|---|
| Keyword | any:<keywords> |
term=any:100nF 0402 X7R |
| MPN | manuPartNum:<mpn> |
term=manuPartNum:GRM155R71C104KA88D |
| Distributor PN | id:<sku> |
term=id:94AK6874 |
Full Example
GET https://api.element14.com/catalog/products
?term=manuPartNum:GRM155R71C104KA88D
&storeInfo.id=www.newark.com
&resultsSettings.offset=0
&resultsSettings.numberOfResults=10
&resultsSettings.responseGroup=medium
&callInfo.responseDataFormat=JSON
&callInfo.apiKey=YOUR_KEY
Response Groups
| Group | Fields |
|---|---|
small |
SKU, displayName, brandName, MPN, attributes |
medium |
+ datasheets[], prices[], stock |
large |
+ images, related products, country of origin |
prices |
Tiered pricing only |
inventory |
Stock levels by warehouse/region |
Response Format
With responseGroup=medium, the response looks like:
{
"manufacturerPartNumberSearchReturn": {
"numberOfResults": 5,
"products": [
{
"sku": "94AK6874",
"displayName": "Murata GRM155R71C104KA88D",
"translatedManufacturerPartNumber": "GRM155R71C104KA88D",
"brandName": "Murata Electronics",
"datasheets": [
{
"type": "TechnicalDataSheet",
"description": "Datasheet",
"url": "https://www.farnell.com/datasheets/74273.pdf"
}
],
"prices": [
{
"from": 1,
"to": 9,
"cost": 0.156
}
],
"stock": {
"level": 45000,
"leastLeadTime": 0,
"status": 4,
"statusMessage": "In Stock"
},
"attributes": [
{"attributeLabel": "Capacitance", "attributeUnit": "", "attributeValue": "100nF"},
{"attributeLabel": "Voltage Rating", "attributeUnit": "V", "attributeValue": "16"}
],
"rohsStatusCode": "YES"
}
]
}
}
Key fields:
sku— Newark/Farnell/element14 part numbertranslatedManufacturerPartNumber— MPNbrandName— manufacturerdatasheets[].url— direct PDF URL (farnell.com CDN, no bot protection)datasheets[].type— usuallyTechnicalDataSheetprices[]— tiered pricing withfrom,to,coststock.level— quantity in stockstock.statusMessage— human-readable availabilityattributes[]— parametric specs (label, unit, value)rohsStatusCode— RoHS compliance (YES/NO)
Store IDs
Common store IDs for the storeInfo.id parameter:
| Store ID | Region |
|---|---|
www.newark.com |
US (default) |
uk.farnell.com |
UK |
www.farnell.com |
EU |
au.element14.com |
Australia |
sg.element14.com |
Singapore |
in.element14.com |
India |
Rate Limits
No documented rate limits beyond the courtesy usage allowance. Be respectful — use 0.5s delays between calls.
Filters
Add to query parameters:
resultsSettings.refinements.filter=rohsCompliant— RoHS parts onlyresultsSettings.refinements.filter=inStock— in-stock only
Pagination
resultsSettings.offset— starting index (0-based)resultsSettings.numberOfResults— max 50 per page- Only the first 100 results are reliably pageable
Datasheet Download & Sync
element14's farnell.com CDN serves datasheet PDFs directly — no bot protection, no special headers needed. Datasheet URLs come from the API response (datasheets[].url).
Datasheet Directory Sync
Use sync_datasheets_element14.py to maintain a datasheets/ directory alongside a KiCad project. Same workflow and manifest.json format as the DigiKey, Mouser, and LCSC skills.
# Sync datasheets for a KiCad project
python3 <skill-path>/scripts/sync_datasheets_element14.py <file.kicad_sch>
# Preview what would be downloaded
python3 <skill-path>/scripts/sync_datasheets_element14.py <file.kicad_sch> --dry-run
# Retry previously failed downloads
python3 <skill-path>/scripts/sync_datasheets_element14.py <file.kicad_sch> --force
# Use a specific store (default: www.newark.com)
python3 <skill-path>/scripts/sync_datasheets_element14.py <file.kicad_sch> --store uk.farnell.com
# Custom output directory
python3 <skill-path>/scripts/sync_datasheets_element14.py <file.kicad_sch> -o ./my-datasheets
# Parallel downloads (3 workers)
python3 <skill-path>/scripts/sync_datasheets_element14.py <file.kicad_sch> --parallel 3
# Batch mode — sync from a plain MPN list (no KiCad project required)
python3 <skill-path>/scripts/sync_datasheets_element14.py --mpn-list mpns.txt --output ./datasheets
MPN-list batch mode (KH-312) — when you have a list of MPNs but no
KiCad project to point at. One MPN per line; blank lines and #
comments (full-line and inline) are skipped; generic values are filtered
via is_real_mpn() and de-duplicated. Output defaults to ./datasheets/
in the current working directory when --output is omitted. Note:
ELEMENT14_API_KEY is still required even in dry-run mode; see the
v1.4 follow-up in the issue tracker if dry-run credential-independence
matters for your workflow.
The script:
- Runs the kicad schematic analyzer to extract components, MPNs, and distributor PNs
- Accepts any identifier — MPN, Newark/Farnell PN, or other distributor PNs from KiCad symbol properties
- Prefers MPN search (
manuPartNum:) for exact match — falls back to keyword search - Downloads from farnell.com CDN — direct PDF URLs, no bot protection
- Writes
manifest.jsonmanifest — same format as DigiKey/Mouser/LCSC skills - Verifies PDF content — checks MPN, manufacturer, and description keywords
- Rate-limited — 0.5s between API calls (configurable with
--delay) - Saves progress incrementally — safe to interrupt
Single Datasheet Download
Use fetch_datasheet_element14.py for one-off downloads.
# Search by MPN
python3 <skill-path>/scripts/fetch_datasheet_element14.py --search "GRM155R71C104KA88D" -o datasheet.pdf
# Search by Newark/Farnell part number
python3 <skill-path>/scripts/fetch_datasheet_element14.py --search "94AK6874" -o datasheet.pdf
# Direct URL download
python3 <skill-path>/scripts/fetch_datasheet_element14.py "https://www.farnell.com/datasheets/74273.pdf" -o datasheet.pdf
# JSON output
python3 <skill-path>/scripts/fetch_datasheet_element14.py --search "GRM155R71C104KA88D" --json
The script:
- OS-agnostic — uses
requests→urllib→playwrightfallback chain - Validates PDF headers — rejects HTML error pages
- Falls back to alternative manufacturer sources when element14 URL fails
- Exit codes: 0 = success, 1 = download failed, 2 = search/API error
- Dependencies:
pip install requests(recommended; urllib fallback works fine for element14)pip install playwright && playwright install chromium(optional; rarely needed)
Web Search Fallback
If the API is unavailable, search by fetching product pages directly:
https://www.newark.com/search?st=<query>
https://uk.farnell.com/search?st=<query>
Tips
- Use
responseGroup=medium— includes datasheets and pricing without the overhead oflarge - Use
manuPartNum:prefix for exact MPN matches;any:for keyword search - Cross-reference using
translatedManufacturerPartNumber(MPN) across DigiKey/Mouser/LCSC - Useful for international users where DigiKey/Mouser shipping is expensive
More from aklofas/kicad-happy
jlcpcb
JLCPCB PCB fabrication and assembly — BOM/CPL generation, basic vs extended parts, assembly constraints, design rules, ordering workflow. Use with KiCad for JLCPCB manufacturing. Use this skill when the user mentions JLCPCB, wants to order PCBs or assembled boards, needs prototype bare PCBs and stencils, wants to know JLCPCB design rules and capabilities, or is asking about PCB manufacturing costs or turnaround times. For gerber/CPL export, stencil ordering, and BOM management, see the `bom` skill.
89kicad
>-
89bom
BOM (Bill of Materials) management for electronics projects — the primary orchestrator skill that coordinates DigiKey, Mouser, LCSC, element14, JLCPCB, PCBWay, and KiCad skills into a unified workflow. Create, update, and maintain BOMs with part numbers, costs, quantities stored as KiCad symbol properties. ALWAYS trigger this skill for any task involving component sourcing, pricing, ordering, distributor searches, BOM export, or fabrication preparation — even if the user names a specific distributor or fab house (e.g. "search DigiKey for...", "generate JLCPCB BOM", "order from Mouser"). This skill decides which distributor/fab skills to invoke and in what order. Also trigger on phrases like "what parts do I need", "order components", "how much will this cost", "export for JLCPCB", "find parts for this board", "cost estimate", "compare pricing", or "check stock".
72lcsc
Search LCSC Electronics for electronic components — find parts by LCSC number (Cxxxxx) or MPN, check stock/pricing, download datasheets, analyze specifications. Sister company to JLCPCB, same parts library. Sync and maintain a local datasheets directory for a KiCad project, or use batch MPN-list seeding (`--mpn-list`) for bulk workflows without a project. No API key needed — uses the free jlcsearch community API. Use this skill when the user mentions LCSC, JLCPCB parts library, JLCPCB assembly parts, production sourcing, Cxxxxx part numbers, needs to find LCSC equivalents for parts, is preparing a BOM for JLCPCB assembly, or wants to download datasheets and LCSC is available. For package cross-reference tables and BOM workflow, see the `bom` skill.
63digikey
>-
54mouser
Search Mouser Electronics for electronic components — secondary source for prototype orders. Find parts, check pricing/stock, download datasheets, analyze specifications. Use with KiCad for BOM creation and part selection. Also supports batch MPN-list seeding (`--mpn-list`) for bulk datasheet workflows without a KiCad project. Use this skill when the user specifically mentions Mouser, when DigiKey is out of stock or has worse pricing, when comparing prices across distributors, or when searching for parts that DigiKey doesn't carry. For package cross-reference tables and BOM workflow, see the `bom` skill.
50