# Investor Lookup API
> Retrieve comprehensive information about investment firms, venture capital funds, angel investors, and other funding organizations
**Base URL:** `https://api.nyne.ai`
**Endpoint:** `https://api.nyne.ai/company/funders`

---

## Overview
The Investor Lookup API lets you retrieve comprehensive information about investment firms, venture capital funds, angel investors, and other funding organizations. Provide an investor name or domain and receive detailed investor profiles including partners, investment focus, check sizes, portfolio locations, and recent investments. Data is aggregated from Crunchbase, LinkedIn, official investor websites, news articles, and industry publications.
### What You Get
- **Investor Profile:** Official name, domain, and headquarters location- **Partners:** Up to 20 prominent partners with LinkedIn profile links- **Investment Thesis:** Investment focus, strategy, and target stages- **Check Size:** Typical low and high investment amounts with currency- **Investment Locations:** Top locations where portfolio companies are based- **Recent Investments:** Up to 5 most recent investments with company details and amounts
## Authentication

All requests require header authentication:

```
X-API-Key: YOUR_API_KEY
X-API-Secret: YOUR_API_SECRET
```

## Rate Limits

| Limit | Value |
|-------|-------|
| Per Minute | 60 requests |
| Per Hour | 1000 requests |
| Monthly | Varies by plan |

### Response Headers

Responses from endpoints that perform rate-limit checks include both legacy and standard rate-limit headers:

| Header | Description |
|--------|-------------|
| `X-RateLimit-Limit` | Active per-minute or per-hour limit |
| `X-RateLimit-Remaining` | Remaining requests in the active window |
| `X-RateLimit-Reset` | Unix timestamp when the active window resets |
| `RateLimit-Limit` | Active per-minute or per-hour limit |
| `RateLimit-Remaining` | Remaining requests in the active window |
| `RateLimit-Reset` | Seconds until the active window resets |
| `Retry-After` | Seconds to wait before retrying; present on HTTP `429` rate-limit responses |

Monthly quota responses include quota-specific headers when available:

| Header | Description |
|--------|-------------|
| `X-Quota-Limit` | Monthly request or credit limit |
| `X-Quota-Used` | Amount used in the current billing cycle |
| `X-Quota-Remaining` | Amount remaining in the current billing cycle |
| `X-Quota-Reset` | Unix timestamp when the current billing cycle resets |

## Credit Usage

- **Investor Lookup:** 20 credits per completed lookup (includes investor profile, partners, check size, and recent investments)
> Credits are only charged when investor data is retrieved. If no investor information is found, no credits are charged.
---

## POST /company/fundersQueue an investor lookup for the specified investor organization.
### Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `company_name` | string | No | Investor name to search for (e.g., "Y Combinator", "Sequoia Capital", "Andreessen Horowitz") |
| `company_domain` | string | No | Investor domain to search for (e.g., "ycombinator.com", "sequoiacap.com", "a16z.com") |
| `callback_url` | string | No | HTTPS URL to receive the completed payload automatically |

> **Required:** At least one of company_name or company_domain is required.
### Request Examples

**Basic Request:**

```json
{
  "company_name": "Y Combinator",
  "callback_url": "https://example.com/webhooks/funders"
}
```

### Code Examples

**cURL:**

```bash
curl -X POST https://api.nyne.ai/company/funders \
  -H "X-API-Key: YOUR_API_KEY" \
  -H "X-API-Secret: YOUR_API_SECRET" \
  -H "Content-Type: application/json" \
  -d '{
    "company_name": "Sequoia Capital"
  }'
```

**Python:**

```python
import requests
import json

url = "https://api.nyne.ai/company/funders"
headers = {
    "X-API-Key": "YOUR_API_KEY",
    "X-API-Secret": "YOUR_API_SECRET",
    "Content-Type": "application/json"
}

data = {
    "company_name": "Sequoia Capital"
}

response = requests.post(url, headers=headers, json=data)
result = response.json()
print(json.dumps(result, indent=2))
```

**JavaScript:**

```javascript
const url = "https://api.nyne.ai/company/funders";
const headers = {
    "X-API-Key": "YOUR_API_KEY",
    "X-API-Secret": "YOUR_API_SECRET",
    "Content-Type": "application/json"
};

const data = {
    company_name: "Sequoia Capital"
};

fetch(url, {
    method: "POST",
    headers: headers,
    body: JSON.stringify(data)
})
.then(response => response.json())
.then(result => console.log(result))
.catch(error => console.error("Error:", error));
```

**PHP:**

```php
<?php
$url = "https://api.nyne.ai/company/funders";
$headers = [
    "X-API-Key: YOUR_API_KEY",
    "X-API-Secret: YOUR_API_SECRET",
    "Content-Type: application/json"
];

$data = [
    "company_name" => "Sequoia Capital"
];

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

$response = curl_exec($ch);
$result = json_decode($response, true);
curl_close($ch);

echo json_encode($result, JSON_PRETTY_PRINT);
?>
```

### Response Codes

| Code | Description |
|------|-------------|
| 200 | Investor lookup queued successfully |
| 400 | Invalid request parameters |
| 401 | Invalid API credentials |
| 429 | Rate limit exceeded |

### Response Example

```json
{
  "success": true,
  "data": {
    "request_id": "cofunders_64f2d8e4_1700000123",
    "status": "queued",
    "message": "Investors lookup queued. Use GET /company/funders?request_id=... to check status.",
    "callback_url": "https://example.com/webhooks/funders"
  },
  "timestamp": "2025-11-10T22:20:03Z"
}
```

---

## GET /company/funders
Check the status of a request.

### Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `request_id` | string | Yes | The request ID returned from the POST call |

### Request Example

```
GET /company/funders?request_id=cofunders_64f2d8e4_1700000123
```

### Response Codes

| Code | Description |
|------|-------------|
| 200 | Status retrieved successfully |
| 400 | Invalid request parameters |
| 401 | Invalid API credentials |
| 404 | Request ID not found |

### Response Example

```json
{
  "success": true,
  "data": {
    "request_id": "cofunders_64f2d8e4_1700000123",
    "status": "completed",
    "result": {
      "investor_domain": "ycombinator.com",
      "investor_name": "Y Combinator",
      "partners": [
        {
          "name": "Paul Graham",
          "linkedin_url": "https://www.linkedin.com/in/paulgraham/"
        },
        {
          "name": "Jessica Livingston",
          "linkedin_url": "https://www.linkedin.com/in/jessicalivingston/"
        }
      ],
      "location": "Mountain View, CA, US",
      "investment_thesis": "Y Combinator invests in early-stage startups at the idea stage, providing seed funding and mentorship.",
      "average_check_size": {
        "low": 125000,
        "high": 500000,
        "currency": "USD"
      },
      "rounds_they_invest_in": ["pre_seed", "seed"],
      "investment_locations": [
        {"city": "San Francisco", "state": "CA", "country": "US"},
        {"city": "New York", "state": "NY", "country": "US"}
      ],
      "recent_investments": [
        {
          "company_name": "Example Startup",
          "company_domain": "example.com",
          "amount": 500000,
          "currency": "USD",
          "date": {"year": 2024, "month": 6, "day": 15}
        }
      ]
    },
    "created_on": "2025-11-10T22:20:03Z",
    "completed_on": "2025-11-10T22:20:17Z"
  },
  "timestamp": "2025-11-10T22:20:17Z"
}
```

---

## Response Format

All API responses follow a consistent JSON format. All fields in enrichment results are **optional** and only included when data is available:
- If a field has no data, it will be omitted from the response (not included as null or empty string)- Arrays are only included if they contain at least one item- Objects are only included if they contain at least one field- The partners array contains up to 20 entries; each must have a name- The investment_locations array contains up to 5 entries- The recent_investments array contains up to 5 entries- Monetary amounts (low, high, amount) are always numbers when present, never strings
---

## Error Codes

| HTTP Code | Error Code | Description |
|-----------|------------|-------------|
| 400 | `missing_parameters` | Both company_name and company_domain omitted |
| 400 | `invalid_callback_url` | Callback URL must be HTTPS |
| 401 | `invalid_credentials` | API key or secret is incorrect |
| 403 | `subscription_required` | Account lacks enrichment access |
| 404 | `request_not_found` | Request ID not found (for status checks) |
| 429 | `rate_limit_exceeded` | Rate limit exceeded |
| 429 | `monthly_limit_exceeded` | Monthly usage limit exceeded |
| 402 | `insufficient_credits` | Account has insufficient credits for this request |
| 500 | `internal_error` | Internal server error |

---

## Callbacks

When you provide a `callback_url`, the API sends results to your endpoint via HTTP POST.

### Retry Policy- Maximum 5 retry attempts- Exponential backoff: 1s, 5s, 15s, 1m, 5m- 30-second timeout per request- Your endpoint should return HTTP 2xx for success
Your callback endpoint should respond with HTTP 200-299. Any other code triggers a retry.

### Callback Payload Example

```json
POST https://example.com/webhooks/funders
Content-Type: application/json

{
  "request_id": "cofunders_64f2d8e4_1700000123",
  "status": "completed",
  "result": {
    "investor_domain": "ycombinator.com",
    "investor_name": "Y Combinator",
    "partners": [
      {
        "name": "Paul Graham",
        "linkedin_url": "https://www.linkedin.com/in/paulgraham/"
      }
    ],
    "location": "Mountain View, CA, US",
    "investment_thesis": "Y Combinator invests in early-stage startups at the idea stage.",
    "average_check_size": {
      "low": 125000,
      "high": 500000,
      "currency": "USD"
    },
    "rounds_they_invest_in": ["pre_seed", "seed"],
    "investment_locations": [
      {"city": "San Francisco", "state": "CA", "country": "US"}
    ],
    "recent_investments": [
      {
        "company_name": "Example Startup",
        "company_domain": "example.com",
        "amount": 500000,
        "currency": "USD",
        "date": {"year": 2024, "month": 6, "day": 15}
      }
    ]
  },
  "created_at": "2025-11-10T22:20:03Z",
  "completed_at": "2025-11-10T22:20:17Z"
}
```

---

## Best Practices

Prioritize inputs in this order for best match rates:
1. **Company Domain** (Best) — Provides the most accurate match. Use the investor's primary website domain (e.g., "sequoiacap.com", "a16z.com").2. **Company Name** (Good) — Works well for well-known investors. Use the official name for best results (e.g., "Sequoia Capital" instead of "Sequoia").
---

## Note for AI Agents
The Investor Lookup API is well-suited for automated workflows. AI agents should provide the investor domain when available for the most reliable results. When only a name is available, use the full official investor name to avoid ambiguity.
---

## Related APIs
- **Company Funding API** — Company funding rounds → `https://api.nyne.ai/documentation/company/funding`
- **Company Enrichment API** — Full company profile → `https://api.nyne.ai/documentation/company/enrichment`
- **Company Search API** — Find companies by criteria → `https://api.nyne.ai/documentation/company/search`