Documentation de l'API

Base : https://ctiforecast.com. Authentification par l'en-tête X-API-Key (ou Authorization: Bearer, ou le paramètre key= pour les outils qui ne gèrent pas les en-têtes). Chaque réponse renvoie X-RateLimit-Limit et X-RateLimit-Remaining ; le quota se réinitialise à minuit UTC.

Importez la spécification dans Postman, Insomnia, Bruno ou votre générateur de client (openapi-generator) pour obtenir toutes les routes, paramètres et formats de réponse.

GET /v1/iocs · flux d'indicateurs

ParamètreDescription
typeUn ou plusieurs types séparés par des virgules : cve, sha256, sha1, md5, ip, domain, url. Par défaut : tous ceux de votre plan.
sinceIndicateurs vus après cette date ISO 8601 (ex. 2026-11-06T00:00:00). Pratique pour une collecte incrémentale.
untilIndicateurs vus avant cette date. Pour paginer, renvoyez la valeur next_until de la réponse précédente.
min_confidenceScore minimum de 0 à 100. 70 donne un flux peu bruité.
limitNombre de résultats : 100 par défaut, maximum selon le plan (100 / 1 000 / 5 000).
curl -H "X-API-Key: $CTI_KEY" "https://ctiforecast.com/v1/iocs?type=ip,domain&min_confidence=70&limit=2"

{
  "count": 2,
  "delayed_hours": 0,
  "next_until": "2026-11-06T21:19:02.118374",
  "data": [
    {"value": "185.177.93.120", "type": "ip", "confidence": 74, "severity": 70,
     "first_seen": "2026-10-28T09:12:40", "last_seen": "2026-11-06T21:20:11",
     "mentions": 10, "source": "www.bitdefender.com", "category": null, "malware_family": null,
     "references": [{"url": "https://www.bitdefender.com/en-us/blog/labs/…", "source": "www.bitdefender.com",
                     "seen_at": "2026-11-06T21:20:11"}]},
    ...
  ]
}

GET /v1/lookup?value=… · vérifier un indicateur

Renvoie found: true et le détail si la valeur (hash, IP, domaine, CVE) est dans le flux.

curl -H "X-API-Key: $CTI_KEY" "https://ctiforecast.com/v1/lookup?value=CVE-2025-55182"

GET /v1/stats · état du flux et de votre quota

curl -H "X-API-Key: $CTI_KEY" "https://ctiforecast.com/v1/stats"

GET /v1/export · export en masse BUSINESS

Mêmes filtres que /v1/iocs, jusqu'à 500 000 lignes. format=csv (par défaut) ou format=json.

curl -H "X-API-Key: $CTI_KEY" -o iocs.csv "https://ctiforecast.com/v1/export?type=sha256,md5&since=2026-11-01T00:00:00"

GET /v1/trending · menaces en accélération

Indicateurs dont les mentions des 7 derniers jours dépassent celles des 7 jours d'avant. Recalculé toutes les heures. status : nouveau (absent la semaine d'avant), en_hausse (× 1,5 ou plus), stable, en_baisse. Par défaut : nouveau,en_hausse. Plan Free : top 10 sur ses types.

curl -H "X-API-Key: $CTI_KEY" "https://ctiforecast.com/v1/trending?type=cve,sha256&limit=20"

{"window": "7d vs 7d précédents", "count": 20, "data": [
  {"value": "CVE-2025-55182", "type": "cve", "trend_score": 87, "status": "en_hausse",
   "mentions_7d": 412, "mentions_previous_7d": 96, "active_days_7d": 7, "growth": 4.28, ...}
]}

GET /v1/forecast · prévisions d'exploitation des CVE

CVE classées par probabilité d'être ajoutées au catalogue KEV de la CISA (exploitation confirmée) dans les 30 jours. Le modèle combine EPSS et la dynamique des mentions dans la recherche en sécurité ; il est réentraîné chaque semaine (fiabilité mesurée). signal : imminente, a_surveiller, exploitee, faible (par défaut : imminente,a_surveiller). Plan Free : top 10, sans articles sources.

curl -H "X-API-Key: $CTI_KEY" "https://ctiforecast.com/v1/forecast?signal=imminente&limit=20"

{"horizon_days": 30, "epss_date": "2026-11-06", "count": 20, "data": [
  {"cve": "CVE-2026-43284", "signal": "imminente", "forecast_score": 100, "kev_probability_30d": 0.0033,
   "epss": 0.942, "in_kev": false, "mentions_7d": 7, "mentions_previous_7d": 9,
   "reasons": ["Facteur : probabilité EPSS", "EPSS : 94.2% (rang 100%)", "7 mentions sur 7 jours, 9 la semaine d'avant"],
   "references": [{"url": "https://…", "source": "…"}]}
]}

kev_probability_30d est une probabilité brute, faible par nature (seules quelques dizaines de CVE sont ajoutées au KEV chaque mois). forecast_score (0-100) est son rang parmi les CVE actives : c'est lui qu'il faut utiliser pour prioriser.

GET /v1/cve/<id> · fiche d'une CVE

Prévision, EPSS, présence dans le KEV (avec la date et l'usage par des rançongiciels), mentions et articles sources pour une CVE.

curl -H "X-API-Key: $CTI_KEY" "https://ctiforecast.com/v1/cve/CVE-2025-55182"

GET /v1/blocklist.txt · liste de blocage

Une valeur par ligne (les lignes qui commencent par # sont des commentaires), triée par confiance. Faite pour les pare-feux, les DNS filtrants, Wazuh et MISP. Ces outils ne savent souvent télécharger qu'une URL : vous pouvez alors passer la clé dans l'URL avec key=. Gardez cette URL privée, elle donne accès à votre compte.

ParamètreDescription
typeip (par défaut), domain, url, sha256, sha1 ou md5. En plan Free : sha256 uniquement.
daysIndicateurs vus ces N derniers jours, de 1 à 365. Par défaut : 30.
min_confidencePar défaut : 70, pour limiter les faux positifs sur un blocage.
curl "https://ctiforecast.com/v1/blocklist.txt?type=ip&days=30&key=$CTI_KEY"

Jusqu'à 50 000 lignes en Pro, 500 000 en Business.

GET /v1/stix · bundle STIX 2.1 PRO

Mêmes filtres que /v1/iocs. Les hashes, IP, domaines et URL deviennent des objets indicator avec leur motif STIX, et les CVE des objets vulnerability. Les articles sources sont dans external_references. Les identifiants sont stables : un même indicateur garde le même id d'un export à l'autre, ce qui évite les doublons à l'import (OpenCTI, MISP, Microsoft Sentinel).

curl -H "X-API-Key: $CTI_KEY" -o cti-forecast.json "https://ctiforecast.com/v1/stix?type=sha256,ip,domain&min_confidence=70&limit=1000"

Serveur TAXII 2.1 PRO

Protocole standard d'échange de threat intelligence (OASIS). OpenCTI, Microsoft Sentinel, MISP et la plupart des TIP s'y connectent directement. Authentification Basic : n'importe quel nom d'utilisateur, votre clé API comme mot de passe (ou l'en-tête X-API-Key). Lecture seule, objets STIX 2.1 marqués TLP:GREEN, pagination par next, collecte incrémentale par added_after.

ÉlémentValeur
Découvertehttps://ctiforecast.com/taxii2/
Racine d'APIhttps://ctiforecast.com/taxii2/api/
Collection « IP malveillantes »77653c02-ccd7-55e5-8db8-85d421cfba7c
Collection « Domaines et URL malveillants »6d85c187-7ce5-561a-9cb0-d820a89fd099
Collection « Fichiers malveillants »60ef1a80-e85a-56e8-84b6-f6e51e8d3fb6
Collection « Vulnérabilités »00ae1b11-d2b2-550f-91d2-39efc6c29dd7
curl -u "client:$CTI_KEY" -H "Accept: application/taxii+json;version=2.1" \
  "https://ctiforecast.com/taxii2/api/collections/77653c02-ccd7-55e5-8db8-85d421cfba7c/objects/?added_after=2026-11-01T00:00:00Z&limit=500"

Confiance et décroissance

confidence est la confiance actuelle. Pour les IP et les URL, elle est divisée par deux tous les 30 jours sans nouvelle observation, et tous les 90 jours pour les domaines (après 7 jours de grâce) : l'infrastructure d'attaque change de main vite. Les hashes et les CVE ne décroissent pas. confidence_base est la valeur avant décroissance ; un indicateur revu retrouve sa confiance de base. Dans STIX, valid_until indique la date au-delà de laquelle l'indicateur ne devrait plus être utilisé pour bloquer.

Codes d'erreur

CodeSignification
400Paramètre invalide. Le message indique lequel.
401Clé manquante, invalide ou révoquée.
403Type ou fonction non inclus dans votre plan.
429Quota journalier atteint.