# Table of Contents - [Introduction | Synth API](#introduction-synth-api) - [Getting Started | Synth API](#getting-started-synth-api) - [Credits and Pricing | Synth API](#credits-and-pricing-synth-api) - [Authentication | Synth API](#authentication-synth-api) - [MCP | Synth API](#mcp-synth-api) - [Assets | Synth API](#assets-synth-api) - [Trading | Synth API](#trading-synth-api) - [Insights | Synth API](#insights-synth-api) - [Error Handling | Synth API](#error-handling-synth-api) - [Glossary | Synth API](#glossary-synth-api) - [Polymarket | Synth API](#polymarket-synth-api) - [Options | Synth API](#options-synth-api) - [Predictions | Synth API](#predictions-synth-api) - [Prediction Percentiles | Synth API](#prediction-percentiles-synth-api) - [Endpoints Overview | Synth API](#endpoints-overview-synth-api) - [Risk Management | Synth API](#risk-management-synth-api) - [Volatility | Synth API](#volatility-synth-api) - [Email Protection | Cloudflare](#email-protection-cloudflare) - [Volatility (old) | Synth API](#volatility-old-synth-api) --- # Introduction | Synth API Synth API offers programmatic access to probabilistic price forecasts for Equities, Commodities and Cryptocurrencies powered by a decentralized network of machine learning models. The API equips traders, developers, and institutions with predictive intelligence to gain a competitive edge, identify opportunities, and make informed decisions in dynamic markets. [hashtag](https://docs.synthdata.co/#synth-api-features) Synth API Features -------------------------------------------------------------------------------- ### [hashtag](https://docs.synthdata.co/#probabilistic-forecasts-not-point-predictions) Probabilistic Forecasts, Not Point Predictions Unlike traditional forecasting APIs that return a single price prediction, Synth delivers **ensemble predictions** consisting of 1,000 simulated price paths. This probabilistic approach provides: * **Full probability distributions** — Understand the complete range of possible outcomes * **Confidence intervals** — Quantify uncertainty in your predictions * **Risk-adjusted insights** — Make decisions based on probability, not guesses * **Realistic market dynamics** — Captures volatility clustering, fat tails, and mean reversion ### [hashtag](https://docs.synthdata.co/#powered-by-the-worlds-highest-paying-data-science-competition) Powered by The World's Highest Paying Data Science Competition Synth runs on Bittensor **Subnet 50**, where 200+ machine learning models compete to generate the most accurate forecasts: * **Continuous competition** — Data scientists are scored using CRPS (Continuous Ranked Probability Score) * **Quality over quantity** — Only top-performing data scientists contribute to API responses * **No single point of failure** — Decentralized architecture ensures reliability * **Transparent performance** — All data scientists scores are publicly auditable ### [hashtag](https://docs.synthdata.co/#battle-tested-accuracy) Battle-Tested Accuracy All predictions are evaluated against actual outcomes using industry-standard metrics: * **CRPS scoring** — Measures both calibration and sharpness of probabilistic forecasts * **Real-time validation** — Data scientists are continuously scored against benchmark volatility metrics such as GARCH and GBM * **Leaderboard transparency** — Track top performers and their accuracy over time [hashtag](https://docs.synthdata.co/#multi-asset-coverage) Multi-Asset Coverage ------------------------------------------------------------------------------------ The API consolidates predictions across multiple asset classes: * **Cryptocurrencies**: BTC, ETH, SOL * **Commodities**: Gold (XAU) * **Equities**: S&P 500 (SPYX), NVIDIA (NVDAX), GOOGL (GOOGLX), TSLA (TSLAX), AAPL (AAPLX) [hashtag](https://docs.synthdata.co/#advanced-analytics-and-insights) Advanced Analytics & Insights -------------------------------------------------------------------------------------------------------- Beyond raw predictions, Synth transforms probabilistic forecasts into actionable intelligence. ### [hashtag](https://docs.synthdata.co/#volatility-analysis) Volatility Analysis * Forward-looking and realized volatility metrics * Price distribution percentiles over forecast horizon * Historical volatility context ### [hashtag](https://docs.synthdata.co/#options-pricing) Options Pricing * Theoretical call and put prices derived from ensemble forecasts * Multi-strike coverage around current price ### [hashtag](https://docs.synthdata.co/#risk-management) Risk Management * Liquidation probability analysis for leveraged positions * Dynamic stop-loss levels from price distributions * Tail risk assessments ### [hashtag](https://docs.synthdata.co/#defi-optimization) DeFi Optimization * Optimal liquidity provider (LP) ranges for Uniswap V3 * Impermanent loss estimates * Probability of staying within LP bounds ### [hashtag](https://docs.synthdata.co/#market-intelligence) Market Intelligence * Comparison with Polymarket prediction markets * Cross-market arbitrage opportunities [hashtag](https://docs.synthdata.co/#use-cases) Use Cases -------------------------------------------------------------- ### [hashtag](https://docs.synthdata.co/#quantitative-trading) Quantitative Trading Build sophisticated trading strategies using probability distributions: * **Directional signals** — Trade when probability > threshold * **Position sizing** — Use Kelly Criterion with probabilistic forecasts * **Risk management** — Set stop-losses at confidence intervals ### [hashtag](https://docs.synthdata.co/#options-trading) Options Trading Price and trade options with theoretical fair values: * **Find mispriced options** — Compare Synth prices vs. market * **Construct spreads** — Optimize bull/bear spreads * **Hedge portfolios** — Calculate optimal hedge ratios ### [hashtag](https://docs.synthdata.co/#risk-management-1) Risk Management Monitor and manage portfolio risk in real-time: * **Liquidation monitoring** — Track leveraged position risk * **Portfolio VaR** — Calculate value-at-risk across assets * **Tail risk** — Understand extreme outcome probabilities ### [hashtag](https://docs.synthdata.co/#ai-and-automation) AI & Automation Integrate with AI agents and trading bots: * **LLM integration** — Connect to Claude, GPT-4, or other AI models * **Autonomous trading** — Build AI-powered trading systems * **Natural language analysis** — Generate market commentary ### [hashtag](https://docs.synthdata.co/#defi-strategies) DeFi Strategies Optimize yield farming and liquidity provision: * **LP range optimization** — Set optimal Uniswap V3 ranges * **Impermanent loss forecasting** — Estimate IL before providing liquidity * **Yield comparison** — Compare expected returns across pools [hashtag](https://docs.synthdata.co/#api-structure) API Structure ---------------------------------------------------------------------- ### [hashtag](https://docs.synthdata.co/#base-url) Base URL ### [hashtag](https://docs.synthdata.co/#authentication) Authentication circle-info All requests require an API key in the header: ### [hashtag](https://docs.synthdata.co/#main-endpoint-categories) Main Endpoint Categories Prediction Percentiles — Core probabilistic forecasts * `/insights/prediction-percentiles` — Prediction percentiles Insights — Advanced analytics * `/insights/volatility` — Volatility metrics * `/insights/option-pricing` — Options prices * `/insights/liquidation` — Liquidation probabilities * `/insights/lp-bounds` — LP range optimization * `/insights/polymarket/*` — Prediction market comparisons [hashtag](https://docs.synthdata.co/#support-and-community) Support & Community ------------------------------------------------------------------------------------ * **Documentation**: You're reading it * **Discord**: [Join our communityarrow-up-right](https://discord.gg/bittensor) (Scroll down the Bittensor channels to Synth) * **GitHub**: [mode-network/synth-subnetarrow-up-right](https://github.com/mode-network/synth-subnet) * **API Specification:** [https://api.synthdata.co/docs/swagger.jsonarrow-up-right](https://api.synthdata.co/docs/swagger.json) * **Email**: [\[email protected\]](https://docs.synthdata.co/cdn-cgi/l/email-protection) [NextGetting Startedchevron-right](https://docs.synthdata.co/getting-started) Last updated 21 days ago * [Synth API Features](https://docs.synthdata.co/#synth-api-features) * [Probabilistic Forecasts, Not Point Predictions](https://docs.synthdata.co/#probabilistic-forecasts-not-point-predictions) * [Powered by The World's Highest Paying Data Science Competition](https://docs.synthdata.co/#powered-by-the-worlds-highest-paying-data-science-competition) * [Battle-Tested Accuracy](https://docs.synthdata.co/#battle-tested-accuracy) * [Multi-Asset Coverage](https://docs.synthdata.co/#multi-asset-coverage) * [Advanced Analytics & Insights](https://docs.synthdata.co/#advanced-analytics-and-insights) * [Volatility Analysis](https://docs.synthdata.co/#volatility-analysis) * [Options Pricing](https://docs.synthdata.co/#options-pricing) * [Risk Management](https://docs.synthdata.co/#risk-management) * [DeFi Optimization](https://docs.synthdata.co/#defi-optimization) * [Market Intelligence](https://docs.synthdata.co/#market-intelligence) * [Use Cases](https://docs.synthdata.co/#use-cases) * [Quantitative Trading](https://docs.synthdata.co/#quantitative-trading) * [Options Trading](https://docs.synthdata.co/#options-trading) * [Risk Management](https://docs.synthdata.co/#risk-management-1) * [AI & Automation](https://docs.synthdata.co/#ai-and-automation) * [DeFi Strategies](https://docs.synthdata.co/#defi-strategies) * [API Structure](https://docs.synthdata.co/#api-structure) * [Base URL](https://docs.synthdata.co/#base-url) * [Authentication](https://docs.synthdata.co/#authentication) * [Main Endpoint Categories](https://docs.synthdata.co/#main-endpoint-categories) * [Support & Community](https://docs.synthdata.co/#support-and-community) Base URL Copy https://api.synthdata.co Copy Authorization: Apikey YOUR_API_KEY --- # Getting Started | Synth API Get up and running with Synth API in minutes. [hashtag](https://docs.synthdata.co/getting-started#what-youll-need) What You'll Need ------------------------------------------------------------------------------------------ 1 ### [hashtag](https://docs.synthdata.co/getting-started#api-key) API Key Get an API key from your [Synth Dashboardarrow-up-right](https://dashboard.synthdata.co/) . 2 ### [hashtag](https://docs.synthdata.co/getting-started#make-a-request) Make a Request Copy curl "https://api.synthdata.co/insights/prediction-percentiles?asset=BTC" \ -H "Authorization: Apikey YOUR_API_KEY" 3 ### [hashtag](https://docs.synthdata.co/getting-started#parse-the-response) Parse the Response Copy import requests response = requests.get( "https://api.synthdata.co/insights/prediction-percentiles", headers={"Authorization": "Apikey YOUR_API_KEY"}, params={"asset": "BTC"} ) data = response.json() current_price = data['current_price'] percentiles = data['forecast_future']['percentiles'] # Get 24h forecast final = percentiles[-1] median = final['0.5'] lower = final['0.05'] upper = final['0.95'] print(f"Current: ${current_price:,.2f}") print(f"24h Median: ${median:,.2f}") print(f"24h 90% CI: ${lower:,.0f} - ${upper:,.0f}") [hashtag](https://docs.synthdata.co/getting-started#common-parameters) Common Parameters --------------------------------------------------------------------------------------------- Parameter Value Description `asset` `BTC`, `ETH`, `SOL`, `XAU`, `SPYX`, `NVDAX` Asset to forecast `days` `14` (default) Days for meta-leaderboard ranking `limit` `10` (default) Number of top miners to use [PreviousIntroductionchevron-left](https://docs.synthdata.co/) [NextAuthenticationchevron-right](https://docs.synthdata.co/getting-started/authentication) * [What You'll Need](https://docs.synthdata.co/getting-started#what-youll-need) * [API Key](https://docs.synthdata.co/getting-started#api-key) * [Make a Request](https://docs.synthdata.co/getting-started#make-a-request) * [Parse the Response](https://docs.synthdata.co/getting-started#parse-the-response) * [Common Parameters](https://docs.synthdata.co/getting-started#common-parameters) --- # Credits and Pricing | Synth API Synth API uses a monthly API subscription with credit based usage system. [hashtag](https://docs.synthdata.co/getting-started/credits-and-pricing#api-plans) API Plans ------------------------------------------------------------------------------------------------- Plan API Credits Requests/Day User Type Standard $49 monthly 100 one time credits No ability to buy more credits Traders Professional $199 monthly 5000 credits monthly Ability to buy more credits Developers, Traders, Funds Enterprise Unlimited Custom Institutions [hashtag](https://docs.synthdata.co/getting-started/credits-and-pricing#rate-limits) Rate Limits ----------------------------------------------------------------------------------------------------- Plan Requests/Second Standard 10 Professional 10 Enterprise Custom [hashtag](https://docs.synthdata.co/getting-started/credits-and-pricing#endpoint-credit-cost) Endpoint Credit Cost ----------------------------------------------------------------------------------------------------------------------- For simplicity each API call to the Synth API is priced at 1 credit. [hashtag](https://docs.synthdata.co/getting-started/credits-and-pricing#pricing-details) Pricing Details ------------------------------------------------------------------------------------------------------------- Visit [https://dashboard.synthdata.co/choose-plan/arrow-up-right](https://dashboard.synthdata.co/choose-plan/) for more information on our plans and their features [hashtag](https://docs.synthdata.co/getting-started/credits-and-pricing#faqs) FAQs --------------------------------------------------------------------------------------- **What happens if I run out of credits?** You can purchase additional credit blocks at any time to ensure your service is not interrupted. **How do I purchase more credits?** In your dashboard you will be able to make card payments for purchasing credits. We’ll use the same card you used for your subscription to process credit purchases. **How many credits does the Enterprise plan receive?** The Enterprise plan is a custom plan built for customers looking to use significant credits monthly. **How do I track my credit usage?** You can track your credit usage on the dashboard. [PreviousAuthenticationchevron-left](https://docs.synthdata.co/getting-started/authentication) [NextAssetschevron-right](https://docs.synthdata.co/getting-started/assets) Last updated 22 days ago * [API Plans](https://docs.synthdata.co/getting-started/credits-and-pricing#api-plans) * [Rate Limits](https://docs.synthdata.co/getting-started/credits-and-pricing#rate-limits) * [Endpoint Credit Cost](https://docs.synthdata.co/getting-started/credits-and-pricing#endpoint-credit-cost) * [Pricing Details](https://docs.synthdata.co/getting-started/credits-and-pricing#pricing-details) * [FAQs](https://docs.synthdata.co/getting-started/credits-and-pricing#faqs) --- # Authentication | Synth API The Synth API uses API key authentication. All requests must include your API key in the `Authorization` header. [hashtag](https://docs.synthdata.co/getting-started/authentication#getting-an-api-key) Getting an API Key -------------------------------------------------------------------------------------------------------------- 1 ### [hashtag](https://docs.synthdata.co/getting-started/authentication#login) Login Go to your [Synth Dashboardarrow-up-right](https://dashboard.synthdata.co/) 2 ### [hashtag](https://docs.synthdata.co/getting-started/authentication#choose-a-plan) Choose a plan Sign up for the Professional or Enterprise plan 3 ### [hashtag](https://docs.synthdata.co/getting-started/authentication#generate-key) Generate key Generate a new API Key [hashtag](https://docs.synthdata.co/getting-started/authentication#using-your-api-key) Using Your API Key -------------------------------------------------------------------------------------------------------------- Include your API key in the `Authorization` header: Copy Authorization: Apikey YOUR_API_KEY ### [hashtag](https://docs.synthdata.co/getting-started/authentication#example) Example curl Copy curl "https://api.synthdata.co/insights/volatility?asset=BTC" \ -H "Authorization: Apikey YOUR_API_KEY" [hashtag](https://docs.synthdata.co/getting-started/authentication#security) Security ------------------------------------------------------------------------------------------ circle-exclamation * Never commit keys to version control * Use environment variables * Rotate keys regularly python Copy import os api_key = os.environ.get("SYNTH_API_KEY") headers = {"Authorization": f"Apikey {api_key}"} [PreviousGetting Startedchevron-left](https://docs.synthdata.co/getting-started) [NextCredits and Pricingchevron-right](https://docs.synthdata.co/getting-started/credits-and-pricing) Last updated 1 month ago * [Getting an API Key](https://docs.synthdata.co/getting-started/authentication#getting-an-api-key) * [Login](https://docs.synthdata.co/getting-started/authentication#login) * [Choose a plan](https://docs.synthdata.co/getting-started/authentication#choose-a-plan) * [Generate key](https://docs.synthdata.co/getting-started/authentication#generate-key) * [Using Your API Key](https://docs.synthdata.co/getting-started/authentication#using-your-api-key) * [Example](https://docs.synthdata.co/getting-started/authentication#example) * [Security](https://docs.synthdata.co/getting-started/authentication#security) --- # MCP | Synth API MCP allows AI agents to integrate seamlessly to external data sources and tools. Synth API MCP is a remote MCP server at [https://mcp.synthdata.co/v1/mcp/apikey/jsonarrow-up-right](https://mcp.synthdata.co/v1/mcp/apikey/json) . There are 2 authentications methods: * OAuth (coming soon) * API Key To authenticate the MCP with your API key, you need to add custom headers: * header key: Authorization * header value: Bearer ### [hashtag](https://docs.synthdata.co/mcp#connect-with-claude-desktop) Connect with Claude Desktop Download the Desktop Extension: [synth.mcpbarrow-up-right](https://github.com/mode-network/synth-mcp/releases/download/v0.0.10/synth.mcpb) . To add the extension double click on the file and Claude Desktop will ask you to install, and input your API key. ### [hashtag](https://docs.synthdata.co/mcp#connect-with-claude-code-cli) Connect with Claude Code CLI Claude Code provides a CLI to use the agentic coding tool of Anthropic. Read more [herearrow-up-right](https://code.claude.com/docs/en/overview#terminal) . To add the SynthData MCP server, type the command: Copy claude mcp add --transport http synthdata https://mcp.synthdata.co/v1/mcp/apikey/json --header "Authorization: Bearer " ### [hashtag](https://docs.synthdata.co/mcp#connect-with-mcp-remote) Connect with mcp-remote mcp-remote is a tool that allows you to install a remote MCP server for a local MCP client. It creates a local STDIO MCP to proxies to the remote HTTP Stream Synth MCP. Read more [herearrow-up-right](https://www.npmjs.com/package/mcp-remote) . Type the command to add the Synth MCP: ### [hashtag](https://docs.synthdata.co/mcp#connect-with-vercel-ai-sdk) Connect with Vercel AI SDK Vercel AI SDK supports connecting to remote MCP servers. Read more [herearrow-up-right](https://ai-sdk.dev/docs/ai-sdk-core/mcp-tools) . ### [hashtag](https://docs.synthdata.co/mcp#connect-with-openai) Connect with OpenAI OpenAI platform allows you to connect to MCP server: 1. go to the Open AI Platform: [https://platform.openai.com/chatarrow-up-right](https://platform.openai.com/chat) 2. on the tools configuration, click "Add" 3. chose "MCP server" 4. click on "+ Server" button 5. input the url: [https://mcp.synthdata.co/v1/mcp/apikey/jsonarrow-up-right](https://mcp.synthdata.co/v1/mcp/apikey/json) 6. chose a label: synth 7. on authentication, select "Custom headers" 8. type "Authorization" in the header input 9. type "Bearer " in the value input, change with your API key that you create here [https://dashboard.synthdata.co/api-keysarrow-up-right](https://dashboard.synthdata.co/api-keys/) 10. Click on "Connect" You can now prompt the LLM and ask for Synth Insights. [PreviousError Handlingchevron-left](https://docs.synthdata.co/getting-started/error-handling) [NextEndpoints Overviewchevron-right](https://docs.synthdata.co/endpoints-overview) Last updated 11 days ago * [Connect with Claude Desktop](https://docs.synthdata.co/mcp#connect-with-claude-desktop) * [Connect with Claude Code CLI](https://docs.synthdata.co/mcp#connect-with-claude-code-cli) * [Connect with mcp-remote](https://docs.synthdata.co/mcp#connect-with-mcp-remote) * [Connect with Vercel AI SDK](https://docs.synthdata.co/mcp#connect-with-vercel-ai-sdk) * [Connect with OpenAI](https://docs.synthdata.co/mcp#connect-with-openai) Copy npx -y mcp-remote https://mcp.synthdata.co/v1/mcp/apikey/json --header "Authorization: Bearer " --allow-http Copy const mcpClient = await createMCPClient({ transport: { type: "http", url: "https://mcp.synthdata.co/v1/mcp/apikey/json", headers: { Authorization: `Bearer ${process.env.SYNTH_API_KEY}` }, }, }); const tools = await mcpClient.tools(); const result = streamText({ model: gateway(modelId), tools, system: "You are an agent working with SynthData's MCP.", messages: convertToModelMessages(messages), onError: (e) => { console.error("Error while streaming.", e); }, }); --- # Assets | Synth API [hashtag](https://docs.synthdata.co/getting-started/assets#cryptocurrencies) Cryptocurrencies -------------------------------------------------------------------------------------------------- Symbol Name Price Oracle **BTC** Bitcoin [https://insights.pyth.network/price-feeds/Crypto.BTC%2FUSDarrow-up-right](https://insights.pyth.network/price-feeds/Crypto.BTC%2FUSD) **ETH** Ethereum [https://insights.pyth.network/price-feeds/Crypto.ETH%2FUSDarrow-up-right](https://insights.pyth.network/price-feeds/Crypto.ETH%2FUSD) **SOL** Solana [https://insights.pyth.network/price-feeds/Crypto.SOL%2FETHarrow-up-right](https://insights.pyth.network/price-feeds/Crypto.SOL%2FETH) [hashtag](https://docs.synthdata.co/getting-started/assets#commodities) Commodities ---------------------------------------------------------------------------------------- Symbol Name Price Oracle **XAU** Gold [https://insights.pyth.network/price-feeds/Crypto.PAXG%2FUSDarrow-up-right](https://insights.pyth.network/price-feeds/Crypto.PAXG%2FUSD) [hashtag](https://docs.synthdata.co/getting-started/assets#equities-tokenized-24-7-asset) Equities (Tokenized 24/7 Asset) ------------------------------------------------------------------------------------------------------------------------------ Symbol Name Price Oracle **SPYX** S&P 500 (xStock) [https://insights.pyth.network/price-feeds/Crypto.SPYX%2FUSDarrow-up-right](https://insights.pyth.network/price-feeds/Crypto.SPYX%2FUSD) **NVDAX** NVIDIA (xStock) [https://insights.pyth.network/price-feeds/Crypto.NVDAX%2FUSDarrow-up-right](https://insights.pyth.network/price-feeds/Crypto.NVDAX%2FUSD) **TSLAX** Tesla (xStock) [https://insights.pyth.network/price-feeds/Crypto.TSLAX%2FUSDarrow-up-right](https://insights.pyth.network/price-feeds/Crypto.TSLAX%2FUSD) **AAPLX** Apple (xStock) [https://insights.pyth.network/price-feeds/Crypto.AAPLX%2FUSDarrow-up-right](https://insights.pyth.network/price-feeds/Crypto.AAPLX%2FUSD) **GOOGLX** Google (xStock) [https://insights.pyth.network/price-feeds/Crypto.GOOGLX%2FUSDarrow-up-right](https://insights.pyth.network/price-feeds/Crypto.GOOGLX%2FUSD) [PreviousCredits and Pricingchevron-left](https://docs.synthdata.co/getting-started/credits-and-pricing) [NextError Handlingchevron-right](https://docs.synthdata.co/getting-started/error-handling) Last updated 28 days ago * [Cryptocurrencies](https://docs.synthdata.co/getting-started/assets#cryptocurrencies) * [Commodities](https://docs.synthdata.co/getting-started/assets#commodities) * [Equities (Tokenized 24/7 Asset)](https://docs.synthdata.co/getting-started/assets#equities-tokenized-24-7-asset) --- # Trading | Synth API ### [hashtag](https://docs.synthdata.co/insights/trading#directional-trading) Directional Trading directional\_signal.py Copy import requests def get_signal(asset, threshold=0.55): response = requests.get( "https://api.synthdata.co/insights/prediction-percentiles", headers={"Authorization": "Apikey YOUR_API_KEY"}, params={"asset": asset} ) data = response.json() current_price = data['current_price'] final = data['forecast_future']['percentiles'][-1] median = final['0.5'] p35 = final['0.35'] p65 = final['0.65'] if median > current_price and p35 > current_price: return "LONG" elif median < current_price and p65 < current_price: return "SHORT" else: return "NEUTRAL" ### [hashtag](https://docs.synthdata.co/insights/trading#position-sizing) Position Sizing * * * [hashtag](https://docs.synthdata.co/insights/trading#lp-bounds) LP Bounds ------------------------------------------------------------------------------ Optimal liquidity provider ranges with impermanent loss estimates. Endpoint: ### [hashtag](https://docs.synthdata.co/insights/trading#response) Response ### [hashtag](https://docs.synthdata.co/insights/trading#example) Example * * * [hashtag](https://docs.synthdata.co/insights/trading#lp-probabilities) LP Probabilities -------------------------------------------------------------------------------------------- Price distribution probabilities for LP range decisions. Endpoint: ### [hashtag](https://docs.synthdata.co/insights/trading#response-1) Response ### [hashtag](https://docs.synthdata.co/insights/trading#example-1) Example * * * [PreviousOptionschevron-left](https://docs.synthdata.co/insights/options) [NextPolymarketchevron-right](https://docs.synthdata.co/insights/polymarket) Last updated 29 days ago * [Directional Trading](https://docs.synthdata.co/insights/trading#directional-trading) * [Position Sizing](https://docs.synthdata.co/insights/trading#position-sizing) * [LP Bounds](https://docs.synthdata.co/insights/trading#lp-bounds) * [Response](https://docs.synthdata.co/insights/trading#response) * [Example](https://docs.synthdata.co/insights/trading#example) * [LP Probabilities](https://docs.synthdata.co/insights/trading#lp-probabilities) * [Response](https://docs.synthdata.co/insights/trading#response-1) * [Example](https://docs.synthdata.co/insights/trading#example-1) kelly\_size.py Copy def kelly_size(prob_win, avg_win, avg_loss, max_kelly=0.25): win_loss_ratio = avg_win / avg_loss kelly = (prob_win * win_loss_ratio - (1 - prob_win)) / win_loss_ratio return max(0, min(kelly, max_kelly)) Copy GET /insights/lp-bounds lp-bounds-response.json Copy { "current_price": 88997.48, "data": [\ {\ "interval": {\ "full_width": "1.0%",\ "lower_bound": 88552.49,\ "upper_bound": 89442.47\ },\ "probability_to_stay_in_interval": {"24": 0.0},\ "expected_time_in_interval": 71.99,\ "expected_impermanent_loss": 0.0064\ },\ {\ "interval": {\ "full_width": "3.0%",\ "lower_bound": 87662.52,\ "upper_bound": 90332.44\ },\ "probability_to_stay_in_interval": {"24": 0.2135},\ "expected_time_in_interval": 732.20,\ "expected_impermanent_loss": 0.0046\ }\ ] } example\_lp\_bounds.py Copy response = requests.get( "https://api.synthdata.co/insights/lp-bounds", headers={"Authorization": "Apikey YOUR_API_KEY"}, params={"asset": "BTC"} ) for level in response.json()['data']: width = level['interval']['full_width'] prob = level['probability_to_stay_in_interval']['24'] il = level['expected_impermanent_loss'] print(f"{width} range: {prob:.1%} stay probability, {il:.2%} expected IL") Copy GET /insights/lp-probabilities lp-probabilities-response.json Copy { "current_price": 87289.63, "data": { "24h": { "probability_above": { "81304.50": 0.9999, "82663.77": 0.9975, "84023.04": 0.9747, "85382.32": 0.8615, "86741.59": 0.6062, "88100.86": 0.3095, "89460.14": 0.1138, "90819.41": 0.0323, "92178.69": 0.0079, "93537.96": 0.0016, "94897.23": 0.0 }, "probability_below": { "81304.50": 0.0, "82663.77": 0.0025, "84023.04": 0.0253, "85382.32": 0.1385, "86741.59": 0.3938, "88100.86": 0.6905, "89460.14": 0.8862, "90819.41": 0.9677, "92178.69": 0.9921, "93537.96": 0.9984, "94897.23": 0.9999 } } } } example\_lp\_bounds\_chart.py Copy response = requests.get( "https://api.synthdata.co/insights/lp-probabilities", headers={"Authorization": "Apikey YOUR_API_KEY"}, params={"asset": "BTC"} ) data = response.json()['data']['24h'] for price, prob in data['probability_above'].items(): print(f"P(price > ${float(price):,.0f}) = {prob:.1%}") --- # Insights | Synth API circle-info Advanced analytics derived from predictions. Requires Professional or Enterprise plan. [hashtag](https://docs.synthdata.co/insights#insights) Insights -------------------------------------------------------------------- Advanced analytics derived from predictions. Requires Professional or Enterprise plan. ### [hashtag](https://docs.synthdata.co/insights#volatility) Volatility Forecast and realized volatility metrics. Endpoints: * `/insights/volatility` * `/insights/volatility-percentiles` [View Volatility Documentation](https://docs.synthdata.co/insights/volatility-old) ### [hashtag](https://docs.synthdata.co/insights#trading) Trading Liquidity provision optimization and prediction market comparisons. Endpoints: * `/insights/lp-bounds` * `/insights/lp-probabilities` * `/insights/polymarket/range` * `/insights/polymarket/up-down/hourly` * `/insights/polymarket/up-down/daily` [View Trading Documentation](https://docs.synthdata.co/insights#trading) ### [hashtag](https://docs.synthdata.co/insights#polymarket) Polymarket Compare Synth predictions against Polymarket prices. Endpoints: * `/insights/polymarket/up-down/daily` * `/insights/polymarket/range` [View Polymarket Documentation](https://docs.synthdata.co/insights/polymarket) ### [hashtag](https://docs.synthdata.co/insights#options) Options Theoretical option pricing from Monte Carlo simulations. Endpoints: * `/insights/option-pricing` [View Options Documentation](https://docs.synthdata.co/insights/options) ### [hashtag](https://docs.synthdata.co/insights#risk-management) Risk Management Liquidation probabilities and position risk analysis. Endpoints: * `/insights/liquidation` [View Risk Management Documentation](https://docs.synthdata.co/insights/risk-management) ### [hashtag](https://docs.synthdata.co/insights#quick-example) Quick Example [PreviousPrediction Percentileschevron-left](https://docs.synthdata.co/prediction-percentiles) [NextVolatilitychevron-right](https://docs.synthdata.co/insights/volatility) Last updated 29 days ago * [Insights](https://docs.synthdata.co/insights#insights) * [Volatility](https://docs.synthdata.co/insights#volatility) * [Trading](https://docs.synthdata.co/insights#trading) * [Polymarket](https://docs.synthdata.co/insights#polymarket) * [Options](https://docs.synthdata.co/insights#options) * [Risk Management](https://docs.synthdata.co/insights#risk-management) * [Quick Example](https://docs.synthdata.co/insights#quick-example) curl Copy curl "https://api.synthdata.co/insights/volatility?asset=BTC" \ -H "Authorization: Apikey YOUR_API_KEY" --- # Error Handling | Synth API [hashtag](https://docs.synthdata.co/getting-started/error-handling#http-status-codes) HTTP Status Codes ------------------------------------------------------------------------------------------------------------ Code Meaning Action 200 Success Process response 400 Bad Request Check authentication header 401 Unauthorized Check API key 404 Not Found Check parameters or data availability 429 Rate Limited Retry after delay 500 Server Error Retry later [hashtag](https://docs.synthdata.co/getting-started/error-handling#error-response-format) Error Response Format -------------------------------------------------------------------------------------------------------------------- Errors return JSON with a `message` field: Copy {"message": "Unauthorized"} Copy {"message": "missing key in request header"} Some endpoints return a plain string for data errors: Copy "No prediction available" [hashtag](https://docs.synthdata.co/getting-started/error-handling#best-practices) Best Practices ------------------------------------------------------------------------------------------------------ example.py Copy import requests import time def fetch_percentiles(asset): response = requests.get( "https://api.synthdata.co/insights/prediction-percentiles", headers={"Authorization": "Apikey YOUR_API_KEY"}, params={"asset": asset} ) if response.status_code == 200: return response.json() elif response.status_code == 401: raise Exception("Invalid API key") elif response.status_code == 404: raise Exception(f"No data available for {asset}") elif response.status_code == 429: time.sleep(60) return fetch_percentiles(asset) # Retry else: response.raise_for_status() [PreviousAssetschevron-left](https://docs.synthdata.co/getting-started/assets) [NextMCPchevron-right](https://docs.synthdata.co/mcp) Last updated 29 days ago * [HTTP Status Codes](https://docs.synthdata.co/getting-started/error-handling#http-status-codes) * [Error Response Format](https://docs.synthdata.co/getting-started/error-handling#error-response-format) * [Best Practices](https://docs.synthdata.co/getting-started/error-handling#best-practices) --- # Glossary | Synth API **API Key** - Token for authentication **CRPS** - Continuous Ranked Probability Score (lower is better) **Ensemble** - Collection of 1,000 simulated price paths **Miner** - Network participant generating predictions **Percentile** - Price level below which X% of predictions fall **time\_increment** - Seconds between price points (300 or 60) **time\_length** - Total forecast duration (86400 or 3600) **Volatility** - Measure of price variation [PreviousPredictionschevron-left](https://docs.synthdata.co/predictions) Last updated 1 month ago --- # Polymarket | Synth API [hashtag](https://docs.synthdata.co/insights/polymarket#daily-up-down) Daily Up/Down ----------------------------------------------------------------------------------------- Endpoint: Copy GET /insights/polymarket/up-down/daily Response: response.json Copy { "current_price": 88893.80, "start_price": 87795.99, "current_outcome": "Up", "synth_probability_up": 0.9968, "synth_outcome": "Up", "polymarket_probability_up": 0.9845, "polymarket_outcome": "Up", "event_end_time": "2026-01-22T17:00:00+00:00" } [hashtag](https://docs.synthdata.co/insights/polymarket#hourly-up-down) Hourly Up/Down ------------------------------------------------------------------------------------------- Endpoint: Copy GET /insights/polymarket/up-down/hourly Response: [hashtag](https://docs.synthdata.co/insights/polymarket#price-range) Price Range ------------------------------------------------------------------------------------- Endpoint: Response: [hashtag](https://docs.synthdata.co/insights/polymarket#example-find-arbitrage) Example: Find Arbitrage ------------------------------------------------------------------------------------------------------------ [PreviousTradingchevron-left](https://docs.synthdata.co/insights/trading) [NextPredictionschevron-right](https://docs.synthdata.co/predictions) Last updated 29 days ago * [Daily Up/Down](https://docs.synthdata.co/insights/polymarket#daily-up-down) * [Hourly Up/Down](https://docs.synthdata.co/insights/polymarket#hourly-up-down) * [Price Range](https://docs.synthdata.co/insights/polymarket#price-range) * [Example: Find Arbitrage](https://docs.synthdata.co/insights/polymarket#example-find-arbitrage) Copy { "current_price": 88895.82, "start_price": 89058.32, "current_outcome": "Down", "synth_probability_up": 0.3335, "synth_outcome": "Down", "polymarket_probability_up": 0.495, "polymarket_outcome": "Down", "event_end_time": "2026-01-22T17:00:00+00:00" } Copy GET /insights/polymarket/range response.json Copy [\ {\ "title": "[90, 0, 92, 0]",\ "ref_prices": [90, 0, 92, 0],\ "current_price": 88862.66,\ "synth_probability": 0.0,\ "polymarket_probability": 0.053,\ "event_end_time": "2026-01-22T17:00:00+00:00"\ }\ ] example.py Copy import requests response = requests.get( "https://api.synthdata.co/insights/polymarket/up-down/daily", headers={"Authorization": "Apikey YOUR_API_KEY"}, params={"asset": "BTC"} ) data = response.json() synth = data['synth_probability_up'] poly = data['polymarket_probability_up'] edge = synth - poly if abs(edge) > 0.05: if edge > 0: print(f"BUY 'Up' on Polymarket - Synth says {synth:.1%} vs market {poly:.1%}") else: print(f"BUY 'Down' on Polymarket - Synth says {1-synth:.1%} vs market {1-poly:.1%}") --- # Options | Synth API [hashtag](https://docs.synthdata.co/insights/options#get-option-prices) Get Option Prices ---------------------------------------------------------------------------------------------- get\_option\_prices.py Copy import requests response = requests.get( "https://api.synthdata.co/insights/option-pricing", headers={"Authorization": "Apikey YOUR_API_KEY"}, params={"asset": "BTC"} ) data = response.json() current_price = data['current_price'] call_options = data['call_options'] # {"84000": 4813.78, "84500": 4313.81, ...} put_options = data['put_options'] # {"84000": 0.0, "84500": 0.03, ...} expiry = data['expiry_time'] # "2026-01-23 08:00:00Z" [hashtag](https://docs.synthdata.co/insights/options#find-mispriced-options) Find Mispriced Options -------------------------------------------------------------------------------------------------------- find\_mispriced\_options.py Copy for strike, synth_call in call_options.items(): market_call = get_market_price(strike) if synth_call > 0: edge = (market_call - synth_call) / synth_call if edge > 0.05: print(f"SELL {strike} call - {edge:.1%} edge") elif edge < -0.05: print(f"BUY {strike} call - {abs(edge):.1%} edge") [hashtag](https://docs.synthdata.co/insights/options#bull-call-spread) Bull Call Spread -------------------------------------------------------------------------------------------- [PreviousRisk Managementchevron-left](https://docs.synthdata.co/insights/risk-management) [NextTradingchevron-right](https://docs.synthdata.co/insights/trading) Last updated 1 month ago * [Get Option Prices](https://docs.synthdata.co/insights/options#get-option-prices) * [Find Mispriced Options](https://docs.synthdata.co/insights/options#find-mispriced-options) * [Bull Call Spread](https://docs.synthdata.co/insights/options#bull-call-spread) bull\_call\_spread.py Copy # Buy ATM call, sell OTM call strikes = sorted([int(k) for k in call_options.keys()]) # Find ATM (closest to current price) atm_strike = min(strikes, key=lambda x: abs(x - current_price)) # Find OTM (5% above current price) otm_strike = min([s for s in strikes if s > current_price * 1.05], default=strikes[-1]) cost = call_options[str(atm_strike)] - call_options[str(otm_strike)] max_profit = (otm_strike - atm_strike) - cost --- # Predictions | Synth API Full prediction paths for advanced use cases. Requires Enterprise plan. [hashtag](https://docs.synthdata.co/predictions#prediction-best) Prediction Best ------------------------------------------------------------------------------------- Returns full prediction paths from the top-ranked miner. Copy GET /v2/prediction/best ### [hashtag](https://docs.synthdata.co/predictions#parameters) Parameters Parameter Type Required Default Description `asset` string Yes — Asset symbol: `BTC`, `ETH`, `SOL`, `XAU`, `SPYX`, `NVDAX`, `TSLAX`, `AAPLX`, `GOOGLX` `time_increment` integer No 300 Time step in seconds (300 = 5 minutes) `time_length` integer No 86400 Forecast horizon in seconds (86400 = 24 hours) ### [hashtag](https://docs.synthdata.co/predictions#example-request) Example Request curl Copy curl "https://api.synthdata.co/v2/prediction/best?asset=BTC&time_increment=300&time_length=86400" \ -H "Authorization: Apikey YOUR_API_KEY" ### [hashtag](https://docs.synthdata.co/predictions#response) Response response.json Copy [\ {\ "miner_uid": 2,\ "start_time": 1769177040,\ "predictions": [\ [89209, 89280.29, 89311.84, 89337.37, ...],\ [89209, 89195.42, 89178.33, 89201.56, ...],\ ...\ ]\ }\ ] * * * [hashtag](https://docs.synthdata.co/predictions#prediction-latest) Prediction Latest ----------------------------------------------------------------------------------------- Returns full prediction paths from specific miners. ### [hashtag](https://docs.synthdata.co/predictions#parameters-1) Parameters Parameter Type Required Default Description `asset` string Yes — Asset symbol `miner_uid` integer No — Specific miner UID `time_increment` integer No 300 Time step in seconds `time_length` integer No 86400 Forecast horizon in seconds * * * [hashtag](https://docs.synthdata.co/predictions#prediction-historical) Prediction Historical ------------------------------------------------------------------------------------------------- Returns historical predictions for backtesting. ### [hashtag](https://docs.synthdata.co/predictions#parameters-2) Parameters Parameter Type Required Default Description `asset` string Yes — Asset symbol `start_time` integer Yes — Unix timestamp for start `end_time` integer Yes — Unix timestamp for end * * * [PreviousPolymarketchevron-left](https://docs.synthdata.co/insights/polymarket) [NextGlossarychevron-right](https://docs.synthdata.co/glossary) Last updated 28 days ago * [Prediction Best](https://docs.synthdata.co/predictions#prediction-best) * [Parameters](https://docs.synthdata.co/predictions#parameters) * [Example Request](https://docs.synthdata.co/predictions#example-request) * [Response](https://docs.synthdata.co/predictions#response) * [Prediction Latest](https://docs.synthdata.co/predictions#prediction-latest) * [Parameters](https://docs.synthdata.co/predictions#parameters-1) * [Prediction Historical](https://docs.synthdata.co/predictions#prediction-historical) * [Parameters](https://docs.synthdata.co/predictions#parameters-2) Copy GET /v2/prediction/latest Copy GET /v2/prediction/historical --- # Prediction Percentiles | Synth API Copy GET /insights/prediction-percentiles [hashtag](https://docs.synthdata.co/prediction-percentiles#parameters) Parameters -------------------------------------------------------------------------------------- Parameter Type Required Default Description asset string Yes — Asset symbol: `BTC`, `ETH`, `SOL`, `XAU`, `SPYX`, `NVDAX`, `TSLAX`, `AAPLX`, `GOOGLX` days integer No 14 Number of days to aggregate for the meta-leaderboard ranking limit integer No 10 Number of top miners from the meta-leaderboard to use for analysis [hashtag](https://docs.synthdata.co/prediction-percentiles#headers) Headers -------------------------------------------------------------------------------- Header Required Description Authorization Yes API key in format: `Apikey YOUR_API_KEY` circle-info Include your API key in the Authorization header exactly as shown: `Apikey YOUR_API_KEY`. [hashtag](https://docs.synthdata.co/prediction-percentiles#example-request) Example Request ------------------------------------------------------------------------------------------------ curl Copy curl "https://api.synthdata.co/insights/prediction-percentiles?asset=BTC" \ -H "Authorization: Apikey YOUR_API_KEY" [hashtag](https://docs.synthdata.co/prediction-percentiles#response) Response ---------------------------------------------------------------------------------- response.json Copy { "current_price": 88996.66, "forecast_future": { "percentiles": [\ {\ "0.005": 88996.66,\ "0.05": 88996.66,\ "0.2": 88996.66,\ "0.35": 88996.66,\ "0.5": 88996.66,\ "0.65": 88996.66,\ "0.8": 88996.66,\ "0.95": 88996.66,\ "0.995": 88996.66\ },\ {\ "0.005": 88631.35,\ "0.05": 88765.15,\ "0.2": 88879.70,\ "0.35": 88943.39,\ "0.5": 88998.23,\ "0.65": 89055.24,\ "0.8": 89122.30,\ "0.95": 89236.58,\ "0.995": 89359.79\ }\ ] }, "forecast_past": { "percentiles": [...] }, "realized": { "prices": [...], "percentiles": [...] } } [hashtag](https://docs.synthdata.co/prediction-percentiles#field-descriptions) Field Descriptions ------------------------------------------------------------------------------------------------------ Field Description current\_price Current asset price forecast\_future.percentiles Array of percentile objects, one per 5-minute time step (289 total for 24h) 0.005, 0.05, etc. Price at that percentile (0.5 = median, 0.95 = 95th percentile) forecast\_past.percentiles Historical percentile predictions realized.prices Actual historical prices with returns realized.percentiles Realized price percentiles [hashtag](https://docs.synthdata.co/prediction-percentiles#response-codes) Response Codes ---------------------------------------------------------------------------------------------- Code Description 200 Success - returns percentile data 400 Bad Request - invalid parameters 401 Unauthorized - invalid or missing API key 500 Internal Server Error [PreviousEndpoints Overviewchevron-left](https://docs.synthdata.co/endpoints-overview) [NextInsightschevron-right](https://docs.synthdata.co/insights) Last updated 28 days ago * [Parameters](https://docs.synthdata.co/prediction-percentiles#parameters) * [Headers](https://docs.synthdata.co/prediction-percentiles#headers) * [Example Request](https://docs.synthdata.co/prediction-percentiles#example-request) * [Response](https://docs.synthdata.co/prediction-percentiles#response) * [Field Descriptions](https://docs.synthdata.co/prediction-percentiles#field-descriptions) * [Response Codes](https://docs.synthdata.co/prediction-percentiles#response-codes) --- # Endpoints Overview | Synth API [hashtag](https://docs.synthdata.co/endpoints-overview#base-url) Base URL ------------------------------------------------------------------------------ Copy https://api.synthdata.co All endpoints require the following header: Copy Authorization: Apikey YOUR_API_KEY [hashtag](https://docs.synthdata.co/endpoints-overview#prediction-percentiles) Prediction Percentiles ---------------------------------------------------------------------------------------------------------- Get probabilistic price forecasts. Endpoint Description `GET /insights/prediction-percentiles` Price percentiles (5th, 50th, 95th, etc.) at 5-minute intervals [hashtag](https://docs.synthdata.co/endpoints-overview#leaderboard) Leaderboard ------------------------------------------------------------------------------------ Discover top-performing miners. Endpoint Description `GET /v2/leaderboard/latest` Current miner rankings Example request: curl Copy curl "https://api.synthdata.co/v2/leaderboard/latest?asset=BTC&days=14&limit=10" \ -H "Authorization: Apikey YOUR_API_KEY" [hashtag](https://docs.synthdata.co/endpoints-overview#insights) Insights ------------------------------------------------------------------------------ Advanced analytics derived from predictions. Endpoint Description `GET /insights/volatility` Volatility metrics `GET /insights/option-pricing` Theoretical option prices `GET /insights/liquidation` Liquidation probabilities `GET /insights/lp-bounds` LP range optimization `GET /insights/lp-probabilities` Price level probabilities `GET /insights/polymarket/up-down/daily` Daily up/down comparison `GET /insights/polymarket/up-down/hourly` Hourly up/down comparison `GET /insights/polymarket/range` Polymarket range comparison [hashtag](https://docs.synthdata.co/endpoints-overview#price-predictions) Price Predictions ------------------------------------------------------------------------------------------------ Full prediction paths for advanced use cases. Contact sales for access. Endpoint Description `GET /v2/prediction/best` Full prediction paths from top-ranked miner `GET /v2/prediction/latest` Full prediction paths from specific miners `GET /v2/prediction/historical` Historical predictions [PreviousMCPchevron-left](https://docs.synthdata.co/mcp) [NextPrediction Percentileschevron-right](https://docs.synthdata.co/prediction-percentiles) Last updated 29 days ago * [Base URL](https://docs.synthdata.co/endpoints-overview#base-url) * [Prediction Percentiles](https://docs.synthdata.co/endpoints-overview#prediction-percentiles) * [Leaderboard](https://docs.synthdata.co/endpoints-overview#leaderboard) * [Insights](https://docs.synthdata.co/endpoints-overview#insights) * [Price Predictions](https://docs.synthdata.co/endpoints-overview#price-predictions) --- # Risk Management | Synth API [hashtag](https://docs.synthdata.co/insights/risk-management#monitor-liquidation-risk) Monitor Liquidation Risk -------------------------------------------------------------------------------------------------------------------- monitor\_liquidation\_risk.py Copy import requests response = requests.get( "https://api.synthdata.co/insights/liquidation", headers={"Authorization": "Apikey YOUR_API_KEY"}, params={"asset": "BTC"} ) data = response.json() current_price = data['current_price'] for level in data['data']: price_change = level['price_change'] long_prob_24h = level['long_liquidation_probability']['24'] short_prob_24h = level['short_liquidation_probability']['24'] print(f"{price_change} move - Long liq: {long_prob_24h:.1%}, Short liq: {short_prob_24h:.1%}") [hashtag](https://docs.synthdata.co/insights/risk-management#dynamic-stop-loss) Dynamic Stop-Loss ------------------------------------------------------------------------------------------------------ [hashtag](https://docs.synthdata.co/insights/risk-management#portfolio-var) Portfolio VaR ---------------------------------------------------------------------------------------------- [PreviousVolatilitychevron-left](https://docs.synthdata.co/insights/volatility) [NextOptionschevron-right](https://docs.synthdata.co/insights/options) Last updated 29 days ago * [Monitor Liquidation Risk](https://docs.synthdata.co/insights/risk-management#monitor-liquidation-risk) * [Dynamic Stop-Loss](https://docs.synthdata.co/insights/risk-management#dynamic-stop-loss) * [Portfolio VaR](https://docs.synthdata.co/insights/risk-management#portfolio-var) dynamic\_stop\_loss.py Copy import requests response = requests.get( "https://api.synthdata.co/insights/prediction-percentiles", headers={"Authorization": "Apikey YOUR_API_KEY"}, params={"asset": "BTC"} ) data = response.json() current_price = data['current_price'] percentiles = data['forecast_future']['percentiles'] # Set stop-loss at 5th percentile of 24h forecast stop_loss = percentiles[-1]['0.05'] portfolio\_var.py Copy import requests positions = [\ {"asset": "BTC", "entry": 88000, "value": 10000},\ {"asset": "ETH", "entry": 3000, "value": 5000}\ ] total_value = sum(p['value'] for p in positions) portfolio_var = 0 for position in positions: response = requests.get( "https://api.synthdata.co/insights/prediction-percentiles", headers={"Authorization": "Apikey YOUR_API_KEY"}, params={"asset": position['asset']} ) data = response.json() worst_case = data['forecast_future']['percentiles'][-1]['0.05'] pnl = (worst_case - position['entry']) / position['entry'] portfolio_var += position['value'] * pnl var_5 = total_value + portfolio_var --- # Volatility | Synth API GET /insights/volatility ### [hashtag](https://docs.synthdata.co/insights/volatility#parameters) Parameters Parameter Type Required Default Description `asset` string Yes — Asset symbol: `BTC`, `ETH`, `SOL`, `XAU`, `SPYX`, `NVDAX` `days` integer No 14 Number of days to aggregate for the meta-leaderboard ranking `limit` integer No 10 Number of top miners from the meta-leaderboard to use for analysis ### [hashtag](https://docs.synthdata.co/insights/volatility#headers) Headers Header Required Description `Authorization` Yes API key in format: `Apikey YOUR_API_KEY` ### [hashtag](https://docs.synthdata.co/insights/volatility#response) Response The endpoint returns a comprehensive volatility analysis object containing current price, forecasted volatility (both forward and backward-looking), and realized historical volatility with price/return data. #### [hashtag](https://docs.synthdata.co/insights/volatility#response-schema) Response Schema Copy { "current_price": number, "forecast_future": { "average_volatility": number, "volatility": number[] }, "forecast_past": { "average_volatility": number, "volatility": number[] }, "realized": { "average_volatility": number, "prices": [\ {\ "price": number,\ "returns": number\ }\ ], "volatility": number[] } } #### [hashtag](https://docs.synthdata.co/insights/volatility#field-descriptions) Field Descriptions Field Type Description `current_price` number Current asset price at time of request `forecast_future.average_volatility` number Mean of forward-looking volatility predictions `forecast_future.volatility` number\[\] Array of predicted future volatility values `forecast_past.average_volatility` number Mean of backward-looking volatility analysis `forecast_past.volatility` number\[\] Array of historical volatility predictions `realized.average_volatility` number Mean realized volatility over the observation period `realized.prices` array Historical price observations with computed returns `realized.prices[].price` number Asset price at observation time `realized.prices[].returns` number Return from previous observation `realized.volatility` number\[\] Realized volatility values corresponding to price observations ### [hashtag](https://docs.synthdata.co/insights/volatility#example-request) Example Request ### [hashtag](https://docs.synthdata.co/insights/volatility#example-response) Example Response ### [hashtag](https://docs.synthdata.co/insights/volatility#response-codes) Response Codes Code Description `200` Success - returns volatility data `400` Bad Request - invalid parameters `401` Unauthorized - invalid or missing API key `500` Internal Server Error ### [hashtag](https://docs.synthdata.co/insights/volatility#use-cases) Use Cases * Options Pricing: Use `forecast_future.average_volatility` as volatility input for pricing models * Position Sizing: Scale position sizes inversely with `realized.average_volatility` for risk management * Regime Detection: Compare `forecast_future` vs `realized` volatility to detect market regime changes * Volatility Trading: Identify mean-reversion opportunities when forecast significantly deviates from realized * Backtesting: Use `realized.prices` array to reconstruct historical price paths for strategy validation [PreviousInsightschevron-left](https://docs.synthdata.co/insights) [NextRisk Managementchevron-right](https://docs.synthdata.co/insights/risk-management) * [Parameters](https://docs.synthdata.co/insights/volatility#parameters) * [Headers](https://docs.synthdata.co/insights/volatility#headers) * [Response](https://docs.synthdata.co/insights/volatility#response) * [Example Request](https://docs.synthdata.co/insights/volatility#example-request) * [Example Response](https://docs.synthdata.co/insights/volatility#example-response) * [Response Codes](https://docs.synthdata.co/insights/volatility#response-codes) * [Use Cases](https://docs.synthdata.co/insights/volatility#use-cases) curl Copy curl "https://api.synthdata.co/insights/volatility?asset=BTC&days=14&limit=10" \ -H "Authorization: Apikey YOUR_API_KEY" Response (application/json) Copy { "current_price": 89081.11, "forecast_future": { "average_volatility": 34.99, "volatility": [49.07, 48.54, 48.61, 48.46, 50.86, 52.03, ...] }, "forecast_past": { "average_volatility": 36.63, "volatility": [54.84, 51.18, 50.89, 50.99, 45.77, 42.86, ...] }, "realized": { "average_volatility": 40.66, "prices": [\ {"price": 89750.75, "returns": -0.000105},\ {"price": 89741.30, "returns": 0.000275},\ {"price": 89766.00, "returns": 0.001540},\ ...\ ], "volatility": [30.17, 55.97, 83.24, 84.78, 137.25, ...] } } --- # Email Protection | Cloudflare Please enable cookies. Email Protection ================ You are unable to access this email address docs.synthdata.co ------------------------------------------------------------- The website from which you got to this page is protected by Cloudflare. Email addresses on that page have been hidden in order to keep them from being accessed by malicious bots. **You must enable Javascript in your browser in order to decode the e-mail address**. If you have a website and are interested in protecting it in a similar way, you can [sign up for Cloudflare](https://www.cloudflare.com/sign-up?utm_source=email_protection) . * [How does Cloudflare protect email addresses on website from spammers?](https://developers.cloudflare.com/waf/tools/scrape-shield/email-address-obfuscation/) * [Can I sign up for Cloudflare?](https://developers.cloudflare.com/fundamentals/setup/account/create-account/) Cloudflare Ray ID: **9d37f33419b8e5b6** • Your IP: Click to reveal 54.237.218.47 • Performance & security by [Cloudflare](https://www.cloudflare.com/5xx-error-landing) --- # Volatility (old) | Synth API Copy GET /insights/volatility ### [hashtag](https://docs.synthdata.co/insights/volatility-old#parameters) Parameters Parameter Type Required Default Description `asset` string Yes — Asset symbol: `BTC`, `ETH`, `SOL`, `XAU`, `SPYX`, `NVDAX` `days` integer No 14 Number of days to aggregate for the meta-leaderboard ranking `limit` integer No 10 Number of top miners from the meta-leaderboard to use for analysis ### [hashtag](https://docs.synthdata.co/insights/volatility-old#headers) Headers Header Required Description `Authorization` Yes API key in format: `Apikey YOUR_API_KEY` ### [hashtag](https://docs.synthdata.co/insights/volatility-old#response) Response The endpoint returns a comprehensive volatility analysis object containing current price, forecasted volatility (both forward and backward-looking), and realized historical volatility with price/return data. #### [hashtag](https://docs.synthdata.co/insights/volatility-old#response-schema) Response Schema Copy { "current_price": number, "forecast_future": { "average_volatility": number, "volatility": number[] }, "forecast_past": { "average_volatility": number, "volatility": number[] }, "realized": { "average_volatility": number, "prices": [\ {\ "price": number,\ "returns": number\ }\ ], "volatility": number[] } } #### [hashtag](https://docs.synthdata.co/insights/volatility-old#field-descriptions) Field Descriptions Field Type Description `current_price` number Current asset price at time of request `forecast_future.average_volatility` number Mean of forward-looking volatility predictions `forecast_future.volatility` number\[\] Array of predicted future volatility values `forecast_past.average_volatility` number Mean of backward-looking volatility analysis `forecast_past.volatility` number\[\] Array of historical volatility predictions `realized.average_volatility` number Mean realized volatility over the observation period `realized.prices` array Historical price observations with computed returns `realized.prices[].price` number Asset price at observation time `realized.prices[].returns` number Return from previous observation `realized.volatility` number\[\] Realized volatility values corresponding to price observations ### [hashtag](https://docs.synthdata.co/insights/volatility-old#example-request) Example Request ### [hashtag](https://docs.synthdata.co/insights/volatility-old#example-response) Example Response ### [hashtag](https://docs.synthdata.co/insights/volatility-old#response-codes) Response Codes Code Description `200` Success - returns volatility data `400` Bad Request - invalid parameters `401` Unauthorized - invalid or missing API key `500` Internal Server Error * * * [hashtag](https://docs.synthdata.co/insights/volatility-old#volatility-percentiles) Volatility Percentiles --------------------------------------------------------------------------------------------------------------- Get price distribution percentiles over the forecast horizon. ### [hashtag](https://docs.synthdata.co/insights/volatility-old#parameters-1) Parameters Parameter Type Required Default Description `asset` string Yes — Asset symbol: `BTC`, `ETH`, `SOL`, `XAU`, `SPYX`, `NVDAX` `days` integer No 14 Number of days to aggregate for the meta-leaderboard ranking `limit` integer No 10 Number of top miners from the meta-leaderboard to use for analysis ### [hashtag](https://docs.synthdata.co/insights/volatility-old#response-1) Response #### [hashtag](https://docs.synthdata.co/insights/volatility-old#field-descriptions-1) Field Descriptions Field Description `current_price` Current asset price `forecast_future.percentiles` Array of percentile objects, one per time step `0.005`, `0.05`, etc. Price at that percentile (0.5 = median, 0.95 = 95th percentile) ### [hashtag](https://docs.synthdata.co/insights/volatility-old#example) Example * * * ### [hashtag](https://docs.synthdata.co/insights/volatility-old#use-cases) Use Cases * Options Pricing: Use `forecast_future.average_volatility` as volatility input for pricing models * Position Sizing: Scale position sizes inversely with `realized.average_volatility` for risk management * Regime Detection: Compare `forecast_future` vs `realized` volatility to detect market regime changes * Volatility Trading: Identify mean-reversion opportunities when forecast significantly deviates from realized * Backtesting: Use `realized.prices` array to reconstruct historical price paths for strategy validation Last updated 29 days ago * [Parameters](https://docs.synthdata.co/insights/volatility-old#parameters) * [Headers](https://docs.synthdata.co/insights/volatility-old#headers) * [Response](https://docs.synthdata.co/insights/volatility-old#response) * [Example Request](https://docs.synthdata.co/insights/volatility-old#example-request) * [Example Response](https://docs.synthdata.co/insights/volatility-old#example-response) * [Response Codes](https://docs.synthdata.co/insights/volatility-old#response-codes) * [Volatility Percentiles](https://docs.synthdata.co/insights/volatility-old#volatility-percentiles) * [Parameters](https://docs.synthdata.co/insights/volatility-old#parameters-1) * [Response](https://docs.synthdata.co/insights/volatility-old#response-1) * [Example](https://docs.synthdata.co/insights/volatility-old#example) * [Use Cases](https://docs.synthdata.co/insights/volatility-old#use-cases) curl Copy curl "https://api.synthdata.co/insights/volatility?asset=BTC&days=14&limit=10" \ -H "Authorization: Apikey YOUR_API_KEY" Copy { "current_price": 89081.11, "forecast_future": { "average_volatility": 34.99, "volatility": [49.07, 48.54, 48.61, 48.46, 50.86, 52.03, ...] }, "forecast_past": { "average_volatility": 36.63, "volatility": [54.84, 51.18, 50.89, 50.99, 45.77, 42.86, ...] }, "realized": { "average_volatility": 40.66, "prices": [\ {"price": 89750.75, "returns": -0.000105},\ {"price": 89741.30, "returns": 0.000275},\ {"price": 89766.00, "returns": 0.001540},\ ...\ ], "volatility": [30.17, 55.97, 83.24, 84.78, 137.25, ...] } } Copy GET /insights/volatility-percentiles Copy { "current_price": 88996.66, "forecast_future": { "percentiles": [\ {\ "0.005": 88996.66,\ "0.05": 88996.66,\ "0.2": 88996.66,\ "0.35": 88996.66,\ "0.5": 88996.66,\ "0.65": 88996.66,\ "0.8": 88996.66,\ "0.95": 88996.66,\ "0.995": 88996.66\ },\ {\ "0.005": 88631.35,\ "0.05": 88765.15,\ "0.2": 88879.70,\ "0.35": 88943.39,\ "0.5": 88998.23,\ "0.65": 89055.24,\ "0.8": 89122.30,\ "0.95": 89236.58,\ "0.995": 89359.79\ }\ ] }, "forecast_past": { "percentiles": [...] }, "realized": { "prices": [...], "percentiles": [...] } } python Copy response = requests.get( "https://api.synthdata.co/insights/volatility-percentiles", headers={"Authorization": "Apikey YOUR_API_KEY"}, params={"asset": "BTC"} ) data = response.json() percentiles = data['forecast_future']['percentiles'] # Get 95% confidence interval at final time step final = percentiles[-1] lower_bound = final['0.05'] # 5th percentile upper_bound = final['0.95'] # 95th percentile print(f"24h 90% CI: ${lower_bound:,.0f} - ${upper_bound:,.0f}") ---