Remove an abusive-source block (admin).
const url = 'https://api.opdns.io/v1/admin/source-blocks/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0';const options = {method: 'DELETE', headers: {cookie: 'opdns_session=<opdns_session>'}};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request DELETE \ --url https://api.opdns.io/v1/admin/source-blocks/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0 \ --cookie opdns_session=<opdns_session>Removes an abusive-source block, republishes the operator sources file and records admin.source_block_removed in the audit log. Returns the removed block and the new file version. Scope admin.
Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Path Parameters
Section titled “Path Parameters”Responses
Section titled “Responses”Removed and published.
object
object
Masked prefix, e.g. 192.0.2.0/24.
Examplegenerated
{ "block": { "id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "cidr": "example", "reason": "example", "pops": [ "example" ], "jurisdictions": [ "example" ], "expires_at": "2026-04-15T12:00:00Z", "created_by": "example", "created_at": "2026-04-15T12:00:00Z", "removed_by": "example", "removed_at": "2026-04-15T12:00:00Z" }, "file_version": 1}Not authenticated.
object
Stable machine code.
object
Seconds, repeating the Retry-After header (rate limits, offline nodes).
Example
{ "type": "https://opdns.io/problems/unauthenticated", "title": "Unauthorized", "status": 401, "code": "unauthenticated", "detail": "authentication required", "request_id": "5f2c9a0e7b1d4c38"}Authenticated but not allowed: insufficient_scope, session_required, csrf_rejected, mfa_enrolment_required (restricted session), mfa_required (an operator action, or an admin-scoped token, from a session signed in with the password alone; not in dev), reauth_required (sign in again within five minutes), account_pending_deletion (the account is in its deletion cooling-off).
object
Stable machine code.
object
Seconds, repeating the Retry-After header (rate limits, offline nodes).
Example
{ "type": "https://opdns.io/problems/insufficient_scope", "title": "Forbidden", "status": 403, "code": "insufficient_scope", "detail": "the token lacks the profiles:write scope", "request_id": "5f2c9a0e7b1d4c38"}Not found (also for resources of another organisation).
object
Stable machine code.
object
Seconds, repeating the Retry-After header (rate limits, offline nodes).
Example
{ "type": "https://opdns.io/problems/not_found", "title": "Not Found", "status": 404, "code": "not_found", "detail": "resource not found", "request_id": "5f2c9a0e7b1d4c38"}not_implemented (cloud log queries not configured on this server) or shape_unsupported (node too old).
object
Stable machine code.
object
Seconds, repeating the Retry-After header (rate limits, offline nodes).
Example
{ "type": "https://opdns.io/problems/not_implemented", "title": "Not Implemented", "status": 501, "code": "not_implemented", "detail": "cloud log queries are not configured on this server", "request_id": "5f2c9a0e7b1d4c38"}