Skip to content

Releases: vulnersCom/api

v4.0.0

Choose a tag to compare

@vulnersCom vulnersCom released this 24 Jul 15:52

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 vulners

Requires Python 3.10+.

Added

  • New sync and async clients, Vulners and AsyncVulners, 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), SearchPage pagination
    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 (VulnersErrorAPIError → …) and
    with_raw_response / with_streaming_response accessors.
  • audit.smart() — the Smart Audit endpoint (POST /api/v4/audit/smart).
  • Subscription and webhook methods accept an optional api_key argument 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 (h2 is a core dependency); a new http2 argument
    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. The http2 / stream-zip extras are removed (now core);
    mcp and otel remain.
  • Proxy configuration via the proxy= argument (a URL or httpx.Proxy), plus
    automatic support for the HTTPS_PROXY / HTTP_PROXY / ALL_PROXY environment
    variables (honouring NO_PROXY) when trust_env is 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

Choose a tag to compare

@zzeloff zzeloff released this 21 Jul 06:13
289d265

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

Choose a tag to compare

@zzeloff zzeloff released this 13 Jan 16:45
7d0f9fc
Merge pull request #54 from vulnersCom/v3.0

update default timeout

add sitx methods

Choose a tag to compare

@zzeloff zzeloff released this 28 Dec 20:24
1d430f8
Merge pull request #52

add sitx endpoint

v3.1.3

Choose a tag to compare

@zzeloff zzeloff released this 11 Dec 18:57

Changelog

[3.1.3] - 2025-12-11

Added

  • Added references parameter for get_multiple_bulletins method

Fixed

  • Fixed Linux audit

[3.1.1] - 2025-09-12

Added

  • Added search.get_web_vulns method for web vulnerability search
  • Added subscription_v4 endpoint with new parameters
  • Added timeout settings support for API

Changed

  • Added linux-audit, os-audit method marked as deprecated

[3.0.4] - 2025-06-05

Added

  • Added cvelistMetrics field to AuditFields
  • Added search_bulletins_all and search_exploits_all methods for comprehensive search

[3.0.3] - 2025-05-29

Fixed

  • Fixed fetch_collection functionality

[3.0.2] - 2025-05-22

Added

  • Added configuration parameters for audit.host and audit.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

Choose a tag to compare

@zzeloff zzeloff released this 28 May 20:26
2.3.7

fix find_all condition

2.3.6 Poetry release fix

Choose a tag to compare

@MrBorusLee MrBorusLee released this 21 Feb 13:55

correct poetry release tag

2.3.5 Fix host parameters naming

Choose a tag to compare

@MrBorusLee MrBorusLee released this 21 Feb 13:50

audit_host.operation_system renamed to operating_system

2.3.4 Added search_cpe method

Choose a tag to compare

@MrBorusLee MrBorusLee released this 14 Feb 08:59
Added search-cpe method

update v4 methods

Choose a tag to compare

@zzeloff zzeloff released this 04 Feb 18:03
2.3.3

update v4 methods