API

    API documentation

    Public interfaces of NEOSEC Intel: public API without sign-in, feeds, export, badges and the token API for customers.

    OpenAPI specification (JSON)Plans and statusChangelog

    Authentication

    The public API (/v1/public), feeds, export and badges need no sign-in. The token API (/v1/api) expects an API token of your organisation as a bearer token; permissions are granted via scopes per token.

    curl -H "Authorization: Bearer <API-Token>" \
      "https://api.intel.neosec.eu/v1/api/search?q=log4j&limit=10"

    Scopes

    • api:advisories.read
    • api:misp.read
    • api:misp.write
    • api:tokens.read
    • api:tokens.write
    • api:tokens.revoke
    • api:webhooks.read
    • api:webhooks.write
    • api:webhooks.revoke
    • api:webhooks.rotate

    Rate limits

    Token API: 60 requests per second and 10,000 per hour per token (default, adjustable per token). When exceeded, the API responds with HTTP 429 and Retry-After.

    Public endpoints: no fixed quota, but protection against abuse – some endpoints limit per IP, automated bulk retrieval is throttled (HTTP 429).

    Endpoints

    Generated from the OpenAPI specification. Base URL: https://api.intel.neosec.eu

    Public API

    • GET/v1/public/cpe/suggestVendor/Product-Autocomplete aus dem CPE-Dictionary
      Parameters of /v1/public/cpe/suggest
      NameInTypeRequired
      qquerystringyes
      limitqueryintegerno

      Responses: 200, 422

    • POST/v1/public/cve/batchBatch-Lookup mehrerer CVE-IDs — Sammel-Response mit CVSS/EPSS/KEV
      Parameters of /v1/public/cve/batch
      NameInTypeRequired
      formatquerystringno
      authorizationheaderstringno
      X-Api-Keyheaderstringno

      Responses: 200, 422

    • GET/v1/public/cve/{advisory_id}Advisory detail by CVE id or external_id
      Parameters of /v1/public/cve/{advisory_id}
      NameInTypeRequired
      advisory_idpathstringyes

      Responses: 200, 422

    • GET/v1/public/cve/{cve_id}/changesNVD change-history timeline für eine einzelne CVE
      Parameters of /v1/public/cve/{cve_id}/changes
      NameInTypeRequired
      cve_idpathstringyes
      limitqueryintegerno

      Responses: 200, 422

    • GET/v1/public/healthzLiveness

      Responses: 200

    • GET/v1/public/kevKEV-flagged advisories shortcut
      Parameters of /v1/public/kev
      NameInTypeRequired
      limitqueryintegerno
      offsetqueryintegerno

      Responses: 200, 422

    • GET/v1/public/patchdayLetzte Patch-Zyklen aller Vendoren
      Parameters of /v1/public/patchday
      NameInTypeRequired
      vendorquerystringno
      cycle_typequerystringno
      limitqueryintegerno

      Responses: 200, 422

    • GET/v1/public/patchday/{vendor}/{cycle_date}Ein Patch-Zyklus mit allen CVEs (Zero-Day-Ranking zuerst)
      Parameters of /v1/public/patchday/{vendor}/{cycle_date}
      NameInTypeRequired
      vendorpathstringyes
      cycle_datepathstringyes
      cycle_typequerystringno

      Responses: 200, 422

    • GET/v1/public/searchList or search advisories
      Parameters of /v1/public/search
      NameInTypeRequired
      qquerystringno
      kev_onlyquerybooleanno
      severityqueryarrayno
      yearqueryarrayno
      os_familyqueryarrayno
      vendorqueryarrayno
      cvss_minquerynumberno
      epss_minquerynumberno
      source_kindqueryarrayno
      industryqueryarrayno
      has_pocquerybooleanno
      ransomware_onlyquerybooleanno
      sortquerystringno
      orderquerystringno
      limitqueryintegerno
      offsetqueryintegerno

      Responses: 200, 422

    • GET/v1/public/search/facetsFacet counts honouring the active filter set
      Parameters of /v1/public/search/facets
      NameInTypeRequired
      qquerystringno
      kev_onlyquerybooleanno
      severityqueryarrayno
      yearqueryarrayno
      os_familyqueryarrayno
      vendorqueryarrayno
      cvss_minquerynumberno
      epss_minquerynumberno
      source_kindqueryarrayno
      industryqueryarrayno
      has_pocquerybooleanno
      ransomware_onlyquerybooleanno

      Responses: 200, 422

    • GET/v1/public/search/globalCross-Domain-Suche für die Topbar / Cmd+K-Modal
      Parameters of /v1/public/search/global
      NameInTypeRequired
      qquerystringyes
      per_kindqueryintegerno

      Responses: 200, 422

    Token API (customers)

    • GET/v1/api/cve/{cve_id}CVE-Detail (Customer-Spiegel)
      Parameters of /v1/api/cve/{cve_id}
      NameInTypeRequired
      cve_idpathstringyes
      authorizationheaderstringno
      X-Api-Keyheaderstringno

      Responses: 200, 422

    • GET/v1/api/misp/endpointsMISP-Push-Endpoints der eigenen Org auflisten
      Parameters of /v1/api/misp/endpoints
      NameInTypeRequired
      authorizationheaderstringno
      X-Api-Keyheaderstringno

      Responses: 200, 422

    • POST/v1/api/misp/endpointsMISP-Push-Endpoint anlegen (Premium)
      Parameters of /v1/api/misp/endpoints
      NameInTypeRequired
      authorizationheaderstringno
      X-Api-Keyheaderstringno

      Responses: 200, 422

    • DELETE/v1/api/misp/endpoints/{endpoint_id}MISP-Endpoint pausieren
      Parameters of /v1/api/misp/endpoints/{endpoint_id}
      NameInTypeRequired
      endpoint_idpathstringyes
      authorizationheaderstringno
      X-Api-Keyheaderstringno

      Responses: 200, 422

    • GET/v1/api/misp/eventsMISP-Event-Feed (Pull-Modus, Modus A laut docs/misp-integration.md)
      Parameters of /v1/api/misp/events
      NameInTypeRequired
      sincequerystringno
      untilquerystringno
      limitqueryintegerno
      only_kevquerybooleanno
      only_ransomwarequerybooleanno
      authorizationheaderstringno
      X-Api-Keyheaderstringno

      Responses: 200, 422

    • GET/v1/api/searchAdvisory-Suche mit höherem Rate-Limit (Customer-Spiegel der Public-API)
      Parameters of /v1/api/search
      NameInTypeRequired
      qquerystringno
      limitqueryintegerno
      offsetqueryintegerno
      authorizationheaderstringno
      X-Api-Keyheaderstringno

      Responses: 200, 422

    • GET/v1/api/tokensEigene Tokens auflisten
      Parameters of /v1/api/tokens
      NameInTypeRequired
      authorizationheaderstringno
      X-Api-Keyheaderstringno

      Responses: 200, 422

    • POST/v1/api/tokensToken für die eigene Org anlegen
      Parameters of /v1/api/tokens
      NameInTypeRequired
      authorizationheaderstringno
      X-Api-Keyheaderstringno

      Responses: 200, 422

    • PATCH/v1/api/tokens/{token_id}Token-Ablauf ändern (verlängern, verkürzen, entfristen)
      Parameters of /v1/api/tokens/{token_id}
      NameInTypeRequired
      token_idpathstringyes
      authorizationheaderstringno
      X-Api-Keyheaderstringno

      Responses: 200, 422

    • POST/v1/api/tokens/{token_id}/revokeToken revoken (sofort wirksam)
      Parameters of /v1/api/tokens/{token_id}/revoke
      NameInTypeRequired
      token_idpathstringyes
      authorizationheaderstringno
      X-Api-Keyheaderstringno

      Responses: 200, 422

    • GET/v1/api/webhooksEigene Webhooks auflisten
      Parameters of /v1/api/webhooks
      NameInTypeRequired
      authorizationheaderstringno
      X-Api-Keyheaderstringno

      Responses: 200, 422

    • POST/v1/api/webhooksWebhook-Subscription anlegen — Secret wird einmal zurückgegeben
      Parameters of /v1/api/webhooks
      NameInTypeRequired
      authorizationheaderstringno
      X-Api-Keyheaderstringno

      Responses: 200, 422

    • DELETE/v1/api/webhooks/{webhook_id}Webhook-Subscription löschen
      Parameters of /v1/api/webhooks/{webhook_id}
      NameInTypeRequired
      webhook_idpathstringyes
      authorizationheaderstringno
      X-Api-Keyheaderstringno

      Responses: 200, 422

    • POST/v1/api/webhooks/{webhook_id}/replayOutbox-Replay: DLQ-Rows reaktivieren, optional Bestand der letzten N Stunden
      Parameters of /v1/api/webhooks/{webhook_id}/replay
      NameInTypeRequired
      webhook_idpathstringyes
      authorizationheaderstringno
      X-Api-Keyheaderstringno

      Responses: 200, 422

    • POST/v1/api/webhooks/{webhook_id}/rotateWebhook-Secret rotieren — alter Secret wird sofort ungültig
      Parameters of /v1/api/webhooks/{webhook_id}/rotate
      NameInTypeRequired
      webhook_idpathstringyes
      authorizationheaderstringno
      X-Api-Keyheaderstringno

      Responses: 200, 422

    Feeds

    • GET/api/v1/public/alerts/topTop-N alerts as plain JSON (programmatic consumers)
      Parameters of /api/v1/public/alerts/top
      NameInTypeRequired
      langquerystringno
      filterquerystringno
      sortquerystringno
      since_daysqueryintegerno
      limitqueryintegerno

      Responses: 200, 422

    • GET/feed.jsonJSON Feed 1.1 of top advisories
      Parameters of /feed.json
      NameInTypeRequired
      langquerystringno
      filterquerystringno
      sortquerystringno
      since_daysqueryintegerno
      limitqueryintegerno

      Responses: 200, 422

    • GET/feed.xmlRSS 2.0 feed of top advisories
      Parameters of /feed.xml
      NameInTypeRequired
      langquerystringno
      filterquerystringno
      sortquerystringno
      since_daysqueryintegerno
      limitqueryintegerno
      industryqueryno

      Responses: 200, 422

    • GET/v1/public/editorial/feed.xmlRSS 2.0 feed of published editorial posts
      Parameters of /v1/public/editorial/feed.xml
      NameInTypeRequired
      langquerystringno
      for_neosec_dequerybooleanno
      limitqueryintegerno

      Responses: 200, 422

    briefings

    • GET/v1/public/briefingsList Briefings

      Responses: 200

    • GET/v1/public/briefings/{year}/{week}Get Briefing
      Parameters of /v1/public/briefings/{year}/{week}
      NameInTypeRequired
      yearpathintegeryes
      weekpathintegeryes

      Responses: 200, 422

    detection

    • GET/v1/public/cve/{cve_id}/detectionCve Detection
      Parameters of /v1/public/cve/{cve_id}/detection
      NameInTypeRequired
      cve_idpathstringyes

      Responses: 200, 422

    • POST/v1/public/cve/{cve_id}/detection-requestCve Detection Request
      Parameters of /v1/public/cve/{cve_id}/detection-request
      NameInTypeRequired
      cve_idpathstringyes
      H-Captcha-Responseheaderstringno

      Responses: 200, 422

    Blog

    • GET/v1/public/editorialList published editorial posts
      Parameters of /v1/public/editorial
      NameInTypeRequired
      langquerystringno
      for_neosec_dequerybooleanno
      sincequerystringno
      limitqueryintegerno

      Responses: 200, 422

    • GET/v1/public/editorial/{slug}Single editorial post by slug
      Parameters of /v1/public/editorial/{slug}
      NameInTypeRequired
      slugpathstringyes
      langquerystringno

      Responses: 200, 422

    industry

    • GET/v1/public/industry/{slug}Industry View
      Parameters of /v1/public/industry/{slug}
      NameInTypeRequired
      slugpathstringyes
      limitqueryintegerno

      Responses: 200, 422

    Indicators (IoC)

    • GET/api/v1/ioc/searchLook up an indicator. Drop-in compatible with api.socfortress.co
      Parameters of /api/v1/ioc/search
      NameInTypeRequired
      valuequerystringyes
      customer_codequerystringno
      module-versionheaderstringno
      X-Request-Idheaderstringno
      authorizationheaderstringno
      X-Api-Keyheaderstringno

      Responses: 200, 422

    Known exploited (KEV)

    • GET/kev/catalogKEV-Katalog (CISA-Schema-kompatibel) für xCentral-Sync
      Parameters of /kev/catalog
      NameInTypeRequired
      If-None-Matchheaderstringno
      authorizationheaderstringno
      X-Api-Keyheaderstringno

      Responses: 200, 304, 422, 503

    neosec-advisories

    • GET/v1/public/neosec-advisoriesNEOSEC-Sicherheitshinweise
      Parameters of /v1/public/neosec-advisories
      NameInTypeRequired
      vendorquerystringno
      productquerystringno
      advisory_typequerystringno
      severityquerystringno
      qquerystringno
      limitqueryintegerno
      offsetqueryintegerno

      Responses: 200, 422

    • GET/v1/public/neosec-advisories/feed.xmlRSS 2.0 der NEOSEC-Sicherheitshinweise
      Parameters of /v1/public/neosec-advisories/feed.xml
      NameInTypeRequired
      langquerystringno

      Responses: 200, 422

    • GET/v1/public/neosec-advisories/{sa_id}NEOSEC-Sicherheitshinweis
      Parameters of /v1/public/neosec-advisories/{sa_id}
      NameInTypeRequired
      sa_idpathstringyes

      Responses: 200, 422

    News

    • GET/v1/public/news/by-cve/{cve_id}News items mentioning a specific CVE id
      Parameters of /v1/public/news/by-cve/{cve_id}
      NameInTypeRequired
      cve_idpathstringyes
      limitqueryintegerno
      offsetqueryintegerno

      Responses: 200, 422

    • GET/v1/public/news/latestMost recent news items, filtered to public-safe categories
      Parameters of /v1/public/news/latest
      NameInTypeRequired
      categoryquerystringno
      sourcequerystringno
      langquerystringno
      industryquerystringno
      limitqueryintegerno
      offsetqueryintegerno

      Responses: 200, 422

    • GET/v1/public/news/sourcesSource filter — counts per source for the public-safe slice

      Responses: 200

    • GET/v1/public/news/{news_id}One news item with expert notes and linked advisories
      Parameters of /v1/public/news/{news_id}
      NameInTypeRequired
      news_idpathstringyes

      Responses: 200, 422

    • GET/v1/public/news/{news_id}/relatedOther news items + advisories mentioning the same product / vendor
      Parameters of /v1/public/news/{news_id}/related
      NameInTypeRequired
      news_idpathstringyes
      limitqueryintegerno

      Responses: 200, 422

    Statistics

    • GET/v1/public/sources/statusDatenfrische je Advisory-Quelle (ohne Fehlertexte)

      Responses: 200

    • GET/v1/public/stats/cpeCPE Dictionary statistics — mirror of nvd.nist.gov/products/cpe/statistics

      Responses: 200

    • GET/v1/public/stats/daily-advisoriesAdvisory-Publikationen pro Tag — 30-Tage-Fenster
      Parameters of /v1/public/stats/daily-advisories
      NameInTypeRequired
      window_daysqueryintegerno

      Responses: 200, 422

    • GET/v1/public/stats/daily-kevNeue CISA-KEV-Aufnahmen pro Tag — 30-Tage-Fenster
      Parameters of /v1/public/stats/daily-kev
      NameInTypeRequired
      window_daysqueryintegerno

      Responses: 200, 422

    • GET/v1/public/stats/deltasRolling deltas — advisories + KEV der letzten 24 h

      Responses: 200

    • GET/v1/public/stats/ingest-timelineIngest-Events pro Stunde — 72-Stunden-Fenster
      Parameters of /v1/public/stats/ingest-timeline
      NameInTypeRequired
      window_hoursqueryintegerno

      Responses: 200, 422

    • GET/v1/public/stats/overviewBestandszahlen und aktive Quellen (stündlicher Snapshot)

      Responses: 200

    • GET/v1/public/stats/ransomware-summaryAnzahl + jüngste Beispiele der bestätigten Ransomware-CVEs
      Parameters of /v1/public/stats/ransomware-summary
      NameInTypeRequired
      limitqueryintegerno

      Responses: 200, 422

    • GET/v1/public/stats/time-to-kevDays from CVE publication to KEV listing, per KEV-add year
      Parameters of /v1/public/stats/time-to-kev
      NameInTypeRequired
      sincequeryintegerno

      Responses: 200, 422

    • GET/v1/public/stats/yearlyCVE counts per publication year, split by severity tier + KEV
      Parameters of /v1/public/stats/yearly
      NameInTypeRequired
      sincequeryintegerno
      untilqueryintegerno

      Responses: 200, 422

    • GET/v1/public/stats/ytd-publicationsDaily cumulative CVE publications per year (FIRST-style chart)
      Parameters of /v1/public/stats/ytd-publications
      NameInTypeRequired
      sincequeryintegerno

      Responses: 200, 422

    Taxonomies (CWE, CAPEC, OWASP)

    • GET/v1/public/capecCAPEC-Liste (Filter + Suche)
      Parameters of /v1/public/capec
      NameInTypeRequired
      qquerystringno
      abstractionquerystringno
      severityquerystringno
      limitqueryintegerno

      Responses: 200, 422

    • GET/v1/public/capec/{capec_id}CAPEC-Detail
      Parameters of /v1/public/capec/{capec_id}
      NameInTypeRequired
      capec_idpathintegeryes

      Responses: 200, 422

    • GET/v1/public/cweCWE-Liste (Filter + Suche)
      Parameters of /v1/public/cwe
      NameInTypeRequired
      qquerystringno
      abstractionquerystringno
      limitqueryintegerno

      Responses: 200, 422

    • GET/v1/public/cwe/{cwe_id}CWE-Detail
      Parameters of /v1/public/cwe/{cwe_id}
      NameInTypeRequired
      cwe_idpathintegeryes

      Responses: 200, 422

    • GET/v1/public/owaspOWASP-Kategorien (Filter nach Katalog + Jahr)
      Parameters of /v1/public/owasp
      NameInTypeRequired
      catalogquerystringno
      yearqueryintegerno

      Responses: 200, 422

    • GET/v1/public/owasp/{category_id}OWASP-Kategorie-Detail
      Parameters of /v1/public/owasp/{category_id}
      NameInTypeRequired
      category_idpathstringyes

      Responses: 200, 422

    • GET/v1/public/owasp/{category_id}/cvesCVEs einer OWASP-Kategorie (abgeleitet via v_cve_owasp)
      Parameters of /v1/public/owasp/{category_id}/cves
      NameInTypeRequired
      category_idpathstringyes
      limitqueryintegerno
      offsetqueryintegerno

      Responses: 200, 422

    • GET/v1/public/products/{vendor_slug}/{product_slug}Produkt-Detail
      Parameters of /v1/public/products/{vendor_slug}/{product_slug}
      NameInTypeRequired
      vendor_slugpathstringyes
      product_slugpathstringyes

      Responses: 200, 422

    • GET/v1/public/products/{vendor_slug}/{product_slug}/cvesCVEs zu einem Produkt
      Parameters of /v1/public/products/{vendor_slug}/{product_slug}/cves
      NameInTypeRequired
      vendor_slugpathstringyes
      product_slugpathstringyes
      kev_onlyquerybooleanno
      limitqueryintegerno
      offsetqueryintegerno

      Responses: 200, 422

    • GET/v1/public/vendorsVendor-Verzeichnis
      Parameters of /v1/public/vendors
      NameInTypeRequired
      qquerystringno
      sortquerystringno
      limitqueryintegerno
      offsetqueryintegerno

      Responses: 200, 422

    • GET/v1/public/vendors/{vendor_slug}Vendor-Detail
      Parameters of /v1/public/vendors/{vendor_slug}
      NameInTypeRequired
      vendor_slugpathstringyes

      Responses: 200, 422

    • GET/v1/public/vendors/{vendor_slug}/productsProdukte eines Vendors
      Parameters of /v1/public/vendors/{vendor_slug}/products
      NameInTypeRequired
      vendor_slugpathstringyes
      sortquerystringno
      limitqueryintegerno
      offsetqueryintegerno

      Responses: 200, 422

    Threat actors

    • GET/v1/public/threat-actorsList Threat Actors
      Parameters of /v1/public/threat-actors
      NameInTypeRequired
      qquerystringno
      countryqueryarrayno
      motivationqueryarrayno
      activity_statusqueryarrayno
      has_attackquerybooleanno
      dachqueryarrayno
      has_summaryquerybooleanno
      sortquerystringno
      orderquerystringno
      limitqueryintegerno
      offsetqueryintegerno

      Responses: 200, 422

    • GET/v1/public/threat-actors/facetsThreat Actor Facets

      Responses: 200

    • GET/v1/public/threat-actors/{identifier}Get Threat Actor
      Parameters of /v1/public/threat-actors/{identifier}
      NameInTypeRequired
      identifierpathstringyes

      Responses: 200, 422

    Indicators (IoC)

    • GET/v1/public/threat-intel/blocklistDownloadable blocklist for firewalls / CrowdSec / Wazuh
      Parameters of /v1/public/threat-intel/blocklist
      NameInTypeRequired
      kindquerystringno
      formatquerystringno
      min_confidencequerynumberno
      max_age_daysqueryintegerno
      limitqueryintegerno
      offsetqueryintegerno

      Responses: 200, 422

    • GET/v1/public/threat-intel/by-id/{indicator_id}Vollständige Detail-Sicht auf einen Indikator (heute öffentlich)
      Parameters of /v1/public/threat-intel/by-id/{indicator_id}
      NameInTypeRequired
      indicator_idpathstringyes

      Responses: 200, 422

    • GET/v1/public/threat-intel/latestMost recently observed indicators (redacted preview)
      Parameters of /v1/public/threat-intel/latest
      NameInTypeRequired
      kindquerystringno
      limitqueryintegerno
      offsetqueryintegerno
      sortquerystringno
      orderquerystringno

      Responses: 200, 422

    • GET/v1/public/threat-intel/lookupAnonymous IoC lookup teaser — hit/miss + score only
      Parameters of /v1/public/threat-intel/lookup
      NameInTypeRequired
      valuequerystringyes

      Responses: 200, 422

    • GET/v1/public/threat-intel/statsThreat-intel counts by kind + freshness signal

      Responses: 200

    vendors

    • GET/v1/public/catalog/resolveCPE-Herstellerschreibweisen auf Herstellerseiten abbilden
      Parameters of /v1/public/catalog/resolve
      NameInTypeRequired
      cpequeryarrayyes

      Responses: 200, 422

    • GET/v1/public/catalog/sitemapAlle Hersteller-/Produktseiten

      Responses: 200

    • GET/v1/public/catalog/vendorsHersteller mit eigener Seite
      Parameters of /v1/public/catalog/vendors
      NameInTypeRequired
      qquerystringno
      limitqueryintegerno
      offsetqueryintegerno
      sortquerystringno
      orderquerystringno

      Responses: 200, 422

    • GET/v1/public/catalog/vendors/{vendor_slug}Hersteller-Übersicht
      Parameters of /v1/public/catalog/vendors/{vendor_slug}
      NameInTypeRequired
      vendor_slugpathstringyes

      Responses: 200, 422

    • GET/v1/public/catalog/vendors/{vendor_slug}/{product_slug}Produkt-Übersicht
      Parameters of /v1/public/catalog/vendors/{vendor_slug}/{product_slug}
      NameInTypeRequired
      vendor_slugpathstringyes
      product_slugpathstringyes

      Responses: 200, 422

    Webhooks

    Create webhooks via the token API (/v1/api/webhooks). Each delivery is a POST with a JSON body and these headers:

    POST <Ihre URL>
    Content-Type: application/json
    User-Agent: neosec-intel-webhooks/1.0
    X-Neosec-Signature: t=<Unix-Zeit>,v1=<HMAC-SHA256 hex>
    X-Idempotency-Key: <Schlüssel>
    X-Event-Kind: vulnerability.kev_listed

    Example payload

    {
      "event": "vulnerability.kev_listed",
      "cve_id": "CVE-2024-4577",
      "kev_added_at": "2024-06-12",
      "source": "cisa_kev"
    }

    Verify the signature

    The signature is HMAC-SHA256 with your webhook secret over “t=<timestamp>.” plus the unmodified body. Discard deliveries older than five minutes and detect repeats via X-Idempotency-Key.

    import hashlib, hmac, time
    
    def verify(secret: str, header: str, body: bytes) -> bool:
        parts = dict(p.split("=", 1) for p in header.split(","))
        ts, sig = int(parts["t"]), parts["v1"]
        if abs(time.time() - ts) > 300:  # älter als 5 Minuten: verwerfen
            return False
        mac = hmac.new(secret.encode(), f"t={ts}.".encode() + body, hashlib.sha256)
        return hmac.compare_digest(mac.hexdigest(), sig)

    Events

    • vulnerability.kev_listed
    • vulnerability.ransomware_confirmed
    • advisory.critical_published
    • editorial.published
    • editorial.updated
    • editorial.deleted
    • editorial.restored

    Deliveries of a time range can be triggered again via POST /v1/api/webhooks/{id}/replay.

    MISP export

    Pull: in your MISP instance, add this URL under “Sync Actions”, “List Feeds”, “Add Feed” as a feed in “MISP Feed” format with an Authorization header; polling every 15 minutes is sufficient.

    GET https://api.intel.neosec.eu/v1/api/misp/events?since=2026-10-01T00:00:00Z
    Authorization: Bearer <API-Token>

    Push: alternatively, NEOSEC delivers actively to your MISP instance; manage the targets via /v1/api/misp/endpoints.

    RSS feeds

    /feed.xml with lang (de, en), filter (kev, critical, priority, headline, all, ot) and limit (1–100). With the same parameters as the search (e.g. severity, vendor, kev, industry, year), /feed.xml returns the 50 newest hits of exactly that search.

    • https://intel.neosec.eu/feed.xml?lang=de&filter=kev&limit=30
    • https://intel.neosec.eu/feed.xml?severity=critical&vendor=microsoft
    • https://intel.neosec.eu/feed.xml?kev=1&industry=energy

    Export

    Search results and threat actors can be exported with the current filter as CSV or JSON (format=csv|json), up to 1,000 rows per request.

    • https://intel.neosec.eu/search/export?format=csv&kev=1
    • https://intel.neosec.eu/search/export?format=json&severity=critical&vendor=fortinet

    Badges

    Embeddable SVG badges: per CVE with severity, KEV status and date; per vendor with the number of entries in the CISA KEV catalog. Cached for one hour; ?lang=en for English. The embed code with backlink is on every CVE page.

    • https://intel.neosec.eu/badge/cve/CVE-2024-4577.svg
    • https://intel.neosec.eu/badge/vendor/microsoft.svg