[ beveiliging · leveringsketen ]● 5 cred. · 20 verz./min

Kwetsbaarheidsscan van dependencies API

Controleer tot 50 open-source dependencies in één aanroep bij OSV.dev. Levert CVE-aliassen, een berekende CVSS-basisscore, CWE-classificaties en de exacte versies die elk advies verhelpen.

OSV.dev-adviezenGescoord met CVSS v3.113 ecosystemen
auth · x-api-key

Heb je geen API key?

Meld je aan bij je account om je API keys aan te maken en te beheren.

[ 02 · integrate ]

Integratiegids

Kopieer een snippet, vervang je API key, draaien. Werkt in elke HTTP-client — voorbeelden hieronder in cURL, JavaScript en Python.

spec
POST/api/scan-dependencies
base
https://www.apipick.com

Check open-source packages against the OSV.dev vulnerability database

parameters
packagesarrayverplicht

Up to 50 objects, each with ecosystem, name, and an exact installed version. [{"ecosystem":"npm","name":"lodash","version":"4.17.15"}]

curl -X POST "https://www.apipick.com/api/scan-dependencies" \
  -H "Content-Type: application/json" \
  -H "x-api-key: YOUR_API_KEY" \
  -d '{
  "packages": [
    {
      "ecosystem": "npm",
      "name": "lodash",
      "version": "4.17.15"
    },
    {
      "ecosystem": "PyPI",
      "name": "requests",
      "version": "2.19.0"
    }
  ]
}'
● 200 · reactie
{
  "summary": {
    "packages_scanned": 2,
    "vulnerable_packages": 2,
    "total_vulnerabilities": 8,
    "by_severity": {
      "critical": 1,
      "high": 3,
      "medium": 4,
      "low": 0,
      "none": 0,
      "unknown": 0
    },
    "highest_cvss_score": 9.8
  },
  "results": [
    {
      "ecosystem": "npm",
      "name": "lodash",
      "version": "4.17.15",
      "vulnerable": true,
      "highest_severity": "HIGH",
      "highest_cvss_score": 7.4,
      "vulnerability_count": 6,
      "vulnerabilities": [
        {
          "id": "GHSA-35jh-r3h4-6jhm",
          "aliases": [
            "CVE-2021-23337"
          ],
          "cve": "CVE-2021-23337",
          "summary": "Command Injection in lodash",
          "severity": "HIGH",
          "cvss_score": 7.2,
          "cvss_vector": "CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:U/C:H/I:H/A:H",
          "cwe_ids": [
            "CWE-77"
          ],
          "published": "2021-02-15T00:00:00Z",
          "fixed_versions": [
            "4.17.21"
          ],
          "advisory_url": "https://osv.dev/vulnerability/GHSA-35jh-r3h4-6jhm"
        }
      ],
      "error": null
    }
  ],
  "source": "OSV.dev (Google Open Source Vulnerabilities, CC-BY-4.0)",
  "credits_used": 5,
  "remaining_credits": 95
}

Gebouwd voor praktijksituaties

🚦

Release-gates

Laat een build falen zodra een dependency een CVSS-drempel overschrijdt. Met een numerieke score is het beleid één regel getalvergelijking in plaats van tekst matchen.

🤖

Coding-agents

Laat een agent een versie controleren voordat die hem in een manifest schrijft, en in dezelfde beurt de herstelde versie voorstellen.

📋

Lockfile-audits

Stuur een volledig manifest in blokken van 50 door en krijg per service één samenvatting op ernst, zonder een scanner in de CI te draaien.

🔍

Due diligence op leveranciers

Beoordeel de door een derde opgegeven dependencies aan de hand van openbare adviezen vóór ondertekening, met gegevens waarnaar je kunt verwijzen.

Responsvelden

VeldTypeBeschrijving
summary.vulnerable_packagesintegerHoeveel van de ingediende pakketten minstens één advies hebben
summary.by_severityobjectAantal adviezen per critical / high / medium / low / none / unknown
summary.highest_cvss_scorenumber | nullHoogste CVSS-basisscore in de hele scan
results[].vulnerablebooleanOf deze pakketversie een niet-ingetrokken advies heeft
results[].vulnerabilities[].idstringOSV-adviesnummer, bijv. GHSA-35jh-r3h4-6jhm
results[].vulnerabilities[].cvestring | nullCVE-alias, als die bestaat
results[].vulnerabilities[].severitystringCRITICAL, HIGH, MEDIUM, LOW, NONE of UNKNOWN
results[].vulnerabilities[].cvss_scorenumber | nullCVSS v3.1-basisscore, berekend uit de vector van het advies
results[].vulnerabilities[].cwe_idsstring[]CWE-classificaties van de zwakte in het advies
results[].vulnerabilities[].fixed_versionsstring[]Versies van dit pakket die het advies verhelpen
results[].errorstring | nullGevuld wanneer juist dit pakket niet gecontroleerd kon worden; de rest wordt gewoon teruggegeven
credits_usedintegerVoor dit verzoek afgeschreven credits
remaining_creditsintegerResterende credits in je account
[ 03 · limits ]

Rate limits

Throttling is per API key, een verschuivend venster van 60 seconden. Bereik je de limiet, dan krijg je een nette 429 met een Retry-After-header.

verzoeksnelheid

20req/min

Per API key, per endpoint. Verschuivend venster van 60 seconden.

gelijktijdigheid

3concurrent

Max. gelijktijdig lopende verzoeken per API key.

response headers
X-RateLimit-LimitMaximaal toegestane verzoeken per minuut
X-RateLimit-RemainingResterende verzoeken in het huidige venster
X-RateLimit-ResetSeconden tot het huidige venster opnieuw start
Retry-AfterSeconden te wachten voor opnieuw proberen (alleen bij 429)
● 429 · te veel verzoeken
HTTP/1.1 429 Too Many Requests
Retry-After: 12
X-RateLimit-Limit: 20
X-RateLimit-Remaining: 0
X-RateLimit-Reset: 12

{
  "error": "rate_limit_exceeded",
  "message": "Rate limit exceeded: 20 requests/minute per API key. Retry after 12s.",
  "retry_after": 12
}

Gegevensbron en licentie

De adviezen komen uit OSV.dev, de open kwetsbaarhedendatabase van Google, gepubliceerd onder CC-BY-4.0. OSV brengt de GitHub Advisory Database, de Go-kwetsbaarhedendatabase, RustSec, PyPA en de securitytrackers van de grote distributies samen in één schema. Wij voegen de berekening van de CVSS-basisscore en de samenvatting per pakket toe.

Veelgestelde vragen

V: Waar komen de kwetsbaarheidsgegevens vandaan?

A: Uit OSV.dev, de open kwetsbaarhedendatabase van Google. Die brengt de GitHub Advisory Database, de Go-kwetsbaarhedendatabase, RustSec, PyPA en de securitytrackers van distributies samen in één schema en publiceert alles onder CC-BY-4.0. Adviezen zijn doorgaans binnen enkele uren na publicatie beschikbaar.

V: Hoe wordt de CVSS-score berekend?

A: OSV-adviezen bevatten wel de CVSS-vectorstring, maar niet het getal. Wij berekenen de CVSS v3.1-basisscore uit die vector met de officiële formule, zodat je een waarde krijgt waarop je direct een drempel kunt zetten. Heeft een advies geen v3-vector (alleen v4, of een ecosysteemadvies zonder vector), dan is cvss_score null en valt severity terug op de eigen beoordeling van de uitgever.

V: Kan ik een volledig lockfile scannen?

A: Ja — parse het aan jouw kant en stuur tot 50 pakketten per aanroep. Eén aanroep kost 5 credits, ongeacht hoeveel pakketten erin zitten, dus een blok van 50 komt neer op 0,1 credit per pakket. Splits grotere manifesten in blokken van 50.

V: Worden versiebereiken ondersteund?

A: Nee. Stuur de exact geïnstalleerde versie zoals die in je lockfile staat (4.17.15, niet ^4.17.0). OSV vergelijkt bereiken met een concrete versie om te bepalen of die getroffen is, dus een bereik als invoer heeft geen eenduidig antwoord.

V: Wat gebeurt er als de opvraging van één pakket mislukt?

A: De scan wordt alsnog teruggegeven. Dat pakket krijgt een veld error en telt niet mee in de samenvatting, terwijl alle andere pakketten normaal worden gerapporteerd. De respons zet ook packages_failed, zodat je weet dat de samenvatting onvolledig is.