element14 APIelement14.com ↗
Search Newark's electronics catalog via API. Get product specs, pricing tiers, live stock levels, datasheets, categories, and manufacturer listings for electronic components.
What is the element14 API?
The Newark (element14) API exposes 8 endpoints covering product search, detailed specifications, live pricing tiers, stock levels, technical documents, category browsing, and manufacturer listings from the Newark electronics distributor catalog. Use get_product_details to retrieve a single part's full attribute set, pricing breakpoints, and stock count by warehouse — all keyed by Newark order code (publicId).
curl -X GET 'https://api.parse.bot/scraper/a927f180-27d0-4f70-8d74-caf4c0d891e3/search_products?page=1&query=resistor+1k' \ -H 'X-API-Key: $PARSE_API_KEY'
Typed, relational, agent-ready
A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.
- Fully typed · autocompletes
- Objects link to objects
- Typed errors & pagination
Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:
uv add parse-sdk uv run parse init uv run parse add --marketplace element14-com-api
uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.
from parse_apis.newark_electronics_api import Newark, Category, ProductNotFound
client = Newark()
# Search for resistors
for product in client.products.search(query="resistor 1k", limit=5):
print(product.public_id, product.name, product.manufacturer)
# Get full product details by order code
resistor = client.products.get(public_id="97K4809")
print(resistor.name, resistor.manufacturer, resistor.is_buyable)
# Get technical specifications
specs = resistor.specifications()
for spec in specs.specifications:
print(spec.name, spec.value)
# Check pricing and stock availability
pricing = resistor.pricing_and_stock()
for pricing_product in pricing.products:
print(pricing_product.stock.status, pricing_product.stock.total_count)
for tier in pricing_product.prices:
print(tier.name, tier.minimum_quantity, tier.list_price_value)
# Get technical documents (datasheets)
docs = resistor.technical_docs()
for doc in docs.technical_documents:
print(doc.type, doc.url)
# Browse all categories
for category in client.categories.browse(limit=5):
print(category.label, category.relative_url, category.product_count)
# Browse products in a specific category
connectors = Category(_api=client, relative_url="/c/connectors")
for item in connectors.products(limit=10):
print(item.public_id, item.name, item.manufacturer)
# List all manufacturers
for mfg in client.manufacturers.list(limit=10):
print(mfg.name, mfg.url)
Full-text search over Newark's electronics catalog by keyword or part number. Returns up to 25 products per page with pricing, specifications, and attachments. Searches that map to a single category are automatically resolved server-side. Paginates via page number.
| Param | Type | Description |
|---|---|---|
| page | integer | Page number for pagination (1-based) |
| queryrequired | string | Search keyword or part number (e.g. 'resistor 1k', '97K4809') |
{
"type": "object",
"fields": {
"page": "integer - requested page number",
"query": "string - the search query used",
"products": "array of product objects with publicId, name, manufacturer, prices, extendedAttributes, attachments, pdpUrl",
"total_results": "integer - total number of matching products"
},
"sample": {
"data": {
"page": 1,
"query": "resistor 1k",
"products": [
{
"name": "CARBON FILM RESISTOR, 1KOHM, 250mW, 5%",
"prices": [
{
"name": "1+",
"listPriceValue": "0.144",
"minimumQuantity": 1,
"listPriceCurrencyIsoCode": "USD"
}
],
"publicId": "38K0327",
"attachments": [
{
"url": "http://www.farnell.com/datasheets/3436052.pdf",
"type": "DATA_SHEET"
}
],
"manufacturer": "MULTICOMP PRO",
"extendedAttributes": [
{
"name": "Resistance",
"value": "1kohm"
}
]
}
],
"total_results": 3265
},
"status": "success"
}
}About the element14 API
Product Search and Detail
The search_products endpoint accepts a keyword or part number via the query parameter and returns up to 25 product summaries per call, including each product's publicId, name, manufacturer, description, and pdpUrl. The total_results field indicates how many matching parts exist. Because results reflect server-side rendering of the first page, page parameter behaviour has a documented limitation: results may not change across page values, so downstream pagination logic should be tested carefully.
For a specific part, get_product_details takes a public_id (e.g. 97K4809) and returns the resolved product: stock (with status, totalCount, and a locations array), prices (an array of tier objects each carrying minimumQuantity, bestPriceValue, and bestPriceCurrencyIsoCode), extendedAttributes (technical spec name-value pairs), and an attachments array of documents with type, url, and description.
Specifications, Pricing, and Documents
get_product_specifications isolates the attribute data — resistance, tolerance, power rating, package type, and other parameters — as a flat specifications array of {name, value} objects. For pricing and inventory without the full attribute set, get_product_pricing_and_stock returns quantity-tiered prices and a stock object including warehouse-level detail. get_product_technical_docs returns an array of document objects with type (e.g. DATA_SHEET), a direct PDF url, description, and usage field — useful for linking datasheets directly in a BOM or procurement tool.
Categories and Manufacturers
browse_categories returns two parallel structures: catCategories (catalog categories with label, relativeUrl, productCount, and nested childCategories) and navCategories (navigation nodes with publicId and childPublicIds). The relativeUrl values feed directly into get_category_products as the category_id parameter to list products within that branch. list_manufacturers returns the full manufacturer roster — each with a name and relative url — with no filtering parameters required.
The element14 API is a managed, monitored endpoint for element14.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when element14.com changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official element14.com API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Build a BOM tool that resolves part numbers via
get_product_detailsto retrieve live pricing tiers and stock counts. - Generate datasheet links for a component library using
get_product_technical_docsto extract PDF URLs by type. - Monitor price breaks across quantity tiers with
get_product_pricing_and_stockto optimise order volumes. - Populate a product comparison page by fetching
specificationsfor multiple Newark order codes viaget_product_specifications. - Index Newark's full category tree with
browse_categoriesto build a navigable component finder backed byget_category_products. - Cross-reference a manufacturer's Newark catalog by filtering
list_manufacturersresults and querying products by category slug. - Alert procurement teams when stock
statusortotalCountdrops below threshold using repeated calls toget_product_pricing_and_stock.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does element14 / Newark have an official developer API?+
What does `get_product_details` return beyond basic product info?+
get_product_details returns resolved pricing tiers (each with minimumQuantity, bestPriceValue, and bestPriceCurrencyIsoCode), a stock object with status, totalCount, and a locations array, extendedAttributes as technical specification name-value pairs, and an attachments array with document type, url, and description. All fields are keyed by the Newark order code passed as public_id.Does search pagination work across multiple pages?+
search_products endpoint accepts a page integer, but due to how the source renders results, the response may not change across different page values — results consistently reflect the first available page of up to 25 products. total_results still indicates the full match count. If you need a broader product set, browsing by category via get_category_products supports pagination and may be more reliable for bulk retrieval.Can I retrieve customer reviews or product ratings through this API?+
Does the API return stock availability broken down by specific warehouse locations?+
stock object in both get_product_details and get_product_pricing_and_stock includes a locations array alongside the overall status and totalCount. The granularity of individual location entries depends on what the source exposes for a given part. Detailed per-warehouse quantity breakdowns may not be present for all products.