---
title: "Coverage — every UK collecting council and its status"
method: GET
path: "/councils"
---

# Coverage — every UK collecting council and its status

`GET /councils`

## Request

- Base URL: `https://whenisbins.com/v1`
- URL: `https://whenisbins.com/v1/councils`
- Auth: one of:
  - none
  - HTTP bearer

## Headers

- `If-None-Match` string

## Response `200`

All councils.

- object
  - `councils` Council[], required
    - `id` string, required: GSS code — the canonical, rename-proof council identity.
    - `name` string, required
    - `lookup_url` string, uri: The council's own bin-day checker page, when known (https only). The honest fallback for the citizen on every wait and failure — the same page a served Schedule reports as `source_url`.
    - `missed_bin_url` string, uri, nullable: Council-specific HTTPS operational missed-collection reporting page, from the approved verified reporting registry. Null when unavailable; never substituted with the checker, broader problem or formal complaint route. Returned on council discovery, lookup and schedule council objects. Read the council's current reporting window, disruptions, exclusions and evidence requirements. Too early? Keep the details and, with permission, follow up when the window opens and before it closes. If you cannot, give the owner the council link and saved details. Check-in consent is not permission to submit. Get separate permission to report and share personal details with the council. Check for an existing report in the council account or by reference if you have access; otherwise ask the owner. After a timeout or no confirmation, reconcile before retrying. Deduplicate by property + due date + waste stream (bin type). Only claim success when the council confirms it; keep its reference and next steps. Do not promise a return collection: some streams have none. WhenIsBins supplies dates and a link; it does not schedule check-ins or submit reports. See the guide for the full check-in and reporting rules.
    - `missed_bin_checked_at` string, date, nullable: Registry verification date (YYYY-MM-DD) for the published reporting route, not the schedule retrieval time or a live availability check. Null when missed_bin_url is null. Approved links remain published until reviewed and withdrawn or updated, even when their review date has passed.
    - `coverage` 'live' | 'degraded' | 'unsupported', required
    - `reason_code` 'captcha-required' | 'checker-withdrawn' | 'checker-withdrawn-or-login-required' | 'resident-login-required' | 'site-access-blocked': Reviewed structural reason, present only for a declared unsupported council.

## Other responses

- `304`: A 304 means stored content is unchanged, not that the council re- verified the date. The content matches the `If-None-Match` ETag. No body.
- `401`: Supplied bearer token is malformed, unknown or revoked, or a token is missing during a token-only hold (`unauthorized`).
- `405`: The path exists but not with this method. Every resource below answers exactly one method; the `Allow` header names it.
- `429`: Request, provider or new-work allowance exceeded; optional limit_scope and token_request_url explain the limit.
- `500`: An unexpected fault on our side (`server_error`). Nothing is implied about whether the work started; retry with the same `Idempotency-Key` where one applies.
- `503`: Required service configuration, a dependency, or shared lookup admission is temporarily unavailable (`service_unavailable`).

---

[API](https://skmtc.dev/whenisbins/apis/whenisbins-uk-bin-collection-api-for-apps-and-ai-agents.md) · [All operations](https://skmtc.dev/whenisbins/apis/whenisbins-uk-bin-collection-api-for-apps-and-ai-agents/llms.txt) · [OpenAPI document](https://skmtc.dev/whenisbins/apis/whenisbins-uk-bin-collection-api-for-apps-and-ai-agents/revisions/6e4a960474a4?raw)
