
Research
2025 Report: Destructive Malware in Open Source Packages
Destructive malware is rising across open source registries, using delays and kill switches to wipe code, break builds, and disrupt CI/CD.
dkc-api
Advanced tools
Connector for connecting via api to DKC. Allows you to easily retrieve product and news data.
Connector to DKC API v1 (dkc.ru)
Connector for connecting via api to DKC. Allows you to easily retrieve product and news data.
These instructions will get you a copy of the project up and running on your local machine for development and testing purposes.
The project uses Poetry instead of pip. But if you do not want to install the Poetry, for this case, create a file "requirements.txt".
To get started, you need to import the main class DkcAPI.
from dkc_api.v1.dkc_api import DkcAPI
Next, we pass the initialization parameters to the class. If you want to use environment variables, then the file .env.example is prepared for this.
dkc_api = DkcAPI(
master_key=os.getenv("TOKEN"),
debug=True,
storage=storage.FileTokenStorage(),
logger=logger
)
So far, only five DkcAPI models are available for work:
Catalog object name:
>>> dkc_api.Catalog.*
This method retrieves data on stock balances.
Args:
>>> resolve = dkc_api.Catalog.getMaterialStock()
>>> resolve
GetMaterialStock({create: datetime, materials: [{ id: 81, status: true, code: 1200, warehouse: [{code: 2765, ...]}, ...]}, ...] })
This method returns all data for the specified material.
Args:
>>> resolve = dkc_api.Catalog.getMaterial(code=1200)
>>> resolve
GetMaterial({material: {id: 81, node_id: 1234, etim_class_id: "ETIM", name: "Product name", type: "Type", ...})
This method returns a list of product analogues.
Args:
>>> resolve = dkc_api.Catalog.getMaterialAnalogs(code=1200)
>>> resolve
GetMaterialAnalogs({analogs: { "1200": [ *product_analogue_codes* ]}})
You can get a list of all analogs for all products, for this you need to leave the "code" parameter empty.
>>> resolve = dkc_api.Catalog.getMaterialAnalogs()
>>> resolve
GetMaterialAnalogs({analogs: { *product_codes*: [ *product_analogue_codes* ]}})
This method returns a list of product accessories.
Args:
>>> resolve = dkc_api.Catalog.getMaterialAccessories(code=1200)
>>> resolve
GetMaterialAccessories({accessories: { "1200": [ *product_analogue_codes* ]}})
You can get a list of all accessories for all products, for this you need to leave the "code" parameter empty.
>>> resolve = dkc_api.Catalog.getMaterialAccessories()
>>> resolve
GetMaterialAccessories({accessories: { *product_codes*: [ *product_analogue_codes* ]}})
This method returns a list of product certificates.
Args:
>>> resolve = dkc_api.Catalog.getMaterialCertificates(code=1200)
>>> resolve
GetMaterialCertificates({certificates: { "1200": [ *product_analogue_codes* ]}})
Content object name:
>>> dkc_api.Content.*
The method allows you to get editorial drawings by product code
Args:
>>> resolve = dkc_api.Content.getRevisionDrawings(code=1200)
>>> resolve
GetRevisionDrawings({revision: { delta: bool, drawings: { updated: [id: 1200, name: "Name", links: { type: "Type", ...}], removed: [...]}})
The method allows you to get editorial materials by product code
Args:
>>> resolve = dkc_api.Content.getRevisionMaterials(code=1200)
>>> resolve
GetRevisionMaterials({revision: { delta: bool, materials: { updated: [id: 1200, name: "Name", links: { type: "Type", ...}], removed: [...]}})
This method allows you to upload files to the dkc api repository
Args:
>>> post_file_content = PostFileContent(name="name_file", value="value_file")
>>> resolve = dkc_api.Content.postFile(file_content=post_file_content)
>>> resolve
PostFile({revision: { id: 872} })
This method allows you to get files from the dkc api repository
Args:
>>> resolve = dkc_api.Content.getFile(file_id=872)
>>> resolve
PostFile({revision: { name: "name_file", value: "value_file" } })
Delivery object name:
>>> dkc_api.Delivery.*
The method returns the date of shipment of goods
Args:
>>> delivery_time_content = DeliveryTimeContent(company_warehouse="test", items=[])
>>> resolve = dkc_api.Delivery.getDeliveryTime(delivery_time_content=delivery_time_content)
>>> resolve
GetDeliveryTime({items: [{ code: 172, status: true, date_last: {date: *datetime*, amount: 1689030}, date_detail: [...]}, ...] })
News object name:
>>> dkc_api.News.*
The method returns company news.
Args:
>>> resolve = dkc_api.News.getNewsCompany()
>>> resolve
GetNewsCompany({news: [{title: "Title", text: "Text", thumbnail_url: "Url", images: ["URL", ...], timestamp: *datetime*}, ...]})
The method returns products news.
Args:
>>> resolve = dkc_api.News.getNewsProducts()
>>> resolve
GetNewsProducts({news: [{title: "Title", text: "Text", thumbnail_url: "Url", images: ["URL", ...], timestamp: *datetime*}, ...]})
The method returns community news.
Args:
>>> resolve = dkc_api.News.getNewsCommunity()
>>> resolve
GetNewsCommunity({news: [{text: "Text", timestamp: "08.08.2021"}, ...]})
FAQs
Connector for connecting via api to DKC. Allows you to easily retrieve product and news data.
We found that dkc-api demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Research
Destructive malware is rising across open source registries, using delays and kill switches to wipe code, break builds, and disrupt CI/CD.

Security News
Socket CTO Ahmad Nassri shares practical AI coding techniques, tools, and team workflows, plus what still feels noisy and why shipping remains human-led.

Research
/Security News
A five-month operation turned 27 npm packages into durable hosting for browser-run lures that mimic document-sharing portals and Microsoft sign-in, targeting 25 organizations across manufacturing, industrial automation, plastics, and healthcare for credential theft.