# Company Intent

> Find and rank ICP candidates from demonstrated buying-intent signals.

- **Endpoint:** `POST https://api.nyne.ai/company/intent`
- **Group:** Company APIs (https://api.nyne.ai/documentation/company.md)
- **Auth:** `X-API-Key` + `X-API-Secret` headers
- **Mode:** Asynchronous - submit returns a `request_id` (normally with `202 Accepted`); poll `GET /company/intent?request_id=<request_id>` with the same auth headers until the endpoint reports a terminal response. Where supported, a `callback_url` can notify you when queued work finishes; follow this endpoint's retrieval notes.
- **HTML version:** https://api.nyne.ai/documentation/company/intent

Find people who have demonstrated interest in products similar to an `interest_company_domain`, then rank them as ICP candidates for an `icp_company_domain`. Both domains are required. The request is queued asynchronously and returns a `request_id`; poll or supply a `callback_url`. Results come back highest-score-first with a relevance reason, person details, and intent-signal counts. Credits are charged per ranked person returned; set `lite_lookup` for the faster, lower-cost lookup path. Callback delivery is best effort for this endpoint - keep the returned `request_id` and use `GET /company/intent` for the final result.

## Authentication

All `/person/*` and `/company/*` endpoints authenticate with an API key and secret sent as HTTP headers on every request: `X-API-Key` and `X-API-Secret`. Create keys from your Nyne.ai dashboard and keep the secret server-side. Rate limits: 100 requests/minute, 1,000 requests/hour. Full guide: https://api.nyne.ai/documentation/authentication.md

## Parameters

| Name | Type | Required | Description | Example |
| --- | --- | --- | --- | --- |
| `interest_company_domain` | string | **yes** | Domain for the company / product category used to find people with demonstrated interest in similar products. Max 255 chars. | "gong.io" |
| `icp_company_domain` | string | **yes** | Domain for the company used to rank candidate ICP fit. Max 255 chars. | "salesforce.com" |
| `max_results` | integer | no | Maximum ranked people to return. Range 1-1000, default 25. | 25 |
| `lite_lookup` | boolean | no | Use the lower-cost lite lookup option for broader demonstrated-interest signals. Defaults to `false`. Returns the same response shape. | false |
| `callback_url` | string | no | Public http(s) endpoint that receives the completed or failed payload. Localhost / private-network targets are rejected. | "https://example.com/webhook/company-intent" |

## Polling for the result

A newly queued submit normally returns `202 Accepted` with a `request_id`. Poll the same path until `status` is `completed` (results stay available afterwards). Where supported, pass a `callback_url` on the submit to receive a webhook when queued work finishes; keep the documented GET as a recovery and retrieval path:

```bash
curl "https://api.nyne.ai/company/intent?request_id=<request_id>" \
  -H "X-API-Key: YOUR_API_KEY" \
  -H "X-API-Secret: YOUR_API_SECRET"
```

## Credit usage

| Item | Credits | Condition |
| --- | --- | --- |
| Standard lookup | 10 | Charged per ranked person returned |
| Lite lookup | 5 | lite_lookup: true - fewer credits per ranked person returned |
| No results | 0 | No ranked people never burns per-result credits |

## Responses

| Code | Meaning |
| --- | --- |
| `202` | Request queued - poll the status endpoint with the returned request_id |
| `400` | missing_parameters / invalid_domain / invalid_limit / invalid_lite_lookup / invalid_callback_url / invalid_json |
| `401` | missing_credentials / invalid_credentials / api_key_expired |
| `402` | insufficient_credits |
| `403` | ip_not_allowed, subscription_required, or no_active_subscription |
| `404` | request_not_found (on status poll) |
| `429` | rate_limit_exceeded / monthly_limit_exceeded |
| `500` | internal_error |

## Example request

### cURL

```bash
curl -X POST https://api.nyne.ai/company/intent \
  -H "X-API-Key: YOUR_API_KEY" \
  -H "X-API-Secret: YOUR_API_SECRET" \
  -H "Content-Type: application/json" \
  -d '{
    "interest_company_domain": "gong.io",
    "icp_company_domain": "salesforce.com",
    "max_results": 25
  }'
```

### Python

```python
import requests

resp = requests.post(
    "https://api.nyne.ai/company/intent",
    headers={
        "X-API-Key": "YOUR_API_KEY",
        "X-API-Secret": "YOUR_API_SECRET",
    },
    json={
        "interest_company_domain": "gong.io",
        "icp_company_domain": "salesforce.com",
        "max_results": 25,
    },
)
data = resp.json()
print(data)
```

### Node

```javascript
const resp = await fetch("https://api.nyne.ai/company/intent", {
  method: "POST",
  headers: {
    "X-API-Key": "YOUR_API_KEY",
    "X-API-Secret": "YOUR_API_SECRET",
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    interest_company_domain: "gong.io",
    icp_company_domain: "salesforce.com",
    max_results: 25,
  }),
});
const data = await resp.json();
console.log(data);
```

### PHP

```php
<?php
$ch = curl_init("https://api.nyne.ai/company/intent");
curl_setopt_array($ch, [
  CURLOPT_POST => true,
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_HTTPHEADER => [
    "X-API-Key: YOUR_API_KEY",
    "X-API-Secret: YOUR_API_SECRET",
    "Content-Type: application/json",
  ],
  CURLOPT_POSTFIELDS => json_encode([
    "interest_company_domain" => "gong.io",
    "icp_company_domain" => "salesforce.com",
    "max_results" => 25,
  ]),
]);
$data = json_decode(curl_exec($ch), true);
print_r($data);
```

## Example response

```json
{
  "request_id": "65f6d9f92799d3c2a24123f4f13a7d7a_1700000123_5520",
  "status": "completed",
  "completed": true,
  "result": {
    "results": [
      {
        "score": 92,
        "score_reason": "Senior revenue leader with strong intent signals.",
        "displayname": "Jane Doe",
        "location": "San Francisco, CA",
        "organizations": [
          {
            "name": "Acme",
            "title": "VP Sales",
            "is_current": true
          }
        ],
        "social_profiles": {
          "linkedin": {
            "url": "https://linkedin.com/in/janedoe"
          }
        },
        "latest_interest_date": "2026-01-09",
        "intent_signals": {
          "signal_count": 3
        }
      }
    ],
    "total_results": 1
  },
  "completed_on": "2026-01-15T10:35:00Z"
}
```

---

All documentation pages are available as Markdown by appending `.md` to their URL. Index: https://api.nyne.ai/llms.txt
