Delete a profile.
const url = 'https://api.opdns.io/v1/profiles/example';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/profiles/example \ --cookie opdns_session=<opdns_session>Token scope: profiles:write. Publishes a tombstone; the id is never reused.
Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Path Parameters
Section titled “Path Parameters”Public 6-character id; never 000000.
Header Parameters
Section titled “Header Parameters”Expected profile version ETag; 412 when stale.
Responses
Section titled “Responses”Deleted.
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"}Conflict. profile_suspended: the operator suspended the profile; it resolves without filtering and refuses changes until it is reinstated (reads still work). On POSTs with an Idempotency-Key: idempotency_key_reused or idempotency_in_progress (retry after Retry-After).
object
Stable machine code.
object
Seconds, repeating the Retry-After header (rate limits, offline nodes).
Example
{ "type": "https://opdns.io/problems/profile_suspended", "title": "Conflict", "status": 409, "code": "profile_suspended", "detail": "the profile is suspended by the operator", "request_id": "5f2c9a0e7b1d4c38"}Headers
Section titled “Headers”If-Match does not match the current version (version_mismatch).
object
Stable machine code.
object
Seconds, repeating the Retry-After header (rate limits, offline nodes).
Example
{ "type": "https://opdns.io/problems/version_mismatch", "title": "Precondition Failed", "status": 412, "code": "version_mismatch", "detail": "the profile is at version 4", "request_id": "5f2c9a0e7b1d4c38"}