---
title: "One area's business figures"
method: GET
path: "/places/{level}/{code}"
tags: ["Places"]
---

# One area's business figures

`GET /places/{level}/{code}`

## Request

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

Every figure for one constituency, council area or ward, with definitions and dates, the median area of the same level and the UK figures. Free plans get the headline figures.

## Path parameters

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

## Response `200`

The area

- 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)
- `404`: No area has this code
- `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)
