{"id":37679866,"url":"https://github.com/kannkyo/epss-api","last_synced_at":"2026-01-16T12:22:52.833Z","repository":{"id":77255688,"uuid":"605452872","full_name":"kannkyo/epss-api","owner":"kannkyo","description":"EPSS(Exploit Prediction Scoring System) API client","archived":false,"fork":false,"pushed_at":"2025-09-26T21:05:56.000Z","size":510,"stargazers_count":19,"open_issues_count":3,"forks_count":4,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-09-26T23:19:13.243Z","etag":null,"topics":["epss","security","vulnerability"],"latest_commit_sha":null,"homepage":"https://pypi.org/project/epss-api/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/kannkyo.png","metadata":{"files":{"readme":"README.rst","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2023-02-23T07:23:43.000Z","updated_at":"2025-09-26T21:05:58.000Z","dependencies_parsed_at":null,"dependency_job_id":"91ab857b-9170-46a0-85fa-885a8ad42257","html_url":"https://github.com/kannkyo/epss-api","commit_stats":{"total_commits":36,"total_committers":2,"mean_commits":18.0,"dds":0.08333333333333337,"last_synced_commit":"c74d48856e9fb21f2b5f831a5761755eb4fd060d"},"previous_names":[],"tags_count":19,"template":false,"template_full_name":null,"purl":"pkg:github/kannkyo/epss-api","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kannkyo%2Fepss-api","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kannkyo%2Fepss-api/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kannkyo%2Fepss-api/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kannkyo%2Fepss-api/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kannkyo","download_url":"https://codeload.github.com/kannkyo/epss-api/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kannkyo%2Fepss-api/sbom","scorecard":{"id":453213,"data":{"date":"2025-08-16T06:53:59Z","repo":{"name":"github.com/kannkyo/epss-api","commit":"c8fc88eb635d82cb45f067b0bffd75d3bfac4771"},"scorecard":{"version":"v5.2.1","commit":"ab2f6e92482462fe66246d9e32f642855a691dc1"},"score":7,"checks":[{"name":"Token-Permissions","score":9,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: jobLevel 'contents' permission set to 'write': .github/workflows/auto-pr-review.yml:31","Info: jobLevel 'contents' permission set to 'read': .github/workflows/auto-pr-review.yml:43","Warn: jobLevel 'contents' permission set to 'write': .github/workflows/auto-pr-review.yml:12","Info: jobLevel 'contents' permission set to 'read': .github/workflows/bandit.yml:26","Warn: jobLevel 'security-events' permission set to 'write': .github/workflows/bandit.yml:27","Info: jobLevel 'actions' permission set to 'read': .github/workflows/bandit.yml:28","Info: jobLevel 'actions' permission set to 'read': .github/workflows/python-ci.yml:98","Info: jobLevel 'contents' permission set to 'read': .github/workflows/python-ci.yml:99","Warn: jobLevel 'checks' permission set to 'write': .github/workflows/python-ci.yml:17","Info: jobLevel 'contents' permission set to 'read': .github/workflows/python-ci.yml:19","Info: jobLevel 'issues' permission set to 'read': .github/workflows/python-ci.yml:20","Warn: jobLevel 'contents' permission set to 'write': .github/workflows/python-publish.yml:17","Info: jobLevel 'contents' permission set to 'read': .github/workflows/scorecards.yml:19","Info: jobLevel 'actions' permission set to 'read': .github/workflows/scorecards.yml:20","Info: topLevel permissions set to 'read-all': .github/workflows/auto-pr-review.yml:6","Warn: no topLevel permission defined: .github/workflows/bandit.yml:1","Info: topLevel permissions set to 'read-all': .github/workflows/python-ci.yml:11","Info: topLevel permissions set to 'read-all': .github/workflows/python-publish.yml:10","Info: topLevel permissions set to 'read-all': .github/workflows/scorecards.yml:11"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/ab2f6e92482462fe66246d9e32f642855a691dc1/docs/checks.md#token-permissions"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/ab2f6e92482462fe66246d9e32f642855a691dc1/docs/checks.md#binary-artifacts"}},{"name":"Dependency-Update-Tool","score":10,"reason":"update tool detected","details":["Info: detected update tool: Dependabot: .github/dependabot.yml:1"],"documentation":{"short":"Determines if the project uses a dependency update tool.","url":"https://github.com/ossf/scorecard/blob/ab2f6e92482462fe66246d9e32f642855a691dc1/docs/checks.md#dependency-update-tool"}},{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/ab2f6e92482462fe66246d9e32f642855a691dc1/docs/checks.md#dangerous-workflow"}},{"name":"Maintained","score":10,"reason":"30 commit(s) and 1 issue activity found in the last 90 days -- score normalized to 10","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/ab2f6e92482462fe66246d9e32f642855a691dc1/docs/checks.md#maintained"}},{"name":"Security-Policy","score":10,"reason":"security policy file detected","details":["Info: security policy file detected: SECURITY.md:1","Info: Found linked content: SECURITY.md:1","Info: Found disclosure, vulnerability, and/or timelines in security policy: SECURITY.md:1","Info: Found text in security policy: SECURITY.md:1"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/ab2f6e92482462fe66246d9e32f642855a691dc1/docs/checks.md#security-policy"}},{"name":"Code-Review","score":0,"reason":"Found 0/5 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/ab2f6e92482462fe66246d9e32f642855a691dc1/docs/checks.md#code-review"}},{"name":"Pinned-Dependencies","score":10,"reason":"all dependencies are pinned","details":["Info:  17 out of  17 GitHub-owned GitHubAction dependencies pinned","Info:   9 out of   9 third-party GitHubAction dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/ab2f6e92482462fe66246d9e32f642855a691dc1/docs/checks.md#pinned-dependencies"}},{"name":"CII-Best-Practices","score":2,"reason":"badge detected: InProgress","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/ab2f6e92482462fe66246d9e32f642855a691dc1/docs/checks.md#cii-best-practices"}},{"name":"Signed-Releases","score":0,"reason":"Project has not signed or included provenance with any releases.","details":["Warn: release artifact v1.3.9 not signed: https://api.github.com/repos/kannkyo/epss-api/releases/226868032","Warn: release artifact v1.3.8 not signed: https://api.github.com/repos/kannkyo/epss-api/releases/226867625","Warn: release artifact v1.3.7 not signed: https://api.github.com/repos/kannkyo/epss-api/releases/226867538","Warn: release artifact v1.3.6 not signed: https://api.github.com/repos/kannkyo/epss-api/releases/226867076","Warn: release artifact v1.3.5 not signed: https://api.github.com/repos/kannkyo/epss-api/releases/196768506","Warn: release artifact v1.3.9 does not have provenance: https://api.github.com/repos/kannkyo/epss-api/releases/226868032","Warn: release artifact v1.3.8 does not have provenance: https://api.github.com/repos/kannkyo/epss-api/releases/226867625","Warn: release artifact v1.3.7 does not have provenance: https://api.github.com/repos/kannkyo/epss-api/releases/226867538","Warn: release artifact v1.3.6 does not have provenance: https://api.github.com/repos/kannkyo/epss-api/releases/226867076","Warn: release artifact v1.3.5 does not have provenance: https://api.github.com/repos/kannkyo/epss-api/releases/196768506"],"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/ab2f6e92482462fe66246d9e32f642855a691dc1/docs/checks.md#signed-releases"}},{"name":"Vulnerabilities","score":5,"reason":"5 existing vulnerabilities detected","details":["Warn: Project is vulnerable to: GHSA-cpwx-vrp4-4pq7","Warn: Project is vulnerable to: PYSEC-2022-42969","Warn: Project is vulnerable to: PYSEC-2025-49 / GHSA-5rjg-fvgr-3xxf","Warn: Project is vulnerable to: GHSA-48p4-8xcf-vxj5","Warn: Project is vulnerable to: GHSA-pq67-6m6q-mj2v"],"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/ab2f6e92482462fe66246d9e32f642855a691dc1/docs/checks.md#vulnerabilities"}},{"name":"SAST","score":10,"reason":"SAST tool is run on all commits","details":["Info: SAST configuration detected: CodeQL","Info: all commits (26) are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/ab2f6e92482462fe66246d9e32f642855a691dc1/docs/checks.md#sast"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: MIT License: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/ab2f6e92482462fe66246d9e32f642855a691dc1/docs/checks.md#license"}},{"name":"Packaging","score":10,"reason":"packaging workflow detected","details":["Info: Project packages its releases by way of GitHub Actions.: .github/workflows/python-publish.yml:13"],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/ab2f6e92482462fe66246d9e32f642855a691dc1/docs/checks.md#packaging"}},{"name":"Branch-Protection","score":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/ab2f6e92482462fe66246d9e32f642855a691dc1/docs/checks.md#branch-protection"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/ab2f6e92482462fe66246d9e32f642855a691dc1/docs/checks.md#fuzzing"}},{"name":"Contributors","score":0,"reason":"project has 0 contributing companies or organizations -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project has a set of contributors from multiple organizations (e.g., companies).","url":"https://github.com/ossf/scorecard/blob/ab2f6e92482462fe66246d9e32f642855a691dc1/docs/checks.md#contributors"}},{"name":"CI-Tests","score":10,"reason":"13 out of 13 merged PRs checked by a CI test -- score normalized to 10","details":null,"documentation":{"short":"Determines if the project runs tests before pull requests are merged.","url":"https://github.com/ossf/scorecard/blob/ab2f6e92482462fe66246d9e32f642855a691dc1/docs/checks.md#ci-tests"}}]},"last_synced_at":"2025-08-19T08:44:46.876Z","repository_id":77255688,"created_at":"2025-08-19T08:44:46.876Z","updated_at":"2025-08-19T08:44:46.876Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28478583,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-16T11:59:17.896Z","status":"ssl_error","status_checked_at":"2026-01-16T11:55:55.838Z","response_time":107,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["epss","security","vulnerability"],"created_at":"2026-01-16T12:22:52.734Z","updated_at":"2026-01-16T12:22:52.804Z","avatar_url":"https://github.com/kannkyo.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"=================\nEPSS API Client\n=================\n\n.. image:: https://badge.fury.io/py/epss-api.svg\n    :target: https://badge.fury.io/py/epss-api\n\n.. image:: https://img.shields.io/pypi/dw/epss-api?style=flat\n    :target: https://pypistats.org/packages/epss-api\n\n.. image:: https://github.com/kannkyo/epss-api/actions/workflows/python-ci.yml/badge.svg\n    :target: https://github.com/kannkyo/epss-api/actions/workflows/python-ci.yml\n\n.. image:: https://codecov.io/gh/kannkyo/epss-api/branch/main/graph/badge.svg?token=R40FT0KITO \n    :target: https://codecov.io/gh/kannkyo/epss-api\n\n.. image:: https://github.com/kannkyo/epss-api/actions/workflows/scorecards.yml/badge.svg\n    :target: https://github.com/kannkyo/epss-api/actions/workflows/scorecards.yml\n\nEPSS(Exploit Prediction Scoring System) API client.\n\nEPSS is the one of famous vulnerability score developed by FIRST (the Forum of Incident Response and Security Teams).\n\nEPSS's definition:\n\n    The Exploit Prediction Scoring System (EPSS) is an open, \n    data-driven effort for estimating the likelihood (probability) that a software vulnerability will be exploited in the wild. \n    Our goal is to assist network defenders to better prioritize vulnerability remediation efforts. \n    While other industry standards have been useful for capturing innate characteristics of a vulnerability and provide measures of severity, \n    they are limited in their ability to assess threat. \n    EPSS fills that gap because it uses current threat information from CVE and real-world exploit data. \n    The EPSS model produces a probability score between 0 and 1 (0 and 100%). \n    The higher the score, the greater the probability that a vulnerability will be exploited.\n\n    https://www.first.org/epss/\n\nThis package is most easiest and efficient EPSS api client.\n\nUsage\n=============\n\nEPSS has some methods.\n\n.. code-block:: bash\n\n    \u003e\u003e\u003e from epss_api import EPSS\n    \u003e\u003e\u003e \n    \u003e\u003e\u003e client = EPSS()\n\n    \u003e\u003e\u003e print(client.scores()[0])\n    {'cve': 'CVE-1999-0013', 'epss': 0.00042, 'percentile': 0.05071}\n\n    \u003e\u003e\u003e print(client.score('CVE-2024-0001'))\n    {'cve': 'CVE-2024-0001', 'epss': 0.00091, 'percentile': 0.4063}\n\n    \u003e\u003e\u003e print(client.csv()[1])\n    cve,epss,percentile\n\n    \u003e\u003e\u003e print(client.epss('CVE-2024-0001'))\n    0.00091\n\n    \u003e\u003e\u003e print(client.epss_ge(0.50003)[0])\n    {'cve': 'CVE-2022-0651', 'epss': 0.50003, 'percentile': 0.97652}\n\n    \u003e\u003e\u003e print(client.epss_gt(0.50003)[0])\n    {'cve': 'CVE-2018-0851', 'epss': 0.50036, 'percentile': 0.97653}\n\n    \u003e\u003e\u003e print(client.epss_le(0.49982)[-1])\n    {'cve': 'CVE-2014-8074', 'epss': 0.49982, 'percentile': 0.97651}\n\n    \u003e\u003e\u003e print(client.epss_lt(0.49982)[-1])\n    {'cve': 'CVE-2018-8011', 'epss': 0.49981, 'percentile': 0.97651}\n\n    \u003e\u003e\u003e print(client.percentile('CVE-2024-0001'))\n    0.4063\n\n    \u003e\u003e\u003e print(client.percentile_ge(0.5)[0])\n    {'cve': 'CVE-2019-5426', 'epss': 0.00137, 'percentile': 0.5}\n\n    \u003e\u003e\u003e print(client.percentile_gt(0.5)[0])\n    {'cve': 'CVE-2021-43464', 'epss': 0.00137, 'percentile': 0.50004}\n\n    \u003e\u003e\u003e print(client.percentile_le(0.5)[-1])\n    {'cve': 'CVE-2022-27777', 'epss': 0.00137, 'percentile': 0.5}\n\n    \u003e\u003e\u003e print(client.percentile_lt(0.5)[-1])\n    {'cve': 'CVE-2021-1625', 'epss': 0.00137, 'percentile': 0.49999}\n\nIf you call either one method, EPSS client cache all CVE's score in memory.\nAfter caching, you can get all data very fast.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkannkyo%2Fepss-api","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkannkyo%2Fepss-api","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkannkyo%2Fepss-api/lists"}