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

# Create a list

`POST /api/v1/lists`

## Request

- Base URL: `https://app.argorant.com`
- URL: `https://app.argorant.com/api/v1/lists`
- Auth: HTTP bearer

Save a search with `filters`, or the people you picked with `record_ids`. The answer comes back at once: a saved search fills itself in the background (`materialize` has the job), and GET /api/v1/lists/{list_id}/fill says when it is done. Every filter applies, the same as in search. Saving costs nothing and reveals no contacts.

| Cost | What it does | Key scopes |
| --- | --- | --- |
| Free | Writes | `argorant:manage_lists` |

## Headers

- `Idempotency-Key` string
- `X-Request-Id` string

## Request body

- object
  - `name` string, required: List name, up to 200 characters.
  - `filters` object: A search to save, same names as people search.
    - `q` string: Plain text across name, title, company and description. A request like "software companies selling to restaurants" is understood as the vendors, not the restaurants.
    - `title` string: Job title. Knows abbreviations (CFO matches Chief Financial Officer). Comma means or.
    - `exclude_title` string: Leave out people with these titles. Comma means or.
    - `seniority` string: Comma-separated seniority levels.
    - `departments` string: Comma-separated departments.
    - `industries` string: Pipe-separated industries from GET /api/v1/lookups/industries.
    - `industry` string: One industry in plain words; industries is more exact.
    - `keywords` string: Comma-separated words that describe what the company does, such as fintech or freight forwarding. They match the company's name, tags, industry and description. They do not match a person's own skills unless keyword_scope is people or any. The widest filter for niches without their own industry.
    - `technologies` string: Pipe-separated technologies the company uses, from GET /api/v1/lookups/technologies.
    - `employee_range` string: Comma-separated company sizes.
    - `company_name` string: Company name, matched as written (Deutsche Bank finds Deutsche Bank AG). Several companies: join the names with |, for example Stripe|Notion.
    - `company_domain` string: Company website domains. Comma means or.
    - `country` string: Comma-separated countries or regions (Europe, DACH, Nordics, APAC, LATAM). Names from GET /api/v1/lookups/countries.
    - `state` string: States or provinces, by name or code. Comma means or.
    - `city` string: Cities. Comma means or.
    - `sells_to` string: Who the company sells to, for example restaurants or dentists.
    - `company_category` string: What the company itself is, used with sells_to.
    - `has_phone` boolean: Only people with a phone number on record.
    - `has_linkedin` boolean: Only people with a profile URL.
    - `exclude_keywords` string: Leave out people that keywords would find for these words. Same matching and the same keyword_scope as keywords. Comma means or.
    - `keyword_scope` string: company (default): only what the company does, that is its name, tags, industry and description. people: only the person's own skills and profile; use it when the user wants people who have a skill themselves, such as people who know Python. any: both, plus job titles.
    - `title_match` string: words (default): every word must appear as a whole word, so Data does not match Database. exact: the whole job title must be one of the values, ignoring case, so CEO does not match Founder & CEO. contains: the text may appear anywhere, also inside a word; slower, for special cases.
    - `exclude_title_match` string: Like title_match, for exclude_title only. When it is not set, title_match is used.
    - `exclude_seniority` string: Leave out these seniority levels. Comma means or.
    - `exclude_departments` string: Leave out these departments. Comma means or.
    - `exclude_industries` string: Leave out these industries (pipe-separated, like industries).
    - `exclude_industry` string: Leave out industries in plain words, like industry. Comma means or.
    - `exclude_company_domain` string: Leave out people at these company website domains. Comma means or.
    - `exclude_country` string: Leave out these countries or regions (Europe, DACH, Nordics, APAC, LATAM). Comma means or.
    - `exclude_state` string: Leave out these states or provinces, by name or code. Comma means or.
    - `exclude_city` string: Leave out these cities. Comma means or.
    - `employees_min` string: Smallest number of employees, such as 50 and 500. A company counts when its size range overlaps yours. Accepts 100 or 1k.
    - `employees_max` string: Largest number of employees (same overlap rule).
    - `revenue_band` string: Yearly company revenue in US dollars, as bands. A comma means any of them.
    - `revenue_min` string: Smallest yearly revenue in US dollars; a company counts when its revenue range overlaps yours. Accepts 250k, 1.5M or 2B.
    - `revenue_max` string: Largest yearly revenue in US dollars (same overlap rule).
    - `near_place` string: People within a distance of a place. Give the place (near_place) as a city or postal code, such as Denver, Colorado, or as a latitude and longitude, plus a distance (radius) and a unit. radius_target says whether the person's own location or their company's location counts. Answers 422 with the header X-Argorant-Filter-Not-Ready while this filter is still being added to every record (GET /api/v1/people/filters says which filters are ready).
    - `near_lat` string: Latitude of the center, with near_lon and radius, instead of near_place.
    - `near_lon` string: Longitude of the center.
    - `radius` string: Distance around the place, 0.5 to 500.
    - `radius_unit` string: mi (default) or km.
    - `radius_target` string: person: where the person is based (default). company: where their company is based.
    - `gender` string: female or male, based on first name and country. Names used for both women and men are left out, so a gender filter finds fewer people than the same search without it. Not available for lending audiences. Answers 422 with the header X-Argorant-Filter-Not-Ready while this filter is still being added to every record (GET /api/v1/people/filters says which filters are ready).
    - `income_band` string: Typical yearly pay in US dollars for the person's job, seniority and country, from public salary statistics. It is the usual pay for that role, not the person's own salary. People whose job title does not tell the role are left out. Not available for lending audiences. Comma means or. Answers 422 with the header X-Argorant-Filter-Not-Ready while this filter is still being added to every record (GET /api/v1/people/filters says which filters are ready).
  - `record_ids` string[]: Or exactly these people, by record id.

## Response `201`

Created

- SavedList
  - `list_id` integer: List id.
  - `name` string: List name.
  - `record_type` 'person' | 'company': What the list holds.
  - `selection_mode` 'filtered' | 'records': filtered: a saved search that follows its filters. records: the people you picked.
  - `filters` object: The search filters of a saved search.
  - `snapshot_total` integer: How many matched when the list was saved.
  - `item_count` integer: People stored in the list.
  - `created_at` string, date-time, nullable: When it was created.
  - `updated_at` string, date-time, nullable: When it last changed.

## Other responses

- `400`: 400 Bad request. `invalid_request` when neither filters nor record_ids were sent.
- `401`: 401 Unauthorized. `unauthorized` when the API key is missing, wrong or revoked.
- `403`: 403 Forbidden. `scope_missing` when the key lacks argorant:manage_lists.
- `409`: 409 Conflict. `idempotency_conflict` when the Idempotency-Key was used with another body.
- `422`: 422 Validation error. `validation_error` when a field has the wrong type or is missing.
- `429`: 429 Too many requests. `rate_limited` when too many requests this minute.

---

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