> ## Documentation Index
> Fetch the complete documentation index at: https://docs.data.avina.io/llms.txt
> Use this file to discover all available pages before exploring further.

# List company search results

> Returns the companies a search has found, in the order they were found.

Available while the search is still running. Reading results is free.

Results are only ever added, never changed or removed. Store `next_cursor` and pass it as `after` to read only the companies found since your last call. `next_cursor` is always returned, even on an empty page.

`has_more: false` means there are no more stored results right now. It does not mean the search has finished: check `search_status`.

### Path parameters

**search\_id** `string` *required*

The search's `id`, returned when it was started.

### Query parameters

**limit** `integer` (default: 25)

Page size.

Range: 1 to 100.

**after** `string`

The `next_cursor` from the previous page. Omit it on the first call.

### Response

**`200`** A page of companies.

**object** `string` *required*

Always `list`.

**data** `object[]` *required*

Companies, in the order they were found.

**item properties**

**object** `string` *required*

Always `company_search_result`.

**result\_id** `string` *required*

A stable identifier for this result within the search.

**domain** `string` *required*

The company's website domain. Unique within a search.

**name** `string | null` *required*

The company's name.

**description** `string | null`

A short description of the company.

**industries** `string[]`

LinkedIn industry names. Empty when unknown.

**headquarters** `object | null`

Where the company is headquartered.

**properties**

**country** `string | null`

ISO 3166-1 alpha-2 country code.

**state** `string | null`

State or region.

**city** `string | null`

City.

**employee\_count** `object | null`

Number of employees, as a range.

**properties**

**low** `number` *required*

The lower bound.

**high** `number | null` *required*

The upper bound. `null` when open-ended.

**annual\_revenue\_usd** `object | null`

Annual revenue in US dollars, as a range.

**properties**

**low** `number` *required*

The lower bound.

**high** `number | null` *required*

The upper bound. `null` when open-ended.

**total\_funding\_usd** `object | null`

Total funding raised in US dollars, as a range.

**properties**

**low** `number` *required*

The lower bound.

**high** `number | null` *required*

The upper bound. `null` when open-ended.

**last\_funding** `object | null`

The most recent funding round.

**properties**

**date** `string | null`

The date of the round.

**round** `string | null`

The round, such as `seed` or `series_b`.

**company\_type** `string | null`

Ownership type, such as `Privately Held` or `Public Company`.

**founded\_year** `integer | null`

The year the company was founded.

**linkedin\_url** `string | null`

The company's LinkedIn page.

**matched\_criteria** `object[]` *required*

One entry per requirement of the search, with its evidence.

**item properties**

**criterion** `string` *required*

Which requirement this is. A filter field such as `company.industry`, a relationship such as `open_jobs`, or `criteria.<index>` for a free-text criterion, where the index is its zero-based position in `criteria`.

**verdict** `string` *required*

The outcome of the check. Results only include records where every requirement is `matched`.

Options: `matched`, `not_matched`, `unknown`.

**evidence** `object` *required*

Why the verdict was reached.

**properties**

**summary** `string` *required*

A one-line explanation, or a quote from the source.

**sources** `string[]` *required*

URLs that support the verdict. Empty when the evidence is a structured record with no public page.

**items** `object[]` *required*

Supporting records, when the requirement is about jobs, hires or technologies.

**item properties**

**type** `string` *required*

The kind of record.

Options: `job`, `hire`, `technology`.

**title** `string`

The job title, for `job` and `hire`.

**name** `string`

The person's name, for `hire`.

**technology** `string`

The product or vendor, for `technology`.

**posted\_at** `string`

When the job was posted, for `job`.

**started\_at** `string`

When the person started, for `hire`.

**detected\_at** `string`

When the technology was detected, for `technology`.

**location** `string`

The job's location, for `job`.

**url** `string`

A link to the record.

**contacts** `object[]` *required*

People found for the search's personas. Empty when no personas were requested or nobody was found.

**item properties**

**name** `string` *required*

The person's full name.

**title** `string | null`

The person's current job title.

**linkedin\_url** `string | null`

The person's LinkedIn profile.

**email** `string | null`

Work email address, when the persona has `enrich_emails` and an address was found.

**email\_status** `string | null`

The result of verifying `email`.

Options: `valid`, `catch_all`, `unknown`.

**phone** `string | null`

Phone number, when the persona has `enrich_phones` and a number was found.

**persona\_ids** `string[]` *required*

The personas this person matched.

**contact\_status** `string` *required*

`not_requested`: no personas were sent. `complete`: every lookup finished, including lookups that found nobody. `partial`: some lookups finished and others failed or were stopped. `failed`: no lookup could finish.

**found\_at** `string` *required*

When the company was added to the results.

**has\_more** `boolean` *required*

Whether more stored results are available now. `false` does not mean the search has finished.

**next\_cursor** `string` *required*

Pass as `after` to read the results after this page. Always returned. Store it and send it back unchanged; do not parse it.

**search\_status** `string` *required*

The search's status when this page was read.

Options: `queued`, `running`, `completed`, `failed`, `cancelled`.

### Errors

| Status | Code | When |
| - | - | - |
| `400` | `invalid_request` | The request is invalid, for example a malformed `after` cursor or a `limit` out of range. |
| `401` | `invalid_api_key` | The API key is missing, invalid or revoked. |
| `404` | `not_found` | No such object in this workspace. |
| `429` | `rate_limited` | Too many requests. Retry after `Retry-After` seconds. |
| `500` | `internal_error` | Something went wrong on our side. Retry with backoff, and with the same `Idempotency-Key` if you sent one. |

Every error uses the same shape. See [Errors](https://docs.data.avina.io/api-reference/errors.md).

```bash cURL theme={"theme":{"light":"github-light","dark":"github-dark"}}
curl https://api.avina.io/v1/companies/search/$SEARCH_ID/results \
  -H "Authorization: Bearer $AVINA_API_KEY"
```

```python Python theme={"theme":{"light":"github-light","dark":"github-dark"}}
import os
import requests

response = requests.get(
    f"https://api.avina.io/v1/companies/search/{search_id}/results",
    headers={"Authorization": f"Bearer {os.environ['AVINA_API_KEY']}"},
)
response.raise_for_status()
print(response.json())
```

```javascript JavaScript theme={"theme":{"light":"github-light","dark":"github-dark"}}
const response = await fetch(`https://api.avina.io/v1/companies/search/${searchId}/results`, {
  headers: {
    Authorization: `Bearer ${process.env.AVINA_API_KEY}`,
  },
});
const data = await response.json();
console.log(data);
```

```json 200 theme={"theme":{"light":"github-light","dark":"github-dark"}}
{
  "object": "list",
  "data": [
    {
      "object": "company_search_result",
      "result_id": "res_8Zk2Qm4vT1",
      "domain": "lakeviewdental.example",
      "name": "Lakeview Dental Group",
      "description": "Family dentistry with four locations in the Austin area.",
      "industries": ["Dentists"],
      "headquarters": { "country": "US", "state": "Texas", "city": "Austin" },
      "employee_count": { "low": 51, "high": 200 },
      "annual_revenue_usd": null,
      "total_funding_usd": null,
      "last_funding": { "date": null, "round": null },
      "company_type": "Privately Held",
      "founded_year": 1998,
      "linkedin_url": "https://www.linkedin.com/company/lakeview-dental-example",
      "matched_criteria": [
        {
          "criterion": "company.industry",
          "verdict": "matched",
          "evidence": {
            "summary": "Industry: Dentists",
            "sources": [],
            "items": []
          }
        },
        {
          "criterion": "company.business_description",
          "verdict": "matched",
          "evidence": {
            "summary": "\"Family dentistry with four locations in the Austin area.\"",
            "sources": ["https://lakeviewdental.example/about"],
            "items": []
          }
        },
        {
          "criterion": "company.headquarters.state",
          "verdict": "matched",
          "evidence": {
            "summary": "Headquarters state: Texas",
            "sources": [],
            "items": []
          }
        },
        {
          "criterion": "company.type",
          "verdict": "matched",
          "evidence": {
            "summary": "Company type: Privately Held",
            "sources": [],
            "items": []
          }
        },
        {
          "criterion": "open_jobs",
          "verdict": "matched",
          "evidence": {
            "summary": "1 open job matches.",
            "sources": ["https://lakeviewdental.example/careers/sdr"],
            "items": [
              {
                "type": "job",
                "title": "Sales Development Representative",
                "posted_at": "2026-10-29",
                "location": "Austin, TX",
                "url": "https://lakeviewdental.example/careers/sdr"
              }
            ]
          }
        }
      ],
      "contacts": [],
      "contact_status": "not_requested",
      "found_at": "2026-11-12T17:03:40Z"
    }
  ],
  "has_more": false,
  "next_cursor": "1",
  "search_status": "running"
}
```

```json 400 theme={"theme":{"light":"github-light","dark":"github-dark"}}
{
  "error": {
    "code": "invalid_request",
    "message": "after: not a valid cursor",
    "request_id": "req_8f2a61c09d4e7b3a5f10c2d8",
    "details": [
      { "field": "after", "message": "not a valid cursor" }
    ]
  }
}
```


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.