---
title: "Save a new-company search"
method: POST
path: "/saved-searches"
tags: ["New Companies"]
---

# Save a new-company search

`POST /saved-searches`

## Request

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

Saves the feed filters (sic, region, town, postcode, type, shared_address, directors_with_other_companies, status) as a search. Every 15 minutes each search's new matches (companies incorporated since it was saved) are recorded, and on the API each one is sent to webhook_url as a signed POST: type new_company.matched, the CompanyStack-Signature header (HMAC-SHA256 with your account's webhook signing secret, as for list alerts), the company in data.company. Limits: 1 search on API Free, 5 on Starter, 50 on Business.

## Request body

- object
  - `name` string, required
  - `filters` object, required
  - `webhook_url` string, uri, required: https URL on the public internet

## Response `201`

Saved

- object
  - `search` object
    - `id` integer
    - `name` string
    - `product` 'app' | 'api'
    - `filters` object
    - `delivery` 'webhook' | 'email_daily' | 'in_app_weekly'
    - `delivery_text` string
    - `webhook_url` string, nullable
    - `active` boolean
    - `paused` 'over_plan_limit' | 'null', nullable
    - `created_at` string
    - `last_matched_at` string, nullable
    - `matches_total` integer
    - `matches_last_7_days` integer

## Other responses

- `400`: Invalid name, filters or webhook URL
- `401`: API key missing, malformed or revoked
- `403`: The plan's saved-search limit is reached (code saved_search_limit)
- `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)
