Fund Data API

Positions, NAV, risk, and fees: read and propose

25 GET endpoints, one per real analyst tool. Every response is redacted at the edge, fail-closed, the same posture as Nyx Analyst. 4 additional POST endpoints stage a maker-checker proposal for a human manager to approve; none of them execute anything themselves.

Fund Overview

GET/api/v1/fund/overviewPermalink →

The fund's base currency, inception date, AUM target, share classes, and latest NAV summary.

Requires an Authorization: Bearer <API key> header (a nyx_dk_… developer key, minted from the developer console at /developers/console). Reflects Nyx's shadow NAV, reconciled against your fund administrator.

No parameters — call it with no query string.

cURL
curl -s -X GET "https://nyxsuite.com/api/v1/fund/overview" \
  -H "Authorization: Bearer nyx_dk_demo000000000000000000000000000000000000000"
JavaScript
const res = await fetch("https://nyxsuite.com/api/v1/fund/overview", {
  method: "GET",
  headers: { Authorization: "Bearer nyx_dk_demo000000000000000000000000000000000000000" },
})
const data = await res.json()
Python
# GET https://nyxsuite.com/api/v1/fund/overview
import requests

res = requests.get(
    "https://nyxsuite.com/api/v1/fund/overview",
    headers={"Authorization": "Bearer nyx_dk_demo000000000000000000000000000000000000000"},
)
data = res.json()
SDK
// TypeScript (@nyxsuite/sdk)
import { NyxClient } from '@nyxsuite/sdk'

const client = new NyxClient({ apiKey: 'nyx_dk_demo000000000000000000000000000000000000000', baseUrl: 'https://nyxsuite.com/api/v1' })
const data = await client.fundOverview()

# Python (nyxsuite)
from nyxsuite import NyxClient

client = NyxClient(api_key="nyx_dk_demo000000000000000000000000000000000000000", base_url="https://nyxsuite.com/api/v1")
data = client.fund_overview()
Try It
API Key
nyx_dk_dem••••••••0000
Sample response
Object(3)
"fund":
Object(3)
"baseCurrency": "USD"
"inceptionDate": "2024-03-01"
"aumTarget": "25000000.00"
"shareClasses":
Array(1)
Object(8)
"name": "Class A"
"currency": "USD"
"mgmtFeeAnnualRate": "0.02"
"perfFeeRate": "0.20"
"hurdleAnnualRate": null
"crystallizationFrequency": "quarterly"
"feeExempt": false
"status": "open"
"latestNav":
Object(4)
"valuationDate": "2026-07-20"
"status": "complete"
"grossAssetValue": "18624531.12"
"netAssetValue": "18450210.44"

Positions

GET/api/v1/fund/positionsPermalink →

The fund's current row-level live positions (never paper-trading holdings).

Requires an Authorization: Bearer <API key> header (a nyx_dk_… developer key, minted from the developer console at /developers/console). Reflects Nyx's shadow NAV, reconciled against your fund administrator.

No parameters — call it with no query string.

cURL
curl -s -X GET "https://nyxsuite.com/api/v1/fund/positions" \
  -H "Authorization: Bearer nyx_dk_demo000000000000000000000000000000000000000"
JavaScript
const res = await fetch("https://nyxsuite.com/api/v1/fund/positions", {
  method: "GET",
  headers: { Authorization: "Bearer nyx_dk_demo000000000000000000000000000000000000000" },
})
const data = await res.json()
Python
# GET https://nyxsuite.com/api/v1/fund/positions
import requests

res = requests.get(
    "https://nyxsuite.com/api/v1/fund/positions",
    headers={"Authorization": "Bearer nyx_dk_demo000000000000000000000000000000000000000"},
)
data = res.json()
SDK
// TypeScript (@nyxsuite/sdk)
import { NyxClient } from '@nyxsuite/sdk'

const client = new NyxClient({ apiKey: 'nyx_dk_demo000000000000000000000000000000000000000', baseUrl: 'https://nyxsuite.com/api/v1' })
const data = await client.fundPositions()

# Python (nyxsuite)
from nyxsuite import NyxClient

client = NyxClient(api_key="nyx_dk_demo000000000000000000000000000000000000000", base_url="https://nyxsuite.com/api/v1")
data = client.fund_positions()
Try It
API Key
nyx_dk_dem••••••••0000
Sample response
Object(4)
"totalValueUsd": "18450210.44"
"positionCount": 6
"truncated": false
"rows":
Array(6)
Object(6)
"asset": "BTC"
"quantity": "112.35000000"
"priceUsd": "64000.00"
"valueUsd": "7190400.00"
"sourceType": "exchange"
"source": "Binance"
Object(6)
"asset": "ETH"
"quantity": "1850.00000000"
"priceUsd": "3400.00"
"valueUsd": "6290000.00"
"sourceType": "exchange"
"source": "Coinbase"
Object(6)
"asset": "USDC"
"quantity": "2650000.00000000"
"priceUsd": "1.00"
"valueUsd": "2650000.00"
"sourceType": "wallet"
"source": "Ethereum wallet"
Object(6)
"asset": "SOL"
"quantity": "9800.00000000"
"priceUsd": "145.00"
"valueUsd": "1421000.00"
"sourceType": "wallet"
"source": "Solana wallet"
Object(6)
"asset": "ARB"
"quantity": "650000.00000000"
"priceUsd": "1.10"
"valueUsd": "715000.00"
"sourceType": "exchange"
"source": "Bybit"
Object(6)
"asset": "USD"
"quantity": "183810.44"
"priceUsd": "1.00"
"valueUsd": "183810.44"
"sourceType": "manual"
"source": "Manual entry"

Portfolio Breakdown

GET/api/v1/fund/breakdownPermalink →

The fund's current portfolio breakdown by asset, source type, and venue.

Requires an Authorization: Bearer <API key> header (a nyx_dk_… developer key, minted from the developer console at /developers/console). Reflects Nyx's shadow NAV, reconciled against your fund administrator.

No parameters — call it with no query string.

cURL
curl -s -X GET "https://nyxsuite.com/api/v1/fund/breakdown" \
  -H "Authorization: Bearer nyx_dk_demo000000000000000000000000000000000000000"
JavaScript
const res = await fetch("https://nyxsuite.com/api/v1/fund/breakdown", {
  method: "GET",
  headers: { Authorization: "Bearer nyx_dk_demo000000000000000000000000000000000000000" },
})
const data = await res.json()
Python
# GET https://nyxsuite.com/api/v1/fund/breakdown
import requests

res = requests.get(
    "https://nyxsuite.com/api/v1/fund/breakdown",
    headers={"Authorization": "Bearer nyx_dk_demo000000000000000000000000000000000000000"},
)
data = res.json()
SDK
// TypeScript (@nyxsuite/sdk)
import { NyxClient } from '@nyxsuite/sdk'

const client = new NyxClient({ apiKey: 'nyx_dk_demo000000000000000000000000000000000000000', baseUrl: 'https://nyxsuite.com/api/v1' })
const data = await client.fundBreakdown()

# Python (nyxsuite)
from nyxsuite import NyxClient

client = NyxClient(api_key="nyx_dk_demo000000000000000000000000000000000000000", base_url="https://nyxsuite.com/api/v1")
data = client.fund_breakdown()
Try It
API Key
nyx_dk_dem••••••••0000
Sample response
Object(5)
"total_aum": 18450210.44
"rows":
Array(6)
Object(6)
"asset": "BTC"
"quantity": 112.35
"price_usd": 64000
"value_usd": 7190400
"source": "Binance"
"source_type": "exchange"
Object(6)
"asset": "ETH"
"quantity": 1850
"price_usd": 3400
"value_usd": 6290000
"source": "Coinbase"
"source_type": "exchange"
Object(6)
"asset": "USDC"
"quantity": 2650000
"price_usd": 1
"value_usd": 2650000
"source": "Ethereum wallet"
"source_type": "wallet"
Object(6)
"asset": "SOL"
"quantity": 9800
"price_usd": 145
"value_usd": 1421000
"source": "Solana wallet"
"source_type": "wallet"
Object(6)
"asset": "ARB"
"quantity": 650000
"price_usd": 1.1
"value_usd": 715000
"source": "Bybit"
"source_type": "exchange"
Object(6)
"asset": "USD"
"quantity": 183810.44
"price_usd": 1
"value_usd": 183810.44
"source": "Manual entry"
"source_type": "manual"
"by_asset":
Array(6)
Object(4)
"asset": "BTC"
"quantity": 112.35
"value_usd": 7190400
"pct": 38.97191321141375
Object(4)
"asset": "ETH"
"quantity": 1850
"value_usd": 6290000
"pct": 34.09175207217853
Object(4)
"asset": "USDC"
"quantity": 2650000
"value_usd": 2650000
"pct": 14.362979807833561
Object(4)
"asset": "SOL"
"quantity": 9800
"value_usd": 1421000
"pct": 7.701809172426978
Object(4)
"asset": "ARB"
"quantity": 650000
"value_usd": 715000
"pct": 3.8752945519249042
Object(4)
"asset": "USD"
"quantity": 183810.44
"value_usd": 183810.44
"pct": 0.9962511842222651
"by_source_type":
Array(3)
Object(3)
"source_type": "exchange"
"value_usd": 14195400
"pct": 76.93895983551718
Object(3)
"source_type": "wallet"
"value_usd": 4071000
"pct": 22.06478898026054
Object(3)
"source_type": "manual"
"value_usd": 183810.44
"pct": 0.9962511842222651
"by_source":
Array(6)
Object(4)
"source": "Binance"
"source_type": "exchange"
"value_usd": 7190400
"pct": 38.97191321141375
Object(4)
"source": "Coinbase"
"source_type": "exchange"
"value_usd": 6290000
"pct": 34.09175207217853
Object(4)
"source": "Ethereum wallet"
"source_type": "wallet"
"value_usd": 2650000
"pct": 14.362979807833561
Object(4)
"source": "Solana wallet"
"source_type": "wallet"
"value_usd": 1421000
"pct": 7.701809172426978
Object(4)
"source": "Bybit"
"source_type": "exchange"
"value_usd": 715000
"pct": 3.8752945519249042
Object(4)
"source": "Manual entry"
"source_type": "manual"
"value_usd": 183810.44
"pct": 0.9962511842222651

Current Exposure

GET/api/v1/fund/exposurePermalink →

The fund's current gross/net/long/short/cash exposure snapshot.

Requires an Authorization: Bearer <API key> header (a nyx_dk_… developer key, minted from the developer console at /developers/console). Reflects Nyx's shadow NAV, reconciled against your fund administrator.

No parameters — call it with no query string.

cURL
curl -s -X GET "https://nyxsuite.com/api/v1/fund/exposure" \
  -H "Authorization: Bearer nyx_dk_demo000000000000000000000000000000000000000"
JavaScript
const res = await fetch("https://nyxsuite.com/api/v1/fund/exposure", {
  method: "GET",
  headers: { Authorization: "Bearer nyx_dk_demo000000000000000000000000000000000000000" },
})
const data = await res.json()
Python
# GET https://nyxsuite.com/api/v1/fund/exposure
import requests

res = requests.get(
    "https://nyxsuite.com/api/v1/fund/exposure",
    headers={"Authorization": "Bearer nyx_dk_demo000000000000000000000000000000000000000"},
)
data = res.json()
SDK
// TypeScript (@nyxsuite/sdk)
import { NyxClient } from '@nyxsuite/sdk'

const client = new NyxClient({ apiKey: 'nyx_dk_demo000000000000000000000000000000000000000', baseUrl: 'https://nyxsuite.com/api/v1' })
const data = await client.fundExposure()

# Python (nyxsuite)
from nyxsuite import NyxClient

client = NyxClient(api_key="nyx_dk_demo000000000000000000000000000000000000000", base_url="https://nyxsuite.com/api/v1")
data = client.fund_exposure()
Try It
API Key
nyx_dk_dem••••••••0000
Sample response
Object(11)
"totalValueUsd": 18450210.44
"cashUsd": 2833810.44
"longUsd": 15616400
"shortUsd": 0
"grossUsd": 15616400
"netUsd": 15616400
"byAssetClass":
Array(3)
Object(6)
"key": "crypto"
"longUsd": 15616400
"shortUsd": 0
"grossUsd": 15616400
"netUsd": 15616400
"pctOfGross": 1
Object(6)
"key": "stablecoin"
"longUsd": 2650000
"shortUsd": 0
"grossUsd": 2650000
"netUsd": 2650000
"pctOfGross": 0.16969339924694551
Object(6)
"key": "fiat"
"longUsd": 183810.44
"shortUsd": 0
"grossUsd": 183810.44
"netUsd": 183810.44
"pctOfGross": 0.011770346558745934
"byChain":
Array(1)
Object(6)
"key": "solana"
"longUsd": 1421000
"shortUsd": 0
"grossUsd": 1421000
"netUsd": 1421000
"pctOfGross": 0.0909940831433621
"byVenue":
Array(4)
Object(6)
"key": "Binance"
"longUsd": 7190400
"shortUsd": 0
"grossUsd": 7190400
"netUsd": 7190400
"pctOfGross": 0.4604390256397121
Object(6)
"key": "Coinbase"
"longUsd": 6290000
"shortUsd": 0
"grossUsd": 6290000
"netUsd": 6290000
"pctOfGross": 0.4027816910427499
Object(6)
"key": "Solana wallet"
"longUsd": 1421000
"shortUsd": 0
"grossUsd": 1421000
"netUsd": 1421000
"pctOfGross": 0.0909940831433621
Object(6)
"key": "Bybit"
"longUsd": 715000
"shortUsd": 0
"grossUsd": 715000
"netUsd": 715000
"pctOfGross": 0.045785200174175866
"bySourceType":
Array(2)
Object(6)
"key": "exchange"
"longUsd": 14195400
"shortUsd": 0
"grossUsd": 14195400
"netUsd": 14195400
"pctOfGross": 0.9090059168566379
Object(6)
"key": "wallet"
"longUsd": 1421000
"shortUsd": 0
"grossUsd": 1421000
"netUsd": 1421000
"pctOfGross": 0.0909940831433621
"unclassifiedAssets": []

Exposure Series

GET/api/v1/fund/exposure/seriesPermalink →

The fund's exposure evolution over a trailing window of days.

Requires an Authorization: Bearer <API key> header (a nyx_dk_… developer key, minted from the developer console at /developers/console). Reflects Nyx's shadow NAV, reconciled against your fund administrator.

NameTypeRequiredDescription
daysintegerOptional
cURL
curl -s -X GET "https://nyxsuite.com/api/v1/fund/exposure/series" \
  -H "Authorization: Bearer nyx_dk_demo000000000000000000000000000000000000000"
JavaScript
const res = await fetch("https://nyxsuite.com/api/v1/fund/exposure/series", {
  method: "GET",
  headers: { Authorization: "Bearer nyx_dk_demo000000000000000000000000000000000000000" },
})
const data = await res.json()
Python
# GET https://nyxsuite.com/api/v1/fund/exposure/series
import requests

res = requests.get(
    "https://nyxsuite.com/api/v1/fund/exposure/series",
    headers={"Authorization": "Bearer nyx_dk_demo000000000000000000000000000000000000000"},
)
data = res.json()
SDK
// TypeScript (@nyxsuite/sdk)
import { NyxClient } from '@nyxsuite/sdk'

const client = new NyxClient({ apiKey: 'nyx_dk_demo000000000000000000000000000000000000000', baseUrl: 'https://nyxsuite.com/api/v1' })
const data = await client.fundExposureSeries()

# Python (nyxsuite)
from nyxsuite import NyxClient

client = NyxClient(api_key="nyx_dk_demo000000000000000000000000000000000000000", base_url="https://nyxsuite.com/api/v1")
data = client.fund_exposure_series()
Try It
API Key
nyx_dk_dem••••••••0000
Parameters
Sample response
Array(3)
Object(9)
"date": "2026-06-21"
"navRunId": "demo-nav-run-2026-06-21"
"runStatus": "complete"
"grossUsd": 15020000
"netUsd": 15020000
"longUsd": 15020000
"shortUsd": 0
"cashUsd": 2500000
"unpricedCount": 0
Object(9)
"date": "2026-07-05"
"navRunId": "demo-nav-run-2026-07-05"
"runStatus": "complete"
"grossUsd": 15340000
"netUsd": 15340000
"longUsd": 15340000
"shortUsd": 0
"cashUsd": 2580000
"unpricedCount": 0
Object(9)
"date": "2026-07-20"
"navRunId": "demo-nav-run-2026-07-20"
"runStatus": "complete"
"grossUsd": 15616400
"netUsd": 15616400
"longUsd": 15616400
"shortUsd": 0
"cashUsd": 2833810.44
"unpricedCount": 0

NAV History

GET/api/v1/fund/nav/historyPermalink →

The fund's daily NAV history with BTC/ETH reference prices.

Requires an Authorization: Bearer <API key> header (a nyx_dk_… developer key, minted from the developer console at /developers/console). Reflects Nyx's shadow NAV, reconciled against your fund administrator.

NameTypeRequiredDescription
daysintegerOptional
cURL
curl -s -X GET "https://nyxsuite.com/api/v1/fund/nav/history" \
  -H "Authorization: Bearer nyx_dk_demo000000000000000000000000000000000000000"
JavaScript
const res = await fetch("https://nyxsuite.com/api/v1/fund/nav/history", {
  method: "GET",
  headers: { Authorization: "Bearer nyx_dk_demo000000000000000000000000000000000000000" },
})
const data = await res.json()
Python
# GET https://nyxsuite.com/api/v1/fund/nav/history
import requests

res = requests.get(
    "https://nyxsuite.com/api/v1/fund/nav/history",
    headers={"Authorization": "Bearer nyx_dk_demo000000000000000000000000000000000000000"},
)
data = res.json()
SDK
// TypeScript (@nyxsuite/sdk)
import { NyxClient } from '@nyxsuite/sdk'

const client = new NyxClient({ apiKey: 'nyx_dk_demo000000000000000000000000000000000000000', baseUrl: 'https://nyxsuite.com/api/v1' })
const data = await client.fundNavHistory()

# Python (nyxsuite)
from nyxsuite import NyxClient

client = NyxClient(api_key="nyx_dk_demo000000000000000000000000000000000000000", base_url="https://nyxsuite.com/api/v1")
data = client.fund_nav_history()
Try It
API Key
nyx_dk_dem••••••••0000
Parameters
Sample response
Array(3)
Object(4)
"date": "2026-06-20"
"nav_usd": 17510230.1
"btc_price": 61200
"eth_price": 3280
Object(4)
"date": "2026-07-05"
"nav_usd": 17960120.55
"btc_price": 62850
"eth_price": 3340
Object(4)
"date": "2026-07-20"
"nav_usd": 18450210.44
"btc_price": 64000
"eth_price": 3400

P&L Attribution

GET/api/v1/fund/pnl/attributionPermalink →

P&L attribution between the NAV run on a given date and the immediately preceding usable run.

Requires an Authorization: Bearer <API key> header (a nyx_dk_… developer key, minted from the developer console at /developers/console). Reflects Nyx's shadow NAV, reconciled against your fund administrator.

NameTypeRequiredDescription
datestringRequired
cURL
curl -s -X GET "https://nyxsuite.com/api/v1/fund/pnl/attribution" \
  -H "Authorization: Bearer nyx_dk_demo000000000000000000000000000000000000000"
JavaScript
const res = await fetch("https://nyxsuite.com/api/v1/fund/pnl/attribution", {
  method: "GET",
  headers: { Authorization: "Bearer nyx_dk_demo000000000000000000000000000000000000000" },
})
const data = await res.json()
Python
# GET https://nyxsuite.com/api/v1/fund/pnl/attribution
import requests

res = requests.get(
    "https://nyxsuite.com/api/v1/fund/pnl/attribution",
    headers={"Authorization": "Bearer nyx_dk_demo000000000000000000000000000000000000000"},
)
data = res.json()
SDK
// TypeScript (@nyxsuite/sdk)
import { NyxClient } from '@nyxsuite/sdk'

const client = new NyxClient({ apiKey: 'nyx_dk_demo000000000000000000000000000000000000000', baseUrl: 'https://nyxsuite.com/api/v1' })
const data = await client.fundPnlAttribution()

# Python (nyxsuite)
from nyxsuite import NyxClient

client = NyxClient(api_key="nyx_dk_demo000000000000000000000000000000000000000", base_url="https://nyxsuite.com/api/v1")
data = client.fund_pnl_attribution()
Try It
API Key
nyx_dk_dem••••••••0000
Parameters
Sample response
Object(10)
"status": "ok"
"fromDate": "2026-07-19"
"toDate": "2026-07-20"
"fromRunId": "demo-nav-run-2026-07-19"
"toRunId": "demo-nav-run-2026-07-20"
"navFromUsd": "18321810.12"
"navToUsd": "18450210.44"
"deltaNavUsd": "128400.32"
"lines":
Array(4)
Object(3)
"key": "price_effect"
"amountUsd": "104200.00"
"amountNum": 104200
Object(3)
"key": "fee_effect"
"amountUsd": "-14200.18"
"amountNum": -14200.18
Object(3)
"key": "new_position_effect"
"amountUsd": "32400.50"
"amountNum": 32400.5
Object(3)
"key": "residual"
"amountUsd": "6000.00"
"amountNum": 6000
"unpricedRows": []

Value at Risk (VaR)

GET/api/v1/fund/risk/varPermalink →

A parametric Value-at-Risk estimate for the live portfolio.

Requires an Authorization: Bearer <API key> header (a nyx_dk_… developer key, minted from the developer console at /developers/console). Reflects Nyx's shadow NAV, reconciled against your fund administrator.

NameTypeRequiredDescription
confidence0.95 | 0.99Optional
horizonDays1 | 10Optional
method"sample" | "ewma"Optional
windowDaysintegerOptional
cURL
curl -s -X GET "https://nyxsuite.com/api/v1/fund/risk/var" \
  -H "Authorization: Bearer nyx_dk_demo000000000000000000000000000000000000000"
JavaScript
const res = await fetch("https://nyxsuite.com/api/v1/fund/risk/var", {
  method: "GET",
  headers: { Authorization: "Bearer nyx_dk_demo000000000000000000000000000000000000000" },
})
const data = await res.json()
Python
# GET https://nyxsuite.com/api/v1/fund/risk/var
import requests

res = requests.get(
    "https://nyxsuite.com/api/v1/fund/risk/var",
    headers={"Authorization": "Bearer nyx_dk_demo000000000000000000000000000000000000000"},
)
data = res.json()
SDK
// TypeScript (@nyxsuite/sdk)
import { NyxClient } from '@nyxsuite/sdk'

const client = new NyxClient({ apiKey: 'nyx_dk_demo000000000000000000000000000000000000000', baseUrl: 'https://nyxsuite.com/api/v1' })
const data = await client.fundRiskVar()

# Python (nyxsuite)
from nyxsuite import NyxClient

client = NyxClient(api_key="nyx_dk_demo000000000000000000000000000000000000000", base_url="https://nyxsuite.com/api/v1")
data = client.fund_risk_var()
Try It
API Key
nyx_dk_dem••••••••0000
Parameters
Sample response
Object(2)
"simulated": true
"var":
Object(12)
"confidence": 0.95
"horizonDays": 1
"method": "sample"
"varUsd": "742300.00"
"navIncludedUsd": "18450210.44"
"totalNavUsd": "18450210.44"
"portfolioVolDaily": 0.032
"perAssetVol":
Array(3)
Object(3)
"asset": "BTC"
"volDaily": 0.0328
"observations": 180
Object(3)
"asset": "ETH"
"volDaily": 0.0403
"observations": 180
Object(3)
"asset": "SOL"
"volDaily": 0.0498
"observations": 180
"correlations":
Array(3)
Object(3)
"a": "BTC"
"b": "ETH"
"rho": 0.83
Object(3)
"a": "BTC"
"b": "SOL"
"rho": 0.71
Object(3)
"a": "ETH"
"b": "SOL"
"rho": 0.69
"excludedAssets":
Array(1)
"USD"
"observations": 180
"simulated": true

Trial Balance

GET/api/v1/fund/trial-balancePermalink →

The fund's trial balance as of a given date.

Requires an Authorization: Bearer <API key> header (a nyx_dk_… developer key, minted from the developer console at /developers/console). Reflects Nyx's shadow NAV, reconciled against your fund administrator.

NameTypeRequiredDescription
asOfstringOptional
cURL
curl -s -X GET "https://nyxsuite.com/api/v1/fund/trial-balance" \
  -H "Authorization: Bearer nyx_dk_demo000000000000000000000000000000000000000"
JavaScript
const res = await fetch("https://nyxsuite.com/api/v1/fund/trial-balance", {
  method: "GET",
  headers: { Authorization: "Bearer nyx_dk_demo000000000000000000000000000000000000000" },
})
const data = await res.json()
Python
# GET https://nyxsuite.com/api/v1/fund/trial-balance
import requests

res = requests.get(
    "https://nyxsuite.com/api/v1/fund/trial-balance",
    headers={"Authorization": "Bearer nyx_dk_demo000000000000000000000000000000000000000"},
)
data = res.json()
SDK
// TypeScript (@nyxsuite/sdk)
import { NyxClient } from '@nyxsuite/sdk'

const client = new NyxClient({ apiKey: 'nyx_dk_demo000000000000000000000000000000000000000', baseUrl: 'https://nyxsuite.com/api/v1' })
const data = await client.fundTrialBalance()

# Python (nyxsuite)
from nyxsuite import NyxClient

client = NyxClient(api_key="nyx_dk_demo000000000000000000000000000000000000000", base_url="https://nyxsuite.com/api/v1")
data = client.fund_trial_balance()
Try It
API Key
nyx_dk_dem••••••••0000
Parameters
Sample response
Object(5)
"asOf": "2026-07-20"
"truncated": false
"totalDebit": "18450210.44"
"totalCredit": "18450210.44"
"rows":
Array(3)
Object(7)
"code": "1000"
"name": "Cash"
"type": "asset"
"normalSide": "debit"
"totalDebit": "2650000.00"
"totalCredit": "0.00"
"balance": "2650000.00"
Object(7)
"code": "1190"
"name": "Digital Assets"
"type": "asset"
"normalSide": "debit"
"totalDebit": "15800210.44"
"totalCredit": "0.00"
"balance": "15800210.44"
Object(7)
"code": "2000"
"name": "LP Capital"
"type": "equity"
"normalSide": "credit"
"totalDebit": "0.00"
"totalCredit": "18450210.44"
"balance": "18450210.44"

Capital Accounts

GET/api/v1/fund/capital-accountsPermalink →

Per-investor capital accounts for the fund's latest complete NAV run.

Requires an Authorization: Bearer <API key> header (a nyx_dk_… developer key, minted from the developer console at /developers/console). Reflects Nyx's shadow NAV, reconciled against your fund administrator.

No parameters — call it with no query string.

cURL
curl -s -X GET "https://nyxsuite.com/api/v1/fund/capital-accounts" \
  -H "Authorization: Bearer nyx_dk_demo000000000000000000000000000000000000000"
JavaScript
const res = await fetch("https://nyxsuite.com/api/v1/fund/capital-accounts", {
  method: "GET",
  headers: { Authorization: "Bearer nyx_dk_demo000000000000000000000000000000000000000" },
})
const data = await res.json()
Python
# GET https://nyxsuite.com/api/v1/fund/capital-accounts
import requests

res = requests.get(
    "https://nyxsuite.com/api/v1/fund/capital-accounts",
    headers={"Authorization": "Bearer nyx_dk_demo000000000000000000000000000000000000000"},
)
data = res.json()
SDK
// TypeScript (@nyxsuite/sdk)
import { NyxClient } from '@nyxsuite/sdk'

const client = new NyxClient({ apiKey: 'nyx_dk_demo000000000000000000000000000000000000000', baseUrl: 'https://nyxsuite.com/api/v1' })
const data = await client.fundCapitalAccounts()

# Python (nyxsuite)
from nyxsuite import NyxClient

client = NyxClient(api_key="nyx_dk_demo000000000000000000000000000000000000000", base_url="https://nyxsuite.com/api/v1")
data = client.fund_capital_accounts()
Try It
API Key
nyx_dk_dem••••••••0000
Sample response
Object(4)
"status": "ok"
"navRunId": "demo-nav-run-2026-07-20"
"valuationDate": "2026-07-20"
"rows":
Array(1)
Object(11)
"fee_account_id": "demo-series-a"
"valuation_date": "2026-07-20"
"lot_units": "10000.000000000000000000"
"pfn_per_unit": "1848.09604400"
"pre_fee_capital": "18480960.44000000"
"own_mgmt_accrued": "30750.00000000"
"own_perf_accrued": "0.00000000"
"own_perf_banked": "0.00000000"
"own_fees_total": "30750.00000000"
"closing_capital": "18450210.44000000"
"per_series_nav_per_unit": "1845.02104400"

Expenses

GET/api/v1/fund/expensesPermalink →

The fund's expense accruals/payments.

Requires an Authorization: Bearer <API key> header (a nyx_dk_… developer key, minted from the developer console at /developers/console). Reflects Nyx's shadow NAV, reconciled against your fund administrator.

NameTypeRequiredDescription
limitintegerOptional
cURL
curl -s -X GET "https://nyxsuite.com/api/v1/fund/expenses" \
  -H "Authorization: Bearer nyx_dk_demo000000000000000000000000000000000000000"
JavaScript
const res = await fetch("https://nyxsuite.com/api/v1/fund/expenses", {
  method: "GET",
  headers: { Authorization: "Bearer nyx_dk_demo000000000000000000000000000000000000000" },
})
const data = await res.json()
Python
# GET https://nyxsuite.com/api/v1/fund/expenses
import requests

res = requests.get(
    "https://nyxsuite.com/api/v1/fund/expenses",
    headers={"Authorization": "Bearer nyx_dk_demo000000000000000000000000000000000000000"},
)
data = res.json()
SDK
// TypeScript (@nyxsuite/sdk)
import { NyxClient } from '@nyxsuite/sdk'

const client = new NyxClient({ apiKey: 'nyx_dk_demo000000000000000000000000000000000000000', baseUrl: 'https://nyxsuite.com/api/v1' })
const data = await client.fundExpenses()

# Python (nyxsuite)
from nyxsuite import NyxClient

client = NyxClient(api_key="nyx_dk_demo000000000000000000000000000000000000000", base_url="https://nyxsuite.com/api/v1")
data = client.fund_expenses()
Try It
API Key
nyx_dk_dem••••••••0000
Parameters
Sample response
Object(2)
"truncated": false
"rows":
Array(3)
Object(8)
"expenseId": "demo-exp-001"
"category": "fund_admin"
"memo": "Q3 fund administration fee"
"entryDate": "2026-07-01"
"accruedUsd": "4200.00"
"paidUsd": "4200.00"
"outstandingUsd": "0.00"
"reversed": false
Object(8)
"expenseId": "demo-exp-002"
"category": "audit"
"memo": null
"entryDate": "2026-07-05"
"accruedUsd": "3000.00"
"paidUsd": "0.00"
"outstandingUsd": "3000.00"
"reversed": false
Object(8)
"expenseId": "demo-exp-003"
"category": "custody"
"memo": "Monthly custody fee"
"entryDate": "2026-07-10"
"accruedUsd": "850.00"
"paidUsd": "850.00"
"outstandingUsd": "0.00"
"reversed": false

Fee Terms

GET/api/v1/fund/fee-termsPermalink →

The fund's configured management/performance fee terms and share classes.

Requires an Authorization: Bearer <API key> header (a nyx_dk_… developer key, minted from the developer console at /developers/console). Reflects Nyx's shadow NAV, reconciled against your fund administrator.

No parameters — call it with no query string.

cURL
curl -s -X GET "https://nyxsuite.com/api/v1/fund/fee-terms" \
  -H "Authorization: Bearer nyx_dk_demo000000000000000000000000000000000000000"
JavaScript
const res = await fetch("https://nyxsuite.com/api/v1/fund/fee-terms", {
  method: "GET",
  headers: { Authorization: "Bearer nyx_dk_demo000000000000000000000000000000000000000" },
})
const data = await res.json()
Python
# GET https://nyxsuite.com/api/v1/fund/fee-terms
import requests

res = requests.get(
    "https://nyxsuite.com/api/v1/fund/fee-terms",
    headers={"Authorization": "Bearer nyx_dk_demo000000000000000000000000000000000000000"},
)
data = res.json()
SDK
// TypeScript (@nyxsuite/sdk)
import { NyxClient } from '@nyxsuite/sdk'

const client = new NyxClient({ apiKey: 'nyx_dk_demo000000000000000000000000000000000000000', baseUrl: 'https://nyxsuite.com/api/v1' })
const data = await client.fundFeeTerms()

# Python (nyxsuite)
from nyxsuite import NyxClient

client = NyxClient(api_key="nyx_dk_demo000000000000000000000000000000000000000", base_url="https://nyxsuite.com/api/v1")
data = client.fund_fee_terms()
Try It
API Key
nyx_dk_dem••••••••0000
Sample response
Object(9)
"configured": true
"mgmtFeePct": "2.00"
"perfFeePct": "20.00"
"hurdleRatePct": null
"crystallizationFrequency": "quarterly"
"mgmtFeeFrequency": "monthly"
"unitBasePrice": "1000.00"
"mgmtFeeBase": "pre_fee_nav"
"shareClasses":
Array(1)
Object(9)
"id": "demo-class-a"
"name": "Class A"
"currency": "USD"
"mgmtFeePct": "2.00"
"perfFeePct": "20.00"
"hurdleRatePct": null
"crystallizationFrequency": "quarterly"
"feeExempt": false
"status": "open"

Trades

GET/api/v1/fund/tradesPermalink →

The fund's executed exchange trades (real connections only), cursor-paginated, most recent first.

Requires an Authorization: Bearer <API key> header (a nyx_dk_… developer key, minted from the developer console at /developers/console). Reflects Nyx's shadow NAV, reconciled against your fund administrator.

NameTypeRequiredDescription
fromstringOptional
tostringOptional
symbolstringOptional
side"buy" | "sell"Optional
limitintegerOptional
cursorstringOptional
cURL
curl -s -X GET "https://nyxsuite.com/api/v1/fund/trades" \
  -H "Authorization: Bearer nyx_dk_demo000000000000000000000000000000000000000"
JavaScript
const res = await fetch("https://nyxsuite.com/api/v1/fund/trades", {
  method: "GET",
  headers: { Authorization: "Bearer nyx_dk_demo000000000000000000000000000000000000000" },
})
const data = await res.json()
Python
# GET https://nyxsuite.com/api/v1/fund/trades
import requests

res = requests.get(
    "https://nyxsuite.com/api/v1/fund/trades",
    headers={"Authorization": "Bearer nyx_dk_demo000000000000000000000000000000000000000"},
)
data = res.json()
SDK
// TypeScript (@nyxsuite/sdk)
import { NyxClient } from '@nyxsuite/sdk'

const client = new NyxClient({ apiKey: 'nyx_dk_demo000000000000000000000000000000000000000', baseUrl: 'https://nyxsuite.com/api/v1' })
const data = await client.fundTrades()

# Python (nyxsuite)
from nyxsuite import NyxClient

client = NyxClient(api_key="nyx_dk_demo000000000000000000000000000000000000000", base_url="https://nyxsuite.com/api/v1")
data = client.fund_trades()
Try It
API Key
nyx_dk_dem••••••••0000
Parameters
Sample response
Object(3)
"rows":
Array(3)
Object(10)
"id": "demo-trade-003"
"exchange": "Binance"
"symbol": "BTC/USDT"
"side": "buy"
"price": "64000.00"
"amount": "0.50000000"
"cost": "32000.00"
"feeCost": "32.00000000"
"feeCurrency": "USDT"
"executedAt": "2026-07-20T14:32:00.000Z"
Object(10)
"id": "demo-trade-002"
"exchange": "Coinbase"
"symbol": "ETH/USD"
"side": "sell"
"price": "3400.00"
"amount": "10.00000000"
"cost": "34000.00"
"feeCost": "17.00000000"
"feeCurrency": "USD"
"executedAt": "2026-07-19T09:15:00.000Z"
Object(10)
"id": "demo-trade-001"
"exchange": "Bybit"
"symbol": "ARB/USDT"
"side": "buy"
"price": "1.10"
"amount": "50000.00000000"
"cost": "55000.00"
"feeCost": "55.00000000"
"feeCurrency": "USDT"
"executedAt": "2026-07-18T11:02:00.000Z"
"nextCursor": null
"truncated": false

Journal Entries

GET/api/v1/fund/ledger/journal-entriesPermalink →

Raw posted journal lines across a date window of at most 92 days, with exact debit/credit sums.

Requires an Authorization: Bearer <API key> header (a nyx_dk_… developer key, minted from the developer console at /developers/console). Reflects Nyx's shadow NAV, reconciled against your fund administrator.

NameTypeRequiredDescription
fromstringRequired
tostringRequired
limitintegerOptional
cURL
curl -s -X GET "https://nyxsuite.com/api/v1/fund/ledger/journal-entries" \
  -H "Authorization: Bearer nyx_dk_demo000000000000000000000000000000000000000"
JavaScript
const res = await fetch("https://nyxsuite.com/api/v1/fund/ledger/journal-entries", {
  method: "GET",
  headers: { Authorization: "Bearer nyx_dk_demo000000000000000000000000000000000000000" },
})
const data = await res.json()
Python
# GET https://nyxsuite.com/api/v1/fund/ledger/journal-entries
import requests

res = requests.get(
    "https://nyxsuite.com/api/v1/fund/ledger/journal-entries",
    headers={"Authorization": "Bearer nyx_dk_demo000000000000000000000000000000000000000"},
)
data = res.json()
SDK
// TypeScript (@nyxsuite/sdk)
import { NyxClient } from '@nyxsuite/sdk'

const client = new NyxClient({ apiKey: 'nyx_dk_demo000000000000000000000000000000000000000', baseUrl: 'https://nyxsuite.com/api/v1' })
const data = await client.fundLedgerJournalEntries()

# Python (nyxsuite)
from nyxsuite import NyxClient

client = NyxClient(api_key="nyx_dk_demo000000000000000000000000000000000000000", base_url="https://nyxsuite.com/api/v1")
data = client.fund_ledger_journal_entries()
Try It
API Key
nyx_dk_dem••••••••0000
Parameters
Sample response
Object(6)
"truncated": false
"rowCount": 2
"returnedCount": 2
"totalDebit": "32032.00"
"totalCredit": "32032.00"
"rows":
Array(2)
Object(17)
"entryId": "demo-je-001"
"entryDate": "2026-07-20"
"entrySource": "exchange_trade"
"memo": "BTC buy (Binance)"
"externalRef": null
"reversalOfId": null
"createdAt": "2026-07-20T14:32:05.000Z"
"createdBy": null
"lineId": "demo-jl-001"
"accountCode": "1190"
"accountName": "Digital Assets"
"accountType": "asset"
"normalSide": "debit"
"debit": "32032.00"
"credit": "0.00"
"asset": "BTC"
"quantity": "0.50000000"
Object(17)
"entryId": "demo-je-001"
"entryDate": "2026-07-20"
"entrySource": "exchange_trade"
"memo": "BTC buy (Binance)"
"externalRef": null
"reversalOfId": null
"createdAt": "2026-07-20T14:32:05.000Z"
"createdBy": null
"lineId": "demo-jl-002"
"accountCode": "1000"
"accountName": "Cash"
"accountType": "asset"
"normalSide": "debit"
"debit": "0.00"
"credit": "32032.00"
"asset": null
"quantity": null

GL Account Detail

GET/api/v1/fund/ledger/gl-detailPermalink →

Transaction-level detail (opening balance, each posted line, running balance) for one GL account.

Requires an Authorization: Bearer <API key> header (a nyx_dk_… developer key, minted from the developer console at /developers/console). Reflects Nyx's shadow NAV, reconciled against your fund administrator.

NameTypeRequiredDescription
accountCodestringRequired
fromstringOptional
tostringOptional
limitintegerOptional
cURL
curl -s -X GET "https://nyxsuite.com/api/v1/fund/ledger/gl-detail" \
  -H "Authorization: Bearer nyx_dk_demo000000000000000000000000000000000000000"
JavaScript
const res = await fetch("https://nyxsuite.com/api/v1/fund/ledger/gl-detail", {
  method: "GET",
  headers: { Authorization: "Bearer nyx_dk_demo000000000000000000000000000000000000000" },
})
const data = await res.json()
Python
# GET https://nyxsuite.com/api/v1/fund/ledger/gl-detail
import requests

res = requests.get(
    "https://nyxsuite.com/api/v1/fund/ledger/gl-detail",
    headers={"Authorization": "Bearer nyx_dk_demo000000000000000000000000000000000000000"},
)
data = res.json()
SDK
// TypeScript (@nyxsuite/sdk)
import { NyxClient } from '@nyxsuite/sdk'

const client = new NyxClient({ apiKey: 'nyx_dk_demo000000000000000000000000000000000000000', baseUrl: 'https://nyxsuite.com/api/v1' })
const data = await client.fundLedgerGlDetail()

# Python (nyxsuite)
from nyxsuite import NyxClient

client = NyxClient(api_key="nyx_dk_demo000000000000000000000000000000000000000", base_url="https://nyxsuite.com/api/v1")
data = client.fund_ledger_gl_detail()
Try It
API Key
nyx_dk_dem••••••••0000
Parameters
Sample response
Object(8)
"code": "1190"
"name": "Digital Assets"
"type": "asset"
"normalSide": "debit"
"opening": "15768178.44"
"closing": "15800210.44"
"truncated": false
"lines":
Array(1)
Object(9)
"entryDate": "2026-07-20"
"entryId": "demo-je-001"
"memo": "BTC buy (Binance)"
"entrySource": "exchange_trade"
"asset": "BTC"
"quantity": "0.50000000"
"debit": "32032.00"
"credit": "0.00"
"runningBalance": "15800210.44"

Investors

GET/api/v1/fund/investorsPermalink →

The fund's investor register: display name, status, and open subscription-lot counts/units.

Requires an Authorization: Bearer <API key> header (a nyx_dk_… developer key, minted from the developer console at /developers/console). Reflects Nyx's shadow NAV, reconciled against your fund administrator.

NameTypeRequiredDescription
limitintegerOptional
cURL
curl -s -X GET "https://nyxsuite.com/api/v1/fund/investors" \
  -H "Authorization: Bearer nyx_dk_demo000000000000000000000000000000000000000"
JavaScript
const res = await fetch("https://nyxsuite.com/api/v1/fund/investors", {
  method: "GET",
  headers: { Authorization: "Bearer nyx_dk_demo000000000000000000000000000000000000000" },
})
const data = await res.json()
Python
# GET https://nyxsuite.com/api/v1/fund/investors
import requests

res = requests.get(
    "https://nyxsuite.com/api/v1/fund/investors",
    headers={"Authorization": "Bearer nyx_dk_demo000000000000000000000000000000000000000"},
)
data = res.json()
SDK
// TypeScript (@nyxsuite/sdk)
import { NyxClient } from '@nyxsuite/sdk'

const client = new NyxClient({ apiKey: 'nyx_dk_demo000000000000000000000000000000000000000', baseUrl: 'https://nyxsuite.com/api/v1' })
const data = await client.fundInvestors()

# Python (nyxsuite)
from nyxsuite import NyxClient

client = NyxClient(api_key="nyx_dk_demo000000000000000000000000000000000000000", base_url="https://nyxsuite.com/api/v1")
data = client.fund_investors()
Try It
API Key
nyx_dk_dem••••••••0000
Parameters
Sample response
Object(2)
"truncated": false
"rows":
Array(2)
Object(6)
"id": "demo-investor-001"
"displayName": "Anchor Peak Capital LP"
"status": "active"
"createdAt": "2024-03-01T00:00:00.000Z"
"openLotCount": 2
"openUnits": "6000.000000000000000000"
Object(6)
"id": "demo-investor-002"
"displayName": "Northgate Digital SPC"
"status": "active"
"createdAt": "2024-06-15T00:00:00.000Z"
"openLotCount": 1
"openUnits": "4000.000000000000000000"

Capital Activity

GET/api/v1/fund/capital-activityPermalink →

Subscription/redemption intake requests: type, requested amount/fraction, dealing date, and status.

Requires an Authorization: Bearer <API key> header (a nyx_dk_… developer key, minted from the developer console at /developers/console). Reflects Nyx's shadow NAV, reconciled against your fund administrator.

NameTypeRequiredDescription
status"pending" | "running" | "executed" | "settled" | "cancelled" | "failed"Optional
limitintegerOptional
cURL
curl -s -X GET "https://nyxsuite.com/api/v1/fund/capital-activity" \
  -H "Authorization: Bearer nyx_dk_demo000000000000000000000000000000000000000"
JavaScript
const res = await fetch("https://nyxsuite.com/api/v1/fund/capital-activity", {
  method: "GET",
  headers: { Authorization: "Bearer nyx_dk_demo000000000000000000000000000000000000000" },
})
const data = await res.json()
Python
# GET https://nyxsuite.com/api/v1/fund/capital-activity
import requests

res = requests.get(
    "https://nyxsuite.com/api/v1/fund/capital-activity",
    headers={"Authorization": "Bearer nyx_dk_demo000000000000000000000000000000000000000"},
)
data = res.json()
SDK
// TypeScript (@nyxsuite/sdk)
import { NyxClient } from '@nyxsuite/sdk'

const client = new NyxClient({ apiKey: 'nyx_dk_demo000000000000000000000000000000000000000', baseUrl: 'https://nyxsuite.com/api/v1' })
const data = await client.fundCapitalActivity()

# Python (nyxsuite)
from nyxsuite import NyxClient

client = NyxClient(api_key="nyx_dk_demo000000000000000000000000000000000000000", base_url="https://nyxsuite.com/api/v1")
data = client.fund_capital_activity()
Try It
API Key
nyx_dk_dem••••••••0000
Parameters
Sample response
Object(2)
"truncated": false
"rows":
Array(1)
Object(14)
"id": "demo-dealing-001"
"investorId": "demo-investor-002"
"requestType": "subscription"
"amountUsd": "500000.00"
"fraction": null
"dealingDate": "2026-07-01"
"status": "settled"
"attempts": 1
"lastError": null
"navRunId": "demo-nav-run-2026-07-01"
"executedAt": "2026-07-01T10:00:00.000Z"
"settledAt": "2026-07-02T10:00:00.000Z"
"note": null
"createdAt": "2026-06-25T09:00:00.000Z"

Dealing Calendar

GET/api/v1/fund/dealing-calendarPermalink →

The fund's dealing calendar configuration: frequency, notice days, and settlement days.

Requires an Authorization: Bearer <API key> header (a nyx_dk_… developer key, minted from the developer console at /developers/console). Reflects Nyx's shadow NAV, reconciled against your fund administrator.

No parameters — call it with no query string.

cURL
curl -s -X GET "https://nyxsuite.com/api/v1/fund/dealing-calendar" \
  -H "Authorization: Bearer nyx_dk_demo000000000000000000000000000000000000000"
JavaScript
const res = await fetch("https://nyxsuite.com/api/v1/fund/dealing-calendar", {
  method: "GET",
  headers: { Authorization: "Bearer nyx_dk_demo000000000000000000000000000000000000000" },
})
const data = await res.json()
Python
# GET https://nyxsuite.com/api/v1/fund/dealing-calendar
import requests

res = requests.get(
    "https://nyxsuite.com/api/v1/fund/dealing-calendar",
    headers={"Authorization": "Bearer nyx_dk_demo000000000000000000000000000000000000000"},
)
data = res.json()
SDK
// TypeScript (@nyxsuite/sdk)
import { NyxClient } from '@nyxsuite/sdk'

const client = new NyxClient({ apiKey: 'nyx_dk_demo000000000000000000000000000000000000000', baseUrl: 'https://nyxsuite.com/api/v1' })
const data = await client.fundDealingCalendar()

# Python (nyxsuite)
from nyxsuite import NyxClient

client = NyxClient(api_key="nyx_dk_demo000000000000000000000000000000000000000", base_url="https://nyxsuite.com/api/v1")
data = client.fund_dealing_calendar()
Try It
API Key
nyx_dk_dem••••••••0000
Sample response
Object(1)
"calendar":
Object(5)
"enabled": true
"frequency": "monthly"
"noticeDays": 5
"settlementDays": 2
"updatedAt": "2026-07-01T00:00:00.000Z"

LP Reports

GET/api/v1/fund/lp-reportsPermalink →

Recent LP report metadata: period covered, status, and a short narrative preview.

Requires an Authorization: Bearer <API key> header (a nyx_dk_… developer key, minted from the developer console at /developers/console). Reflects Nyx's shadow NAV, reconciled against your fund administrator.

NameTypeRequiredDescription
limitintegerOptional
cURL
curl -s -X GET "https://nyxsuite.com/api/v1/fund/lp-reports" \
  -H "Authorization: Bearer nyx_dk_demo000000000000000000000000000000000000000"
JavaScript
const res = await fetch("https://nyxsuite.com/api/v1/fund/lp-reports", {
  method: "GET",
  headers: { Authorization: "Bearer nyx_dk_demo000000000000000000000000000000000000000" },
})
const data = await res.json()
Python
# GET https://nyxsuite.com/api/v1/fund/lp-reports
import requests

res = requests.get(
    "https://nyxsuite.com/api/v1/fund/lp-reports",
    headers={"Authorization": "Bearer nyx_dk_demo000000000000000000000000000000000000000"},
)
data = res.json()
SDK
// TypeScript (@nyxsuite/sdk)
import { NyxClient } from '@nyxsuite/sdk'

const client = new NyxClient({ apiKey: 'nyx_dk_demo000000000000000000000000000000000000000', baseUrl: 'https://nyxsuite.com/api/v1' })
const data = await client.fundLpReports()

# Python (nyxsuite)
from nyxsuite import NyxClient

client = NyxClient(api_key="nyx_dk_demo000000000000000000000000000000000000000", base_url="https://nyxsuite.com/api/v1")
data = client.fund_lp_reports()
Try It
API Key
nyx_dk_dem••••••••0000
Parameters
Sample response
Object(2)
"truncated": false
"rows":
Array(1)
Object(7)
"id": "demo-lpreport-001"
"periodStart": "2026-06-01"
"periodEnd": "2026-06-30"
"status": "sent"
"generatedAt": "2026-07-01T08:00:00.000Z"
"sentAt": "2026-07-01T09:00:00.000Z"
"contentPreview": "June was a constructive month for the fund, with NAV rising net of fees on broad-based crypto strength..."

NAV Runs

GET/api/v1/fund/nav/runsPermalink →

The fund's most recent NAV strikes: valuation date, status, gross/net asset value, and pricing coverage.

Requires an Authorization: Bearer <API key> header (a nyx_dk_… developer key, minted from the developer console at /developers/console). Reflects Nyx's shadow NAV, reconciled against your fund administrator.

NameTypeRequiredDescription
limitintegerOptional
cURL
curl -s -X GET "https://nyxsuite.com/api/v1/fund/nav/runs" \
  -H "Authorization: Bearer nyx_dk_demo000000000000000000000000000000000000000"
JavaScript
const res = await fetch("https://nyxsuite.com/api/v1/fund/nav/runs", {
  method: "GET",
  headers: { Authorization: "Bearer nyx_dk_demo000000000000000000000000000000000000000" },
})
const data = await res.json()
Python
# GET https://nyxsuite.com/api/v1/fund/nav/runs
import requests

res = requests.get(
    "https://nyxsuite.com/api/v1/fund/nav/runs",
    headers={"Authorization": "Bearer nyx_dk_demo000000000000000000000000000000000000000"},
)
data = res.json()
SDK
// TypeScript (@nyxsuite/sdk)
import { NyxClient } from '@nyxsuite/sdk'

const client = new NyxClient({ apiKey: 'nyx_dk_demo000000000000000000000000000000000000000', baseUrl: 'https://nyxsuite.com/api/v1' })
const data = await client.fundNavRuns()

# Python (nyxsuite)
from nyxsuite import NyxClient

client = NyxClient(api_key="nyx_dk_demo000000000000000000000000000000000000000", base_url="https://nyxsuite.com/api/v1")
data = client.fund_nav_runs()
Try It
API Key
nyx_dk_dem••••••••0000
Parameters
Sample response
Object(2)
"rows":
Array(1)
Object(10)
"id": "demo-nav-run-2026-07-20"
"valuationDate": "2026-07-20"
"status": "complete"
"grossAssetValue": "18624531.12"
"totalLiabilities": "174320.68"
"netAssetValue": "18450210.44"
"pricedCount": 6
"fairValuedCount": 0
"unpricedCount": 0
"createdAt": "2026-07-20T23:59:00.000Z"
"truncated": false

P&L Attribution Dates

GET/api/v1/fund/pnl/attribution-datesPermalink →

The list of dates a P&L attribution can be run for (dates with a usable NAV run).

Requires an Authorization: Bearer <API key> header (a nyx_dk_… developer key, minted from the developer console at /developers/console). Reflects Nyx's shadow NAV, reconciled against your fund administrator.

No parameters — call it with no query string.

cURL
curl -s -X GET "https://nyxsuite.com/api/v1/fund/pnl/attribution-dates" \
  -H "Authorization: Bearer nyx_dk_demo000000000000000000000000000000000000000"
JavaScript
const res = await fetch("https://nyxsuite.com/api/v1/fund/pnl/attribution-dates", {
  method: "GET",
  headers: { Authorization: "Bearer nyx_dk_demo000000000000000000000000000000000000000" },
})
const data = await res.json()
Python
# GET https://nyxsuite.com/api/v1/fund/pnl/attribution-dates
import requests

res = requests.get(
    "https://nyxsuite.com/api/v1/fund/pnl/attribution-dates",
    headers={"Authorization": "Bearer nyx_dk_demo000000000000000000000000000000000000000"},
)
data = res.json()
SDK
// TypeScript (@nyxsuite/sdk)
import { NyxClient } from '@nyxsuite/sdk'

const client = new NyxClient({ apiKey: 'nyx_dk_demo000000000000000000000000000000000000000', baseUrl: 'https://nyxsuite.com/api/v1' })
const data = await client.fundPnlAttributionDates()

# Python (nyxsuite)
from nyxsuite import NyxClient

client = NyxClient(api_key="nyx_dk_demo000000000000000000000000000000000000000", base_url="https://nyxsuite.com/api/v1")
data = client.fund_pnl_attribution_dates()
Try It
API Key
nyx_dk_dem••••••••0000
Sample response
Object(2)
"dates":
Array(3)
"2026-07-20"
"2026-07-19"
"2026-07-05"
"truncated": false

Stress-Test Presets

GET/api/v1/fund/risk/stress/presetsPermalink →

The available historical stress-scenario presets, with their real-world date window and per-asset returns.

Requires an Authorization: Bearer <API key> header (a nyx_dk_… developer key, minted from the developer console at /developers/console). Reflects Nyx's shadow NAV, reconciled against your fund administrator.

No parameters — call it with no query string.

cURL
curl -s -X GET "https://nyxsuite.com/api/v1/fund/risk/stress/presets" \
  -H "Authorization: Bearer nyx_dk_demo000000000000000000000000000000000000000"
JavaScript
const res = await fetch("https://nyxsuite.com/api/v1/fund/risk/stress/presets", {
  method: "GET",
  headers: { Authorization: "Bearer nyx_dk_demo000000000000000000000000000000000000000" },
})
const data = await res.json()
Python
# GET https://nyxsuite.com/api/v1/fund/risk/stress/presets
import requests

res = requests.get(
    "https://nyxsuite.com/api/v1/fund/risk/stress/presets",
    headers={"Authorization": "Bearer nyx_dk_demo000000000000000000000000000000000000000"},
)
data = res.json()
SDK
// TypeScript (@nyxsuite/sdk)
import { NyxClient } from '@nyxsuite/sdk'

const client = new NyxClient({ apiKey: 'nyx_dk_demo000000000000000000000000000000000000000', baseUrl: 'https://nyxsuite.com/api/v1' })
const data = await client.fundRiskStressPresets()

# Python (nyxsuite)
from nyxsuite import NyxClient

client = NyxClient(api_key="nyx_dk_demo000000000000000000000000000000000000000", base_url="https://nyxsuite.com/api/v1")
data = client.fund_risk_stress_presets()
Try It
API Key
nyx_dk_dem••••••••0000
Sample response
Object(2)
"simulated": true
"presets":
Array(2)
Object(6)
"key": "may_2021_crash"
"label": "May 2021 Crash"
"window":
Object(2)
"from": "2021-05-08"
"to": "2021-05-23"
"narrative": "Leverage flush + China mining ban headlines; alts fell harder than BTC."
"assetReturns":
Object(7)
"BTC": -0.47
"ETH": -0.53
"SOL": -0.55
"BNB": -0.6
"ADA": -0.46
"XRP": -0.55
"DOGE": -0.65
"classReturns":
Object(4)
"crypto": -0.5
"stablecoin": 0
"fiat": 0
"equity": -0.03
Object(6)
"key": "ftx_week_2022"
"label": "FTX Week"
"window":
Object(2)
"from": "2022-11-06"
"to": "2022-11-14"
"narrative": "Exchange-solvency contagion; SOL hit hardest via Alameda balance-sheet exposure; counterparty risk repricing."
"assetReturns":
Object(4)
"BTC": -0.25
"ETH": -0.3
"SOL": -0.6
"FTT": -0.9
"classReturns":
Object(4)
"crypto": -0.35
"stablecoin": -0.01
"fiat": 0
"equity": -0.02

Run Stress Preset

GET/api/v1/fund/risk/stress/runPermalink →

Runs a canonical historical stress preset against the fund's live holdings or its latest complete NAV run. SIMULATED what-if, never actual NAV.

Requires an Authorization: Bearer <API key> header (a nyx_dk_… developer key, minted from the developer console at /developers/console). Reflects Nyx's shadow NAV, reconciled against your fund administrator.

NameTypeRequiredDescription
presetKey"may_2021_crash" | "luna_collapse_2022" | "ftx_week_2022" | "covid_mar_2020"Required
includeCapitalImpactbooleanOptional
basis"live" | "latest_nav_run"Optional
cURL
curl -s -X GET "https://nyxsuite.com/api/v1/fund/risk/stress/run" \
  -H "Authorization: Bearer nyx_dk_demo000000000000000000000000000000000000000"
JavaScript
const res = await fetch("https://nyxsuite.com/api/v1/fund/risk/stress/run", {
  method: "GET",
  headers: { Authorization: "Bearer nyx_dk_demo000000000000000000000000000000000000000" },
})
const data = await res.json()
Python
# GET https://nyxsuite.com/api/v1/fund/risk/stress/run
import requests

res = requests.get(
    "https://nyxsuite.com/api/v1/fund/risk/stress/run",
    headers={"Authorization": "Bearer nyx_dk_demo000000000000000000000000000000000000000"},
)
data = res.json()
SDK
// TypeScript (@nyxsuite/sdk)
import { NyxClient } from '@nyxsuite/sdk'

const client = new NyxClient({ apiKey: 'nyx_dk_demo000000000000000000000000000000000000000', baseUrl: 'https://nyxsuite.com/api/v1' })
const data = await client.fundRiskStressRun()

# Python (nyxsuite)
from nyxsuite import NyxClient

client = NyxClient(api_key="nyx_dk_demo000000000000000000000000000000000000000", base_url="https://nyxsuite.com/api/v1")
data = client.fund_risk_stress_run()
Try It
API Key
nyx_dk_dem••••••••0000
Parameters
Sample response
Object(4)
"simulated": true
"presetLabel": "FTX Week"
"narrative": "Exchange-solvency contagion; SOL hit hardest via Alameda balance-sheet exposure; counterparty risk repricing."
"stress":
Object(9)
"baseNavUsd": "18450210.44"
"shockedNavUsd": "13636260.44"
"pnlUsd": "-4813950.00"
"drawdownPct": -0.26091572319215234
"excludedAssets": []
"baseExposure":
Object(6)
"totalValueUsd": 18450210.44
"grossUsd": 15616400
"netUsd": 15616400
"longUsd": 15616400
"shortUsd": 0
"cashUsd": 2833810.44
"shockedExposure":
Object(6)
"totalValueUsd": 13636260.44
"grossUsd": 10828950
"netUsd": 10828950
"longUsd": 10828950
"shortUsd": 0
"cashUsd": 2807310.44
"truncated": false
"positions":
Array(6)
Object(7)
"asset": "ETH"
"source": "Coinbase"
"baseValueUsd": "6290000.00000000"
"shockedValueUsd": "4403000.00000000"
"pnlUsd": "-1887000.00000000"
"appliedPct": -0.3
"shockPath": "direct"
Object(7)
"asset": "BTC"
"source": "Binance"
"baseValueUsd": "7190400.00000000"
"shockedValueUsd": "5392800.00000000"
"pnlUsd": "-1797600.00000000"
"appliedPct": -0.25
"shockPath": "direct"
Object(7)
"asset": "SOL"
"source": "Solana wallet"
"baseValueUsd": "1421000.00000000"
"shockedValueUsd": "568400.00000000"
"pnlUsd": "-852600.00000000"
"appliedPct": -0.6
"shockPath": "direct"
Object(7)
"asset": "ARB"
"source": "Bybit"
"baseValueUsd": "715000.00000000"
"shockedValueUsd": "464750.00000000"
"pnlUsd": "-250250.00000000"
"appliedPct": -0.35
"shockPath": "class"
Object(7)
"asset": "USDC"
"source": "Ethereum wallet"
"baseValueUsd": "2650000.00000000"
"shockedValueUsd": "2623500.00000000"
"pnlUsd": "-26500.00000000"
"appliedPct": -0.01
"shockPath": "class"
Object(7)
"asset": "USD"
"source": "Manual entry"
"baseValueUsd": "183810.44000000"
"shockedValueUsd": "183810.44000000"
"pnlUsd": "0.00000000"
"appliedPct": 0
"shockPath": "none"

Reconciliation Breaks

GET/api/v1/fund/recon/breaksPermalink →

Reconciliation breaks (differences between the ledger and venue/chain truth), with quantity/USD deltas.

Requires an Authorization: Bearer <API key> header (a nyx_dk_… developer key, minted from the developer console at /developers/console). Reflects Nyx's shadow NAV, reconciled against your fund administrator.

NameTypeRequiredDescription
status"open" | "resolved" | "ignored" | "all"Optional
limitintegerOptional
cURL
curl -s -X GET "https://nyxsuite.com/api/v1/fund/recon/breaks" \
  -H "Authorization: Bearer nyx_dk_demo000000000000000000000000000000000000000"
JavaScript
const res = await fetch("https://nyxsuite.com/api/v1/fund/recon/breaks", {
  method: "GET",
  headers: { Authorization: "Bearer nyx_dk_demo000000000000000000000000000000000000000" },
})
const data = await res.json()
Python
# GET https://nyxsuite.com/api/v1/fund/recon/breaks
import requests

res = requests.get(
    "https://nyxsuite.com/api/v1/fund/recon/breaks",
    headers={"Authorization": "Bearer nyx_dk_demo000000000000000000000000000000000000000"},
)
data = res.json()
SDK
// TypeScript (@nyxsuite/sdk)
import { NyxClient } from '@nyxsuite/sdk'

const client = new NyxClient({ apiKey: 'nyx_dk_demo000000000000000000000000000000000000000', baseUrl: 'https://nyxsuite.com/api/v1' })
const data = await client.fundReconBreaks()

# Python (nyxsuite)
from nyxsuite import NyxClient

client = NyxClient(api_key="nyx_dk_demo000000000000000000000000000000000000000", base_url="https://nyxsuite.com/api/v1")
data = client.fund_recon_breaks()
Try It
API Key
nyx_dk_dem••••••••0000
Parameters
Sample response
Object(2)
"truncated": false
"rows":
Array(1)
Object(13)
"id": "demo-break-001"
"asset": "ARB"
"venueLabel": "Bybit"
"breakType": "quantity_mismatch"
"severity": "medium"
"expectedQty": "650000.00000000"
"actualQty": "649850.00000000"
"deltaQty": "-150.00000000"
"expectedUsd": "715000.00"
"actualUsd": "714835.00"
"status": "open"
"note": null
"createdAt": "2026-07-19T06:00:00.000Z"

Alerts

GET/api/v1/fund/alertsPermalink →

The fund's configured risk-alert rules and recent alert events.

Requires an Authorization: Bearer <API key> header (a nyx_dk_… developer key, minted from the developer console at /developers/console). Reflects Nyx's shadow NAV, reconciled against your fund administrator.

NameTypeRequiredDescription
eventsLimitintegerOptional
cURL
curl -s -X GET "https://nyxsuite.com/api/v1/fund/alerts" \
  -H "Authorization: Bearer nyx_dk_demo000000000000000000000000000000000000000"
JavaScript
const res = await fetch("https://nyxsuite.com/api/v1/fund/alerts", {
  method: "GET",
  headers: { Authorization: "Bearer nyx_dk_demo000000000000000000000000000000000000000" },
})
const data = await res.json()
Python
# GET https://nyxsuite.com/api/v1/fund/alerts
import requests

res = requests.get(
    "https://nyxsuite.com/api/v1/fund/alerts",
    headers={"Authorization": "Bearer nyx_dk_demo000000000000000000000000000000000000000"},
)
data = res.json()
SDK
// TypeScript (@nyxsuite/sdk)
import { NyxClient } from '@nyxsuite/sdk'

const client = new NyxClient({ apiKey: 'nyx_dk_demo000000000000000000000000000000000000000', baseUrl: 'https://nyxsuite.com/api/v1' })
const data = await client.fundAlerts()

# Python (nyxsuite)
from nyxsuite import NyxClient

client = NyxClient(api_key="nyx_dk_demo000000000000000000000000000000000000000", base_url="https://nyxsuite.com/api/v1")
data = client.fund_alerts()
Try It
API Key
nyx_dk_dem••••••••0000
Parameters
Sample response
Object(3)
"truncated": false
"rules":
Array(1)
Object(6)
"id": "demo-rule-001"
"type": "drawdown"
"threshold": "0.10"
"direction": "below"
"enabled": true
"createdAt": "2024-03-01T00:00:00.000Z"
"events":
Array(1)
Object(8)
"id": "demo-event-001"
"ruleId": "demo-rule-001"
"type": "drawdown"
"threshold": "0.10"
"actualValue": "0.045"
"status": "resolved"
"triggeredAt": "2026-06-18T00:00:00.000Z"
"resolvedAt": "2026-06-19T00:00:00.000Z"

Propose (write) endpoints

Stage a proposal, a human approves it

These 4endpoints require an API key with the "propose" scope (a separate grant from "fund_data"), the demo key can never use them. Each stages a maker-checker proposal for a human manager to review in the NYX console and returns 201 with { proposal_id, status: "pending", note }. Pass an Idempotency-Key header to make a retry safe: replaying the same key returns the original response instead of staging a second proposal.

POST/api/v1/fund/proposals/expense

Propose accruing a new fund expense (category, amount, description, effective date) for a human manager to review and approve. Does NOT post anything itself.

POST/api/v1/fund/proposals/nav-strike

Propose striking NAV for a given valuation date, for a human manager to review and approve. Does NOT enqueue or run a strike itself.

POST/api/v1/fund/proposals/dealing-request

Propose a new subscription or redemption intake request (investor, dealing date), for a human manager to review and approve. Does NOT create the request itself.

POST/api/v1/fund/proposals/lp-report-send

Propose sending an existing LP report to the fund's LP contacts, for a human manager to review and approve. Does NOT send anything itself.