Skip to main content

Core API

Base URL: https://api.pinestake.com

Used by the pools dashboard, stake pool detail pages, home metrics, profit calculator inputs, and sandwich tooling.

Validators & stake pools

GET /validators-from-pool

Primary feed for pool ranking and /pools/[withdrawAuthority] pages.

Returns SFDP-oriented aggregates plus a validators array. Each validator may include stakePools[] with pool name, logo, withdraw authority, and delegatedLamports.

curl -s https://api.pinestake.com/validators-from-pool | jq '{total, lastSyncedAt, n: (.validators|length)}'

Top-level fields (selected)

FieldDescription
total, approved, rejected, retired, not_on_sfdp, onqueueSFDP status counts
totalStakeAggregate activated stake (SOL)
doubleZeroStake / nonDoubleZeroStakeSplit by DoubleZero participation
lastSyncedAtISO timestamp of last sync
validatorsArray of validator objects

Validator object (selected)

FieldDescription
vote, identity, name, logoIdentifiers / display
stateSFDP state (e.g. Approved)
activatedStakeLamports
commissionPrefer treating as bps when values are large (e.g. 500 = 5%)
totalApy, apyRank, tvcRankPerformance ranking
avgMedianBlockTime, blockTimeCategoryFast / Slow / Lagging
isSandwichAttacker, sandwichingProportionSandwich heuristics
clientType, clientVersionClient metadata
stakePools{ name, logoUrl, withdrawAuthority, delegatedLamports }[]
voteCostLastEpoch, tvcLastEpoch, voteCostToTvcRatio, isVoteCostOutlierVote-cost outliers
note

The website pool page does not drop validators below 1k SOL of pool stake. Rows with delegatedLamports <= 0 are skipped locally; further filtering may exist in this feed’s producer.

GET /stake-pools

Same payload shape as /validators-from-pool (shared sync). Prefer /validators-from-pool for new integrations that need pool delegation breakdowns.

GET /validators-enriched/:voteAccount

Enriched single-validator payload for /validators/[voteAccount] (history charts, stake distribution, etc.).

curl -s "https://api.pinestake.com/validators-enriched/<VOTE_PUBKEY>"

GET /validator-list

Flat list used by simpler selector UIs (e.g. calculator). Items include Stakewiz-oriented fields such as vote_identity, activated_stake (SOL), apy_estimate, commission, jito_commission_bps, skip_rate, delinquent.

GET /validator-info

Defaults for the profit calculator (Pine-oriented snapshot):

{
"solPrice": 71.73,
"apy_estimate": 5.02,
"commission": 500,
"jitoCommission": 0,
"skipRate": 0,
"delegatedStake": 218395,
"epochsPerYear": 174,
"blockRewards": 0.029
}

commission here is in basis points (divide by 100 for percent).

Metrics

GET /metrics

Home / staking terminal metrics: SOL price, pSOL quote sizes, APY history.

{
"solPrice": "71.75",
"quote": { "inAmount": "1000000000", "outAmount": "924457120" },
"apy": {
"history": [{ "avg": 6.43, "date": "...", "pine": 6.32 }],
"lastPineApy": 6.22,
"lastStake": 180872738287192,
"sanctumApy": 0.0597
}
}

GET /metrics/simple

Compact card metrics:

{ "solStaking": 180873, "apy": 6.22, "fee": 0, "stakers": 0 }

solStaking is SOL (not lamports).

Sandwich series

GET /sandwichedme

GET /sandwichedme/:vote

Time-series / metrics for sandwich dashboards. Optional query params are passed through by the website (see SandwichedmeContext / SandwichMetricsContext in the web app).

curl -s "https://api.pinestake.com/sandwichedme/<VOTE_PUBKEY>"