---
title: "Revoke one polling subscription"
method: DELETE
path: "/api/v1/data/subscriptions/{subscriptionId}"
tags: ["Customer civic data"]
---

# Revoke one polling subscription

`DELETE /api/v1/data/subscriptions/{subscriptionId}`

## Request

- Base URL: `https://aicdapi.com`
- URL: `https://aicdapi.com/api/v1/data/subscriptions/{subscriptionId}`
- Auth: HTTP bearer

Limited, machine-only release. Revokes one feed. The account must hold a current frozen paid Pro or Ultra period, exactly as creation and polling do. The feed must belong to the authenticated customer and to the exact API key making the request; an unknown id, another account's id, and another key's id are all not found, so the endpoint is not an existence oracle across accounts or credentials. Revoking a feed revokes only that feed: the shared API key, the account's other feeds, and other keys of the account are untouched. The account cap slot is released immediately, and the feed disappears from the live listing. Revocation is idempotent: repeating it succeeds and returns the original revocation time.

## Path parameters

- `subscriptionId` string, uuid, required

## Response `200`

The feed is revoked. Repeating the call returns the original revocation time.

- FeedSubscriptionRevokedEnvelope
  - `data` object, required
    - `id` string, uuid, required: The revoked subscription's id.
    - `revokedAt` string, date-time, required: When the feed was revoked, which is the original time when this call repeats a revocation.

## Other responses

- `401`: The API key is missing, malformed, unknown, revoked, expired, or belongs to a customer that is not active.
- `403`: The key lacks the required grant, the account has no billing channel while billing enforcement is on, is not paid through, or is not on a current Pro or Ultra paid tier.
- `404`: No feed with that id belongs to this account and key, including when the id is not a UUID at all.
- `413`: The serialized response exceeds the response size allowance on your account.
- `429`: Either a per-account allowance was exhausted or the account-wide abuse ceiling was reached. The abuse ceiling is account-wide, is not charged against the paid quota, and is charged after the identity lookup and before a revoked, expired, unpaid, or scope-denied rejection is decided.
- `500`: Unexpected failure. No private database detail is returned.
- `503`: The identity lookup, a limit or abuse-ceiling store, or an audit write failed. The request is refused rather than allowed through.

---

[API](https://skmtc.dev/aicdapi/apis/aicd-api.md) · [All operations](https://skmtc.dev/aicdapi/apis/aicd-api/llms.txt) · [OpenAPI document](https://skmtc.dev/aicdapi/apis/aicd-api/revisions/0f3752fae465?raw)
