{% extends "base.html" %} {% block title %}pypi-tea — SBOM Coverage Dashboard for PyPI Packages{% endblock %} {% block meta %} {% endblock %} {% block head %} {% endblock %} {% macro chart_card(id, title, caption=None, empty=None, summary=None) %}
{{ caption }}
{% endif %} {% if empty %}{% endif %} {% if summary %}{% endif %}Which Python packages ship a CycloneDX or SPDX SBOM inside their wheels, whether it validates, and whether the wheel carries a PEP 740 attestation. Every SBOM found is served over TEA.
Loading stats…
What ships, and whether it holds up.
Sigstore-based provenance, verified per wheel.
Each package version ships several wheels, one per platform and Python version. This is SBOM coverage per individual wheel.
– of wheels include an SBOM
The Transparency Exchange API (TEA) is an open standard for discovering SBOMs. Query this server with tea-cli:
# Install the TEA CLI
$ pip install libtea[cli]
# Inspect a PyPI package — discovers SBOMs via TEA in one shot
$ tea-cli inspect "urn:tei:purl:pypi.sbomify.com:pkg:pypi/cryptography@44.0.2"
# Search for a specific package version by PURL
$ tea-cli search-releases --id-type PURL \
--id-value "pkg:pypi/cryptography@44.0.2" --domain pypi.sbomify.com
# Filter by platform — only get SBOMs for Linux x86_64 wheels
$ tea-cli search-releases --id-type PURL \
--id-value "pkg:pypi/numpy@1.26.0?os=linux&arch=x86_64" --domain pypi.sbomify.com
Also available as a Python library: from libtea import TeaClient
Platform filtering: add ?os=linux&arch=x86_64 qualifiers to a PURL to get SBOMs only for matching wheels.
Supported OS values: linux, darwin/macos, windows.
Supported arch values: x86_64/amd64, aarch64/arm64, i686, ppc64le, s390x.
Pure-Python wheels are always included.