Partner API Copy page link
Partner data models Field definitions for requests and responses. Nullable fields can contain null; optional fields may be absent.
AdvisorDto
Field
Type
Required
Description
object
string
Yes
as_of
string
Yes
headline
string
Yes
regime
"rising", "falling", "volatile", "stable", "unknown"
Yes
bullets
string[]
Yes
Plain-language findings, each traceable to a computed figure.
top_opportunities
AdvisorOpportunityDto []
Yes
portfolio
AdvisorPortfolioDto
Yes
disclaimer
string
Yes
AdvisorOpportunityDto
Field
Type
Required
Description
vault_id
string
Yes
name
string
Yes
asset
"USDC", "USDT0"
Yes
risk_adjusted_apy
number
Yes
forecast_apy
number · nullable
Yes
recommendation
"overweight", "neutral", "underweight"
Yes
AdvisorPortfolioDto
Field
Type
Required
Description
current_value
number
Yes
uplift_vs_aave
number
Yes
uplift_vs_aave_pct
number
Yes
positions
number
Yes
ApiKeyOutputDto
Field
Type
Required
Description
id
string
Yes
object
string
Yes
label
string
Yes
secret
string
Yes
Masked secret (full shown only on creation)
prefix
string
Yes
environment
"test", "live"
Yes
scopes
string[]
Yes
partner_id
string · nullable
No
created_at
string
Yes
last_used_at
string · nullable
No
revoked
boolean
Yes
ApyHistoryDto
Field
Type
Required
Description
object
string
Yes
vault_id
string
Yes
name
string · nullable
Yes
asset
"USDC", "USDT0"
Yes
chain
string · nullable
Yes
days
number
Yes
apy_avg
number · nullable
Yes
Mean over the window. null with no observations.
observations
number
Yes
points
ApyHistoryPointDto []
Yes
ApyHistoryPointDto
Field
Type
Required
Description
t
number
Yes
Epoch ms of the observation.
apy
number
Yes
AttributedUser
Schema: UserRecord & object
BalanceDto
Field
Type
Required
Description
object
string
Yes
user_id
string · nullable
Yes
asset
"USDC", "USDT0"
Yes
principal
number
Yes
current_value
number
Yes
accrued_yield
number
Yes
positions
number
Yes
Active positions folded into this row.
BalanceSnapshotDto
Field
Type
Required
Description
object
string
Yes
date
string
Yes
t
number
Yes
Epoch ms of the day boundary.
principal
number
Yes
value
number
Yes
accrued
number
Yes
positions
number
Yes
users
number
Yes
by_asset
SnapshotAssetDto []
Yes
CampaignOutputDto
Field
Type
Required
Description
id
string
Yes
object
string
Yes
partner_id
string
Yes
name
string
Yes
slug
string
Yes
utm_source
string · nullable
No
utm_medium
string · nullable
No
status
"active", "paused"
Yes
created_at
string
Yes
updated_at
string
Yes
ChainHealth
Field
Type
Required
Description
key
string
Yes
name
string
Yes
chainId
integer · nullable
Yes
status
"operational", "degraded", "down"
Yes
block_lag_s
number · nullable
Yes
rpc_error
string · nullable
Yes
Field
Type
Required
Description
name
string
Yes
slug
string
No
Unique within partner
utm_source
string
No
utm_medium
string
No
Field
Type
Required
Description
label
string
Yes
environment
"test"
No
Only test keys can be created via API. default: test
scopes
"read", "write", "partner:read", "partner:admin"
No
Permitted scopes. Wildcards and keys:admin are not assignable.
partner_id
string
No
Bind key to a partner for scoped access
Field
Type
Required
Description
name
string
Yes
slug
string
No
URL-friendly slug (auto-generated from name if omitted)
contact_email
string
No
webhook_url
string
No
revenue_share_pct
number
No
Revenue share percentage (0–1) default: 0.15
metadata
object
No
Field
Type
Required
Description
external_id
string
Yes
Your customer id — unique per user.
label
string
No
email
string
No
wallets
string[]
No
metadata
object
No
Field
Type
Required
Description
url
string
Yes
events
string[]
No
Event types, or [""] for all. Default: [" "].
active
boolean
No
default: True
DecisionAlternativeDto
Field
Type
Required
Description
vault_id
string
Yes
name
string
Yes
provider
string
Yes
apy
number
Yes
risk_tier
string
Yes
DecisionDto
Field
Type
Required
Description
id
string
Yes
object
string
Yes
at
string
Yes
position_id
string
Yes
user_id
string · nullable
Yes
asset
"USDC", "USDT0"
Yes
type
"initial_routing", "rebalance"
Yes
from_vault
string · nullable
Yes
null for initial_routing.
to_vault
string
Yes
apy_before
number · nullable
Yes
apy_after
number · nullable
Yes
expected_uplift_bps
number · nullable
Yes
apy_after - apy_before, in bps.
reason
string · nullable
No
alternatives
DecisionAlternativeDto []
Yes
Venues available for this asset at read time.
rationale
string
Yes
status
string
Yes
DeletedResource
Field
Type
Required
Description
id
string
Yes
deleted
boolean
Yes
ErrorEnvelope
Field
Type
Required
Description
error
object
Yes
LedgerEntryDto
Field
Type
Required
Description
id
string
Yes
object
string
Yes
user_id
string · nullable
Yes
position_id
string
Yes
wallet
string
Yes
asset
"USDC", "USDT0"
Yes
vault_id
string
Yes
at
string
Yes
type
"deposit", "withdraw", "close", "accrual"
Yes
amount
number
Yes
Signed: withdrawals and closes are negative.
balance_after
number
Yes
Running balance for this position after the row.
settled
boolean
Yes
false for accrual on an open position — unrealized until it settles on-chain.
ref
string
Yes
Source event id.
Field
Type
Required
Description
total
number
Yes
Total rows matching the query, across all pages.
limit
number
Yes
Page size in effect (1-200).
has_more
boolean
Yes
next_cursor
string · nullable
Yes
Pass back as ?cursor= for the next page. null on the last page.
PartnerCreated
PartnerDeposits
Field
Type
Required
Description
object
"partner_deposits"
Yes
partner_id
string
Yes
total
number
Yes
count
integer
Yes
deposits
object[]
Yes
PartnerOutputDto
Field
Type
Required
Description
id
string
Yes
object
string
Yes
name
string
Yes
slug
string
Yes
contact_email
string · nullable
No
webhook_url
string · nullable
No
revenue_share_pct
number
Yes
status
"active", "disabled"
Yes
metadata
object
No
created_at
string
Yes
updated_at
string
Yes
PartnerPoints
Field
Type
Required
Description
object
"partner_points"
Yes
partner_id
string
Yes
total_points
number
Yes
users
object[]
Yes
PartnerPosition
Field
Type
Required
Description
id
string
Yes
object
"position"
Yes
user_id
string
Yes
wallet
string
Yes
asset
string
Yes
chain
string
Yes
vault_id
string
Yes
principal
number
Yes
apy
number
Yes
Annualized rate as a decimal fraction. 0.052 means 5.2%.
strategy
string
Yes
status
string
Yes
last_rebalance_at
string · nullable
Yes
format: date-time
withdrawn_total
number
Yes
opened_at
string
Yes
format: date-time
updated_at
string
Yes
format: date-time
tx_hash
string · nullable
Yes
partner_id
string · nullable
Yes
campaign_id
string · nullable
Yes
current_value
number
Yes
accrued_yield
number
Yes
PartnerSummary
Field
Type
Required
Description
object
"partner_summary"
Yes
partner
object
Yes
users
object
Yes
deposits
object
Yes
tvl
object
Yes
yield
object
Yes
points
object
Yes
revenue
object
Yes
as_of
string
Yes
format: date-time
PartnerSummaryOutputDto
PartnerTvl
Field
Type
Required
Description
object
"partner_tvl"
Yes
partner_id
string
Yes
tvl
number
Yes
breakdown
object[]
Yes
PartnerWithdrawals
Field
Type
Required
Description
object
"partner_withdrawals"
Yes
partner_id
string
Yes
total
number
Yes
count
integer
Yes
PartnerYield
Field
Type
Required
Description
object
"partner_yield"
Yes
partner_id
string
Yes
total_yield
number
Yes
positions
object[]
Yes
ReconciliationReportDto
Field
Type
Required
Description
object
string
Yes
as_of
string
Yes
scope
string
Yes
status
"reconciled", "mismatch", "unavailable"
Yes
"unavailable" when MONITOR_API_URL is unset or monitoring is unreachable.
unavailable_reason
string
No
recorded_total
number
Yes
onchain_total
number · nullable
Yes
discrepancy
number · nullable
Yes
diff_bps
number · nullable
Yes
tolerance_bps
number
Yes
RECONCILIATION_TOLERANCE_BPS.
positions
number
Yes
observed_at
string · nullable
Yes
observed_networks
string[]
Yes
breakdown
ReconciliationRowDto []
Yes
open_discrepancies
ReconciliationRowDto []
Yes
Rows past the tolerance.
ReconciliationRowDto
Field
Type
Required
Description
asset
"USDC", "USDT0"
Yes
recorded
number
Yes
onchain
number · nullable
Yes
null when monitoring could not supply this asset.
discrepancy
number · nullable
Yes
diff_bps
number · nullable
Yes
Discrepancy in basis points of the chain balance.
observed
boolean
Yes
RegimeDto
Field
Type
Required
Description
object
string
Yes
as_of
string
Yes
regime
"rising", "falling", "volatile", "stable", "unknown"
Yes
Most cautious classification across assets; "unknown" until enough history exists.
description
string
Yes
per_asset
RegimePerAssetDto []
Yes
RegimePerAssetDto
Field
Type
Required
Description
asset
"USDC", "USDT0"
Yes
regime
"rising", "falling", "volatile", "stable", "unknown"
Yes
blend_apy
number · nullable
Yes
Allocation-weighted blend, latest observation.
trend_slope_bps_day
number · nullable
Yes
volatility
number · nullable
Yes
observations
number
Yes
RevenueShareOutputDto
Field
Type
Required
Description
object
string
Yes
partner_id
string
Yes
partner_name
string
Yes
revenue_share_pct
number
Yes
protocol_fee_rate
number
Yes
tvl
number
Yes
protocol_blend_apy
number
Yes
Protocol-wide allocation-weighted APY across all active Thesauros vaults. Identical for every partner — only tvl and revenue_share_pct are partner-specific.
annual
RevenueTimescaleDto
Yes
daily
RevenueTimescaleDto
Yes
as_of
string
Yes
RevenueTimescaleDto
Field
Type
Required
Description
yield
number
Yes
protocol_fees
number
Yes
partner_revenue
number
Yes
RevokedApiKey
Field
Type
Required
Description
id
string
Yes
revoked
boolean
Yes
ServiceHealth
Field
Type
Required
Description
id
string
Yes
name
string
Yes
status
"operational", "degraded", "down"
Yes
latency_ms
number · nullable
Yes
detail
string
No
ServiceStatus
Field
Type
Required
Description
object
"status"
Yes
status
"operational", "degraded", "down"
Yes
version
string
Yes
uptime_s
integer
Yes
services
ServiceHealth []
Yes
chains
ChainHealth []
Yes
updated_at
string
Yes
format: date-time
SignalDto
Field
Type
Required
Description
object
string
Yes
vault_id
string
Yes
name
string
Yes
provider
string
Yes
asset
"USDC", "USDT0"
Yes
chain
string
Yes
risk_tier
"bluechip", "core", "opportunistic"
Yes
apy
number
Yes
Current APY as a fraction (0.076 = 7.6%).
volatility
number · nullable
Yes
Stddev of observed APY. null while insufficient_history is true — withheld rather than estimated.
trend_slope_bps_day
number · nullable
Yes
Trend in bps/day. null while insufficient_history is true — withheld rather than estimated.
forecast_apy
number · nullable
Yes
7-day extrapolation. null while insufficient_history is true — withheld rather than estimated.
risk_factor
number
Yes
Risk multiplier implied by risk_tier.
risk_adjusted_apy
number
Yes
apy * risk_factor - 0.5 * volatility.
observations
number
Yes
Hourly APY snapshots behind these statistics.
insufficient_history
boolean
Yes
True when fewer than 3 observations exist.
rank
number
Yes
1 = best risk-adjusted venue.
recommendation
"overweight", "neutral", "underweight"
Yes
SnapshotAssetDto
Field
Type
Required
Description
asset
"USDC", "USDT0"
Yes
principal
number
Yes
value
number
Yes
accrued
number
Yes
SummaryDepositsDto
Field
Type
Required
Description
total
number
Yes
count
number
Yes
SummaryPointsDto
Field
Type
Required
Description
total
number
Yes
SummaryRevenueDto
Field
Type
Required
Description
revenue_share_pct
number
Yes
annual_partner_revenue
number
Yes
daily_partner_revenue
number
Yes
SummaryTvlDto
Field
Type
Required
Description
total
number
Yes
breakdown
TvlBreakdownDto []
Yes
SummaryUsersDto
Field
Type
Required
Description
total
number
Yes
SummaryYieldDto
Field
Type
Required
Description
total
number
Yes
TvlBreakdownDto
Field
Type
Required
Description
asset
string
Yes
tvl
number
Yes
positions
number
Yes
Field
Type
Required
Description
name
string
No
slug
string
No
Unique within partner
utm_source
string
No
utm_medium
string
No
status
"active", "disabled"
No
Disable a campaign without deleting (soft-disable).
Field
Type
Required
Description
name
string
No
slug
string
No
URL-friendly slug (auto-generated from name if omitted)
contact_email
string
No
webhook_url
string
No
revenue_share_pct
number
No
Revenue share percentage (0–1) default: 0.15
metadata
object
No
status
"active", "disabled"
No
Disable a partner without deleting (soft-disable). Disabled partners stay in DB for history.
Field
Type
Required
Description
url
string
No
events
string[]
No
active
boolean
No
UpliftDto
Field
Type
Required
Description
object
string
Yes
as_of
string
Yes
scope
string
Yes
totals
UpliftTotalsDto
Yes
positions
UpliftRowDto []
Yes
UpliftRowDto
Field
Type
Required
Description
object
string
Yes
position_id
string
Yes
user_id
string · nullable
Yes
asset
"USDC", "USDT0"
Yes
vault_id
string
Yes
principal
number
Yes
current_value
number
Yes
apy
number
Yes
aave_baseline
number · nullable
Yes
Value under the passive baseline venue. null when the asset has no baseline venue.
baseline_provider
string
Yes
Baseline venue provider (ANALYTICS_BASELINE_PROVIDER).
baseline_apy
number · nullable
Yes
hold_baseline
number
Yes
Value had the position stayed in its origin vault.
uplift_vs_aave
number · nullable
Yes
uplift_vs_hold
number
Yes
realized_uplift
number · nullable
Yes
Accrued so far vs the baseline.
projected_uplift_annual
number · nullable
Yes
Today's APY spread annualised over principal.
UpliftTotalsDto
Field
Type
Required
Description
principal
number
Yes
current_value
number
Yes
aave_baseline
number
Yes
hold_baseline
number
Yes
uplift_vs_aave
number
Yes
uplift_vs_hold
number
Yes
uplift_vs_aave_pct
number
Yes
baseline_coverage
number
Yes
Share of positions whose asset has a baseline venue; the rest are excluded from baseline totals.
UsageReport
Field
Type
Required
Description
object
"usage"
Yes
range
"24h", "7d", "30d"
Yes
totals
object
Yes
series
object[]
Yes
top_endpoints
object[]
Yes
UserAttribution
Field
Type
Required
Description
id
string
Yes
object
string
Yes
user_id
string
Yes
partner_id
string
Yes
campaign_id
string · nullable
Yes
source
string
Yes
attributed_at
string
Yes
format: date-time
UserLedgerEvent
Field
Type
Required
Description
id
string
Yes
object
"ledger_entry"
Yes
user_id
string
Yes
position_id
string
Yes
asset
string · nullable
Yes
type
string
Yes
amount
number
Yes
apy
number · nullable
Yes
Annualized rate as a decimal fraction. 0.052 means 5.2%.
vault_id
string · nullable
Yes
note
string · nullable
Yes
at
string
Yes
format: date-time
UserRecord
Field
Type
Required
Description
id
string
Yes
object
"user"
Yes
external_id
string · nullable
Yes
label
string
Yes
email
string · nullable
Yes
wallets
string[]
Yes
status
string
Yes
metadata
object
Yes
created_at
string
Yes
format: date-time
updated_at
string
Yes
format: date-time
VaultDto
Field
Type
Required
Description
object
string
Yes
id
string
Yes
name
string
Yes
provider
string
Yes
asset
"USDC", "USDT0"
Yes
chain
string
Yes
apy
number
Yes
Current APY as a fraction.
apy_7d_avg
number · nullable
Yes
Mean of observed hourly snapshots over 7 days. null until observations exist.
apy_30d_avg
number · nullable
Yes
Same over 30 days.
tvl_usd
number
Yes
capacity_usd
number
Yes
risk_tier
"bluechip", "core", "opportunistic"
Yes
status
"active", "paused"
Yes
allocation_pct
number
Yes
WebhookDelivery
Field
Type
Required
Description
id
string
Yes
object
"delivery"
Yes
webhook_id
string
Yes
partner_id
string
Yes
url
string
Yes
event
string
Yes
payload
object
Yes
signature
string
Yes
status
"delivered", "failed"
Yes
attempts
integer
Yes
at
string
Yes
format: date-time
latency_ms
number
Yes
WebhookEndpoint
Field
Type
Required
Description
id
string
Yes
object
"webhook"
Yes
partner_id
string
Yes
url
string
Yes
events
string[]
Yes
secret
string
Yes
Signing secret, returned once at creation; masked on list and update.
active
boolean
Yes
created_at
string
Yes
format: date-time
WebhookEventTypes
Field
Type
Required
Description
object
"webhook_events"
Yes
events
string[]
Yes
YieldHistory
Field
Type
Required
Description
object
"yield_history"
Yes
scope
"protocol"
Yes
asset
string
Yes
blend_apy
number
Yes
Annualized rate as a decimal fraction. 0.052 means 5.2%.
observations
integer
Yes
history
object[]
Yes
breakdown
object[]
Yes
Build with us. Bring your product flow. We'll map the integration together.
Discuss your integration
Continue reading Sandbox API