---
title: "Every area of a level"
method: GET
path: "/places/{level}"
tags: ["Places"]
---

# Every area of a level

`GET /places/{level}`

## Request

- Base URL: `https://api.companystack.co.uk`
- URL: `https://api.companystack.co.uk/places/{level}`
- Auth: one of:
  - HTTP bearer
  - API key in header `X-Api-Key`

Every constituency (632, Great Britain) or council area (361, UK), or the wards of a council (`council`), or all wards paged (`limit`, `offset`). Free plans get the headline figures. `format=csv` is the web app's download (Pro and Team).

## Path parameters

- `level` 'constituency' | 'council' | 'ward', required

## Query parameters

- `council` string
- `limit` integer
- `offset` integer

## Response `200`

The areas

- object
  - `level` string
  - `access` string
  - `total` integer
  - `areas` object[]
    - `level` 'constituency' | 'council' | 'ward', required
    - `code` string, required
    - `name` string, required
    - `slug` string, required
    - `region` object, nullable
      - `code` string
      - `name` string
    - `council` object, nullable: Wards: the council area
      - `code` string
      - `name` string
    - `page_url` string, uri, nullable: The public page (constituencies and councils; wards have none)
    - `as_of` string, date, required
    - `access` 'full' | 'headline'
    - `figures` object, required: Every figure (full access) or the headline figures (registered, based here, new in 12 months). Counts are count objects, shares share objects.
      - `companies` object
        - `registered` object
          - `value` integer, nullable, required
          - `suppressed` boolean, required: true for a count from 1 to 9 (value null)
        - `based_here` object
          - `value` integer, nullable, required
          - `suppressed` boolean, required: true for a count from 1 to 9 (value null)
        - `at_mass_registration_addresses` object
          - `value` integer, nullable, required
          - `suppressed` boolean, required: true for a count from 1 to 9 (value null)
        - `at_mass_registration_addresses_share` object
          - `percent` number, nullable, required: Per cent, one decimal place
          - `base` integer, nullable, required: Companies the share is of
          - `suppressed` boolean, required: true when the base has fewer than 10 companies (the owner-age share also needs 10 owners on each side of 65)
        - `at_registrar_default_address` object
          - `value` integer, nullable, required
          - `suppressed` boolean, required: true for a count from 1 to 9 (value null)
        - `at_registrar_default_address_share` object
          - `percent` number, nullable, required: Per cent, one decimal place
          - `base` integer, nullable, required: Companies the share is of
          - `suppressed` boolean, required: true when the base has fewer than 10 companies (the owner-age share also needs 10 owners on each side of 65)
      - `new_companies` object
      - `insolvency` object
      - `strike_off` object
        - `percent` number, nullable, required: Per cent, one decimal place
        - `base` integer, nullable, required: Companies the share is of
        - `suppressed` boolean, required: true when the base has fewer than 10 companies (the owner-age share also needs 10 owners on each side of 65)
      - `sectors` object[]
      - `balance_sheet` object
      - `owners` object
        - `aged_65_plus` object
          - `percent` number, nullable, required: Per cent, one decimal place
          - `base` integer, nullable, required: Companies the share is of
          - `suppressed` boolean, required: true when the base has fewer than 10 companies (the owner-age share also needs 10 owners on each side of 65)
      - `employers` object[]
        - `company_number` string
        - `company_name` string
        - `employees` integer
        - `period_end` string, date
    - `median` object: The median area of the same level for each figure (full access)
    - `uk` object, nullable: Every company we can place in the UK (full access)
    - `definitions` object: What each figure means, with its dates (full access)
    - `upgrade` object: Headline access: what the paid plans add

## Other responses

- `401`: API key missing, malformed or revoked
- `403`: The key's plan does not include this endpoint (`code: plan_upgrade_required`, with `upgrade_url`), the key may not call it, or the key is beyond the plan's key limit after a downgrade (`code: key_limit_exceeded`: the newest keys are paused until keys are deleted or the plan upgraded)
- `429`: Per-minute or per-day limit reached (`code: rate_limited`, `window: minute|day`). Wait `Retry-After` seconds; when both windows are full the day is reported. A refused request does not count against either limit. A bulk lookup (`POST /company/bulk`) counts each company number in it as one request, so one that is more than you have left is refused whole, and the body adds `requested` and `fits`.
- `503`: The figures are being prepared

---

[API](https://skmtc.dev/companystack/apis/companystack-api.md) · [All operations](https://skmtc.dev/companystack/apis/companystack-api/llms.txt) · [OpenAPI document](https://skmtc.dev/companystack/apis/companystack-api/revisions/8f3234237d2d?raw)
