Search Newark, Farnell, and element14 for electronic components — find parts by MPN or distributor part number, check pricing/stock, download datasheets, analyze specifications. One unified API covers all three storefronts (Newark for US, Farnell for UK/EU, element14 for APAC). Free API key, simple query-parameter auth, no OAuth. Datasheets download directly from farnell.com CDN with no bot protection. Sync and maintain a local datasheets directory for a KiCad project. Use this skill when the user mentions Newark, Farnell, element14, needs parts from a non-US distributor, wants to compare pricing across regions, or needs datasheets from a source that doesn't require complex API auth. For package cross-reference tables and BOM workflow, see the `bom` skill.
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.
responseGroup=medium includes datasheets[].urlELEMENT14_API_KEY before running the scripts:
export ELEMENT14_API_KEY=your_api_key_here
If credentials are stored in a central secrets file (e.g., ~/.config/secrets.env), load them first:
export $(grep -v '^#' ~/.config/secrets.env | grep -v '^$' | xargs)
Base URL: https://api.element14.com/catalog/products
All requests use GET with query parameters. Authentication is via callInfo.apiKey.
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 |
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
| 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 |
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 — usually TechnicalDataSheetprices[] — tiered pricing with from, to, coststock.level — quantity in stockstock.statusMessage — human-readable availabilityattributes[] — parametric specs (label, unit, value)rohsStatusCode — RoHS compliance (YES/NO)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 |
No documented rate limits beyond the courtesy usage allowance. Be respectful — use 0.5s delays between calls.
Add to query parameters:
resultsSettings.refinements.filter=rohsCompliant — RoHS parts onlyresultsSettings.refinements.filter=inStock — in-stock onlyresultsSettings.offset — starting index (0-based)resultsSettings.numberOfResults — max 50 per pageelement14's farnell.com CDN serves datasheet PDFs directly — no bot protection, no special headers needed. Datasheet URLs come from the API response (datasheets[].url).
Use sync_datasheets_element14.py to maintain a datasheets/ directory alongside a KiCad project. Same workflow and index.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
The script:
manuPartNum:) for exact match — falls back to keyword searchindex.json manifest — same format as DigiKey/Mouser/LCSC skills--delay)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:
requests → urllib → playwright fallback chainpip install requests (recommended; urllib fallback works fine for element14)pip install playwright && playwright install chromium (optional; rarely needed)If the API is unavailable, search via WebFetch: