# DigiKey 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, Developer tools, Automation
- **Features:** Limited permissions
- **Stats:** 13 total users, 7 monthly users, 64.6% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.35 / 1,000 product details

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?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
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.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## 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.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## DigiKey Scraper: Prices and Stock

### 🔎 Find the parts you need

Built for electronic component 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.
- 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.

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. Fields for other methods are ignored. |
| `productInputs` | array of strings | Lists one or more DigiKey product URLs, manufacturer part numbers, or DigiKey part numbers. Values can be mixed and are used only for Products. |
| `keyword` | string | Gives one part number, product name, or search phrase. Used only for Keyword Search. |
| `manufacturers` | array of strings | For Keyword Search and Category Listing, keeps only these makers. Leave it empty to include all manufacturers. |
| `categoryUrls` | array of objects | Lists one or more DigiKey category or filtered listing URLs. Used only for Category Listing. |
| `categoryUrls[].url` | string | Gives one DigiKey category or filtered listing URL. |
| `enrichment` | string | For Keyword Search and Category Listing, chooses fast listing data or slower full product details. Products always return all details available from their DigiKey pages. |
| `inStockOnly` | boolean | Keeps only parts DigiKey marks as in stock for keyword and category discovery. |
| `maxItems` | integer | For Keyword Search and Category Listing, 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` | string | Product maker. |
| `manufacturerPartNumber` | string | Part number assigned by the maker. |
| `name` | string | DigiKey product name. |
| `description` | string | Short product description from DigiKey. |
| `detailedDescription` | string | Longer product description from DigiKey. |
| `category` | string | Main DigiKey product category. |
| `subcategory` | string | More specific DigiKey product category. |
| `family` | string | DigiKey product family. |
| `breadcrumbs` | array of strings | Category path from the broadest group to the product group. |
| `series` | string | Maker series for the product. |
| `packaging` | string | Main package or supply format. |
| `lifecycleStatus` | string | Current product lifecycle status shown by DigiKey. |
| `stockQuantity` | integer | Current quantity in stock. |
| `stockStatus` | string | Stock availability status shown by DigiKey. |
| `leadTime` | string | Standard lead time shown by DigiKey. |
| `nonStock` | boolean | True when DigiKey marks the product as non-stock. |
| `backorderAvailable` | boolean | True when DigiKey says backorders are available. |
| `currency` | string | ISO currency code used for prices. |
| `unitPrice` | number | Current numeric price for one unit when shown. |
| `minimumOrderQuantity` | integer | Smallest quantity that can be ordered. |
| `pricing` | array of objects | Prices grouped by package option. |
| `pricing[].packageType` | string | Package option for these prices. |
| `pricing[].digiKeyPartNumber` | string | DigiKey part number for this package option. |
| `pricing[].minimumOrderQuantity` | integer | Smallest order for this package option. |
| `pricing[].offerMessage` | string | Order note shown by DigiKey for this package option. |
| `pricing[].priceBreaks` | array of objects | Unit prices at each order quantity. |
| `pricing[].priceBreaks[].quantity` | integer | Quantity where this unit price starts. |
| `pricing[].priceBreaks[].unitPrice` | number | Numeric price for one unit. |
| `pricing[].priceBreaks[].formattedPrice` | string | Price formatted by DigiKey. |
| `specifications` | array of objects | Technical properties listed for the product. |
| `specifications[].name` | string | Technical property name. |
| `specifications[].value` | string | Technical property value, including source units when shown. |
| `compliance` | object | Compliance and trade classification details. |
| `compliance.rohsStatus` | string | RoHS status shown by DigiKey. |
| `compliance.reachStatus` | string | REACH status shown by DigiKey. |
| `compliance.moistureSensitivityLevel` | string | Moisture sensitivity level. |
| `compliance.eccn` | string | Export Control Classification Number. |
| `compliance.htsCode` | string | Harmonized tariff code. |
| `imageUrl` | string | Main product image URL. |
| `datasheetUrl` | string | Direct source URL for the main datasheet. |
| `documents` | array of objects | Other source documents for the product. |
| `documents[].title` | string | Document name. |
| `documents[].url` | string | Direct source URL for the document. |
| `substitutes` | array of objects | Available substitute or cross-reference parts. |
| `substitutes[].manufacturer` | string | Maker of the substitute. |
| `substitutes[].manufacturerPartNumber` | string | Maker part number for the substitute. |
| `substitutes[].productUrl` | string | DigiKey page for the substitute. |
| `substitutes[].relationship` | string | How DigiKey relates this part to the product. |

```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": 16884,
  "stockStatus": "In Stock",
  "leadTime": "40 Weeks",
  "nonStock": false,
  "backorderAvailable": true,
  "currency": "USD",
  "unitPrice": 0.29,
  "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.29,
          "formattedPrice": "$0.29000"
        },
        {
          "quantity": 10,
          "unitPrice": 0.2,
          "formattedPrice": "$0.20000"
        },
        {
          "quantity": 25,
          "unitPrice": 0.1772,
          "formattedPrice": "$0.17720"
        },
        {
          "quantity": 50,
          "unitPrice": 0.163,
          "formattedPrice": "$0.16300"
        },
        {
          "quantity": 100,
          "unitPrice": 0.1515,
          "formattedPrice": "$0.15150"
        }
      ]
    },
    {
      "packageType": "Tape & Reel (TR)",
      "digiKeyPartNumber": "NE555S-13DITR-ND",
      "minimumOrderQuantity": 2500,
      "priceBreaks": [
        {
          "quantity": 2500,
          "unitPrice": 0.11948,
          "formattedPrice": "$0.11948"
        },
        {
          "quantity": 7500,
          "unitPrice": 0.11369,
          "formattedPrice": "$0.11369"
        }
      ]
    }
  ],
  "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": "NE555DR",
      "manufacturer": "Texas Instruments",
      "productUrl": "https://www.digikey.com/en/products/detail/texas-instruments/NE555DR/372491",
      "relationship": "You May Also Be Interested In"
    },
    {
      "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": "LM386MX-1/NOPB",
      "manufacturer": "Texas Instruments",
      "productUrl": "https://www.digikey.com/en/products/detail/texas-instruments/LM386MX-1-NOPB/212680",
      "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": "PDV-P8103",
      "manufacturer": "Advanced Photonix",
      "productUrl": "https://www.digikey.com/en/products/detail/advanced-photonix/PDV-P8103/480610",
      "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": "232",
      "manufacturer": "Keystone Electronics",
      "productUrl": "https://www.digikey.com/en/products/detail/keystone-electronics/232/303804",
      "relationship": "You May Also Be Interested In"
    },
    {
      "manufacturerPartNumber": "P120PK-Y25BR10K",
      "manufacturer": "TT Electronics/BI",
      "productUrl": "https://www.digikey.com/en/products/detail/tt-electronics-bi/P120PK-Y25BR10K/5957454",
      "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": "FIT0242",
      "manufacturer": "DFRobot",
      "productUrl": "https://www.digikey.com/en/products/detail/dfrobot/FIT0242/25558500",
      "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
    }
  ]
}
```

#### 💳 Pricing

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

#### 🔌 Integrations

Use the Apify API or dataset exports to send product rows to your own 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. The first eligible match for each source part is saved, and later duplicates are ignored.

##### 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

**v2.0** (30-09-2026)

- Product rows now return numeric `stockQuantity`; the old `stockText` field is no longer returned.

**v1.0** (10-09-2026)

- Product rows now use only documented fields, with source values such as units kept in their matching value fields.
- Product searches continue with other submitted values when one value cannot be read.

**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

- [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.
- [Octopart Scraper — MPN Price, Stock & Multi-Distributor Offers](https://apify.com/crawloop/octopart-scraper) compares component offers across distributors for sourcing work.
- [Findchips Scraper — MPN Price, Stock & Multi-Distributor Offers](https://apify.com/crawloop/findchips-scraper) compares multi-distributor offers for BOM and sourcing reviews.
- [LCSC Scraper: BOM Pricing, Stock & Price-Break Alerts with RoHS](https://apify.com/getascraper/lcsc-scraper) checks LCSC BOM pricing, stock, and price breaks.

**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 details from the product page. Products always return all details available from their DigiKey pages.

## `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/o7oxMdpvxczPTx7NV/openapi.json
