curl --request GET \
--url https://www.tryfundable.ai/api/v1/investor/deals \
--header 'Authorization: Bearer <token>'import requests
url = "https://www.tryfundable.ai/api/v1/investor/deals"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://www.tryfundable.ai/api/v1/investor/deals', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://www.tryfundable.ai/api/v1/investor/deals",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://www.tryfundable.ai/api/v1/investor/deals"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://www.tryfundable.ai/api/v1/investor/deals")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://www.tryfundable.ai/api/v1/investor/deals")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"success": true,
"data": {
"deals": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"company_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"investor_ids": [
"3c90c3cc-0d44-4b50-8888-8dd25736052a"
],
"angel_investor_ids": [
"3c90c3cc-0d44-4b50-8888-8dd25736052a"
],
"financings": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"type": "<string>",
"size_usd": 123,
"size_native": 123,
"currency": "<string>"
}
],
"round_type": "<string>",
"extension": true,
"intermediate": "<string>",
"pre": true,
"date": "2023-11-07T05:31:56Z",
"created_at": "2023-11-07T05:31:56Z",
"total_round_raised": 123,
"deal_descriptions": {
"short_description": "<string>",
"long_description": "<string>"
},
"valuation": {
"valuation_currency": "<string>",
"valuation_usd": 123,
"valuation_native": 123,
"type": "<string>"
}
}
]
},
"meta": {
"total_count": 247,
"page": 0,
"page_size": 10,
"credits_used": 10,
"credit_source": "monthly",
"monthly_credits_remaining": 990,
"purchased_credits_remaining": 500
}
}{
"success": false,
"error": {
"code": "MISSING_IDENTIFIER",
"message": "An identifier parameter is required",
"details": {
"help": "Provide one of: domain, linkedin, or crunchbase. Example: ?domain=sequoiacap.com"
}
}
}{
"error": {
"code": "AUTH_ERROR",
"message": "API key not provided",
"details": {
"help": "Please provide your API key in the Authorization header",
"format": "Bearer vg_your_api_key_here"
}
}
}{
"error": {
"code": "INSUFFICIENT_CREDITS",
"message": "Not enough credits to complete this request. Visit https://www.tryfundable.ai/api-access to purchase more.",
"details": {
"credits_needed": 25,
"monthly_credits_remaining": 0,
"purchased_credits_remaining": 0,
"help": "Purchase additional credits at https://www.tryfundable.ai/api-access or upgrade your plan."
}
},
"success": false
}{
"success": false,
"error": {
"code": "NOT_FOUND",
"message": "No investor found matching the provided identifier",
"details": {
"identifier_type": "domain",
"identifier_value": "nonexistent.com"
}
}
}{
"error": {
"code": "RATE_LIMIT_EXCEEDED",
"message": "Rate limit exceeded. Maximum 200 requests per minute.",
"details": {
"limit": 200,
"window": "60 seconds",
"help": "Please reduce your request frequency and try again."
}
},
"success": false
}{
"error": {
"code": "INTERNAL_SERVER_ERROR",
"message": "An unexpected error occurred",
"details": "<string>"
}
}Get Investor Deals
Retrieve all deals for an investor using any supported identifier format. The API intelligently detects the identifier type and queries accordingly.
Provide ONE of the following query parameters to identify the investor:
id- Investor UUIDdomain- Investor domain or full URL (e.g., “sequoiacap.com” or “https://sequoiacap.com”)linkedin- LinkedIn company URLcrunchbase- Crunchbase organization URL
The response includes the investor’s deals with pagination. If the identifier matches multiple investors (e.g., a16z has multiple firms), deals from all matches are returned together.
curl --request GET \
--url https://www.tryfundable.ai/api/v1/investor/deals \
--header 'Authorization: Bearer <token>'import requests
url = "https://www.tryfundable.ai/api/v1/investor/deals"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://www.tryfundable.ai/api/v1/investor/deals', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://www.tryfundable.ai/api/v1/investor/deals",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://www.tryfundable.ai/api/v1/investor/deals"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://www.tryfundable.ai/api/v1/investor/deals")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://www.tryfundable.ai/api/v1/investor/deals")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"success": true,
"data": {
"deals": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"company_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"investor_ids": [
"3c90c3cc-0d44-4b50-8888-8dd25736052a"
],
"angel_investor_ids": [
"3c90c3cc-0d44-4b50-8888-8dd25736052a"
],
"financings": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"type": "<string>",
"size_usd": 123,
"size_native": 123,
"currency": "<string>"
}
],
"round_type": "<string>",
"extension": true,
"intermediate": "<string>",
"pre": true,
"date": "2023-11-07T05:31:56Z",
"created_at": "2023-11-07T05:31:56Z",
"total_round_raised": 123,
"deal_descriptions": {
"short_description": "<string>",
"long_description": "<string>"
},
"valuation": {
"valuation_currency": "<string>",
"valuation_usd": 123,
"valuation_native": 123,
"type": "<string>"
}
}
]
},
"meta": {
"total_count": 247,
"page": 0,
"page_size": 10,
"credits_used": 10,
"credit_source": "monthly",
"monthly_credits_remaining": 990,
"purchased_credits_remaining": 500
}
}{
"success": false,
"error": {
"code": "MISSING_IDENTIFIER",
"message": "An identifier parameter is required",
"details": {
"help": "Provide one of: domain, linkedin, or crunchbase. Example: ?domain=sequoiacap.com"
}
}
}{
"error": {
"code": "AUTH_ERROR",
"message": "API key not provided",
"details": {
"help": "Please provide your API key in the Authorization header",
"format": "Bearer vg_your_api_key_here"
}
}
}{
"error": {
"code": "INSUFFICIENT_CREDITS",
"message": "Not enough credits to complete this request. Visit https://www.tryfundable.ai/api-access to purchase more.",
"details": {
"credits_needed": 25,
"monthly_credits_remaining": 0,
"purchased_credits_remaining": 0,
"help": "Purchase additional credits at https://www.tryfundable.ai/api-access or upgrade your plan."
}
},
"success": false
}{
"success": false,
"error": {
"code": "NOT_FOUND",
"message": "No investor found matching the provided identifier",
"details": {
"identifier_type": "domain",
"identifier_value": "nonexistent.com"
}
}
}{
"error": {
"code": "RATE_LIMIT_EXCEEDED",
"message": "Rate limit exceeded. Maximum 200 requests per minute.",
"details": {
"limit": 200,
"window": "60 seconds",
"help": "Please reduce your request frequency and try again."
}
},
"success": false
}{
"error": {
"code": "INTERNAL_SERVER_ERROR",
"message": "An unexpected error occurred",
"details": "<string>"
}
}Authorizations
API key authentication using Bearer token format.
Format: Authorization: Bearer vg_your_api_key_here
API keys follow the pattern: vg_[12_hex_chars]_[32_base64url_chars]
Query Parameters
Investor UUID
Investor domain or full URL (e.g., "sequoiacap.com" or "https://sequoiacap.com") — URLs are automatically parsed to extract the domain
LinkedIn company URL
Crunchbase organization URL
Page number (0-based)
x >= 0Number of results per page (1-500)
1 <= x <= 500
