Arrow APIarrow.com ↗
Search Arrow.com's catalog via API. Get part pricing, availability, specs, RoHS compliance, and manufacturer listings for electronic components.
What is the Arrow API?
The Arrow.com API exposes 4 endpoints for querying Arrow Electronics' electronic components catalog, covering part search, batch lookups, product details, and manufacturer listings. The search_by_token endpoint returns pricing tiers, stock availability, compliance data, and category taxonomy for any part number or keyword. The get_product_detail endpoint returns 10+ structured fields per component including ECCN export codes, RoHS status, and total stock across regions.
curl -X GET 'https://api.parse.bot/scraper/552c786b-18f1-4a60-ad01-97304694eebe/search_by_token?rows=5&start=0&search_token=NE555' \ -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 arrow-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.
"""Arrow Electronics component search, batch lookup, product details, and manufacturer listing."""
from parse_apis.arrow_electronics_api import Arrow, Rows, ProductNotFound
client = Arrow()
# Search for timer ICs by keyword — limit caps total items fetched.
for part in client.searchproducts.search(search_token="NE555", rows=Rows._5, limit=3):
print(part.full_part, part.manufacturer_name, part.calculated_price, part.part_status)
# Batch search for multiple parts at once.
for batch in client.batchsearchresults.search(parts_json='["LM358", "NE555"]', limit=2):
print(batch.query, batch.num_found)
# Retrieve full product details by URL path.
product = client.products.get(part_url="/en/products/ne555p/texas-instruments")
print(product.part_number, product.manufacturer, product.total_stock, product.availability)
# Handle a product that doesn't exist.
try:
missing = client.products.get(part_url="/en/products/nonexistent123/unknown-mfr")
print(missing.part_number)
except ProductNotFound as exc:
print(f"Product not found: {exc.part_url}")
# List manufacturers available on Arrow.com.
for mfr in client.manufacturers.list(limit=5):
print(mfr.manufacturer_name, mfr.product_count)
print("exercised: searchproducts.search / batchsearchresults.search / products.get / manufacturers.list / ProductNotFound")
Search for electronic components by part number or keyword. Returns matching products with manufacturer info, descriptions, pricing tiers, availability, compliance data, and category taxonomy. Paginates via start/rows offset; each page carries the full facet set and taxonomy tree for the current query.
| Param | Type | Description |
|---|---|---|
| rows | integer | Number of results per page. |
| start | integer | Result offset for pagination (0-based). Page is calculated as start/rows + 1. |
| search_tokenrequired | string | Part number or keyword to search for (e.g. 'NE555', 'LM358', 'Arduino'). |
{
"type": "object",
"fields": {
"facets": "array of filter facets (product line, manufacturer, status)",
"products": "array of product objects with pricing, availability, manufacturer info",
"taxonomy": "array of category hierarchy objects",
"pagination": "object with currentPage, pageSize, totalPages, totalResults",
"resultCount": "string total number of matching products",
"searchKeyword": "array of search terms used"
},
"sample": {
"data": {
"facets": [
{
"code": "productlinenamefacet",
"name": "Product Line",
"values": [
{
"count": 24,
"value": "Timers"
}
]
}
],
"products": [
{
"euRohs": "Compliant",
"mfrSeo": "texas-instruments",
"partId": "2049175",
"mfrName": "Texas Instruments",
"partSeo": "ne555p",
"eccnCode": "EAR99",
"fullPart": "NE555P",
"partStatus": "Active",
"largeImageUrl": "//static6.arrow.com/aropdfconversion/arrowimages/2e4314377ac7a084d278da72652911be69a524f8/p0008a.jpg",
"calculatedPrice": "0.25068493150684934",
"productLineName": "Timers",
"calculatedQuantity": "67292",
"storedPartDescription": "Standard Timer Single 0°C 70°C 8-Pin PDIP Tube"
}
],
"taxonomy": [
{
"categories": [
{
"id": "11181",
"code": "Clock and Timing",
"name": "Clock and Timing"
}
],
"productLineType": "Semiconductor"
}
],
"pagination": {
"pageSize": 25,
"totalPages": 2,
"currentPage": 1,
"totalResults": 27
},
"resultCount": "27",
"searchKeyword": [
"ne555"
]
},
"status": "success"
}
}About the Arrow API
Search and Batch Lookup
The search_by_token endpoint accepts a search_token (part number or keyword such as NE555 or Arduino) and returns a products array with manufacturer info, pricing tiers, stock availability, and facets for filtering by product line, manufacturer, and status. Pagination is controlled via rows (results per page) and start (zero-based offset); the response includes a pagination object with currentPage, totalPages, and totalResults. A taxonomy array provides the full category hierarchy for each result set.
For bulk workflows, search_by_list accepts a JSON array of part numbers via the parts_json parameter — either plain strings like ["LM358", "NE555"] or objects with a partNum key. It runs each query sequentially and returns an aggregated response with results (per-query results arrays), errors (failed queries with error messages), total_queries, and successful_queries. This is practical for BOM (bill of materials) validation where you need to check dozens of parts at once.
Product Details and Manufacturers
The get_product_detail endpoint takes a part_url in the format /en/products/<part-number-slug>/<manufacturer-slug> and returns a fully structured record: sku, partNumber, name, partStatus (Active, Obsolete, or NRND), totalStock, price (lowest USD price), euRohs compliance status, eccnCode for export control, category, and a product image URL. This is the endpoint to use when you already know the exact part and manufacturer.
The lookup_manufacturer endpoint requires no inputs and returns the complete list of manufacturers on Arrow.com — over 1,000 — with each entry's manufacturerName and productCount. This is useful for enumerating suppliers or building manufacturer-filtered search flows.
The Arrow API is a managed, monitored endpoint for arrow.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when arrow.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 arrow.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?+
- BOM validation: batch-check a list of part numbers against live Arrow stock and pricing using
search_by_list - Component sourcing dashboards that display real-time
totalStockandpricefor a shortlist of parts - Compliance screening: filter components by
euRohsstatus andeccnCodebefore procurement - Obsolescence tracking: monitor
partStatus(Active, Obsolete, NRND) across a component library - Manufacturer discovery: enumerate all Arrow-stocked suppliers and their product counts via
lookup_manufacturer - Alternative part research: use keyword search via
search_by_tokento find substitute components by function or category - Catalog enrichment: pull structured specs and images via
get_product_detailto populate an internal parts database
| 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 Arrow Electronics have an official developer API?+
What does `get_product_detail` return beyond basic pricing?+
euRohs compliance status, eccnCode for export control classification, partStatus (Active, Obsolete, or NRND), totalStock across all regions, a product image URL, sku, and the category (product line name) — all in a single call given a valid part_url path.Does `search_by_token` support filtering results by manufacturer or status?+
facets array that includes manufacturer, product line, and status breakdowns for the result set, but the endpoint parameters don't currently accept facet filters as inputs — the filtering must be applied client-side. You can fork this API on Parse and revise it to pass facet filter parameters through to narrow results server-side.Does the API return historical pricing or price change data?+
get_product_detail. Historical price tracking is not covered. You can fork this API on Parse and revise it to add a scheduled polling endpoint that stores price snapshots over time.How does pagination work in `search_by_token`?+
start offset (zero-based) and a rows count. The response pagination object returns currentPage (calculated as start / rows + 1), pageSize, totalPages, and totalResults. To iterate through all results, increment start by rows on each request until currentPage equals totalPages.