$npx -y skills add aklofas/kicad-happy --skill element14Search 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). F
| 1 | # element14 / Newark / Farnell — Component Search, Datasheets & Ordering |
| 2 | |
| 3 | ## Related Skills |
| 4 | |
| 5 | | Skill | Purpose | |
| 6 | |-------|---------| |
| 7 | | `kicad` | Schematic analysis — extracts MPNs for part lookup | |
| 8 | | `bom` | BOM management — orchestrates sourcing across distributors | |
| 9 | | `spice` | Uses element14 parametric data for behavioral SPICE models | |
| 10 | |
| 11 | One API covers three regional storefronts — same catalog, same datasheets, only pricing/stock vary by region: |
| 12 | |
| 13 | | Storefront | Region | Store ID | |
| 14 | |------------|--------|----------| |
| 15 | | **Newark** | North America | `www.newark.com` | |
| 16 | | **Farnell** | UK / Europe | `uk.farnell.com` | |
| 17 | | **element14** | Asia-Pacific | `au.element14.com` | |
| 18 | |
| 19 | For BOM management and export workflows, see `bom`. |
| 20 | |
| 21 | ## Key Differences from DigiKey/Mouser |
| 22 | |
| 23 | - **Simple auth** — API key as a query parameter, no OAuth flow |
| 24 | - **Free API key** — register at partner.element14.com, courtesy usage allowance |
| 25 | - **Global coverage** — same API covers US (Newark), EU (Farnell), APAC (element14) |
| 26 | - **Unprotected PDFs** — datasheets hosted on farnell.com CDN, download freely with no bot protection |
| 27 | - **Datasheet URL in API response** — `responseGroup=medium` includes `datasheets[].url` |
| 28 | |
| 29 | ## API Credential Setup |
| 30 | |
| 31 | 1. **Register** at [partner.element14.com/member/register](https://partner.element14.com/member/register) |
| 32 | - Free account — just username, email, password. No credit card needed. |
| 33 | - Provides a "courtesy usage allowance" (2 calls/sec, 1,000 calls/day — sufficient for normal use) |
| 34 | 2. **Register an application** — after logging in, go to [My API Keys](https://partner.element14.com/apps/mykeys) and click "Get API Keys" |
| 35 | - App name: anything (e.g., "kicad-happy") |
| 36 | - Type: "Desktop application" |
| 37 | - Users: "1-10" |
| 38 | - Commercial: No |
| 39 | - Advertising: No |
| 40 | - Check "Issue a new key for Product Search API" → select "Basic" tier |
| 41 | - Agree to Terms of Service and click "Register Application" |
| 42 | 3. **Copy your API key** — a 24-character alphanumeric string shown on the My API Keys page |
| 43 | 4. **Set the environment variable** `ELEMENT14_API_KEY` before running the scripts: |
| 44 | ```bash |
| 45 | export ELEMENT14_API_KEY=your_api_key_here |
| 46 | ``` |
| 47 | If credentials are stored in a central secrets file (e.g., `~/.config/secrets.env`), load them first: |
| 48 | ```bash |
| 49 | export $(grep -v '^#' ~/.config/secrets.env | grep -v '^$' | xargs) |
| 50 | ``` |
| 51 | |
| 52 | ## Product Search API |
| 53 | |
| 54 | **Base URL:** `https://api.element14.com/catalog/products` |
| 55 | |
| 56 | All requests use GET with query parameters. Authentication is via `callInfo.apiKey`. |
| 57 | |
| 58 | ### Search Modes |
| 59 | |
| 60 | The `term` parameter supports three search types: |
| 61 | |
| 62 | | Mode | Format | Example | |
| 63 | |------|--------|---------| |
| 64 | | **Keyword** | `any:<keywords>` | `term=any:100nF 0402 X7R` | |
| 65 | | **MPN** | `manuPartNum:<mpn>` | `term=manuPartNum:GRM155R71C104KA88D` | |
| 66 | | **Distributor PN** | `id:<sku>` | `term=id:94AK6874` | |
| 67 | |
| 68 | ### Full Example |
| 69 | |
| 70 | ``` |
| 71 | GET https://api.element14.com/catalog/products |
| 72 | ?term=manuPartNum:GRM155R71C104KA88D |
| 73 | &storeInfo.id=www.newark.com |
| 74 | &resultsSettings.offset=0 |
| 75 | &resultsSettings.numberOfResults=10 |
| 76 | &resultsSettings.responseGroup=medium |
| 77 | &callInfo.responseDataFormat=JSON |
| 78 | &callInfo.apiKey=YOUR_KEY |
| 79 | ``` |
| 80 | |
| 81 | ### Response Groups |
| 82 | |
| 83 | | Group | Fields | |
| 84 | |-------|--------| |
| 85 | | `small` | SKU, displayName, brandName, MPN, attributes | |
| 86 | | `medium` | + datasheets[], prices[], stock | |
| 87 | | `large` | + images, related products, country of origin | |
| 88 | | `prices` | Tiered pricing only | |
| 89 | | `inventory` | Stock levels by warehouse/region | |
| 90 | |
| 91 | ### Response Format |
| 92 | |
| 93 | With `responseGroup=medium`, the response looks like: |
| 94 | |
| 95 | ```json |
| 96 | { |
| 97 | "manufacturerPartNumberSearchReturn": { |
| 98 | "numberOfResults": 5, |
| 99 | "products": [ |
| 100 | { |
| 101 | "sku": "94AK6874", |
| 102 | "displayName": "Murata GRM155R71C104KA88D", |
| 103 | "translatedManufacturerPartNumber": "GRM155R71C104KA88D", |
| 104 | "brandName": "Murata Electronics", |
| 105 | "datasheets": [ |
| 106 | { |
| 107 | "type": "TechnicalDataSheet", |
| 108 | "description": "Datasheet", |
| 109 | "url": "https://www.farnell.com/datasheets/74273.pdf" |
| 110 | } |
| 111 | ], |
| 112 | "prices": [ |
| 113 | { |
| 114 | "from": 1, |
| 115 | "to" |