Releases: vulnersCom/api
Releases · vulnersCom/api
Release list
v4.0.0
The first release of the modernized v4 SDK — a ground-up rewrite that keeps 100% backward compatibility with the v3 API.
Install
pip install -U vulnersRequires Python 3.10+.
Added
- New sync and async clients,
VulnersandAsyncVulners, with resource
namespaces (search,documents,audit,archive,misc,report,stix,
subscriptions,subscriptions_email,webhooks,vscanner), importable as
from vulners import Vulners, AsyncVulners. - Typed response models (bulletin family hierarchy),
SearchPagepagination
with auto-iteration bounded by the 10 000-document search window, and lazy
streaming of the gzip/zip-compressed JSON-array archive downloads. - A structured exception hierarchy (
VulnersError→APIError→ …) and
with_raw_response/with_streaming_responseaccessors. audit.smart()— the Smart Audit endpoint (POST /api/v4/audit/smart).- Subscription and webhook methods accept an optional
api_keyargument naming
the owner of the subscription, defaulting to the client's own key so existing
calls stay byte-identical on the wire. - HTTP/2 on by default (
h2is a core dependency); a newhttp2argument
lets you force HTTP/1.1 for huge single-stream archive downloads. - Faster, more modern transport by default, no build step — response
compression (brotli+zstandard), ISA-L-accelerated gzip (isal),
multi-member gzip/zip streaming (stream-unzip), all core with prebuilt wheels
for CPython 3.10–3.14. Thehttp2/stream-zipextras are removed (now core);
mcpandotelremain. - Proxy configuration via the
proxy=argument (a URL orhttpx.Proxy), plus
automatic support for theHTTPS_PROXY/HTTP_PROXY/ALL_PROXYenvironment
variables (honouringNO_PROXY) whentrust_envis set. - A built-in Model Context Protocol server
(vulners-mcp,vulners[mcp]extra) exposing search/lookup/audit tools to AI agents. - License change to MIT for 4.0.0.
Compatibility
- The entire v3 API (
VulnersApi,VScannerApi,vulners.base.*,
vulners.vulners.*, all import paths) is preserved unchanged. Existing code
keeps working; new code should prefer the v4 clients.
Docs: https://vulnersCom.github.io/api/ · PyPI: https://pypi.org/project/vulners/4.0.0/ · Full changelog: CHANGELOG.md
v3.2.0
Added
- Added max_response_bytes constructor argument to cap raw and decompressed response size (guards against decompression bombs; None = no limit, default behavior unchanged)
- Added vulners.version re-export and all on the package root
- Added PEP 561 py.typed marker for inline type annotations
- Added typing-extensions and typing-inspection as direct dependencies
- Added VulnersApiError.retry_after, populated from the Retry-After header
- Added VulnersApiError.message / .error_code parsing across v3, v4 and plain-text error shapes
- Added VulnersDeprecationWarning and PEP 702 deprecated markers on deprecated methods
- Added close() and context-manager support (with VulnersApi(key) as api:) to VulnersApi / VScannerApi
- Added SPDX GPL-3.0-only license and project URLs to package metadata
Changed
- import vulners no longer flips the global DeprecationWarning filter (scoped to VulnersDeprecationWarning)
- Rate-limit buckets are now per-instance instead of shared at class level
- Request bodies are serialized with orjson (on-wire bytes unchanged)
- Pinned ruff target-version to py310
- Reworked samples/ into task-oriented, live-tested scenarios reading VULNERS_API_KEY
- Documented SubscriptionV4Api.update() as a full-replace (not partial) operation
Fixed
- search_bulletins / search_exploits with offset >= 10000 now raises a clear ValueError instead of a confusing ValidationError
- Audit / subscription field enums accept server-confirmed and arbitrary string values (| str), fixing false ValidationError
- SubscriptionV4Api.get now sends subscription_id (was id, which returned 400)
- import vulners no longer raises PackageNotFoundError when distribution metadata is absent (falls back to "unknown")
- HTTP >= 400 responses with a {"data": ...} body now raise VulnersApiError instead of returning as success
- Gateway error pages (502/503/504) are wrapped in VulnersApiError instead of a raw JSON decode error
- Empty ZIP archives raise RuntimeError instead of IndexError; file handles are closed on every path
- Path parameters are percent-quoted before URL substitution
- RateLimitBucket fixes: no longer hangs on limits below 60 req/min, ignores invalid rate headers, uses a monotonic clock and a lock
- Documented retry_count honestly (retries connection failures only, not HTTP errors / read timeouts)
- Various codegen fixes: inspect.signature, get_type_hints(), sys._getframe-free import, FieldInfo selection
- Deprecation warnings now report the caller's call site and warn exactly once
update default timeout
Merge pull request #54 from vulnersCom/v3.0 update default timeout
add sitx methods
Merge pull request #52 add sitx endpoint
v3.1.3
Changelog
[3.1.3] - 2025-12-11
Added
- Added
referencesparameter forget_multiple_bulletinsmethod
Fixed
- Fixed Linux audit
[3.1.1] - 2025-09-12
Added
- Added
search.get_web_vulnsmethod for web vulnerability search - Added
subscription_v4endpoint with new parameters - Added timeout settings support for API
Changed
- Added
linux-audit,os-auditmethod marked as deprecated
[3.0.4] - 2025-06-05
Added
- Added
cvelistMetricsfield toAuditFields - Added
search_bulletins_allandsearch_exploits_allmethods for comprehensive search
[3.0.3] - 2025-05-29
Fixed
- Fixed
fetch_collectionfunctionality
[3.0.2] - 2025-05-22
Added
- Added configuration parameters for
audit.hostandaudit.software
[3.0.1] - 2025-05-11
Changed
- First stable release of 3.x branch
[3.0.0] - 2025-05-11
Breaking Changes
- Complete update to version 3.0
- Migration to new API architecture
- Updated dependencies: httpx ^0.28.1, orjson ^3.10.18, pydantic ^2.11.4
- Minimum Python version: 3.10
fix find_all condition
2.3.7 fix find_all condition
2.3.6 Poetry release fix
correct poetry release tag
2.3.5 Fix host parameters naming
audit_host.operation_system renamed to operating_system
2.3.4 Added search_cpe method
Added search-cpe method