Everything is REST + JSON over HTTPS. One bearer token per tenant, generated in Dashboard → API key.
Send the API key as a Bearer token on every request:
Authorization: Bearer <your_api_key>
curl -s -X POST https://shield.sevinhub.com/api/scan.php \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{"url":"https://example.com","persona":"mobile_iphone_pl"}'
Returns {ok:true, scan_id, poll_url}. Poll the URL until scan.status == 'done'.
curl -s "https://shield.sevinhub.com/api/scan.php?id=42" \ -H "Authorization: Bearer $TOKEN"
Returns the full scan row + findings array. Findings include rule, severity (info/low/medium/high/critical), source feed, and the evidence object.
# JSON (default) https://shield.sevinhub.com/api/blocklist.php # Hosts file https://shield.sevinhub.com/api/blocklist.php?fmt=hosts # Per-tenant feed (your token from Dashboard → API key) https://shield.sevinhub.com/api/blocklist.php?token=<blocklist_token>&fmt=domains
Subscribe your ad server or DNS resolver to this URL — it refreshes every minute as new findings land.
desktop_chrome_en_us, desktop_chrome_pldesktop_safari_en_gb, desktop_edge_demobile_iphone_pl, mobile_iphone_en_usmobile_pixel_de, mobile_pixel_roFree 100/mo · Pro 10k/mo · Agency 100k/mo. The API returns HTTP 429 when a tenant hits its monthly cap; the counter resets at 00:00 UTC on the 1st.