openapi: 3.2.0 info: title: Adanos Market Sentiment Reddit Crypto API version: 1.50.0 contact: name: API Support url: https://api.adanos.org/ email: support@adanos.org license: name: MIT (OpenAPI document only) url: https://opensource.org/licenses/MIT termsOfService: https://adanos.org/terms description: 'Operations tagged Reddit Crypto across 2 of this provider''s published API definitions: adanos-market-sentiment-api-openapi.json, adanos-market-sentiment-api-reddit-crypto-openapi.yaml. Each path carries the servers of the definition it was published in.' servers: - url: https://api.adanos.org description: Production tags: - name: Reddit Crypto description: Crypto sentiment on Reddit with the same discovery/search/compare pattern as the stock APIs. paths: /reddit/crypto/v1/trending: get: tags: - Reddit Crypto summary: Trending tokens description: 'Returns the crypto assets with the strongest Reddit discussion activity in the selected period, ranked by `buzz_score`. **Includes:** - `buzz_score`: normalized 0-100 activity score used for ranking - `trend`: activity momentum over the current 3 UTC days vs previous 3 UTC days using mentions, upvotes and subreddit breadth; not price movement. For `from`/`to`, anchors at `to` (or now when `to` is today) - `sentiment_score`, `bullish_pct`, `bearish_pct`: directional sentiment signals - `mentions`, `unique_posts`, `subreddit_count`, `total_upvotes`: attributed volume and engagement signals, including inherited thread-context mentions - `trend_history`: independent UTC-day buzz scores, oldest to newest; minimum 7 values; the live final value describes today so far and can differ from the selected-period `buzz_score`; missing days are `0.0`' operationId: getRedditCryptoTrending security: - ApiKeyAuth: [] parameters: - name: from in: query required: false schema: anyOf: - type: string format: date - type: 'null' description: Start date in YYYY-MM-DD. Inclusive UTC date. title: From description: Start date in YYYY-MM-DD. Inclusive UTC date. - name: to in: query required: false schema: anyOf: - type: string format: date - type: 'null' description: End date in YYYY-MM-DD. Inclusive UTC date. Omit to use the current UTC date. title: To description: End date in YYYY-MM-DD. Inclusive UTC date. Omit to use the current UTC date. - name: days in: query required: false schema: type: integer maximum: 365 minimum: 1 description: Deprecated v1 compatibility shorthand. Prefer `from` and `to` for reproducible UTC date windows. title: Days description: Deprecated v1 compatibility shorthand. Prefer `from` and `to` for reproducible UTC date windows. deprecated: true x-adanos-hide-in-request-client: true - name: limit in: query required: false schema: type: integer maximum: 100 minimum: 1 description: Maximum tokens to return default: 20 title: Limit description: Maximum tokens to return - name: offset in: query required: false schema: type: integer minimum: 0 description: Pagination offset default: 0 title: Offset description: Pagination offset responses: '200': description: Successful Response content: application/json: schema: type: array items: $ref: '#/components/schemas/CryptoTrendingToken' title: Response Getredditcryptotrending example: - symbol: BTC name: Bitcoin buzz_score: 78.1 trend: rising mentions: 423 unique_posts: 97 subreddit_count: 12 sentiment_score: 0.31 bullish_pct: 47 bearish_pct: 18 total_upvotes: 15620 trend_history: - 42.3 - 46.8 - 51.2 - 58.9 - 64.0 - 71.4 - 78.1 headers: X-Request-ID: description: Request correlation identifier returned by the API and included in structured application logs. schema: type: string example: adnos.req-20260423.abc12345 Cache-Control: description: HTTP cache policy returned by the API. schema: type: string example: private, max-age=30 Vary: description: Headers that private client caches must include in their cache key. schema: type: string example: X-API-Key, Authorization, Accept-Encoding X-RateLimit-Limit-Monthly: description: Monthly request quota for the authenticated account. schema: type: string example: '250' X-RateLimit-Remaining-Monthly: description: Remaining monthly requests for the authenticated account. schema: type: string example: '247' X-RateLimit-Used-Monthly: description: Requests already consumed in the account's current monthly quota window. schema: type: string example: '3' X-RateLimit-Reset-Monthly: description: ISO 8601 timestamp when the current monthly quota window resets. schema: type: string format: date-time example: '2026-07-29T14:03:00Z' X-RateLimit-Limit-Burst: description: Per-minute burst request quota for the authenticated account. schema: type: string example: '100' X-RateLimit-Remaining-Burst: description: Remaining requests in the current per-minute burst window. schema: type: string example: '99' X-RateLimit-Reset-Burst: description: ISO 8601 timestamp when the current burst rate-limit window resets. schema: type: string format: date-time example: '2026-04-28T14:30:00Z' X-Account-Type: description: Account tier resolved from the API key. schema: type: string enum: - free - hobby - professional - premium example: free '401': description: Authentication failed content: application/json: examples: missing: summary: Missing API key value: detail: Missing API key. Include 'X-API-Key' header. invalid: summary: Invalid API key value: detail: Invalid API key. revoked: summary: Revoked API key value: detail: API key has been revoked. schema: $ref: '#/components/schemas/ErrorResponse' '403': description: Historical data limit exceeded content: application/json: example: detail: error: Historical data limit exceeded message: 'Your free account is limited to 30 days of historical lookback. Upgrade to Hobby for up to 90 days or Professional for up to 365 days: https://adanos.org/pricing' requested_days: 60 enforced_quantity: lookback_days max_days: 30 account_type: free schema: $ref: '#/components/schemas/HistoricalLimitError' '429': description: Rate limit exceeded content: application/json: examples: burst: summary: Fleet burst limit exceeded value: detail: error: Burst rate limit exceeded message: Too many requests. Limit is 100 requests per minute. limit: 100 used: 100 account_type: free local: summary: Local backup limiter exceeded value: detail: error: Rate limit exceeded message: 'Rate limit exceeded: 100 per 1 minute' limit: 100 account_type: free schema: $ref: '#/components/schemas/RateLimitError' '422': description: Invalid period or query parameters content: application/json: examples: platform_availability: summary: Period starts before platform data availability value: detail: error: Invalid period message: Requested period starts before this platform's public data availability. period_from: '2025-03-17' available_since: '2026-03-07' platform: news validation: summary: Query parameter validation failed value: detail: - type: greater_than_equal loc: - query - days msg: Input should be greater than or equal to 1 input: '0' ctx: ge: 1 schema: anyOf: - $ref: '#/components/schemas/InvalidPeriodError' - $ref: '#/components/schemas/HTTPValidationError' title: Response 422 Getredditcryptotrending '503': description: Database temporarily unavailable content: application/json: example: detail: Database temporarily unavailable schema: $ref: '#/components/schemas/ErrorResponse' '504': description: Analytics request deadline exceeded content: application/json: example: detail: Request deadline exceeded schema: $ref: '#/components/schemas/ErrorResponse' '404': description: No trending crypto tokens found content: application/json: example: detail: No trending crypto tokens found. x-codeSamples: - lang: curl label: cURL source: "curl \"https://api.adanos.org/reddit/crypto/v1/trending?from=2026-05-01&to=2026-05-07&limit=5\" \\\n -H \"X-API-Key: sk_live_your_key_here\"" - lang: javascript label: JavaScript source: "const response = await fetch(\"https://api.adanos.org/reddit/crypto/v1/trending?from=2026-05-01&to=2026-05-07&limit=5\", {\n headers: {\n \"X-API-Key\": \"sk_live_your_key_here\",\n },\n});\n\nif (!response.ok) throw new Error(`HTTP ${response.status}`);\nconst data = await response.json();\nconsole.log(data);" - lang: python label: Python source: "import requests\n\nresponse = requests.get(\n \"https://api.adanos.org/reddit/crypto/v1/trending?from=2026-05-01&to=2026-05-07&limit=5\",\n headers={\n \"X-API-Key\": \"sk_live_your_key_here\",\n },\n timeout=30,\n)\nresponse.raise_for_status()\nprint(response.json())" servers: - url: https://api.adanos.org description: Production /reddit/crypto/v1/token/{symbol}: get: tags: - Reddit Crypto summary: Token Sentiment description: 'Returns the detailed Reddit report for one crypto symbol. **Includes:** - `buzz_score`: normalized Reddit activity score for the selected period - `trend`: activity momentum over the current 3 UTC days vs previous 3 UTC days using mentions, upvotes and subreddit breadth; not price movement. For `from`/`to`, anchors at `to` (or now when `to` is today) - `sentiment_score`, `bullish_pct`, `bearish_pct`: directional sentiment signals - `mentions`, `unique_posts`, `subreddit_count`, `total_upvotes`: attributed volume and engagement signals, including inherited thread-context mentions - `daily_trend`: daily Reddit activity and sentiment values - `top_mentions`: representative high-engagement Reddit posts or comments from the selected period Returns `200` with `found: false` when the symbol is supported but this service has no qualifying data in the requested window. Returns `404` only when the symbol is unsupported.' operationId: getRedditCryptoToken security: - ApiKeyAuth: [] parameters: - name: symbol in: path required: true schema: type: string pattern: ^\$?[A-Za-z0-9]{1,20}$ description: Crypto symbol (e.g., BTC, $ETH, SOL) title: Symbol description: Crypto symbol (e.g., BTC, $ETH, SOL) - name: from in: query required: false schema: anyOf: - type: string format: date - type: 'null' description: Start date in YYYY-MM-DD. Inclusive UTC date. title: From description: Start date in YYYY-MM-DD. Inclusive UTC date. - name: to in: query required: false schema: anyOf: - type: string format: date - type: 'null' description: End date in YYYY-MM-DD. Inclusive UTC date. Omit to use the current UTC date. title: To description: End date in YYYY-MM-DD. Inclusive UTC date. Omit to use the current UTC date. - name: days in: query required: false schema: type: integer maximum: 365 minimum: 1 description: Deprecated v1 compatibility shorthand. Prefer `from` and `to` for reproducible UTC date windows. title: Days description: Deprecated v1 compatibility shorthand. Prefer `from` and `to` for reproducible UTC date windows. deprecated: true x-adanos-hide-in-request-client: true responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/CryptoTokenSentiment' example: symbol: ETH name: Ethereum found: true buzz_score: 72.4 mentions: 318 sentiment_score: 0.27 total_upvotes: 10422 unique_posts: 73 subreddit_count: 9 trend: stable bullish_pct: 43 bearish_pct: 19 period_days: 7 top_subreddits: - subreddit: ethtrader mentions: 91 count: 91 - subreddit: cryptocurrency mentions: 84 count: 84 daily_trend: - date: '2026-02-24' mentions: 48 sentiment_score: 0.22 buzz_score: 56.4 bullish_pct: 58 bearish_pct: 21 - date: '2026-02-23' mentions: 42 sentiment_score: 0.19 buzz_score: 51.7 bullish_pct: 52 bearish_pct: 24 top_mentions: - text_snippet: ETH setup still looks strong into the next catalyst. sentiment_score: 0.74 sentiment_label: positive upvotes: 1200 subreddit: ethtrader created_utc: '2026-02-24T09:15:00Z' headers: X-Request-ID: description: Request correlation identifier returned by the API and included in structured application logs. schema: type: string example: adnos.req-20260423.abc12345 Cache-Control: description: HTTP cache policy returned by the API. schema: type: string example: private, max-age=30 Vary: description: Headers that private client caches must include in their cache key. schema: type: string example: X-API-Key, Authorization, Accept-Encoding X-RateLimit-Limit-Monthly: description: Monthly request quota for the authenticated account. schema: type: string example: '250' X-RateLimit-Remaining-Monthly: description: Remaining monthly requests for the authenticated account. schema: type: string example: '247' X-RateLimit-Used-Monthly: description: Requests already consumed in the account's current monthly quota window. schema: type: string example: '3' X-RateLimit-Reset-Monthly: description: ISO 8601 timestamp when the current monthly quota window resets. schema: type: string format: date-time example: '2026-07-29T14:03:00Z' X-RateLimit-Limit-Burst: description: Per-minute burst request quota for the authenticated account. schema: type: string example: '100' X-RateLimit-Remaining-Burst: description: Remaining requests in the current per-minute burst window. schema: type: string example: '99' X-RateLimit-Reset-Burst: description: ISO 8601 timestamp when the current burst rate-limit window resets. schema: type: string format: date-time example: '2026-04-28T14:30:00Z' X-Account-Type: description: Account tier resolved from the API key. schema: type: string enum: - free - hobby - professional - premium example: free '401': description: Authentication failed content: application/json: examples: missing: summary: Missing API key value: detail: Missing API key. Include 'X-API-Key' header. invalid: summary: Invalid API key value: detail: Invalid API key. revoked: summary: Revoked API key value: detail: API key has been revoked. schema: $ref: '#/components/schemas/ErrorResponse' '403': description: Historical data limit exceeded content: application/json: example: detail: error: Historical data limit exceeded message: 'Your free account is limited to 30 days of historical lookback. Upgrade to Hobby for up to 90 days or Professional for up to 365 days: https://adanos.org/pricing' requested_days: 60 enforced_quantity: lookback_days max_days: 30 account_type: free schema: $ref: '#/components/schemas/HistoricalLimitError' '429': description: Rate limit exceeded content: application/json: examples: burst: summary: Fleet burst limit exceeded value: detail: error: Burst rate limit exceeded message: Too many requests. Limit is 100 requests per minute. limit: 100 used: 100 account_type: free local: summary: Local backup limiter exceeded value: detail: error: Rate limit exceeded message: 'Rate limit exceeded: 100 per 1 minute' limit: 100 account_type: free schema: $ref: '#/components/schemas/RateLimitError' '422': description: Invalid period or query parameters content: application/json: examples: platform_availability: summary: Period starts before platform data availability value: detail: error: Invalid period message: Requested period starts before this platform's public data availability. period_from: '2025-03-17' available_since: '2026-03-07' platform: news validation: summary: Query parameter validation failed value: detail: - type: greater_than_equal loc: - query - days msg: Input should be greater than or equal to 1 input: '0' ctx: ge: 1 schema: anyOf: - $ref: '#/components/schemas/InvalidPeriodError' - $ref: '#/components/schemas/HTTPValidationError' title: Response 422 Getredditcryptotoken '503': description: Database temporarily unavailable content: application/json: example: detail: Database temporarily unavailable schema: $ref: '#/components/schemas/ErrorResponse' '504': description: Analytics request deadline exceeded content: application/json: example: detail: Request deadline exceeded schema: $ref: '#/components/schemas/ErrorResponse' '404': description: Unsupported crypto symbol content: application/json: example: detail: error_code: unsupported_symbol message: Unsupported symbol ZZZ. This symbol is not supported by Adanos v1. schema: $ref: '#/components/schemas/UnsupportedAssetError' x-codeSamples: - lang: curl label: cURL source: "curl \"https://api.adanos.org/reddit/crypto/v1/token/BTC?from=2026-05-01&to=2026-05-07\" \\\n -H \"X-API-Key: sk_live_your_key_here\"" - lang: javascript label: JavaScript source: "const response = await fetch(\"https://api.adanos.org/reddit/crypto/v1/token/BTC?from=2026-05-01&to=2026-05-07\", {\n headers: {\n \"X-API-Key\": \"sk_live_your_key_here\",\n },\n});\n\nif (!response.ok) throw new Error(`HTTP ${response.status}`);\nconst data = await response.json();\nconsole.log(data);" - lang: python label: Python source: "import requests\n\nresponse = requests.get(\n \"https://api.adanos.org/reddit/crypto/v1/token/BTC?from=2026-05-01&to=2026-05-07\",\n headers={\n \"X-API-Key\": \"sk_live_your_key_here\",\n },\n timeout=30,\n)\nresponse.raise_for_status()\nprint(response.json())" servers: - url: https://api.adanos.org description: Production /reddit/crypto/v1/market-sentiment: get: tags: - Reddit Crypto summary: Market Sentiment description: 'Returns the service-level Reddit Crypto market sentiment snapshot across all tracked assets when you want a single Reddit-Crypto-wide market state instead of per-asset rankings. It includes service-wide buzz, sentiment split, activity trend, breadth metrics and the top drivers by current `buzz_score`. `buzz_score` here means relative Reddit Crypto market heat, not pure bullishness. It measures how hot overall Reddit crypto discussion is versus Reddit Crypto''s own trailing 90-day baseline: - around `50` = normal Reddit crypto activity - higher = more active than usual - lower = quieter than usual `trend` is activity momentum over the current 3 UTC days vs previous 3 UTC days using mentions, upvotes and subreddit breadth; not price movement. For `from`/`to`, anchors at `to` (or now when `to` is today). Use `sentiment_score`, `bullish_pct` and `bearish_pct` for direction. `mentions` includes inherited thread-context mentions. Use raw `/mentions` without `include_inherited` for explicit-only rows.' operationId: getRedditCryptoMarketSentiment security: - ApiKeyAuth: [] parameters: - name: from in: query required: false schema: anyOf: - type: string format: date - type: 'null' description: Start date in YYYY-MM-DD. Inclusive UTC date. title: From description: Start date in YYYY-MM-DD. Inclusive UTC date. - name: to in: query required: false schema: anyOf: - type: string format: date - type: 'null' description: End date in YYYY-MM-DD. Inclusive UTC date. Omit to use the current UTC date. title: To description: End date in YYYY-MM-DD. Inclusive UTC date. Omit to use the current UTC date. - name: days in: query required: false schema: type: integer maximum: 365 minimum: 1 description: Deprecated v1 compatibility shorthand. Prefer `from` and `to` for reproducible UTC date windows. title: Days description: Deprecated v1 compatibility shorthand. Prefer `from` and `to` for reproducible UTC date windows. deprecated: true x-adanos-hide-in-request-client: true responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/CryptoMarketSentimentResponse' example: buzz_score: 52.4 trend: stable mentions: 5412 unique_posts: 1184 subreddit_count: 37 total_upvotes: 41290 active_tickers: 89 sentiment_score: 0.117 positive_count: 2101 negative_count: 1318 neutral_count: 1993 bullish_pct: 39 bearish_pct: 24 trend_history: - 47.1 - 49.3 - 50.4 - 52.2 - 51.8 - 53.0 - 52.4 drivers: - symbol: BTC mentions: 423 buzz_score: 78.1 sentiment_score: 0.31 - symbol: ETH mentions: 318 buzz_score: 72.4 sentiment_score: 0.27 headers: X-Request-ID: description: Request correlation identifier returned by the API and included in structured application logs. schema: type: string example: adnos.req-20260423.abc12345 Cache-Control: description: HTTP cache policy returned by the API. schema: type: string example: private, max-age=300 Vary: description: Headers that private client caches must include in their cache key. schema: type: string example: X-API-Key, Authorization, Accept-Encoding X-RateLimit-Limit-Monthly: description: Monthly request quota for the authenticated account. schema: type: string example: '250' X-RateLimit-Remaining-Monthly: description: Remaining monthly requests for the authenticated account. schema: type: string example: '247' X-RateLimit-Used-Monthly: description: Requests already consumed in the account's current monthly quota window. schema: type: string example: '3' X-RateLimit-Reset-Monthly: description: ISO 8601 timestamp when the current monthly quota window resets. schema: type: string format: date-time example: '2026-07-29T14:03:00Z' X-RateLimit-Limit-Burst: description: Per-minute burst request quota for the authenticated account. schema: type: string example: '100' X-RateLimit-Remaining-Burst: description: Remaining requests in the current per-minute burst window. schema: type: string example: '99' X-RateLimit-Reset-Burst: description: ISO 8601 timestamp when the current burst rate-limit window resets. schema: type: string format: date-time example: '2026-04-28T14:30:00Z' X-Account-Type: description: Account tier resolved from the API key. schema: type: string enum: - free - hobby - professional - premium example: free '401': description: Authentication failed content: application/json: examples: missing: summary: Missing API key value: detail: Missing API key. Include 'X-API-Key' header. invalid: summary: Invalid API key value: detail: Invalid API key. revoked: summary: Revoked API key value: detail: API key has been revoked. schema: $ref: '#/components/schemas/ErrorResponse' '403': description: Historical data limit exceeded content: application/json: example: detail: error: Historical data limit exceeded message: 'Your free account is limited to 30 days of historical lookback. Upgrade to Hobby for up to 90 days or Professional for up to 365 days: https://adanos.org/pricing' requested_days: 60 enforced_quantity: lookback_days max_days: 30 account_type: free schema: $ref: '#/components/schemas/HistoricalLimitError' '429': description: Rate limit exceeded content: application/json: examples: burst: summary: Fleet burst limit exceeded value: detail: error: Burst rate limit exceeded message: Too many requests. Limit is 100 requests per minute. limit: 100 used: 100 account_type: free local: summary: Local backup limiter exceeded value: detail: error: Rate limit exceeded message: 'Rate limit exceeded: 100 per 1 minute' limit: 100 account_type: free schema: $ref: '#/components/schemas/RateLimitError' '422': description: Invalid period or query parameters content: application/json: examples: platform_availability: summary: Period starts before platform data availability value: detail: error: Invalid period message: Requested period starts before this platform's public data availability. period_from: '2025-03-17' available_since: '2026-03-07' platform: news validation: summary: Query parameter validation failed value: detail: - type: greater_than_equal loc: - query - days msg: Input should be greater than or equal to 1 input: '0' ctx: ge: 1 schema: anyOf: - $ref: '#/components/schemas/InvalidPeriodError' - $ref: '#/components/schemas/HTTPValidationError' title: Response 422 Getredditcryptomarketsentiment '503': description: Database temporarily unavailable content: application/json: example: detail: Database temporarily unavailable schema: $ref: '#/components/schemas/ErrorResponse' '504': description: Analytics request deadline exceeded content: application/json: example: detail: Request deadline exceeded schema: $ref: '#/components/schemas/ErrorResponse' x-codeSamples: - lang: curl label: cURL source: "curl \"https://api.adanos.org/reddit/crypto/v1/market-sentiment?from=2026-05-01&to=2026-05-07\" \\\n -H \"X-API-Key: sk_live_your_key_here\"" - lang: javascript label: JavaScript source: "const response = await fetch(\"https://api.adanos.org/reddit/crypto/v1/market-sentiment?from=2026-05-01&to=2026-05-07\", {\n headers: {\n \"X-API-Key\": \"sk_live_your_key_here\",\n },\n});\n\nif (!response.ok) throw new Error(`HTTP ${response.status}`);\nconst data = await response.json();\nconsole.log(data);" - lang: python label: Python source: "import requests\n\nresponse = requests.get(\n \"https://api.adanos.org/reddit/crypto/v1/market-sentiment?from=2026-05-01&to=2026-05-07\",\n headers={\n \"X-API-Key\": \"sk_live_your_key_here\",\n },\n timeout=30,\n)\nresponse.raise_for_status()\nprint(response.json())" servers: - url: https://api.adanos.org description: Production /reddit/crypto/v1/compare: get: tags: - Reddit Crypto summary: Compare tokens description: 'Compare up to 10 crypto symbols side by side over the same UTC calendar-day period. Use it when you already know the symbols and want a compact ranked table instead of full detail reports. Results are sorted by `buzz_score` descending and include attributed `mentions`, `trend`, `trend_history`, `unique_posts`, `subreddit_count`, `sentiment_score`, `bullish_pct`, `bearish_pct` and `total_upvotes`. `trend` is activity momentum over the current 3 UTC days vs previous 3 UTC days using mentions, upvotes and subreddit breadth; not price movement. For `from`/`to`, anchors at `to` (or now when `to` is today).' operationId: compareRedditCryptoTokens security: - ApiKeyAuth: [] parameters: - name: from in: query required: false schema: anyOf: - type: string format: date - type: 'null' description: Start date in YYYY-MM-DD. Inclusive UTC date. title: From description: Start date in YYYY-MM-DD. Inclusive UTC date. - name: to in: query required: false schema: anyOf: - type: string format: date - type: 'null' description: End date in YYYY-MM-DD. Inclusive UTC date. Omit to use the current UTC date. title: To description: End date in YYYY-MM-DD. Inclusive UTC date. Omit to use the current UTC date. - name: days in: query required: false schema: type: integer maximum: 365 minimum: 1 description: Deprecated v1 compatibility shorthand. Prefer `from` and `to` for reproducible UTC date windows. title: Days description: Deprecated v1 compatibility shorthand. Prefer `from` and `to` for reproducible UTC date windows. deprecated: true x-adanos-hide-in-request-client: true - name: symbols in: query required: true schema: type: string description: Comma-separated symbols (e.g., BTC,ETH,SOL) title: Symbols description: Comma-separated symbols (e.g., BTC,ETH,SOL) responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/CryptoCompareResponse' example: period_days: 7 tokens: - symbol: BTC name: Bitcoin buzz_score: 78.1 trend: rising mentions: 423 unique_posts: 97 subreddit_count: 12 sentiment_score: 0.31 bullish_pct: 47 bearish_pct: 18 total_upvotes: 15620 trend_history: - 42.3 - 46.8 - 51.2 - 58.9 - 64.0 - 71.4 - 78.1 - symbol: ETH name: Ethereum buzz_score: 72.4 trend: stable mentions: 318 unique_posts: 73 subreddit_count: 9 sentiment_score: 0.27 bullish_pct: 43 bearish_pct: 19 total_upvotes: 10422 trend_history: - 36.2 - 41.4 - 46.7 - 53.1 - 60.2 - 66.5 - 72.4 headers: X-Request-ID: description: Request correlation identifier returned by the API and included in structured application logs. schema: type: string example: adnos.req-20260423.abc12345 Cache-Control: description: HTTP cache policy returned by the API. schema: type: string example: private, max-age=30 Vary: description: Headers that private client caches must include in their cache key. schema: type: string example: X-API-Key, Authorization, Accept-Encoding X-RateLimit-Limit-Monthly: description: Monthly request quota for the authenticated account. schema: type: string example: '250' X-RateLimit-Remaining-Monthly: description: Remaining monthly requests for the authenticated account. schema: type: string example: '247' X-RateLimit-Used-Monthly: description: Requests already consumed in the account's current monthly quota window. schema: type: string example: '3' X-RateLimit-Reset-Monthly: description: ISO 8601 timestamp when the current monthly quota window resets. schema: type: string format: date-time example: '2026-07-29T14:03:00Z' X-RateLimit-Limit-Burst: description: Per-minute burst request quota for the authenticated account. schema: type: string example: '100' X-RateLimit-Remaining-Burst: description: Remaining requests in the current per-minute burst window. schema: type: string example: '99' X-RateLimit-Reset-Burst: description: ISO 8601 timestamp when the current burst rate-limit window resets. schema: type: string format: date-time example: '2026-04-28T14:30:00Z' X-Account-Type: description: Account tier resolved from the API key. schema: type: string enum: - free - hobby - professional - premium example: free '401': description: Authentication failed content: application/json: examples: missing: summary: Missing API key value: detail: Missing API key. Include 'X-API-Key' header. invalid: summary: Invalid API key value: detail: Invalid API key. revoked: summary: Revoked API key value: detail: API key has been revoked. schema: $ref: '#/components/schemas/ErrorResponse' '403': description: Historical data limit exceeded content: application/json: example: detail: error: Historical data limit exceeded message: 'Your free account is limited to 30 days of historical lookback. Upgrade to Hobby for up to 90 days or Professional for up to 365 days: https://adanos.org/pricing' requested_days: 60 enforced_quantity: lookback_days max_days: 30 account_type: free schema: $ref: '#/components/schemas/HistoricalLimitError' '429': description: Rate limit exceeded content: application/json: examples: burst: summary: Fleet burst limit exceeded value: detail: error: Burst rate limit exceeded message: Too many requests. Limit is 100 requests per minute. limit: 100 used: 100 account_type: free local: summary: Local backup limiter exceeded value: detail: error: Rate limit exceeded message: 'Rate limit exceeded: 100 per 1 minute' limit: 100 account_type: free schema: $ref: '#/components/schemas/RateLimitError' '422': description: Invalid period or query parameters content: application/json: examples: platform_availability: summary: Period starts before platform data availability value: detail: error: Invalid period message: Requested period starts before this platform's public data availability. period_from: '2025-03-17' available_since: '2026-03-07' platform: news validation: summary: Query parameter validation failed value: detail: - type: greater_than_equal loc: - query - days msg: Input should be greater than or equal to 1 input: '0' ctx: ge: 1 schema: anyOf: - $ref: '#/components/schemas/InvalidPeriodError' - $ref: '#/components/schemas/HTTPValidationError' title: Response 422 Compareredditcryptotokens '503': description: Database temporarily unavailable content: application/json: example: detail: Database temporarily unavailable schema: $ref: '#/components/schemas/ErrorResponse' '504': description: Analytics request deadline exceeded content: application/json: example: detail: Request deadline exceeded schema: $ref: '#/components/schemas/ErrorResponse' '400': description: Invalid compare item list content: application/json: example: detail: error: too_many_symbols message: Maximum 10 symbols allowed. max_items: 10 item_name: symbol examples: too_many_symbols: summary: Too many symbols value: detail: error: too_many_symbols message: Maximum 10 symbols allowed. max_items: 10 item_name: symbol no_valid_symbols: summary: No valid symbols value: detail: error: no_valid_symbols message: At least one valid symbol is required. max_items: 10 item_name: symbol schema: $ref: '#/components/schemas/CompareLimitError' x-codeSamples: - lang: curl label: cURL source: "curl \"https://api.adanos.org/reddit/crypto/v1/compare?from=2026-05-01&to=2026-05-07&symbols=BTC,ETH,SOL\" \\\n -H \"X-API-Key: sk_live_your_key_here\"" - lang: javascript label: JavaScript source: "const response = await fetch(\"https://api.adanos.org/reddit/crypto/v1/compare?from=2026-05-01&to=2026-05-07&symbols=BTC,ETH,SOL\", {\n headers: {\n \"X-API-Key\": \"sk_live_your_key_here\",\n },\n});\n\nif (!response.ok) throw new Error(`HTTP ${response.status}`);\nconst data = await response.json();\nconsole.log(data);" - lang: python label: Python source: "import requests\n\nresponse = requests.get(\n \"https://api.adanos.org/reddit/crypto/v1/compare?from=2026-05-01&to=2026-05-07&symbols=BTC,ETH,SOL\",\n headers={\n \"X-API-Key\": \"sk_live_your_key_here\",\n },\n timeout=30,\n)\nresponse.raise_for_status()\nprint(response.json())" servers: - url: https://api.adanos.org description: Production /reddit/crypto/v1/search: get: tags: - Reddit Crypto summary: Search tokens description: 'Search known crypto assets by symbol, name or alias. Results prioritize exact symbol matches first, then prefixes, then name/alias matches and include a compact `summary` block for the last 7 UTC calendar days. Summary `mentions` includes inherited thread-context mentions.' operationId: searchRedditCrypto security: - ApiKeyAuth: [] parameters: - name: q in: query required: true schema: type: string minLength: 2 description: Search query (minimum 2 non-$ characters after trimming) title: Q description: Search query (minimum 2 non-$ characters after trimming) - name: limit in: query required: false schema: type: integer maximum: 50 minimum: 1 description: Maximum number of results to return examples: - 20 default: 20 title: Limit description: Maximum number of results to return responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/CryptoSearchResponse' example: query: solana count: 1 period_days: 7 results: - symbol: SOL name: Solana market_cap_rank: 6 market_cap_usd: 71234567890.12 aliases: - Sol summary: mentions: 287 buzz_score: 72.4 trend: stable sentiment_score: 0.27 bearish_pct: 19 bullish_pct: 43 subreddit_count: 9 total_upvotes: 10422 unique_posts: 73 headers: X-Request-ID: description: Request correlation identifier returned by the API and included in structured application logs. schema: type: string example: adnos.req-20260423.abc12345 Cache-Control: description: HTTP cache policy returned by the API. schema: type: string example: private, max-age=15 Vary: description: Headers that private client caches must include in their cache key. schema: type: string example: X-API-Key, Authorization, Accept-Encoding X-RateLimit-Limit-Monthly: description: Monthly request quota for the authenticated account. schema: type: string example: '250' X-RateLimit-Remaining-Monthly: description: Remaining monthly requests for the authenticated account. schema: type: string example: '247' X-RateLimit-Used-Monthly: description: Requests already consumed in the account's current monthly quota window. schema: type: string example: '3' X-RateLimit-Reset-Monthly: description: ISO 8601 timestamp when the current monthly quota window resets. schema: type: string format: date-time example: '2026-07-29T14:03:00Z' X-RateLimit-Limit-Burst: description: Per-minute burst request quota for the authenticated account. schema: type: string example: '100' X-RateLimit-Remaining-Burst: description: Remaining requests in the current per-minute burst window. schema: type: string example: '99' X-RateLimit-Reset-Burst: description: ISO 8601 timestamp when the current burst rate-limit window resets. schema: type: string format: date-time example: '2026-04-28T14:30:00Z' X-Account-Type: description: Account tier resolved from the API key. schema: type: string enum: - free - hobby - professional - premium example: free '401': description: Authentication failed content: application/json: examples: missing: summary: Missing API key value: detail: Missing API key. Include 'X-API-Key' header. invalid: summary: Invalid API key value: detail: Invalid API key. revoked: summary: Revoked API key value: detail: API key has been revoked. schema: $ref: '#/components/schemas/ErrorResponse' '429': description: Rate limit exceeded content: application/json: examples: burst: summary: Fleet burst limit exceeded value: detail: error: Burst rate limit exceeded message: Too many requests. Limit is 100 requests per minute. limit: 100 used: 100 account_type: free local: summary: Local backup limiter exceeded value: detail: error: Rate limit exceeded message: 'Rate limit exceeded: 100 per 1 minute' limit: 100 account_type: free schema: $ref: '#/components/schemas/RateLimitError' '503': description: Database temporarily unavailable content: application/json: example: detail: Database temporarily unavailable schema: $ref: '#/components/schemas/ErrorResponse' '504': description: Analytics request deadline exceeded content: application/json: example: detail: Request deadline exceeded schema: $ref: '#/components/schemas/ErrorResponse' '422': description: Invalid search query parameters content: application/json: examples: fixed_window: summary: Search endpoints use a fixed summary window value: detail: error: Invalid search parameters message: Search endpoints use a fixed last-7-UTC-calendar-day summary window. unsupported_parameters: - days normalized_query: summary: Search query is too short after normalization value: detail: Search query must contain at least 2 non-$ characters after trimming validation: summary: Query parameter validation failed value: detail: - type: string_too_short loc: - query - q msg: String should have at least 2 characters input: t ctx: min_length: 2 schema: anyOf: - $ref: '#/components/schemas/InvalidSearchParametersError' - $ref: '#/components/schemas/HTTPValidationError' title: Response 422 Searchredditcrypto x-codeSamples: - lang: curl label: cURL source: "curl \"https://api.adanos.org/reddit/crypto/v1/search?q=bitcoin&limit=5\" \\\n -H \"X-API-Key: sk_live_your_key_here\"" - lang: javascript label: JavaScript source: "const response = await fetch(\"https://api.adanos.org/reddit/crypto/v1/search?q=bitcoin&limit=5\", {\n headers: {\n \"X-API-Key\": \"sk_live_your_key_here\",\n },\n});\n\nif (!response.ok) throw new Error(`HTTP ${response.status}`);\nconst data = await response.json();\nconsole.log(data);" - lang: python label: Python source: "import requests\n\nresponse = requests.get(\n \"https://api.adanos.org/reddit/crypto/v1/search?q=bitcoin&limit=5\",\n headers={\n \"X-API-Key\": \"sk_live_your_key_here\",\n },\n timeout=30,\n)\nresponse.raise_for_status()\nprint(response.json())" servers: - url: https://api.adanos.org description: Production /reddit/crypto/v1/stats: get: tags: - Reddit Crypto summary: Service statistics description: 'Returns high-level Reddit Crypto dataset coverage metrics. Includes: - total mention rows stored - number of distinct tracked symbols with data, exposed as `unique_tokens` - today''s UTC mention and distinct symbol counts, exposed as `unique_tokens_today` - total supported symbols available to the search/detector layer, exposed as `supported_tokens`' operationId: getRedditCryptoStats responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/CryptoStatsResponse' example: total_mentions: 18352 unique_tokens: 142 mentions_today: 287 unique_tokens_today: 35 supported_tokens: 500 headers: X-Request-ID: description: Request correlation identifier returned by the API and included in structured application logs. schema: type: string example: adnos.req-20260423.abc12345 Cache-Control: description: HTTP cache policy returned by the API. schema: type: string example: private, max-age=300 Vary: description: Headers that private client caches must include in their cache key. schema: type: string example: X-API-Key, Authorization, Accept-Encoding X-RateLimit-Limit-Monthly: description: Monthly request quota for the authenticated account. schema: type: string example: '250' X-RateLimit-Remaining-Monthly: description: Remaining monthly requests for the authenticated account. schema: type: string example: '247' X-RateLimit-Used-Monthly: description: Requests already consumed in the account's current monthly quota window. schema: type: string example: '3' X-RateLimit-Reset-Monthly: description: ISO 8601 timestamp when the current monthly quota window resets. schema: type: string format: date-time example: '2026-07-29T14:03:00Z' X-RateLimit-Limit-Burst: description: Per-minute burst request quota for the authenticated account. schema: type: string example: '100' X-RateLimit-Remaining-Burst: description: Remaining requests in the current per-minute burst window. schema: type: string example: '99' X-RateLimit-Reset-Burst: description: ISO 8601 timestamp when the current burst rate-limit window resets. schema: type: string format: date-time example: '2026-04-28T14:30:00Z' X-Account-Type: description: Account tier resolved from the API key. schema: type: string enum: - free - hobby - professional - premium example: free '401': description: Authentication failed content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: missing: summary: Missing API key value: detail: Missing API key. Include 'X-API-Key' header. invalid: summary: Invalid API key value: detail: Invalid API key. revoked: summary: Revoked API key value: detail: API key has been revoked. '429': description: Rate limit exceeded content: application/json: schema: $ref: '#/components/schemas/RateLimitError' examples: burst: summary: Fleet burst limit exceeded value: detail: error: Burst rate limit exceeded message: Too many requests. Limit is 100 requests per minute. limit: 100 used: 100 account_type: free local: summary: Local backup limiter exceeded value: detail: error: Rate limit exceeded message: 'Rate limit exceeded: 100 per 1 minute' limit: 100 account_type: free '503': description: Database temporarily unavailable content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' example: detail: Database temporarily unavailable '504': description: Analytics request deadline exceeded content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' example: detail: Request deadline exceeded security: - ApiKeyAuth: [] x-codeSamples: - lang: curl label: cURL source: "curl \"https://api.adanos.org/reddit/crypto/v1/stats\" \\\n -H \"X-API-Key: sk_live_your_key_here\"" - lang: javascript label: JavaScript source: "const response = await fetch(\"https://api.adanos.org/reddit/crypto/v1/stats\", {\n headers: {\n \"X-API-Key\": \"sk_live_your_key_here\",\n },\n});\n\nif (!response.ok) throw new Error(`HTTP ${response.status}`);\nconst data = await response.json();\nconsole.log(data);" - lang: python label: Python source: "import requests\n\nresponse = requests.get(\n \"https://api.adanos.org/reddit/crypto/v1/stats\",\n headers={\n \"X-API-Key\": \"sk_live_your_key_here\",\n },\n timeout=30,\n)\nresponse.raise_for_status()\nprint(response.json())" servers: - url: https://api.adanos.org description: Production /reddit/crypto/v1/token/{symbol}/mentions: get: tags: - Reddit Crypto summary: Raw Mentions description: 'Returns raw Reddit mention rows for a specific crypto symbol within the live raw-data retention window. **Professional account required.** Free and Hobby accounts cannot use this endpoint. **Use this endpoint when you need:** - post/comment-level snippets - original timestamps - inherited-context filtering **Notes:** - Use `from` and `to` for explicit UTC date windows - Results are ordered newest first and support deterministic `offset` + `limit` pagination - `include_inherited=false` by default - empty result sets return `200` with `results=[]`' operationId: getRedditCryptoTokenMentions security: - ApiKeyAuth: [] parameters: - name: symbol in: path required: true schema: type: string pattern: ^\$?[A-Za-z0-9]{1,20}$ description: Crypto symbol (e.g., BTC, $ETH, SOL) title: Symbol description: Crypto symbol (e.g., BTC, $ETH, SOL) - name: from in: query required: false schema: anyOf: - type: string format: date - type: 'null' description: Start date in YYYY-MM-DD. Inclusive UTC date. title: From description: Start date in YYYY-MM-DD. Inclusive UTC date. - name: to in: query required: false schema: anyOf: - type: string format: date - type: 'null' description: End date in YYYY-MM-DD. Inclusive UTC date. Omit to use the current UTC date. title: To description: End date in YYYY-MM-DD. Inclusive UTC date. Omit to use the current UTC date. - name: days in: query required: false schema: type: integer maximum: 365 minimum: 1 description: Deprecated v1 compatibility shorthand. Prefer `from` and `to` for reproducible UTC date windows. title: Days description: Deprecated v1 compatibility shorthand. Prefer `from` and `to` for reproducible UTC date windows. deprecated: true x-adanos-hide-in-request-client: true - name: limit in: query required: false schema: type: integer maximum: 100 minimum: 1 description: Maximum number of raw mentions to return default: 50 title: Limit description: Maximum number of raw mentions to return - name: offset in: query required: false schema: type: integer minimum: 0 description: Number of raw mention rows to skip for offset-based pagination. default: 0 title: Offset description: Number of raw mention rows to skip for offset-based pagination. - name: include_inherited in: query required: false schema: type: boolean description: Include inherited thread-context mentions in addition to direct symbol matches default: false title: Include Inherited description: Include inherited thread-context mentions in addition to direct symbol matches responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/CryptoRawMentionsResponse' example: symbol: BTC period_days: 7 count: 1 results: - post_id: abc123 comment_id: def456 subreddit: cryptocurrency author: user123 text_snippet: BTC still looks strong above this range... created_utc: '2026-03-20T18:42:10Z' upvotes: 381 sentiment_score: 0.62 sentiment_label: positive is_inherited: false headers: X-Request-ID: description: Request correlation identifier returned by the API and included in structured application logs. schema: type: string example: adnos.req-20260423.abc12345 Cache-Control: description: HTTP cache policy returned by the API. schema: type: string example: private, max-age=60 Vary: description: Headers that private client caches must include in their cache key. schema: type: string example: X-API-Key, Authorization, Accept-Encoding X-RateLimit-Limit-Monthly: description: Monthly request quota for the authenticated account. schema: type: string example: '250' X-RateLimit-Remaining-Monthly: description: Remaining monthly requests for the authenticated account. schema: type: string example: '247' X-RateLimit-Used-Monthly: description: Requests already consumed in the account's current monthly quota window. schema: type: string example: '3' X-RateLimit-Reset-Monthly: description: ISO 8601 timestamp when the current monthly quota window resets. schema: type: string format: date-time example: '2026-07-29T14:03:00Z' X-RateLimit-Limit-Burst: description: Per-minute burst request quota for the authenticated account. schema: type: string example: '100' X-RateLimit-Remaining-Burst: description: Remaining requests in the current per-minute burst window. schema: type: string example: '99' X-RateLimit-Reset-Burst: description: ISO 8601 timestamp when the current burst rate-limit window resets. schema: type: string format: date-time example: '2026-04-28T14:30:00Z' X-Account-Type: description: Account tier resolved from the API key. schema: type: string enum: - free - hobby - professional - premium example: free '401': description: Authentication failed content: application/json: examples: missing: summary: Missing API key value: detail: Missing API key. Include 'X-API-Key' header. invalid: summary: Invalid API key value: detail: Invalid API key. revoked: summary: Revoked API key value: detail: API key has been revoked. schema: $ref: '#/components/schemas/ErrorResponse' '403': description: Historical data limit exceeded content: application/json: example: detail: error: Historical data limit exceeded message: 'Your free account is limited to 30 days of historical lookback. Upgrade to Hobby for up to 90 days or Professional for up to 365 days: https://adanos.org/pricing' requested_days: 60 enforced_quantity: lookback_days max_days: 30 account_type: free schema: $ref: '#/components/schemas/HistoricalLimitError' '429': description: Rate limit exceeded content: application/json: examples: burst: summary: Fleet burst limit exceeded value: detail: error: Burst rate limit exceeded message: Too many requests. Limit is 100 requests per minute. limit: 100 used: 100 account_type: free local: summary: Local backup limiter exceeded value: detail: error: Rate limit exceeded message: 'Rate limit exceeded: 100 per 1 minute' limit: 100 account_type: free schema: $ref: '#/components/schemas/RateLimitError' '422': description: Invalid period or query parameters content: application/json: examples: platform_availability: summary: Period starts before platform data availability value: detail: error: Invalid period message: Requested period starts before this platform's public data availability. period_from: '2025-03-17' available_since: '2026-03-07' platform: news validation: summary: Query parameter validation failed value: detail: - type: greater_than_equal loc: - query - days msg: Input should be greater than or equal to 1 input: '0' ctx: ge: 1 schema: anyOf: - $ref: '#/components/schemas/InvalidPeriodError' - $ref: '#/components/schemas/HTTPValidationError' title: Response 422 Getredditcryptotokenmentions '503': description: Database temporarily unavailable content: application/json: example: detail: Database temporarily unavailable schema: $ref: '#/components/schemas/ErrorResponse' '504': description: Analytics request deadline exceeded content: application/json: example: detail: Request deadline exceeded schema: $ref: '#/components/schemas/ErrorResponse' x-codeSamples: - lang: curl label: cURL source: "curl \"https://api.adanos.org/reddit/crypto/v1/token/BTC/mentions?from=2026-05-01&to=2026-05-07&limit=5\" \\\n -H \"X-API-Key: sk_live_your_key_here\"" - lang: javascript label: JavaScript source: "const response = await fetch(\"https://api.adanos.org/reddit/crypto/v1/token/BTC/mentions?from=2026-05-01&to=2026-05-07&limit=5\", {\n headers: {\n \"X-API-Key\": \"sk_live_your_key_here\",\n },\n});\n\nif (!response.ok) throw new Error(`HTTP ${response.status}`);\nconst data = await response.json();\nconsole.log(data);" - lang: python label: Python source: "import requests\n\nresponse = requests.get(\n \"https://api.adanos.org/reddit/crypto/v1/token/BTC/mentions?from=2026-05-01&to=2026-05-07&limit=5\",\n headers={\n \"X-API-Key\": \"sk_live_your_key_here\",\n },\n timeout=30,\n)\nresponse.raise_for_status()\nprint(response.json())" servers: - url: https://api.adanos.org description: Production /trending: get: tags: - Reddit Crypto summary: Trending tokens description: 'Returns the crypto assets with the strongest Reddit discussion activity in the selected period, ranked by `buzz_score`. **Includes:** - `buzz_score`: normalized 0-100 activity score used for ranking - `trend`: activity momentum over the current 3 UTC days vs previous 3 UTC days using mentions, upvotes and subreddit breadth; not price movement. For `from`/`to`, anchors at `to` (or now when `to` is today) - `sentiment_score`, `bullish_pct`, `bearish_pct`: directional sentiment signals - `mentions`, `unique_posts`, `subreddit_count`, `total_upvotes`: attributed volume and engagement signals, including inherited thread-context mentions - `trend_history`: independent UTC-day buzz scores, oldest to newest; minimum 7 values; the live final value describes today so far and can differ from the selected-period `buzz_score`; missing days are `0.0`' operationId: getTrending security: - ApiKeyAuth: [] parameters: - name: from in: query required: false schema: description: Start date in YYYY-MM-DD. Inclusive UTC date. title: From type: string format: date description: Start date in YYYY-MM-DD. Inclusive UTC date. - name: to in: query required: false schema: description: End date in YYYY-MM-DD. Inclusive UTC date. Omit to use the current UTC date. title: To type: string format: date description: End date in YYYY-MM-DD. Inclusive UTC date. Omit to use the current UTC date. - name: days in: query required: false schema: type: integer maximum: 365 minimum: 1 description: Deprecated v1 compatibility shorthand. Prefer `from` and `to` for reproducible UTC date windows. title: Days description: Deprecated v1 compatibility shorthand. Prefer `from` and `to` for reproducible UTC date windows. deprecated: true x-adanos-hide-in-request-client: true - name: limit in: query required: false schema: type: integer maximum: 100 minimum: 1 description: Maximum tokens to return default: 20 title: Limit description: Maximum tokens to return - name: offset in: query required: false schema: type: integer minimum: 0 description: Pagination offset default: 0 title: Offset description: Pagination offset responses: '200': description: Successful Response content: application/json: schema: type: array items: $ref: '#/components/schemas/CryptoTrendingToken' title: Response Getredditcryptotrending example: - symbol: BTC name: Bitcoin buzz_score: 78.1 trend: rising mentions: 423 unique_posts: 97 subreddit_count: 12 sentiment_score: 0.31 bullish_pct: 47 bearish_pct: 18 total_upvotes: 15620 trend_history: - 42.3 - 46.8 - 51.2 - 58.9 - 64.0 - 71.4 - 78.1 headers: X-Request-ID: description: Request correlation identifier returned by the API and included in structured application logs. schema: type: string example: adnos.req-20260423.abc12345 Cache-Control: description: HTTP cache policy returned by the API. schema: type: string example: private, max-age=30 Vary: description: Headers that private client caches must include in their cache key. schema: type: string example: X-API-Key, Authorization, Accept-Encoding X-RateLimit-Limit-Monthly: description: Monthly request quota for the authenticated account. schema: type: string example: '250' X-RateLimit-Remaining-Monthly: description: Remaining monthly requests for the authenticated account. schema: type: string example: '247' X-RateLimit-Used-Monthly: description: Requests already consumed in the account's current monthly quota window. schema: type: string example: '3' X-RateLimit-Reset-Monthly: description: ISO 8601 timestamp when the current monthly quota window resets. schema: type: string format: date-time example: '2026-07-29T14:03:00Z' X-RateLimit-Limit-Burst: description: Per-minute burst request quota for the authenticated account. schema: type: string example: '100' X-RateLimit-Remaining-Burst: description: Remaining requests in the current per-minute burst window. schema: type: string example: '99' X-RateLimit-Reset-Burst: description: ISO 8601 timestamp when the current burst rate-limit window resets. schema: type: string format: date-time example: '2026-04-28T14:30:00Z' X-Account-Type: description: Account tier resolved from the API key. schema: type: string enum: - free - hobby - professional - premium example: free '401': description: Authentication failed content: application/json: examples: missing: summary: Missing API key value: detail: Missing API key. Include 'X-API-Key' header. invalid: summary: Invalid API key value: detail: Invalid API key. revoked: summary: Revoked API key value: detail: API key has been revoked. schema: $ref: '#/components/schemas/ErrorResponse' '403': description: Historical data limit exceeded content: application/json: example: detail: error: Historical data limit exceeded message: 'Your free account is limited to 30 days of historical lookback. Upgrade to Hobby for up to 90 days or Professional for up to 365 days: https://adanos.org/pricing' requested_days: 60 enforced_quantity: lookback_days max_days: 30 account_type: free schema: $ref: '#/components/schemas/HistoricalLimitError' '429': description: Rate limit exceeded content: application/json: examples: burst: summary: Fleet burst limit exceeded value: detail: error: Burst rate limit exceeded message: Too many requests. Limit is 100 requests per minute. limit: 100 used: 100 account_type: free local: summary: Local backup limiter exceeded value: detail: error: Rate limit exceeded message: 'Rate limit exceeded: 100 per 1 minute' limit: 100 account_type: free schema: $ref: '#/components/schemas/RateLimitError' '422': description: Invalid period or query parameters content: application/json: examples: platform_availability: summary: Period starts before platform data availability value: detail: error: Invalid period message: Requested period starts before this platform's public data availability. period_from: '2025-03-17' available_since: '2026-03-07' platform: news validation: summary: Query parameter validation failed value: detail: - type: greater_than_equal loc: - query - days msg: Input should be greater than or equal to 1 input: '0' ctx: ge: 1 schema: anyOf: - $ref: '#/components/schemas/InvalidPeriodError' - $ref: '#/components/schemas/HTTPValidationError' title: Response 422 Getredditcryptotrending '503': description: Database temporarily unavailable content: application/json: example: detail: Database temporarily unavailable schema: $ref: '#/components/schemas/ErrorResponse' '504': description: Analytics request deadline exceeded content: application/json: example: detail: Request deadline exceeded schema: $ref: '#/components/schemas/ErrorResponse' '404': description: No trending crypto tokens found content: application/json: example: detail: No trending crypto tokens found. x-codeSamples: - lang: curl label: cURL source: "curl \"https://api.adanos.org/reddit/crypto/v1/trending?from=2026-05-01&to=2026-05-07&limit=5\" \\\n -H \"X-API-Key: sk_live_your_key_here\"" - lang: javascript label: JavaScript source: "const response = await fetch(\"https://api.adanos.org/reddit/crypto/v1/trending?from=2026-05-01&to=2026-05-07&limit=5\", {\n headers: {\n \"X-API-Key\": \"sk_live_your_key_here\",\n },\n});\n\nif (!response.ok) throw new Error(`HTTP ${response.status}`);\nconst data = await response.json();\nconsole.log(data);" - lang: python label: Python source: "import requests\n\nresponse = requests.get(\n \"https://api.adanos.org/reddit/crypto/v1/trending?from=2026-05-01&to=2026-05-07&limit=5\",\n headers={\n \"X-API-Key\": \"sk_live_your_key_here\",\n },\n timeout=30,\n)\nresponse.raise_for_status()\nprint(response.json())" x-operation-id-source: normalized x-operation-id-original: getRedditCryptoTrending /token/{symbol}: get: tags: - Reddit Crypto summary: Token Sentiment description: 'Returns the detailed Reddit report for one crypto symbol. **Includes:** - `buzz_score`: normalized Reddit activity score for the selected period - `trend`: activity momentum over the current 3 UTC days vs previous 3 UTC days using mentions, upvotes and subreddit breadth; not price movement. For `from`/`to`, anchors at `to` (or now when `to` is today) - `sentiment_score`, `bullish_pct`, `bearish_pct`: directional sentiment signals - `mentions`, `unique_posts`, `subreddit_count`, `total_upvotes`: attributed volume and engagement signals, including inherited thread-context mentions - `daily_trend`: daily Reddit activity and sentiment values - `top_mentions`: representative high-engagement Reddit posts or comments from the selected period Returns `200` with `found: false` when the symbol is supported but this service has no qualifying data in the requested window. Returns `404` only when the symbol is unsupported.' operationId: getTokenBySymbol security: - ApiKeyAuth: [] parameters: - name: symbol in: path required: true schema: type: string pattern: ^\$?[A-Za-z0-9]{1,20}$ description: Crypto symbol (e.g., BTC, $ETH, SOL) title: Symbol description: Crypto symbol (e.g., BTC, $ETH, SOL) - name: from in: query required: false schema: description: Start date in YYYY-MM-DD. Inclusive UTC date. title: From type: string format: date description: Start date in YYYY-MM-DD. Inclusive UTC date. - name: to in: query required: false schema: description: End date in YYYY-MM-DD. Inclusive UTC date. Omit to use the current UTC date. title: To type: string format: date description: End date in YYYY-MM-DD. Inclusive UTC date. Omit to use the current UTC date. - name: days in: query required: false schema: type: integer maximum: 365 minimum: 1 description: Deprecated v1 compatibility shorthand. Prefer `from` and `to` for reproducible UTC date windows. title: Days description: Deprecated v1 compatibility shorthand. Prefer `from` and `to` for reproducible UTC date windows. deprecated: true x-adanos-hide-in-request-client: true responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/CryptoTokenSentiment' example: symbol: ETH name: Ethereum found: true buzz_score: 72.4 mentions: 318 sentiment_score: 0.27 total_upvotes: 10422 unique_posts: 73 subreddit_count: 9 trend: stable bullish_pct: 43 bearish_pct: 19 period_days: 7 top_subreddits: - subreddit: ethtrader mentions: 91 count: 91 - subreddit: cryptocurrency mentions: 84 count: 84 daily_trend: - date: '2026-02-24' mentions: 48 sentiment_score: 0.22 buzz_score: 56.4 bullish_pct: 58 bearish_pct: 21 - date: '2026-02-23' mentions: 42 sentiment_score: 0.19 buzz_score: 51.7 bullish_pct: 52 bearish_pct: 24 top_mentions: - text_snippet: ETH setup still looks strong into the next catalyst. sentiment_score: 0.74 sentiment_label: positive upvotes: 1200 subreddit: ethtrader created_utc: '2026-02-24T09:15:00Z' headers: X-Request-ID: description: Request correlation identifier returned by the API and included in structured application logs. schema: type: string example: adnos.req-20260423.abc12345 Cache-Control: description: HTTP cache policy returned by the API. schema: type: string example: private, max-age=30 Vary: description: Headers that private client caches must include in their cache key. schema: type: string example: X-API-Key, Authorization, Accept-Encoding X-RateLimit-Limit-Monthly: description: Monthly request quota for the authenticated account. schema: type: string example: '250' X-RateLimit-Remaining-Monthly: description: Remaining monthly requests for the authenticated account. schema: type: string example: '247' X-RateLimit-Used-Monthly: description: Requests already consumed in the account's current monthly quota window. schema: type: string example: '3' X-RateLimit-Reset-Monthly: description: ISO 8601 timestamp when the current monthly quota window resets. schema: type: string format: date-time example: '2026-07-29T14:03:00Z' X-RateLimit-Limit-Burst: description: Per-minute burst request quota for the authenticated account. schema: type: string example: '100' X-RateLimit-Remaining-Burst: description: Remaining requests in the current per-minute burst window. schema: type: string example: '99' X-RateLimit-Reset-Burst: description: ISO 8601 timestamp when the current burst rate-limit window resets. schema: type: string format: date-time example: '2026-04-28T14:30:00Z' X-Account-Type: description: Account tier resolved from the API key. schema: type: string enum: - free - hobby - professional - premium example: free '401': description: Authentication failed content: application/json: examples: missing: summary: Missing API key value: detail: Missing API key. Include 'X-API-Key' header. invalid: summary: Invalid API key value: detail: Invalid API key. revoked: summary: Revoked API key value: detail: API key has been revoked. schema: $ref: '#/components/schemas/ErrorResponse' '403': description: Historical data limit exceeded content: application/json: example: detail: error: Historical data limit exceeded message: 'Your free account is limited to 30 days of historical lookback. Upgrade to Hobby for up to 90 days or Professional for up to 365 days: https://adanos.org/pricing' requested_days: 60 enforced_quantity: lookback_days max_days: 30 account_type: free schema: $ref: '#/components/schemas/HistoricalLimitError' '429': description: Rate limit exceeded content: application/json: examples: burst: summary: Fleet burst limit exceeded value: detail: error: Burst rate limit exceeded message: Too many requests. Limit is 100 requests per minute. limit: 100 used: 100 account_type: free local: summary: Local backup limiter exceeded value: detail: error: Rate limit exceeded message: 'Rate limit exceeded: 100 per 1 minute' limit: 100 account_type: free schema: $ref: '#/components/schemas/RateLimitError' '422': description: Invalid period or query parameters content: application/json: examples: platform_availability: summary: Period starts before platform data availability value: detail: error: Invalid period message: Requested period starts before this platform's public data availability. period_from: '2025-03-17' available_since: '2026-03-07' platform: news validation: summary: Query parameter validation failed value: detail: - type: greater_than_equal loc: - query - days msg: Input should be greater than or equal to 1 input: '0' ctx: ge: 1 schema: anyOf: - $ref: '#/components/schemas/InvalidPeriodError' - $ref: '#/components/schemas/HTTPValidationError' title: Response 422 Getredditcryptotoken '503': description: Database temporarily unavailable content: application/json: example: detail: Database temporarily unavailable schema: $ref: '#/components/schemas/ErrorResponse' '504': description: Analytics request deadline exceeded content: application/json: example: detail: Request deadline exceeded schema: $ref: '#/components/schemas/ErrorResponse' '404': description: Unsupported crypto symbol content: application/json: example: detail: error_code: unsupported_symbol message: Unsupported symbol ZZZ. This symbol is not supported by Adanos v1. schema: $ref: '#/components/schemas/UnsupportedAssetError' x-codeSamples: - lang: curl label: cURL source: "curl \"https://api.adanos.org/reddit/crypto/v1/token/BTC?from=2026-05-01&to=2026-05-07\" \\\n -H \"X-API-Key: sk_live_your_key_here\"" - lang: javascript label: JavaScript source: "const response = await fetch(\"https://api.adanos.org/reddit/crypto/v1/token/BTC?from=2026-05-01&to=2026-05-07\", {\n headers: {\n \"X-API-Key\": \"sk_live_your_key_here\",\n },\n});\n\nif (!response.ok) throw new Error(`HTTP ${response.status}`);\nconst data = await response.json();\nconsole.log(data);" - lang: python label: Python source: "import requests\n\nresponse = requests.get(\n \"https://api.adanos.org/reddit/crypto/v1/token/BTC?from=2026-05-01&to=2026-05-07\",\n headers={\n \"X-API-Key\": \"sk_live_your_key_here\",\n },\n timeout=30,\n)\nresponse.raise_for_status()\nprint(response.json())" x-operation-id-source: normalized x-operation-id-original: getRedditCryptoToken /market-sentiment: get: tags: - Reddit Crypto summary: Market Sentiment description: 'Returns the service-level Reddit Crypto market sentiment snapshot across all tracked assets when you want a single Reddit-Crypto-wide market state instead of per-asset rankings. It includes service-wide buzz, sentiment split, activity trend, breadth metrics and the top drivers by current `buzz_score`. `buzz_score` here means relative Reddit Crypto market heat, not pure bullishness. It measures how hot overall Reddit crypto discussion is versus Reddit Crypto''s own trailing 90-day baseline: - around `50` = normal Reddit crypto activity - higher = more active than usual - lower = quieter than usual `trend` is activity momentum over the current 3 UTC days vs previous 3 UTC days using mentions, upvotes and subreddit breadth; not price movement. For `from`/`to`, anchors at `to` (or now when `to` is today). Use `sentiment_score`, `bullish_pct` and `bearish_pct` for direction. `mentions` includes inherited thread-context mentions. Use raw `/mentions` without `include_inherited` for explicit-only rows.' operationId: getMarketSentiment security: - ApiKeyAuth: [] parameters: - name: from in: query required: false schema: description: Start date in YYYY-MM-DD. Inclusive UTC date. title: From type: string format: date description: Start date in YYYY-MM-DD. Inclusive UTC date. - name: to in: query required: false schema: description: End date in YYYY-MM-DD. Inclusive UTC date. Omit to use the current UTC date. title: To type: string format: date description: End date in YYYY-MM-DD. Inclusive UTC date. Omit to use the current UTC date. - name: days in: query required: false schema: type: integer maximum: 365 minimum: 1 description: Deprecated v1 compatibility shorthand. Prefer `from` and `to` for reproducible UTC date windows. title: Days description: Deprecated v1 compatibility shorthand. Prefer `from` and `to` for reproducible UTC date windows. deprecated: true x-adanos-hide-in-request-client: true responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/CryptoMarketSentimentResponse' example: buzz_score: 52.4 trend: stable mentions: 5412 unique_posts: 1184 subreddit_count: 37 total_upvotes: 41290 active_tickers: 89 sentiment_score: 0.117 positive_count: 2101 negative_count: 1318 neutral_count: 1993 bullish_pct: 39 bearish_pct: 24 trend_history: - 47.1 - 49.3 - 50.4 - 52.2 - 51.8 - 53.0 - 52.4 drivers: - symbol: BTC mentions: 423 buzz_score: 78.1 sentiment_score: 0.31 - symbol: ETH mentions: 318 buzz_score: 72.4 sentiment_score: 0.27 headers: X-Request-ID: description: Request correlation identifier returned by the API and included in structured application logs. schema: type: string example: adnos.req-20260423.abc12345 Cache-Control: description: HTTP cache policy returned by the API. schema: type: string example: private, max-age=300 Vary: description: Headers that private client caches must include in their cache key. schema: type: string example: X-API-Key, Authorization, Accept-Encoding X-RateLimit-Limit-Monthly: description: Monthly request quota for the authenticated account. schema: type: string example: '250' X-RateLimit-Remaining-Monthly: description: Remaining monthly requests for the authenticated account. schema: type: string example: '247' X-RateLimit-Used-Monthly: description: Requests already consumed in the account's current monthly quota window. schema: type: string example: '3' X-RateLimit-Reset-Monthly: description: ISO 8601 timestamp when the current monthly quota window resets. schema: type: string format: date-time example: '2026-07-29T14:03:00Z' X-RateLimit-Limit-Burst: description: Per-minute burst request quota for the authenticated account. schema: type: string example: '100' X-RateLimit-Remaining-Burst: description: Remaining requests in the current per-minute burst window. schema: type: string example: '99' X-RateLimit-Reset-Burst: description: ISO 8601 timestamp when the current burst rate-limit window resets. schema: type: string format: date-time example: '2026-04-28T14:30:00Z' X-Account-Type: description: Account tier resolved from the API key. schema: type: string enum: - free - hobby - professional - premium example: free '401': description: Authentication failed content: application/json: examples: missing: summary: Missing API key value: detail: Missing API key. Include 'X-API-Key' header. invalid: summary: Invalid API key value: detail: Invalid API key. revoked: summary: Revoked API key value: detail: API key has been revoked. schema: $ref: '#/components/schemas/ErrorResponse' '403': description: Historical data limit exceeded content: application/json: example: detail: error: Historical data limit exceeded message: 'Your free account is limited to 30 days of historical lookback. Upgrade to Hobby for up to 90 days or Professional for up to 365 days: https://adanos.org/pricing' requested_days: 60 enforced_quantity: lookback_days max_days: 30 account_type: free schema: $ref: '#/components/schemas/HistoricalLimitError' '429': description: Rate limit exceeded content: application/json: examples: burst: summary: Fleet burst limit exceeded value: detail: error: Burst rate limit exceeded message: Too many requests. Limit is 100 requests per minute. limit: 100 used: 100 account_type: free local: summary: Local backup limiter exceeded value: detail: error: Rate limit exceeded message: 'Rate limit exceeded: 100 per 1 minute' limit: 100 account_type: free schema: $ref: '#/components/schemas/RateLimitError' '422': description: Invalid period or query parameters content: application/json: examples: platform_availability: summary: Period starts before platform data availability value: detail: error: Invalid period message: Requested period starts before this platform's public data availability. period_from: '2025-03-17' available_since: '2026-03-07' platform: news validation: summary: Query parameter validation failed value: detail: - type: greater_than_equal loc: - query - days msg: Input should be greater than or equal to 1 input: '0' ctx: ge: 1 schema: anyOf: - $ref: '#/components/schemas/InvalidPeriodError' - $ref: '#/components/schemas/HTTPValidationError' title: Response 422 Getredditcryptomarketsentiment '503': description: Database temporarily unavailable content: application/json: example: detail: Database temporarily unavailable schema: $ref: '#/components/schemas/ErrorResponse' '504': description: Analytics request deadline exceeded content: application/json: example: detail: Request deadline exceeded schema: $ref: '#/components/schemas/ErrorResponse' x-codeSamples: - lang: curl label: cURL source: "curl \"https://api.adanos.org/reddit/crypto/v1/market-sentiment?from=2026-05-01&to=2026-05-07\" \\\n -H \"X-API-Key: sk_live_your_key_here\"" - lang: javascript label: JavaScript source: "const response = await fetch(\"https://api.adanos.org/reddit/crypto/v1/market-sentiment?from=2026-05-01&to=2026-05-07\", {\n headers: {\n \"X-API-Key\": \"sk_live_your_key_here\",\n },\n});\n\nif (!response.ok) throw new Error(`HTTP ${response.status}`);\nconst data = await response.json();\nconsole.log(data);" - lang: python label: Python source: "import requests\n\nresponse = requests.get(\n \"https://api.adanos.org/reddit/crypto/v1/market-sentiment?from=2026-05-01&to=2026-05-07\",\n headers={\n \"X-API-Key\": \"sk_live_your_key_here\",\n },\n timeout=30,\n)\nresponse.raise_for_status()\nprint(response.json())" x-operation-id-source: normalized x-operation-id-original: getRedditCryptoMarketSentiment /compare: get: tags: - Reddit Crypto summary: Compare tokens description: 'Compare up to 10 crypto symbols side by side over the same UTC calendar-day period. Use it when you already know the symbols and want a compact ranked table instead of full detail reports. Results are sorted by `buzz_score` descending and include attributed `mentions`, `trend`, `trend_history`, `unique_posts`, `subreddit_count`, `sentiment_score`, `bullish_pct`, `bearish_pct` and `total_upvotes`. `trend` is activity momentum over the current 3 UTC days vs previous 3 UTC days using mentions, upvotes and subreddit breadth; not price movement. For `from`/`to`, anchors at `to` (or now when `to` is today).' operationId: getCompare security: - ApiKeyAuth: [] parameters: - name: from in: query required: false schema: description: Start date in YYYY-MM-DD. Inclusive UTC date. title: From type: string format: date description: Start date in YYYY-MM-DD. Inclusive UTC date. - name: to in: query required: false schema: description: End date in YYYY-MM-DD. Inclusive UTC date. Omit to use the current UTC date. title: To type: string format: date description: End date in YYYY-MM-DD. Inclusive UTC date. Omit to use the current UTC date. - name: days in: query required: false schema: type: integer maximum: 365 minimum: 1 description: Deprecated v1 compatibility shorthand. Prefer `from` and `to` for reproducible UTC date windows. title: Days description: Deprecated v1 compatibility shorthand. Prefer `from` and `to` for reproducible UTC date windows. deprecated: true x-adanos-hide-in-request-client: true - name: symbols in: query required: true schema: type: string description: Comma-separated symbols (e.g., BTC,ETH,SOL) title: Symbols description: Comma-separated symbols (e.g., BTC,ETH,SOL) responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/CryptoCompareResponse' example: period_days: 7 tokens: - symbol: BTC name: Bitcoin buzz_score: 78.1 trend: rising mentions: 423 unique_posts: 97 subreddit_count: 12 sentiment_score: 0.31 bullish_pct: 47 bearish_pct: 18 total_upvotes: 15620 trend_history: - 42.3 - 46.8 - 51.2 - 58.9 - 64.0 - 71.4 - 78.1 - symbol: ETH name: Ethereum buzz_score: 72.4 trend: stable mentions: 318 unique_posts: 73 subreddit_count: 9 sentiment_score: 0.27 bullish_pct: 43 bearish_pct: 19 total_upvotes: 10422 trend_history: - 36.2 - 41.4 - 46.7 - 53.1 - 60.2 - 66.5 - 72.4 headers: X-Request-ID: description: Request correlation identifier returned by the API and included in structured application logs. schema: type: string example: adnos.req-20260423.abc12345 Cache-Control: description: HTTP cache policy returned by the API. schema: type: string example: private, max-age=30 Vary: description: Headers that private client caches must include in their cache key. schema: type: string example: X-API-Key, Authorization, Accept-Encoding X-RateLimit-Limit-Monthly: description: Monthly request quota for the authenticated account. schema: type: string example: '250' X-RateLimit-Remaining-Monthly: description: Remaining monthly requests for the authenticated account. schema: type: string example: '247' X-RateLimit-Used-Monthly: description: Requests already consumed in the account's current monthly quota window. schema: type: string example: '3' X-RateLimit-Reset-Monthly: description: ISO 8601 timestamp when the current monthly quota window resets. schema: type: string format: date-time example: '2026-07-29T14:03:00Z' X-RateLimit-Limit-Burst: description: Per-minute burst request quota for the authenticated account. schema: type: string example: '100' X-RateLimit-Remaining-Burst: description: Remaining requests in the current per-minute burst window. schema: type: string example: '99' X-RateLimit-Reset-Burst: description: ISO 8601 timestamp when the current burst rate-limit window resets. schema: type: string format: date-time example: '2026-04-28T14:30:00Z' X-Account-Type: description: Account tier resolved from the API key. schema: type: string enum: - free - hobby - professional - premium example: free '401': description: Authentication failed content: application/json: examples: missing: summary: Missing API key value: detail: Missing API key. Include 'X-API-Key' header. invalid: summary: Invalid API key value: detail: Invalid API key. revoked: summary: Revoked API key value: detail: API key has been revoked. schema: $ref: '#/components/schemas/ErrorResponse' '403': description: Historical data limit exceeded content: application/json: example: detail: error: Historical data limit exceeded message: 'Your free account is limited to 30 days of historical lookback. Upgrade to Hobby for up to 90 days or Professional for up to 365 days: https://adanos.org/pricing' requested_days: 60 enforced_quantity: lookback_days max_days: 30 account_type: free schema: $ref: '#/components/schemas/HistoricalLimitError' '429': description: Rate limit exceeded content: application/json: examples: burst: summary: Fleet burst limit exceeded value: detail: error: Burst rate limit exceeded message: Too many requests. Limit is 100 requests per minute. limit: 100 used: 100 account_type: free local: summary: Local backup limiter exceeded value: detail: error: Rate limit exceeded message: 'Rate limit exceeded: 100 per 1 minute' limit: 100 account_type: free schema: $ref: '#/components/schemas/RateLimitError' '422': description: Invalid period or query parameters content: application/json: examples: platform_availability: summary: Period starts before platform data availability value: detail: error: Invalid period message: Requested period starts before this platform's public data availability. period_from: '2025-03-17' available_since: '2026-03-07' platform: news validation: summary: Query parameter validation failed value: detail: - type: greater_than_equal loc: - query - days msg: Input should be greater than or equal to 1 input: '0' ctx: ge: 1 schema: anyOf: - $ref: '#/components/schemas/InvalidPeriodError' - $ref: '#/components/schemas/HTTPValidationError' title: Response 422 Compareredditcryptotokens '503': description: Database temporarily unavailable content: application/json: example: detail: Database temporarily unavailable schema: $ref: '#/components/schemas/ErrorResponse' '504': description: Analytics request deadline exceeded content: application/json: example: detail: Request deadline exceeded schema: $ref: '#/components/schemas/ErrorResponse' '400': description: Invalid compare item list content: application/json: example: detail: error: too_many_symbols message: Maximum 10 symbols allowed. max_items: 10 item_name: symbol examples: too_many_symbols: summary: Too many symbols value: detail: error: too_many_symbols message: Maximum 10 symbols allowed. max_items: 10 item_name: symbol no_valid_symbols: summary: No valid symbols value: detail: error: no_valid_symbols message: At least one valid symbol is required. max_items: 10 item_name: symbol schema: $ref: '#/components/schemas/CompareLimitError' x-codeSamples: - lang: curl label: cURL source: "curl \"https://api.adanos.org/reddit/crypto/v1/compare?from=2026-05-01&to=2026-05-07&symbols=BTC,ETH,SOL\" \\\n -H \"X-API-Key: sk_live_your_key_here\"" - lang: javascript label: JavaScript source: "const response = await fetch(\"https://api.adanos.org/reddit/crypto/v1/compare?from=2026-05-01&to=2026-05-07&symbols=BTC,ETH,SOL\", {\n headers: {\n \"X-API-Key\": \"sk_live_your_key_here\",\n },\n});\n\nif (!response.ok) throw new Error(`HTTP ${response.status}`);\nconst data = await response.json();\nconsole.log(data);" - lang: python label: Python source: "import requests\n\nresponse = requests.get(\n \"https://api.adanos.org/reddit/crypto/v1/compare?from=2026-05-01&to=2026-05-07&symbols=BTC,ETH,SOL\",\n headers={\n \"X-API-Key\": \"sk_live_your_key_here\",\n },\n timeout=30,\n)\nresponse.raise_for_status()\nprint(response.json())" x-operation-id-source: normalized x-operation-id-original: compareRedditCryptoTokens /search: get: tags: - Reddit Crypto summary: Search tokens description: 'Search known crypto assets by symbol, name or alias. Results prioritize exact symbol matches first, then prefixes, then name/alias matches and include a compact `summary` block for the last 7 UTC calendar days. Summary `mentions` includes inherited thread-context mentions.' operationId: getSearch security: - ApiKeyAuth: [] parameters: - name: q in: query required: true schema: type: string minLength: 2 description: Search query (minimum 2 non-$ characters after trimming) title: Q description: Search query (minimum 2 non-$ characters after trimming) - name: limit in: query required: false schema: type: integer maximum: 50 minimum: 1 description: Maximum number of results to return examples: - 20 default: 20 title: Limit description: Maximum number of results to return responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/CryptoSearchResponse' example: query: solana count: 1 period_days: 7 results: - symbol: SOL name: Solana market_cap_rank: 6 market_cap_usd: 71234567890.12 aliases: - Sol summary: mentions: 287 buzz_score: 72.4 trend: stable sentiment_score: 0.27 bearish_pct: 19 bullish_pct: 43 subreddit_count: 9 total_upvotes: 10422 unique_posts: 73 headers: X-Request-ID: description: Request correlation identifier returned by the API and included in structured application logs. schema: type: string example: adnos.req-20260423.abc12345 Cache-Control: description: HTTP cache policy returned by the API. schema: type: string example: private, max-age=15 Vary: description: Headers that private client caches must include in their cache key. schema: type: string example: X-API-Key, Authorization, Accept-Encoding X-RateLimit-Limit-Monthly: description: Monthly request quota for the authenticated account. schema: type: string example: '250' X-RateLimit-Remaining-Monthly: description: Remaining monthly requests for the authenticated account. schema: type: string example: '247' X-RateLimit-Used-Monthly: description: Requests already consumed in the account's current monthly quota window. schema: type: string example: '3' X-RateLimit-Reset-Monthly: description: ISO 8601 timestamp when the current monthly quota window resets. schema: type: string format: date-time example: '2026-07-29T14:03:00Z' X-RateLimit-Limit-Burst: description: Per-minute burst request quota for the authenticated account. schema: type: string example: '100' X-RateLimit-Remaining-Burst: description: Remaining requests in the current per-minute burst window. schema: type: string example: '99' X-RateLimit-Reset-Burst: description: ISO 8601 timestamp when the current burst rate-limit window resets. schema: type: string format: date-time example: '2026-04-28T14:30:00Z' X-Account-Type: description: Account tier resolved from the API key. schema: type: string enum: - free - hobby - professional - premium example: free '401': description: Authentication failed content: application/json: examples: missing: summary: Missing API key value: detail: Missing API key. Include 'X-API-Key' header. invalid: summary: Invalid API key value: detail: Invalid API key. revoked: summary: Revoked API key value: detail: API key has been revoked. schema: $ref: '#/components/schemas/ErrorResponse' '429': description: Rate limit exceeded content: application/json: examples: burst: summary: Fleet burst limit exceeded value: detail: error: Burst rate limit exceeded message: Too many requests. Limit is 100 requests per minute. limit: 100 used: 100 account_type: free local: summary: Local backup limiter exceeded value: detail: error: Rate limit exceeded message: 'Rate limit exceeded: 100 per 1 minute' limit: 100 account_type: free schema: $ref: '#/components/schemas/RateLimitError' '503': description: Database temporarily unavailable content: application/json: example: detail: Database temporarily unavailable schema: $ref: '#/components/schemas/ErrorResponse' '504': description: Analytics request deadline exceeded content: application/json: example: detail: Request deadline exceeded schema: $ref: '#/components/schemas/ErrorResponse' '422': description: Invalid search query parameters content: application/json: examples: fixed_window: summary: Search endpoints use a fixed summary window value: detail: error: Invalid search parameters message: Search endpoints use a fixed last-7-UTC-calendar-day summary window. unsupported_parameters: - days normalized_query: summary: Search query is too short after normalization value: detail: Search query must contain at least 2 non-$ characters after trimming validation: summary: Query parameter validation failed value: detail: - type: string_too_short loc: - query - q msg: String should have at least 2 characters input: t ctx: min_length: 2 schema: anyOf: - $ref: '#/components/schemas/InvalidSearchParametersError' - $ref: '#/components/schemas/HTTPValidationError' title: Response 422 Searchredditcrypto x-codeSamples: - lang: curl label: cURL source: "curl \"https://api.adanos.org/reddit/crypto/v1/search?q=bitcoin&limit=5\" \\\n -H \"X-API-Key: sk_live_your_key_here\"" - lang: javascript label: JavaScript source: "const response = await fetch(\"https://api.adanos.org/reddit/crypto/v1/search?q=bitcoin&limit=5\", {\n headers: {\n \"X-API-Key\": \"sk_live_your_key_here\",\n },\n});\n\nif (!response.ok) throw new Error(`HTTP ${response.status}`);\nconst data = await response.json();\nconsole.log(data);" - lang: python label: Python source: "import requests\n\nresponse = requests.get(\n \"https://api.adanos.org/reddit/crypto/v1/search?q=bitcoin&limit=5\",\n headers={\n \"X-API-Key\": \"sk_live_your_key_here\",\n },\n timeout=30,\n)\nresponse.raise_for_status()\nprint(response.json())" x-operation-id-source: normalized x-operation-id-original: searchRedditCrypto /token/{symbol}/mentions: get: tags: - Reddit Crypto summary: Raw Mentions description: 'Returns raw Reddit mention rows for a specific crypto symbol within the live raw-data retention window. **Professional account required.** Free and Hobby accounts cannot use this endpoint. **Use this endpoint when you need:** - post/comment-level snippets - original timestamps - inherited-context filtering **Notes:** - Use `from` and `to` for explicit UTC date windows - Results are ordered newest first and support deterministic `offset` + `limit` pagination - `include_inherited=false` by default - empty result sets return `200` with `results=[]`' operationId: getTokenBySymbolMentions security: - ApiKeyAuth: [] parameters: - name: symbol in: path required: true schema: type: string pattern: ^\$?[A-Za-z0-9]{1,20}$ description: Crypto symbol (e.g., BTC, $ETH, SOL) title: Symbol description: Crypto symbol (e.g., BTC, $ETH, SOL) - name: from in: query required: false schema: description: Start date in YYYY-MM-DD. Inclusive UTC date. title: From type: string format: date description: Start date in YYYY-MM-DD. Inclusive UTC date. - name: to in: query required: false schema: description: End date in YYYY-MM-DD. Inclusive UTC date. Omit to use the current UTC date. title: To type: string format: date description: End date in YYYY-MM-DD. Inclusive UTC date. Omit to use the current UTC date. - name: days in: query required: false schema: type: integer maximum: 365 minimum: 1 description: Deprecated v1 compatibility shorthand. Prefer `from` and `to` for reproducible UTC date windows. title: Days description: Deprecated v1 compatibility shorthand. Prefer `from` and `to` for reproducible UTC date windows. deprecated: true x-adanos-hide-in-request-client: true - name: limit in: query required: false schema: type: integer maximum: 100 minimum: 1 description: Maximum number of raw mentions to return default: 50 title: Limit description: Maximum number of raw mentions to return - name: offset in: query required: false schema: type: integer minimum: 0 description: Number of raw mention rows to skip for offset-based pagination. default: 0 title: Offset description: Number of raw mention rows to skip for offset-based pagination. - name: include_inherited in: query required: false schema: type: boolean description: Include inherited thread-context mentions in addition to direct symbol matches default: false title: Include Inherited description: Include inherited thread-context mentions in addition to direct symbol matches responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/CryptoRawMentionsResponse' example: symbol: BTC period_days: 7 count: 1 results: - post_id: abc123 comment_id: def456 subreddit: cryptocurrency author: user123 text_snippet: BTC still looks strong above this range... created_utc: '2026-03-20T18:42:10Z' upvotes: 381 sentiment_score: 0.62 sentiment_label: positive is_inherited: false headers: X-Request-ID: description: Request correlation identifier returned by the API and included in structured application logs. schema: type: string example: adnos.req-20260423.abc12345 Cache-Control: description: HTTP cache policy returned by the API. schema: type: string example: private, max-age=60 Vary: description: Headers that private client caches must include in their cache key. schema: type: string example: X-API-Key, Authorization, Accept-Encoding X-RateLimit-Limit-Monthly: description: Monthly request quota for the authenticated account. schema: type: string example: '250' X-RateLimit-Remaining-Monthly: description: Remaining monthly requests for the authenticated account. schema: type: string example: '247' X-RateLimit-Used-Monthly: description: Requests already consumed in the account's current monthly quota window. schema: type: string example: '3' X-RateLimit-Reset-Monthly: description: ISO 8601 timestamp when the current monthly quota window resets. schema: type: string format: date-time example: '2026-07-29T14:03:00Z' X-RateLimit-Limit-Burst: description: Per-minute burst request quota for the authenticated account. schema: type: string example: '100' X-RateLimit-Remaining-Burst: description: Remaining requests in the current per-minute burst window. schema: type: string example: '99' X-RateLimit-Reset-Burst: description: ISO 8601 timestamp when the current burst rate-limit window resets. schema: type: string format: date-time example: '2026-04-28T14:30:00Z' X-Account-Type: description: Account tier resolved from the API key. schema: type: string enum: - free - hobby - professional - premium example: free '401': description: Authentication failed content: application/json: examples: missing: summary: Missing API key value: detail: Missing API key. Include 'X-API-Key' header. invalid: summary: Invalid API key value: detail: Invalid API key. revoked: summary: Revoked API key value: detail: API key has been revoked. schema: $ref: '#/components/schemas/ErrorResponse' '403': description: Historical data limit exceeded content: application/json: example: detail: error: Historical data limit exceeded message: 'Your free account is limited to 30 days of historical lookback. Upgrade to Hobby for up to 90 days or Professional for up to 365 days: https://adanos.org/pricing' requested_days: 60 enforced_quantity: lookback_days max_days: 30 account_type: free schema: $ref: '#/components/schemas/HistoricalLimitError' '429': description: Rate limit exceeded content: application/json: examples: burst: summary: Fleet burst limit exceeded value: detail: error: Burst rate limit exceeded message: Too many requests. Limit is 100 requests per minute. limit: 100 used: 100 account_type: free local: summary: Local backup limiter exceeded value: detail: error: Rate limit exceeded message: 'Rate limit exceeded: 100 per 1 minute' limit: 100 account_type: free schema: $ref: '#/components/schemas/RateLimitError' '422': description: Invalid period or query parameters content: application/json: examples: platform_availability: summary: Period starts before platform data availability value: detail: error: Invalid period message: Requested period starts before this platform's public data availability. period_from: '2025-03-17' available_since: '2026-03-07' platform: news validation: summary: Query parameter validation failed value: detail: - type: greater_than_equal loc: - query - days msg: Input should be greater than or equal to 1 input: '0' ctx: ge: 1 schema: anyOf: - $ref: '#/components/schemas/InvalidPeriodError' - $ref: '#/components/schemas/HTTPValidationError' title: Response 422 Getredditcryptotokenmentions '503': description: Database temporarily unavailable content: application/json: example: detail: Database temporarily unavailable schema: $ref: '#/components/schemas/ErrorResponse' '504': description: Analytics request deadline exceeded content: application/json: example: detail: Request deadline exceeded schema: $ref: '#/components/schemas/ErrorResponse' x-codeSamples: - lang: curl label: cURL source: "curl \"https://api.adanos.org/reddit/crypto/v1/token/BTC/mentions?from=2026-05-01&to=2026-05-07&limit=5\" \\\n -H \"X-API-Key: sk_live_your_key_here\"" - lang: javascript label: JavaScript source: "const response = await fetch(\"https://api.adanos.org/reddit/crypto/v1/token/BTC/mentions?from=2026-05-01&to=2026-05-07&limit=5\", {\n headers: {\n \"X-API-Key\": \"sk_live_your_key_here\",\n },\n});\n\nif (!response.ok) throw new Error(`HTTP ${response.status}`);\nconst data = await response.json();\nconsole.log(data);" - lang: python label: Python source: "import requests\n\nresponse = requests.get(\n \"https://api.adanos.org/reddit/crypto/v1/token/BTC/mentions?from=2026-05-01&to=2026-05-07&limit=5\",\n headers={\n \"X-API-Key\": \"sk_live_your_key_here\",\n },\n timeout=30,\n)\nresponse.raise_for_status()\nprint(response.json())" x-operation-id-source: normalized x-operation-id-original: getRedditCryptoTokenMentions components: schemas: CryptoRawMentionsResponse: properties: symbol: type: string title: Symbol description: Crypto symbol examples: - BTC period_days: type: integer minimum: 1.0 title: Period Days description: Lookback window used for the query examples: - 7 count: type: integer minimum: 0.0 title: Count description: Total number of matching raw rows for the requested include_inherited filter before limit and offset are applied; only the requested page is returned examples: - 1 results: items: $ref: '#/components/schemas/CryptoRawMentionItem' type: array title: Results description: Raw mention rows ordered by newest first type: object required: - symbol - period_days - count - results title: CryptoRawMentionsResponse description: Paginated raw Reddit crypto mentions for a single symbol. examples: - symbol: BTC period_days: 7 count: 1 results: - post_id: abc123 comment_id: def456 subreddit: cryptocurrency author: user123 text_snippet: BTC still looks strong above this range... created_utc: '2026-03-20T18:42:10Z' upvotes: 381 sentiment_score: 0.62 sentiment_label: positive is_inherited: false HistoricalLimitError: properties: detail: $ref: '#/components/schemas/HistoricalLimitErrorDetail' description: Structured error details type: object required: - detail title: HistoricalLimitError description: Error response for historical data limit exceeded (HTTP 403). InvalidPeriodErrorDetail: properties: error: type: string title: Error description: Error type identifier message: type: string title: Message description: Human-readable error message field: anyOf: - type: string - type: 'null' title: Field description: Invalid query parameter name value: anyOf: - type: string - type: integer - type: 'null' title: Value description: Invalid query parameter value today: anyOf: - type: string format: date - type: 'null' title: Today description: Current UTC date used for validation period_from: anyOf: - type: string format: date - type: 'null' title: Period From description: Resolved inclusive UTC start date period_to: anyOf: - type: string format: date - type: 'null' title: Period To description: Resolved inclusive UTC end date available_since: anyOf: - type: string format: date - type: 'null' title: Available Since description: Earliest public data date for the platform retention_from: anyOf: - type: string format: date - type: 'null' title: Retention From description: Earliest date retained for the endpoint requested_days: anyOf: - type: integer - type: 'null' title: Requested Days description: Number of days requested max_days: anyOf: - type: integer - type: 'null' title: Max Days description: Maximum days accepted by the endpoint platform: anyOf: - type: string - type: 'null' title: Platform description: Platform identifier type: object required: - error - message title: InvalidPeriodErrorDetail description: Structured error detail for invalid period windows. CryptoSubredditCount: properties: subreddit: type: string title: Subreddit description: Subreddit name examples: - cryptocurrency mentions: type: integer minimum: 0.0 title: Mentions description: Attributed mentions in this subreddit examples: - 89 sentiment_score: anyOf: - type: number maximum: 1.0 minimum: -1.0 - type: 'null' title: Sentiment Score description: Average sentiment score for this subreddit in the selected period examples: - 0.22 buzz_score: anyOf: - type: number maximum: 100.0 minimum: 0.0 - type: 'null' title: Buzz Score description: Contributor-level buzz score for this subreddit in the selected period examples: - 61.5 count: type: integer minimum: 0.0 title: Count description: Deprecated alias for mentions. Use mentions instead. deprecated: true examples: - 89 type: object required: - subreddit - mentions - count title: CryptoSubredditCount description: Subreddit contributor metrics for a crypto detail response. UnsupportedAssetError: properties: detail: $ref: '#/components/schemas/UnsupportedAssetErrorDetail' description: Structured unsupported asset details type: object required: - detail title: UnsupportedAssetError description: Error response for unsupported v1 stock/crypto asset requests. CryptoSearchResponse: properties: query: type: string title: Query description: Original search query examples: - solana count: type: integer title: Count description: Total number of matching assets before the limit is applied examples: - 1 period_days: type: integer minimum: 1.0 title: Period Days description: Fixed lookback window used for each summary block examples: - 7 results: items: $ref: '#/components/schemas/CryptoSearchItem' type: array title: Results description: Top matching crypto assets capped by the requested limit type: object required: - query - count - period_days - results title: CryptoSearchResponse description: Search response for crypto assets. examples: - query: solana count: 1 period_days: 7 results: - symbol: SOL name: Solana market_cap_rank: 6 market_cap_usd: 71234567890.12 aliases: - Sol summary: mentions: 287 buzz_score: 72.4 trend: stable sentiment_score: 0.27 bearish_pct: 19 bullish_pct: 43 subreddit_count: 9 total_upvotes: 10422 unique_posts: 73 CryptoSearchSummary: properties: mentions: type: integer minimum: 0.0 title: Mentions description: Attributed mentions in the last 7 UTC calendar days, including inherited thread-context mentions examples: - 287 buzz_score: anyOf: - type: number maximum: 100.0 minimum: 0.0 - type: 'null' title: Buzz Score description: Buzz score over the last 7 UTC calendar days examples: - 72.4 trend: anyOf: - type: string enum: - rising - falling - stable - type: 'null' title: Trend description: Activity momentum over the current 3 UTC days vs previous 3 UTC days using mentions, upvotes and subreddit breadth; not price movement. For `from`/`to`, anchors at `to` (or now when `to` is today). examples: - stable sentiment_score: anyOf: - type: number maximum: 1.0 minimum: -1.0 - type: 'null' title: Sentiment Score description: Average sentiment score over the last 7 UTC calendar days examples: - 0.27 type: object required: - mentions - buzz_score title: CryptoSearchSummary description: Compact last-7-days summary attached to crypto search results. InvalidSearchParametersErrorDetail: properties: error: type: string title: Error description: Error type identifier message: type: string title: Message description: Human-readable error message unsupported_parameters: items: type: string type: array title: Unsupported Parameters description: Search query parameters that are not supported type: object required: - error - message - unsupported_parameters title: InvalidSearchParametersErrorDetail description: Structured error detail for unsupported search query parameters. HistoricalLimitErrorDetail: properties: error: type: string title: Error description: Error type identifier message: type: string title: Message description: Human-readable error message requested_days: type: integer title: Requested Days description: Number of days requested enforced_quantity: anyOf: - type: string - type: 'null' title: Enforced Quantity description: Quantity checked against the account tier limit max_days: type: integer title: Max Days description: Maximum days allowed for account tier account_type: type: string title: Account Type description: User's account type (free, hobby, professional, premium) type: object required: - error - message - requested_days - max_days - account_type title: HistoricalLimitErrorDetail description: Structured error detail for historical data limit exceeded. CryptoRawMentionItem: properties: post_id: anyOf: - type: string - type: 'null' title: Post Id description: Reddit post identifier examples: - abc123 comment_id: anyOf: - type: string - type: 'null' title: Comment Id description: Reddit comment identifier when the mention comes from a comment examples: - def456 subreddit: anyOf: - type: string - type: 'null' title: Subreddit description: Source subreddit examples: - cryptocurrency author: anyOf: - type: string - type: 'null' title: Author description: Public Reddit author name, if scraped examples: - deepfuckingvalue text_snippet: type: string title: Text Snippet description: Stored mention snippet (truncated at ingestion time) examples: - BTC still looks strong above this range... created_utc: type: string format: date-time title: Created Utc description: ISO timestamp of creation examples: - '2026-03-20T18:42:10Z' upvotes: type: integer title: Upvotes description: Reddit score (upvotes) for this mention row examples: - 381 sentiment_score: anyOf: - type: number maximum: 1.0 minimum: -1.0 - type: 'null' title: Sentiment Score description: Sentiment score (-1 to +1) examples: - 0.62 sentiment_label: anyOf: - type: string - type: 'null' title: Sentiment Label description: Sentiment label (positive/negative/neutral) examples: - positive is_inherited: type: boolean title: Is Inherited description: Whether symbol context was inherited from the parent thread instead of directly mentioned examples: - false type: object required: - text_snippet - created_utc - upvotes - is_inherited title: CryptoRawMentionItem description: Raw Reddit crypto mention row for one symbol. CryptoMarketSentimentResponse: properties: buzz_score: anyOf: - type: number maximum: 100.0 minimum: 0.0 - type: 'null' title: Buzz Score description: Service-wide Reddit Crypto heat score relative to the trailing 90-day baseline for the selected period examples: - 52.4 trend: anyOf: - type: string enum: - rising - falling - stable - type: 'null' title: Trend description: Activity momentum over the current 3 UTC days vs previous 3 UTC days using mentions, upvotes and subreddit breadth; not price movement. For `from`/`to`, anchors at `to` (or now when `to` is today). examples: - rising mentions: type: integer minimum: 0.0 title: Mentions description: Total Reddit mentions across the selected period, including inherited thread-context mentions examples: - 5412 unique_posts: type: integer minimum: 0.0 title: Unique Posts description: Exact distinct Reddit post count across the selected UTC period examples: - 1184 subreddit_count: type: integer minimum: 0.0 title: Subreddit Count description: Distinct subreddits contributing in the selected period examples: - 37 total_upvotes: type: integer minimum: 0.0 title: Total Upvotes description: Total upvotes across attributed mentions in the selected period examples: - 41290 active_tickers: type: integer minimum: 0.0 title: Active Tickers description: Number of crypto symbols with activity in the selected period examples: - 89 sentiment_score: anyOf: - type: number maximum: 1.0 minimum: -1.0 - type: 'null' title: Sentiment Score description: Service-wide average sentiment score across the selected period examples: - 0.117 positive_count: type: integer minimum: 0.0 title: Positive Count description: Deprecated. Prefer bullish_pct with mentions for public analysis; retained for v1 compatibility. deprecated: true examples: - 2101 negative_count: type: integer minimum: 0.0 title: Negative Count description: Deprecated. Prefer bearish_pct with mentions for public analysis; retained for v1 compatibility. deprecated: true examples: - 1318 neutral_count: type: integer minimum: 0.0 title: Neutral Count description: Deprecated. Prefer bullish_pct, bearish_pct and mentions for public analysis; retained for v1 compatibility. deprecated: true examples: - 1993 bullish_pct: type: integer maximum: 100.0 minimum: 0.0 title: Bullish Pct description: Bullish mention percentage examples: - 39 bearish_pct: type: integer maximum: 100.0 minimum: 0.0 title: Bearish Pct description: Bearish mention percentage examples: - 24 trend_history: items: type: number type: array title: Trend History description: Daily service-wide Reddit Crypto heat scores (oldest→newest), each calibrated relative to the trailing 90-day baseline. Length = max(requested_days, 7) for successful requests; windows before platform availability return HTTP 422. examples: - - 47.1 - 49.3 - 50.4 - 52.2 - 51.8 - 53.0 - 52.4 drivers: items: $ref: '#/components/schemas/CryptoMarketSentimentDriver' type: array title: Drivers description: Top assets by current buzz_score driving the service-level reading type: object required: - buzz_score - mentions - unique_posts - subreddit_count - total_upvotes - active_tickers - positive_count - negative_count - neutral_count - bullish_pct - bearish_pct title: CryptoMarketSentimentResponse description: Service-level Reddit Crypto market sentiment across all tracked assets. examples: - buzz_score: 52.4 trend: stable mentions: 5412 unique_posts: 1184 subreddit_count: 37 total_upvotes: 41290 active_tickers: 89 sentiment_score: 0.117 positive_count: 2101 negative_count: 1318 neutral_count: 1993 bullish_pct: 39 bearish_pct: 24 trend_history: - 47.1 - 49.3 - 50.4 - 52.2 - 51.8 - 53.0 - 52.4 drivers: - symbol: BTC mentions: 423 buzz_score: 78.1 sentiment_score: 0.31 - symbol: ETH mentions: 318 buzz_score: 72.4 sentiment_score: 0.27 CompareLimitErrorDetail: properties: error: type: string title: Error description: Machine-readable error code message: type: string title: Message description: Human-readable error message max_items: type: integer title: Max Items description: Maximum accepted compare items item_name: type: string title: Item Name description: Compared item type, such as ticker or symbol type: object required: - error - message - max_items - item_name title: CompareLimitErrorDetail description: Structured error detail for compare item-count violations. CompareLimitError: properties: detail: $ref: '#/components/schemas/CompareLimitErrorDetail' description: Structured error details type: object required: - detail title: CompareLimitError description: Error response for compare item-count violations (HTTP 400). CryptoTokenSentiment: properties: symbol: type: string title: Symbol description: Token symbol examples: - ETH name: anyOf: - type: string - type: 'null' title: Name description: Token name examples: - Ethereum found: type: boolean title: Found description: Legacy v1 data-availability flag. `true` means this service has qualifying data for this asset/window. `false` means the asset is supported, but this service has no qualifying data for the requested window. Planned for removal in v2. deprecated: true buzz_score: anyOf: - type: number maximum: 100.0 minimum: 0.0 - type: 'null' title: Buzz Score description: Buzz score mentions: anyOf: - type: integer - type: 'null' title: Mentions description: Attributed mentions in the selected period, including inherited thread-context mentions examples: - 318 sentiment_score: anyOf: - type: number maximum: 1.0 minimum: -1.0 - type: 'null' title: Sentiment Score description: Average sentiment positive_count: anyOf: - type: integer - type: 'null' title: Positive Count description: Deprecated. Prefer bullish_pct with mentions for public analysis; retained for v1 compatibility. deprecated: true negative_count: anyOf: - type: integer - type: 'null' title: Negative Count description: Deprecated. Prefer bearish_pct with mentions for public analysis; retained for v1 compatibility. deprecated: true neutral_count: anyOf: - type: integer - type: 'null' title: Neutral Count description: Deprecated. Prefer bullish_pct, bearish_pct and mentions for public analysis; retained for v1 compatibility. deprecated: true total_upvotes: anyOf: - type: integer - type: 'null' title: Total Upvotes description: Total upvotes from attributed mentions unique_posts: anyOf: - type: integer - type: 'null' title: Unique Posts description: Distinct post count subreddit_count: anyOf: - type: integer - type: 'null' title: Subreddit Count description: Distinct subreddit count trend: anyOf: - type: string enum: - rising - falling - stable - type: 'null' title: Trend description: Activity momentum over the current 3 UTC days vs previous 3 UTC days using mentions, upvotes and subreddit breadth; not price movement. For `from`/`to`, anchors at `to` (or now when `to` is today). bullish_pct: anyOf: - type: integer maximum: 100.0 minimum: 0.0 - type: 'null' title: Bullish Pct description: Bullish mention percentage bearish_pct: anyOf: - type: integer maximum: 100.0 minimum: 0.0 - type: 'null' title: Bearish Pct description: Bearish mention percentage period_days: anyOf: - type: integer - type: 'null' title: Period Days description: Analysis period in days top_subreddits: anyOf: - items: $ref: '#/components/schemas/CryptoSubredditCount' type: array - type: 'null' title: Top Subreddits description: Top subreddits by mentions daily_trend: anyOf: - items: $ref: '#/components/schemas/CryptoDailyTrendItem' type: array - type: 'null' title: Daily Trend description: Daily attributed mention breakdown for the selected period, with sentiment and buzz_score top_mentions: anyOf: - items: $ref: '#/components/schemas/CryptoTopMention' type: array - type: 'null' title: Top Mentions description: Top explicit mentions from the selected period, ranked by engagement type: object required: - symbol - found title: CryptoTokenSentiment description: Detailed Reddit sentiment for a single crypto symbol. examples: - symbol: ETH name: Ethereum found: true buzz_score: 72.4 mentions: 318 sentiment_score: 0.27 total_upvotes: 10422 unique_posts: 73 subreddit_count: 9 trend: stable bullish_pct: 43 bearish_pct: 19 period_days: 7 top_subreddits: - subreddit: ethtrader mentions: 91 count: 91 - subreddit: cryptocurrency mentions: 84 count: 84 daily_trend: - date: '2026-02-24' mentions: 48 sentiment_score: 0.22 buzz_score: 56.4 bullish_pct: 58 bearish_pct: 21 - date: '2026-02-23' mentions: 42 sentiment_score: 0.19 buzz_score: 51.7 bullish_pct: 52 bearish_pct: 24 top_mentions: - text_snippet: ETH setup still looks strong into the next catalyst. sentiment_score: 0.74 sentiment_label: positive upvotes: 1200 subreddit: ethtrader created_utc: '2026-02-24T09:15:00Z' HTTPValidationError: properties: detail: anyOf: - items: $ref: '#/components/schemas/ValidationError' type: array - type: 'null' title: Detail description: Validation error details type: object title: HTTPValidationError description: FastAPI/Pydantic validation error response. examples: - detail: - loc: - query - days msg: Input should be greater than or equal to 1 type: greater_than_equal RateLimitErrorDetail: properties: error: type: string title: Error description: Error type identifier message: type: string title: Message description: Human-readable error message limit: anyOf: - type: integer - type: 'null' title: Limit description: Applied request limit for the window used: anyOf: - type: integer - type: 'null' title: Used description: Requests used in the current window remaining: anyOf: - type: integer - type: 'null' title: Remaining description: Requests remaining in the current window account_type: type: string title: Account Type description: Resolved account type or fallback tier reset_at: anyOf: - type: string format: date-time - type: 'null' title: Reset At description: ISO 8601 timestamp when the current window resets contact: anyOf: - type: string - type: 'null' title: Contact description: Plan or support URL for resolving the limit type: object required: - error - message - account_type title: RateLimitErrorDetail description: Structured rate-limit error detail. CryptoCompareResponse: properties: period_days: type: integer title: Period Days description: Analysis period in days examples: - 7 tokens: items: $ref: '#/components/schemas/CryptoCompareTokenItem' type: array title: Tokens description: Requested tokens sorted by buzz_score descending type: object required: - period_days - tokens title: CryptoCompareResponse description: Comparison response for multiple crypto symbols. examples: - period_days: 7 tokens: - symbol: BTC name: Bitcoin buzz_score: 78.1 trend: rising mentions: 423 unique_posts: 97 subreddit_count: 12 sentiment_score: 0.31 bullish_pct: 47 bearish_pct: 18 total_upvotes: 15620 trend_history: - 42.3 - 46.8 - 51.2 - 58.9 - 64.0 - 71.4 - 78.1 - symbol: ETH name: Ethereum buzz_score: 72.4 trend: stable mentions: 318 unique_posts: 73 subreddit_count: 9 sentiment_score: 0.27 bullish_pct: 43 bearish_pct: 19 total_upvotes: 10422 trend_history: - 36.2 - 41.4 - 46.7 - 53.1 - 60.2 - 66.5 - 72.4 RateLimitError: properties: detail: $ref: '#/components/schemas/RateLimitErrorDetail' description: Structured rate-limit details type: object required: - detail title: RateLimitError description: Error response for rate-limit exceeded responses. InvalidPeriodError: properties: detail: $ref: '#/components/schemas/InvalidPeriodErrorDetail' description: Structured error details type: object required: - detail title: InvalidPeriodError description: Error response for invalid period requests (HTTP 422). CryptoTrendingToken: properties: symbol: type: string title: Symbol description: Token symbol examples: - BTC name: anyOf: - type: string - type: 'null' title: Name description: Token name examples: - Bitcoin buzz_score: type: number maximum: 100.0 minimum: 0.0 title: Buzz Score description: Buzz score (0-100) examples: - 78.1 trend: type: string enum: - rising - falling - stable title: Trend description: Activity momentum over the current 3 UTC days vs previous 3 UTC days using mentions, upvotes and subreddit breadth; not price movement. For `from`/`to`, anchors at `to` (or now when `to` is today). mentions: type: integer title: Mentions description: Attributed mention count, including inherited thread-context mentions examples: - 423 unique_posts: type: integer title: Unique Posts description: Unique Reddit post count examples: - 97 subreddit_count: type: integer title: Subreddit Count description: Unique subreddit count examples: - 12 sentiment_score: type: number maximum: 1.0 minimum: -1.0 title: Sentiment Score description: Average sentiment score examples: - 0.31 bullish_pct: type: integer maximum: 100.0 minimum: 0.0 title: Bullish Pct description: Bullish mention percentage examples: - 47 bearish_pct: type: integer maximum: 100.0 minimum: 0.0 title: Bearish Pct description: Bearish mention percentage examples: - 18 total_upvotes: type: integer title: Total Upvotes description: Total upvotes from attributed mentions examples: - 15620 trend_history: items: type: number type: array title: Trend History description: Daily buzz scores (oldest to newest). Length follows the resolved period, with a minimum of 7 values. type: object required: - symbol - buzz_score - trend - mentions - unique_posts - subreddit_count - sentiment_score - bullish_pct - bearish_pct - total_upvotes title: CryptoTrendingToken description: Trending crypto token summary. examples: - symbol: BTC name: Bitcoin buzz_score: 78.1 trend: rising mentions: 423 unique_posts: 97 subreddit_count: 12 sentiment_score: 0.31 bullish_pct: 47 bearish_pct: 18 total_upvotes: 15620 trend_history: - 42.3 - 46.8 - 51.2 - 58.9 - 64.0 - 71.4 - 78.1 CryptoDailyTrendItem: properties: date: type: string format: date title: Date description: Date in YYYY-MM-DD format examples: - '2026-02-24' mentions: type: integer title: Mentions description: Attributed mention count for the day, including inherited thread-context mentions examples: - 84 sentiment_score: anyOf: - type: number maximum: 1.0 minimum: -1.0 - type: 'null' title: Sentiment Score description: Average sentiment score for the day examples: - 0.22 buzz_score: anyOf: - type: number maximum: 100.0 minimum: 0.0 - type: 'null' title: Buzz Score description: Daily buzz score examples: - 56.4 bullish_pct: anyOf: - type: integer maximum: 100.0 minimum: 0.0 - type: 'null' title: Bullish Pct description: Bullish mention percentage for the day, calculated from positive sentiment-classified mentions examples: - 58 bearish_pct: anyOf: - type: integer maximum: 100.0 minimum: 0.0 - type: 'null' title: Bearish Pct description: Bearish mention percentage for the day, calculated from negative sentiment-classified mentions examples: - 22 type: object required: - date - mentions title: CryptoDailyTrendItem description: Daily trend datapoint for a crypto symbol. CryptoStatsResponse: properties: total_mentions: type: integer title: Total Mentions description: Rollup-backed all-time Reddit Crypto mention total; current-day raw rows may be used only as a bounded freshness fallback examples: - 18352 unique_tokens: type: integer title: Unique Tokens examples: - 142 mentions_today: type: integer title: Mentions Today default: 0 examples: - 287 unique_tokens_today: type: integer title: Unique Tokens Today default: 0 examples: - 35 supported_tokens: type: integer title: Supported Tokens examples: - 500 type: object required: - total_mentions - unique_tokens - supported_tokens title: CryptoStatsResponse description: High-level crypto dataset statistics. examples: - total_mentions: 18352 unique_tokens: 142 mentions_today: 287 unique_tokens_today: 35 supported_tokens: 500 InvalidSearchParametersError: properties: detail: anyOf: - $ref: '#/components/schemas/InvalidSearchParametersErrorDetail' - type: string title: Detail description: Structured search-parameter error or normalized-query validation message type: object required: - detail title: InvalidSearchParametersError description: Error response for invalid search query parameters. UnsupportedAssetErrorDetail: properties: error_code: type: string title: Error Code description: Machine-readable unsupported asset error code examples: - unsupported_ticker message: type: string title: Message description: Human-readable unsupported asset message type: object required: - error_code - message title: UnsupportedAssetErrorDetail description: Structured detail for unsupported v1 stock/crypto asset requests. CryptoSearchItem: properties: symbol: type: string title: Symbol examples: - SOL name: type: string title: Name examples: - Solana market_cap_rank: anyOf: - type: integer - type: 'null' title: Market Cap Rank examples: - 6 market_cap_usd: anyOf: - type: number - type: 'null' title: Market Cap Usd examples: - 71234567890.12 aliases: items: type: string type: array title: Aliases examples: - - Sol summary: $ref: '#/components/schemas/CryptoSearchSummary' description: Last-7-days Reddit summary for this asset type: object required: - symbol - name - summary title: CryptoSearchItem description: Single search result for crypto reference data. CryptoTopMention: properties: text_snippet: type: string title: Text Snippet description: Mention text snippet sentiment_score: anyOf: - type: number maximum: 1.0 minimum: -1.0 - type: 'null' title: Sentiment Score description: Sentiment score (-1 to +1) sentiment_label: anyOf: - type: string - type: 'null' title: Sentiment Label description: Sentiment label upvotes: type: integer title: Upvotes description: Upvote count examples: - 1200 subreddit: anyOf: - type: string - type: 'null' title: Subreddit description: Source subreddit examples: - cryptocurrency created_utc: type: string format: date-time title: Created Utc description: ISO timestamp type: object required: - text_snippet - upvotes - created_utc title: CryptoTopMention description: Top Reddit mention ordered by engagement. CryptoCompareTokenItem: properties: symbol: type: string title: Symbol examples: - BTC name: anyOf: - type: string - type: 'null' title: Name examples: - Bitcoin buzz_score: anyOf: - type: number maximum: 100.0 minimum: 0.0 - type: 'null' title: Buzz Score examples: - 78.1 trend: anyOf: - type: string enum: - rising - falling - stable - type: 'null' title: Trend description: Activity momentum over the current 3 UTC days vs previous 3 UTC days using mentions, upvotes and subreddit breadth; not price movement. For `from`/`to`, anchors at `to` (or now when `to` is today). Null when no qualifying data exists. examples: - rising mentions: type: integer title: Mentions description: Attributed mentions in the selected period, including inherited thread-context mentions examples: - 423 unique_posts: type: integer title: Unique Posts description: Unique Reddit post count examples: - 97 subreddit_count: type: integer title: Subreddit Count description: Unique subreddit count examples: - 12 sentiment_score: anyOf: - type: number maximum: 1.0 minimum: -1.0 - type: 'null' title: Sentiment Score examples: - 0.31 bullish_pct: anyOf: - type: integer maximum: 100.0 minimum: 0.0 - type: 'null' title: Bullish Pct examples: - 47 bearish_pct: anyOf: - type: integer maximum: 100.0 minimum: 0.0 - type: 'null' title: Bearish Pct examples: - 18 total_upvotes: type: integer title: Total Upvotes description: Total upvotes from attributed mentions examples: - 15620 trend_history: items: type: number type: array title: Trend History description: Daily buzz scores (oldest to newest). Length follows the resolved period, with a minimum of 7 values when data exists. Empty when no qualifying data exists. examples: - - 42.3 - 46.8 - 51.2 - 58.9 - 64.0 - 71.4 - 78.1 type: object required: - symbol - buzz_score - mentions - unique_posts - subreddit_count - total_upvotes title: CryptoCompareTokenItem description: Individual crypto token in a compare response. ErrorResponse: properties: detail: type: string title: Detail description: Human-readable error message examples: - Invalid API key. type: object required: - detail title: ErrorResponse description: Standard error response. examples: - detail: Missing API key. Include 'X-API-Key' header. - detail: Invalid API key. - detail: API key has been revoked. - detail: 'Rate limit exceeded: 100 per 1 minute' CryptoMarketSentimentDriver: properties: symbol: type: string title: Symbol description: Crypto symbol examples: - BTC mentions: type: integer minimum: 0.0 title: Mentions description: Attributed Reddit mentions in the selected period, including inherited thread-context mentions examples: - 423 buzz_score: anyOf: - type: number maximum: 100.0 minimum: 0.0 - type: 'null' title: Buzz Score description: Asset buzz score in the selected period examples: - 78.1 sentiment_score: anyOf: - type: number maximum: 1.0 minimum: -1.0 - type: 'null' title: Sentiment Score description: Average sentiment score for this asset examples: - 0.31 type: object required: - symbol - mentions - buzz_score title: CryptoMarketSentimentDriver description: Top asset contributing to the service-level Reddit Crypto market sentiment. ValidationError: properties: loc: items: anyOf: - type: string - type: integer type: array title: Loc description: Location of the invalid input msg: type: string title: Msg description: Validation failure message type: type: string title: Type description: Validation error type type: object required: - loc - msg - type title: ValidationError description: FastAPI/Pydantic validation error item. examples: - loc: - query - days msg: Input should be greater than or equal to 1 type: greater_than_equal securitySchemes: ApiKeyAuth: type: apiKey description: 'API key for authentication. Get your API key at https://adanos.org/register. Format: `sk_live_` followed by 32 hexadecimal characters. Example: `REDACTED_STRIPE_KEY`.' in: header name: X-API-Key x-refined-from: - adanos-market-sentiment-api-openapi.json - adanos-market-sentiment-api-reddit-crypto-openapi.yaml