{"openapi":"3.1.0","info":{"title":"Bitcoin Valuation Models API","version":"1.0.0","description":"The Bitcoin cycle-timing valuation models that tell you whether BTC is historically cheap or expensive right now, computed live and keyless from price (Yahoo Finance daily closes) and on-chain data (the public blockchain.com charts feed). These are not raw time series and not a price feed — they are the derived indicators that on-chain analysts and cycle traders watch to judge where Bitcoin sits between deep value and euphoria. The mayer endpoint returns the Mayer Multiple — price divided by its 200-day moving average — the simplest and most durable over/undervaluation gauge (buying under ~1 and trimming over ~2.4 has historically timed cycles well). The puell endpoint returns the Puell Multiple — daily miner revenue divided by its 365-day average — a miner-side gauge that marks capitulation bottoms (under ~0.5) and tops (over ~4). The nvt endpoint returns the NVT ratio — market cap divided by the 90-day average of on-chain transaction value — Bitcoin's answer to a price/earnings ratio, where a high reading means price is rich relative to the value actually settling on-chain. The s2f endpoint returns the Stock-to-Flow scarcity ratio — circulating supply divided by the realised annual issuance (the flow measured empirically from the supply actually minted over the last 365 days); the S2F price model derived from it is included but clearly flagged as controversial and historically over-optimistic (the response also reports how far the model sits above the actual price). The summary endpoint puts all four side by side with an aggregate cycle read. This is the valuation-model / cycle-indicator cut — distinct from the raw Bitcoin on-chain time-series feeds (which report hashrate, miner revenue and transaction counts but not the derived ratios), the network-security feed (difficulty, hashrate, halving), the block-explorer feed and the crypto-macro correlation feed. Ratios are unitless; model and actual prices are in USD. No key, nothing stored beyond a short cache.","contact":{"name":"PremiumApi","url":"https://www.oanor.com/by/premiumapi"}},"servers":[{"url":"https://api.oanor.com/bitcoinvaluation-api","description":"oanor gateway"}],"tags":[{"name":"Summary"},{"name":"Mayer"},{"name":"Puell"},{"name":"NVT"},{"name":"StockToFlow"},{"name":"Meta"}],"components":{"securitySchemes":{"oanorKey":{"type":"apiKey","in":"header","name":"x-oanor-key","description":"Get your key at https://www.oanor.com/developer/keys"}}},"security":[{"oanorKey":[]}],"paths":{"/v1/summary":{"get":{"operationId":"get_v1_summary","tags":["Summary"],"summary":"All four cycle indicators + aggregate cycle read","description":"","parameters":[],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"note":"All four Bitcoin cycle-valuation indicators in one call — Mayer Multiple, Puell Multiple, NVT ratio and Stock-to-Flow — with an aggregate cycle_read derived from the two cleanest mean-reverting gauges (Mayer + Puell). A quick 'where are we in the cycle' snapshot. See each indicator's own endpoint for detail and thresholds. Updates daily, cached ~10m.","source":"Yahoo Finance + blockchain.com charts, keyless","indicator":"Bitcoin valuation dashboard","nvt_ratio":211.8,"price_usd":63604.69,"cycle_read":"below fair value","stock_to_flow":122.3,"mayer_multiple":0.817,"puell_multiple":0.629},"meta":{"timestamp":"2026-06-12T19:35:44.237Z","request_id":"14f7e2ac-9879-4596-be32-286fa8c239ca"},"status":"ok","message":"Summary retrieved successfully","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}},"/v1/mayer":{"get":{"operationId":"get_v1_mayer","tags":["Mayer"],"summary":"Mayer Multiple (price / 200-day moving average)","description":"","parameters":[],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"note":"The Mayer Multiple = current Bitcoin price / its 200-day moving average — the most durable over/undervaluation gauge. Below ~1 has historically been a good accumulation zone; above ~2.4 has marked overheated tops. Computed from Yahoo Finance daily closes. Updates daily, cached ~10m.","zone":"undervalued","source":"Yahoo Finance (BTC-USD daily), keyless","indicator":"Mayer Multiple","price_usd":63604.69,"sma_200d_usd":77884.8,"mayer_multiple":0.817},"meta":{"timestamp":"2026-06-12T19:35:44.337Z","request_id":"f19ddaf5-0d88-4c72-a74a-b00cbe32bc16"},"status":"ok","message":"Mayer Multiple retrieved successfully","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}},"/v1/puell":{"get":{"operationId":"get_v1_puell","tags":["Puell"],"summary":"Puell Multiple (miner revenue / 365-day average)","description":"","parameters":[],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"note":"The Puell Multiple = today's USD miner revenue / its 365-day average — a miner-side cycle gauge. Below ~0.5 marks miner capitulation and historical bottoms; above ~4 marks tops. Computed from the blockchain.com miners-revenue series. Updates daily, cached ~10m.","zone":"value","source":"blockchain.com charts (miners-revenue), keyless","indicator":"Puell Multiple","ma_365d_usd":43737803,"puell_multiple":0.629,"daily_miner_revenue_usd":27490584},"meta":{"timestamp":"2026-06-12T19:35:44.436Z","request_id":"fa353d57-8ed3-451f-8442-8d3cb922ca0a"},"status":"ok","message":"Puell Multiple retrieved successfully","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}},"/v1/nvt":{"get":{"operationId":"get_v1_nvt","tags":["NVT"],"summary":"NVT ratio (market cap / 90-day on-chain tx value)","description":"","parameters":[],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"note":"The NVT ratio (NVT Signal) = market cap / 90-day average of daily on-chain transaction value (USD) — Bitcoin's price/earnings analogue. A high NVT means the network's valuation is rich relative to the economic value actually moving on-chain; a low NVT means transaction value is supporting the price. Thresholds are heuristic. Computed from blockchain.com market-cap and estimated-transaction-volume-usd. Updates daily, cached ~10m.","source":"blockchain.com charts (market-cap, estimated-transaction-volume-usd), keyless","reading":"rich — price high relative to on-chain value settled","indicator":"NVT Ratio (NVT Signal, 90-day)","nvt_ratio":211.8,"market_cap_usd":1275464084672,"tx_volume_90d_avg_usd":6023349787},"meta":{"timestamp":"2026-06-12T19:35:44.536Z","request_id":"fb950061-f1fe-4ca4-91f5-a69363f2afe0"},"status":"ok","message":"NVT retrieved successfully","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}},"/v1/s2f":{"get":{"operationId":"get_v1_s2f","tags":["StockToFlow"],"summary":"Stock-to-Flow scarcity ratio (+ debated model price)","description":"","parameters":[],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"note":"Stock-to-Flow = circulating supply / realised annual issuance (the flow is measured empirically as the actual supply minted over the last 365 days, not a theoretical figure). A higher ratio means greater scarcity; each halving roughly doubles it. The s2f_model_price_usd is the much-debated PlanB S2F price model (≈0.4 × S2F³): it has historically OVER-estimated Bitcoin's price by a wide margin and is provided for reference only, NOT as a forecast or investment advice. Updates daily, cached ~10m.","source":"blockchain.com charts (total-bitcoins) + Yahoo Finance (BTC-USD), keyless","indicator":"Stock-to-Flow","price_usd":63604.69,"stock_btc":20041547,"stock_to_flow":122.3,"annual_flow_btc":163900,"model_vs_actual":11.5,"s2f_model_price_usd":731336},"meta":{"timestamp":"2026-06-12T19:35:44.613Z","request_id":"6b9acd93-c028-4672-8f1f-0f249da4e55c"},"status":"ok","message":"Stock-to-Flow retrieved successfully","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}},"/v1/meta":{"get":{"operationId":"get_v1_meta","tags":["Meta"],"summary":"Service metadata","description":"","parameters":[],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"note":"All endpoints take no parameters. Ratios are unitless; prices in USD. Indicators update daily; a ~10-minute cache fronts the upstreams. The S2F model price is a controversial, historically over-optimistic model included for reference only — not a forecast.","source":"Yahoo Finance (BTC-USD daily) + blockchain.com charts, keyless, live","service":"bitcoinvaluation-api","endpoints":{"GET /v1/nvt":"NVT ratio (market cap / 90-day on-chain transaction value).","GET /v1/s2f":"Stock-to-Flow scarcity ratio (+ debated model price).","GET /v1/meta":"This document.","GET /v1/mayer":"Mayer Multiple (price / 200-day moving average).","GET /v1/puell":"Puell Multiple (miner revenue / 365-day average).","GET /v1/summary":"All four indicators + an aggregate cycle read."},"description":"Bitcoin cycle-timing valuation models, live and keyless — the derived indicators that tell you whether BTC is historically cheap or expensive right now, from price (Yahoo Finance) and on-chain data (blockchain.com). The mayer endpoint gives the Mayer Multiple (price / 200-day MA); puell the Puell Multiple (miner revenue / 365-day MA); nvt the NVT ratio (market cap / 90-day on-chain transaction value); s2f the Stock-to-Flow scarcity ratio (with the debated S2F model price clearly flagged); summary puts all four together with an aggregate cycle read. The valuation-model / cycle-indicator cut — distinct from the raw on-chain time-series feeds, the network-security feed (difficulty/hashrate/halving), the block-explorer feed and the crypto-macro correlation feed.","sample_mayer":{"mayer_multiple":0.817},"upstream_status":"ok"},"meta":{"timestamp":"2026-06-12T19:35:53.647Z","request_id":"edb952a7-a3b9-48d4-9c69-2b5b5baf46e7"},"status":"ok","message":"Meta","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}}},"x-oanor-pricing":[{"slug":"free","name":"Free","price_cents_month":0,"monthly_call_quota":650,"rps_limit":2,"hard_limit":true},{"slug":"starter","name":"Starter","price_cents_month":2300,"monthly_call_quota":24000,"rps_limit":6,"hard_limit":true},{"slug":"pro","name":"Pro","price_cents_month":7700,"monthly_call_quota":125000,"rps_limit":16,"hard_limit":true},{"slug":"scale","name":"Scale","price_cents_month":21300,"monthly_call_quota":620000,"rps_limit":40,"hard_limit":true}],"x-oanor-marketplace-url":"https://www.oanor.com/api/bitcoinvaluation-api"}