> For the complete documentation index, see [llms.txt](https://developer.parvenu.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://developer.parvenu.io/enrichments/enrich-company-from-domain/list-lookup.md).

# List Lookup

Enrich every row of a Parvenu list using the domain on that row. Asynchronous, writes results back into the list.

<mark style="color:green;">`POST`</mark> `/enrich_company_from_domain_list`

{% hint style="info" %}
This is an **asynchronous** endpoint. It returns a job acknowledgement, not data. Poll `/check_list_status` until the list reports `done`, then fetch the rows with `/download_list`. Costs **0.2 credit per profile returned**. A company already matched on this list recently is not charged again.
{% endhint %}

{% hint style="warning" %}
Requires a domain on each row. Run [Website Lookup](/enrichments/website-enrichment.md) first if the `company_website` / `domain` column is empty. This endpoint accepts the `view` filter below (`all` default, `verified`), but no longer accepts the legacy `state` parameter.
{% endhint %}

Use this to enrich every row of a list in one call, rather than looping over [Individual Lookup](/enrichments/enrich-company-from-domain/individual-lookup.md) per row.

When two sources disagree, the more trusted one is kept: a `headcount` or `company_size` already filled from the company's LinkedIn page is not replaced by this lookup.

**Running it again.** A company already matched and charged on this list recently is not looked up or charged again. Its stored details are reused for 0 credits on the rows that need them, and each of those rows gets a log line saying `checked MM-DD-YY, not charged again`. `estimated_credits` leaves those companies out. A company that was not checked recently is looked up, and charged, as usual. Only the same list counts: the same company on a different list is charged there.

**Headers**

| Name         | Value              |
| ------------ | ------------------ |
| Content-Type | `application/json` |

**Body**

| Name         | Type   | Description                                                                                                                                                                 |
| ------------ | ------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `api_key`    | string | Your API Key.                                                                                                                                                               |
| `listname`   | string | Name of the existing Parvenu list to enrich.                                                                                                                                |
| `view`       | string | Optional. Which rows of the list to process. `all` (default) processes every contact in the list; `verified` restricts the run to contacts whose email address is verified. |
| `saved_view` | string | Optional. Name of a saved view on this list. Runs only on the contacts in that view. Don't combine with `view`, `filter_stack` or `search`.                                 |

**Saved views.** To run only on the contacts in a saved view, send its name as `saved_view`. See [List Saved Views](/manage-lists/list-saved-views.md).

**Response**

The acknowledgement reports the job's `status`, which is one of `queued`, `processing`, `done`, `not_found`, `cancelled` or `error`. `done` means the job has finished. See [Response Format](/getting-started/response-format.md) for the fields every endpoint returns.

| Field                   | Description                                                             |
| ----------------------- | ----------------------------------------------------------------------- |
| `status`                | Job status at the moment of the acknowledgement.                        |
| `view`                  | Which rows were selected, `all` or `verified`.                          |
| `fetched_count`         | Rows read from the list.                                                |
| `company_count`         | Unique companies the run will enrich.                                   |
| `reused_company_count`  | Of those, companies matched on this list recently: reused, not charged. |
| `server_filtered_total` | Rows left after the view filter.                                        |
| `estimated_credits`     | Expected cost of the run, leaving out the reused companies.             |
| `truncated`             | `true` when the list was larger than `max_rows`.                        |
| `credits_used`          | Credits charged by the acknowledgement itself, always 0 here.           |

**Example**

{% tabs %}
{% tab title="Input" %}

```json
{
  "api_key": "your_api_key",
  "listname": "my_list"
}
```

{% endtab %}

{% tab title="Output" %}

```json
{
  "result": "Company enrichment from domain (filtered) started",
  "status": "processing",
  "fetched_count": 10,
  "company_count": 10,
  "server_filtered_total": 10,
  "truncated": false,
  "credit_per_company": 0.2,
  "reused_company_count": 0,
  "estimated_credits": 2.0,
  "filter_stack_active": false,
  "search_active": false,
  "max_rows": 5000,
  "message": "Enriching 10 unique companies across 10 rows for my_list (0.2 credits per company).",
  "view": "all",
  "credits_used": 0,
  "success": true
}
```

{% endtab %}

{% tab title="Error" %}

```json
{
  "status": "error",
  "error": {
    "code": "validation_error",
    "message": "state: Extra inputs are not permitted"
  },
  "success": false
}
```

{% endtab %}
{% endtabs %}

**Retrieving results**

* [Check List Status](/get-enrichment-results/check-list-status.md)
* [Download List Data](/get-enrichment-results/download-list-data.md)
