If you've ever tried to build a dynasty fantasy football tool — a Sleeper league dashboard, a Discord trade bot, a spreadsheet plugin — you've probably hit the same wall I did: every source of player trade values is either locked behind a paid API key, rate-limited into uselessness, or only available by scraping a webpage (please don't).
So Dynasty Trade Values is opening up two read-only endpoints, free, no key, no signup, CORS-enabled so you can call them straight from browser JS:
GET /wp-json/dtc/v1/public/player-valuesGET /wp-json/dtc/v1/public/pick-values
Player values
https://dynastytradevalues.com/wp-json/dtc/v1/public/player-values?format=1qb&position=RB&limit=50
Params (all optional):
| param | values | default |
|---|---|---|
| format | 1qb, sf | 1qb |
| position | QB, RB, WR, TE | all |
| limit | 1–2000 | 1000 |
Response:
{
"generated_at": "2026-08-12 14:16:05",
"format": "1qb",
"count": 3,
"source": { "name": "Dynasty Trade Values", "url": "https://dynastytradevalues.com/" },
"players": [
{
"rank": 1,
"name": "Bijan Robinson",
"slug": "bijan-robinson",
"team": "ATL",
"position": "RB",
"value": 9890,
"url": "https://dynastytradevalues.com/dynasty-trade-value/bijan-robinson/"
}
]
}
Pick values
https://dynastytradevalues.com/wp-json/dtc/v1/public/pick-values?limit=50
Same response shape, picks array instead of players. Pick values aren't format-split (yet), so format has no effect here.
Try it right now
No key, no auth header, works straight from a browser console or a CodePen:
fetch('https://dynastytradevalues.com/wp-json/dtc/v1/public/player-values?position=QB&limit=10')
.then(r => r.json())
.then(data => console.table(data.players));
Where the values come from
Player values are computed from ADP/market data synced from multiple providers (Sleeper, Fantasy Football Calculator, with a CSV fallback layer) and recalculated regularly — not scraped from any other site's published rankings. Pick values use an original round/slot/years-out decay formula, not copied from a competitor's chart. Every value is also admin-correctable when the algorithm misses something obviously wrong (injury, retirement, etc.), so the numbers stay sane between syncs.
A few notes
-
Rate limits: none enforced yet — please be a good citizen and cache results client-side (
generated_attells you how fresh the data is; it doesn't change more than once a day). -
Stability: these two
/public/*routes are a stable contract — I won't change the response shape without warning. Internal routes under/dtc/v1/(not documented here) are not part of this contract and can change anytime. - Attribution: not required, but a link back to dynastytradevalues.com is always appreciated if you build something with this.
If you build something with it — a Discord bot, a Sleeper dashboard widget, a spreadsheet importer — drop a comment, I'd love to see it and will link to it from the docs.
Top comments (0)