API Documentation: Third-Party Integrations with DigiKey myLists
This guide explains how to transfer Bill of Materials (BOM) data to DigiKey’s myLists using a lightweight API endpoint that does not require API keys or authentication.[1] The endpoint returns a single-use URL that allows users to:
- Add parts to a DigiKey cart, or
- Sign in to myDigiKey to save the list to their account.
Purpose: Quickly push BOM data to DigiKey without full API integration.
Use Case: Ideal for third-party tools, plugins, or scripts that need a fast way to send parts lists.
API Endpoint
- Base URL:
https://www.digikey.com/mylists/api/thirdparty - Method:
POST - Headers:
Content-Type:application/json
Request Structure
The request payload consists of query parameters and a JSON object detailing parts. Below are the required components for a valid request:
Query Parameters
listName(string, required): Specifies the name of the list to be created in myLists.- Example:
"hello_myLists"
- Example:
tags(string, optional): Tags to categorize the list.- Example:
"KiCad"
- Example:
JSON Payload
The payload contains an array of parts, including their quantities and optional metadata.
JSON Payload Example
[
{
"requestedPartNumber": "3000TR",
"manufacturerName": "",
"referenceDesignator": "",
"customerReference": "",
"notes": "",
"quantities": [
{
"quantity": 10
}
]
},
{
"requestedPartNumber": "3000TR",
"manufacturerName": "",
"referenceDesignator": "",
"customerReference": "",
"notes": "",
"quantities": [
{
"quantity": 10
},
{
"quantity": 20
}
]
}
]
Field Descriptions
-
requestedPartNumber(string, required):- The DigiKey or manufacturer part number for the item.
-
manufacturerName(string, optional):- The name of the manufacturer for the requested part. Leave blank if not applicable.
-
referenceDesignator(string, optional):- A designator from the schematic (e.g.,
R1,C2). Leave blank if not applicable.
- A designator from the schematic (e.g.,
-
customerReference(string, optional):- A custom reference field for user-defined identifiers or notes.
-
notes(string, optional):- Additional notes or comments about the part.
-
quantities(array of objects, required):- An array of quantities, where each object contains:
quantity(integer, required): The desired quantity of the part.
- An array of quantities, where each object contains:
Response Structure
The API responds with a JSON object containing a single-use URL that redirects the user to the myLists interface with the submitted BOM data preloaded.
Example Response
{
"singleUseUrl": "https://www.digikey.com/mylists/singleuse/12345abcde"
}
Response Field Description
singleUseUrl(string):- A one-time use URL that redirects to the DigiKey myLists interface. The URL includes the preloaded BOM data submitted in the request.
Key Notes
-
Single-Use URL:
- The
singleUseUrlis valid for one-time use only. - Once accessed, the URL cannot be reused or refreshed.
- The
-
URL Expiry:
- The single-use URL may expire after a short period. Ensure the URL is accessed immediately after retrieval.
Error Handling
The API returns standard HTTP status codes and detailed error messages in the response body.
Common Error Codes
- 400 Bad Request: Indicates invalid input or missing required fields.
- 401 Unauthorized: Authentication error; missing or invalid credentials.
- 500 Internal Server Error: Server-side issue.
Example Error Response
{
"error": {
"code": "400",
"message": "Invalid part number format."
}
}
Python Example
import requests
import json
base_api_url = "https://www.digikey.com/mylists/api/thirdparty"
params = {
"listName": "hello_myLists",
"tags": "KiCad"
}
headers = {"Content-Type": "application/json"}
payload = [
{
"requestedPartNumber": "3000TR",
"manufacturerName": "",
"referenceDesignator": "",
"customerReference": "",
"notes": "",
"quantities": [{"quantity": 10}]
},
{
"requestedPartNumber": "3000TR",
"manufacturerName": "",
"referenceDesignator": "",
"customerReference": "",
"notes": "",
"quantities": [{"quantity": 10}, {"quantity": 20}]
}
]
response = requests.post(base_api_url, headers=headers, params=params, data=json.dumps(payload))
if response.status_code == 200:
data = response.json()
print(f"Single-Use URL: {data['singleUseUrl']}")
else:
print(f"Error: {response.status_code}")
print(response.text)
Alternative methods of pushing parts to DigiKey’s website
- The DigiKey API suite has several methods of managing part lists and orders in a more robust manner. It’s free and easy to get started using your current DigiKey site credentials.
- If you just want to send parts directly into a DigiKey cart without the need for messing around with the full API, please check out this page for more information.
Applications using this feature
The Kicad Push-to-DigiKey plugin leverages this API. This is an example of it being used in the wild.
1 ↩︎