This page gives you a practical map of which endpoint families exist, what they’re used for, and how they fit together in a real integration.
Recommended integration flow
Most customer integrations follow this pattern:
Define scope
Use watchlists to define scope (domains, keywords, BINs, executives, assets).
Query intelligence
Query Dataleaks, Exposure, and Ransomware datasets with scoped inputs.
Ingest incrementally
Ingest incrementally using pagination and date windows where supported.
Normalize and correlate
Normalize and correlate results into downstream systems such as SIEM, SOAR, a data lake, or case management.
Response envelope
Successful responses use a consistent top-level envelope:
{
"data": { "...": "..." }
}
{
"data": [{ "...": "..." }],
"paging": { "...": "..." }
}
{
"data": { "count": 3 }
}
Health
Use this for basic connectivity checks (no auth required):
curl -sS "https://api.defendis.ai/health"
Watchlists
Watchlists are the foundation of authorization scope.
Groups
Assets
Domains
BINs
Executives
Keywords
Ransom groups
GET /api/v1/watchlists
POST /api/v1/watchlists/create
PUT /api/v1/watchlists/{id}
POST /api/v1/watchlists/delete
GET /api/v1/watchlists/stats
GET /api/v1/watchlists/assets
POST /api/v1/watchlists/assets
PUT /api/v1/watchlists/assets/{id}
POST /api/v1/watchlists/assets/delete
GET /api/v1/watchlists/domain
POST /api/v1/watchlists/domain
PUT /api/v1/watchlists/domain/{id}
POST /api/v1/watchlists/domain/delete
GET /api/v1/watchlists/bin
POST /api/v1/watchlists/bin
PUT /api/v1/watchlists/bin/{id}
POST /api/v1/watchlists/bin/delete
GET /api/v1/watchlists/executive
POST /api/v1/watchlists/executive
PUT /api/v1/watchlists/executive/{id}
POST /api/v1/watchlists/executive/delete
GET /api/v1/watchlists/keyword
POST /api/v1/watchlists/keyword
PUT /api/v1/watchlists/keyword/{id}
POST /api/v1/watchlists/keyword/delete
GET /api/v1/watchlists/ransom
POST /api/v1/watchlists/ransom
PUT /api/v1/watchlists/ransom/{id}
POST /api/v1/watchlists/ransom/delete
Many list endpoints accept an optional watchlistid query parameter, and batch-delete endpoints use a JSON request body with an ids array.
POST /api/v1/watchlists/domain, POST /api/v1/watchlists/keyword, and POST /api/v1/watchlists/bin can return:
403 Forbidden when enterprise billing access is denied.
409 Conflict when the corresponding workspace quota is reached (quota_domains_reached, quota_keywords_reached, quota_bins_reached).
Modules
Data leaks
Exposure
Ransomware
GET /api/v1/dataleaks/credentials // requires domain
GET /api/v1/dataleaks/credentials/email // requires email
GET /api/v1/dataleaks/documents // requires domain
GET /api/v1/dataleaks/paymentcards/bins // requires bin
GET /api/v1/dataleaks/stats // requires domain
GET /api/v1/dataleaks/user // requires id
GET /api/v1/exposure/cves
GET /api/v1/exposure/subdomains
GET /api/v1/exposure/hosts // requires domainId
GET /api/v1/exposure/ports
GET /api/v1/exposure/vulnerabilities
Start with subdomains and hosts to build inventory, then use ports and vulnerabilities for risk triage and reporting.
POST /api/v1/ransom/stats // overview stats and trends
GET /api/v1/ransom/groups // actor and group listing
GET /api/v1/ransom/groups/{id} // group details
GET /api/v1/ransom/victims // victim activity listing
GET /api/v1/ransom/country/victims // victim activity by country