# Company Funding API
> Retrieve comprehensive funding round information for companies including rounds, investors, amounts, and valuations from verified sources
**Base URL:** `https://api.nyne.ai`
**Endpoint:** `https://api.nyne.ai/company/funding`

---

## Overview
Retrieve comprehensive funding round information for companies from our proprietary database and verified sources. Returns funding rounds with dates, investors, amounts, and valuations aggregated from multiple trusted sources including Crunchbase, news articles, and SEC filings.
### What You Get
- **Funding Rounds:** Complete history of funding rounds with series type, dates, and amounts- **Investor Details:** Names and domains of investors for each round, including lead investors- **Valuations:** Post-money valuations when publicly available and verified- **Acquisition Data:** Acquisition details including acquirer, price, and type when applicable- **Data Sources:** Aggregated from Crunchbase, news articles, SEC filings, and press releases- **Use Cases:** Market research, competitive intelligence, investor analysis, and due diligence
## 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

- **Funding Lookup:** 8 credits per completed lookup
> Credits are charged when funding data is retrieved. If no funding information is found, no credits are charged.
---

## POST /company/fundingQueue a funding lookup for the specified company.
### Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `company_name` | string | No | Company name to search for (e.g., "Stripe", "OpenAI"). |
| `company_domain` | string | No | Company domain to search for (e.g., "stripe.com", "openai.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": "Stripe",
  "callback_url": "https://example.com/webhooks/funding"
}
```

### Code Examples

**cURL:**

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

**Python:**

```python
import requests
import json

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

data = {
    "company_name": "Stripe"
}

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/funding";
const headers = {
    "X-API-Key": "YOUR_API_KEY",
    "X-API-Secret": "YOUR_API_SECRET",
    "Content-Type": "application/json"
};

const data = {
    company_name: "Stripe"
};

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/funding";
$headers = [
    "X-API-Key: YOUR_API_KEY",
    "X-API-Secret: YOUR_API_SECRET",
    "Content-Type: application/json"
];

$data = [
    "company_name" => "Stripe"
];

$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 | Funding lookup queued successfully |
| 400 | Invalid request parameters |
| 401 | Invalid API credentials |
| 429 | Rate limit exceeded |

### Response Example

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

---

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

### Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `request_id` | string | Yes | Identifier returned by the POST call |

### Request Example

```
GET /company/funding?request_id=cofund_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": "cofund_64f2d8e4_1700000123",
    "status": "completed",
    "result": {
      "company_domain": "stripe.com",
      "funding_rounds": [
        {
          "series_type": "Series I",
          "funded_by": [
            {
              "name": "Thrive Capital",
              "domain": "thrivecap.com"
            },
            {
              "name": "General Catalyst",
              "domain": "generalcatalyst.com"
            }
          ],
          "funding_date": {
            "year": 2024,
            "month": 3,
            "day": 15
          },
          "amount": 6940000000,
          "currency": "USD",
          "valuation": 65000000000
        },
        {
          "series_type": "Series H",
          "funded_by": [
            {
              "name": "Sequoia Capital",
              "domain": "sequoiacap.com"
            }
          ],
          "funding_date": {
            "year": 2021,
            "month": 3,
            "day": 14
          },
          "amount": 600000000,
          "currency": "USD",
          "valuation": 95000000000
        },
        {
          "series_type": "Pre-Seed",
          "funded_by": [],
          "amount": 1000000,
          "amount_approximate": true,
          "currency": "USD"
        }
      ],
      "acquired": {
        "acquired_on": {
          "year": 2024,
          "month": 10,
          "day": 15
        },
        "acquired_by": "Microsoft",
        "acquired_by_domain": "microsoft.com",
        "purchase_price": 5000000000,
        "currency": "USD",
        "acquisition_type": "acquisition"
      }
    },
    "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)- The funding_rounds array is sorted by date (most recent first); empty array if no funding found- The acquired object is only present if the company was acquired; omitted entirely if not- The funded_by array can be empty if investors are not publicly disclosed- The amount_approximate flag is only present (and true) when the amount is estimated- All monetary amounts are numeric (e.g., 5000000000 for $5B), never formatted 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 |
| 403 | `subscription_required` | Account lacks enrichment access |
| 429 | `rate_limit_exceeded` | Usage limits exceeded |
| 429 | `monthly_limit_exceeded` | Monthly usage limit exceeded |
| 402 | `insufficient_credits` | Account has insufficient credits for this request |

---

## 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/funding
Content-Type: application/json

{
  "request_id": "cofund_64f2d8e4_1700000123",
  "status": "completed",
  "result": {
    "company_domain": "stripe.com",
    "funding_rounds": [
      {
        "series_type": "Series I",
        "funded_by": [
          {
            "name": "Thrive Capital",
            "domain": "thrivecap.com"
          }
        ],
        "funding_date": {
          "year": 2024,
          "month": 3,
          "day": 15
        },
        "amount": 6940000000,
        "currency": "USD"
      }
    ],
    "acquired": {
      "acquired_on": {
        "year": 2024,
        "month": 10,
        "day": 15
      },
      "acquired_by": "Microsoft",
      "acquired_by_domain": "microsoft.com",
      "purchase_price": 5000000000,
      "currency": "USD",
      "acquisition_type": "acquisition"
    }
  },
  "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 reliable match. Use the company's primary website domain (e.g., "stripe.com") for the highest accuracy.2. **Company Name** (Good) — Works well for uniquely named companies. For common names, combine with company_domain for best results.
---

## Note for AI Agents
When using this API in automated pipelines, prefer company_domain over company_name to avoid ambiguity with similarly named companies. Always validate the returned company_domain field against your expected target before processing funding data.
---

## Related APIs
- **Investor Lookup API** — Data on specific investors → `https://api.nyne.ai/documentation/company/funders`
- **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`