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

# Company Profiles

> Check how many employee profiles are available and retrieve them via callback.

The Company Profiles API consists of two endpoints: one to check the available profile count for a company, and one to retrieve those profiles via an async callback.

This is particularly useful when needing to fetch all employees of a specific company by its exact ID or slug — unlike the Search API which filters by company name (a non-unique string), this endpoint works with the unique LinkedIn company ID or slug from [Find Company](/company-api/find-company).

## Get Profile Count

Check how many profiles are associated with a company by employment status — no credits consumed.

**Endpoint:** `GET https://www.signalhire.com/api/v1/company/getCount`

<ParamField header="apikey" type="string" required>
  Secret API key.
</ParamField>

<ParamField query="id" type="string" required>
  Company ID (numeric) or company slug.
</ParamField>

<ParamField query="status" type="string" required>
  Employment status filter. Possible values: `current`, `past`, `both`.
</ParamField>

### Request Example

```bash theme={null}
curl -X GET \
  -H 'apikey: your_secret_api_key' \
  'https://www.signalhire.com/api/v1/company/getCount?id=1033&status=both'
```

### Response Example (HTTP 200)

```json theme={null}
{
  "total_profiles": 2
}
```

<ParamField body="total_profiles" type="integer">
  Total number of profiles matching the status filter.
</ParamField>

***

## Get Profiles

Fetch employee profiles for a company asynchronously via callback.

**Endpoint:** `GET https://www.signalhire.com/api/v1/company/getProfiles`

<ParamField header="apikey" type="string" required>
  Secret API key.
</ParamField>

<ParamField query="id" type="string" required>
  Company ID (numeric) or company slug.
</ParamField>

<ParamField query="status" type="string" required>
  Employment status filter. Possible values: `current`, `past`, `both`.
</ParamField>

<ParamField query="callbackUrl" type="string" required>
  URL where results will be POSTed once processing is complete. Same callback format and delivery rules as [Person API callbacks](/person-api/retrieve-person#callback-delivery).
</ParamField>

### How It Works

1. The request returns a `searchId` immediately with HTTP `200`
2. Profiles are delivered to the `callbackUrl` in batches of up to **100 profiles per callback**
3. Each profile delivered counts as one view against your **daily profile-view quota** — the same quota shared with the SignalHire website. The quota varies by plan, up to **2000 profiles/day**; if the company has more profiles than your remaining quota, the request is rejected with HTTP `429` — contact [support@signalhire.com](mailto:support@signalhire.com) if a higher limit is needed.
4. Profiles are returned **without contact details** (no emails or phone numbers)
   To subsequently retrieve contact details for specific profiles, pass their `uid` values to the [Person API](/person-api/retrieve-person), which consumes standard credits.

### Request Example

```bash theme={null}
curl -X GET \
  -H 'apikey: your_secret_api_key' \
  'https://www.signalhire.com/api/v1/company/getProfiles?id=accenture&status=both&callbackUrl=https://yourdomain.com/callback'
```

### Response Example (HTTP 200)

```json theme={null}
{
  "searchId": 1
}
```

Results are delivered to the `callbackUrl` as an array of profile objects without contact details.

### Response Codes

| Code  | Description                                              |
| ----- | -------------------------------------------------------- |
| `200` | Request accepted. Results will be sent to `callbackUrl`. |
| `429` | Daily profile-view quota exhausted.                      |
| `403` | Company API access not enabled for this account.         |
