---
title: "Create a list"
method: POST
path: "/lists"
tags: ["Lists"]
---

# Create a list

`POST /lists`

## Request

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

Create a named list of companies. `purpose` records what the list is for, `monitor` turns change alerts on for its companies, and `alert_email`, `alert_webhook` and `webhook_url` choose how alerts reach you. 409 when you already have a list with that name.

## Request body

- object
  - `name` string, required
  - `purpose` 'clients' | 'suppliers' | 'portfolio' | 'prospects' | 'other'
  - `description` string
  - `monitor` boolean: Watch every company for changes
  - `alert_email` boolean: Daily email digest (defaults to on where your plan includes email alerts)
  - `alert_webhook` boolean
  - `webhook_url` string: Public https:// URL for signed company.alert webhooks
  - `shared_with_team` boolean: Team plans: visible to the whole team

## Response `201`

Created

## Other responses

- `400`: Invalid input; `error` says what to change
- `401`: API key missing, malformed or revoked
- `403`: Plan limit or feature not included
- `409`: A list with that name exists
- `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`.

---

[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)
