AudioAlpha Market API

Market-wide sentiment and narrative data

Operations 6

GET /market/snapshot Get daily market snapshot #
GET /market/themes Get market themes #
GET /market/signals Get daily market scenario signals #
GET /market/quotes/featured Get featured quotes #
GET /market/episodes Get market episodes #
GET /market/history Get market historical time series #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/audioalpha-io:audioalpha-io-market-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

audioalpha-io-market-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: AudioAlpha Market API
  version: 1.0.0
  description: 'Market sentiment and narrative intelligence derived from podcast analysis.


    **Getting Started:**

    1. Generate your API key at https://audioalpha.io/account

    2. Include the key in requests as: Authorization: Bearer YOUR_API_KEY


    **MCP (Claude Integration):**

    Connect to Claude Desktop by adding to your config:

    ```json

    "mcpServers": {

    "audioalpha": {

    "command": "npx",

    "args": ["mcp-remote", "https://www.audioalpha.io/api/mcp?apiKey=YOUR_KEY"]

    }

    }

    ```'
  contact:
    url: https://audioalpha.io
    email: team@audioalpha.io
servers:
- url: https://www.audioalpha.io/api/v1
  description: Production
security:
- bearerAuth: []
tags:
- name: Market
  description: Market-wide sentiment and narrative data
paths:
  /market/snapshot:
    get:
      tags:
      - Market
      summary: Get daily market snapshot
      description: Get the overall crypto market daily snapshot (daily narrative insight report) for a given date. Returns daily headline, delta narrative, regime + justification, α-sentiment OHLC scores (0-10 scale), α-sentiment z-scores (-3 to +3), narrative summary, narrative intesity score, market psychology, consensus score, key tensions, surprise mentions (ticker + why + impact score), episode volume score, and wordcloud.
      parameters:
      - $ref: '#/components/parameters/date'
      - $ref: '#/components/parameters/snapshot_type'
      - $ref: '#/components/parameters/version_number'
      - $ref: '#/components/parameters/version_info'
      responses:
        '200':
          description: Get daily market snapshot
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MarketSnapshot'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '429':
          $ref: '#/components/responses/429'
      operationId: getMarketSnapshot
      x-operation-id-source: derived
  /market/themes:
    get:
      tags:
      - Market
      summary: Get market themes
      description: Get narrative themes dominating the crypto podcast space on a given date. Each theme includes title, summary, podcast coverage count, fragility score, novelty score and counterfactual narrative.
      parameters:
      - $ref: '#/components/parameters/date'
      - $ref: '#/components/parameters/snapshot_type'
      - $ref: '#/components/parameters/version_number'
      - $ref: '#/components/parameters/version_info'
      responses:
        '200':
          description: Get market themes
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/Theme'
                  snapshot_date:
                    type: string
                    format: date
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '429':
          $ref: '#/components/responses/429'
      operationId: getMarketThemes
      x-operation-id-source: derived
  /market/signals:
    get:
      tags:
      - Market
      summary: Get daily market scenario signals
      description: Get scenario strategic signals across all assets for a given date. Each signal includes signal type, horizon, scenario description, trigger conditions, confidence score and invalidating conditions. (Not financial advice.)
      parameters:
      - $ref: '#/components/parameters/date'
      - $ref: '#/components/parameters/snapshot_type'
      - $ref: '#/components/parameters/version_number'
      - $ref: '#/components/parameters/version_info'
      responses:
        '200':
          description: Get daily market scenario signals
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/Signal'
                  snapshot_date:
                    type: string
                    format: date
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '429':
          $ref: '#/components/responses/429'
      operationId: getMarketSignals
      x-operation-id-source: derived
  /market/quotes/featured:
    get:
      tags:
      - Market
      summary: Get featured quotes
      description: Get the top featured quotes from crypto podcasts for a given date, ranked by relevance score.
      parameters:
      - $ref: '#/components/parameters/date'
      - $ref: '#/components/parameters/snapshot_type'
      - $ref: '#/components/parameters/version_number'
      - $ref: '#/components/parameters/version_info'
      responses:
        '200':
          description: Get featured quotes
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/Quote'
                  snapshot_date:
                    type: string
                    format: date
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '429':
          $ref: '#/components/responses/429'
      operationId: getMarketQuotesFeatured
      x-operation-id-source: derived
  /market/episodes:
    get:
      tags:
      - Market
      summary: Get market episodes
      description: Get all crypto podcast episodes published on a given date, including podcast name, α-sentiment score (0-10 scale), and transcript summary.
      parameters:
      - $ref: '#/components/parameters/date'
      responses:
        '200':
          description: Get market episodes
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/Episode'
                  snapshot_date:
                    type: string
                    format: date
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '429':
          $ref: '#/components/responses/429'
      operationId: getMarketEpisodes
      x-operation-id-source: derived
  /market/history:
    get:
      tags:
      - Market
      summary: Get market historical time series
      description: 'Returns a time series of daily market snapshots (the overall market-level daily narrative report), ordered oldest to newest. One row per day with α-sentiment OHLC and 1d/7d deltas, market sentiment mean/median/std, z-score, strength index, regime, consensus, episode count, headline and narrative summaries.


        **Tier limits on `days`:** free=7, alpha=365, pro=730, enterprise=1000. Requests exceeding the limit are silently capped to the tier maximum.


        **`date` (end-date anchor) is only honored for enterprise.** For free / alpha / pro it is ignored and the window always ends at the latest available snapshot. If today has no snapshot yet, the most recent existing snapshot is used as the anchor.


        Response includes `tier_cap`, `effective_days`, `start_date`, `end_date` and `date_param_honored` so clients can see exactly what window was returned. Each row always carries `status`; `version_num`/`version_label` are included when `version_info=true`.'
      parameters:
      - $ref: '#/components/parameters/days'
      - $ref: '#/components/parameters/date'
      - $ref: '#/components/parameters/snapshot_type'
      - $ref: '#/components/parameters/version_info'
      responses:
        '200':
          description: Get market historical time series
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/MarketSnapshot'
                  snapshot_date:
                    type: string
                    format: date
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '429':
          $ref: '#/components/responses/429'
      operationId: getMarketHistory
      x-operation-id-source: derived
components:
  parameters:
    version_info:
      name: version_info
      in: query
      required: false
      schema:
        type: boolean
        default: false
      description: 'When true, include version metadata in the response: both version_num (the revision number) and version_label (a human-readable label like "eod_utc" for the initial end-of-day build, or "revised" when a later-indexed podcast triggered a regeneration). When false (the default), neither field is included. Note: the snapshot generation "status" field is ALWAYS returned regardless of this flag.'
    snapshot_type:
      name: snapshot_type
      in: query
      required: false
      schema:
        type: string
        default: crypto
        enum:
        - crypto
        - tradfi
      description: Asset universe to draw the snapshot from. Currently only "crypto" is available; "tradfi" is reserved for a future release. Defaults to "crypto".
    version_number:
      name: version_number
      in: query
      required: false
      schema:
        type: integer
        default: -1
        minimum: -1
      description: Which revision of the snapshot to return. Each snapshot date can be re-generated multiple times (version 1, 2, 3, …). Use -1 (the default) to always get the latest authoritative version (is_latest = true). If you request a specific version that does not exist for the given date + snapshot_type, the latest version is returned instead.
    date:
      name: date
      in: query
      required: false
      schema:
        type: string
        format: date
      description: Date in YYYY-MM-DD format. Omit for latest.
    days:
      name: days
      in: query
      required: false
      schema:
        type: integer
        default: 30
        maximum: 1000
      description: 'Number of historical days to return, counting back from the anchor date. Tier-capped: free=7, alpha=365, pro=730, enterprise=1000. Requests above the cap are silently capped.'
  schemas:
    Quote:
      type: object
      properties:
        quote:
          type: string
          description: The extracted quote text
        status:
          type: string
          description: Generation status of the parent daily snapshot. "completed" once the snapshot has finished generating (the normal case); "writing" while it is being (re)generated, typically during the 00:00–00:01 UTC build window. Always present in the response.
          example: completed
        version_num:
          type: integer
          description: Revision number of the parent snapshot. Only present when version_info=true.
          example: 1
        version_label:
          type: string
          description: Version label of the parent snapshot (e.g. "eod_utc", "backfill"). Only present when version_info=true.
          example: eod_utc
        speaker:
          type: string
          description: Name of the speaker
          example: Laura Shin
        sentiment_score:
          type: number
          description: α-sentiment score of the quote (0-10 scale)
          example: 7.5
        sentiment_category:
          type: string
          description: α-sentiment category (bearish/neutral/bullish)
          example: bullish
        ticker:
          type: string
          description: Asset ticker the quote refers to (if applicable) — crypto tickers are suffixed with "-USD" (e.g. ETH-USD)
          example: ETH-USD
        episode_id:
          type: string
          description: ID of the episode containing this quote
          example: 152cICc54xb
    Signal:
      type: object
      properties:
        ticker:
          type: string
          description: Asset ticker symbol — crypto tickers are suffixed with "-USD" (e.g. SOL-USD)
          example: SOL-USD
        status:
          type: string
          description: Generation status of the parent daily snapshot. "completed" once the snapshot has finished generating (the normal case); "writing" while it is being (re)generated, typically during the 00:00–00:01 UTC build window. Always present in the response.
          example: completed
        version_num:
          type: integer
          description: Revision number of the parent snapshot. Only present when version_info=true.
          example: 1
        version_label:
          type: string
          description: Version label of the parent snapshot (e.g. "eod_utc", "backfill"). Only present when version_info=true.
          example: eod_utc
        signal_type:
          type: string
          description: Type of signal (bullish/bearish/neutral)
          example: bullish
        horizon:
          type: string
          description: Time horizon for the signal
          example: short-term
        scenario:
          type: string
          description: Description of the expected scenario
        trigger:
          type: string
          description: Conditions that would trigger this scenario
        narrative_basis:
          type: string
          description: The narrative reasoning behind the signal
        confidence:
          type: number
          description: Confidence level of the signal (0-1)
          example: 0.75
        invalidating_condition:
          type: string
          description: Conditions that would invalidate this signal
    MarketSnapshot:
      type: object
      properties:
        snapshot_date:
          type: string
          description: Date of the snapshot
          example: '2025-03-14'
          format: date
        status:
          type: string
          description: Generation status of the parent daily snapshot. "completed" once the snapshot has finished generating (the normal case); "writing" while it is being (re)generated, typically during the 00:00–00:01 UTC build window. Always present in the response.
          example: completed
        version_num:
          type: integer
          description: Revision number of this snapshot. 1 = first generation, higher = later revision. Only present when version_info=true.
          example: 1
        version_label:
          type: string
          description: Human-readable label for this version (e.g. "eod_utc", "backfill", "revised"). Only present when version_info=true.
          example: eod_utc
        regime:
          type: string
          description: Current market regime
          example: bullish accumulation
        regime_justification:
          type: string
          description: Explanation of the regime classification
        market_sentiment_mean:
          type: number
          description: α-sentiment mean across all episodes (0-10 scale, higher = more bullish)
          example: 6.2
        market_sentiment_median:
          type: number
          description: α-sentiment median across all episodes (0-10 scale)
          example: 6.1
        market_sentiment_std:
          type: number
          description: Standard deviation of α-sentiment scores
          example: 1.3
        sentiment_open:
          type: number
          description: α-sentiment of first podcast of the day (0-10 scale)
          example: 5.8
        sentiment_high:
          type: number
          description: Highest α-sentiment of last podcast of the day (0-10 scale)
          example: 7.2
        sentiment_low:
          type: number
          description: Lowest α-sentiment of the day (0-10 scale)
          example: 5.1
        sentiment_close:
          type: number
          description: α-sentiment at market close (0-10 scale)
          example: 6.5
        sentiment_delta_1d:
          type: number
          description: Change in α-sentiment vs yesterday (-10 to +10)
          example: -0.3
        sentiment_delta_7d:
          type: number
          description: Change in α-sentiment vs 7 days ago (-10 to +10)
          example: 1.2
        episode_count:
          type: integer
          description: Number of podcast episodes analyzed
          example: 24
        consensus_score:
          type: number
          description: Agreement among podcast hosts (0-1, higher = more agreement)
          example: 0.78
        sentiment_zscore:
          type: number
          description: α-sentiment standard deviations from historical mean (-3 to +3)
          example: 1.2
        sentiment_strength_index:
          type: number
          description: Strength of the α-sentiment signal
          example: 0.65
        headline:
          type: string
          description: Headline summarizing the day
        daily_narrative_summary:
          type: string
          description: Narrative summary of the day's discussions
        market_psychology_summary:
          type: string
          description: Analysis of market psychology from podcast content
        delta_narrative:
          type: string
          description: Explanation of recent market changes
        key_tensions:
          type: array
          description: Key market tensions identified in podcast discussions
          items:
            type: object
        surprise_mentions:
          type: array
          description: Unexpected or surprising topics that emerged
          items:
            type: object
        wordcloud:
          type: object
          description: Word frequency data for visualization
    Episode:
      type: object
      properties:
        episode_id:
          type: string
          description: Unique episode identifier
          example: 152cICc54xb
        display_title:
          type: string
          description: Episode title
          example: 'Bitcoin''s Next Move: Expert Analysis'
        subtitle:
          type: string
          description: Episode subtitle
          example: Some more info on episode
        published_utc_date:
          type: string
          description: Publication date in UTC
          example: '2025-03-14'
          format: date
        duration_seconds:
          type: integer
          description: Episode duration in seconds
          example: 3600
        crypto_sentiment_score:
          type: number
          description: α-sentiment score for the episode (0-10 scale)
          example: 7.1
        market_sentiment_category:
          type: string
          description: α-sentiment category (bearish/neutral/bullish)
          example: bullish
        trad_sentiment_score:
          type: number
          description: Sentiment about traditional financial markets, not crypto (0-10 scale)
          example: 5.5
        transcript_summary:
          type: string
          description: Summary of the episode transcript
        mp3_url:
          type: string
          description: URL to the episode mp3
          example: https://podcast.example.com/episode/123.mp3
          format: uri
        episode_artwork:
          type: string
          description: URL to episode artwork image
          format: uri
    Error:
      type: object
      properties:
        error:
          type: string
    Theme:
      type: object
      properties:
        theme_snap_id:
          type: string
          description: Unique theme snapshot identifier
        status:
          type: string
          description: Generation status of the parent daily snapshot. "completed" once the snapshot has finished generating (the normal case); "writing" while it is being (re)generated, typically during the 00:00–00:01 UTC build window. Always present in the response.
          example: completed
        version_num:
          type: integer
          description: Revision number of the parent snapshot. Only present when version_info=true.
          example: 1
        version_label:
          type: string
          description: Version label of the parent snapshot (e.g. "eod_utc", "backfill"). Only present when version_info=true.
          example: eod_utc
        title:
          type: string
          description: Theme title
          example: Bitcoin ETF Inflows Accelerating
        summary:
          type: string
          description: Summary of the theme
        pod_coverage:
          type: integer
          description: Number of podcasts discussing this theme
          example: 8
        fragility_score:
          type: number
          description: How fragile/unstable the narrative is (0-1)
          example: 0.35
        novelty_score:
          type: number
          description: How new or surprising the theme is (0-1)
          example: 0.72
        persistency_score:
          type: number
          description: How persistent the theme has been over time (0-1)
          example: 0.85
        counterfactual_narrative:
          type: string
          description: What the opposite narrative would look like
  responses:
    '404':
      description: Not found
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    '403':
      description: Not available on your plan
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    '401':
      description: Missing or invalid API key
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    '429':
      description: Rate limit exceeded
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: API key generated from https://audioalpha.io/account