# List the live polling subscriptions for this key

`GET /api/v1/data/subscriptions` - [human page](https://aicdapi.com/api-reference#listFeedSubscriptions)

**Release status.** Limited availability

Limited, machine-only release. Returns the live feeds bound to the authenticated customer and the exact API key making the request. A feed is live only while it is unrevoked and its bound key is unrevoked and unexpired, so a feed whose key has expired or been revoked stops being listed, and its account cap slot is free, without any row being deleted and without a background sweep. Revoked feeds are never listed: there is no include-revoked mode and no unbounded history. The response also reports the account-wide live count and the current per-account cap, because the cap counts every key's feeds on the account, not only this key's.

**Authentication.** Customer API key: `Authorization: Bearer aicd_...`. A browser session does not authenticate this endpoint. Required scope: `civic:read`.

### Example request

```bash
curl -X GET 'https://aicdapi.com/api/v1/data/subscriptions' \
  -H "Authorization: Bearer $AICD_API_KEY"
```

### Response 200

The live feeds bound to this account and key, with the account-wide live count and cap.

| Field | Type | Required | Bounds | Description |
| --- | --- | --- | --- | --- |
| `data` | object | yes |  |  |
| `data.items` | object[] | yes |  |  |
| `data.activeCount` | integer | yes | >= 0, <= 9007199254740991 | Live subscriptions on the whole account, across every key, because the cap is per account. |
| `data.maxActiveSubscriptions` | integer | yes | >= 0, <= 9007199254740991 | The account's current cap from its frozen paid tier: Pro 10, Ultra 100. |

Example response:

```json
{
  "data": {
    "items": [
      {
        "id": "3f2504e0-4f89-41d3-9a0c-0305e82c3301",
        "name": "county-meetings",
        "resource": "meetings",
        "keyId": "9c858901-8a57-4791-81fe-4c455b099bc9",
        "startCursor": "v1.eyJzZXF1ZW5jZSI6MTI4fQ",
        "createdAt": "2026-09-28T12:00:00Z"
      }
    ],
    "activeCount": 3,
    "maxActiveSubscriptions": 10
  }
}
```

### Errors

| Status | `error.code` | Description |
| --- | --- | --- |
| **400** | `invalid_parameter` | The request carries a query key this operation does not accept. The collection takes no parameters. |
| **401** | `unauthorized` | The API key is missing, malformed, unknown, revoked, expired, or belongs to a customer that is not active. |
| **403** | `billing_channel_unset`, `billing_entitlement_required`, `feed_subscription_plan_required`, `forbidden` | 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. |
| **413** | `response_too_large` | The serialized response exceeds the response size allowance on your account. |
| **429** | `rate_limited` | 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** | `internal_error` | Unexpected failure. No private database detail is returned. |
| **503** | `authentication_unavailable` | The identity lookup, a limit or abuse-ceiling store, or an audit write failed. The request is refused rather than allowed through. |

### Behaviour

- **Limits.** Counted against the per-account minute, burst, and response-byte allowances shared by every key of the account. A subscription carries no budget of its own: subscribing does not add, reserve, or partition paid usage, and the account's admitted-request and byte allowances are what a poll consumes. The account-wide abuse ceiling applies here as it does to the rest of the machine API: it is account-wide, is not charged against the paid quota, and is charged before a revoked, expired, unpaid, or scope-denied rejection is decided.
- **Retry-After.** Sent on 429 only, as whole seconds.
- **Caching.** Customer feed responses must not be cached.
