LP fund positions
curl --request GET \
--url https://api.originalis.ai/api/v1/funds/positions \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.originalis.ai/api/v1/funds/positions"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.originalis.ai/api/v1/funds/positions', 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://api.originalis.ai/api/v1/funds/positions",
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://api.originalis.ai/api/v1/funds/positions"
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://api.originalis.ai/api/v1/funds/positions")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.originalis.ai/api/v1/funds/positions")
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{
"scope": "org",
"positions": [
{
"commitment_id": "2b3c4d5e-6f7a-4b8c-9d0e-1f2a3b4c5d6e",
"fund_name": "Alpha Ventures III",
"gp_firm_name": "Alpha Ventures",
"vintage_year": 2021,
"strategy_type": "venture",
"currency": "USD",
"status": "active",
"vehicle_kind": "fund",
"commitment_amount": 10000000,
"called_capital": 9000000,
"distributed_capital": 1700000,
"nav": 11000000,
"as_of_date": "2026-06-30",
"unfunded_amount": 1000000,
"tvpi": 1.41,
"dpi": 0.19,
"cashflow_count": 14,
"last_cashflow_date": "2026-05-01",
"attention": []
},
{
"commitment_id": "7a8b9c0d-1e2f-4a3b-8c4d-5e6f7a8b9c0d",
"fund_name": "Beta Growth I",
"gp_firm_name": "Beta Capital",
"vintage_year": 2023,
"strategy_type": null,
"currency": "USD",
"status": "active",
"vehicle_kind": "spv",
"commitment_amount": 5000000,
"called_capital": null,
"distributed_capital": null,
"nav": null,
"as_of_date": null,
"unfunded_amount": null,
"tvpi": null,
"dpi": null,
"cashflow_count": 0,
"last_cashflow_date": null,
"attention": [
"no_mark_reported",
"no_cashflow_schedule",
"called_unknown"
]
}
],
"totals": {
"fund_count": 2,
"manager_count": 2,
"oldest_vintage_year": 2021,
"total_committed": 15000000,
"total_called": 9000000,
"total_distributed": 1700000,
"total_nav": 11000000,
"total_unfunded": 1000000,
"book_tvpi": 1.41,
"book_dpi": 0.19,
"positions_with_called": 1,
"positions_with_nav": 1,
"positions_with_distributed": 1
},
"as_of": "2026-09-02"
}{
"detail": "Invalid or revoked API key."
}{
"detail": "This API key's user does not belong to an organization. Ask your firm admin to add the user to your Originalis org."
}{
"detail": "Daily request limit reached (5,000 requests per key). The limit resets at UTC midnight."
}{
"detail": "API key verification is temporarily unavailable. Retry shortly."
}public-funds-v1
LP fund positions
The org’s LP book: every fund commitment with derived economics.
One call returns the whole book (LP books are small — no pagination):
per-position commitment/called/distributed/NAV with TVPI/DPI where the
inputs exist, data-quality attention flags, and book totals with
explicit coverage counts.
GET
/
api
/
v1
/
funds
/
positions
LP fund positions
curl --request GET \
--url https://api.originalis.ai/api/v1/funds/positions \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.originalis.ai/api/v1/funds/positions"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.originalis.ai/api/v1/funds/positions', 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://api.originalis.ai/api/v1/funds/positions",
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://api.originalis.ai/api/v1/funds/positions"
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://api.originalis.ai/api/v1/funds/positions")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.originalis.ai/api/v1/funds/positions")
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{
"scope": "org",
"positions": [
{
"commitment_id": "2b3c4d5e-6f7a-4b8c-9d0e-1f2a3b4c5d6e",
"fund_name": "Alpha Ventures III",
"gp_firm_name": "Alpha Ventures",
"vintage_year": 2021,
"strategy_type": "venture",
"currency": "USD",
"status": "active",
"vehicle_kind": "fund",
"commitment_amount": 10000000,
"called_capital": 9000000,
"distributed_capital": 1700000,
"nav": 11000000,
"as_of_date": "2026-06-30",
"unfunded_amount": 1000000,
"tvpi": 1.41,
"dpi": 0.19,
"cashflow_count": 14,
"last_cashflow_date": "2026-05-01",
"attention": []
},
{
"commitment_id": "7a8b9c0d-1e2f-4a3b-8c4d-5e6f7a8b9c0d",
"fund_name": "Beta Growth I",
"gp_firm_name": "Beta Capital",
"vintage_year": 2023,
"strategy_type": null,
"currency": "USD",
"status": "active",
"vehicle_kind": "spv",
"commitment_amount": 5000000,
"called_capital": null,
"distributed_capital": null,
"nav": null,
"as_of_date": null,
"unfunded_amount": null,
"tvpi": null,
"dpi": null,
"cashflow_count": 0,
"last_cashflow_date": null,
"attention": [
"no_mark_reported",
"no_cashflow_schedule",
"called_unknown"
]
}
],
"totals": {
"fund_count": 2,
"manager_count": 2,
"oldest_vintage_year": 2021,
"total_committed": 15000000,
"total_called": 9000000,
"total_distributed": 1700000,
"total_nav": 11000000,
"total_unfunded": 1000000,
"book_tvpi": 1.41,
"book_dpi": 0.19,
"positions_with_called": 1,
"positions_with_nav": 1,
"positions_with_distributed": 1
},
"as_of": "2026-09-02"
}{
"detail": "Invalid or revoked API key."
}{
"detail": "This API key's user does not belong to an organization. Ask your firm admin to add the user to your Originalis org."
}{
"detail": "Daily request limit reached (5,000 requests per key). The limit resets at UTC midnight."
}{
"detail": "API key verification is temporarily unavailable. Retry shortly."
}Authorizations
ApiKeyBearerApiKeyHeader
An Originalis API key: Authorization: Bearer ak_...
Response
Successful Response
Show child attributes
Show child attributes
Aggregates over the org's LP book, with explicit coverage counts.
Show child attributes
Show child attributes
Date the derived economics were computed for.
Allowed value:
"org"