# DigiKey Parts Scraper - Prices and Stock (`maximedupre/digikey`) Actor

Find DigiKey parts by URL, part number, keyword, or category. Get stock, prices, product details, specs, compliance data, documents, and substitute parts.

- **URL**: https://apify.com/maximedupre/digikey.md
- **Developed by:** [Maxime Dupré](https://apify.com/maximedupre) (community)
- **Categories:** E-commerce, Business, Automation
- **Stats:** 2 total users, 1 monthly users, 89.2% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.35 / 1,000 enriched products

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

## DigiKey Parts Scraper - Prices and Stock

### 🔎 Find the parts you need

Built for buyers, engineers, and sourcing teams, this Actor finds DigiKey parts and returns prices, stock, specs, compliance data, documents, and substitute parts. Search known parts or scan a category without copying data by hand.

- Check current stock with the **[DigiKey Inventory Scraper](https://apify.com/maximedupre/digikey/examples/digikey-inventory-scraper)** task.
- Collect quantity-break prices with the **[DigiKey Price Scraper](https://apify.com/maximedupre/digikey/examples/digikey-price-scraper)** task.
- Find parts by keyword or part number with the **[DigiKey Parts Search](https://apify.com/maximedupre/digikey/examples/digikey-parts-search)** task.
- Search the DigiKey catalog with the **[DigiKey Product Search](https://apify.com/maximedupre/digikey/examples/digikey-product-search)** task.
- Get full product details with the **[DigiKey Product Scraper](https://apify.com/maximedupre/digikey/examples/digikey-product-scraper)** task.
- Collect product or category data with the **[DigiKey Scraper](https://apify.com/maximedupre/digikey/examples/digikey-scraper)** task.

#### 📦 DigiKey product data

Product rows can include DigiKey and manufacturer part numbers, descriptions, category paths, stock, lead time, order limits, packaging, quantity-break prices, technical specs, compliance and trade data, images, datasheets, documents, and substitutes. A search with no exact match can return related categories. A failed submitted value is saved as a clear error row.

Each source component is saved once per run. The first eligible match is kept, and later duplicates are ignored.

#### ▶️ Find and check DigiKey parts

1. Choose one Target: Products, Keyword Search, or Category Listing.
2. Fill in the fields for that Target.
3. Choose filters and a product limit if needed.
4. Click **Start**. Open the default dataset when the run ends.

#### ⚙️ Input

| Field | Type | What it does |
|---|---|---|
| `target` | string | Chooses Products, Keyword Search, or Category Listing. |
| `productInputs` | array of strings | Lists DigiKey URLs, manufacturer part numbers, or DigiKey part numbers. Used only for Products. |
| `keyword` | string | Gives one part number, product name, or search phrase. Used only for Keyword Search. |
| `manufacturers` | array of strings | Keeps only these makers in a keyword search. |
| `categoryUrls` | array of objects | Lists DigiKey category or filtered listing URLs. Used only for Category Listing. |
| `categoryUrls[].url` | string | Gives one DigiKey category or filtered listing URL. |
| `enrichment` | string | Chooses fast listing data or slower full product details for category listings. |
| `inStockOnly` | boolean | Keeps only parts DigiKey marks as in stock for keyword and category discovery. |
| `maxItems` | integer | Stops after this many products. Leave it empty to return all available results until the source is exhausted. |

Example from a successful run:

```json
{
  "target": "categoryListing",
  "categoryUrls": [
    {
      "url": "https://www.digikey.com/en/products/filter/programmable-timers-and-oscillators/689"
    }
  ],
  "enrichment": "listing",
  "inStockOnly": false,
  "maxItems": 5
}
```

#### 🧾 Output

Results are saved in the default dataset. Product fields that DigiKey does not show may be left out.

**Product row**

| Field | Type | What it does |
|---|---|---|
| `resultType` | string | Is `product`. |
| `productUrl` | string | Canonical DigiKey product page. |
| `digiKeyPartNumber` | string | DigiKey orderable part number. |
| `manufacturer`, `manufacturerPartNumber` | string | Maker and maker part number. |
| `name`, `description`, `detailedDescription` | string | Product names and descriptions. |
| `category`, `subcategory`, `family`, `series` | string | Catalog groups and maker series. |
| `breadcrumbs` | array of strings | Full category path. |
| `packaging` | string | Main package or supply format. |
| `lifecycleStatus` | string | Current lifecycle status. |
| `stockQuantity`, `stockText`, `stockStatus` | integer, string | Current stock number and source status. |
| `leadTime` | string | Lead time shown by DigiKey. |
| `nonStock`, `backorderAvailable` | boolean | Non-stock and backorder flags. |
| `currency`, `unitPrice` | string, number | Price currency and one-unit price. |
| `minimumOrderQuantity` | integer | Smallest order size. |
| `pricing` | array of objects | Package-specific price groups. |
| `pricing[].packageType`, `pricing[].digiKeyPartNumber` | string | Package name and orderable part number. |
| `pricing[].minimumOrderQuantity`, `pricing[].offerMessage` | integer, string | Package order limit and source note. |
| `pricing[].priceBreaks` | array of objects | Quantity-break prices. |
| `pricing[].priceBreaks[].quantity` | integer | Quantity where a price starts. |
| `pricing[].priceBreaks[].unitPrice`, `pricing[].priceBreaks[].formattedPrice` | number, string | Numeric and source-formatted unit price. |
| `specifications` | array of objects | Technical properties. |
| `specifications[].name`, `specifications[].value` | string | Property name and value. |
| `compliance` | object | Compliance and trade details. |
| `compliance.rohsStatus`, `compliance.reachStatus` | string | RoHS and REACH status. |
| `compliance.moistureSensitivityLevel` | string | Moisture sensitivity level. |
| `compliance.eccn`, `compliance.htsCode` | string | Export class and tariff code. |
| `imageUrl`, `datasheetUrl` | string | Product image and main datasheet links. |
| `documents` | array of objects | Other product documents. |
| `documents[].title`, `documents[].url` | string | Document name and link. |
| `substitutes` | array of objects | Substitute or cross-reference parts. |
| `substitutes[].manufacturer`, `substitutes[].manufacturerPartNumber` | string | Substitute maker and maker part number. |
| `substitutes[].productUrl`, `substitutes[].relationship` | string | Substitute page and relationship. |

```json
{
  "resultType": "product",
  "productUrl": "https://www.digikey.com/en/products/detail/diodes-incorporated/NE555S-13/2921391",
  "digiKeyPartNumber": "NE555S-13DICT-ND",
  "manufacturer": "Diodes Incorporated",
  "manufacturerPartNumber": "NE555S-13",
  "name": "NE555S-13",
  "description": "IC OSC SNGL TIMER 500KHZ 8-SOIC",
  "detailedDescription": "555 Type, Timer/Oscillator (Single) IC 500kHz 8-SO",
  "category": "Programmable Timers and Oscillators",
  "subcategory": "Clock/Timing",
  "family": "Integrated Circuits (ICs)",
  "breadcrumbs": [
    "Integrated Circuits (ICs)",
    "Clock/Timing",
    "Programmable Timers and Oscillators"
  ],
  "packaging": "Cut Tape (CT) & Digi-Reel®",
  "lifecycleStatus": "Active",
  "stockQuantity": 2584,
  "stockText": "2,584",
  "stockStatus": "In Stock",
  "leadTime": "40 Weeks",
  "nonStock": false,
  "backorderAvailable": true,
  "currency": "USD",
  "unitPrice": 0.28,
  "minimumOrderQuantity": 1,
  "pricing": [
    {
      "packageType": "Cut Tape (CT) & Digi-Reel®",
      "digiKeyPartNumber": "NE555S-13DICT-ND",
      "minimumOrderQuantity": 1,
      "offerMessage": "* All Digi-Reel orders will add a $7.00 reeling fee.",
      "priceBreaks": [
        {
          "quantity": 1,
          "unitPrice": 0.28,
          "formattedPrice": "$0.28000"
        },
        {
          "quantity": 10,
          "unitPrice": 0.189,
          "formattedPrice": "$0.18900"
        },
        {
          "quantity": 25,
          "unitPrice": 0.1672,
          "formattedPrice": "$0.16720"
        },
        {
          "quantity": 50,
          "unitPrice": 0.1538,
          "formattedPrice": "$0.15380"
        },
        {
          "quantity": 100,
          "unitPrice": 0.1429,
          "formattedPrice": "$0.14290"
        }
      ]
    },
    {
      "packageType": "Tape & Reel (TR)",
      "digiKeyPartNumber": "NE555S-13DITR-ND",
      "minimumOrderQuantity": 2500,
      "priceBreaks": [
        {
          "quantity": 2500,
          "unitPrice": 0.11272,
          "formattedPrice": "$0.11272"
        },
        {
          "quantity": 7500,
          "unitPrice": 0.10726,
          "formattedPrice": "$0.10726"
        }
      ]
    }
  ],
  "specifications": [
    {
      "name": "Manufacturer",
      "value": "Diodes Incorporated"
    },
    {
      "name": "Packaging",
      "value": "Tape & Reel (TR), Cut Tape (CT), Digi-Reel®"
    },
    {
      "name": "Part Status",
      "value": "Active"
    },
    {
      "name": "Type",
      "value": "555 Type, Timer/Oscillator (Single)"
    },
    {
      "name": "Frequency",
      "value": "500kHz"
    },
    {
      "name": "Voltage - Supply",
      "value": "4.5V ~ 16V"
    },
    {
      "name": "Current - Supply",
      "value": "13 mA"
    },
    {
      "name": "Operating Temperature",
      "value": "0°C ~ 70°C"
    },
    {
      "name": "Package / Case",
      "value": "8-SOIC (0.154\", 3.90mm Width)"
    },
    {
      "name": "Supplier Device Package",
      "value": "8-SO"
    },
    {
      "name": "Mounting Type",
      "value": "Surface Mount"
    },
    {
      "name": "Base Product Number",
      "value": "NE555"
    }
  ],
  "compliance": {
    "rohsStatus": "ROHS3 Compliant",
    "moistureSensitivityLevel": "1  (Unlimited)",
    "reachStatus": "REACH Unaffected",
    "eccn": "EAR99",
    "htsCode": "8542.39.0070"
  },
  "imageUrl": "https://mm.digikey.com/Volume0/opasdata/d220001/medias/images/5741/31%7E8SO-3.9%7E%7E8.jpg?hidebanner=true",
  "datasheetUrl": "https://www.diodes.com/assets/Datasheets/NE555_SA555_NA555.pdf",
  "documents": [
    {
      "title": "Datasheets",
      "url": "https://www.diodes.com/assets/Datasheets/NE555_SA555_NA555.pdf"
    },
    {
      "title": "Environmental Information",
      "url": "https://mm.digikey.com/Volume0/opasdata/d220001/medias/docus/6731/Diode%20RoHS3%20REACH%20247%20Jan%202025%20Statement.pdf"
    },
    {
      "title": "Featured Product",
      "url": "https://www.digikey.com/en/product-highlight/d/diodes/precision-timer-ics"
    },
    {
      "title": "PCN Assembly/Origin",
      "url": "https://mm.digikey.com/Volume0/opasdata/d220001/medias/docus/4884/PCN_2512_Rev1.pdf"
    },
    {
      "title": "EDA Models",
      "url": "https://www.digikey.com/en/models/2921391"
    }
  ],
  "substitutes": [
    {
      "manufacturerPartNumber": "SE555P",
      "manufacturer": "Texas Instruments",
      "productUrl": "https://www.digikey.com/en/products/detail/texas-instruments/SE555P/380221",
      "relationship": "You May Also Be Interested In"
    },
    {
      "manufacturerPartNumber": "CD4017BM96",
      "manufacturer": "Texas Instruments",
      "productUrl": "https://www.digikey.com/en/products/detail/texas-instruments/CD4017BM96/1690809",
      "relationship": "You May Also Be Interested In"
    },
    {
      "manufacturerPartNumber": "PV36W103C01B00",
      "manufacturer": "Bourns Inc.",
      "productUrl": "https://www.digikey.com/en/products/detail/bourns-inc/PV36W103C01B00/666502",
      "relationship": "You May Also Be Interested In"
    },
    {
      "manufacturerPartNumber": "FIT0242",
      "manufacturer": "DFRobot",
      "productUrl": "https://www.digikey.com/en/products/detail/dfrobot/FIT0242/25558500",
      "relationship": "You May Also Be Interested In"
    },
    {
      "manufacturerPartNumber": "MIC1555YM5-TR",
      "manufacturer": "Microchip Technology",
      "productUrl": "https://www.digikey.com/en/products/detail/microchip-technology/MIC1555YM5-TR/1027724",
      "relationship": "You May Also Be Interested In"
    },
    {
      "manufacturerPartNumber": "LM321SN3T1G",
      "manufacturer": "onsemi",
      "productUrl": "https://www.digikey.com/en/products/detail/onsemi/LM321SN3T1G/6134950",
      "relationship": "You May Also Be Interested In"
    },
    {
      "manufacturerPartNumber": "P0915N-FC15BR100K",
      "manufacturer": "TT Electronics/BI",
      "productUrl": "https://www.digikey.com/en/products/detail/tt-electronics-bi/P0915N-FC15BR100K/5957453",
      "relationship": "You May Also Be Interested In"
    },
    {
      "manufacturerPartNumber": "PV36W203C01B00",
      "manufacturer": "Bourns Inc.",
      "productUrl": "https://www.digikey.com/en/products/detail/bourns-inc/PV36W203C01B00/666508",
      "relationship": "You May Also Be Interested In"
    },
    {
      "manufacturerPartNumber": "PV36W104C01B00",
      "manufacturer": "Bourns Inc.",
      "productUrl": "https://www.digikey.com/en/products/detail/bourns-inc/PV36W104C01B00/666503",
      "relationship": "You May Also Be Interested In"
    },
    {
      "manufacturerPartNumber": "LM358DT",
      "manufacturer": "STMicroelectronics",
      "productUrl": "https://www.digikey.com/en/products/detail/stmicroelectronics/LM358DT/591693",
      "relationship": "You May Also Be Interested In"
    }
  ]
}
```

**Category suggestion row**

| Field | Type | What it does |
|---|---|---|
| `resultType` | string | Is `categorySuggestions`. |
| `keyword` | string | Search text that led to the suggestions. |
| `relatedCategories` | array of objects | Related DigiKey categories. |
| `relatedCategories[].name` | string | Category name. |
| `relatedCategories[].url` | string | Category page. |
| `relatedCategories[].productCount` | integer | Product count shown for the category. |

```json
{
  "resultType": "categorySuggestions",
  "keyword": "perovskite solar cell controller",
  "relatedCategories": [
    {
      "name": "Solar Cells",
      "url": "https://www.digikey.com/en/products/filter/solar-cells/514",
      "productCount": 1
    }
  ]
}
```

**Failure row**

| Field | Type | What it does |
|---|---|---|
| `resultType` | string | Is `error`. |
| `sourceReference` | string | Submitted value that failed. |
| `error` | string | Safe reason it failed. |
| `failedAt` | string | Time the last access attempt failed. |

#### 💳 Pricing

This Actor uses pay-per-event pricing. A listing product is charged when a product row is saved from a category, filter, or search listing. An enriched product is charged when a product with available detail-page data is saved. Category suggestions and failure rows are not product charges.

#### 🔌 Integrations

Send dataset rows to Google Sheets, Make, Zapier, Slack, webhooks, or your own app with Apify integrations and API tools.

https://www.youtube.com/watch?v=bNACk1\_S\_6w\&list=PLObrtcm1Kw6MUrlLNDbK9QRg8VDJg0gOW\&index=4

#### ❓ FAQ

##### What happens when a keyword has no exact part match?

The dataset can include related DigiKey category suggestions instead of silently dropping the search.

##### Can I look up a BOM?

Yes. Choose Products and add the known manufacturer or DigiKey part numbers. Each source part is saved at most once per run.

##### Can I scan a whole category?

Yes. Choose Category Listing and add category or filtered listing URLs. Leave `maxItems` empty to return all available results until the source is exhausted.

##### Does this use the official DigiKey API?

No. It reads public DigiKey catalog pages. Use DigiKey's official API when you need an official, key-based service.

##### Does it buy parts or track price history?

No. It does not handle carts, checkout, quotes, alerts, or price history. It returns the data shown during the run.

### 📝 Changelog

**v0.1**

- Search by URL, part number, keyword, or category and filter discovery results by manufacturer and stock availability.
- Choose fast listing results or enriched product details with pricing, specifications, compliance data, documents, and substitutes.
- Resume interrupted runs safely and return clear category suggestions or failure rows when no product match is available.

**v0.0**

- Find DigiKey products by URL, part number, keyword, or category listing.
- Export stock, quantity-break prices, technical specifications, compliance data, documents, and substitute parts.

### 🆘 Support

For issues, questions, or feature requests, [file a ticket](https://console.apify.com/actors/maximedupre~digikey/issues) and I'll fix or implement it in less than 24h 🫡

### 🔗 Related Actors

- [1688 Supplier Scraper](https://apify.com/maximedupre/1688-com-supplier-scraper) compares public 1688 supplier profiles when a part needs another sourcing path.
- [Digikey Parts Scraper - Electronic Components, Prices and Stock](https://apify.com/jungle_synthesizer/digikey-parts-scraper) collects DigiKey parts with price, stock, and electronics fields.
- [DigiKey Product Scraper — MPN, Pricing Tiers, Stock & Specs](https://apify.com/crawloop/digikey-product-scraper) focuses on DigiKey product-page data, price tiers, stock, and specs.
- [Findchips Scraper — MPN Price, Stock & Multi-Distributor Offers](https://apify.com/crawloop/findchips-scraper) compares multi-distributor offers for BOM and sourcing reviews.
- [Sourcengine Scraper - MPN, Multi-Supplier Offers, Stock & Specs](https://apify.com/crawloop/sourcengine-scraper) reviews multi-supplier offers, stock, lead times, and specs.

**Made with ❤️ by Maxime Dupré**

# Actor input Schema

## `target` (type: `string`):

Choose how to find products. Fields for other methods are ignored.

## `productInputs` (type: `array`):

Enter one or more DigiKey product URLs, manufacturer part numbers, or DigiKey part numbers. You can mix these values in one list.

## `keyword` (type: `string`):

Enter one part number, product name, or search phrase.

## `categoryUrls` (type: `array`):

Add one or more DigiKey category or filtered listing URLs.

## `manufacturers` (type: `array`):

For Keyword Search and Category Listing, enter manufacturer names to keep. Leave empty to include all manufacturers.

## `enrichment` (type: `string`):

For Keyword Search and Category Listing, choose fast listing data or slower full product details. Products always return full details.

## `inStockOnly` (type: `boolean`):

For Keyword Search and Category Listing, return only products that DigiKey marks as in stock.

## `maxItems` (type: `integer`):

For Keyword Search and Category Listing, stop after saving this many products. Leave it empty to return all available results until the source is exhausted.

## Actor input object example

```json
{
  "target": "categoryListing",
  "categoryUrls": [
    {
      "url": "https://www.digikey.com/en/products/filter/programmable-timers-and-oscillators/689"
    }
  ],
  "enrichment": "listing",
  "inStockOnly": false,
  "maxItems": 5
}
```

# Actor output Schema

## `results` (type: `string`):

Open product records and category suggestions in the default dataset.

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "target": "categoryListing",
    "categoryUrls": [
        {
            "url": "https://www.digikey.com/en/products/filter/programmable-timers-and-oscillators/689"
        }
    ],
    "maxItems": 5
};

// Run the Actor and wait for it to finish
const run = await client.actor("maximedupre/digikey").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "target": "categoryListing",
    "categoryUrls": [{ "url": "https://www.digikey.com/en/products/filter/programmable-timers-and-oscillators/689" }],
    "maxItems": 5,
}

# Run the Actor and wait for it to finish
run = client.actor("maximedupre/digikey").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "target": "categoryListing",
  "categoryUrls": [
    {
      "url": "https://www.digikey.com/en/products/filter/programmable-timers-and-oscillators/689"
    }
  ],
  "maxItems": 5
}' |
apify call maximedupre/digikey --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,maximedupre/digikey"
        }
    }
}

```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/WOnyDfvIqBNQIebqp/builds/VfdR2OwtbIbgqEqbi/openapi.json
