Incremental mirror of the Indonesian Trustpositif domain & IP blocklists, served as RSS and a JSON API.
Service health: top-level status plus per-component (ingest, storage) status. HTTP 200 when healthy, 503 when degraded.
RSS 2.0 feed of blocklist changes (additions & removals per ingest event). Subscribe here for change notifications.
Ingest events grouped by Jakarta date. from/to required (max 90-day span).
Paginated entries from the current accepted snapshot. Use the returned next_cursor to continue.
Batch membership check (is a domain/IP currently listed?). Up to N queries per request.
# body
{ "queries": [ {"type":"domain","value":"example.com"}, {"type":"ip","value":"1.2.3.4"} ] }
Full current snapshot, streamed gzipped (feed = domains | ips).
Metadata for one ingest event (baseline flag, feed participants, Jakarta date).
A diff artifact, streamed gzipped — feed = domains|ips, kind = added|removed.
DNS observations recorded during that event, streamed gzipped (ndjson).
Force an ingest now. Returns {"operation_id","status":"accepted"} (or already_running if one is in flight).
curl -X POST -H "Authorization: Bearer $ADMIN_TOKEN" \
{{origin}}/api/v1/refresh
On-demand DNS resolution over Cloudflare DoH. Body: {"domains":["example.com",...]}. Returns observations + observation ids.
Fetch a stored on-demand DNS observation, streamed gzipped (ndjson).