Package: digikey-api
Python Client for Digikey APISearch for parts in the Digi-Key catalog by keyword using KeywordSearch. Then make a PartDetails call to retrieve all
real time information about the part including pricing. PartDetails works best with Digi-Key part numbers as some
manufacturers overlap other manufacturer part numbers.What does it dodigikey-apiis anDigkey Part Search APIclient for Python 3.6+. API response data is returned as Python objects that attempt to make it easy to get the data you want. Not all endpoints have been implemented.QuickstartInstallpipinstalldigikey-apiexportDIGIKEY_CLIENT_ID="client_id"exportDIGIKEY_CLIENT_SECRET="client_secret"exportDIGIKEY_STORAGE_PATH="cache_dir"API V3RegisterRegister an app on the Digikey API portal:Digi-Key API V3. You will need
the client ID and the client secret to use the API. You will also need a Digi-Key account to authenticate, using the
Oauth2 process.When registering an app the OAuth Callback needs to be set tohttps://localhost:8139/digikey_callback.Use [API V3]Python will automatically spawn a browser to allow you to authenticate using the Oauth2 process. After obtaining a token
the library will cache the access token and use the refresh token to automatically refresh your credentials.You can test your application using the sandbox API, the data returned from a Sandbox API may not be complete, but the
structure of the Sandbox API response will be a representation of what to expect in Production.For valid responses make sure you use the client ID and secret for aProduction Appimportosimportdigikeyfromdigikey.v3.productinformationimportKeywordSearchRequestos.environ['DIGIKEY_CLIENT_ID']='client_id'os.environ['DIGIKEY_CLIENT_SECRET']='client_secret'os.environ['DIGIKEY_CLIENT_SANDBOX']='False'os.environ['DIGIKEY_STORAGE_PATH']='cache_dir'# Query product numberdkpn='296-6501-1-ND'part=digikey.product_details(dkpn)# Search for partssearch_request=KeywordSearchRequest(keywords='CRCW080510K0FKEA',record_count=10)result=digikey.keyword_search(body=search_request)Logging [API V3]Logging is not forced upon the user but can be enabled according to convention:importlogginglogger=logging.getLogger(__name__)logger.setLevel(logging.DEBUG)digikey_logger=logging.getLogger('digikey')digikey_logger.setLevel(logging.DEBUG)handler=logging.StreamHandler()handler.setLevel(logging.DEBUG)logger.addHandler(handler)digikey_logger.addHandler(handler)Top-level APIsProduct InformationAll functions from thePartSearchAPI have been implemented.digikey.keyword_search()digikey.product_details()digikey.digi_reel_pricing()digikey.suggested_parts()digikey.manufacturer_product_details()Batch Product DetailsThe one function from theBatchProductDetailsAPIAPI has been implemented.digikey.batch_product_details()Order SupportAll functions from theOrderDetailsAPI have been implemented.digikey.salesorder_history()digikey.status_salesorder_id()BarcodeTODOAPI LimitsThe API has a limited amount of requests you can make per time intervalDigikey Rate Limits.It is possible to retrieve the number of max requests and current requests by passing an optional api_limits kwarg to an API function:api_limit={}search_request=KeywordSearchRequest(keywords='CRCW080510K0FKEA',record_count=10)result=digikey.keyword_search(body=search_request,api_limits=api_limit)The dict will be filled with the information returned from the API:{'api_requests_limit':1000,'api_requests_remaining':139}Sometimes the API does not return any rate limit data, the values will then be set to None.