Skip to main content
The articles endpoint aggregates cybersecurity news from 30+ sources — including CISA alerts, vendor advisories, and independent threat research — into a single paginated feed. You can filter by category, severity, threat actor, or MITRE technique, run full-text searches, and poll incrementally using the since parameter to retrieve only new content since your last request.

Endpoint

Method: GET https://socdefenders.ai/api/v1/articles Authentication: Required — pass your API key in the Authorization header as a Bearer token. Tier: Free. Bulk export in NDJSON or CSV format requires a Pro subscription.

Query parameters

string
Full-text search query. Matches against article titles, summaries, and extracted tags.
string
Filter by article category. Common values: vulnerabilities, malware, threat-intelligence, data-breaches, ransomware.
string
Filter by severity level. Accepted values: critical, high, medium, low.
string
ISO 8601 timestamp. Returns only articles published after this time. Use for delta polling — see the note below.
string
Pagination cursor returned in meta.next_cursor from a previous response. Pass this value to retrieve the next page of results.
integer
default:"30"
Number of results per page. Maximum is 100 on the Free tier and 1,000 on Pro.
boolean
When true, returns only articles that have extracted indicators of compromise (IOCs).
string
Filter by threat actor name, for example APT28 or Lazarus Group.
string
Filter by targeted industry sector, for example healthcare, finance, or energy.
string
Filter by MITRE ATT&CK technique ID, for example T1566 (Phishing).
string
default:"json"
Response format. Accepted values: json (default), ndjson, csv. NDJSON and CSV bulk export require a Pro subscription.

Example request

Example response

Response fields

object
Pagination metadata for the response.
object[]
Array of article objects matching the query.

Delta polling

To continuously ingest new articles without re-fetching old ones, record the highest published_at value from each response and pass it as the since parameter on your next request. This returns only articles published after that timestamp, making it efficient to poll on a schedule.