Get integrated in five minutes.
Mint a key, list your brand findings, and look up an indicator. Three languages. Every snippet runs against the production API at https://securityalert.ai/api/v1; the auth header is the same shape everywhere. Full reference at /api/docs.
1Mint an API key
Sign in, navigate to Settings → API keys, click Create key, and copy the value. The token shows once and is never retrievable from storage. Format: sa_live_<32 hex chars>. Business and Enterprise plans only.
2List your brand findings
Pull the active findings the key's owner can see. Filter by severity, source, brand_id, or first-seen-since timestamp.
curl -H "Authorization: Bearer $SA_KEY" \
"https://securityalert.ai/api/v1/findings?severity=critical&limit=10"import os, requests
r = requests.get(
"https://securityalert.ai/api/v1/findings",
headers={"Authorization": f"Bearer {os.environ['SA_KEY']}"},
params={"severity": "critical", "limit": 10},
timeout=10,
)
for f in r.json()["findings"]:
print(f["risk_level"], f["variant_domain"], f["technique"])const r = await fetch(
"https://securityalert.ai/api/v1/findings?severity=critical&limit=10",
{ headers: { Authorization: `Bearer ${process.env.SA_KEY}` } }
);
const { findings } = await r.json();
findings.forEach(f => console.log(f.risk_level, f.variant_domain, f.technique));3Look up an indicator
Universal lookup auto-detects the input type (CVE, IP, hostname, file hash, ASN, threat actor, ransomware group) and returns every place it appears across our threat-intel data.
curl -H "Authorization: Bearer $SA_KEY" \
"https://securityalert.ai/api/v1/lookup?q=CVE-2024-3094"import os, requests
r = requests.get(
"https://securityalert.ai/api/v1/lookup",
headers={"Authorization": f"Bearer {os.environ['SA_KEY']}"},
params={"q": "CVE-2024-3094"},
timeout=10,
)
data = r.json()
print(data["query"]["type"], data["total"], "matches")
for s in data["sections"]:
print(f"- {s['label']}: {s['hits']} hit(s)")const r = await fetch(
"https://securityalert.ai/api/v1/lookup?q=CVE-2024-3094",
{ headers: { Authorization: `Bearer ${process.env.SA_KEY}` } }
);
const data = await r.json();
console.log(data.query.type, data.total, "matches");
data.sections.forEach(s => console.log(`- ${s.label}: ${s.hits} hit(s)`));4Subscribe to release notes
Plug https://securityalert.ai/changelog.rss into your feed reader, ChatOps relay, or Pipedream / n8n automation to track every release as it ships. RSS 2.0, cached one hour. The same data drives the human-readable /changelog.
Full OpenAPI 3.1 spec: /api/openapi.json · Interactive docs: /api/docs · Integrations directory: /integrations