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

# Company Research

> Discover companies by name, domain, industry, location, size, or funding stage, and enrich a single company from any identifier.

These endpoints are async. You POST a request, get back a `request_id`, and poll `GET /v1/requests/{request_id}` until the job finishes.

<Note>
  All paid endpoints on this page accept optional `memo` (≤ 1000 chars) and
  `decisionContext` (object) body fields. Stored on the receipt for debugging
  and audit — see [Audit Trail](/sdk/audit-context).
</Note>

## Company Search

`POST /v1/tools/research/company`

Find companies matching a set of filters. Flat price per search, not per result.

<ParamField body="name" type="string" optional>
  Company name (fuzzy match)
</ParamField>

<ParamField body="domain" type="string" optional>
  Company website domain (e.g. `stripe.com`)
</ParamField>

<ParamField body="industry" type="string[]" optional>
  Industries to filter by (max 50)
</ParamField>

<ParamField body="location" type="string[]" optional>
  Locations to filter by, e.g. `["San Francisco", "Austin, TX"]` (max 50)
</ParamField>

<ParamField body="size" type="string" optional>
  Employee size band, e.g. `"11-50"`, `"51-200"`
</ParamField>

<ParamField body="min_employee_count" type="number" optional>
  Minimum employee count
</ParamField>

<ParamField body="max_employee_count" type="number" optional>
  Maximum employee count
</ParamField>

<ParamField body="funding_stage" type="string" optional>
  Latest funding stage, e.g. `"seed"`, `"series_a"`, `"series_b"`
</ParamField>

<ParamField body="tags" type="string[]" optional>
  Tags to filter by (max 50)
</ParamField>

<ParamField body="limit" type="number" default="10" optional>
  Max results, 1-100
</ParamField>

All filters are optional, but you should pass at least one.

```bash theme={null}
curl -X POST https://win.oneshotagent.com/v1/tools/research/company \
  -H "Content-Type: application/json" \
  -H "X-Payment-Proof: <signature>" \
  -d '{
    "industry": ["fintech"],
    "location": ["san francisco"],
    "funding_stage": "series_b",
    "limit": 25
  }'
```

### Response Structure

```json theme={null}
{
  "status": "completed",
  "result": {
    "results": [
      {
        "name": "Stripe",
        "domain": "stripe.com",
        "website": "https://stripe.com",
        "industry": "financial services",
        "employee_count": 8000,
        "size": "5001-10000",
        "location": "san francisco, california, united states",
        "founded": 2010,
        "headline": "Financial infrastructure for the internet",
        "description": "...",
        "tags": ["payments", "fintech"],
        "total_funding_raised": 2200000000,
        "latest_funding_stage": "series_i",
        "linkedin_url": "linkedin.com/company/stripe"
      }
    ],
    "total_found": 1,
    "filters": { "industry": ["fintech"], "location": ["san francisco"], "funding_stage": "series_b" }
  }
}
```

Fields that the data source does not have for a company come back as `null`.

## Company Enrichment

`POST /v1/tools/enrich/company`

Get the full profile of a single company from any one identifier.

<ParamField body="domain" type="string" optional>
  Company website domain (e.g. `stripe.com`)
</ParamField>

<ParamField body="name" type="string" optional>
  Company name
</ParamField>

<ParamField body="linkedin_url" type="string" optional>
  Company LinkedIn page URL
</ParamField>

<ParamField body="ticker" type="string" optional>
  Stock ticker symbol
</ParamField>

At least one of `domain`, `name`, `linkedin_url`, or `ticker` is required. `domain` gives the most reliable match.

```bash theme={null}
curl -X POST https://win.oneshotagent.com/v1/tools/enrich/company \
  -H "Content-Type: application/json" \
  -H "X-Payment-Proof: <signature>" \
  -d '{ "domain": "stripe.com" }'
```

### Response Structure

Same fields as a search result, nested under `company`, plus `naics` codes and `employee_count_by_country`.

```json theme={null}
{
  "status": "completed",
  "result": {
    "company": {
      "name": "Stripe",
      "domain": "stripe.com",
      "industry": "financial services",
      "employee_count": 8000,
      "location": "san francisco, california, united states",
      "naics": [{ "naics_code": "522320", "sector": "Finance and Insurance" }],
      "employee_count_by_country": { "united states": 5200, "ireland": 900 }
    }
  }
}
```

If no company matches, the job fails with `Company not found`.

## SDK

```typescript theme={null}
const search = await agent.companySearch({
  industry: ['fintech'],
  location: ['san francisco'],
  funding_stage: 'series_b',
  limit: 25,
});

const { company } = await agent.enrichCompany({ domain: 'stripe.com' });
```

See [Pricing](/pricing) for costs.
