# Fundable — Orthogonal API
> Pay-per-use API on Orthogonal. Each call is billed to your Orthogonal balance.
> Base API: `https://api.orthogonal.com/v1/run` · [llms.txt](https://orthogonal.com/llms.txt) · [browse all APIs](https://orthogonal.com/discover)
Real-time venture capital deals, startup, and investor data. Search funding rounds, discover companies, analyze investors, and track deal flow with advanced filtering and AI-powered semantic search.
**Verified:** yes
## Access
**Run API:** `POST https://api.orthogonal.com/v1/run`
**Auth:** `Authorization: Bearer $ORTHOGONAL_API_KEY`
Get an API key at https://orthogonal.com/dashboard/settings/api-keys
Every call goes through the unified Run API: send the API `slug`, the endpoint `path`, and the `query`/`body` parameters. The response is `{ "success": true, "price": "<usd>", "data": { ... } }`.
## Endpoints
### Search Industries
Search for industry permalinks to filter by
`GET /industry/search`
**Cost:** Free
| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `name` | string | Yes | Industry name to search for |
| `type` | string | No | Filter by type: INDUSTRY or SUPER_CATEGORY |
```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
-H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
-H 'Content-Type: application/json' \
-d '{"api":"fundable","path":"/industry/search","method":"GET","query":{"name":"<string>","type":"<string>"}}'
```
### Search Locations
Search for location permalinks to filter by
`GET /location/search`
**Cost:** Free
| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `name` | string | Yes | Location name to search for |
| `type` | string | No | Filter by type: CITY, STATE, REGION, or COUNTRY |
```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
-H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
-H 'Content-Type: application/json' \
-d '{"api":"fundable","path":"/location/search","method":"GET","query":{"name":"<string>","type":"<string>"}}'
```
### Get Deal
Get funding round by id
`GET /deals/{id}`
**Estimated cost:** $0.06
| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `id` | string | Yes | Path parameter — substitute directly into the endpoint `path`. |
| `id` | string | Yes | Deal UUID (path parameter) |
```bash
# Replace {id} in "path" with real values before sending
curl -X POST 'https://api.orthogonal.com/v1/run' \
-H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
-H 'Content-Type: application/json' \
-d '{"api":"fundable","path":"/deals/{id}","method":"GET","query":{"id":"<string>"}}'
```
### Get Investor
Get investor by id
`GET /investor`
**Estimated cost:** $0.06
| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `id` | string | No | Investor UUID |
| `domain` | string | No | Investor domain or URL |
| `linkedin` | string | No | LinkedIn company URL |
| `crunchbase` | string | No | Crunchbase organization URL |
```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
-H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
-H 'Content-Type: application/json' \
-d '{"api":"fundable","path":"/investor","method":"GET","query":{"id":"<string>","domain":"<string>","linkedin":"<string>","crunchbase":"<string>"}}'
```
### Get Company
Get company by id, includes latest funding round
`GET /company`
**Estimated cost:** $0.06
| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `id` | string | No | Company UUID |
| `domain` | string | No | Company domain or URL (e.g. stripe.com) |
| `linkedin` | string | No | LinkedIn company URL |
| `crunchbase` | string | No | Crunchbase organization URL |
```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
-H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
-H 'Content-Type: application/json' \
-d '{"api":"fundable","path":"/company","method":"GET","query":{"id":"<string>","domain":"<string>","linkedin":"<string>","crunchbase":"<string>"}}'
```
### Search Investors
Search for an investor id using fuzzy match or other identifiers
`GET /investor/search`
**Estimated cost:** $0.01
| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `name` | string | No | Fuzzy search by investor name |
| `domain` | string | No | Exact match by investor domain |
| `linkedin` | string | No | Match by LinkedIn company URL |
| `crunchbase` | string | No | Match by Crunchbase organization URL |
```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
-H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
-H 'Content-Type: application/json' \
-d '{"api":"fundable","path":"/investor/search","method":"GET","query":{"name":"<string>","domain":"<string>","linkedin":"<string>","crunchbase":"<string>"}}'
```
### Get Deal Investors
Get investors in a funding round by id
`GET /deals/{id}/investors`
**Estimated cost:** $0.06
| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `id` | string | Yes | Path parameter — substitute directly into the endpoint `path`. |
| `id` | string | Yes | Deal UUID (path parameter) |
```bash
# Replace {id} in "path" with real values before sending
curl -X POST 'https://api.orthogonal.com/v1/run' \
-H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
-H 'Content-Type: application/json' \
-d '{"api":"fundable","path":"/deals/{id}/investors","method":"GET","query":{"id":"<string>"}}'
```
### Search Companies
Search for company id using fuzzy match or other identifiers
`GET /company/search`
**Estimated cost:** $0.01
| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `name` | string | No | Fuzzy search by company name |
| `domain` | string | No | Exact match by company domain |
| `linkedin` | string | No | Match by LinkedIn company URL |
| `crunchbase` | string | No | Match by Crunchbase organization URL |
```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
-H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
-H 'Content-Type: application/json' \
-d '{"api":"fundable","path":"/company/search","method":"GET","query":{"name":"<string>","domain":"<string>","linkedin":"<string>","crunchbase":"<string>"}}'
```
### List Investors
Search for investors using filters Pagination: page is 0-based (0, 1, 2, ...). Every page is a separate billable request priced on the results it returns. page_size (1-500) sets the maximum cost of a call.
`POST /investors`
**Estimated cost:** Dynamic — use `"dryRun": true` in the Run API request to check the exact cost before calling.
| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `identifiers` | object | No | Lookup by ids, domains, linkedin_urls, crunchbase_urls (max 100 each) |
| `investor` | object | No | Investor entity filters: locations, employee_count |
| `company_investments` | object | No | Portfolio filters: company_ids, industries, super_categories, locations, employee_count, ipo_status, total_raised_min/max, financing_types, deal_size_min/max, deal_start_date, deal_end_date, only_lead_deals, min_matching_deals |
| `page` | number | No | Page number (0-based, default 0). Each page is a separate billable request priced on the results it returns; call again with the next page number for more results. |
| `page_size` | number | No | Results per page (1-500, default 10). Billing is per returned result, so page_size sets the maximum cost of this call. |
| `sort_by` | string | No | Sort order: most_recent_deal, oldest_deal, most_deals, fewest_deals |
```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
-H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
-H 'Content-Type: application/json' \
-d '{"api":"fundable","path":"/investors","body":{"identifiers":"<object>","investor":"<object>","company_investments":"<object>","page":"<number>","page_size":"<number>","sort_by":"<string>"}}'
```
### List Companies
Search for companies using filters, includes latest funding round Pagination: page is 0-based (0, 1, 2, ...). Every page is a separate billable request priced on the results it returns. page_size (1-500) sets the maximum cost of a call.
`POST /companies`
**Estimated cost:** Dynamic — use `"dryRun": true` in the Run API request to check the exact cost before calling.
| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `identifiers` | object | No | Lookup by ids, domains, linkedin_urls, or crunchbase_urls (max 100 each). Domain lookups go HERE as an array, e.g. {"domains":["ramp.com"]}. There is no top-level `domain` field — sending one returns 422 "Unknown field: domain". |
| `company` | object | No | Company filters: search_query (AI semantic search), min_relevance, locations, industries, super_categories, employee_count, total_raised_min, total_raised_max, ipo_status |
| `latest_deal` | object | No | Latest funding round filters: financing_types, size_min, size_max, date_start, date_end, investor_ids |
| `investors` | object | No | Filter by investors across all rounds: investor_ids |
| `page` | number | No | Page number (0-based, default 0). Each page is a separate billable request priced on the results it returns; call again with the next page number for more results. |
| `page_size` | number | No | Results per page (1-500, default 10). Billing is per returned result, so page_size sets the maximum cost of this call. |
| `sort_by` | string | No | Sort order: most_recent_raise, oldest_raise, most_recent_founded, oldest_founded, largest_valuation, smallest_valuation, largest_total_raise, smallest_total_raise, most_funding_rounds, most_investors. Ignored when search_query is provided (sorted by relevance). |
```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
-H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
-H 'Content-Type: application/json' \
-d '{"api":"fundable","path":"/companies","body":{"identifiers":"<object>","company":"<object>","latest_deal":"<object>","investors":"<object>","page":"<number>","page_size":"<number>","sort_by":"<string>"}}'
```
### Search Deals
Search for funding rounds using filters Pagination: page is 0-based (0, 1, 2, ...). Every page is a separate billable request priced on the results it returns. page_size (1-500) sets the maximum cost of a call.
`POST /deals`
**Estimated cost:** Dynamic — use `"dryRun": true` in the Run API request to check the exact cost before calling.
| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `identifiers` | object | No | Look up specific deals by UUID. Contains deal_ids array. |
| `deal` | object | No | Deal filters: financing_types (array of {type, pre, extension}), size_min, size_max, date_start, date_end, created_start, created_end |
| `company` | object | No | Company filters: company_ids, locations, industries, super_categories, employee_count, total_raised_min, total_raised_max, ipo_status |
| `investors` | object | No | Investor filters: investor_ids array |
| `page` | number | No | Page number (0-based, default 0). Each page is a separate billable request priced on the results it returns; call again with the next page number for more results. |
| `page_size` | number | No | Results per page (1-500, default 10). Billing is per returned result, so page_size sets the maximum cost of this call. |
| `sort_by` | string | No | Sort order: most_recent_deal, oldest_deal, largest_raise, smallest_raise |
```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
-H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
-H 'Content-Type: application/json' \
-d '{"api":"fundable","path":"/deals","body":{"identifiers":"<object>","deal":"<object>","company":"<object>","investors":"<object>","page":"<number>","page_size":"<number>","sort_by":"<string>"}}'
```
### Get Investor Deals
Get investment firm's portfolio of investments Pagination: page is 0-based (0, 1, 2, ...). Every page is a separate billable request priced on the results it returns. page_size (1-500) sets the maximum cost of a call.
`GET /investor/deals`
**Estimated cost:** Dynamic — use `"dryRun": true` in the Run API request to check the exact cost before calling.
| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `id` | string | No | Investor UUID |
| `domain` | string | No | Investor domain or URL |
| `linkedin` | string | No | LinkedIn company URL |
| `crunchbase` | string | No | Crunchbase organization URL |
| `page` | number | No | Page number (0-based, default 0). Each page is a separate billable request priced on the results it returns; call again with the next page number for more results. |
| `page_size` | number | No | Results per page (1-500, default 10). Billing is per returned result, so page_size sets the maximum cost of this call. |
```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
-H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
-H 'Content-Type: application/json' \
-d '{"api":"fundable","path":"/investor/deals","method":"GET","query":{"id":"<string>","domain":"<string>","linkedin":"<string>","crunchbase":"<string>","page":"<number>","page_size":"<number>"}}'
```
### Get Company Deals
Get entire funding history for a company Pagination: page is 0-based (0, 1, 2, ...). Every page is a separate billable request priced on the results it returns. page_size (1-500) sets the maximum cost of a call.
`GET /company/deals`
**Estimated cost:** Dynamic — use `"dryRun": true` in the Run API request to check the exact cost before calling.
| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `id` | string | No | Company UUID |
| `domain` | string | No | Company domain or URL |
| `linkedin` | string | No | LinkedIn company URL |
| `crunchbase` | string | No | Crunchbase organization URL |
| `page` | number | No | Page number (0-based, default 0). Each page is a separate billable request priced on the results it returns; call again with the next page number for more results. |
| `page_size` | number | No | Results per page (1-500, default 10). Billing is per returned result, so page_size sets the maximum cost of this call. |
```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
-H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
-H 'Content-Type: application/json' \
-d '{"api":"fundable","path":"/company/deals","method":"GET","query":{"id":"<string>","domain":"<string>","linkedin":"<string>","crunchbase":"<string>","page":"<number>","page_size":"<number>"}}'
```
---
Full details and an interactive quickstart: https://orthogonal.com/discover/fundable