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)
| Field | Description |
|---|---|
total, approved, rejected, retired, not_on_sfdp, onqueue | SFDP status counts |
totalStake | Aggregate activated stake (SOL) |
doubleZeroStake / nonDoubleZeroStake | Split by DoubleZero participation |
lastSyncedAt | ISO timestamp of last sync |
validators | Array of validator objects |
Validator object (selected)
| Field | Description |
|---|---|
vote, identity, name, logo | Identifiers / display |
state | SFDP state (e.g. Approved) |
activatedStake | Lamports |
commission | Prefer treating as bps when values are large (e.g. 500 = 5%) |
totalApy, apyRank, tvcRank | Performance ranking |
avgMedianBlockTime, blockTimeCategory | Fast / Slow / Lagging |
isSandwichAttacker, sandwichingProportion | Sandwich heuristics |
clientType, clientVersion | Client metadata |
stakePools | { name, logoUrl, withdrawAuthority, delegatedLamports }[] |
voteCostLastEpoch, tvcLastEpoch, voteCostToTvcRatio, isVoteCostOutlier | Vote-cost outliers |
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>"