{"info":{"version":"1.0.0","description":"Live cryptocurrency market data, sentiment analysis, and trading signals. Plug live crypto intelligence into any AI assistant.","title":"Guavy Market Intelligence API"},"components":{"headers":{"TokensCost":{"description":"Tokens this request cost, net of any same-request credit.","schema":{"type":"integer"}},"TokensLimit":{"description":"The account's monthly token budget.","schema":{"type":"integer"}},"TokensLimitToday":{"description":"The account's daily token cap.","schema":{"type":"integer"}},"TokensRemaining":{"description":"Monthly tokens remaining, net of any same-request credit.","schema":{"type":"integer"}},"TokensRemainingToday":{"description":"Daily tokens remaining, net of any same-request credit.","schema":{"type":"integer"}}},"responses":{"BadRequest":{"description":"Malformed request — most commonly a `strategy` path segment outside the supported set (`aggressive` | `conservative`), which the trade-simulator routes reject before proxying and name in the response. A client error, charged as a normal request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"example":{"error":"Unknown strategy \"banana\". Valid strategies: aggressive, conservative."}}}},"NotFound":{"description":"The instrument or resource does not exist; the requested market is not a real market; or it is a real market that has not launched yet, which is reported separately (\"is not available yet\", naming the markets that are live) so it can be told apart from a typo. A miss is billed at a reduced rate, not the full route cost.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"example":{"error":"Not found"}}}},"PaymentRequired":{"description":"Authenticated, but the plan does not include the requested market. No tokens are charged. Not currently reachable — every launched market is available at the free Sandbox floor, and a market that has not launched yet answers 404 (see NotFound). Documented because clients already handle it, and because it becomes reachable if the free floor narrows.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"example":{"message":"Your plan does not include the forex market.","success":false}}}},"RateLimited":{"description":"Too many requests. Retry after the interval in the `Retry-After` header. No tokens are charged.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"example":{"message":"rate limit exceeded","success":false}}}},"Unauthorized":{"description":"Missing, malformed, or unknown API key — or the account is over its daily/monthly token budget.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"example":{"message":"unauthorized","success":false}}}},"UpstreamUnavailable":{"description":"The upstream data provider is temporarily unavailable. The request was valid; retry shortly. Tokens charged for this request are credited back, less a 1-token floor.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"example":{"error":"Upstream data provider is temporarily unavailable. Please retry."}}}}},"schemas":{"Error":{"type":"object","description":"Error envelope. Pipeline-level failures use `success`/`message`; controller-level failures use `error`.","properties":{"error":{"type":"string"},"message":{"type":"string"},"success":{"type":"boolean"}}},"BacktestSummary":{"type":"object","properties":{"start_date":{"type":["string","null"]},"annualized_return":{"type":["number","null"]},"average_loss":{"type":["number","null"]},"average_loss_percent":{"type":["number","null"]},"average_profit":{"type":["number","null"]},"average_profit_percent":{"type":["number","null"]},"average_trade_duration":{"type":["number","null"]},"backtest_duration":{"type":["number","string","null"]},"buy_and_hold_profit_percent":{"type":["number","null"]},"end_date":{"type":["string","null"]},"final_value":{"type":["number","null"]},"initial_investment":{"type":"number"},"peak_loss":{"type":["number","null"]},"peak_profit":{"type":["number","null"]},"profit_percent":{"type":["number","null"]},"profitable_trade_percent":{"type":["number","null"]},"profitable_trades":{"type":["integer","null"]},"total_profit":{"type":["number","null"]},"total_trades":{"type":["integer","null"]},"unprofitable_trades":{"type":["integer","null"]}}},"Brief":{"type":"object","description":"A news brief. Several enrichment fields are populated per-market and per-article and may be null.","properties":{"timestamp":{"type":["integer","null"],"description":"Unix epoch in MILLISECONDS."},"date":{"type":"string"},"title":{"type":["string","null"]},"symbols":{"type":["array","null"],"items":{"type":"string"}},"body":{"type":"string"},"fud_fomo_bias":{"type":["string","null"]},"fud_fomo_score":{"type":["string","null"]},"sentiment":{"type":["number","null"],"description":"-5 (most bearish) to +5 (most bullish)."},"tone":{"type":["string","null"]},"article_id":{"type":"string"},"clout":{"type":["string","null"]},"impacted_coins":{"type":["array","string","null"]},"speculation_score":{"type":["string","null"]}}},"BriefList":{"type":"object","properties":{"briefs":{"type":"array","items":{"$ref":"#/components/schemas/Brief"}}}},"CurrentAction":{"type":"object","properties":{"message":{"type":"string"},"action":{"type":"string","enum":["Buy","Sell","Hold","Stay"]},"symbol":{"type":"string"}}},"CurrentTrend":{"type":"object","properties":{"current_trend":{"$ref":"#/components/schemas/TrendEntry"},"last_updated":{"type":["integer","string","null"],"description":"When this market's trend data was last recomputed. A property of the stored document, so it is returned once per response rather than on each entry."}}},"Indicators":{"type":"object","properties":{"period":{"type":"integer","description":"Analysis window in days (clamped 2-365)."},"symbol":{"type":"string"},"indicators":{"type":"object","properties":{"adx":{"type":["number","null"]},"atr":{"type":"number"},"bollinger_bands":{"type":"object","properties":{"upper":{"type":"number"},"lower":{"type":"number"},"middle":{"type":"number"}}},"ema":{"type":"number"},"fibonacci_retracement":{"type":"object","properties":{"high":{"type":"number"},"low":{"type":"number"},"levels":{"type":"object","additionalProperties":{"type":"number"}}}},"macd":{"type":"object","properties":{"histogram":{"type":["number","null"]},"macd_line":{"type":["number","null"]},"signal_line":{"type":["number","null"]}}},"obv":{"type":"number"},"roc":{"type":["number","null"]},"rsi":{"type":["number","null"]},"sma":{"type":"number"},"stochastic_oscillator":{"type":"object","properties":{"k":{"type":"number"},"d":{"type":"number"}}},"vwap":{"type":"number"}}}}},"Instrument":{"type":"object","properties":{"name":{"type":"string"},"symbol":{"type":"string"},"logo":{"type":"string","format":"uri"}}},"InstrumentAnalysis":{"type":"object","properties":{"timestamp":{"type":"integer"},"date":{"type":"string"},"analysis":{"type":"string"}}},"InstrumentSearch":{"type":"object","properties":{"instruments":{"type":"array","items":{"$ref":"#/components/schemas/Instrument"}}}},"MarketSummary":{"type":"object","properties":{"timestamp":{"type":"integer"},"date":{"type":"string"},"summary":{"type":"string"}}},"Ping":{"type":"object","properties":{"text":{"type":"string","examples":["pong"]}}},"PriceHistory":{"type":"object","description":"Full stored daily series, oldest first. Note: this endpoint returns the entire history and has no limit parameter.","properties":{"price_history":{"type":"array","items":{"$ref":"#/components/schemas/PricePoint"}}}},"PricePoint":{"type":"object","properties":{"timestamp":{"type":"integer","description":"Unix epoch in MILLISECONDS."},"date":{"type":"string","description":"Human-readable date, e.g. \"Nov 14, 2023\"."},"price":{"type":"number"},"volume":{"type":"number"}}},"Recommendation":{"type":"object","properties":{"strategy":{"type":"string"},"symbol":{"type":"string"},"score":{"type":["number","null"]}}},"RecommendationList":{"type":"object","properties":{"recommendations":{"type":"array","items":{"$ref":"#/components/schemas/Recommendation"}}}},"Scorecard":{"type":"object","properties":{"name":{"type":"string"},"strategy":{"type":"string"},"action":{"type":"string","enum":["Buy","Sell","Hold","Stay"]},"symbol":{"type":"string"},"icon":{"type":"string"},"total_trades":{"type":["integer","null"]},"score":{"type":"number"},"buy_and_hold_percentage":{"type":"number"},"in_trade":{"type":"boolean"},"percentage_profit":{"type":"number"},"trend":{"type":["string","null"]},"trend_duration":{"type":["integer","null"]}}},"SentimentHistory":{"type":"object","description":"Newest first.","properties":{"sentiment":{"type":"array","items":{"$ref":"#/components/schemas/SentimentPoint"}}}},"SentimentPoint":{"type":"object","properties":{"positive":{"type":"integer"},"timestamp":{"type":"integer","description":"Unix epoch in MILLISECONDS."},"total":{"type":"integer"},"date":{"type":"string","format":"date"},"symbol":{"type":"string"},"neutral":{"type":"integer"},"negative":{"type":"integer"}}},"SymbolList":{"type":"object","properties":{"symbols":{"type":"array","items":{"type":"string"}}}},"SystemStatus":{"type":"object","properties":{"status":{"type":"string","enum":["ok","degraded","error"]},"version":{"type":"string"},"time":{"type":"string","format":"date-time"},"checks":{"type":"object","description":"One entry per backing datastore.","additionalProperties":{"type":"object","properties":{"status":{"type":"string"},"latency_ms":{"type":["number","null"]}}}}}},"Trade":{"type":"object","properties":{"strategy":{"type":"string"},"exit_reason":{"type":["string","null"]},"action":{"type":"string"},"symbol":{"type":"string"},"start_date":{"type":["string","null"]},"profit_percent":{"type":["number","null"]},"days_in_trade":{"type":["integer","null"]},"entry_price":{"type":["number","null"]},"exit_price":{"type":["number","null"]},"highest_price":{"type":["number","null"]},"last_price":{"type":["number","null"]},"lowest_price":{"type":["number","null"]},"profit":{"type":["number","null"]},"sell_date":{"type":["string","null"]},"start_price":{"type":["number","null"]}}},"TradeList":{"type":"object","properties":{"trades":{"type":"array","items":{"$ref":"#/components/schemas/Trade"}}}},"TrendEntry":{"type":"object","description":"One trend state. The same object is returned for the current trend and for each completed segment, so the two are directly comparable field by field.","properties":{"close":{"type":["number","null"],"description":"Closing price at that point."},"started_at":{"type":["integer","null"],"description":"When this trend episode STARTED, unix epoch in MILLISECONDS. Each segment begins where the previous ended; trend_duration_days is how long it ran. The newest segment is the currently-running trend and also appears in current_trend."},"started_on":{"type":["string","null"],"description":"The same instant as an ISO-8601 date.","examples":["2026-05-24T00:00:00.000Z"]},"peak_loss":{"type":"number"},"trend":{"type":"string","description":"Direction, as stored.","examples":["up","down"]},"long_term_average":{"type":"number"},"max_price":{"type":"number"},"max_price_day":{"$ref":"#/components/schemas/TrendExtremeDay"},"mid_term_average":{"type":"number"},"min_price":{"type":"number"},"min_price_day":{"$ref":"#/components/schemas/TrendExtremeDay"},"peak_gain":{"type":"number"},"short_term_average":{"type":"number"},"signal_strength":{"type":"number","description":"Raw strength as stored. The scale is NOT comparable across markets or collections — threshold it per market rather than assuming fixed bands.","examples":[-3.8154146341463257e-4]},"trend_duration_days":{"type":"integer","examples":[68]}}},"TrendExtremeDay":{"type":"object","description":"The highest- or lowest-closing day within the trend.","properties":{"close":{"type":"number"},"timestamp":{"type":"integer","description":"Unix epoch in MILLISECONDS."},"date":{"type":"string","examples":["2026-05-29T00:00:00.000Z"]},"trend":{"type":"string"}}},"TrendHistory":{"type":"object","properties":{"trends":{"type":"array","items":{"$ref":"#/components/schemas/TrendPoint"}}}},"TrendPoint":{"type":"object","properties":{"timestamp":{"type":["integer","null"]},"date":{"type":["string","null"]},"price":{"type":["number","null"]},"strength":{"type":"string"},"trend":{"type":"string"}}},"TrendSegments":{"type":"object","properties":{"trend_segments":{"type":"array","description":"Completed trend episodes, newest first.","items":{"$ref":"#/components/schemas/TrendEntry"}},"last_updated":{"type":["integer","string","null"],"description":"When this market's trend data was last recomputed. A property of the stored document, so it is returned once per response rather than on each entry."}}}},"securitySchemes":{"BearerAuth":{"scheme":"bearer","type":"http","description":"Your Guavy API key. Get one at https://guavy.com/auth/signup"}}},"paths":{"/api/v1/ping":{"get":{"description":"Returns ok if the API is running. No authentication required.","summary":"Health check","operationId":"ping","responses":{"200":{"description":"API is healthy","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Ping"}}},"headers":{"x-tokens-cost":{"$ref":"#/components/headers/TokensCost"},"x-tokens-limit":{"$ref":"#/components/headers/TokensLimit"},"x-tokens-limit-today":{"$ref":"#/components/headers/TokensLimitToday"},"x-tokens-remaining":{"$ref":"#/components/headers/TokensRemaining"},"x-tokens-remaining-today":{"$ref":"#/components/headers/TokensRemainingToday"}}}},"security":[]}},"/api/v1/status":{"get":{"description":"Per-datastore health checks. Public: no authentication, no rate limiting, and no token accounting.","summary":"Public system status","operationId":"systemStatus","responses":{"200":{"description":"Current system status","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SystemStatus"}}},"headers":{"x-tokens-cost":{"$ref":"#/components/headers/TokensCost"},"x-tokens-limit":{"$ref":"#/components/headers/TokensLimit"},"x-tokens-limit-today":{"$ref":"#/components/headers/TokensLimitToday"},"x-tokens-remaining":{"$ref":"#/components/headers/TokensRemaining"},"x-tokens-remaining-today":{"$ref":"#/components/headers/TokensRemainingToday"}}}},"security":[]}},"/api/v2/crypto/newsroom/get-instrument-analysis/{symbol}":{"get":{"parameters":[{"in":"path","name":"symbol","required":true,"schema":{"type":"string"}}],"summary":"AI-generated coin analysis","operationId":"getInstrumentAnalysisV2Crypto","responses":{"200":{"description":"Qualitative analysis","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstrumentAnalysis"}}},"headers":{"x-tokens-cost":{"$ref":"#/components/headers/TokensCost"},"x-tokens-limit":{"$ref":"#/components/headers/TokensLimit"},"x-tokens-limit-today":{"$ref":"#/components/headers/TokensLimitToday"},"x-tokens-remaining":{"$ref":"#/components/headers/TokensRemaining"},"x-tokens-remaining-today":{"$ref":"#/components/headers/TokensRemainingToday"}}},"401":{"$ref":"#/components/responses/Unauthorized"},"402":{"$ref":"#/components/responses/PaymentRequired"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/api/v2/crypto/newsroom/get-market-summary":{"get":{"description":"Get an AI-generated analysis of global crypto market trends for today.","summary":"Daily AI-generated market summary","operationId":"getMarketSummaryV2Crypto","responses":{"200":{"description":"Market summary","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MarketSummary"}}},"headers":{"x-tokens-cost":{"$ref":"#/components/headers/TokensCost"},"x-tokens-limit":{"$ref":"#/components/headers/TokensLimit"},"x-tokens-limit-today":{"$ref":"#/components/headers/TokensLimitToday"},"x-tokens-remaining":{"$ref":"#/components/headers/TokensRemaining"},"x-tokens-remaining-today":{"$ref":"#/components/headers/TokensRemainingToday"}}},"401":{"$ref":"#/components/responses/Unauthorized"},"402":{"$ref":"#/components/responses/PaymentRequired"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/api/v2/crypto/trades/get-backtest-history/{symbol}/{strategy}":{"get":{"parameters":[{"in":"path","name":"symbol","required":true,"schema":{"type":"string"}},{"in":"path","name":"strategy","required":true,"schema":{"type":"string","enum":["aggressive","conservative"]}},{"in":"query","name":"years","schema":{"default":2,"type":"integer"}},{"in":"query","name":"limit","schema":{"default":50,"type":"integer"}}],"summary":"Historical backtest trades for a coin and strategy","operationId":"getBacktestHistoryV2Crypto","responses":{"200":{"description":"Backtest trade history","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TradeList"}}},"headers":{"x-tokens-cost":{"$ref":"#/components/headers/TokensCost"},"x-tokens-limit":{"$ref":"#/components/headers/TokensLimit"},"x-tokens-limit-today":{"$ref":"#/components/headers/TokensLimitToday"},"x-tokens-remaining":{"$ref":"#/components/headers/TokensRemaining"},"x-tokens-remaining-today":{"$ref":"#/components/headers/TokensRemainingToday"}}},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"402":{"$ref":"#/components/responses/PaymentRequired"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/UpstreamUnavailable"}}}},"/api/v2/crypto/trades/get-backtest-summary/{symbol}/{strategy}":{"get":{"parameters":[{"in":"path","name":"symbol","required":true,"schema":{"type":"string"}},{"in":"path","name":"strategy","required":true,"schema":{"type":"string","enum":["aggressive","conservative"]}}],"summary":"Backtest performance summary (win rate, ROI) for a coin and strategy","operationId":"getBacktestSummaryV2Crypto","responses":{"200":{"description":"Backtest summary stats","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BacktestSummary"}}},"headers":{"x-tokens-cost":{"$ref":"#/components/headers/TokensCost"},"x-tokens-limit":{"$ref":"#/components/headers/TokensLimit"},"x-tokens-limit-today":{"$ref":"#/components/headers/TokensLimitToday"},"x-tokens-remaining":{"$ref":"#/components/headers/TokensRemaining"},"x-tokens-remaining-today":{"$ref":"#/components/headers/TokensRemainingToday"}}},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"402":{"$ref":"#/components/responses/PaymentRequired"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/UpstreamUnavailable"}}}},"/api/v2/crypto/trades/get-current-action/{symbol}/{strategy}":{"get":{"description":"Returns Buy, Sell, Hold, or Stay for the given coin and strategy.","parameters":[{"in":"path","name":"symbol","required":true,"schema":{"type":"string"}},{"in":"path","name":"strategy","required":true,"schema":{"type":"string","enum":["aggressive","conservative"]}}],"summary":"Current trade action for a coin","operationId":"getCurrentActionV2Crypto","responses":{"200":{"description":"Current action","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CurrentAction"}}},"headers":{"x-tokens-cost":{"$ref":"#/components/headers/TokensCost"},"x-tokens-limit":{"$ref":"#/components/headers/TokensLimit"},"x-tokens-limit-today":{"$ref":"#/components/headers/TokensLimitToday"},"x-tokens-remaining":{"$ref":"#/components/headers/TokensRemaining"},"x-tokens-remaining-today":{"$ref":"#/components/headers/TokensRemainingToday"}}},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"402":{"$ref":"#/components/responses/PaymentRequired"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/UpstreamUnavailable"}}}},"/api/v2/crypto/trades/get-recent-buys":{"get":{"parameters":[{"in":"query","name":"limit","schema":{"default":10,"type":"integer"}},{"in":"query","name":"skip","schema":{"default":0,"type":"integer"}},{"in":"query","name":"strategy","schema":{"type":"string"}}],"summary":"Recent buy signals","operationId":"getRecentBuysV2Crypto","responses":{"200":{"description":"Recent buy trades","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TradeList"}}},"headers":{"x-tokens-cost":{"$ref":"#/components/headers/TokensCost"},"x-tokens-limit":{"$ref":"#/components/headers/TokensLimit"},"x-tokens-limit-today":{"$ref":"#/components/headers/TokensLimitToday"},"x-tokens-remaining":{"$ref":"#/components/headers/TokensRemaining"},"x-tokens-remaining-today":{"$ref":"#/components/headers/TokensRemainingToday"}}},"401":{"$ref":"#/components/responses/Unauthorized"},"402":{"$ref":"#/components/responses/PaymentRequired"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/UpstreamUnavailable"}}}},"/api/v2/crypto/trades/get-recent-sells":{"get":{"parameters":[{"in":"query","name":"limit","schema":{"default":10,"type":"integer"}},{"in":"query","name":"skip","schema":{"default":0,"type":"integer"}},{"in":"query","name":"strategy","schema":{"type":"string"}}],"summary":"Recent sell signals","operationId":"getRecentSellsV2Crypto","responses":{"200":{"description":"Recent sell trades","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TradeList"}}},"headers":{"x-tokens-cost":{"$ref":"#/components/headers/TokensCost"},"x-tokens-limit":{"$ref":"#/components/headers/TokensLimit"},"x-tokens-limit-today":{"$ref":"#/components/headers/TokensLimitToday"},"x-tokens-remaining":{"$ref":"#/components/headers/TokensRemaining"},"x-tokens-remaining-today":{"$ref":"#/components/headers/TokensRemainingToday"}}},"401":{"$ref":"#/components/responses/Unauthorized"},"402":{"$ref":"#/components/responses/PaymentRequired"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/UpstreamUnavailable"}}}},"/api/v2/crypto/trades/get-recommendations":{"get":{"parameters":[{"in":"query","name":"strategy","schema":{"default":"aggressive","type":"string"}},{"in":"query","name":"limit","schema":{"default":10,"type":"integer"}},{"in":"query","name":"min_score","schema":{"default":3.5,"type":"number"}}],"summary":"Trade recommendations by strategy","operationId":"getRecommendationsV2Crypto","responses":{"200":{"description":"Recommended instruments","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RecommendationList"}}},"headers":{"x-tokens-cost":{"$ref":"#/components/headers/TokensCost"},"x-tokens-limit":{"$ref":"#/components/headers/TokensLimit"},"x-tokens-limit-today":{"$ref":"#/components/headers/TokensLimitToday"},"x-tokens-remaining":{"$ref":"#/components/headers/TokensRemaining"},"x-tokens-remaining-today":{"$ref":"#/components/headers/TokensRemainingToday"}}},"401":{"$ref":"#/components/responses/Unauthorized"},"402":{"$ref":"#/components/responses/PaymentRequired"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/UpstreamUnavailable"}}}},"/api/v2/crypto/trades/get-trend-history/{symbol}/{limit}":{"get":{"parameters":[{"in":"path","name":"symbol","required":true,"schema":{"type":"string"}},{"in":"path","name":"limit","required":true,"schema":{"type":"integer"}}],"summary":"Price trend history with strength indicators","operationId":"getTrendHistoryV2Crypto","responses":{"200":{"description":"Trend time-series, newest first","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TrendHistory"}}},"headers":{"x-tokens-cost":{"$ref":"#/components/headers/TokensCost"},"x-tokens-limit":{"$ref":"#/components/headers/TokensLimit"},"x-tokens-limit-today":{"$ref":"#/components/headers/TokensLimitToday"},"x-tokens-remaining":{"$ref":"#/components/headers/TokensRemaining"},"x-tokens-remaining-today":{"$ref":"#/components/headers/TokensRemainingToday"}}},"401":{"$ref":"#/components/responses/Unauthorized"},"402":{"$ref":"#/components/responses/PaymentRequired"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/UpstreamUnavailable"}}}},"/api/v2/{market}/instruments/get-detail/{symbol}":{"get":{"description":"Get coin metadata NOTE: served for crypto only — other markets return 404. Only crypto's instrument collection carries the name and the numeric id the logo URL is built from. A non-crypto instrument's name is available from the scorecard endpoint.","parameters":[{"in":"path","name":"market","description":"Market to query. Available: crypto, forex, commodities, stocks.","required":true,"schema":{"type":"string","enum":["crypto","forex","commodities","stocks"]}},{"in":"path","name":"symbol","required":true,"schema":{"type":"string"}}],"summary":"Get coin metadata","operationId":"getInstrumentDetailV2","responses":{"200":{"description":"Instrument detail","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Instrument"}}},"headers":{"x-tokens-cost":{"$ref":"#/components/headers/TokensCost"},"x-tokens-limit":{"$ref":"#/components/headers/TokensLimit"},"x-tokens-limit-today":{"$ref":"#/components/headers/TokensLimitToday"},"x-tokens-remaining":{"$ref":"#/components/headers/TokensRemaining"},"x-tokens-remaining-today":{"$ref":"#/components/headers/TokensRemainingToday"}}},"401":{"$ref":"#/components/responses/Unauthorized"},"402":{"$ref":"#/components/responses/PaymentRequired"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/api/v2/{market}/instruments/list-symbols":{"get":{"description":"Returns all supported cryptocurrency symbols.","parameters":[{"in":"path","name":"market","description":"Market to query. Available: crypto, forex, commodities, stocks.","required":true,"schema":{"type":"string","enum":["crypto","forex","commodities","stocks"]}},{"in":"query","name":"limit","schema":{"default":100,"type":"integer"}},{"in":"query","name":"skip","schema":{"default":0,"type":"integer"}}],"summary":"List all coin symbols","operationId":"listSymbolsV2","responses":{"200":{"description":"List of symbols","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SymbolList"}}},"headers":{"x-tokens-cost":{"$ref":"#/components/headers/TokensCost"},"x-tokens-limit":{"$ref":"#/components/headers/TokensLimit"},"x-tokens-limit-today":{"$ref":"#/components/headers/TokensLimitToday"},"x-tokens-remaining":{"$ref":"#/components/headers/TokensRemaining"},"x-tokens-remaining-today":{"$ref":"#/components/headers/TokensRemainingToday"}}},"401":{"$ref":"#/components/responses/Unauthorized"},"402":{"$ref":"#/components/responses/PaymentRequired"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/api/v2/{market}/instruments/scorecard/{symbol}":{"get":{"description":"Technical scorecard for a coin","parameters":[{"in":"path","name":"market","description":"Market to query. Available: crypto, forex, commodities, stocks.","required":true,"schema":{"type":"string","enum":["crypto","forex","commodities","stocks"]}},{"in":"path","name":"symbol","required":true,"schema":{"type":"string"}}],"summary":"Technical scorecard for a coin","operationId":"getScorecardV2","responses":{"200":{"description":"Scorecard data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Scorecard"}}},"headers":{"x-tokens-cost":{"$ref":"#/components/headers/TokensCost"},"x-tokens-limit":{"$ref":"#/components/headers/TokensLimit"},"x-tokens-limit-today":{"$ref":"#/components/headers/TokensLimitToday"},"x-tokens-remaining":{"$ref":"#/components/headers/TokensRemaining"},"x-tokens-remaining-today":{"$ref":"#/components/headers/TokensRemainingToday"}}},"401":{"$ref":"#/components/responses/Unauthorized"},"402":{"$ref":"#/components/responses/PaymentRequired"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/api/v2/{market}/instruments/search-instruments/{query}":{"get":{"description":"Search coins by name or symbol NOTE: served for crypto only — other markets return 404. Only crypto's instrument collection carries the name and the numeric id the logo URL is built from. A non-crypto instrument's name is available from the scorecard endpoint.","parameters":[{"in":"path","name":"market","description":"Market to query. Available: crypto, forex, commodities, stocks.","required":true,"schema":{"type":"string","enum":["crypto","forex","commodities","stocks"]}},{"in":"path","name":"query","required":true,"schema":{"type":"string"}}],"summary":"Search coins by name or symbol","operationId":"searchInstrumentsV2","responses":{"200":{"description":"Matching instruments (max 5)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstrumentSearch"}}},"headers":{"x-tokens-cost":{"$ref":"#/components/headers/TokensCost"},"x-tokens-limit":{"$ref":"#/components/headers/TokensLimit"},"x-tokens-limit-today":{"$ref":"#/components/headers/TokensLimitToday"},"x-tokens-remaining":{"$ref":"#/components/headers/TokensRemaining"},"x-tokens-remaining-today":{"$ref":"#/components/headers/TokensRemainingToday"}}},"401":{"$ref":"#/components/responses/Unauthorized"},"402":{"$ref":"#/components/responses/PaymentRequired"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/api/v2/{market}/newsroom/get-article/{article_id}":{"get":{"description":"Get a news article by ID","parameters":[{"in":"path","name":"market","description":"Market to query. Available: crypto, forex, commodities, stocks.","required":true,"schema":{"type":"string","enum":["crypto","forex","commodities","stocks"]}},{"in":"path","name":"article_id","required":true,"schema":{"type":"string"}}],"summary":"Get a news article by ID","operationId":"getArticleV2","responses":{"200":{"description":"A single news brief","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Brief"}}},"headers":{"x-tokens-cost":{"$ref":"#/components/headers/TokensCost"},"x-tokens-limit":{"$ref":"#/components/headers/TokensLimit"},"x-tokens-limit-today":{"$ref":"#/components/headers/TokensLimitToday"},"x-tokens-remaining":{"$ref":"#/components/headers/TokensRemaining"},"x-tokens-remaining-today":{"$ref":"#/components/headers/TokensRemainingToday"}}},"401":{"$ref":"#/components/responses/Unauthorized"},"402":{"$ref":"#/components/responses/PaymentRequired"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/api/v2/{market}/newsroom/get-recent-briefs/{symbol}":{"get":{"description":"Recent news briefs for a coin","parameters":[{"in":"path","name":"market","description":"Market to query. Available: crypto, forex, commodities, stocks.","required":true,"schema":{"type":"string","enum":["crypto","forex","commodities","stocks"]}},{"in":"path","name":"symbol","required":true,"schema":{"type":"string"}},{"in":"query","name":"limit","schema":{"default":10,"type":"integer"}}],"summary":"Recent news briefs for a coin","operationId":"getRecentBriefsV2","responses":{"200":{"description":"News briefs with sentiment scores","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BriefList"}}},"headers":{"x-tokens-cost":{"$ref":"#/components/headers/TokensCost"},"x-tokens-limit":{"$ref":"#/components/headers/TokensLimit"},"x-tokens-limit-today":{"$ref":"#/components/headers/TokensLimitToday"},"x-tokens-remaining":{"$ref":"#/components/headers/TokensRemaining"},"x-tokens-remaining-today":{"$ref":"#/components/headers/TokensRemainingToday"}}},"401":{"$ref":"#/components/responses/Unauthorized"},"402":{"$ref":"#/components/responses/PaymentRequired"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/api/v2/{market}/newsroom/search-briefs/{symbol}":{"get":{"description":"Search brief titles for matching keywords for a specific coin. Results restricted to the past 24 hours.","parameters":[{"in":"path","name":"market","description":"Market to query. Available: crypto, forex, commodities, stocks.","required":true,"schema":{"type":"string","enum":["crypto","forex","commodities","stocks"]}},{"in":"path","name":"symbol","description":"Coin symbol (e.g. BTC, ETH)","required":true,"schema":{"type":"string"}},{"in":"query","name":"keywords","description":"Search keywords to match against brief titles","required":false,"schema":{"type":"string"}},{"in":"query","name":"limit","description":"Maximum results to return","schema":{"default":20,"type":"integer"}}],"summary":"Search news briefs by keyword for a specific coin","operationId":"searchBriefsV2","responses":{"200":{"description":"Matching news briefs from the past 24 hours","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BriefList"}}},"headers":{"x-tokens-cost":{"$ref":"#/components/headers/TokensCost"},"x-tokens-limit":{"$ref":"#/components/headers/TokensLimit"},"x-tokens-limit-today":{"$ref":"#/components/headers/TokensLimitToday"},"x-tokens-remaining":{"$ref":"#/components/headers/TokensRemaining"},"x-tokens-remaining-today":{"$ref":"#/components/headers/TokensRemainingToday"}}},"401":{"$ref":"#/components/responses/Unauthorized"},"402":{"$ref":"#/components/responses/PaymentRequired"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/api/v2/{market}/sentiment/get-sentiment-history/{symbol}":{"get":{"description":"Sentiment time-series for a coin","parameters":[{"in":"path","name":"market","description":"Market to query. Available: crypto, forex, commodities, stocks.","required":true,"schema":{"type":"string","enum":["crypto","forex","commodities","stocks"]}},{"in":"path","name":"symbol","required":true,"schema":{"type":"string"}},{"in":"query","name":"limit","schema":{"default":30,"type":"integer"}}],"summary":"Sentiment time-series for a coin","operationId":"getSentimentHistoryV2","responses":{"200":{"description":"Daily sentiment counts, newest first","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SentimentHistory"}}},"headers":{"x-tokens-cost":{"$ref":"#/components/headers/TokensCost"},"x-tokens-limit":{"$ref":"#/components/headers/TokensLimit"},"x-tokens-limit-today":{"$ref":"#/components/headers/TokensLimitToday"},"x-tokens-remaining":{"$ref":"#/components/headers/TokensRemaining"},"x-tokens-remaining-today":{"$ref":"#/components/headers/TokensRemainingToday"}}},"401":{"$ref":"#/components/responses/Unauthorized"},"402":{"$ref":"#/components/responses/PaymentRequired"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/api/v2/{market}/technical-analysis/get-indicators/{symbol}":{"get":{"description":"Computes SMA, EMA, RSI, MACD, Bollinger Bands, Stochastic Oscillator, ATR, VWAP, OBV, Fibonacci Retracement, ADX, and ROC from historical price data.","parameters":[{"in":"path","name":"market","description":"Market to query. Available: crypto, forex, commodities, stocks.","required":true,"schema":{"type":"string","enum":["crypto","forex","commodities","stocks"]}},{"in":"path","name":"symbol","description":"Coin symbol (e.g. BTC, ETH)","required":true,"schema":{"type":"string"}},{"in":"query","name":"period","description":"Number of days to analyze","schema":{"default":30,"type":"integer"}}],"summary":"Technical indicators for a coin","operationId":"getIndicatorsV2","responses":{"200":{"description":"Technical indicator values","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Indicators"}}},"headers":{"x-tokens-cost":{"$ref":"#/components/headers/TokensCost"},"x-tokens-limit":{"$ref":"#/components/headers/TokensLimit"},"x-tokens-limit-today":{"$ref":"#/components/headers/TokensLimitToday"},"x-tokens-remaining":{"$ref":"#/components/headers/TokensRemaining"},"x-tokens-remaining-today":{"$ref":"#/components/headers/TokensRemainingToday"}}},"401":{"$ref":"#/components/responses/Unauthorized"},"402":{"$ref":"#/components/responses/PaymentRequired"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/api/v2/{market}/technical-analysis/get-price-history/{symbol}":{"get":{"description":"Returns an array of daily price quotes (price, volume, timestamp in ms), oldest first. With no parameters the response is the coin's FULL stored history. `limit`, `from` and `to` narrow it, and a narrowed request costs FEWER tokens than the full series.","parameters":[{"in":"path","name":"market","description":"Market to query. Available: crypto, forex, commodities, stocks.","required":true,"schema":{"type":"string","enum":["crypto","forex","commodities","stocks"]}},{"in":"path","name":"symbol","description":"Coin symbol (e.g. BTC, ETH)","required":true,"schema":{"type":"string"}},{"in":"query","name":"limit","description":"Return only the most recent N points. Omit for the full series. Costs 2 tokens at <=30, 3 at <=90, 4 at <=365, and 5 unbounded.","required":false,"schema":{"type":"integer","minimum":1}},{"in":"query","name":"from","description":"Inclusive lower bound, unix MILLISECONDS (matching the `timestamp` field).","required":false,"schema":{"type":"integer","format":"int64"}},{"in":"query","name":"to","description":"Inclusive upper bound, unix MILLISECONDS. Combined with `limit`, the range is applied first and `limit` then caps within it.","required":false,"schema":{"type":"integer","format":"int64"}}],"summary":"Daily historical price data for a coin","operationId":"getPriceHistoryV2","responses":{"200":{"description":"Full daily price series, oldest first","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PriceHistory"}}},"headers":{"x-tokens-cost":{"$ref":"#/components/headers/TokensCost"},"x-tokens-limit":{"$ref":"#/components/headers/TokensLimit"},"x-tokens-limit-today":{"$ref":"#/components/headers/TokensLimitToday"},"x-tokens-remaining":{"$ref":"#/components/headers/TokensRemaining"},"x-tokens-remaining-today":{"$ref":"#/components/headers/TokensRemainingToday"}}},"401":{"$ref":"#/components/responses/Unauthorized"},"402":{"$ref":"#/components/responses/PaymentRequired"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/api/v2/{market}/trades/get-current-trend/{symbol}":{"get":{"description":"The live trend state: direction, signal strength, the three moving averages, peak gain/loss, and how many days the current trend has run. Served for the markets that store trend data (forex, commodities, stocks); crypto returns 404 because its trend data is computed by the upstream simulator instead — use get-trend-history there. `trend` is lowercase as stored and `signal_strength` is a raw number whose scale is not comparable across markets; threshold it per market rather than assuming fixed bands.","parameters":[{"in":"path","name":"market","description":"Market to query. Available: crypto, forex, commodities, stocks.","required":true,"schema":{"type":"string","enum":["crypto","forex","commodities","stocks"]}},{"in":"path","name":"symbol","description":"Instrument symbol, matched case-insensitively.","required":true,"schema":{"type":"string"}}],"summary":"Current trend for a symbol","operationId":"getCurrentTrendV2","responses":{"200":{"description":"Current trend","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CurrentTrend"}}},"headers":{"x-tokens-cost":{"$ref":"#/components/headers/TokensCost"},"x-tokens-limit":{"$ref":"#/components/headers/TokensLimit"},"x-tokens-limit-today":{"$ref":"#/components/headers/TokensLimitToday"},"x-tokens-remaining":{"$ref":"#/components/headers/TokensRemaining"},"x-tokens-remaining-today":{"$ref":"#/components/headers/TokensRemainingToday"}}},"401":{"$ref":"#/components/responses/Unauthorized"},"402":{"$ref":"#/components/responses/PaymentRequired"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/UpstreamUnavailable"}}}},"/api/v2/{market}/trades/get-trend-segments/{symbol}":{"get":{"description":"Completed trend episodes, newest first — each one a full trend object covering the period it ran. This is NOT a daily time series: symbols carry a few dozen segments, not thousands of points. Deliberately named apart from get-trend-history, which on crypto returns a ~1,600-point daily series; the two shapes are not interchangeable. Served for forex, commodities and stocks; crypto returns 404.","parameters":[{"in":"path","name":"market","description":"Market to query. Available: crypto, forex, commodities, stocks.","required":true,"schema":{"type":"string","enum":["crypto","forex","commodities","stocks"]}},{"in":"path","name":"symbol","description":"Instrument symbol, matched case-insensitively.","required":true,"schema":{"type":"string"}},{"in":"query","name":"limit","description":"Maximum segments to return, newest first. Clamped to 1..500.","schema":{"default":50,"type":"integer"}}],"summary":"Completed trend segments for a symbol","operationId":"getTrendSegmentsV2","responses":{"200":{"description":"Trend segments","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TrendSegments"}}},"headers":{"x-tokens-cost":{"$ref":"#/components/headers/TokensCost"},"x-tokens-limit":{"$ref":"#/components/headers/TokensLimit"},"x-tokens-limit-today":{"$ref":"#/components/headers/TokensLimitToday"},"x-tokens-remaining":{"$ref":"#/components/headers/TokensRemaining"},"x-tokens-remaining-today":{"$ref":"#/components/headers/TokensRemainingToday"}}},"401":{"$ref":"#/components/responses/Unauthorized"},"402":{"$ref":"#/components/responses/PaymentRequired"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/UpstreamUnavailable"}}}}},"servers":[{"url":"https://guavy.com"}],"openapi":"3.1.0","security":[{"BearerAuth":[]}]}