openapi: 3.1.0
info:
  title: AIsa API
  description: >-
    Capability layer for the agentic economy. Models, skills, payments, and deployment — everything AI agents need to
    reason, act, and transact. This spec consolidates all AIsa API endpoints into a single reference.
  version: 1.0.0
  contact:
    name: AIsa
    url: https://aisa.one
    email: developer@aisa.one
  license:
    name: MIT
    url: https://opensource.org/licenses/MIT
  termsOfService: https://aisa.one/tos
servers:
  - url: https://api.aisa.one/apis/v1
    description: AIsa Data APIs (Bearer auth — register at https://aisa.one)
  - url: https://api.aisa.one/apis/v2
    description: >-
      AIsa Data APIs (x402 pay-per-call) — same surface as /apis/v1, mirrored. No registration; receive HTTP 402
      challenge, settle with stablecoin micropayment. Spec: https://www.x402.org. Open-source gateway implementation:
      https://github.com/AIsa-team/aisa-proxy
    x-implementation: https://github.com/AIsa-team/aisa-proxy
  - url: https://api.aisa.one/v1
    description: AIsa LLM Inference (OpenAI-compatible, Bearer auth)
security:
  - BearerAuth: []
tags:
  - name: AI Models
    description: Access 50+ LLMs via OpenAI-compatible, Anthropic, and Google Gemini interfaces
  - name: Crypto Data
    description: Cryptocurrency prices, markets, and exchange data via CoinGecko
  - name: Financial Data
    description: Stock prices, financials, analyst estimates, SEC filings, and macro data
  - name: Image Generation
    description: Generate and edit images using AI models
  - name: Prediction Markets
    description: Query prediction markets — Polymarket, Kalshi, and matching markets
  - name: Scholar Search
    description: Search academic papers and research
  - name: Twitter / X
    description: Read, search, and interact with Twitter/X — profiles, tweets, communities, trends, and engagement
  - name: Video Generation
    description: Generate videos using AI models (Wan family)
  - name: Web & News Search
    description: Search the web and news via Tavily
  - name: YouTube Search
    description: Search YouTube videos
paths:
  /apis/v2/coingecko/coins/categories:
    servers:
      - url: https://api.aisa.one
        description: AIsa root host (path key carries the /apis/v2 prefix)
    get:
      $ref: '#/paths/~1coingecko~1coins~1categories/get'
  /apis/v2/coingecko/coins/categories/list:
    servers:
      - url: https://api.aisa.one
        description: AIsa root host (path key carries the /apis/v2 prefix)
    get:
      $ref: '#/paths/~1coingecko~1coins~1categories~1list/get'
  /apis/v2/coingecko/coins/list:
    servers:
      - url: https://api.aisa.one
        description: AIsa root host (path key carries the /apis/v2 prefix)
    get:
      $ref: '#/paths/~1coingecko~1coins~1list/get'
  /apis/v2/coingecko/coins/markets:
    servers:
      - url: https://api.aisa.one
        description: AIsa root host (path key carries the /apis/v2 prefix)
    get:
      $ref: '#/paths/~1coingecko~1coins~1markets/get'
  /apis/v2/coingecko/coins/{id}:
    servers:
      - url: https://api.aisa.one
        description: AIsa root host (path key carries the /apis/v2 prefix)
    get:
      $ref: '#/paths/~1coingecko~1coins~1{id}/get'
  /apis/v2/coingecko/coins/{id}/contract/{contract_address}:
    servers:
      - url: https://api.aisa.one
        description: AIsa root host (path key carries the /apis/v2 prefix)
    get:
      $ref: '#/paths/~1coingecko~1coins~1{id}~1contract~1{contract_address}/get'
  /apis/v2/coingecko/coins/{id}/contract/{contract_address}/market_chart:
    servers:
      - url: https://api.aisa.one
        description: AIsa root host (path key carries the /apis/v2 prefix)
    get:
      $ref: '#/paths/~1coingecko~1coins~1{id}~1contract~1{contract_address}~1market_chart/get'
  /apis/v2/coingecko/coins/{id}/history:
    servers:
      - url: https://api.aisa.one
        description: AIsa root host (path key carries the /apis/v2 prefix)
    get:
      $ref: '#/paths/~1coingecko~1coins~1{id}~1history/get'
  /apis/v2/coingecko/coins/{id}/market_chart:
    servers:
      - url: https://api.aisa.one
        description: AIsa root host (path key carries the /apis/v2 prefix)
    get:
      $ref: '#/paths/~1coingecko~1coins~1{id}~1market_chart/get'
  /apis/v2/coingecko/coins/{id}/market_chart/range:
    servers:
      - url: https://api.aisa.one
        description: AIsa root host (path key carries the /apis/v2 prefix)
    get:
      $ref: '#/paths/~1coingecko~1coins~1{id}~1market_chart~1range/get'
  /apis/v2/coingecko/coins/{id}/ohlc:
    servers:
      - url: https://api.aisa.one
        description: AIsa root host (path key carries the /apis/v2 prefix)
    get:
      $ref: '#/paths/~1coingecko~1coins~1{id}~1ohlc/get'
  /apis/v2/coingecko/coins/{id}/tickers:
    servers:
      - url: https://api.aisa.one
        description: AIsa root host (path key carries the /apis/v2 prefix)
    get:
      $ref: '#/paths/~1coingecko~1coins~1{id}~1tickers/get'
  /apis/v2/coingecko/exchanges:
    servers:
      - url: https://api.aisa.one
        description: AIsa root host (path key carries the /apis/v2 prefix)
    get:
      $ref: '#/paths/~1coingecko~1exchanges/get'
  /apis/v2/coingecko/exchanges/list:
    servers:
      - url: https://api.aisa.one
        description: AIsa root host (path key carries the /apis/v2 prefix)
    get:
      $ref: '#/paths/~1coingecko~1exchanges~1list/get'
  /apis/v2/coingecko/exchanges/{id}:
    servers:
      - url: https://api.aisa.one
        description: AIsa root host (path key carries the /apis/v2 prefix)
    get:
      $ref: '#/paths/~1coingecko~1exchanges~1{id}/get'
  /apis/v2/coingecko/exchanges/{id}/tickers:
    servers:
      - url: https://api.aisa.one
        description: AIsa root host (path key carries the /apis/v2 prefix)
    get:
      $ref: '#/paths/~1coingecko~1exchanges~1{id}~1tickers/get'
  /apis/v2/coingecko/news:
    servers:
      - url: https://api.aisa.one
        description: AIsa root host (path key carries the /apis/v2 prefix)
    get:
      $ref: '#/paths/~1coingecko~1news/get'
  /apis/v2/coingecko/search/trending:
    servers:
      - url: https://api.aisa.one
        description: AIsa root host (path key carries the /apis/v2 prefix)
    get:
      $ref: '#/paths/~1coingecko~1search~1trending/get'
  /apis/v2/coingecko/simple/price:
    servers:
      - url: https://api.aisa.one
        description: AIsa root host (path key carries the /apis/v2 prefix)
    get:
      $ref: '#/paths/~1coingecko~1simple~1price/get'
  /apis/v2/coingecko/simple/supported_vs_currencies:
    servers:
      - url: https://api.aisa.one
        description: AIsa root host (path key carries the /apis/v2 prefix)
    get:
      $ref: '#/paths/~1coingecko~1simple~1supported_vs_currencies/get'
  /apis/v2/coingecko/simple/token_price/{id}:
    servers:
      - url: https://api.aisa.one
        description: AIsa root host (path key carries the /apis/v2 prefix)
    get:
      $ref: '#/paths/~1coingecko~1simple~1token_price~1{id}/get'
  /apis/v2/financial/analyst-estimates:
    servers:
      - url: https://api.aisa.one
        description: AIsa root host (path key carries the /apis/v2 prefix)
    get:
      $ref: '#/paths/~1financial~1analyst-estimates/get'
  /apis/v2/financial/company/facts:
    servers:
      - url: https://api.aisa.one
        description: AIsa root host (path key carries the /apis/v2 prefix)
    get:
      $ref: '#/paths/~1financial~1company~1facts/get'
  /apis/v2/financial/earnings:
    servers:
      - url: https://api.aisa.one
        description: AIsa root host (path key carries the /apis/v2 prefix)
    get:
      $ref: '#/paths/~1financial~1earnings/get'
  /apis/v2/financial/earnings/press-releases:
    servers:
      - url: https://api.aisa.one
        description: AIsa root host (path key carries the /apis/v2 prefix)
    get:
      $ref: '#/paths/~1financial~1earnings~1press-releases/get'
  /apis/v2/financial/filings:
    servers:
      - url: https://api.aisa.one
        description: AIsa root host (path key carries the /apis/v2 prefix)
    get:
      $ref: '#/paths/~1financial~1filings/get'
  /apis/v2/financial/filings/items:
    servers:
      - url: https://api.aisa.one
        description: AIsa root host (path key carries the /apis/v2 prefix)
    get:
      $ref: '#/paths/~1financial~1filings~1items/get'
  /apis/v2/financial/financial-metrics:
    servers:
      - url: https://api.aisa.one
        description: AIsa root host (path key carries the /apis/v2 prefix)
    get:
      $ref: '#/paths/~1financial~1financial-metrics/get'
  /apis/v2/financial/financial-metrics/snapshot:
    servers:
      - url: https://api.aisa.one
        description: AIsa root host (path key carries the /apis/v2 prefix)
    get:
      $ref: '#/paths/~1financial~1financial-metrics~1snapshot/get'
  /apis/v2/financial/financials:
    servers:
      - url: https://api.aisa.one
        description: AIsa root host (path key carries the /apis/v2 prefix)
    get:
      $ref: '#/paths/~1financial~1financials/get'
  /apis/v2/financial/financials/balance-sheets:
    servers:
      - url: https://api.aisa.one
        description: AIsa root host (path key carries the /apis/v2 prefix)
    get:
      $ref: '#/paths/~1financial~1financials~1balance-sheets/get'
  /apis/v2/financial/financials/cash-flow-statements:
    servers:
      - url: https://api.aisa.one
        description: AIsa root host (path key carries the /apis/v2 prefix)
    get:
      $ref: '#/paths/~1financial~1financials~1cash-flow-statements/get'
  /apis/v2/financial/financials/income-statements:
    servers:
      - url: https://api.aisa.one
        description: AIsa root host (path key carries the /apis/v2 prefix)
    get:
      $ref: '#/paths/~1financial~1financials~1income-statements/get'
  /apis/v2/financial/financials/search/line-items:
    servers:
      - url: https://api.aisa.one
        description: AIsa root host (path key carries the /apis/v2 prefix)
    post:
      $ref: '#/paths/~1financial~1financials~1search~1line-items/post'
  /apis/v2/financial/financials/search/screener:
    servers:
      - url: https://api.aisa.one
        description: AIsa root host (path key carries the /apis/v2 prefix)
    post:
      $ref: '#/paths/~1financial~1financials~1search~1screener/post'
  /apis/v2/financial/financials/segmented-revenues:
    servers:
      - url: https://api.aisa.one
        description: AIsa root host (path key carries the /apis/v2 prefix)
    get:
      $ref: '#/paths/~1financial~1financials~1segmented-revenues/get'
  /apis/v2/financial/insider-trades:
    servers:
      - url: https://api.aisa.one
        description: AIsa root host (path key carries the /apis/v2 prefix)
    get:
      $ref: '#/paths/~1financial~1insider-trades/get'
  /apis/v2/financial/institutional-ownership:
    servers:
      - url: https://api.aisa.one
        description: AIsa root host (path key carries the /apis/v2 prefix)
    get:
      $ref: '#/paths/~1financial~1institutional-ownership/get'
  /apis/v2/financial/macro/interest-rates:
    servers:
      - url: https://api.aisa.one
        description: AIsa root host (path key carries the /apis/v2 prefix)
    get:
      $ref: '#/paths/~1financial~1macro~1interest-rates/get'
  /apis/v2/financial/macro/interest-rates/snapshot:
    servers:
      - url: https://api.aisa.one
        description: AIsa root host (path key carries the /apis/v2 prefix)
    get:
      $ref: '#/paths/~1financial~1macro~1interest-rates~1snapshot/get'
  /apis/v2/financial/news:
    servers:
      - url: https://api.aisa.one
        description: AIsa root host (path key carries the /apis/v2 prefix)
    get:
      $ref: '#/paths/~1financial~1news/get'
  /apis/v2/financial/prices:
    servers:
      - url: https://api.aisa.one
        description: AIsa root host (path key carries the /apis/v2 prefix)
    get:
      $ref: '#/paths/~1financial~1prices/get'
  /apis/v2/financial/prices/snapshot:
    servers:
      - url: https://api.aisa.one
        description: AIsa root host (path key carries the /apis/v2 prefix)
    get:
      $ref: '#/paths/~1financial~1prices~1snapshot/get'
  /apis/v2/kalshi/market-price/{market_ticker}:
    servers:
      - url: https://api.aisa.one
        description: AIsa root host (path key carries the /apis/v2 prefix)
    get:
      $ref: '#/paths/~1kalshi~1market-price~1{market_ticker}/get'
  /apis/v2/kalshi/markets:
    servers:
      - url: https://api.aisa.one
        description: AIsa root host (path key carries the /apis/v2 prefix)
    get:
      $ref: '#/paths/~1kalshi~1markets/get'
  /apis/v2/kalshi/orderbooks:
    servers:
      - url: https://api.aisa.one
        description: AIsa root host (path key carries the /apis/v2 prefix)
    get:
      $ref: '#/paths/~1kalshi~1orderbooks/get'
  /apis/v2/kalshi/trades:
    servers:
      - url: https://api.aisa.one
        description: AIsa root host (path key carries the /apis/v2 prefix)
    get:
      $ref: '#/paths/~1kalshi~1trades/get'
  /apis/v2/matching-markets/sports:
    servers:
      - url: https://api.aisa.one
        description: AIsa root host (path key carries the /apis/v2 prefix)
    get:
      $ref: '#/paths/~1matching-markets~1sports/get'
  /apis/v2/matching-markets/sports/{sport}:
    servers:
      - url: https://api.aisa.one
        description: AIsa root host (path key carries the /apis/v2 prefix)
    get:
      $ref: '#/paths/~1matching-markets~1sports~1{sport}/get'
  /apis/v2/perplexity/sonar:
    servers:
      - url: https://api.aisa.one
        description: AIsa root host (path key carries the /apis/v2 prefix)
    post:
      $ref: '#/paths/~1perplexity~1sonar/post'
  /apis/v2/perplexity/sonar-deep-research:
    servers:
      - url: https://api.aisa.one
        description: AIsa root host (path key carries the /apis/v2 prefix)
    post:
      $ref: '#/paths/~1perplexity~1sonar-deep-research/post'
  /apis/v2/perplexity/sonar-pro:
    servers:
      - url: https://api.aisa.one
        description: AIsa root host (path key carries the /apis/v2 prefix)
    post:
      $ref: '#/paths/~1perplexity~1sonar-pro/post'
  /apis/v2/perplexity/sonar-reasoning-pro:
    servers:
      - url: https://api.aisa.one
        description: AIsa root host (path key carries the /apis/v2 prefix)
    post:
      $ref: '#/paths/~1perplexity~1sonar-reasoning-pro/post'
  /apis/v2/polymarket/activity:
    servers:
      - url: https://api.aisa.one
        description: AIsa root host (path key carries the /apis/v2 prefix)
    get:
      $ref: '#/paths/~1polymarket~1activity/get'
  /apis/v2/polymarket/candlesticks:
    servers:
      - url: https://api.aisa.one
        description: AIsa root host (path key carries the /apis/v2 prefix)
    get:
      $ref: '#/paths/~1polymarket~1candlesticks/get'
  /apis/v2/polymarket/events:
    servers:
      - url: https://api.aisa.one
        description: AIsa root host (path key carries the /apis/v2 prefix)
    get:
      $ref: '#/paths/~1polymarket~1events/get'
  /apis/v2/polymarket/market-price/{token_id}:
    servers:
      - url: https://api.aisa.one
        description: AIsa root host (path key carries the /apis/v2 prefix)
    get:
      $ref: '#/paths/~1polymarket~1market-price~1{token_id}/get'
  /apis/v2/polymarket/markets:
    servers:
      - url: https://api.aisa.one
        description: AIsa root host (path key carries the /apis/v2 prefix)
    get:
      $ref: '#/paths/~1polymarket~1markets/get'
  /apis/v2/polymarket/orderbooks:
    servers:
      - url: https://api.aisa.one
        description: AIsa root host (path key carries the /apis/v2 prefix)
    get:
      $ref: '#/paths/~1polymarket~1orderbooks/get'
  /apis/v2/polymarket/orders:
    servers:
      - url: https://api.aisa.one
        description: AIsa root host (path key carries the /apis/v2 prefix)
    get:
      $ref: '#/paths/~1polymarket~1orders/get'
  /apis/v2/polymarket/positions/wallet/{wallet_address}:
    servers:
      - url: https://api.aisa.one
        description: AIsa root host (path key carries the /apis/v2 prefix)
    get:
      $ref: '#/paths/~1polymarket~1positions~1wallet~1{wallet_address}/get'
  /apis/v2/polymarket/wallet:
    servers:
      - url: https://api.aisa.one
        description: AIsa root host (path key carries the /apis/v2 prefix)
    get:
      $ref: '#/paths/~1polymarket~1wallet/get'
  /apis/v2/polymarket/wallet/pnl:
    servers:
      - url: https://api.aisa.one
        description: AIsa root host (path key carries the /apis/v2 prefix)
    get:
      $ref: '#/paths/~1polymarket~1wallet~1pnl/get'
  /apis/v2/scholar/search/explain:
    servers:
      - url: https://api.aisa.one
        description: AIsa root host (path key carries the /apis/v2 prefix)
    post:
      $ref: '#/paths/~1scholar~1search~1explain/post'
  /apis/v2/scholar/search/mixed:
    servers:
      - url: https://api.aisa.one
        description: AIsa root host (path key carries the /apis/v2 prefix)
    post:
      $ref: '#/paths/~1scholar~1search~1mixed/post'
  /apis/v2/scholar/search/scholar:
    servers:
      - url: https://api.aisa.one
        description: AIsa root host (path key carries the /apis/v2 prefix)
    post:
      $ref: '#/paths/~1scholar~1search~1scholar/post'
  /apis/v2/scholar/search/web:
    servers:
      - url: https://api.aisa.one
        description: AIsa root host (path key carries the /apis/v2 prefix)
    post:
      $ref: '#/paths/~1scholar~1search~1web/post'
  /apis/v2/services/aigc/tasks/{task_id}:
    servers:
      - url: https://api.aisa.one
        description: AIsa root host (path key carries the /apis/v2 prefix)
    get:
      $ref: '#/paths/~1services~1aigc~1tasks~1{task_id}/get'
  /apis/v2/services/aigc/video-generation/video-synthesis:
    servers:
      - url: https://api.aisa.one
        description: AIsa root host (path key carries the /apis/v2 prefix)
    post:
      $ref: '#/paths/~1services~1aigc~1video-generation~1video-synthesis/post'
  /apis/v2/tavily/crawl:
    servers:
      - url: https://api.aisa.one
        description: AIsa root host (path key carries the /apis/v2 prefix)
    post:
      $ref: '#/paths/~1tavily~1crawl/post'
  /apis/v2/tavily/extract:
    servers:
      - url: https://api.aisa.one
        description: AIsa root host (path key carries the /apis/v2 prefix)
    post:
      $ref: '#/paths/~1tavily~1extract/post'
  /apis/v2/tavily/map:
    servers:
      - url: https://api.aisa.one
        description: AIsa root host (path key carries the /apis/v2 prefix)
    post:
      $ref: '#/paths/~1tavily~1map/post'
  /apis/v2/tavily/search:
    servers:
      - url: https://api.aisa.one
        description: AIsa root host (path key carries the /apis/v2 prefix)
    post:
      $ref: '#/paths/~1tavily~1search/post'
  /apis/v2/twitter/article:
    servers:
      - url: https://api.aisa.one
        description: AIsa root host (path key carries the /apis/v2 prefix)
    get:
      $ref: '#/paths/~1twitter~1article/get'
  /apis/v2/twitter/auth_twitter:
    servers:
      - url: https://api.aisa.one
        description: AIsa root host (path key carries the /apis/v2 prefix)
    post:
      $ref: '#/paths/~1twitter~1auth_twitter/post'
  /apis/v2/twitter/community/get_tweets_from_all_community:
    servers:
      - url: https://api.aisa.one
        description: AIsa root host (path key carries the /apis/v2 prefix)
    get:
      $ref: '#/paths/~1twitter~1community~1get_tweets_from_all_community/get'
  /apis/v2/twitter/community/info:
    servers:
      - url: https://api.aisa.one
        description: AIsa root host (path key carries the /apis/v2 prefix)
    get:
      $ref: '#/paths/~1twitter~1community~1info/get'
  /apis/v2/twitter/community/members:
    servers:
      - url: https://api.aisa.one
        description: AIsa root host (path key carries the /apis/v2 prefix)
    get:
      $ref: '#/paths/~1twitter~1community~1members/get'
  /apis/v2/twitter/community/moderators:
    servers:
      - url: https://api.aisa.one
        description: AIsa root host (path key carries the /apis/v2 prefix)
    get:
      $ref: '#/paths/~1twitter~1community~1moderators/get'
  /apis/v2/twitter/community/tweets:
    servers:
      - url: https://api.aisa.one
        description: AIsa root host (path key carries the /apis/v2 prefix)
    get:
      $ref: '#/paths/~1twitter~1community~1tweets/get'
  /apis/v2/twitter/follow_twitter:
    servers:
      - url: https://api.aisa.one
        description: AIsa root host (path key carries the /apis/v2 prefix)
    post:
      $ref: '#/paths/~1twitter~1follow_twitter/post'
  /apis/v2/twitter/like_twitter:
    servers:
      - url: https://api.aisa.one
        description: AIsa root host (path key carries the /apis/v2 prefix)
    post:
      $ref: '#/paths/~1twitter~1like_twitter/post'
  /apis/v2/twitter/list/followers:
    servers:
      - url: https://api.aisa.one
        description: AIsa root host (path key carries the /apis/v2 prefix)
    get:
      $ref: '#/paths/~1twitter~1list~1followers/get'
  /apis/v2/twitter/list/members:
    servers:
      - url: https://api.aisa.one
        description: AIsa root host (path key carries the /apis/v2 prefix)
    get:
      $ref: '#/paths/~1twitter~1list~1members/get'
  /apis/v2/twitter/post_twitter:
    servers:
      - url: https://api.aisa.one
        description: AIsa root host (path key carries the /apis/v2 prefix)
    post:
      $ref: '#/paths/~1twitter~1post_twitter/post'
  /apis/v2/twitter/spaces/detail:
    servers:
      - url: https://api.aisa.one
        description: AIsa root host (path key carries the /apis/v2 prefix)
    get:
      $ref: '#/paths/~1twitter~1spaces~1detail/get'
  /apis/v2/twitter/trends:
    servers:
      - url: https://api.aisa.one
        description: AIsa root host (path key carries the /apis/v2 prefix)
    get:
      $ref: '#/paths/~1twitter~1trends/get'
  /apis/v2/twitter/tweet/advanced_search:
    servers:
      - url: https://api.aisa.one
        description: AIsa root host (path key carries the /apis/v2 prefix)
    get:
      $ref: '#/paths/~1twitter~1tweet~1advanced_search/get'
  /apis/v2/twitter/tweet/quotes:
    servers:
      - url: https://api.aisa.one
        description: AIsa root host (path key carries the /apis/v2 prefix)
    get:
      $ref: '#/paths/~1twitter~1tweet~1quotes/get'
  /apis/v2/twitter/tweet/replies:
    servers:
      - url: https://api.aisa.one
        description: AIsa root host (path key carries the /apis/v2 prefix)
    get:
      $ref: '#/paths/~1twitter~1tweet~1replies/get'
  /apis/v2/twitter/tweet/retweeters:
    servers:
      - url: https://api.aisa.one
        description: AIsa root host (path key carries the /apis/v2 prefix)
    get:
      $ref: '#/paths/~1twitter~1tweet~1retweeters/get'
  /apis/v2/twitter/tweet/thread_context:
    servers:
      - url: https://api.aisa.one
        description: AIsa root host (path key carries the /apis/v2 prefix)
    get:
      $ref: '#/paths/~1twitter~1tweet~1thread_context/get'
  /apis/v2/twitter/tweets:
    servers:
      - url: https://api.aisa.one
        description: AIsa root host (path key carries the /apis/v2 prefix)
    get:
      $ref: '#/paths/~1twitter~1tweets/get'
  /apis/v2/twitter/unfollow_twitter:
    servers:
      - url: https://api.aisa.one
        description: AIsa root host (path key carries the /apis/v2 prefix)
    post:
      $ref: '#/paths/~1twitter~1unfollow_twitter/post'
  /apis/v2/twitter/unlike_twitter:
    servers:
      - url: https://api.aisa.one
        description: AIsa root host (path key carries the /apis/v2 prefix)
    post:
      $ref: '#/paths/~1twitter~1unlike_twitter/post'
  /apis/v2/twitter/user/batch_info_by_ids:
    servers:
      - url: https://api.aisa.one
        description: AIsa root host (path key carries the /apis/v2 prefix)
    get:
      $ref: '#/paths/~1twitter~1user~1batch_info_by_ids/get'
  /apis/v2/twitter/user/check_follow_relationship:
    servers:
      - url: https://api.aisa.one
        description: AIsa root host (path key carries the /apis/v2 prefix)
    get:
      $ref: '#/paths/~1twitter~1user~1check_follow_relationship/get'
  /apis/v2/twitter/user/followers:
    servers:
      - url: https://api.aisa.one
        description: AIsa root host (path key carries the /apis/v2 prefix)
    get:
      $ref: '#/paths/~1twitter~1user~1followers/get'
  /apis/v2/twitter/user/followings:
    servers:
      - url: https://api.aisa.one
        description: AIsa root host (path key carries the /apis/v2 prefix)
    get:
      $ref: '#/paths/~1twitter~1user~1followings/get'
  /apis/v2/twitter/user/info:
    servers:
      - url: https://api.aisa.one
        description: AIsa root host (path key carries the /apis/v2 prefix)
    get:
      $ref: '#/paths/~1twitter~1user~1info/get'
  /apis/v2/twitter/user/last_tweets:
    servers:
      - url: https://api.aisa.one
        description: AIsa root host (path key carries the /apis/v2 prefix)
    get:
      $ref: '#/paths/~1twitter~1user~1last_tweets/get'
  /apis/v2/twitter/user/mentions:
    servers:
      - url: https://api.aisa.one
        description: AIsa root host (path key carries the /apis/v2 prefix)
    get:
      $ref: '#/paths/~1twitter~1user~1mentions/get'
  /apis/v2/twitter/user/search:
    servers:
      - url: https://api.aisa.one
        description: AIsa root host (path key carries the /apis/v2 prefix)
    get:
      $ref: '#/paths/~1twitter~1user~1search/get'
  /apis/v2/twitter/user/verifiedFollowers:
    servers:
      - url: https://api.aisa.one
        description: AIsa root host (path key carries the /apis/v2 prefix)
    get:
      $ref: '#/paths/~1twitter~1user~1verifiedFollowers/get'
  /apis/v2/twitter/user_about:
    servers:
      - url: https://api.aisa.one
        description: AIsa root host (path key carries the /apis/v2 prefix)
    get:
      $ref: '#/paths/~1twitter~1user_about/get'
  /apis/v2/youtube/search:
    servers:
      - url: https://api.aisa.one
        description: AIsa root host (path key carries the /apis/v2 prefix)
    get:
      $ref: '#/paths/~1youtube~1search/get'
  /chat/completions:
    post:
      summary: Generate images via Chat Completions (wan2.7 family)
      description: >-
        Generate images with the Wan 2.7 image models. Request shape matches OpenAI Chat Completions with multimodal
        content; the response contains `choices[].message.content[]` where each item is `{type: "image", image: "<url or
        base64>"}`.


        **Important:** `messages[].content` must be an **array of typed parts**, not a plain string. Passing a string
        returns `400 invalid_parameter_error` with `Input should be a valid list: messages[*].content`.


        By default `wan2.7-image` returns **4 candidate images** (billed per image). Set `n` to request a different
        count.
      operationId: generateImageViaChat
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - model
                - messages
              properties:
                model:
                  type: string
                  enum:
                    - wan2.7-image
                    - wan2.7-image-pro
                  description: >-
                    Image-generation model. `wan2.7-image` ($0.030/image) for standard quality, `wan2.7-image-pro`
                    ($0.075/image) for higher fidelity.
                messages:
                  type: array
                  description: >-
                    Conversation messages. Image prompts go in the last user message's `content` array as `{type:
                    "text"}` parts.
                  items:
                    type: object
                    required:
                      - role
                      - content
                    properties:
                      role:
                        type: string
                        enum:
                          - system
                          - user
                          - assistant
                      content:
                        type: array
                        description: >-
                          Multimodal parts. For image generation, include at least one `{type: "text"}` part with the
                          prompt.
                        items:
                          type: object
                          required:
                            - type
                          properties:
                            type:
                              type: string
                              enum:
                                - text
                                - image_url
                            text:
                              type: string
                              description: 'Used when `type: "text"`.'
                            image_url:
                              type: object
                              description: 'Used when `type: "image_url"` (image-to-image use cases).'
                              properties:
                                url:
                                  type: string
                                  format: uri
                'n':
                  type: integer
                  minimum: 1
                  maximum: 4
                  default: 4
                  description: Number of images to generate. `wan2.7-image` returns 4 by default; pass `1` to save cost.
            examples:
              basic:
                summary: Single-image prompt (n=1)
                value:
                  model: wan2.7-image
                  messages:
                    - role: user
                      content:
                        - type: text
                          text: A cute red panda, ultra-detailed, cinematic lighting
                  'n': 1
              four_variants:
                summary: Default 4 candidates for selection
                value:
                  model: wan2.7-image
                  messages:
                    - role: user
                      content:
                        - type: text
                          text: A futuristic cyberpunk city, neon lights, rainy night, 8k
              pro:
                summary: Higher-fidelity pro model
                value:
                  model: wan2.7-image-pro
                  messages:
                    - role: user
                      content:
                        - type: text
                          text: Oil painting of a rolling hillside at sunset, artstation
                  'n': 1
              image_to_image:
                summary: Image-to-image (reference + prompt)
                value:
                  model: wan2.7-image-pro
                  messages:
                    - role: user
                      content:
                        - type: image_url
                          image_url:
                            url: https://example.com/reference.jpg
                        - type: text
                          text: Transform into an oil painting in the style of Van Gogh
                  'n': 1
      responses:
        '200':
          description: Images generated. Returned as Chat Completion with `message.content[]` image parts.
          content:
            application/json:
              schema:
                type: object
                properties:
                  id:
                    type: string
                    example: chatcmpl-fcc86dfd-9424-9523-b0bd-cdf07383bee2
                  object:
                    type: string
                    example: chat.completion
                  created:
                    type: integer
                    example: 1776495713
                  model:
                    type: string
                    example: wan2.7-image
                  choices:
                    type: array
                    description: One entry per generated image.
                    items:
                      type: object
                      properties:
                        index:
                          type: integer
                          nullable: true
                        finish_reason:
                          type: string
                          example: stop
                        message:
                          type: object
                          properties:
                            role:
                              type: string
                              example: assistant
                            content:
                              type: array
                              items:
                                type: object
                                required:
                                  - type
                                properties:
                                  type:
                                    type: string
                                    enum:
                                      - image
                                  image:
                                    type: string
                                    description: >-
                                      Short-lived URL to the generated image (or base64-encoded data, depending on your
                                      account configuration).
                  usage:
                    type: object
                    properties:
                      prompt_tokens:
                        type: integer
                      completion_tokens:
                        type: integer
                      total_tokens:
                        type: integer
              example:
                id: chatcmpl-fcc86dfd-9424-9523-b0bd-cdf07383bee2
                object: chat.completion
                created: 1776495713
                model: wan2.7-image
                choices:
                  - index: 0
                    finish_reason: stop
                    message:
                      role: assistant
                      content:
                        - type: image
                          image: https://cdn.aisa.one/images/wan2.7/20260418-abc.png
                usage:
                  prompt_tokens: 104
                  completion_tokens: 8
                  total_tokens: 112
        '400':
          description: >-
            Invalid request. Most common: `content` passed as a string instead of an array → `"Input should be a valid
            list: messages[*].content"`.
        '401':
          description: Missing or invalid AIsa API key.
        '429':
          description: Rate limit hit.
        '500':
          description: Internal error.
        '502':
          description: Upstream provider unreachable.
      tags:
        - Image Generation
      servers:
        - url: https://api.aisa.one/v1
  /coingecko/coins/categories:
    get:
      summary: Categories with Market Data
      description: All categories with market cap, volume, and top-3 coins.
      operationId: coingeckoCategoriesMarketData
      parameters:
        - name: order
          in: query
          schema:
            type: string
            enum:
              - market_cap_desc
              - market_cap_asc
              - name_desc
              - name_asc
              - market_cap_change_24h_desc
              - market_cap_change_24h_asc
      responses:
        '200':
          description: Array of categories with market data.
      tags:
        - Crypto Data
      x-x402:
        path: /apis/v2/coingecko/coins/categories
        source: https://github.com/AIsa-team/aisa-proxy
  /coingecko/coins/categories/list:
    get:
      summary: Categories List
      description: List all categories used by CoinGecko.
      operationId: coingeckoCategoriesList
      responses:
        '200':
          description: Array of categories.
          content:
            application/json:
              example:
                - category_id: layer-1
                  name: Layer 1 (L1)
                - category_id: meme-token
                  name: Meme
      tags:
        - Crypto Data
      x-x402:
        path: /apis/v2/coingecko/coins/categories/list
        source: https://github.com/AIsa-team/aisa-proxy
  /coingecko/coins/list:
    get:
      summary: Coins List (ID Map)
      description: List all coins with id, symbol, and name. Use to map symbols to CoinGecko IDs.
      operationId: coingeckoCoinsList
      parameters:
        - name: include_platform
          in: query
          description: Include platform + contract addresses.
          schema:
            type: boolean
            default: false
      responses:
        '200':
          description: Array of coins.
          content:
            application/json:
              example:
                - id: bitcoin
                  symbol: btc
                  name: Bitcoin
                - id: ethereum
                  symbol: eth
                  name: Ethereum
      tags:
        - Crypto Data
      x-x402:
        path: /apis/v2/coingecko/coins/list
        source: https://github.com/AIsa-team/aisa-proxy
  /coingecko/coins/markets:
    get:
      summary: Coins Markets
      description: 'List all coins with market data: price, market cap, volume, and other metrics.'
      operationId: coingeckoCoinsMarkets
      parameters:
        - $ref: '#/components/parameters/VsCurrency'
        - name: ids
          in: query
          description: Comma-separated CoinGecko coin IDs.
          schema:
            type: string
          example: bitcoin,ethereum
        - name: category
          in: query
          description: Filter by category (see `/coins/categories/list`).
          schema:
            type: string
        - name: order
          in: query
          schema:
            type: string
            enum:
              - market_cap_desc
              - market_cap_asc
              - volume_desc
              - volume_asc
              - id_asc
              - id_desc
            default: market_cap_desc
        - name: per_page
          in: query
          schema:
            type: integer
            default: 100
            minimum: 1
            maximum: 250
        - name: page
          in: query
          schema:
            type: integer
            default: 1
        - name: sparkline
          in: query
          schema:
            type: boolean
            default: false
        - name: price_change_percentage
          in: query
          description: 'Comma-separated windows: `1h,24h,7d,14d,30d,200d,1y`.'
          schema:
            type: string
      responses:
        '200':
          description: Array of coin market entries.
      tags:
        - Crypto Data
      x-x402:
        path: /apis/v2/coingecko/coins/markets
        source: https://github.com/AIsa-team/aisa-proxy
  /coingecko/coins/{id}:
    get:
      summary: Coin Data by ID
      description: Current data (price, markets, links, community, developer data) for a coin.
      operationId: coingeckoCoinById
      parameters:
        - $ref: '#/components/parameters/CoinId'
        - name: localization
          in: query
          schema:
            type: boolean
            default: true
        - name: tickers
          in: query
          schema:
            type: boolean
            default: true
        - name: market_data
          in: query
          schema:
            type: boolean
            default: true
        - name: community_data
          in: query
          schema:
            type: boolean
            default: true
        - name: developer_data
          in: query
          schema:
            type: boolean
            default: true
        - name: sparkline
          in: query
          schema:
            type: boolean
            default: false
      responses:
        '200':
          description: Coin object.
      tags:
        - Crypto Data
      x-x402:
        path: /apis/v2/coingecko/coins/{id}
        source: https://github.com/AIsa-team/aisa-proxy
  /coingecko/coins/{id}/contract/{contract_address}:
    get:
      tags:
        - Crypto Data
      summary: Coin Data by Token Address
      description: >-
        This endpoint allows you to **query all the metadata (image, websites, socials, description, contract address,
        etc.) and market data (price, ATH, exchange tickers, etc.) of a coin from the CoinGecko coin page based on an
        asset platform and a particular token contract address**
      operationId: coingeckoCoinByTokenAddress
      parameters:
        - name: id
          in: path
          required: true
          description: Asset platform ID (e.g., `ethereum`). Refers to the `/asset_platforms` list on CoinGecko.
          schema:
            type: string
            default: ethereum
          example: ethereum
        - name: contract_address
          in: path
          required: true
          description: The contract address of the token.
          schema:
            type: string
            default: '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48'
          example: '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48'
      responses:
        '200':
          description: Get current data for a coin.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CoinsContractAddress'
      x-x402:
        path: /apis/v2/coingecko/coins/{id}/contract/{contract_address}
        source: https://github.com/AIsa-team/aisa-proxy
  /coingecko/coins/{id}/contract/{contract_address}/market_chart:
    get:
      summary: Coin Historical Chart by Contract
      description: Historical market data for a token by contract address.
      operationId: coingeckoCoinMarketChartByContract
      parameters:
        - name: id
          in: path
          required: true
          description: Platform ID.
          schema:
            type: string
          example: ethereum
        - name: contract_address
          in: path
          required: true
          description: Contract address.
          schema:
            type: string
        - $ref: '#/components/parameters/VsCurrency'
        - $ref: '#/components/parameters/Days'
      responses:
        '200':
          description: Same shape as `/coins/{id}/market_chart`.
      tags:
        - Crypto Data
      x-x402:
        path: /apis/v2/coingecko/coins/{id}/contract/{contract_address}/market_chart
        source: https://github.com/AIsa-team/aisa-proxy
  /coingecko/coins/{id}/history:
    get:
      summary: Coin Historical Data
      description: Historical snapshot (price, market cap, volume) for a coin on a given date.
      operationId: coingeckoCoinHistory
      parameters:
        - $ref: '#/components/parameters/CoinId'
        - name: date
          in: query
          required: true
          description: Date in `dd-mm-yyyy` format.
          schema:
            type: string
          example: 30-12-2024
        - name: localization
          in: query
          schema:
            type: boolean
            default: true
      responses:
        '200':
          description: Snapshot object for the given date.
      tags:
        - Crypto Data
      x-x402:
        path: /apis/v2/coingecko/coins/{id}/history
        source: https://github.com/AIsa-team/aisa-proxy
  /coingecko/coins/{id}/market_chart:
    get:
      summary: Coin Historical Chart
      description: Historical market data (price, market cap, 24h volume) for a coin.
      operationId: coingeckoCoinMarketChart
      parameters:
        - $ref: '#/components/parameters/CoinId'
        - $ref: '#/components/parameters/VsCurrency'
        - $ref: '#/components/parameters/Days'
        - name: interval
          in: query
          description: '`daily` (default when days ≥ 90), else auto-granular.'
          schema:
            type: string
            enum:
              - daily
      responses:
        '200':
          description: Three time-series arrays.
          content:
            application/json:
              example:
                prices:
                  - - 1713398400000
                    - 67234.12
                  - - 1713402000000
                    - 67301.55
                market_caps:
                  - - 1713398400000
                    - 1321498765432
                total_volumes:
                  - - 1713398400000
                    - 25679876543
      tags:
        - Crypto Data
      x-x402:
        path: /apis/v2/coingecko/coins/{id}/market_chart
        source: https://github.com/AIsa-team/aisa-proxy
  /coingecko/coins/{id}/market_chart/range:
    get:
      summary: Coin Market Chart Range
      description: Historical market data within an explicit UNIX timestamp range.
      operationId: coingeckoCoinMarketChartRange
      parameters:
        - $ref: '#/components/parameters/CoinId'
        - $ref: '#/components/parameters/VsCurrency'
        - name: from
          in: query
          required: true
          description: Start UNIX timestamp (seconds).
          schema:
            type: integer
          example: 1713398400
        - name: to
          in: query
          required: true
          description: End UNIX timestamp (seconds).
          schema:
            type: integer
          example: 1713484800
      responses:
        '200':
          description: Same shape as `/coins/{id}/market_chart`.
      tags:
        - Crypto Data
      x-x402:
        path: /apis/v2/coingecko/coins/{id}/market_chart/range
        source: https://github.com/AIsa-team/aisa-proxy
  /coingecko/coins/{id}/ohlc:
    get:
      summary: Coin OHLC
      description: OHLC candles for a coin.
      operationId: coingeckoCoinOhlc
      parameters:
        - $ref: '#/components/parameters/CoinId'
        - $ref: '#/components/parameters/VsCurrency'
        - name: days
          in: query
          required: true
          description: '`1`, `7`, `14`, `30`, `90`, `180`, `365`.'
          schema:
            type: string
          example: '7'
      responses:
        '200':
          description: 'Array of OHLC rows: `[timestamp, open, high, low, close]`.'
          content:
            application/json:
              example:
                - - 1713398400000
                  - 67000
                  - 67500
                  - 66900
                  - 67234.12
      tags:
        - Crypto Data
      x-x402:
        path: /apis/v2/coingecko/coins/{id}/ohlc
        source: https://github.com/AIsa-team/aisa-proxy
  /coingecko/coins/{id}/tickers:
    get:
      summary: Coin Tickers
      description: Tickers (exchange-listed pairs) for a coin.
      operationId: coingeckoCoinTickers
      parameters:
        - $ref: '#/components/parameters/CoinId'
        - name: exchange_ids
          in: query
          description: Comma-separated exchange IDs.
          schema:
            type: string
        - name: page
          in: query
          schema:
            type: integer
            default: 1
        - name: order
          in: query
          schema:
            type: string
            enum:
              - trust_score_desc
              - trust_score_asc
              - volume_desc
        - name: depth
          in: query
          schema:
            type: boolean
            default: false
      responses:
        '200':
          description: Tickers array.
      tags:
        - Crypto Data
      x-x402:
        path: /apis/v2/coingecko/coins/{id}/tickers
        source: https://github.com/AIsa-team/aisa-proxy
  /coingecko/exchanges:
    get:
      summary: Exchanges List
      description: List all exchanges with current trading volume and metadata.
      operationId: coingeckoExchangesList
      parameters:
        - name: per_page
          in: query
          schema:
            type: integer
            default: 100
            maximum: 250
        - name: page
          in: query
          schema:
            type: integer
            default: 1
      responses:
        '200':
          description: Array of exchange objects.
      tags:
        - Crypto Data
      x-x402:
        path: /apis/v2/coingecko/exchanges
        source: https://github.com/AIsa-team/aisa-proxy
  /coingecko/exchanges/list:
    get:
      summary: Exchanges List (ID Map)
      description: List all exchange IDs and names — use to resolve exchange names to IDs.
      operationId: coingeckoExchangesListIdMap
      responses:
        '200':
          description: Array of `{id, name}`.
          content:
            application/json:
              example:
                - id: binance
                  name: Binance
                - id: gdax
                  name: Coinbase Exchange
      tags:
        - Crypto Data
      x-x402:
        path: /apis/v2/coingecko/exchanges/list
        source: https://github.com/AIsa-team/aisa-proxy
  /coingecko/exchanges/{id}:
    get:
      summary: Exchange Data by ID
      description: Detailed data for a single exchange (volume, tickers, trust score, etc.).
      operationId: coingeckoExchangeById
      parameters:
        - $ref: '#/components/parameters/ExchangeId'
      responses:
        '200':
          description: Exchange object.
      tags:
        - Crypto Data
      x-x402:
        path: /apis/v2/coingecko/exchanges/{id}
        source: https://github.com/AIsa-team/aisa-proxy
  /coingecko/exchanges/{id}/tickers:
    get:
      summary: Exchange Tickers
      description: Tickers traded on a given exchange.
      operationId: coingeckoExchangeTickers
      parameters:
        - $ref: '#/components/parameters/ExchangeId'
        - name: coin_ids
          in: query
          description: Filter by coin IDs (comma-separated).
          schema:
            type: string
        - name: page
          in: query
          schema:
            type: integer
            default: 1
        - name: depth
          in: query
          schema:
            type: boolean
            default: false
        - name: order
          in: query
          schema:
            type: string
            enum:
              - trust_score_desc
              - volume_desc
      responses:
        '200':
          description: Tickers array.
      tags:
        - Crypto Data
      x-x402:
        path: /apis/v2/coingecko/exchanges/{id}/tickers
        source: https://github.com/AIsa-team/aisa-proxy
  /coingecko/news:
    get:
      summary: Crypto News
      description: Latest crypto news articles aggregated by CoinGecko.
      operationId: coingeckoNews
      responses:
        '200':
          description: Array of news articles.
          content:
            application/json:
              example:
                data:
                  - title: Bitcoin hits new high
                    url: https://example.com/article
                    published_at: 1713398400
      tags:
        - Crypto Data
      x-x402:
        path: /apis/v2/coingecko/news
        source: https://github.com/AIsa-team/aisa-proxy
  /coingecko/search/trending:
    get:
      summary: Trending Search
      description: Top-7 trending coin searches on CoinGecko in the last 24 hours.
      operationId: coingeckoTrendingSearch
      responses:
        '200':
          description: Trending coins, nfts, and categories.
          content:
            application/json:
              example:
                coins:
                  - item:
                      id: bitcoin
                      name: Bitcoin
                      symbol: BTC
                      market_cap_rank: 1
      tags:
        - Crypto Data
      x-x402:
        path: /apis/v2/coingecko/search/trending
        source: https://github.com/AIsa-team/aisa-proxy
  /coingecko/simple/price:
    get:
      summary: Simple Price
      description: Current price for any cryptocurrencies in any supported currencies.
      operationId: coingeckoSimplePrice
      parameters:
        - name: ids
          in: query
          required: true
          description: Comma-separated coin IDs.
          schema:
            type: string
          example: bitcoin,ethereum
        - name: vs_currencies
          in: query
          required: true
          description: Comma-separated target currencies.
          schema:
            type: string
          example: usd,eur
        - name: include_market_cap
          in: query
          schema:
            type: boolean
            default: false
        - name: include_24hr_vol
          in: query
          schema:
            type: boolean
            default: false
        - name: include_24hr_change
          in: query
          schema:
            type: boolean
            default: false
        - name: include_last_updated_at
          in: query
          schema:
            type: boolean
            default: false
        - name: precision
          in: query
          schema:
            type: string
      responses:
        '200':
          description: Map keyed by coin id.
          content:
            application/json:
              example:
                bitcoin:
                  usd: 67234.12
                  eur: 62019.45
                ethereum:
                  usd: 3412
                  eur: 3147.8
      tags:
        - Crypto Data
      x-x402:
        path: /apis/v2/coingecko/simple/price
        source: https://github.com/AIsa-team/aisa-proxy
  /coingecko/simple/supported_vs_currencies:
    get:
      summary: Supported Currencies
      description: List of all supported fiat and crypto currencies for `vs_currency` parameters.
      operationId: coingeckoSupportedVsCurrencies
      responses:
        '200':
          description: Array of currency codes.
          content:
            application/json:
              example:
                - btc
                - eth
                - usd
                - eur
                - jpy
                - gbp
      tags:
        - Crypto Data
      x-x402:
        path: /apis/v2/coingecko/simple/supported_vs_currencies
        source: https://github.com/AIsa-team/aisa-proxy
  /coingecko/simple/token_price/{id}:
    get:
      summary: Coin Price by Token Address
      description: Current price of one or more tokens by contract address on a supported platform.
      operationId: coingeckoTokenPriceByAddress
      parameters:
        - name: id
          in: path
          required: true
          description: Platform ID (e.g., `ethereum`, `binance-smart-chain`, `polygon-pos`).
          schema:
            type: string
          example: ethereum
        - name: contract_addresses
          in: query
          required: true
          description: Comma-separated contract addresses.
          schema:
            type: string
          example: '0xdAC17F958D2ee523a2206206994597C13D831ec7'
        - name: vs_currencies
          in: query
          required: true
          description: Comma-separated target currencies.
          schema:
            type: string
          example: usd
        - name: include_market_cap
          in: query
          schema:
            type: boolean
        - name: include_24hr_vol
          in: query
          schema:
            type: boolean
        - name: include_24hr_change
          in: query
          schema:
            type: boolean
        - name: include_last_updated_at
          in: query
          schema:
            type: boolean
      responses:
        '200':
          description: Map keyed by contract address.
      tags:
        - Crypto Data
      x-x402:
        path: /apis/v2/coingecko/simple/token_price/{id}
        source: https://github.com/AIsa-team/aisa-proxy
  /financial/analyst-estimates:
    get:
      summary: Analyst Estimates
      description: ''
      operationId: getAnalystEstimates
      parameters:
        - name: ticker
          in: query
          description: The ticker to get analyst estimates for.
          required: true
          schema:
            type: string
        - name: period
          in: query
          description: >-
            The period to get analyst estimates for. Use the /analyst-estimates/periods endpoint to get a list of
            available periods. Defaults to 'annual'.
          required: false
          schema:
            type: string
            enum:
              - annual
              - quarterly
        - name: limit
          in: query
          description: The maximum number of estimates to return (max 3 for annual, 12 for quarterly).
          required: false
          schema:
            type: integer
      responses:
        '200':
          description: Analyst estimates response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AnalystEstimatesResponse'
        '400':
          $ref: '#/components/responses/BadRequestError'
        '401':
          $ref: '#/components/responses/UnauthorizedError'
        '402':
          $ref: '#/components/responses/PaymentRequiredError'
        '404':
          $ref: '#/components/responses/NotFoundError'
      tags:
        - Financial Data
      x-x402:
        path: /apis/v2/financial/analyst-estimates
        source: https://github.com/AIsa-team/aisa-proxy
  /financial/company/facts:
    get:
      tags:
        - Financial Data
      operationId: getCompanyFacts
      summary: Get company facts
      description: Get company facts for a ticker.
      parameters:
        - name: ticker
          in: query
          description: The ticker symbol.
          required: false
          schema:
            type: string
        - name: cik
          in: query
          description: The CIK of the company.
          required: false
          schema:
            type: string
      responses:
        '200':
          description: Company facts response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CompanyFactsResponse'
        '400':
          $ref: '#/components/responses/BadRequestError'
        '401':
          $ref: '#/components/responses/UnauthorizedError'
        '404':
          $ref: '#/components/responses/NotFoundError'
      x-x402:
        path: /apis/v2/financial/company/facts
        source: https://github.com/AIsa-team/aisa-proxy
  /financial/earnings:
    get:
      tags:
        - Financial Data
      operationId: getEarnings
      summary: Get earnings snapshot
      description: >-
        Get the most recent earnings snapshot for a ticker. Optional estimate/surprise and change fields are returned
        only when available.
      parameters:
        - name: ticker
          in: query
          description: The ticker symbol.
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Earnings response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EarningsResponse'
        '400':
          $ref: '#/components/responses/BadRequestError'
        '401':
          $ref: '#/components/responses/UnauthorizedError'
        '402':
          $ref: '#/components/responses/PaymentRequiredError'
        '404':
          $ref: '#/components/responses/NotFoundError'
      x-x402:
        path: /apis/v2/financial/earnings
        source: https://github.com/AIsa-team/aisa-proxy
  /financial/earnings/press-releases:
    get:
      tags:
        - Financial Data
      operationId: getEarningsPressReleases
      summary: Get earnings press releases
      description: Get earnings press releases for a ticker.
      parameters:
        - name: ticker
          in: query
          description: The ticker symbol.
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Earnings press releases response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PressReleasesResponse'
        '400':
          $ref: '#/components/responses/BadRequestError'
        '401':
          $ref: '#/components/responses/UnauthorizedError'
        '402':
          $ref: '#/components/responses/PaymentRequiredError'
        '404':
          $ref: '#/components/responses/NotFoundError'
      x-x402:
        path: /apis/v2/financial/earnings/press-releases
        source: https://github.com/AIsa-team/aisa-proxy
  /financial/filings:
    get:
      tags:
        - Financial Data
      operationId: getFilings
      summary: Get SEC filings
      description: Get SEC filings for a company.
      parameters:
        - name: cik
          in: query
          description: The Central Index Key (CIK) of the company.
          required: false
          schema:
            type: string
        - name: ticker
          in: query
          description: The ticker symbol.
          required: false
          schema:
            type: string
        - name: filing_type
          in: query
          description: >-
            Filter by one or more filing types. Repeat the query parameter to pass multiple values (e.g.
            filing_type=10-Q&filing_type=10-K).
          required: false
          schema:
            type: array
            items:
              type: string
              enum:
                - 10-K
                - 10-Q
                - 8-K
                - 20-F
                - 6-K
          style: form
          explode: true
        - name: limit
          in: query
          description: 'The maximum number of filings to return (default: 10).'
          required: false
          schema:
            type: integer
            minimum: 1
            default: 10
      responses:
        '200':
          description: SEC filings response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FilingsResponse'
        '400':
          $ref: '#/components/responses/BadRequestError'
        '401':
          $ref: '#/components/responses/UnauthorizedError'
        '402':
          $ref: '#/components/responses/PaymentRequiredError'
        '404':
          $ref: '#/components/responses/NotFoundError'
      x-x402:
        path: /apis/v2/financial/filings
        source: https://github.com/AIsa-team/aisa-proxy
  /financial/filings/items:
    get:
      tags:
        - Financial Data
      operationId: getFilingItems
      summary: Get SEC filing items
      description: Get the raw text Items from an SEC filing.
      parameters:
        - name: ticker
          in: query
          description: The ticker symbol.
          required: true
          schema:
            type: string
        - name: filing_type
          in: query
          description: The type of filing.
          required: true
          schema:
            type: string
            enum:
              - 10-K
              - 10-Q
              - 8-K
        - name: year
          in: query
          description: The year of the filing.
          required: true
          schema:
            type: integer
        - name: quarter
          in: query
          description: The quarter of the filing if 10-Q.
          required: false
          schema:
            type: integer
        - name: item
          in: query
          description: The item to get.
          required: false
          schema:
            type: string
            enum:
              - Item-1
              - Item-1A
              - Item-1B
              - Item-2
              - Item-3
              - Item-4
              - Item-5
              - Item-6
              - Item-7
              - Item-7A
              - Item-8
              - Item-9
              - Item-9A
              - Item-9B
              - Item-10
              - Item-11
              - Item-12
              - Item-13
              - Item-14
              - Item-15
              - Item-16
              - Item-1.01
              - Item-1.02
              - Item-1.03
              - Item-1.04
              - Item-2.01
              - Item-2.02
              - Item-2.03
              - Item-2.04
              - Item-2.05
              - Item-2.06
              - Item-3.01
              - Item-3.02
              - Item-3.03
              - Item-4.01
              - Item-4.02
              - Item-5.01
              - Item-5.02
              - Item-5.03
              - Item-5.04
              - Item-5.05
              - Item-5.06
              - Item-5.07
              - Item-5.08
              - Item-6.01
              - Item-6.02
              - Item-6.03
              - Item-6.04
              - Item-6.05
              - Item-7.01
              - Item-8.01
              - Item-9.01
        - name: accession_number
          in: query
          description: The accession number of the filing if 8-K.
          required: false
          schema:
            type: string
        - name: include_exhibits
          in: query
          description: >-
            Whether to include the raw text from linked exhibits. Only applicable for 8-K filings. When true, exhibit
            objects will include the 'text' field containing the full exhibit content.
          required: false
          schema:
            type: boolean
            default: false
      responses:
        '200':
          description: SEC filing items response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FilingItemsResponse'
        '400':
          $ref: '#/components/responses/BadRequestError'
        '401':
          $ref: '#/components/responses/UnauthorizedError'
        '402':
          $ref: '#/components/responses/PaymentRequiredError'
        '404':
          $ref: '#/components/responses/NotFoundError'
      x-x402:
        path: /apis/v2/financial/filings/items
        source: https://github.com/AIsa-team/aisa-proxy
  /financial/financial-metrics:
    get:
      tags:
        - Financial Data
      operationId: getFinancialMetrics
      summary: Get financial metrics
      description: >-
        Get financial metrics for a ticker, including valuation, profitability, efficiency, liquidity, leverage, growth,
        and per share metrics.
      parameters:
        - name: ticker
          in: query
          description: The ticker symbol of the company. Required if cik is not provided.
          required: false
          schema:
            type: string
        - name: cik
          in: query
          description: The Central Index Key (CIK) of the company. Can be used instead of ticker.
          required: false
          schema:
            type: string
        - name: period
          in: query
          description: The time period for the financial data.
          required: true
          schema:
            type: string
            enum:
              - annual
              - quarterly
              - ttm
        - name: limit
          in: query
          description: The maximum number of results to return.
          required: false
          schema:
            type: integer
        - $ref: '#/components/parameters/ReportPeriod'
        - $ref: '#/components/parameters/ReportPeriodGte'
        - $ref: '#/components/parameters/ReportPeriodLte'
        - $ref: '#/components/parameters/ReportPeriodGt'
        - $ref: '#/components/parameters/ReportPeriodLt'
      responses:
        '200':
          description: The historical financial metrics and ratios for a ticker
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FinancialMetricsResponse'
        '400':
          $ref: '#/components/responses/BadRequestError'
        '401':
          $ref: '#/components/responses/UnauthorizedError'
        '402':
          $ref: '#/components/responses/PaymentRequiredError'
        '404':
          $ref: '#/components/responses/NotFoundError'
      x-x402:
        path: /apis/v2/financial/financial-metrics
        source: https://github.com/AIsa-team/aisa-proxy
  /financial/financial-metrics/snapshot:
    get:
      tags:
        - Financial Data
      operationId: getFinancialMetricsSnapshot
      summary: Financial Metrics Snapshot (Real-Time)
      description: >-
        Get the real-time financial metrics snapshot for a stock, including valuation ratios, profitability, efficiency,
        liquidity, leverage, growth, and per share metrics.
      parameters:
        - name: ticker
          in: query
          description: The ticker symbol of the company.
          required: false
          schema:
            type: string
        - name: cik
          in: query
          description: The Central Index Key (CIK) of the company. Can be used instead of ticker.
          required: false
          schema:
            type: string
      responses:
        '200':
          description: Financial metrics snapshot response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FinancialMetricSnapshotResponse'
        '400':
          $ref: '#/components/responses/BadRequestError'
        '401':
          $ref: '#/components/responses/UnauthorizedError'
        '402':
          $ref: '#/components/responses/PaymentRequiredError'
        '404':
          $ref: '#/components/responses/NotFoundError'
      x-x402:
        path: /apis/v2/financial/financial-metrics/snapshot
        source: https://github.com/AIsa-team/aisa-proxy
  /financial/financials:
    get:
      tags:
        - Financial Data
      operationId: getAllFinancialStatements
      summary: Get all financial statements
      description: Get all financial statements for a ticker.
      parameters:
        - name: ticker
          in: query
          description: The ticker symbol. Required if cik is not provided.
          required: false
          schema:
            type: string
        - name: period
          in: query
          description: The time period of the financial statements.
          required: true
          schema:
            type: string
            enum:
              - annual
              - quarterly
              - ttm
        - name: limit
          in: query
          description: The maximum number of financial statements to return.
          schema:
            type: integer
            format: int32
        - name: cik
          in: query
          description: The Central Index Key (CIK) of the company.
          required: false
          schema:
            type: string
        - $ref: '#/components/parameters/ReportPeriod'
        - $ref: '#/components/parameters/ReportPeriodGte'
        - $ref: '#/components/parameters/ReportPeriodLte'
        - $ref: '#/components/parameters/ReportPeriodGt'
        - $ref: '#/components/parameters/ReportPeriodLt'
      responses:
        '200':
          description: Financial statements response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FinancialsResponse'
        '400':
          $ref: '#/components/responses/BadRequestError'
        '401':
          $ref: '#/components/responses/UnauthorizedError'
        '402':
          $ref: '#/components/responses/PaymentRequiredError'
        '404':
          $ref: '#/components/responses/NotFoundError'
      x-x402:
        path: /apis/v2/financial/financials
        source: https://github.com/AIsa-team/aisa-proxy
  /financial/financials/balance-sheets:
    get:
      tags:
        - Financial Data
      operationId: getBalanceSheets
      summary: Get balance sheets
      description: Get balance sheets for a ticker.
      parameters:
        - name: ticker
          in: query
          description: The ticker symbol. Required if cik is not provided.
          required: false
          schema:
            type: string
        - name: period
          in: query
          description: The time period of the balance sheets.
          required: true
          schema:
            type: string
            enum:
              - annual
              - quarterly
              - ttm
        - name: limit
          in: query
          description: The maximum number of balance sheets to return
          schema:
            type: integer
            format: int32
        - name: cik
          in: query
          description: The Central Index Key (CIK) of the company.
          required: false
          schema:
            type: string
        - $ref: '#/components/parameters/ReportPeriod'
        - $ref: '#/components/parameters/ReportPeriodGte'
        - $ref: '#/components/parameters/ReportPeriodLte'
        - $ref: '#/components/parameters/ReportPeriodGt'
        - $ref: '#/components/parameters/ReportPeriodLt'
      responses:
        '200':
          description: Balance sheets response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BalanceSheetResponse'
        '400':
          $ref: '#/components/responses/BadRequestError'
        '401':
          $ref: '#/components/responses/UnauthorizedError'
        '402':
          $ref: '#/components/responses/PaymentRequiredError'
        '404':
          $ref: '#/components/responses/NotFoundError'
      x-x402:
        path: /apis/v2/financial/financials/balance-sheets
        source: https://github.com/AIsa-team/aisa-proxy
  /financial/financials/cash-flow-statements:
    get:
      tags:
        - Financial Data
      operationId: getCashFlowStatements
      summary: Get cash flow statements
      description: Get cash flow statements for a ticker.
      parameters:
        - name: ticker
          in: query
          description: The ticker symbol. Required if cik is not provided.
          required: false
          schema:
            type: string
        - name: period
          in: query
          description: The time period of the cash flow statements.
          required: true
          schema:
            type: string
            enum:
              - annual
              - quarterly
              - ttm
        - name: limit
          in: query
          description: The maximum number of cash flow statements to return.
          schema:
            type: integer
            format: int32
        - name: cik
          in: query
          description: The Central Index Key (CIK) of the company.
          required: false
          schema:
            type: string
        - $ref: '#/components/parameters/ReportPeriod'
        - $ref: '#/components/parameters/ReportPeriodGte'
        - $ref: '#/components/parameters/ReportPeriodLte'
        - $ref: '#/components/parameters/ReportPeriodGt'
        - $ref: '#/components/parameters/ReportPeriodLt'
      responses:
        '200':
          description: Cash flow statements response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CashFlowStatementResponse'
        '400':
          $ref: '#/components/responses/BadRequestError'
        '401':
          $ref: '#/components/responses/UnauthorizedError'
        '402':
          $ref: '#/components/responses/PaymentRequiredError'
        '404':
          $ref: '#/components/responses/NotFoundError'
      x-x402:
        path: /apis/v2/financial/financials/cash-flow-statements
        source: https://github.com/AIsa-team/aisa-proxy
  /financial/financials/income-statements:
    get:
      tags:
        - Financial Data
      operationId: getIncomeStatements
      summary: Get income statements
      description: Get income statements for a ticker.
      parameters:
        - name: ticker
          in: query
          description: The ticker symbol. Required if cik is not provided.
          required: false
          schema:
            type: string
        - name: period
          in: query
          description: The time period of the income statements.
          required: true
          schema:
            type: string
            enum:
              - annual
              - quarterly
              - ttm
        - name: limit
          in: query
          description: The maximum number of income statements to return.
          schema:
            type: integer
            format: int32
        - name: cik
          in: query
          description: The Central Index Key (CIK) of the company.
          required: false
          schema:
            type: string
        - $ref: '#/components/parameters/ReportPeriod'
        - $ref: '#/components/parameters/ReportPeriodGte'
        - $ref: '#/components/parameters/ReportPeriodLte'
        - $ref: '#/components/parameters/ReportPeriodGt'
        - $ref: '#/components/parameters/ReportPeriodLt'
      responses:
        '200':
          description: Income statements response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IncomeStatementResponse'
        '400':
          $ref: '#/components/responses/BadRequestError'
        '401':
          $ref: '#/components/responses/UnauthorizedError'
        '402':
          $ref: '#/components/responses/PaymentRequiredError'
        '404':
          $ref: '#/components/responses/NotFoundError'
      x-x402:
        path: /apis/v2/financial/financials/income-statements
        source: https://github.com/AIsa-team/aisa-proxy
  /financial/financials/search/line-items:
    post:
      tags:
        - Financial Data
      operationId: searchLineItems
      summary: Search specific financial metrics
      description: >-
        Search for specific financial metrics across income statements, balance sheets, and cash flow statements for a
        list of tickers.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SearchLineItemsRequest'
      responses:
        '200':
          description: Successful search response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FinancialsSearchResponse'
        '400':
          $ref: '#/components/responses/BadRequestError'
        '401':
          $ref: '#/components/responses/UnauthorizedError'
        '402':
          $ref: '#/components/responses/PaymentRequiredError'
        '404':
          $ref: '#/components/responses/NotFoundError'
      x-x402:
        path: /apis/v2/financial/financials/search/line-items
        source: https://github.com/AIsa-team/aisa-proxy
  /financial/financials/search/screener:
    post:
      summary: Search financial statements
      description: >-
        Search for stocks by filtering across financial metrics from income statements, balance sheets, and cash flow
        statements.
      operationId: stockScreener
      tags:
        - Financial Data
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SearchFiltersRequest'
      responses:
        '200':
          description: Successful search response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FinancialsSearchResponse'
        '400':
          $ref: '#/components/responses/BadRequestError'
        '401':
          $ref: '#/components/responses/UnauthorizedError'
        '402':
          $ref: '#/components/responses/PaymentRequiredError'
        '404':
          $ref: '#/components/responses/NotFoundError'
      security:
        - bearerAuth: []
      x-x402:
        path: /apis/v2/financial/financials/search/screener
        source: https://github.com/AIsa-team/aisa-proxy
  /financial/financials/segmented-revenues:
    get:
      tags:
        - Financial Data
      operationId: getSegmentedRevenues
      summary: Get segmented revenue data (deprecated)
      description: Deprecated. Use /financials/income-statements/segments instead.
      parameters:
        - name: ticker
          in: query
          description: The ticker symbol. Required if cik is not provided.
          required: false
          schema:
            type: string
        - name: period
          in: query
          description: The date or time period to which the reported revenue data relates in ISO 8601 format (YYYY-MM-DD).
          required: true
          schema:
            type: string
            enum:
              - annual
              - quarterly
        - name: limit
          in: query
          description: The maximum number of revenue statements to return.
          schema:
            type: integer
            format: int32
        - name: cik
          in: query
          description: The Central Index Key (CIK) of the company.
          required: false
          schema:
            type: string
        - $ref: '#/components/parameters/ReportPeriod'
        - $ref: '#/components/parameters/ReportPeriodGte'
        - $ref: '#/components/parameters/ReportPeriodLte'
        - $ref: '#/components/parameters/ReportPeriodGt'
        - $ref: '#/components/parameters/ReportPeriodLt'
      responses:
        '200':
          description: Segmented revenue response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SegmentedRevenuesResponse'
        '400':
          $ref: '#/components/responses/BadRequestError'
        '401':
          $ref: '#/components/responses/UnauthorizedError'
        '402':
          $ref: '#/components/responses/PaymentRequiredError'
        '404':
          $ref: '#/components/responses/NotFoundError'
      deprecated: true
      x-x402:
        path: /apis/v2/financial/financials/segmented-revenues
        source: https://github.com/AIsa-team/aisa-proxy
  /financial/insider-trades:
    get:
      tags:
        - Financial Data
      operationId: getInsiderTrades
      summary: Get insider trades
      description: Get insider trades like buys and sells for a ticker by a company insider.
      parameters:
        - name: ticker
          in: query
          description: The ticker symbol of the company.
          required: true
          schema:
            type: string
        - name: limit
          in: query
          description: 'The maximum number of transactions to return (default: 10).'
          required: false
          schema:
            type: integer
            default: 10
        - name: name
          in: query
          description: >-
            Filter by insider name (e.g., 'Jen Hsun Huang'). Use the /insider-trades/names endpoint to get available
            names for a ticker.
          required: false
          schema:
            type: string
        - name: transaction_type
          in: query
          description: >-
            Filter by transaction type (e.g., 'Open market sale', 'Gift'). Use the /insider-trades/transaction-types
            endpoint to get available types.
          required: false
          schema:
            type: string
        - name: filing_date
          in: query
          description: Filter by exact filing date in YYYY-MM-DD format.
          required: false
          schema:
            type: string
            format: date
        - name: filing_date_gte
          in: query
          description: Filter by filing date greater than or equal to this date (YYYY-MM-DD).
          required: false
          schema:
            type: string
            format: date
        - name: filing_date_lte
          in: query
          description: Filter by filing date less than or equal to this date (YYYY-MM-DD).
          required: false
          schema:
            type: string
            format: date
        - name: filing_date_gt
          in: query
          description: Filter by filing date greater than this date (YYYY-MM-DD).
          required: false
          schema:
            type: string
            format: date
        - name: filing_date_lt
          in: query
          description: Filter by filing date less than this date (YYYY-MM-DD).
          required: false
          schema:
            type: string
            format: date
      responses:
        '200':
          description: Insider trades response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InsiderTradesResponse'
        '400':
          $ref: '#/components/responses/BadRequestError'
        '401':
          $ref: '#/components/responses/UnauthorizedError'
        '402':
          $ref: '#/components/responses/PaymentRequiredError'
        '404':
          $ref: '#/components/responses/NotFoundError'
      x-x402:
        path: /apis/v2/financial/insider-trades
        source: https://github.com/AIsa-team/aisa-proxy
  /financial/institutional-ownership:
    get:
      tags:
        - Financial Data
      operationId: getInstitutionalOwnership
      summary: Get the equity holdings of an investment manager
      description: Get institutional ownership by investor or ticker. Requires either investor or ticker parameter, but not both.
      parameters:
        - name: investor
          in: query
          description: The name of the investment manager
          schema:
            type: string
        - name: ticker
          in: query
          description: The ticker symbol, if queried by investor.
          schema:
            type: string
        - name: limit
          in: query
          description: 'The maximum number of holdings to return (default: 10).'
          required: false
          schema:
            type: integer
            default: 10
        - $ref: '#/components/parameters/ReportPeriod'
        - $ref: '#/components/parameters/ReportPeriodGte'
        - $ref: '#/components/parameters/ReportPeriodLte'
        - $ref: '#/components/parameters/ReportPeriodGt'
        - $ref: '#/components/parameters/ReportPeriodLt'
      responses:
        '200':
          description: Institutional ownership response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InstitutionalOwnershipResponse'
        '400':
          $ref: '#/components/responses/BadRequestError'
        '401':
          $ref: '#/components/responses/UnauthorizedError'
        '402':
          $ref: '#/components/responses/PaymentRequiredError'
        '404':
          $ref: '#/components/responses/NotFoundError'
      x-x402:
        path: /apis/v2/financial/institutional-ownership
        source: https://github.com/AIsa-team/aisa-proxy
  /financial/macro/interest-rates:
    get:
      summary: Interest Rates (Historical)
      description: Historical interest rates for all major central banks in the world.
      operationId: getInterestRatesHistorical
      parameters:
        - name: bank
          in: query
          description: >-
            The bank whose interest rates to return. Use the /macro/interest-rates/banks endpoint to get a list of
            available banks.
          required: true
          schema:
            type: string
        - name: start_date
          in: query
          description: The start date of the interest rates to return in YYYY-MM-DD format.
          required: false
          schema:
            type: string
        - name: end_date
          in: query
          description: The end date of the interest rates to return in YYYY-MM-DD format.
          required: false
          schema:
            type: string
      responses:
        '200':
          description: Interest rates response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InterestRatesResponse'
        '400':
          $ref: '#/components/responses/BadRequestError'
        '401':
          $ref: '#/components/responses/UnauthorizedError'
        '402':
          $ref: '#/components/responses/PaymentRequiredError'
        '404':
          $ref: '#/components/responses/NotFoundError'
      tags:
        - Financial Data
      x-x402:
        path: /apis/v2/financial/macro/interest-rates
        source: https://github.com/AIsa-team/aisa-proxy
  /financial/macro/interest-rates/snapshot:
    get:
      summary: Interest Rates (Real-Time)
      description: Get the current interest rates from all major central banks in the world.
      operationId: getInterestRatesSnapshot
      parameters:
        - name: bank
          in: query
          description: >-
            The central bank code (e.g., FED, ECB, BOJ). Use the /macro/interest-rates/banks endpoint to get a list of
            available banks.
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Interest rates snapshot response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InterestRatesResponse'
        '401':
          $ref: '#/components/responses/UnauthorizedError'
        '402':
          $ref: '#/components/responses/PaymentRequiredError'
        '404':
          $ref: '#/components/responses/NotFoundError'
      tags:
        - Financial Data
      x-x402:
        path: /apis/v2/financial/macro/interest-rates/snapshot
        source: https://github.com/AIsa-team/aisa-proxy
  /financial/news:
    get:
      tags:
        - Financial Data
      operationId: getNews
      summary: Get news articles
      description: >-
        Get recent news articles for a specific company or the broad market. Pass a ticker for company-specific news, or
        omit the ticker for general market news. Articles are sourced from RSS feeds of publishers like The Motley Fool,
        Investing.com, Reuters, and more.
      parameters:
        - name: ticker
          in: query
          description: The ticker symbol of the company. Omit for broad market news.
          required: false
          schema:
            type: string
        - name: limit
          in: query
          description: 'The maximum number of news articles to return (default: 5, max: 10).'
          required: false
          schema:
            type: integer
            default: 5
            maximum: 10
      responses:
        '200':
          description: News articles response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NewsResponse'
        '400':
          $ref: '#/components/responses/BadRequestError'
        '401':
          $ref: '#/components/responses/UnauthorizedError'
        '402':
          $ref: '#/components/responses/PaymentRequiredError'
        '404':
          $ref: '#/components/responses/NotFoundError'
      x-x402:
        path: /apis/v2/financial/news
        source: https://github.com/AIsa-team/aisa-proxy
  /financial/prices:
    get:
      tags:
        - Financial Data
      operationId: getPrices
      summary: Get historical stock price data
      description: Get end-of-day (EOD) historical price data for stocks.
      parameters:
        - name: ticker
          in: query
          description: The stock ticker symbol (e.g. AAPL, MSFT).
          required: true
          schema:
            type: string
        - name: interval
          in: query
          description: The time interval for the price data.
          required: true
          schema:
            type: string
            enum:
              - day
              - week
              - month
              - year
        - name: start_date
          in: query
          description: 'The start date for the price data (format: YYYY-MM-DD).'
          required: true
          schema:
            type: string
            format: date
        - name: end_date
          in: query
          description: 'The end date for the price data (format: YYYY-MM-DD).'
          required: true
          schema:
            type: string
            format: date
      responses:
        '200':
          description: Price data response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PricesResponse'
        '400':
          $ref: '#/components/responses/BadRequestError'
        '401':
          $ref: '#/components/responses/UnauthorizedError'
        '402':
          $ref: '#/components/responses/PaymentRequiredError'
        '404':
          $ref: '#/components/responses/NotFoundError'
      x-x402:
        path: /apis/v2/financial/prices
        source: https://github.com/AIsa-team/aisa-proxy
  /financial/prices/snapshot:
    get:
      tags:
        - Financial Data
      operationId: getPriceSnapshot
      summary: Price Snapshot (Real-Time)
      description: Get the real-time price snapshot for a stock, including the current price, day change, and day change percent.
      parameters:
        - name: ticker
          in: query
          description: The stock ticker symbol (e.g. AAPL, MSFT).
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Price snapshot response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PriceSnapshotResponse'
        '400':
          $ref: '#/components/responses/BadRequestError'
        '401':
          $ref: '#/components/responses/UnauthorizedError'
        '402':
          $ref: '#/components/responses/PaymentRequiredError'
        '404':
          $ref: '#/components/responses/NotFoundError'
      x-x402:
        path: /apis/v2/financial/prices/snapshot
        source: https://github.com/AIsa-team/aisa-proxy
  /images/generations:
    post:
      summary: Generate images (OpenAI-compatible)
      description: >-
        Generate images with the OpenAI-compatible images-generations endpoint. Currently routed to **ByteDance
        Seedream** — the Wan 2.7 family does not use this path.


        **Size constraint.** Seedream's upstream requires a minimum of **3,686,400 pixels** per image. Requests below
        that return `400 InvalidParameter: image size must be at least 3686400 pixels`. A 1024×1024 image (1,048,576 px)
        is rejected; 1920×1920 (3,686,400 px) and 2048×2048 (4,194,304 px) are accepted. Other aspect ratios are fine as
        long as `width × height ≥ 3,686,400`.
      operationId: createImageGeneration
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - model
                - prompt
              properties:
                model:
                  type: string
                  enum:
                    - seedream-4-5-251128
                  description: >-
                    Image generation model. Currently only `seedream-4-5-251128` is routed through this endpoint. Wan
                    2.7 models use `/v1/chat/completions`.
                prompt:
                  type: string
                  description: Text description of the image to generate.
                'n':
                  type: integer
                  minimum: 1
                  default: 1
                  description: Number of images to generate. Each image is billed separately at the per-image rate.
                size:
                  type: string
                  description: >-
                    Image dimensions as `WIDTHxHEIGHT`. Must satisfy `width × height ≥ 3,686,400`. Common valid values:
                    `1920x1920`, `2048x2048`, `2304x1600`, `2560x1920`.
                  example: 2048x2048
            examples:
              basic:
                summary: Single 2K image
                value:
                  model: seedream-4-5-251128
                  prompt: A cute red panda, ultra-detailed, cinematic lighting
                  'n': 1
                  size: 2048x2048
              minimum_size:
                summary: Exactly at minimum allowed size (1920×1920)
                value:
                  model: seedream-4-5-251128
                  prompt: A futuristic cyberpunk city, neon lights, rainy night, 8k
                  'n': 1
                  size: 1920x1920
              batch:
                summary: Four candidates for selection
                value:
                  model: seedream-4-5-251128
                  prompt: Oil painting of a rolling hillside at sunset
                  'n': 4
                  size: 2048x2048
      responses:
        '200':
          description: Images generated successfully.
          content:
            application/json:
              schema:
                type: object
                properties:
                  model:
                    type: string
                    example: seedream-4-5-251128
                  created:
                    type: integer
                    example: 1776495432
                  data:
                    type: array
                    description: One entry per generated image.
                    items:
                      type: object
                      properties:
                        url:
                          type: string
                          format: uri
                          description: Short-lived URL to the generated image. Download and persist it; the URL expires.
                        size:
                          type: string
                          description: Actual dimensions of the returned image.
                  usage:
                    type: object
                    properties:
                      generated_images:
                        type: integer
                      output_tokens:
                        type: integer
                      total_tokens:
                        type: integer
              example:
                model: seedream-4-5-251128
                created: 1776495432
                data:
                  - url: https://cdn.aisa.one/images/seedream/20260418-abc.png
                    size: 2048x2048
                usage:
                  generated_images: 1
                  output_tokens: 16384
                  total_tokens: 16384
        '400':
          description: >-
            Invalid request. Most common: `size` smaller than 3,686,400 pixels → `"image size must be at least 3686400
            pixels"`.
        '401':
          description: Missing or invalid AIsa API key.
        '404':
          description: >-
            The model isn't routed through this endpoint. Wan 2.7 models return `openai_error` here — use
            `/v1/chat/completions` for those.
        '429':
          description: Rate limit hit.
        '500':
          description: Internal error.
        '502':
          description: Upstream provider unreachable.
      tags:
        - Image Generation
      servers:
        - url: https://api.aisa.one/v1
  /kalshi/market-price/{market_ticker}:
    parameters:
      - name: market_ticker
        in: path
        required: true
        description: The market ticker for the Kalshi market
        schema:
          type: string
          example: KXNFLGAME-25AUG16ARIDEN-ARI
    get:
      summary: Get Kalshi Market Price
      description: >-
        Fetches the current market price for a Kalshi market by `market_ticker`. When `at_time` is not provided, returns
        the most real-time price available. When `at_time` is provided, returns the historical market price at that
        specific timestamp. Returns prices for both yes and no sides.


        **Example Request (with historical timestamp):**

        ```bash

        curl 'https://api.domeapi.io/v1/kalshi/market-price/KXNFLGAME-25AUG16ARIDEN-ARI?at_time=1762164600' \
          -H 'Authorization: Bearer YOUR_TOKEN'
        ```


        **Example Request (real-time price):**

        ```bash

        curl 'https://api.domeapi.io/v1/kalshi/market-price/KXNFLGAME-25AUG16ARIDEN-ARI' \
          -H 'Authorization: Bearer YOUR_TOKEN'
        ```
      operationId: get_kalshi-market-price
      parameters:
        - name: at_time
          in: query
          required: false
          description: >-
            Optional Unix timestamp (in seconds) to fetch a historical market price. If not provided, returns the most
            real-time price available.
          schema:
            type: integer
            example: 1762164600
      responses:
        '200':
          description: Market price response
          content:
            application/json:
              schema:
                type: object
                properties:
                  'yes':
                    type: object
                    description: Yes side price information
                    properties:
                      price:
                        type: number
                        description: The yes side price in dollars (between 0 and 1)
                        example: 0.75
                      at_time:
                        type: integer
                        description: The timestamp for which the price was fetched (Unix timestamp in seconds)
                        example: 1762164600
                    required:
                      - price
                      - at_time
                  'no':
                    type: object
                    description: No side price information
                    properties:
                      price:
                        type: number
                        description: The no side price in dollars (between 0 and 1)
                        example: 0.25
                      at_time:
                        type: integer
                        description: The timestamp for which the price was fetched (Unix timestamp in seconds)
                        example: 1762164600
                    required:
                      - price
                      - at_time
                required:
                  - 'yes'
                  - 'no'
              examples:
                with_at_time:
                  summary: Historical price lookup
                  description: Response when `at_time` parameter is provided
                  value:
                    'yes':
                      price: 0.75
                      at_time: 1762164600
                    'no':
                      price: 0.25
                      at_time: 1762164600
                real_time:
                  summary: Real-time price lookup
                  description: Response when `at_time` parameter is omitted (most recent price)
                  value:
                    'yes':
                      price: 0.82
                      at_time: 1757008834
                    'no':
                      price: 0.18
                      at_time: 1757008834
        '400':
          description: Bad Request - Invalid parameters
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Invalid at_time parameter
                  message:
                    type: string
                    example: at_time must be a valid Unix timestamp in seconds
        '404':
          description: Not Found - Market not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Not Found
                  message:
                    type: string
                    example: No price data found for market_ticker KXNFLGAME-25AUG16ARIDEN-ARI
      tags:
        - Prediction Markets
      x-x402:
        path: /apis/v2/kalshi/market-price/{market_ticker}
        source: https://github.com/AIsa-team/aisa-proxy
  /kalshi/markets:
    get:
      summary: Get Kalshi Markets
      description: >-
        Fetches Kalshi market data with optional filtering by market ticker, event ticker, status, and volume. Returns
        markets with details including pricing, volume, and status information.
      operationId: get_kalshi-markets
      parameters:
        - name: market_ticker
          in: query
          required: false
          description: Filter markets by market ticker(s). Can provide multiple values.
          schema:
            type: array
            items:
              type: string
            example:
              - KXMAYORNYCPARTY-25-D
          style: form
          explode: true
        - name: event_ticker
          in: query
          required: false
          description: Filter markets by event ticker(s). Can provide multiple values.
          schema:
            type: array
            items:
              type: string
            example:
              - KXMAYORNYCPARTY-25
          style: form
          explode: true
        - name: search
          in: query
          required: false
          description: >-
            Search markets by keywords in title and description. Must be URL encoded (e.g., 'bitcoin%20price' for
            'bitcoin price').
          schema:
            type: string
            example: bitcoin
        - name: status
          in: query
          required: false
          description: Filter markets by status (whether they're open or closed)
          schema:
            type: string
            enum:
              - open
              - closed
            example: open
        - name: min_volume
          in: query
          required: false
          description: Filter markets with total trading volume greater than or equal to this amount (in dollars)
          schema:
            type: number
            example: 10000000
        - name: limit
          in: query
          required: false
          description: 'Number of markets to return (1-100). Default: 10.'
          schema:
            type: integer
            minimum: 1
            maximum: 100
            default: 10
            example: 20
        - name: pagination_key
          in: query
          required: false
          description: Base64-encoded cursor for efficient pagination. Returned in the previous response's pagination object.
          schema:
            type: string
            example: >-
              eyJvcGVuX3RpbWUiOiIyMDI1LTAxLTE5VDEyOjAwOjAwLjAwMFoiLCJtYXJrZXRfdGlja2VyIjoiS1hNQVlPUk5ZQ1BBUlRZLTI1LUQiLCJ0b3RhbCI6MTUwfQ==
      responses:
        '200':
          description: Kalshi markets response with pagination
          content:
            application/json:
              schema:
                type: object
                properties:
                  markets:
                    type: array
                    items:
                      type: object
                      properties:
                        event_ticker:
                          type: string
                          description: The Kalshi event ticker
                          example: KXMAYORNYCPARTY-25
                        market_ticker:
                          type: string
                          description: The Kalshi market ticker
                          example: KXMAYORNYCPARTY-25-D
                        title:
                          type: string
                          description: Market question/title
                          example: Will a representative of the Democratic party win the NYC Mayor race in 2025?
                        start_time:
                          type: integer
                          description: Unix timestamp in seconds when the market opens
                          example: 1731150000
                        end_time:
                          type: integer
                          description: Unix timestamp in seconds when the market is scheduled to end
                          example: 1793775600
                        close_time:
                          type: integer
                          nullable: true
                          description: >-
                            Unix timestamp in seconds when the market actually resolves/closes (may be before end_time
                            if market finishes early, null if not yet closed)
                          example: 1793775600
                        status:
                          type: string
                          description: Market status
                          enum:
                            - open
                            - closed
                          example: open
                        last_price:
                          type: number
                          description: Last traded price in cents
                          example: 89
                        volume:
                          type: number
                          description: Total trading volume in dollars
                          example: 18261146
                        volume_24h:
                          type: number
                          description: 24-hour trading volume in dollars
                          example: 931138
                        result:
                          type: string
                          nullable: true
                          description: Market result (null if unresolved)
                          example: null
                  pagination:
                    type: object
                    properties:
                      limit:
                        type: integer
                        example: 20
                      total:
                        type: integer
                        description: Total number of markets matching the filters
                        example: 150
                      has_more:
                        type: boolean
                        description: Whether there are more markets available
                        example: true
                      pagination_key:
                        type: string
                        description: Base64-encoded cursor for the next page. Only present when there are more results.
                        example: >-
                          eyJvcGVuX3RpbWUiOiIyMDI1LTAxLTE5VDEyOjAwOjAwLjAwMFoiLCJtYXJrZXRfdGlja2VyIjoiS1hNQVlPUk5ZQ1BBUlRZLTI1LUQiLCJ0b3RhbCI6MTUwfQ==
        '400':
          description: Bad Request - Invalid parameters or validation errors
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Invalid limit parameter
                  message:
                    type: string
                    example: limit must be a number between 1 and 100
      tags:
        - Prediction Markets
      x-x402:
        path: /apis/v2/kalshi/markets
        source: https://github.com/AIsa-team/aisa-proxy
  /kalshi/orderbooks:
    get:
      summary: Get Kalshi Orderbook History
      description: >-
        Fetches historical orderbook snapshots for a specific Kalshi market (ticker) over a specified time range. If no
        start_time and end_time are provided, returns the latest orderbook snapshot for the market. Returns snapshots of
        the order book including yes/no bids and asks with prices in both cents and dollars. All timestamps are in
        milliseconds. Orderbook data has history starting from October 29th, 2025. Note: When fetching the latest
        orderbook (without start/end times), the limit parameter is ignored.
      operationId: get_kalshi-orderbooks
      parameters:
        - name: ticker
          in: query
          required: true
          description: The Kalshi market ticker
          schema:
            type: string
            example: KXNFLGAME-25AUG16ARIDEN-ARI
        - name: start_time
          in: query
          required: false
          description: >-
            Start time in Unix timestamp (milliseconds). Optional - if not provided along with end_time, returns the
            latest orderbook snapshot.
          schema:
            type: integer
            example: 1760470000000
        - name: end_time
          in: query
          required: false
          description: >-
            End time in Unix timestamp (milliseconds). Optional - if not provided along with start_time, returns the
            latest orderbook snapshot.
          schema:
            type: integer
            example: 1760480000000
        - name: limit
          in: query
          required: false
          description: >-
            Maximum number of snapshots to return (default: 100, max: 200). Ignored when fetching the latest orderbook
            without start_time and end_time.
          schema:
            type: integer
            default: 100
            maximum: 200
            example: 100
        - name: paginationKey
          in: query
          required: false
          description: Base64-encoded cursor for efficient pagination. Returned in the previous response's pagination object.
          schema:
            type: string
            example: eyJ0aW1lc3RhbXAiOjE3NjA0NzAwMDAwMDAsInRpY2tlciI6IktYTkZMR0FNRS0yNUFVRzE2QVJJREVOLUFSSSIsInRvdGFsIjoxMDB9
      responses:
        '200':
          description: Kalshi orderbook history response
          content:
            application/json:
              schema:
                type: object
                properties:
                  snapshots:
                    type: array
                    description: Array of orderbook snapshots at different points in time
                    items:
                      type: object
                      properties:
                        orderbook:
                          type: object
                          properties:
                            'yes':
                              type: array
                              description: Yes side orders with prices in cents
                              items:
                                type: array
                                description: '[price_in_cents, contract_count]'
                                items:
                                  type: number
                                minItems: 2
                                maxItems: 2
                                example:
                                  - 75
                                  - 100
                            'no':
                              type: array
                              description: No side orders with prices in cents
                              items:
                                type: array
                                description: '[price_in_cents, contract_count]'
                                items:
                                  type: number
                                minItems: 2
                                maxItems: 2
                                example:
                                  - 25
                                  - 100
                            yes_dollars:
                              type: array
                              description: Yes side orders with prices in dollars
                              items:
                                type: array
                                description: '[price_as_dollar_string, contract_count]'
                                minItems: 2
                                maxItems: 2
                                items:
                                  oneOf:
                                    - type: string
                                    - type: number
                                example:
                                  - '0.75'
                                  - 100
                            no_dollars:
                              type: array
                              description: No side orders with prices in dollars
                              items:
                                type: array
                                description: '[price_as_dollar_string, contract_count]'
                                minItems: 2
                                maxItems: 2
                                items:
                                  oneOf:
                                    - type: string
                                    - type: number
                                example:
                                  - '0.25'
                                  - 100
                        timestamp:
                          type: integer
                          description: Timestamp of the snapshot in milliseconds
                          example: 1760471849407
                        ticker:
                          type: string
                          description: The Kalshi market ticker
                          example: KXNFLGAME-25AUG16ARIDEN-ARI
                  pagination:
                    type: object
                    properties:
                      limit:
                        type: integer
                        example: 100
                      count:
                        type: integer
                        description: Number of snapshots returned
                        example: 4
                      paginationKey:
                        type: string
                        description: >-
                          Base64-encoded cursor for fetching the next page of results. Only present when has_more is
                          true.
                        example: >-
                          eyJ0aW1lc3RhbXAiOjE3NjA0NzAwMDAwMDAsInRpY2tlciI6IktYTkZMR0FNRS0yNUFVRzE2QVJJREVOLUFSSSIsInRvdGFsIjoxMDB9
                      has_more:
                        type: boolean
                        description: Whether there are more snapshots available
                        example: false
        '400':
          description: Bad Request - Invalid parameters
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Invalid parameters
                  message:
                    type: string
                    example: ticker, start_time, and end_time are required
      tags:
        - Prediction Markets
      x-x402:
        path: /apis/v2/kalshi/orderbooks
        source: https://github.com/AIsa-team/aisa-proxy
  /kalshi/trades:
    get:
      summary: Get Kalshi Trades
      description: >-
        Fetches historical trade data for Kalshi markets with optional filtering by ticker and time range. Returns
        executed trades with pricing, volume, and taker side information. All timestamps are in seconds.
      operationId: get_kalshi-trades
      parameters:
        - name: ticker
          in: query
          required: false
          description: The Kalshi market ticker to filter trades
          schema:
            type: string
            example: KXNFLGAME-25NOV09PITLAC-PIT
        - name: start_time
          in: query
          required: false
          description: Start time in Unix timestamp (seconds)
          schema:
            type: integer
            example: 1762716000
        - name: end_time
          in: query
          required: false
          description: End time in Unix timestamp (seconds)
          schema:
            type: integer
            example: 1762720600
        - name: limit
          in: query
          required: false
          description: 'Maximum number of trades to return (default: 100)'
          schema:
            type: integer
            default: 100
            example: 10
        - name: pagination_key
          in: query
          required: false
          description: Base64-encoded cursor for efficient pagination. Returned in the previous response's pagination object.
          schema:
            type: string
            example: >-
              eyJjcmVhdGVkX3RpbWUiOiIyMDI1LTAxLTE5VDEyOjAwOjAwLjAwMFoiLCJ0cmFkZV9pZCI6IjEyMzQ1Njc4OTAiLCJ0b3RhbCI6NTAwMDB9
      responses:
        '200':
          description: Kalshi trades response with pagination
          content:
            application/json:
              schema:
                type: object
                properties:
                  trades:
                    type: array
                    description: Array of executed trades
                    items:
                      type: object
                      properties:
                        trade_id:
                          type: string
                          description: Unique identifier for the trade
                          example: 587f9eb0-1ae1-7b53-9536-fcf3fc503630
                        market_ticker:
                          type: string
                          description: The Kalshi market ticker
                          example: KXNFLGAME-25NOV09PITLAC-PIT
                        count:
                          type: integer
                          description: Number of contracts traded
                          example: 93
                        yes_price:
                          type: integer
                          description: Yes side price in cents
                          example: 1
                        no_price:
                          type: integer
                          description: No side price in cents
                          example: 99
                        yes_price_dollars:
                          type: number
                          description: Yes side price in dollars
                          example: 0.01
                        no_price_dollars:
                          type: number
                          description: No side price in dollars
                          example: 0.99
                        taker_side:
                          type: string
                          description: Which side was the taker (yes or no)
                          enum:
                            - 'yes'
                            - 'no'
                          example: 'yes'
                        created_time:
                          type: integer
                          description: Timestamp of the trade in seconds (Unix timestamp)
                          example: 1762718746
                  pagination:
                    type: object
                    properties:
                      limit:
                        type: integer
                        example: 50
                      total:
                        type: integer
                        description: Total number of trades matching the filters
                        example: 43154
                      has_more:
                        type: boolean
                        description: Whether there are more trades available
                        example: true
                      pagination_key:
                        type: string
                        description: Base64-encoded cursor for the next page. Only present when there are more results.
                        example: >-
                          eyJjcmVhdGVkX3RpbWUiOiIyMDI1LTAxLTE5VDEyOjAwOjAwLjAwMFoiLCJ0cmFkZV9pZCI6IjEyMzQ1Njc4OTAiLCJ0b3RhbCI6NTAwMDB9
        '400':
          description: Bad Request - Invalid parameters
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Invalid parameters
                  message:
                    type: string
                    example: Invalid time range or parameters
      tags:
        - Prediction Markets
      x-x402:
        path: /apis/v2/kalshi/trades
        source: https://github.com/AIsa-team/aisa-proxy
  /matching-markets/sports:
    get:
      summary: Get Matching Markets for Sports
      description: >-
        Find equivalent markets across different prediction market platforms (Polymarket, Kalshi, etc.) for sports
        events. Provide either one or more Polymarket market slugs or Kalshi event tickers.
      operationId: get_matching-markets-sports
      parameters:
        - name: polymarket_market_slug
          in: query
          required: false
          description: >-
            The Polymarket market slug(s) to find matching markets for. To get multiple markets at once, provide the
            query param multiple times with different slugs. Can not be combined with kalshi_event_ticker.
          schema:
            type: array
            items:
              type: string
            example:
              - nfl-ari-den-2025-08-16
              - nfl-dal-phi-2025-09-04
          style: form
          explode: true
        - name: kalshi_event_ticker
          in: query
          required: false
          description: >-
            The Kalshi event ticker(s) to find matching markets for. To get multiple markets at once, provide the query
            param multiple times with different tickers. Can not be combined with polymarket_market_slug.
          schema:
            type: array
            items:
              type: string
            example:
              - KXNFLGAME-25AUG16ARIDEN
              - KXNFLGAME-25SEP04DALPHI
          style: form
          explode: true
      responses:
        '200':
          description: Matching markets response
          content:
            application/json:
              schema:
                type: object
                properties:
                  markets:
                    type: object
                    additionalProperties:
                      type: array
                      items:
                        oneOf:
                          - type: object
                            description: Kalshi market
                            properties:
                              platform:
                                type: string
                                enum:
                                  - KALSHI
                                example: KALSHI
                              event_ticker:
                                type: string
                                example: KXNFLGAME-25AUG16ARIDEN
                              market_tickers:
                                type: array
                                items:
                                  type: string
                                example:
                                  - KXNFLGAME-25AUG16ARIDEN-ARI
                                  - KXNFLGAME-25AUG16ARIDEN-DEN
                            required:
                              - platform
                              - event_ticker
                              - market_tickers
                          - type: object
                            description: Polymarket market
                            properties:
                              platform:
                                type: string
                                enum:
                                  - POLYMARKET
                                example: POLYMARKET
                              market_slug:
                                type: string
                                example: nfl-ari-den-2025-08-16
                              token_ids:
                                type: array
                                items:
                                  type: string
                                example:
                                  - '34541522652444763571858406546623861155130750437169507355470933750634189084033'
                                  - '104612081187206848956763018128517335758189185749897027211060738913329108425255'
                            required:
                              - platform
                              - market_slug
                              - token_ids
                    example:
                      nfl-ari-den-2025-08-16:
                        - platform: KALSHI
                          event_ticker: KXNFLGAME-25AUG16ARIDEN
                          market_tickers:
                            - KXNFLGAME-25AUG16ARIDEN-ARI
                            - KXNFLGAME-25AUG16ARIDEN-DEN
                        - platform: POLYMARKET
                          market_slug: nfl-ari-den-2025-08-16
                          token_ids:
                            - '34541522652444763571858406546623861155130750437169507355470933750634189084033'
                            - '104612081187206848956763018128517335758189185749897027211060738913329108425255'
                      nfl-dal-phi-2025-09-04:
                        - platform: KALSHI
                          event_ticker: KXNFLGAME-25SEP04DALPHI
                          market_tickers:
                            - KXNFLGAME-25SEP04DALPHI-DAL
                            - KXNFLGAME-25SEP04DALPHI-PHI
        '400':
          description: Bad Request - Missing or invalid parameters
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Missing required parameter
                  message:
                    type: string
                    example: At least one polymarket_market_slug or kalshi_event_ticker is required
        '404':
          description: Not Found - No matching markets found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Not found
                  message:
                    type: string
                    example: No matching markets found for the provided parameters
      tags:
        - Prediction Markets
      x-x402:
        path: /apis/v2/matching-markets/sports
        source: https://github.com/AIsa-team/aisa-proxy
  /matching-markets/sports/{sport}:
    parameters:
      - name: sport
        in: path
        required: true
        description: |-
          The sport to find matching markets for.

          Sport abbreviations:
          - nfl = Football
          - mlb = Baseball
          - cfb = College Football
          - nba = Basketball
          - nhl = Hockey
          - cbb = College Basketball
          - pga = Golf
          - tennis = Tennis
        schema:
          type: string
          enum:
            - nfl
            - mlb
            - cfb
            - nba
            - nhl
            - cbb
            - pga
            - tennis
          example: nfl
    get:
      summary: Get Matching Markets for Sports by Sport and Date
      description: >-
        Find equivalent markets across different prediction market platforms (Polymarket, Kalshi, etc.) for sports
        events by sport and date.
      operationId: get_matching-markets-sports-by-sport
      parameters:
        - name: date
          in: query
          required: true
          description: The date to find matching markets for in YYYY-MM-DD format
          schema:
            type: string
            pattern: ^\d{4}-\d{2}-\d{2}$
            example: '2025-08-16'
      responses:
        '200':
          description: Matching markets response
          content:
            application/json:
              schema:
                type: object
                properties:
                  markets:
                    type: object
                    additionalProperties:
                      type: array
                      items:
                        oneOf:
                          - type: object
                            description: Kalshi market
                            properties:
                              platform:
                                type: string
                                enum:
                                  - KALSHI
                                example: KALSHI
                              event_ticker:
                                type: string
                                example: KXNFLGAME-25AUG16ARIDEN
                              market_tickers:
                                type: array
                                items:
                                  type: string
                                example:
                                  - KXNFLGAME-25AUG16ARIDEN-ARI
                                  - KXNFLGAME-25AUG16ARIDEN-DEN
                            required:
                              - platform
                              - event_ticker
                              - market_tickers
                          - type: object
                            description: Polymarket market
                            properties:
                              platform:
                                type: string
                                enum:
                                  - POLYMARKET
                                example: POLYMARKET
                              market_slug:
                                type: string
                                example: nfl-ari-den-2025-08-16
                              token_ids:
                                type: array
                                items:
                                  type: string
                                example:
                                  - '34541522652444763571858406546623861155130750437169507355470933750634189084033'
                                  - '104612081187206848956763018128517335758189185749897027211060738913329108425255'
                            required:
                              - platform
                              - market_slug
                              - token_ids
                    example:
                      nfl-ari-den-2025-08-16:
                        - platform: KALSHI
                          event_ticker: KXNFLGAME-25AUG16ARIDEN
                          market_tickers:
                            - KXNFLGAME-25AUG16ARIDEN-ARI
                            - KXNFLGAME-25AUG16ARIDEN-DEN
                        - platform: POLYMARKET
                          market_slug: nfl-ari-den-2025-08-16
                          token_ids:
                            - '34541522652444763571858406546623861155130750437169507355470933750634189084033'
                            - '104612081187206848956763018128517335758189185749897027211060738913329108425255'
                  sport:
                    type: string
                    example: nfl
                  date:
                    type: string
                    example: '2025-08-16'
        '400':
          description: Bad Request - Missing or invalid parameters
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Missing required parameter
                  message:
                    type: string
                    example: date parameter is required
      tags:
        - Prediction Markets
      x-x402:
        path: /apis/v2/matching-markets/sports/{sport}
        source: https://github.com/AIsa-team/aisa-proxy
  /messages:
    post:
      summary: Create a message
      description: >-
        Send a structured conversation to a Claude model and receive a response. Compatible with the Anthropic Messages
        API.
      operationId: createMessage
      security:
        - BearerAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - model
                - max_tokens
                - messages
              properties:
                model:
                  type: string
                  description: 'Claude model identifier. Examples: claude-opus-4-7, claude-sonnet-4-6, claude-haiku-4-5-20251001.'
                  example: claude-sonnet-4-6
                max_tokens:
                  type: integer
                  description: Maximum number of tokens to generate before stopping.
                  example: 1024
                messages:
                  type: array
                  description: Conversation turns.
                  items:
                    type: object
                    required:
                      - role
                      - content
                    properties:
                      role:
                        type: string
                        enum:
                          - user
                          - assistant
                      content:
                        description: String or array of content blocks.
                        oneOf:
                          - type: string
                          - type: array
                            items:
                              type: object
                  example:
                    - role: user
                      content: Hello, Claude
                system:
                  description: System prompt. String or array of text blocks.
                  oneOf:
                    - type: string
                    - type: array
                      items:
                        type: object
                temperature:
                  type: number
                  format: float
                  minimum: 0
                  maximum: 1
                  default: 1
                  description: Randomness. 0 = deterministic, 1 = creative.
                top_p:
                  type: number
                  format: float
                  description: Nucleus sampling. Use instead of temperature.
                top_k:
                  type: integer
                  description: Only sample from the top K options for each token.
                stop_sequences:
                  type: array
                  items:
                    type: string
                  description: Custom sequences that stop generation.
                stream:
                  type: boolean
                  default: false
                  description: Enable SSE streaming.
                tools:
                  type: array
                  description: Tools the model may use.
                  items:
                    type: object
                    required:
                      - name
                      - input_schema
                    properties:
                      name:
                        type: string
                      description:
                        type: string
                      input_schema:
                        type: object
                      type:
                        type: string
                        example: custom
                tool_choice:
                  type: object
                  description: How the model uses tools.
                  properties:
                    type:
                      type: string
                      enum:
                        - auto
                        - any
                        - tool
                        - none
                    name:
                      type: string
                      description: Required when type is tool.
                    disable_parallel_tool_use:
                      type: boolean
                      default: false
                thinking:
                  type: object
                  description: Enable extended thinking for complex reasoning.
                  properties:
                    type:
                      type: string
                      enum:
                        - enabled
                    budget_tokens:
                      type: integer
                      example: 10000
                    display:
                      type: string
                      enum:
                        - summarized
                        - omitted
                metadata:
                  type: object
                  properties:
                    user_id:
                      type: string
                      description: External user ID (no PII).
                service_tier:
                  type: string
                  enum:
                    - auto
                    - standard_only
                  default: auto
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: object
                properties:
                  id:
                    type: string
                    example: msg_024e7cf42f5d47cfa6982b5ff8b55642
                  type:
                    type: string
                    example: message
                  role:
                    type: string
                    example: assistant
                  content:
                    type: array
                    description: Response content blocks (text, tool_use, thinking, etc.).
                    items:
                      type: object
                  model:
                    type: string
                    example: claude-sonnet-4-6
                  stop_reason:
                    type: string
                    enum:
                      - end_turn
                      - stop_sequence
                      - max_tokens
                      - tool_use
                  stop_sequence:
                    type: string
                    nullable: true
                  usage:
                    type: object
                    properties:
                      input_tokens:
                        type: integer
                      output_tokens:
                        type: integer
                      cache_creation_input_tokens:
                        type: integer
                      cache_read_input_tokens:
                        type: integer
        '400':
          description: Invalid request parameters
        '401':
          description: Missing or invalid API key
        '429':
          description: Rate limit exceeded
        '500':
          description: Internal server error
      tags:
        - AI Models
      servers:
        - url: https://api.aisa.one/v1
  /models/{model}:generateContent:
    post:
      summary: Generate content using the specified Gemini model
      operationId: generateContent
      parameters:
        - name: model
          in: path
          required: true
          schema:
            type: string
          description: 'The name of the model to use, format: models/{model}'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GenerateContentRequest'
      responses:
        '200':
          description: Successful content generation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenerateContentResponse'
        default:
          description: Error response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      security:
        - BearerAuth: []
      tags:
        - AI Models
      servers:
        - url: https://api.aisa.one/v1
  /oapi/my/info: {}
  /perplexity/sonar:
    post:
      tags:
        - AI Models
      operationId: post_perplexity-sonar
      summary: Sonar — lightweight search + answer
      description: >-
        Cost-effective model for quick web searches with AI-generated answers. Best for simple factual queries. Uses
        model `sonar`.


        **Pricing:** $0.012 per request
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ChatCompletionRequest'
            example:
              model: sonar
              messages:
                - role: user
                  content: What are the latest developments in quantum computing?
      responses:
        '200':
          description: Successful response with AI answer and citations
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ChatCompletionResponse'
      x-x402:
        path: /apis/v2/perplexity/sonar
        source: https://github.com/AIsa-team/aisa-proxy
  /perplexity/sonar-deep-research:
    post:
      tags:
        - AI Models
      operationId: post_perplexity-sonar-deep-research
      summary: Sonar Deep Research — exhaustive research & comprehensive reports
      description: >-
        Expert-level research model that conducts exhaustive multi-step web searches and generates comprehensive
        reports. Best for deep-dive research tasks. Uses model `sonar-deep-research`.


        **Pricing:** $0.012 per request


        > **Note:** Deep research requests may take significantly longer to complete due to the exhaustive search
        process.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ChatCompletionRequest'
            example:
              model: sonar-deep-research
              messages:
                - role: user
                  content: Write a comprehensive analysis of the global semiconductor supply chain risks in 2026
      responses:
        '200':
          description: Successful response with AI answer and citations
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ChatCompletionResponse'
      x-x402:
        path: /apis/v2/perplexity/sonar-deep-research
        source: https://github.com/AIsa-team/aisa-proxy
  /perplexity/sonar-pro:
    post:
      tags:
        - AI Models
      operationId: post_perplexity-sonar-pro
      summary: Sonar Pro — advanced search for complex queries
      description: >-
        Advanced search model supporting complex queries and multi-step follow-ups. Better for nuanced research
        questions. Uses model `sonar-pro`.


        **Pricing:** $0.012 per request
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ChatCompletionRequest'
            example:
              model: sonar-pro
              messages:
                - role: user
                  content: Compare the economic policies of the US and EU regarding AI regulation in 2025-2026
      responses:
        '200':
          description: Successful response with AI answer and citations
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ChatCompletionResponse'
      x-x402:
        path: /apis/v2/perplexity/sonar-pro
        source: https://github.com/AIsa-team/aisa-proxy
  /perplexity/sonar-reasoning-pro:
    post:
      tags:
        - AI Models
      operationId: post_perplexity-sonar-reasoning-pro
      summary: Sonar Reasoning Pro — chain-of-thought reasoning with search
      description: >-
        Reasoning model with Chain of Thought (CoT) for precise, step-by-step analysis backed by web search. Best for
        analytical and complex reasoning tasks. Uses model `sonar-reasoning-pro`.


        **Pricing:** $0.012 per request
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ChatCompletionRequest'
            example:
              model: sonar-reasoning-pro
              messages:
                - role: user
                  content: Analyze whether Tesla stock is overvalued based on current P/E ratio compared to industry averages
      responses:
        '200':
          description: Successful response with AI answer and citations
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ChatCompletionResponse'
      x-x402:
        path: /apis/v2/perplexity/sonar-reasoning-pro
        source: https://github.com/AIsa-team/aisa-proxy
  /polymarket/activity:
    get:
      summary: Get Activity
      description: >-
        Fetches activity data with optional filtering by user, market, condition, and time range. Returns trading
        activity including `MERGES`, `SPLITS`, and `REDEEMS`. Supports efficient cursor-based pagination for large
        datasets.
      operationId: get_polymarket-activity
      parameters:
        - name: user
          in: query
          required: false
          description: User wallet address to fetch activity for. If not provided, returns activity for all users.
          schema:
            type: string
            pattern: ^0x[0-9a-fA-F]{40}$
            example: '0x7c3db723f1d4d8cb9c550095203b686cb11e5c6b'
        - name: start_time
          in: query
          required: false
          description: Filter activity from this Unix timestamp in seconds (inclusive)
          schema:
            type: integer
            example: 1640995200
        - name: end_time
          in: query
          required: false
          description: Filter activity until this Unix timestamp in seconds (inclusive)
          schema:
            type: integer
            example: 1672531200
        - name: market_slug
          in: query
          required: false
          description: Filter activity by market slug
          schema:
            type: string
            example: bitcoin-up-or-down-july-25-8pm-et
        - name: condition_id
          in: query
          required: false
          description: Filter activity by condition ID
          schema:
            type: string
            example: '0x4567b275e6b667a6217f5cb4f06a797d3a1eaf1d0281fb5bc8c75e2046ae7e57'
        - name: limit
          in: query
          required: false
          description: Number of activities to return (1-1000)
          schema:
            type: integer
            minimum: 1
            maximum: 1000
            default: 100
            example: 50
        - name: pagination_key
          in: query
          required: false
          description: Base64-encoded cursor for efficient pagination. Returned in the previous response's pagination object.
          schema:
            type: string
            example: >-
              eyJibG9ja190aW1lc3RhbXAiOiIyMDI1LTAxLTE5VDEyOjAwOjAwLjAwMFoiLCJzaWRlIjoiU1BMSVQiLCJ0eF9oYXNoIjoiMHgxMjM0NTY3ODkwYWJjZGVmIiwibG9nX2luZGV4IjoxMCwidG90YWwiOjE5ODkwMTc3Nn0=
      responses:
        '200':
          description: Activity response with pagination
          content:
            application/json:
              schema:
                type: object
                properties:
                  activities:
                    type: array
                    items:
                      type: object
                      properties:
                        token_id:
                          type: string
                          example: ''
                        side:
                          type: string
                          enum:
                            - MERGE
                            - SPLIT
                            - REDEEM
                          example: REDEEM
                        market_slug:
                          type: string
                          example: will-the-doj-charge-boeing
                        condition_id:
                          type: string
                          example: '0x92e4b1b8e0621fab0537486e7d527322569d7a8fd394b3098ff4bb1d6e1c0bbd'
                        shares:
                          type: number
                          example: 187722726
                          description: Raw number of shares (from the blockchain)
                        shares_normalized:
                          type: number
                          example: 187.722726
                          description: Number of shares normalized (raw divided by 1000000)
                        price:
                          type: number
                          example: 1
                        block_number:
                          type: integer
                          description: Block number where the activity occurred
                          example: 123456789
                        log_index:
                          type: integer
                          description: Log index of the activity event in the block
                          example: 42
                        tx_hash:
                          type: string
                          example: '0x028baff23a90c10728606781d15077098ee93c991ea204aa52a0bd2869187574'
                        title:
                          type: string
                          example: Will the DOJ charge Boeing?
                        timestamp:
                          type: integer
                          description: Unix timestamp in seconds when the activity occurred
                          example: 1721263049
                        order_hash:
                          type: string
                          example: ''
                        user:
                          type: string
                          description: User wallet address
                          example: '0xfd9c3e7f8c56eb4186372f343c873cce154b3873'
                  pagination:
                    type: object
                    properties:
                      limit:
                        type: integer
                        example: 50
                      count:
                        type: integer
                        description: Total number of activities matching the filters
                        example: 1250
                      has_more:
                        type: boolean
                        description: Whether there are more activities available
                        example: true
                      pagination_key:
                        type: string
                        description: Base64-encoded cursor for the next page. Only present when there are more results.
                        example: >-
                          eyJibG9ja190aW1lc3RhbXAiOiIyMDI1LTAxLTE5VDEyOjAwOjAwLjAwMFoiLCJzaWRlIjoiU1BMSVQiLCJ0eF9oYXNoIjoiMHgxMjM0NTY3ODkwYWJjZGVmIiwibG9nX2luZGV4IjoxMCwidG90YWwiOjE5ODkwMTc3Nn0=
        '400':
          description: Bad Request - Invalid parameters or validation errors
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Missing required parameter
                  message:
                    type: string
                    example: user parameter is required
              examples:
                invalid_start_time:
                  summary: Invalid start_time parameter
                  value:
                    error: Invalid start_time parameter
                    message: start_time must be a valid Unix timestamp
                invalid_end_time:
                  summary: Invalid end_time parameter
                  value:
                    error: Invalid end_time parameter
                    message: end_time must be a valid Unix timestamp
                invalid_time_range:
                  summary: Invalid time range
                  value:
                    error: Invalid time range
                    message: start_time must be less than end_time
                invalid_limit:
                  summary: Invalid limit
                  value:
                    error: Invalid limit parameter
                    message: limit must be a number between 1 and 1000
                invalid_pagination_key:
                  summary: Invalid pagination key
                  value:
                    error: Invalid pagination key
                    message: pagination_key is invalid or corrupted
                invalid_filter_combination:
                  summary: Invalid filter combination
                  value:
                    error: Invalid filter combination
                    message: Only one of market_slug or condition_id can be provided
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Internal Server Error
                  message:
                    type: string
                    example: Failed to fetch activity data
      tags:
        - Prediction Markets
      x-x402:
        path: /apis/v2/polymarket/activity
        source: https://github.com/AIsa-team/aisa-proxy
  /polymarket/candlesticks:
    parameters:
      - name: condition_id
        in: path
        required: true
        schema:
          type: string
    get:
      summary: Get Candlesticks
      description: Fetches historical candlestick data for a market identified by `condition_id`, over a specified interval.
      operationId: get_polymarket-candlesticks
      parameters:
        - name: condition_id
          in: query
          required: true
          description: Polymarket condition ID for the market.
          schema:
            type: string
          example: '0x1234abcd5678ef90'
        - name: start_time
          in: query
          required: true
          description: Unix timestamp (in seconds) for start of time range
          schema:
            type: integer
            example: 1640995200
        - name: end_time
          in: query
          required: true
          description: Unix timestamp (in seconds) for end of time range
          schema:
            type: integer
            example: 1672531200
        - name: interval
          in: query
          required: false
          description: |+
            Interval length: 1 = 1m, 60 = 1h, 1440 = 1d. Defaults to 1m. 

            ⚠️ **Note:** There are range limits for `interval` — specifically:
            - `1` (1m): max range **1 week**
            - `60` (1h): max range **1 month**
            - `1440` (1d): max range **1 year**

          schema:
            type: integer
            enum:
              - 1
              - 60
              - 1440
            default: 1
      responses:
        '200':
          description: Candlestick response
          content:
            application/json:
              schema:
                type: object
                properties:
                  candlesticks:
                    type: array
                    description: >-
                      Array of market candlestick data, where each element is a tuple containing candlestick data array
                      and token metadata
                    items:
                      type: array
                      description: Tuple of [candlestick_data_array, token_metadata]
                      minItems: 2
                      maxItems: 2
                      items:
                        oneOf:
                          - type: array
                            description: Candlestick data array
                            items:
                              type: object
                          - type: object
                            description: Token metadata
                            properties:
                              token_id:
                                type: string
                              side:
                                type: string
                                description: >-
                                  The outcome label for this token (e.g., 'Yes', 'No', 'Up', 'Down', 'Over', 'Under', or
                                  team names for sports markets)
                      example:
                        - - end_period_ts: 1727827200
                            open_interest: 8456498
                            price:
                              open: 0
                              high: 0
                              low: 0
                              close: 0
                              open_dollars: '0.0049'
                              high_dollars: '0.0049'
                              low_dollars: '0.0048'
                              close_dollars: '0.0048'
                              mean: 0
                              mean_dollars: '0.0049'
                              previous: 0
                              previous_dollars: '0.0049'
                            volume: 8456498
                            yes_ask:
                              open: 0.00489
                              close: 0.0048200000000000005
                              high: 0.00491
                              low: 0.0048
                              open_dollars: '0.0049'
                              close_dollars: '0.0048'
                              high_dollars: '0.0049'
                              low_dollars: '0.0048'
                            yes_bid:
                              open: 0.00489
                              close: 0.004829999990880811
                              high: 0.004910000000138527
                              low: 0.0048
                              open_dollars: '0.0049'
                              close_dollars: '0.0048'
                              high_dollars: '0.0049'
                              low_dollars: '0.0048'
                        - token_id: '21742633143463906290569050155826241533067272736897614950488156847949938836455'
                          side: 'Yes'
        '400':
          description: Bad Request - Invalid parameters
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Missing required query parameters
                  required:
                    type: string
                    example: start_time, end_time
      tags:
        - Prediction Markets
      x-x402:
        path: /apis/v2/polymarket/candlesticks
        source: https://github.com/AIsa-team/aisa-proxy
  /polymarket/events:
    get:
      summary: Get Events
      description: >-
        Fetches events (groups of related markets) with optional filtering by event_slug, tags/categories and status.
        Events aggregate multiple markets under a single topic (e.g., 'Presidential Election 2024' contains multiple
        candidate markets). Returns events ordered by total volume (most popular first).


        **Example Request (single event by slug):**

        ```bash

        curl
        'https://api.aisa.one/apis/v1/polymarket/events?event_slug=presidential-election-winner-2024&include_markets=true'

        ```


        **Example Request (filter by tags):**

        ```bash

        curl 'https://api.aisa.one/apis/v1/polymarket/events?tags=sports&status=open&limit=10'

        ```


        **Example Request (with markets included):**

        ```bash

        curl 'https://api.aisa.one/apis/v1/polymarket/events?include_markets=true&limit=5'

        ```
      operationId: get_polymarket-events
      parameters:
        - name: event_slug
          in: query
          required: false
          description: >-
            Filter by specific event slug. When provided, returns a single hydrated event matching that slug (e.g.,
            'presidential-election-winner-2024'). Use with include_markets=true to get the full event with all its
            markets.
          schema:
            type: string
            example: presidential-election-winner-2024
        - name: tags
          in: query
          required: false
          description: Filter events by tag(s)/category. Can provide multiple values (e.g., sports, crypto, politics).
          schema:
            type: array
            items:
              type: string
            example:
              - sports
              - football
          style: form
          explode: true
        - name: status
          in: query
          required: false
          description: >-
            Filter events by status. An event is 'open' if any of its markets are still open, 'closed' if all markets
            are closed.
          schema:
            type: string
            enum:
              - open
              - closed
            example: open
        - name: include_markets
          in: query
          required: false
          description: Set to 'true' to include the list of markets for each event in the response.
          schema:
            type: string
            enum:
              - 'true'
              - 'false'
            default: 'false'
            example: 'true'
        - name: start_time
          in: query
          required: false
          description: Filter events starting after this Unix timestamp (seconds)
          schema:
            type: integer
            example: 1640995200
        - name: end_time
          in: query
          required: false
          description: Filter events starting before this Unix timestamp (seconds)
          schema:
            type: integer
            example: 1672531200
        - name: game_start_time
          in: query
          required: false
          description: >-
            Filter events by game start time (Unix timestamp in seconds). Useful for filtering sports events by when the
            game starts.
          schema:
            type: integer
            example: 1704067200
        - name: limit
          in: query
          required: false
          description: 'Number of events to return (1-100). Default: 10.'
          schema:
            type: integer
            minimum: 1
            maximum: 100
            default: 10
            example: 10
        - name: pagination_key
          in: query
          required: false
          description: >-
            Pagination key for cursor-based pagination. Use the value from the previous response's
            pagination.pagination_key field to get the next page of results. Do not use the deprecated 'offset'
            parameter.
          schema:
            type: string
            example: eyJsYXN0Vm9sdW1lIjoxNzEyMTMyNjYzLjk2MTYwNjMsImxhc3RFdmVudFNsdWciOiJuYmEtY2hhbXBpb24tMjAyNC0yMDI1In0=
      responses:
        '200':
          description: Events response with pagination
          content:
            application/json:
              schema:
                type: object
                properties:
                  events:
                    type: array
                    items:
                      type: object
                      properties:
                        event_slug:
                          type: string
                          description: Unique identifier for the event
                          example: presidential-election-winner-2024
                        title:
                          type: string
                          description: Event title
                          example: Presidential Election Winner 2024
                        subtitle:
                          type: string
                          nullable: true
                          description: Event subtitle or description
                          example: Who will win the 2024 US Presidential Election?
                        status:
                          type: string
                          enum:
                            - open
                            - closed
                          description: Event status - 'open' if any market is open, 'closed' if all markets are closed
                          example: closed
                        start_time:
                          type: integer
                          description: Unix timestamp (seconds) when the event started
                          example: 1704067200
                        end_time:
                          type: integer
                          description: Unix timestamp (seconds) when the event ends
                          example: 1730851200
                        volume_fiat_amount:
                          type: number
                          description: Total trading volume across all markets in the event (USD)
                          example: 3686335059.29
                        settlement_sources:
                          type: string
                          nullable: true
                          description: Resolution/settlement source for the event
                          example: Associated Press
                        rules_url:
                          type: string
                          nullable: true
                          description: URL to the event rules (if available)
                          example: null
                        image:
                          type: string
                          nullable: true
                          description: Event image URL
                          example: https://polymarket.com/images/election-2024.png
                        tags:
                          type: array
                          items:
                            type: string
                          description: Array of category tags for the event
                          example:
                            - politics
                            - elections
                        market_count:
                          type: integer
                          description: Number of markets in this event
                          example: 17
                        markets:
                          type: array
                          description: List of markets in this event (only included when include_markets=true)
                          items:
                            type: object
                            properties:
                              market_slug:
                                type: string
                                example: will-trump-win-2024
                              title:
                                type: string
                                example: Will Trump win the 2024 election?
                              condition_id:
                                type: string
                                example: 0x1234...
                              status:
                                type: string
                                enum:
                                  - open
                                  - closed
                                example: closed
                              volume_total:
                                type: number
                                example: 1500000000
                  pagination:
                    type: object
                    properties:
                      limit:
                        type: integer
                        description: Number of events returned in this response
                        example: 10
                      has_more:
                        type: boolean
                        description: Whether there are more events available. If true, use pagination_key to fetch the next page.
                        example: true
                      pagination_key:
                        type: string
                        nullable: true
                        description: >-
                          Pagination key for fetching the next page. Pass this value as the pagination_key query
                          parameter to get the next page of results. Will be null if has_more is false.
                        example: >-
                          eyJsYXN0Vm9sdW1lIjoxNzEyMTMyNjYzLjk2MTYwNjMsImxhc3RFdmVudFNsdWciOiJuYmEtY2hhbXBpb24tMjAyNC0yMDI1In0=
        '400':
          description: Bad Request - Invalid parameters
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Invalid status parameter
                  message:
                    type: string
                    example: status must be 'open' or 'closed'
              examples:
                invalid_status:
                  summary: Invalid status
                  value:
                    error: Invalid status parameter
                    message: status must be 'open' or 'closed'
                invalid_limit:
                  summary: Invalid limit
                  value:
                    error: Invalid limit parameter
                    message: limit must be a number between 1 and 100
                invalid_offset:
                  summary: Invalid offset
                  value:
                    error: Invalid offset parameter
                    message: offset must be a non-negative number
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Internal Server Error
                  message:
                    type: string
                    example: Failed to fetch events data
      tags:
        - Prediction Markets
      x-x402:
        path: /apis/v2/polymarket/events
        source: https://github.com/AIsa-team/aisa-proxy
  /polymarket/market-price/{token_id}:
    parameters:
      - name: token_id
        in: path
        required: true
        description: The token ID for the Polymarket market
        schema:
          type: string
          example: '19701256321759583954581192053894521654935987478209343000964756587964612528044'
    get:
      summary: Get Market Price
      description: >-
        Fetches the current market price for a market by `token_id`. When `at_time` is not provided, returns the most
        real-time price available. When `at_time` is provided, returns the historical market price at that specific
        timestamp.


        **Example Request (with historical timestamp):**

        ```bash

        curl
        'https://api.aisa.one/apis/v1/polymarket/market-price/19701256321759583954581192053894521654935987478209343000964756587964612528044?at_time=1762164600'

        ```


        **Example Request (real-time price):**

        ```bash

        curl
        'https://api.aisa.one/apis/v1/polymarket/market-price/19701256321759583954581192053894521654935987478209343000964756587964612528044'

        ```
      operationId: get_polymarket-market-price
      parameters:
        - name: at_time
          in: query
          required: false
          description: >-
            Optional Unix timestamp (in seconds) to fetch a historical market price. If not provided, returns the most
            real-time price available.
          schema:
            type: integer
            example: 1762164600
      responses:
        '200':
          description: Market price response
          content:
            application/json:
              schema:
                type: object
                properties:
                  price:
                    type: number
                    description: The market price (between 0 and 1)
                    example: 0.999
                  at_time:
                    type: integer
                    description: The timestamp for which the price was fetched (Unix timestamp in seconds)
                    example: 1762164600
                required:
                  - price
                  - at_time
              examples:
                with_at_time:
                  summary: Historical price lookup
                  description: Response when `at_time` parameter is provided
                  value:
                    price: 0.999
                    at_time: 1762164600
                real_time:
                  summary: Real-time price lookup
                  description: Response when `at_time` parameter is omitted (most recent price)
                  value:
                    price: 0.215
                    at_time: 1757008834
        '400':
          description: Bad Request - Invalid parameters
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Invalid token_id
                  message:
                    type: string
                    example: token_id must be a valid string
        '404':
          description: Not Found - Market not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Not found
                  message:
                    type: string
                    example: Market with the provided token_id not found
      tags:
        - Prediction Markets
      x-x402:
        path: /apis/v2/polymarket/market-price/{token_id}
        source: https://github.com/AIsa-team/aisa-proxy
  /polymarket/markets:
    get:
      summary: Get Markets
      description: >-
        Fetches market data with optional filtering and search functionality. Supports filtering by market slug,
        condition ID, token ID, or tags, as well as fuzzy search across market titles and descriptions. Returns markets
        ordered by volume (most popular first) when filters are applied, or by start_time (most recent first) when no
        filters are provided.
      operationId: get_polymarket-markets
      parameters:
        - name: market_slug
          in: query
          required: false
          description: Filter markets by market slug(s). Can provide multiple values.
          schema:
            type: array
            items:
              type: string
            example:
              - bitcoin-up-or-down-july-25-8pm-et
          style: form
          explode: true
        - name: event_slug
          in: query
          required: false
          description: Filter markets by event slug(s). Can provide multiple values.
          schema:
            type: array
            items:
              type: string
            example:
              - presidential-election-winner-2028
          style: form
          explode: true
        - name: condition_id
          in: query
          required: false
          description: Filter markets by condition ID(s). Can provide multiple values.
          schema:
            type: array
            items:
              type: string
            example:
              - '0x4567b275e6b667a6217f5cb4f06a797d3a1eaf1d0281fb5bc8c75e2046ae7e57'
          style: form
          explode: true
        - name: token_id
          in: query
          required: false
          description: >-
            Filter markets by token ID(s). Matches markets where the token_id is either the primary_token_id or
            secondary_token_id. Can provide multiple values (maximum 100). Each token_id must be a numeric string.
          schema:
            type: array
            items:
              type: string
              pattern: ^[0-9]+$
            maxItems: 100
            example:
              - '24891147099018724959141647991382271578149113344000019968758330059825991230807'
          style: form
          explode: true
        - name: tags
          in: query
          required: false
          description: Filter markets by tag(s). Can provide multiple values.
          schema:
            type: array
            items:
              type: string
            example:
              - politics
              - crypto
          style: form
          explode: true
        - name: search
          in: query
          required: false
          description: >-
            Search markets by keywords in title and description. Must be URL encoded (e.g., 'bitcoin%20price' for
            'bitcoin price').
          schema:
            type: string
            example: bitcoin
        - name: status
          in: query
          required: false
          description: Filter markets by status (whether they're open or closed)
          schema:
            type: string
            enum:
              - open
              - closed
            example: open
        - name: min_volume
          in: query
          required: false
          description: Filter markets with total trading volume greater than or equal to this amount (USD)
          schema:
            type: number
            example: 100000
        - name: limit
          in: query
          required: false
          description: 'Number of markets to return (1-100). Default: 10 for search, 10 for regular queries.'
          schema:
            type: integer
            minimum: 1
            maximum: 100
            default: 10
            example: 20
        - name: pagination_key
          in: query
          required: false
          description: >-
            Base64-encoded cursor for efficient pagination. Returned in the previous response's pagination object. Use
            this instead of large offsets for better performance.
          schema:
            type: string
            example: eyJzdGFydF9kYXRlIjoiMjAyNi0wMS0xOVQxMjowMDowMC4wMDBaIiwiY29uZGl0aW9uX2lkIjoiMHgxMjM0In0=
        - name: start_time
          in: query
          required: false
          description: Filter markets from this Unix timestamp in seconds (inclusive)
          schema:
            type: integer
            example: 1640995200
        - name: end_time
          in: query
          required: false
          description: Filter markets until this Unix timestamp in seconds (inclusive)
          schema:
            type: integer
            example: 1672531200
      responses:
        '200':
          description: Markets response with pagination
          content:
            application/json:
              schema:
                type: object
                properties:
                  markets:
                    type: array
                    items:
                      type: object
                      properties:
                        market_slug:
                          type: string
                          example: btc-updown-15m-1762516800
                        event_slug:
                          type: string
                          nullable: true
                          description: The event slug this market belongs to, or null if not associated with an event
                          example: presidential-election-winner-2028
                        condition_id:
                          type: string
                          example: '0x6876ac2b6174778c973c118aac287c49057c4d5360f896729209fe985a2c07fb'
                        title:
                          type: string
                          example: Bitcoin Up or Down - November 7, 7:00AM-7:15AM ET
                        start_time:
                          type: integer
                          description: Unix timestamp in seconds when the market starts
                          example: 1762506140
                        end_time:
                          type: integer
                          description: Unix timestamp in seconds when the market ends
                          example: 1762517700
                        completed_time:
                          type: integer
                          nullable: true
                          description: Unix timestamp in seconds when the market was completed
                          example: null
                        close_time:
                          type: integer
                          nullable: true
                          description: Unix timestamp in seconds when the market was closed
                          example: null
                        game_start_time:
                          type: string
                          format: date-time
                          nullable: true
                          description: >-
                            Datetime string in UTC format (YYYY-MM-DD HH:MM:SS.000) for when the game/event starts. Only
                            present for sports markets that have a game start time.
                          example: '2025-08-16 20:00:00.000'
                        tags:
                          type: array
                          items:
                            type: string
                          example:
                            - Up or Down
                            - Crypto Prices
                            - Hide From New
                            - Recurring
                            - Crypto
                            - Bitcoin
                            - 15M
                        volume_1_week:
                          type: number
                          description: Trading volume in USD for the past week
                          example: 0
                        volume_1_month:
                          type: number
                          description: Trading volume in USD for the past month
                          example: 0
                        volume_1_year:
                          type: number
                          description: Trading volume in USD for the past year
                          example: 0
                        volume_total:
                          type: number
                          description: Total trading volume in USD
                          example: 93.148228
                        resolution_source:
                          type: string
                          description: URL to the data source used for market resolution
                          example: https://data.chain.link/streams/btc-usd
                        image:
                          type: string
                          description: URL to the market image
                          example: https://polymarket-upload.s3.us-east-2.amazonaws.com/BTC+fullsize.png
                        description:
                          type: string
                          nullable: true
                          description: Detailed description of the market, or null if no description is available
                          example: >-
                            This market resolves to "Yes" if Bitcoin's price increases from the start to the end of the
                            15-minute window, and "No" otherwise.
                        negative_risk_id:
                          type: string
                          nullable: true
                          description: Negative risk identifier for the market, or null if not applicable
                          example: null
                        side_a:
                          type: object
                          description: First side/outcome of the market
                          properties:
                            id:
                              type: string
                              description: Token ID for side A
                              example: '14557944883400223565643640243919774851380876937588843424705199812983475639104'
                            label:
                              type: string
                              description: Label for side A
                              example: Up
                        side_b:
                          type: object
                          description: Second side/outcome of the market
                          properties:
                            id:
                              type: string
                              description: Token ID for side B
                              example: '57567439101367774829602299916701968079591032322820664013819223989961583069589'
                            label:
                              type: string
                              description: Label for side B
                              example: Down
                        winning_side:
                          type: string
                          nullable: true
                          description: The winning side of the market (null if not yet resolved)
                          example: null
                        status:
                          type: string
                          enum:
                            - open
                            - closed
                          example: open
                        extra_fields:
                          type: object
                          description: >-
                            Additional market-specific fields as a map of key-value pairs. For updown markets (markets
                            with slugs containing '-updown-15m-', '-up-or-down-', or '-updown-4h-'), this object
                            includes 'price_to_beat' and 'final_price' fields. Empty object if no extra fields are
                            present.
                          additionalProperties:
                            nullable: true
                            anyOf:
                              - type: number
                              - type: string
                              - type: boolean
                          example:
                            price_to_beat: 98765.43
                            final_price: 98801.21
                  pagination:
                    type: object
                    properties:
                      limit:
                        type: integer
                        example: 20
                      total:
                        type: integer
                        description: Total number of markets matching the filters
                        example: 150
                      has_more:
                        type: boolean
                        description: Whether there are more markets available
                        example: true
                      pagination_key:
                        type: string
                        description: Cursor for next page. Only present when has_more is true and using cursor-based pagination.
                        example: eyJ2b2x1bWVfdG90YWwiOjEyMzQ1LjY3LCJjbG9zZV90aW1lIjpudWxsLCJjb25kaXRpb25faWQiOiIweDEyMzQifQ==
        '400':
          description: Bad Request - Invalid parameters or validation errors
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Invalid search parameter
                  message:
                    type: string
                    example: search must be at least 2 characters long
              examples:
                search_too_short:
                  summary: Search query too short
                  value:
                    error: Invalid search parameter
                    message: search must be at least 2 characters long
                search_with_other_params:
                  summary: Search with other parameters
                  value:
                    error: Invalid query parameters
                    message: search parameter cannot be used with other filter parameters
                invalid_limit:
                  summary: Invalid limit
                  value:
                    error: Invalid limit parameter
                    message: limit must be a number between 1 and 100
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Internal Server Error
                  message:
                    type: string
                    example: Failed to fetch markets data
      tags:
        - Prediction Markets
      x-x402:
        path: /apis/v2/polymarket/markets
        source: https://github.com/AIsa-team/aisa-proxy
  /polymarket/orderbooks:
    get:
      summary: Get Orderbook History
      description: >-
        Fetches historical orderbook snapshots for a specific asset (token ID) over a specified time range. If no
        start_time and end_time are provided, returns the latest orderbook snapshot for the market. Returns snapshots of
        the order book including bids, asks, and market metadata in order. All timestamps are in milliseconds. Orderbook
        data has history starting from October 14th, 2025. Note: When fetching the latest orderbook (without start/end
        times), the limit and pagination_key parameters are ignored.
      operationId: get_polymarket-orderbooks
      parameters:
        - name: token_id
          in: query
          required: true
          description: The token id (asset) for the Polymarket market
          schema:
            type: string
            example: '56369772478534954338683665819559528414197495274302917800610633957542171787417'
        - name: start_time
          in: query
          required: false
          description: >-
            Start time in Unix timestamp (milliseconds). Optional - if not provided along with end_time, returns the
            latest orderbook snapshot.
          schema:
            type: integer
            example: 1760470000000
        - name: end_time
          in: query
          required: false
          description: >-
            End time in Unix timestamp (milliseconds). Optional - if not provided along with start_time, returns the
            latest orderbook snapshot.
          schema:
            type: integer
            example: 1760480000000
        - name: limit
          in: query
          required: false
          description: >-
            Maximum number of snapshots to return (default: 100, max: 200). Ignored when fetching the latest orderbook
            without start_time and end_time.
          schema:
            type: integer
            default: 100
            maximum: 200
            example: 100
        - name: pagination_key
          in: query
          required: false
          description: >-
            Pagination key to get the next chunk of data. Ignored when fetching the latest orderbook without start_time
            and end_time.
          schema:
            type: string
            example: >-
              eyJhc3NldElkIjoiMTM1ODUxMjc2NDY0NTMxMDM0ODcyMjY1MTg3ODYyNjk5NjE0MDAyMjI5NzA0NzI3MzgxMTIwOTU1NDY0MDc5MTY4NDcxMTIyNzE2NjQiLCJ0aW1lc3RhbXAiOjE3NjExMDQwOTg5MTR9
      responses:
        '200':
          description: Orderbook history response
          content:
            application/json:
              schema:
                type: object
                properties:
                  snapshots:
                    type: array
                    description: Array of orderbook snapshots at different points in time
                    items:
                      type: object
                      properties:
                        asks:
                          type: array
                          description: Sell orders, ordered by price
                          items:
                            type: object
                            properties:
                              size:
                                type: string
                                example: '5000013.15'
                              price:
                                type: string
                                example: '0.999'
                        bids:
                          type: array
                          description: Buy orders, ordered by price
                          items:
                            type: object
                            properties:
                              size:
                                type: string
                                example: '438389.53'
                              price:
                                type: string
                                example: '0.001'
                        hash:
                          type: string
                          example: 85c493ebeea97e2f70c85a1469aede05f892408f
                        minOrderSize:
                          type: string
                          example: '5'
                        negRisk:
                          type: boolean
                          example: true
                        assetId:
                          type: string
                          example: '56369772478534954338683665819559528414197495274302917800610633957542171787417'
                        timestamp:
                          type: integer
                          description: Timestamp of the snapshot in milliseconds
                          example: 1760471849407
                        tickSize:
                          type: string
                          example: '0.001'
                        indexedAt:
                          type: integer
                          description: When the snapshot was indexed in milliseconds
                          example: 1760471852863
                        market:
                          type: string
                          example: '0xd10bc768ede58b53ed400594240b0a0603134a32dab89ec823a18759cbc180ca'
                  pagination:
                    type: object
                    properties:
                      limit:
                        type: integer
                        example: 100
                      count:
                        type: integer
                        description: Number of snapshots returned
                        example: 4
                      pagination_key:
                        type: string
                        description: The pagination key to pass in to get the next chunk of data
                        example: >-
                          eyJhc3NldElkIjoiMTM1ODUxMjc2NDY0NTMxMDM0ODcyMjY1MTg3ODYyNjk5NjE0MDAyMjI5NzA0NzI3MzgxMTIwOTU1NDY0MDc5MTY4NDcxMTIyNzE2NjQiLCJ0aW1lc3RhbXAiOjE3NjExMDQwOTg5MTR9
                      has_more:
                        type: boolean
                        description: Whether there are more snapshots available
                        example: false
        '400':
          description: Bad Request - Invalid parameters
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Invalid parameters
                  message:
                    type: string
                    example: assetId, start_time, and end_time are required
      tags:
        - Prediction Markets
      x-x402:
        path: /apis/v2/polymarket/orderbooks
        source: https://github.com/AIsa-team/aisa-proxy
  /polymarket/orders:
    get:
      summary: Get Orders
      description: >-
        Fetches order data with optional filtering by market, condition, token, time range, and user. Returns orders
        that match either primary or secondary token IDs for markets. If no filters provided, fetches the latest trades
        happening in real-time. Only one of market_slug, token_id, or condition_id can be provided.
      operationId: get_polymarket-orders
      parameters:
        - name: market_slug
          in: query
          required: false
          description: Filter orders by market slug
          schema:
            type: string
            example: bitcoin-up-or-down-july-25-8pm-et
        - name: condition_id
          in: query
          required: false
          description: Filter orders by condition ID
          schema:
            type: string
            example: '0x4567b275e6b667a6217f5cb4f06a797d3a1eaf1d0281fb5bc8c75e2046ae7e57'
        - name: token_id
          in: query
          required: false
          description: Filter orders by token ID
          schema:
            type: string
            example: '58519484510520807142687824915233722607092670035910114837910294451210534222702'
        - name: start_time
          in: query
          required: false
          description: Filter orders from this Unix timestamp in seconds (inclusive)
          schema:
            type: integer
            example: 1640995200
        - name: end_time
          in: query
          required: false
          description: Filter orders until this Unix timestamp in seconds (inclusive)
          schema:
            type: integer
            example: 1672531200
        - name: limit
          in: query
          required: false
          description: Number of orders to return (1-1000)
          schema:
            type: integer
            minimum: 1
            maximum: 1000
            default: 100
            example: 50
        - name: pagination_key
          in: query
          required: false
          description: Base64-encoded cursor for efficient pagination. Returned in the previous response's pagination object.
          schema:
            type: string
            example: >-
              eyJibG9ja190aW1lc3RhbXAiOiIyMDI1LTAxLTE5VDEyOjAwOjAwLjAwMFoiLCJ0eF9oYXNoIjoiMHgxMjM0NTY3ODkwYWJjZGVmIiwibG9nX2luZGV4IjoxMCwidG90YWwiOjUxMDk2MTl9
        - name: user
          in: query
          required: false
          description: Filter orders by user (wallet address)
          schema:
            type: string
            example: '0x7c3db723f1d4d8cb9c550095203b686cb11e5c6b'
      responses:
        '200':
          description: Orders response with pagination
          content:
            application/json:
              schema:
                type: object
                properties:
                  orders:
                    type: array
                    items:
                      type: object
                      properties:
                        token_id:
                          type: string
                          example: '58519484510520807142687824915233722607092670035910114837910294451210534222702'
                        token_label:
                          type: string
                          description: Human readable label for this outcome (yes/no etc)
                          example: 'Yes'
                        side:
                          type: string
                          enum:
                            - BUY
                            - SELL
                          example: BUY
                        market_slug:
                          type: string
                          example: bitcoin-up-or-down-july-25-8pm-et
                        condition_id:
                          type: string
                          example: '0x4567b275e6b667a6217f5cb4f06a797d3a1eaf1d0281fb5bc8c75e2046ae7e57'
                        shares:
                          type: number
                          description: Raw number of shares purchased (from the blockchain)
                          example: 4995000
                        shares_normalized:
                          type: number
                          description: Number of shares purchased normalized (this is raw divided by 1000000)
                          example: 4.995
                        price:
                          type: number
                          description: Price per share
                          example: 0.65
                        block_number:
                          type: integer
                          description: Block number where the order was placed
                          example: 123456789
                        log_index:
                          type: integer
                          description: Log index of the order event in the block
                          example: 42
                        tx_hash:
                          type: string
                          description: Transaction hash of the order
                          example: '0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef12'
                        title:
                          type: string
                          description: Market title
                          example: Will Bitcoin be above $50,000 on July 25, 2025 at 8:00 PM ET?
                        timestamp:
                          type: integer
                          description: Unix timestamp in seconds when the order was placed
                          example: 1757008834
                        order_hash:
                          type: string
                          description: Hash of the order
                          example: '0xabcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890'
                        user:
                          type: string
                          description: Maker address of the order
                          example: '0x7c3db723f1d4d8cb9c550095203b686cb11e5c6b'
                        taker:
                          type: string
                          description: >-
                            Taker address that was part of this trade. Note: This can often be the CTF exchange and is
                            not always the true taker, proceed with caution using taker information
                          example: '0x8d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0c1d2e'
                  pagination:
                    type: object
                    properties:
                      limit:
                        type: integer
                        example: 50
                      offset:
                        type: integer
                        example: 0
                      total:
                        type: integer
                        description: Total number of orders matching the filters
                        example: 1250
                      has_more:
                        type: boolean
                        description: Whether there are more orders available
                        example: true
                      pagination_key:
                        type: string
                        description: >-
                          Base64-encoded cursor for the next page. Only present when there are more results. Use this in
                          the next request instead of offset.
                        example: >-
                          eyJibG9ja190aW1lc3RhbXAiOiIyMDI1LTAxLTE5VDEyOjAwOjAwLjAwMFoiLCJ0eF9oYXNoIjoiMHgxMjM0NTY3ODkwYWJjZGVmIiwibG9nX2luZGV4IjoxMCwidG90YWwiOjUxMDk2MTl9
        '400':
          description: Bad Request - Invalid parameters or validation errors
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Invalid start_time parameter
                  message:
                    type: string
                    example: start_time must be a valid Unix timestamp
              examples:
                invalid_timestamp:
                  summary: Invalid timestamp
                  value:
                    error: Invalid start_time parameter
                    message: start_time must be a valid Unix timestamp
                invalid_time_range:
                  summary: Invalid time range
                  value:
                    error: Invalid time range
                    message: start_time must be less than end_time
                invalid_limit:
                  summary: Invalid limit
                  value:
                    error: Invalid limit parameter
                    message: limit must be a number between 1 and 1000
                missing_required_filter:
                  summary: Missing required filter
                  value:
                    error: Missing required filter parameter
                    message: At least one of market_slug, condition_id, user, or token_id must be provided
                invalid_filter_combination:
                  summary: Invalid filter combination
                  value:
                    error: Invalid filter combination
                    message: Only one of market_slug, token_id, or condition_id can be provided
                invalid_pagination_key:
                  summary: Invalid pagination key
                  value:
                    error: Invalid pagination key
                    message: pagination_key is invalid or corrupted
        '401':
          description: Unauthorized - Offset deprecated for large values
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Offset deprecated
                  message:
                    type: string
                    example: >-
                      Offsets greater than 10,000 are no longer supported. Please use pagination_key for efficient
                      pagination.
                  docs:
                    type: string
                    example: https://aisa.one/docs/api-reference/prediction-market/get_polymarket-events
      tags:
        - Prediction Markets
      x-x402:
        path: /apis/v2/polymarket/orders
        source: https://github.com/AIsa-team/aisa-proxy
  /polymarket/positions/wallet/{wallet_address}:
    parameters:
      - name: wallet_address
        in: path
        required: true
        description: The Proxy wallet address to fetch positions for
        schema:
          type: string
          pattern: ^0x[0-9a-fA-F]{40}$
          example: '0x1234567890abcdef1234567890abcdef12345678'
    get:
      summary: Get Positions
      description: >-
        Fetches all Polymarket positions for a proxy wallet address. Returns positions with balance >= 10,000 shares
        (0.01 normalized) with market info.
      operationId: get_polymarket-positions
      parameters:
        - name: limit
          in: query
          required: false
          description: Maximum number of positions to return per page. Defaults to 100, maximum 100.
          schema:
            type: integer
            minimum: 1
            maximum: 100
            default: 100
            example: 100
        - name: pagination_key
          in: query
          required: false
          description: Pagination key returned from previous request to fetch next page of results
          schema:
            type: string
            example: NjhlMGM4MDAtZDkwNi00YjMyLWEzOWMtYTRlMTk5MzRkNWVl
      responses:
        '200':
          description: Positions response
          content:
            application/json:
              schema:
                type: object
                properties:
                  wallet_address:
                    type: string
                    description: The wallet address (normalized to lowercase)
                    example: '0x1234567890abcdef1234567890abcdef12345678'
                  positions:
                    type: array
                    description: Array of position objects
                    items:
                      type: object
                      properties:
                        wallet:
                          type: string
                          description: The wallet address
                          example: '0x1234567890abcdef1234567890abcdef12345678'
                        token_id:
                          type: string
                          description: The Polymarket token ID for this position
                          example: '19701256321759583954581192053894521654935987478209343000964756587964612528044'
                        condition_id:
                          type: string
                          description: The condition ID for the market
                          example: 0x1234abcd...
                        title:
                          type: string
                          description: Market title
                          example: Will Bitcoin reach $100k by end of 2025?
                        shares:
                          type: integer
                          description: Number of shares (raw, not normalized)
                          example: 50000000
                        shares_normalized:
                          type: number
                          description: Number of shares normalized (divided by 1,000,000)
                          example: 50
                        redeemable:
                          type: boolean
                          description: Whether this position can be redeemed (market completed and is closed)
                          example: false
                        market_slug:
                          type: string
                          description: The market slug
                          example: will-bitcoin-reach-100k-by-end-of-2025
                        event_slug:
                          type: string
                          description: The event slug
                          example: bitcoin-price-predictions
                        image:
                          type: string
                          description: URL to market image
                          example: https://polymarket.com/images/...
                        label:
                          type: string
                          description: The outcome label for this token (e.g., 'Yes' or 'No')
                          example: 'Yes'
                        winning_outcome:
                          type: object
                          nullable: true
                          description: >-
                            Information about the winning outcome if market is closed, null if market is still open or
                            no outcome determined
                          properties:
                            id:
                              type: string
                              description: Token ID of the winning outcome
                              example: '19701256321759583954581192053894521654935987478209343000964756587964612528044'
                            label:
                              type: string
                              description: Label of the winning outcome
                              example: 'Yes'
                        start_time:
                          type: integer
                          description: Market start timestamp (Unix seconds)
                          example: 1640995200
                        end_time:
                          type: integer
                          description: Market end timestamp (Unix seconds)
                          example: 1672531200
                        completed_time:
                          type: integer
                          nullable: true
                          description: Market completion timestamp (Unix seconds), currently always null
                          example: null
                        close_time:
                          type: integer
                          nullable: true
                          description: Market close timestamp (Unix seconds) if market is closed, null if still open
                          example: 1672531200
                        game_start_time:
                          type: string
                          nullable: true
                          description: Game start time for sports markets, null for non-sports markets
                          example: '2025-01-15T19:00:00Z'
                        market_status:
                          type: string
                          enum:
                            - open
                            - closed
                          description: Whether the market is open or closed
                          example: open
                        negativeRisk:
                          type: boolean
                          description: Whether this market has negative risk
                          example: false
                      required:
                        - wallet
                        - token_id
                        - condition_id
                        - title
                        - shares
                        - shares_normalized
                        - redeemable
                        - market_slug
                        - event_slug
                        - image
                        - label
                        - winning_outcome
                        - start_time
                        - end_time
                        - completed_time
                        - close_time
                        - game_start_time
                        - market_status
                        - negativeRisk
                  pagination:
                    type: object
                    description: Pagination information
                    properties:
                      has_more:
                        type: boolean
                        description: Whether there are more results available
                        example: false
                      limit:
                        type: integer
                        description: The limit used for this request
                        example: 100
                      pagination_key:
                        type: string
                        nullable: true
                        description: Pagination key to use for fetching next page, null if no more pages
                        example: null
                    required:
                      - has_more
                      - limit
                      - pagination_key
                required:
                  - wallet_address
                  - positions
                  - pagination
              examples:
                with_positions:
                  summary: Wallet with positions
                  description: Response when wallet has active positions
                  value:
                    wallet_address: '0x1234567890abcdef1234567890abcdef12345678'
                    positions:
                      - wallet: '0x1234567890abcdef1234567890abcdef12345678'
                        token_id: '19701256321759583954581192053894521654935987478209343000964756587964612528044'
                        condition_id: 0xabcd1234...
                        title: Will Bitcoin reach $100k by end of 2025?
                        shares: 50000000
                        shares_normalized: 50
                        redeemable: false
                        market_slug: will-bitcoin-reach-100k-by-end-of-2025
                        event_slug: bitcoin-price-predictions
                        image: https://polymarket.com/images/...
                        label: 'Yes'
                        winning_outcome: null
                        start_time: 1640995200
                        end_time: 1672531200
                        completed_time: null
                        close_time: null
                        game_start_time: null
                        market_status: open
                        negativeRisk: false
                    pagination:
                      has_more: false
                      limit: 100
                      pagination_key: null
                empty_positions:
                  summary: Wallet with no positions
                  description: Response when wallet has no positions >= 10,000 shares
                  value:
                    wallet_address: '0x1234567890abcdef1234567890abcdef12345678'
                    positions: []
                    pagination:
                      has_more: false
                      limit: 100
                      pagination_key: null
        '400':
          description: Bad Request - Invalid parameters
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Invalid wallet address
                  message:
                    type: string
                    example: wallet_address must be a valid Ethereum address (0x followed by 40 hex characters)
              examples:
                missing_wallet:
                  summary: Missing wallet address
                  value:
                    error: Missing parameter
                    message: wallet_address is required
                invalid_wallet:
                  summary: Invalid wallet address format
                  value:
                    error: Invalid wallet address
                    message: wallet_address must be a valid Ethereum address (0x followed by 40 hex characters)
                invalid_limit:
                  summary: Invalid limit parameter
                  value:
                    error: Invalid limit parameter
                    message: limit must be a number between 1 and 100
      tags:
        - Prediction Markets
      x-x402:
        path: /apis/v2/polymarket/positions/wallet/{wallet_address}
        source: https://github.com/AIsa-team/aisa-proxy
  /polymarket/wallet:
    get:
      summary: Get Wallet
      description: >-
        Fetches wallet information by providing either an EOA (Externally Owned Account) address, a proxy wallet
        address, or a user handle. Returns the associated EOA, proxy, wallet type, handle, pseudonym, and profile image.
        Optionally returns trading metrics when `with_metrics=true`.
      operationId: get_polymarket-wallet
      parameters:
        - name: eoa
          in: query
          required: false
          description: >-
            EOA (Externally Owned Account) wallet address. Either `eoa`, `proxy`, or `handle` must be provided, but not
            more than one.
          schema:
            type: string
            pattern: ^0x[0-9a-fA-F]{40}$
            example: '0xe9a69b28ffd86f6ea0c5d8171c95537479b84a29'
        - name: proxy
          in: query
          required: false
          description: Proxy wallet address. Either `eoa`, `proxy`, or `handle` must be provided, but not more than one.
          schema:
            type: string
            pattern: ^0x[0-9a-fA-F]{40}$
            example: '0x60881d7dce725bfb0399ee0b11cc11f5782f257d'
        - name: handle
          in: query
          required: false
          description: >-
            User handle/username. Accepts both formats: `username` or `@username` (the @ prefix will be automatically
            stripped). Either `eoa`, `proxy`, or `handle` must be provided, but not more than one.
          schema:
            type: string
            example: satoshi
        - name: with_metrics
          in: query
          required: false
          description: >-
            Whether to include wallet trading metrics (total volume, trades, and markets). Pass `true` to include
            metrics. Metrics are computed only when explicitly requested for performance reasons.
          schema:
            type: string
            enum:
              - 'true'
              - 'false'
            example: 'true'
        - name: start_time
          in: query
          required: false
          description: Optional start date for metrics calculation (Unix timestamp in seconds). Only used when `with_metrics=true`.
          schema:
            type: integer
            example: 1640995200
        - name: end_time
          in: query
          required: false
          description: Optional end date for metrics calculation (Unix timestamp in seconds). Only used when `with_metrics=true`.
          schema:
            type: integer
            example: 1672531200
      responses:
        '200':
          description: Wallet information response
          content:
            application/json:
              schema:
                type: object
                properties:
                  eoa:
                    type: string
                    description: The EOA (Externally Owned Account) wallet address
                    example: '0xe9a69b28ffd86f6ea0c5d8171c95537479b84a29'
                  proxy:
                    type: string
                    description: The proxy wallet address
                    example: '0x60881d7dce725bfb0399ee0b11cc11f5782f257d'
                  wallet_type:
                    type: string
                    description: The type of wallet
                    example: safe
                  handle:
                    type: string
                    nullable: true
                    description: User handle/username
                    example: satoshi
                  pseudonym:
                    type: string
                    nullable: true
                    description: User pseudonym/display name
                    example: Satoshi Nakamoto
                  image:
                    type: string
                    nullable: true
                    description: User profile image URL
                    example: https://example.com/avatar.png
                  wallet_metrics:
                    type: object
                    description: Trading metrics for this wallet (only present when with_metrics=true)
                    properties:
                      total_volume:
                        type: number
                        description: Total trading volume in USD
                        example: 150000.5
                      total_trades:
                        type: number
                        description: Total number of trades (orders where this wallet was the maker)
                        example: 450
                      total_markets:
                        type: number
                        description: Total number of unique markets traded in
                        example: 25
                      highest_volume_day:
                        type: object
                        description: The day with the highest number of shares traded
                        properties:
                          date:
                            type: string
                            format: date
                            description: Date in YYYY-MM-DD format
                            example: '2025-10-12'
                          volume:
                            type: number
                            description: Total shares traded on that day (normalized, divided by 1,000,000)
                            example: 25000.75
                          trades:
                            type: number
                            description: Number of trades executed on that day
                            example: 145
                        required:
                          - date
                          - volume
                          - trades
                      merges:
                        type: number
                        description: Total number of token merges performed by this wallet
                        example: 262
                      splits:
                        type: number
                        description: Total number of token splits performed by this wallet
                        example: 31
                      conversions:
                        type: number
                        description: Total number of token conversions performed by this wallet
                        example: 4
                      redemptions:
                        type: number
                        description: Total number of token redemptions performed by this wallet
                        example: 2338
                required:
                  - eoa
                  - proxy
                  - wallet_type
              examples:
                without_metrics:
                  summary: Basic wallet information
                  description: Response when with_metrics is not provided or false
                  value:
                    eoa: '0xe9a69b28ffd86f6ea0c5d8171c95537479b84a29'
                    proxy: '0x60881d7dce725bfb0399ee0b11cc11f5782f257d'
                    wallet_type: safe
                    handle: satoshi
                    pseudonym: Satoshi Nakamoto
                    image: https://example.com/avatar.png
                with_metrics:
                  summary: Wallet information with metrics
                  description: Response when with_metrics=true
                  value:
                    eoa: '0xe9a69b28ffd86f6ea0c5d8171c95537479b84a29'
                    proxy: '0x60881d7dce725bfb0399ee0b11cc11f5782f257d'
                    wallet_type: safe
                    handle: satoshi
                    pseudonym: Satoshi Nakamoto
                    image: https://example.com/avatar.png
                    wallet_metrics:
                      total_volume: 150000.5
                      total_trades: 450
                      total_markets: 25
                      highest_volume_day:
                        date: '2025-10-12'
                        volume: 25000.75
                        trades: 145
        '400':
          description: Bad Request - Invalid or missing parameters
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: BAD_REQUEST
                  message:
                    type: string
                    example: Either eoa or proxy parameter must be provided, but not both
              examples:
                missing_parameter:
                  summary: Missing required parameter
                  value:
                    error: BAD_REQUEST
                    message: Either eoa, proxy, or handle parameter must be provided
                both_parameters:
                  summary: Both parameters provided
                  value:
                    error: BAD_REQUEST
                    message: Only one of eoa, proxy, or handle can be provided
                invalid_address:
                  summary: Invalid wallet address format
                  value:
                    error: BAD_REQUEST
                    message: Invalid wallet address format
        '404':
          description: Not Found - Wallet not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: NOT_FOUND
                  message:
                    type: string
                    example: Wallet not found
      tags:
        - Prediction Markets
      x-x402:
        path: /apis/v2/polymarket/wallet
        source: https://github.com/AIsa-team/aisa-proxy
  /polymarket/wallet/pnl:
    parameters:
      - name: wallet_address
        in: path
        required: true
        schema:
          type: string
          pattern: ^0x[0-9a-fA-F]{40}$
          example: '0x1234567890abcdef1234567890abcdef12345678'
    get:
      summary: Get Wallet PnL
      description: >-
        Fetches the REALIZED profit and loss (PnL) for a specific wallet address over a specified time range and
        granularity. **Note:** This will differ to what you see on Polymarket's dashboard since Polymarket showcases
        historical unrealized PnL. This API tracks realized gains only - from either confirmed sells or redeems. We do
        not realize a gain/loss until a finished market is redeemed.
      operationId: get_polymarket-wallet-pnl
      parameters:
        - name: wallet_address
          in: query
          required: true
          description: Polymarket wallet address (0x-prefixed).
          schema:
            type: string
          example: '0x7c3db723f1d4d8cb9c550095203b686cb11e5c6b'
        - name: granularity
          in: query
          required: true
          schema:
            type: string
            enum:
              - day
              - week
              - month
              - year
              - all
            example: day
        - name: start_time
          in: query
          required: false
          description: Defaults to first day of first trade if not provided.
          schema:
            type: integer
            example: 1726857600
        - name: end_time
          in: query
          required: false
          description: Defaults to the current date if not provided.
          schema:
            type: integer
            example: 1758316829
      responses:
        '200':
          description: PnL response
          content:
            application/json:
              schema:
                type: object
                properties:
                  granularity:
                    type: string
                    example: day
                  start_time:
                    type: integer
                    example: 1726857600
                  end_time:
                    type: integer
                    example: 1758316829
                  wallet_address:
                    type: string
                    example: '0x7c3db723f1d4d8cb9c550095203b686cb11e5c6b'
                  pnl_over_time:
                    type: array
                    items:
                      type: object
                      properties:
                        timestamp:
                          type: integer
                          example: 1726857600
                        pnl_to_date:
                          type: number
                          example: 2001
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: BAD_REQUEST
                  message:
                    type: string
                    example: Invalid or missing parameters.
        '503':
          description: Internal Server Error
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: INTERNAL_SERVER_ERROR
                  message:
                    type: string
                    example: Internal Server Error. Dome Admins contacted.
      tags:
        - Prediction Markets
      x-x402:
        path: /apis/v2/polymarket/wallet/pnl
        source: https://github.com/AIsa-team/aisa-proxy
  /scholar/search/explain:
    post:
      summary: Explain search results
      description: Generate explanations for search results in different languages and formats
      operationId: explainSearch
      tags:
        - Scholar Search
      security:
        - BearerAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ExplainSearchRequest'
      responses:
        '200':
          description: Successful explanation response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ExplainSearchResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalError'
      x-x402:
        path: /apis/v2/scholar/search/explain
        source: https://github.com/AIsa-team/aisa-proxy
  /scholar/search/mixed:
    post:
      summary: Smart search combining web and academic results
      description: Perform intelligent search that combines web and academic results
      operationId: searchSmart
      tags:
        - Scholar Search
      security:
        - BearerAuth: []
      parameters:
        - name: query
          in: query
          required: true
          description: Search query for scholarly materials
          schema:
            type: string
            example: machine learning
        - name: max_num_results
          in: query
          description: Maximum number of search results to return, up to 100
          schema:
            type: integer
            minimum: 1
            maximum: 100
            default: 10
        - name: as_ylo
          in: query
          description: Year of publication lower bound
          schema:
            type: integer
            nullable: true
            minimum: 1900
            maximum: 2030
        - name: as_yhi
          in: query
          description: Year of publication upper bound
          schema:
            type: integer
            nullable: true
            minimum: 1900
            maximum: 2030
      requestBody:
        required: false
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              properties:
                query:
                  type: string
      responses:
        '200':
          description: Successful search response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SmartSearchResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalError'
      x-x402:
        path: /apis/v2/scholar/search/mixed
        source: https://github.com/AIsa-team/aisa-proxy
  /scholar/search/scholar:
    post:
      summary: Search academic papers
      description: Perform academic paper search using Google Scholar or similar sources
      operationId: searchScholar
      tags:
        - Scholar Search
      security:
        - BearerAuth: []
      parameters:
        - name: query
          in: query
          required: true
          description: Search query for scholarly materials
          schema:
            type: string
            example: machine learning
        - name: max_num_results
          in: query
          description: Maximum number of search results to return, up to 100
          schema:
            type: integer
            minimum: 1
            maximum: 100
            default: 10
        - name: as_ylo
          in: query
          description: Year of publication lower bound
          schema:
            type: integer
            nullable: true
            minimum: 1900
            maximum: 2030
        - name: as_yhi
          in: query
          description: Year of publication upper bound
          schema:
            type: integer
            nullable: true
            minimum: 1900
            maximum: 2030
      requestBody:
        required: false
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              properties:
                query:
                  type: string
      responses:
        '200':
          description: Successful search response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ScholarSearchResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalError'
      x-x402:
        path: /apis/v2/scholar/search/scholar
        source: https://github.com/AIsa-team/aisa-proxy
  /scholar/search/web:
    post:
      summary: Search the web
      description: Perform web search and return structured results
      operationId: searchWeb
      tags:
        - Scholar Search
      security:
        - BearerAuth: []
      parameters:
        - name: query
          in: query
          required: true
          description: Search query for scholarly materials
          schema:
            type: string
            example: machine learning
        - name: max_num_results
          in: query
          description: Maximum number of search results to return, up to 100
          schema:
            type: integer
            minimum: 1
            maximum: 100
            default: 10
        - name: as_ylo
          in: query
          description: Year of publication lower bound
          schema:
            type: integer
            nullable: true
            minimum: 1900
            maximum: 2030
        - name: as_yhi
          in: query
          description: Year of publication upper bound
          schema:
            type: integer
            nullable: true
            minimum: 1900
            maximum: 2030
      requestBody:
        required: false
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              properties:
                query:
                  type: string
      responses:
        '200':
          description: Successful search response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WebSearchResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalError'
      x-x402:
        path: /apis/v2/scholar/search/web
        source: https://github.com/AIsa-team/aisa-proxy
  /services/aigc/tasks/{task_id}:
    get:
      summary: Get video generation task result
      description: >-
        Poll the status and result of a task created by `POST /apis/v1/services/aigc/video-generation/video-synthesis`.
        The `task_id` is a **path parameter**, not a query string.


        Suggested polling: every 3–5 seconds, with a hard timeout around 5 minutes.
      operationId: getVideoSynthesisTask
      tags:
        - Video Generation
      parameters:
        - name: task_id
          in: path
          required: true
          schema:
            type: string
          description: 'Task ID returned by the video-synthesis create call. Unknown IDs return `task_status: "UNKNOWN"` (HTTP 200).'
      responses:
        '200':
          description: Task status response. Always HTTP 200 — inspect `output.task_status` to tell lifecycle states apart.
          content:
            application/json:
              schema:
                type: object
                properties:
                  output:
                    type: object
                    properties:
                      task_id:
                        type: string
                      task_status:
                        type: string
                        enum:
                          - PENDING
                          - RUNNING
                          - SUCCEEDED
                          - FAILED
                          - CANCELED
                          - UNKNOWN
                      video_url:
                        type: string
                        format: uri
                        description: Present on `SUCCEEDED`. Short-lived URL — download and persist the video before it expires.
                      orig_prompt:
                        type: string
                        description: The original prompt as stored by the upstream provider.
                      submit_time:
                        type: string
                        description: When the task was accepted.
                      scheduled_time:
                        type: string
                        description: When the task was scheduled for execution.
                      end_time:
                        type: string
                        description: When the task reached a terminal state.
                      code:
                        type: string
                        description: 'Present on `FAILED`. Example: `InvalidParameter`.'
                      message:
                        type: string
                        description: Present on `FAILED`. Human-readable failure reason.
                  usage:
                    type: object
                    description: Present on `SUCCEEDED`.
                    properties:
                      input_video_duration:
                        type: integer
                        description: Duration of any input video reference (0 when none).
                      output_video_duration:
                        type: integer
                        description: Duration of the generated video in seconds.
                      duration:
                        type: number
                        description: Total duration used for billing.
                      video_count:
                        type: integer
                        description: Number of videos produced (always 1 today).
                      size:
                        type: string
                        description: >-
                          Actual dimensions of the generated video, formatted as `WIDTH*HEIGHT` (e.g., `1920*1080`).
                          Note the `*` separator. Present on `wan2.6-*` outputs.
                        example: 1920*1080
                      ratio:
                        type: string
                        description: Aspect ratio of the output (e.g., `16:9`). Present on `wan2.7-t2v` outputs.
                        example: '16:9'
                      SR:
                        type: integer
                        description: >-
                          Super-resolution output height. `wan2.6-t2v` upscales 720P input to 1080. `wan2.6-i2v`,
                          `wan2.7-t2v`, `wan2.7-i2v` return 720.
                        example: 1080
                  request_id:
                    type: string
              examples:
                succeeded:
                  summary: SUCCEEDED — video_url is populated
                  value:
                    output:
                      task_id: b3be072e-cc82-4033-8fb7-0b089846544f
                      task_status: SUCCEEDED
                      video_url: https://cdn.aisa.one/videos/wan2.6/20260418-abc.mp4
                      orig_prompt: cinematic close-up, slow push-in, shallow depth of field
                      submit_time: '2026-04-18 15:16:01.841'
                      scheduled_time: '2026-04-18 15:16:01.867'
                      end_time: '2026-04-18 15:16:42.512'
                    usage:
                      output_video_duration: 5
                      video_count: 1
                      SR: 720
                    request_id: 8a931b13-c44f-9230-a76b-83487d840060
                failed:
                  summary: FAILED (invalid prompt — not billed)
                  value:
                    output:
                      task_id: b3be072e-cc82-4033-8fb7-0b089846544f
                      task_status: FAILED
                      code: InvalidParameter
                      message: prompt must contain words
                      submit_time: '2026-04-18 15:16:01.841'
                      scheduled_time: '2026-04-18 15:16:01.867'
                      end_time: '2026-04-18 15:16:01.941'
                    request_id: 8a931b13-c44f-9230-a76b-83487d840060
                running:
                  summary: RUNNING (still processing)
                  value:
                    output:
                      task_id: b3be072e-cc82-4033-8fb7-0b089846544f
                      task_status: RUNNING
                    request_id: 8a931b13-c44f-9230-a76b-83487d840060
                unknown:
                  summary: UNKNOWN task_id (still returns HTTP 200)
                  value:
                    output:
                      task_id: bogus-task-id
                      task_status: UNKNOWN
                    request_id: 71b2b0ad-cb6f-9de4-a8bc-a88e4fb72f0e
        '401':
          description: Missing or invalid AIsa API key.
        '500':
          description: >-
            `unsupported uri` — check the path. The correct pattern is `/services/aigc/tasks/{task_id}`, not
            `/services/aigc/tasks?task_id=`.
      x-x402:
        path: /apis/v2/services/aigc/tasks/{task_id}
        source: https://github.com/AIsa-team/aisa-proxy
  /services/aigc/video-generation/video-synthesis:
    post:
      summary: Create a video generation task
      description: >-
        Submit an asynchronous video generation task. Returns a `task_id` you then poll via `GET
        /apis/v1/services/aigc/tasks/{task_id}`.


        **Models.** Four Wan variants are accepted on this single endpoint:


        | Model | Kind | Image input field |

        | --- | --- | --- |

        | `wan2.6-t2v` | text-to-video | _n/a_ |

        | `wan2.6-i2v` | image-to-video | `input.img_url` |

        | `wan2.7-t2v` | text-to-video | _n/a_ |

        | `wan2.7-i2v` | image-to-video | `input.media` ⚠️ *not* `input.img_url` |


        **Header.** `X-DashScope-Async: enable` is required.


        **Body.** `model` and `input.prompt` are always required. For i2v, provide a reference image using the field
        indicated in the table above — `wan2.6-i2v` uses `input.img_url` (string URL), while `wan2.7-i2v` uses
        `input.media` (array of URLs).


        Failed tasks (e.g., invalid prompt, missing required field) are **not billed** — the task-status response
        returns `task_status: "FAILED"` with a `code` and `message`.
      operationId: createVideoSynthesisTask
      tags:
        - Video Generation
      parameters:
        - name: X-DashScope-Async
          in: header
          required: true
          schema:
            type: string
            enum:
              - enable
          description: Must be `enable` to run asynchronously (the only mode currently supported).
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - model
                - input
              properties:
                model:
                  type: string
                  enum:
                    - wan2.6-t2v
                    - wan2.6-i2v
                    - wan2.7-t2v
                    - wan2.7-i2v
                  description: >-
                    Video generation model. Use `-t2v` suffix for text-to-video, `-i2v` for image-to-video. **Note the
                    i2v schema difference:** `wan2.6-i2v` takes a reference image via `input.img_url` (string), while
                    `wan2.7-i2v` takes it via `input.media` (array).
                  example: wan2.6-t2v
                input:
                  type: object
                  required:
                    - prompt
                  description: >-
                    Required body container. `prompt` is always required; image inputs depend on the model (see field
                    descriptions).
                  properties:
                    prompt:
                      type: string
                      description: >-
                        Text prompt describing the video. Must contain words — empty or whitespace-only prompts fail
                        upstream with `prompt must contain words`.
                    negative_prompt:
                      type: string
                      description: Optional negative prompt.
                    img_url:
                      type: string
                      format: uri
                      description: >-
                        Reference image URL. **Required** for `wan2.6-i2v`. Ignored by t2v models. **Do NOT use for
                        `wan2.7-i2v`** — that model uses `media` instead.
                    media:
                      type: array
                      items:
                        type: string
                        format: uri
                      description: >-
                        Reference image URLs as an array. **Required** for `wan2.7-i2v`. Do NOT use `img_url` with
                        `wan2.7-i2v` — the upstream validator rejects submissions without `input.media`.
                    audio_url:
                      type: string
                      format: uri
                      description: Optional reference audio URL.
                parameters:
                  type: object
                  properties:
                    resolution:
                      type: string
                      enum:
                        - 720P
                        - 1080P
                      default: 720P
                    duration:
                      type: integer
                      enum:
                        - 5
                        - 10
                      default: 5
                      description: Video length in seconds.
                    shot_type:
                      type: string
                      enum:
                        - single
                        - multi
                      default: single
                    watermark:
                      type: boolean
                      default: false
                    seed:
                      type: integer
                      minimum: 0
                      maximum: 2147483647
            examples:
              wan26_t2v:
                summary: wan2.6-t2v — text-to-video, 5 s, 720P
                value:
                  model: wan2.6-t2v
                  input:
                    prompt: cinematic close-up, slow push-in, shallow depth of field
                  parameters:
                    resolution: 720P
                    duration: 5
              wan26_i2v:
                summary: wan2.6-i2v — image-to-video (uses img_url)
                value:
                  model: wan2.6-i2v
                  input:
                    prompt: gentle camera orbit, golden hour lighting
                    img_url: https://example.com/reference.jpg
                  parameters:
                    resolution: 1080P
                    duration: 10
              wan27_t2v:
                summary: wan2.7-t2v — text-to-video, newer model
                value:
                  model: wan2.7-t2v
                  input:
                    prompt: wide sweeping shot of a neon cyberpunk skyline at dusk
                  parameters:
                    resolution: 720P
                    duration: 5
              wan27_i2v:
                summary: wan2.7-i2v — image-to-video (uses media ARRAY, not img_url)
                value:
                  model: wan2.7-i2v
                  input:
                    prompt: gentle zoom with parallax, cinematic color grading
                    media:
                      - https://example.com/reference.jpg
                  parameters:
                    resolution: 720P
                    duration: 5
      responses:
        '200':
          description: Task created — poll `/services/aigc/tasks/{task_id}` for progress.
          content:
            application/json:
              schema:
                type: object
                properties:
                  output:
                    type: object
                    properties:
                      task_id:
                        type: string
                        description: Pass this to `GET /services/aigc/tasks/{task_id}`.
                      task_status:
                        type: string
                        enum:
                          - PENDING
                  request_id:
                    type: string
              example:
                output:
                  task_id: b3be072e-cc82-4033-8fb7-0b089846544f
                  task_status: PENDING
                request_id: 8a931b13-c44f-9230-a76b-83487d840060
        '400':
          description: Invalid request body.
        '401':
          description: Missing or invalid AIsa API key.
        '429':
          description: Rate limit hit.
        '500':
          description: >-
            `model not supported` (the model isn't routed through this endpoint) or `input param is required` (body
            missing `input`).


            Note: for `wan2.7-i2v`, submission **succeeds with HTTP 200** even without the image input — the task later
            lands in `FAILED` status with `code: "InvalidParameter"` and `message: "Field required: input.media"`.
      x-x402:
        path: /apis/v2/services/aigc/video-generation/video-synthesis
        source: https://github.com/AIsa-team/aisa-proxy
  /tavily/crawl:
    post:
      tags:
        - Web & News Search
      summary: Graph-based website traversal tool using Tavily Crawl.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                url:
                  type: string
                  description: The root URL to begin the crawl.
                  example: docs.tavily.com
                instructions:
                  type: string
                  description: Natural language instructions for the crawler.
                chunks_per_source:
                  type: integer
                  default: 3
                  description: Maximum number of relevant chunks returned per source.
                  minimum: 1
                  maximum: 5
                max_depth:
                  type: integer
                  default: 1
                  description: Max depth of the crawl.
                  minimum: 1
                  maximum: 5
                max_breadth:
                  type: integer
                  default: 20
                  description: Max number of links to follow per level of the tree.
                  minimum: 1
                  maximum: 500
                limit:
                  type: integer
                  default: 50
                  description: Total number of links the crawler will process before stopping.
                  minimum: 1
                select_paths:
                  type: array
                  items:
                    type: string
                  description: Regex patterns to select only URLs with specific path patterns.
                select_domains:
                  type: array
                  items:
                    type: string
                  description: Regex patterns to select crawling to specific domains or subdomains.
                exclude_paths:
                  type: array
                  items:
                    type: string
                  description: Regex patterns to exclude URLs with specific path patterns.
                exclude_domains:
                  type: array
                  items:
                    type: string
                  description: Regex patterns to exclude specific domains or subdomains from crawling.
                allow_external:
                  type: boolean
                  default: true
                  description: Include external domain links in the final results list.
                include_images:
                  type: boolean
                  default: false
                  description: Include images in the crawl results.
                extract_depth:
                  type: string
                  enum:
                    - basic
                    - advanced
                  default: basic
                  description: Depth of the extraction process.
                format:
                  type: string
                  enum:
                    - markdown
                    - text
                  default: markdown
                  description: Format of the extracted web page content.
                include_favicon:
                  type: boolean
                  default: false
                  description: Include the favicon URL for each result.
                timeout:
                  type: number
                  format: float
                  default: 150
                  description: Maximum time in seconds to wait for the crawl operation.
                  minimum: 10
                  maximum: 150
                include_usage:
                  type: boolean
                  default: false
                  description: Include credit usage information in the response.
              required:
                - url
      responses:
        '200':
          description: Crawl results returned successfully.
          content:
            application/json:
              schema:
                type: object
                properties:
                  base_url:
                    type: string
                    description: The base URL that was crawled.
                  results:
                    type: array
                    items:
                      type: object
                      properties:
                        url:
                          type: string
                          description: URL of the crawled page.
                        raw_content:
                          type: string
                          description: Extracted raw content from the page.
                        favicon:
                          type: string
                          description: Favicon URL of the crawled page.
                  response_time:
                    type: number
                    format: float
                    description: Time in seconds it took to complete the request.
                  usage:
                    type: object
                    properties:
                      credits:
                        type: integer
                        description: Credit usage details for the request.
                  request_id:
                    type: string
                    description: Unique request identifier.
      x-x402:
        path: /apis/v2/tavily/crawl
        source: https://github.com/AIsa-team/aisa-proxy
  /tavily/extract:
    post:
      tags:
        - Web & News Search
      summary: Extract web page content from specified URLs using Tavily Extract.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                urls:
                  type: array
                  items:
                    type: string
                  description: The URLs to extract content from.
                  example:
                    - https://en.wikipedia.org/wiki/Artificial_intelligence
                query:
                  type: string
                  description: User intent for reranking extracted content chunks.
                chunks_per_source:
                  type: integer
                  default: 3
                  description: Maximum number of relevant chunks returned per source.
                  minimum: 1
                  maximum: 5
                extract_depth:
                  type: string
                  enum:
                    - basic
                    - advanced
                  default: basic
                  description: Depth of the extraction process.
                include_images:
                  type: boolean
                  default: false
                  description: Include a list of images extracted from the URLs.
                include_favicon:
                  type: boolean
                  default: false
                  description: Include the favicon URL for each result.
                format:
                  type: string
                  enum:
                    - markdown
                    - text
                  default: markdown
                  description: Format of the extracted web page content.
                timeout:
                  type: number
                  format: float
                  description: Maximum time in seconds to wait for the URL extraction.
                  minimum: 1
                  maximum: 60
                include_usage:
                  type: boolean
                  default: false
                  description: Include credit usage information in the response.
              required:
                - urls
      responses:
        '200':
          description: Extraction results returned successfully.
          content:
            application/json:
              schema:
                type: object
                properties:
                  results:
                    type: array
                    items:
                      type: object
                      properties:
                        url:
                          type: string
                          description: URL of the extracted content.
                        raw_content:
                          type: string
                          description: Extracted raw content from the URL.
                        favicon:
                          type: string
                          description: Favicon URL of the extracted content.
                  failed_results:
                    type: array
                    items:
                      type: string
                    description: List of URLs that could not be processed.
                  response_time:
                    type: number
                    format: float
                    description: Time in seconds it took to complete the request.
                  usage:
                    type: object
                    properties:
                      credits:
                        type: integer
                        description: Credit usage details for the request.
                  request_id:
                    type: string
                    description: Unique request identifier.
      x-x402:
        path: /apis/v2/tavily/extract
        source: https://github.com/AIsa-team/aisa-proxy
  /tavily/map:
    post:
      tags:
        - Web & News Search
      summary: Generate comprehensive site maps using Tavily Map.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                url:
                  type: string
                  description: The root URL to begin the mapping.
                  example: docs.tavily.com
                instructions:
                  type: string
                  description: Natural language instructions for the crawler.
                max_depth:
                  type: integer
                  default: 1
                  description: Max depth of the mapping.
                  minimum: 1
                  maximum: 5
                max_breadth:
                  type: integer
                  default: 20
                  description: Max number of links to follow per level of the tree.
                  minimum: 1
                  maximum: 500
                limit:
                  type: integer
                  default: 50
                  description: Total number of links the crawler will process before stopping.
                  minimum: 1
                select_paths:
                  type: array
                  items:
                    type: string
                  description: Regex patterns to select only URLs with specific path patterns.
                select_domains:
                  type: array
                  items:
                    type: string
                  description: Regex patterns to select crawling to specific domains or subdomains.
                exclude_paths:
                  type: array
                  items:
                    type: string
                  description: Regex patterns to exclude URLs with specific path patterns.
                exclude_domains:
                  type: array
                  items:
                    type: string
                  description: Regex patterns to exclude specific domains or subdomains from mapping.
                allow_external:
                  type: boolean
                  default: true
                  description: Include external domain links in the final results list.
                timeout:
                  type: number
                  format: float
                  default: 150
                  description: Maximum time in seconds to wait for the map operation.
                  minimum: 10
                  maximum: 150
                include_usage:
                  type: boolean
                  default: false
                  description: Include credit usage information in the response.
              required:
                - url
      responses:
        '200':
          description: Map results returned successfully.
          content:
            application/json:
              schema:
                type: object
                properties:
                  base_url:
                    type: string
                    description: The base URL that was mapped.
                  results:
                    type: array
                    items:
                      type: string
                      description: URLs discovered during the mapping.
                  response_time:
                    type: number
                    format: float
                    description: Time in seconds it took to complete the request.
                  usage:
                    type: object
                    properties:
                      credits:
                        type: integer
                        description: Credit usage details for the request.
                  request_id:
                    type: string
                    description: Unique request identifier.
      x-x402:
        path: /apis/v2/tavily/map
        source: https://github.com/AIsa-team/aisa-proxy
  /tavily/search:
    post:
      tags:
        - Web & News Search
      summary: Execute a search query using Tavily Search.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                query:
                  type: string
                  description: The search query to execute with Tavily.
                  example: Who is Leo Messi?
                search_depth:
                  type: string
                  enum:
                    - advanced
                    - basic
                    - fast
                    - ultra-fast
                  default: basic
                  description: Controls the latency vs. relevance tradeoff.
                chunks_per_source:
                  type: integer
                  default: 3
                  description: Maximum number of relevant chunks returned per source.
                  minimum: 1
                  maximum: 3
                max_results:
                  type: integer
                  default: 5
                  description: Maximum number of search results to return.
                  minimum: 0
                  maximum: 20
                topic:
                  type: string
                  enum:
                    - general
                    - news
                    - finance
                  default: general
                  description: Category of the search.
                time_range:
                  type: string
                  enum:
                    - day
                    - week
                    - month
                    - year
                    - d
                    - w
                    - m
                    - 'y'
                  description: Time range to filter results based on publish date.
                start_date:
                  type: string
                  format: date
                  description: Return results after the specified start date.
                  example: '2025-02-09'
                end_date:
                  type: string
                  format: date
                  description: Return results before the specified end date.
                  example: '2025-12-29'
                include_answer:
                  type: boolean
                  default: false
                  description: Include an LLM-generated answer to the query.
                include_raw_content:
                  type: boolean
                  default: false
                  description: Include cleaned and parsed HTML content of each search result.
                include_images:
                  type: boolean
                  default: false
                  description: Perform an image search and include results.
                include_image_descriptions:
                  type: boolean
                  default: false
                  description: Add descriptive text for each image when include_images is true.
                include_favicon:
                  type: boolean
                  default: false
                  description: Include the favicon URL for each result.
                include_domains:
                  type: array
                  items:
                    type: string
                  description: List of domains to specifically include in the search results.
                  maxItems: 300
                exclude_domains:
                  type: array
                  items:
                    type: string
                  description: List of domains to specifically exclude from the search results.
                  maxItems: 150
                country:
                  type: string
                  description: Boost search results from a specific country.
                  enum:
                    - afghanistan
                    - albania
                    - algeria
                    - andorra
                    - angola
                    - argentina
                    - armenia
                    - australia
                    - austria
                    - azerbaijan
                    - bahamas
                    - bahrain
                    - bangladesh
                    - barbados
                    - belarus
                    - belgium
                    - belize
                    - benin
                    - bhutan
                    - bolivia
                    - bosnia and herzegovina
                    - botswana
                    - brazil
                    - brunei
                    - bulgaria
                    - burkina faso
                    - burundi
                    - cambodia
                    - cameroon
                    - canada
                    - cape verde
                    - central african republic
                    - chad
                    - chile
                    - china
                    - colombia
                    - comoros
                    - congo
                    - costa rica
                    - croatia
                    - cuba
                    - cyprus
                    - czech republic
                    - denmark
                    - djibouti
                    - dominican republic
                    - ecuador
                    - egypt
                    - el salvador
                    - equatorial guinea
                    - eritrea
                    - estonia
                    - ethiopia
                    - fiji
                    - finland
                    - france
                    - gabon
                    - gambia
                    - georgia
                    - germany
                    - ghana
                    - greece
                    - guatemala
                    - guinea
                    - haiti
                    - honduras
                    - hungary
                    - iceland
                    - india
                    - indonesia
                    - iran
                    - iraq
                    - ireland
                    - israel
                    - italy
                    - jamaica
                    - japan
                    - jordan
                    - kazakhstan
                    - kenya
                    - kuwait
                    - kyrgyzstan
                    - latvia
                    - lebanon
                    - lesotho
                    - liberia
                    - libya
                    - liechtenstein
                    - lithuania
                    - luxembourg
                    - madagascar
                    - malawi
                    - malaysia
                    - maldives
                    - mali
                    - malta
                    - mauritania
                    - mauritius
                    - mexico
                    - moldova
                    - monaco
                    - mongolia
                    - montenegro
                    - morocco
                    - mozambique
                    - myanmar
                    - namibia
                    - nepal
                    - netherlands
                    - new zealand
                    - nicaragua
                    - niger
                    - nigeria
                    - north korea
                    - north macedonia
                    - norway
                    - oman
                    - pakistan
                    - panama
                    - papua new guinea
                    - paraguay
                    - peru
                    - philippines
                    - poland
                    - portugal
                    - qatar
                    - romania
                    - russia
                    - rwanda
                    - saudi arabia
                    - senegal
                    - serbia
                    - singapore
                    - slovakia
                    - slovenia
                    - somalia
                    - south africa
                    - south korea
                    - south sudan
                    - spain
                    - sri lanka
                    - sudan
                    - sweden
                    - switzerland
                    - syria
                    - taiwan
                    - tajikistan
                    - tanzania
                    - thailand
                    - togo
                    - trinidad and tobago
                    - tunisia
                    - turkey
                    - turkmenistan
                    - uganda
                    - ukraine
                    - united arab emirates
                    - united kingdom
                    - united states
                    - uruguay
                    - uzbekistan
                    - venezuela
                    - vietnam
                    - yemen
                    - zambia
                    - zimbabwe
                auto_parameters:
                  type: boolean
                  default: false
                  description: Automatically configure search parameters based on query content.
                include_usage:
                  type: boolean
                  default: false
                  description: Include credit usage information in the response.
              required:
                - query
      responses:
        '200':
          description: Search results returned successfully.
          content:
            application/json:
              schema:
                type: object
                properties:
                  query:
                    type: string
                    description: The search query that was executed.
                  answer:
                    type: string
                    description: A short answer to the user's query, generated by an LLM.
                  images:
                    type: array
                    items:
                      type: object
                      properties:
                        url:
                          type: string
                          description: Image URL.
                        description:
                          type: string
                          description: Image description.
                  results:
                    type: array
                    items:
                      type: object
                      properties:
                        title:
                          type: string
                          description: Title of the search result.
                        url:
                          type: string
                          description: URL of the search result.
                        content:
                          type: string
                          description: Content snippet of the search result.
                        score:
                          type: number
                          format: float
                          description: Relevance score of the search result.
                        favicon:
                          type: string
                          description: Favicon URL of the search result.
                  response_time:
                    type: number
                    format: float
                    description: Time in seconds it took to complete the request.
                  usage:
                    type: object
                    properties:
                      credits:
                        type: integer
                        description: Credit usage details for the request.
                  request_id:
                    type: string
                    description: Unique request identifier.
      x-x402:
        path: /apis/v2/tavily/search
        source: https://github.com/AIsa-team/aisa-proxy
  /twitter/article:
    get:
      tags:
        - Twitter / X
      summary: Get Article
      description: Get article by tweet ID.
      parameters:
        - name: tweet_id
          in: query
          required: true
          schema:
            type: string
          description: The tweet ID of the article.
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ArticleResponse'
      x-x402:
        path: /apis/v2/twitter/article
        source: https://github.com/AIsa-team/aisa-proxy
  /twitter/auth_twitter:
    post:
      summary: Link an X/Twitter account (start OAuth)
      description: >-
        Start the OAuth flow that links a user's X/Twitter account to the AIsa API key on the request. Call this once
        per source user. AIsa returns an authorization URL — the user opens it in a browser, approves the requested
        scopes, and X redirects back to AIsa's fixed callback. AIsa stores the resulting session against your API key,
        and every subsequent Twitter write call (e.g., `POST /twitter/follow_twitter`) uses that session automatically.


        The returned `auth_url` is short-lived; generate a fresh one every time the user needs to (re-)link.
      operationId: authTwitterUser
      security:
        - BearerAuth: []
      requestBody:
        required: false
        content:
          application/json:
            schema:
              type: object
              properties:
                scopes:
                  type: array
                  items:
                    type: string
                  description: >-
                    Optional list of X OAuth 2.0 scopes to request. Defaults to the set required by AIsa's Twitter write
                    endpoints: `follows.write`, `tweet.read`, `users.read`, `tweet.write`, `like.write`, `dm.read`,
                    `dm.write`.
                  example:
                    - follows.write
                    - tweet.read
                    - users.read
            example: {}
      responses:
        '200':
          description: Authorization URL generated.
          content:
            application/json:
              schema:
                type: object
                required:
                  - auth_url
                  - state
                properties:
                  auth_url:
                    type: string
                    format: uri
                    description: >-
                      Short-lived X OAuth authorization URL. Open it in a browser so the source user can approve the
                      requested scopes.
                  state:
                    type: string
                    description: >-
                      Opaque CSRF state token that AIsa will validate when X redirects back to its callback. Store it
                      client-side if you need to correlate the flow.
                  expires_at:
                    type: string
                    format: date-time
                    description: >-
                      When the `auth_url` expires. Request a new one if the user hasn't completed the flow before this
                      time.
              example:
                auth_url: >-
                  https://twitter.com/i/oauth2/authorize?response_type=code&client_id=AIsa&redirect_uri=https%3A%2F%2Fapi.aisa.one%2Fapis%2Fv1%2Ftwitter%2Foauth_callback&scope=follows.write%20tweet.read%20users.read&state=0c2...d1f&code_challenge=...&code_challenge_method=S256
                state: 0c2ad1f...
                expires_at: '2026-04-18T07:00:00Z'
        '400':
          description: Invalid `scopes` list — contains an unsupported scope.
        '401':
          description: Missing or invalid AIsa API key.
        '429':
          description: Rate limit hit.
        '500':
          description: Internal error generating the OAuth URL.
      tags:
        - Twitter / X
      x-x402:
        path: /apis/v2/twitter/auth_twitter
        source: https://github.com/AIsa-team/aisa-proxy
  /twitter/community/get_tweets_from_all_community:
    get:
      tags:
        - Twitter / X
      summary: Search Tweets From All Communities
      description: Search tweets from all communities.
      parameters:
        - name: query
          in: query
          required: true
          schema:
            type: string
          description: Search query (e.g., keyword)
        - name: queryType
          in: query
          required: true
          schema:
            type: string
            enum:
              - Latest
              - Top
            default: Latest
          description: Query type (Latest or Top)
        - name: cursor
          in: query
          required: false
          schema:
            type: string
          description: Cursor for pagination
      responses:
        '200':
          description: Tweets response
          content:
            application/json:
              schema:
                type: object
                properties:
                  tweets:
                    type: array
                    items:
                      $ref: '#/components/schemas/Tweet'
                  has_next_page:
                    type: boolean
                  next_cursor:
                    type: string
      x-x402:
        path: /apis/v2/twitter/community/get_tweets_from_all_community
        source: https://github.com/AIsa-team/aisa-proxy
  /twitter/community/info:
    get:
      tags:
        - Twitter / X
      summary: Get Community Info By Id
      description: Retrieve information about a community by its ID.
      parameters:
        - name: community_id
          in: query
          required: true
          schema:
            type: string
          description: ID of the community
      responses:
        '200':
          description: Community info response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CommunityInfo'
      x-x402:
        path: /apis/v2/twitter/community/info
        source: https://github.com/AIsa-team/aisa-proxy
  /twitter/community/members:
    get:
      tags:
        - Twitter / X
      summary: Get Community Members
      description: Retrieve members of a community.
      parameters:
        - name: community_id
          in: query
          required: true
          schema:
            type: string
          description: ID of the community
        - name: cursor
          in: query
          required: false
          schema:
            type: string
          description: Cursor for pagination
      responses:
        '200':
          description: Community members response
          content:
            application/json:
              schema:
                type: object
                properties:
                  members:
                    type: array
                    items:
                      $ref: '#/components/schemas/User'
                  has_next_page:
                    type: boolean
                  next_cursor:
                    type: string
      x-x402:
        path: /apis/v2/twitter/community/members
        source: https://github.com/AIsa-team/aisa-proxy
  /twitter/community/moderators:
    get:
      tags:
        - Twitter / X
      summary: Get Community Moderators
      description: Retrieve moderators of a community.
      parameters:
        - name: community_id
          in: query
          required: true
          schema:
            type: string
          description: ID of the community
        - name: cursor
          in: query
          required: false
          schema:
            type: string
          description: Cursor for pagination
      responses:
        '200':
          description: Community moderators response
          content:
            application/json:
              schema:
                type: object
                properties:
                  members:
                    type: array
                    items:
                      $ref: '#/components/schemas/User'
                  has_next_page:
                    type: boolean
                  next_cursor:
                    type: string
      x-x402:
        path: /apis/v2/twitter/community/moderators
        source: https://github.com/AIsa-team/aisa-proxy
  /twitter/community/tweets:
    get:
      tags:
        - Twitter / X
      summary: Get Community Tweets
      description: Retrieve tweets of a community.
      parameters:
        - name: community_id
          in: query
          required: true
          schema:
            type: string
          description: ID of the community
        - name: cursor
          in: query
          required: false
          schema:
            type: string
          description: Cursor for pagination
      responses:
        '200':
          description: Community tweets response
          content:
            application/json:
              schema:
                type: object
                properties:
                  tweets:
                    type: array
                    items:
                      $ref: '#/components/schemas/Tweet'
                  has_next_page:
                    type: boolean
                  next_cursor:
                    type: string
      x-x402:
        path: /apis/v2/twitter/community/tweets
        source: https://github.com/AIsa-team/aisa-proxy
  /twitter/follow_twitter:
    post:
      summary: Follow a user on X/Twitter
      description: >-
        Make the authenticated source user follow the given target user on X/Twitter. Mirrors the [official X v2 `POST
        /2/users/{id}/following` endpoint](https://docs.x.com/x-api/users/follow-user), routed through the AIsa gateway.


        **Authentication.** This is a write action that requires an OAuth session for the source user, attached to your
        AIsa API key. Link your X account once by calling `POST /apis/v1/twitter/auth_twitter` — AIsa then uses that
        session automatically for every write request sent with your key.


        **Scopes.** The underlying X session must hold `follows.write`, `tweet.read`, and `users.read`.
      operationId: followTwitterUser
      security:
        - BearerAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - target_user_id
              properties:
                target_user_id:
                  type: string
                  description: Numeric ID of the X/Twitter user to follow. Must match the X regex `^[0-9]{1,19}$`.
                  pattern: ^[0-9]{1,19}$
                  example: '6253282'
            examples:
              follow_user:
                summary: Follow @TwitterDev (id 2244994945)
                value:
                  target_user_id: '2244994945'
      responses:
        '200':
          description: Follow succeeded (or was already in place).
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      following:
                        type: boolean
                        description: '`true` when the source user now follows the target user.'
                      pending_follow:
                        type: boolean
                        description: '`true` when a follow request has been sent to a protected account and is awaiting approval.'
              example:
                data:
                  following: true
                  pending_follow: false
        '400':
          description: Invalid request — missing or malformed `target_user_id`.
        '401':
          description: Missing or invalid AIsa API key.
        '403':
          description: OAuth session missing, expired, or lacking the `follows.write` scope. Re-authorize from the dashboard.
        '429':
          description: Rate limit hit — either your AIsa key's RPM cap or the upstream X rate limit.
        '500':
          description: Internal error.
        '502':
          description: Upstream X API unreachable or returned an error. Safe to retry with exponential backoff.
      tags:
        - Twitter / X
      x-x402:
        path: /apis/v2/twitter/follow_twitter
        source: https://github.com/AIsa-team/aisa-proxy
  /twitter/like_twitter:
    post:
      summary: Like a tweet
      description: >-
        Like a tweet on behalf of the authenticated source user. Mirrors the [official X v2 `POST /2/users/{id}/likes`
        endpoint](https://docs.x.com/x-api/users/like-post), routed through the AIsa gateway.


        **Authentication.** Requires an OAuth session for the source user, attached to your AIsa API key. Link the
        account once via `POST /apis/v1/twitter/auth_twitter`.


        **Scopes.** The underlying X session must hold `like.write`, `tweet.read`, and `users.read`.


        Liking a tweet already liked is a no-op and still returns `200` with `liked: true`.
      operationId: likeTwitter
      security:
        - BearerAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - tweet_id
              properties:
                tweet_id:
                  type: string
                  description: Numeric ID of the tweet to like. Must match X's regex `^[0-9]{1,19}$`.
                  pattern: ^[0-9]{1,19}$
                  example: '1346889436626259968'
            examples:
              like_tweet:
                summary: Like tweet 1346889436626259968
                value:
                  tweet_id: '1346889436626259968'
      responses:
        '200':
          description: Like succeeded (or was already in place).
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      liked:
                        type: boolean
                        description: '`true` once the source user has liked the target tweet.'
              example:
                data:
                  liked: true
        '400':
          description: Invalid request — missing or malformed `tweet_id`.
        '401':
          description: Missing or invalid AIsa API key.
        '403':
          description: >-
            OAuth session missing, expired, or lacking `like.write`. Re-authorize via `POST
            /apis/v1/twitter/auth_twitter`.
        '404':
          description: Tweet not found or not visible to the source user.
        '429':
          description: Rate limit hit — either your AIsa key's RPM cap or the upstream X rate limit.
        '500':
          description: Internal error.
        '502':
          description: Upstream X API unreachable. Safe to retry with exponential backoff.
      tags:
        - Twitter / X
      x-x402:
        path: /apis/v2/twitter/like_twitter
        source: https://github.com/AIsa-team/aisa-proxy
  /twitter/list/followers:
    get:
      tags:
        - Twitter / X
      summary: Get List Followers
      description: Get followers of a list. Page size is 20.
      parameters:
        - name: list_id
          in: query
          required: true
          schema:
            type: string
          description: ID of the list
        - name: cursor
          in: query
          required: false
          schema:
            type: string
          description: Cursor of the page
      responses:
        '200':
          description: List followers of the list
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TwitterListFollowersResponse'
      x-x402:
        path: /apis/v2/twitter/list/followers
        source: https://github.com/AIsa-team/aisa-proxy
  /twitter/list/members:
    get:
      tags:
        - Twitter / X
      summary: Get List Members
      description: Get members of a list. Page size is 20.
      parameters:
        - name: list_id
          in: query
          required: true
          schema:
            type: string
          description: ID of the list
        - name: cursor
          in: query
          required: false
          schema:
            type: string
          description: Cursor of the page
      responses:
        '200':
          description: List members response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TwitterListMembersResponse'
      x-x402:
        path: /apis/v2/twitter/list/members
        source: https://github.com/AIsa-team/aisa-proxy
  /twitter/post_twitter:
    post:
      summary: Post or edit a tweet
      description: >-
        Publish a new tweet on behalf of the authenticated source user, or edit an existing tweet. Mirrors the [official
        X v2 `POST /2/tweets` endpoint](https://docs.x.com/x-api/posts/create-post), routed through the AIsa gateway.


        **Authentication.** Requires an OAuth session for the source user, attached to your AIsa API key. Link the
        account once via `POST /apis/v1/twitter/auth_twitter`.


        **Scopes.** The underlying X session must hold `tweet.read`, `tweet.write`, and `users.read`.


        **Mutually exclusive fields.** `media`, `poll`, `quote_tweet_id`, and `card_uri` cannot be combined in the same
        request. At most one of them may be set.
      operationId: postTwitter
      security:
        - BearerAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                text:
                  type: string
                  description: The content of the tweet. Optional when posting media, a poll, or a quote tweet; required otherwise.
                  example: Hello from AIsa — shipping agent-friendly Twitter APIs.
                reply:
                  type: object
                  description: Post as a reply to another tweet.
                  required:
                    - in_reply_to_tweet_id
                  properties:
                    in_reply_to_tweet_id:
                      type: string
                      description: Tweet ID being replied to.
                      pattern: ^[0-9]{1,19}$
                    auto_populate_reply_metadata:
                      type: boolean
                      description: Auto-populate reply @-mentions from the original tweet.
                    exclude_reply_user_ids:
                      type: array
                      items:
                        type: string
                        pattern: ^[0-9]{1,19}$
                      maxItems: 10
                      description: User IDs to exclude from reply auto-mentions (max 10).
                quote_tweet_id:
                  type: string
                  description: Tweet ID to quote. Mutually exclusive with `media`, `poll`, and `card_uri`.
                  pattern: ^[0-9]{1,19}$
                media:
                  type: object
                  description: Attach media. Mutually exclusive with `poll`, `quote_tweet_id`, and `card_uri`.
                  required:
                    - media_ids
                  properties:
                    media_ids:
                      type: array
                      items:
                        type: string
                      minItems: 1
                      maxItems: 4
                      description: 1–4 media IDs from the X media-upload API.
                    tagged_user_ids:
                      type: array
                      items:
                        type: string
                        pattern: ^[0-9]{1,19}$
                      maxItems: 10
                      description: User IDs tagged in the media (max 10).
                poll:
                  type: object
                  description: Attach a poll. Mutually exclusive with `media`, `quote_tweet_id`, and `card_uri`.
                  required:
                    - options
                    - duration_minutes
                  properties:
                    options:
                      type: array
                      items:
                        type: string
                        maxLength: 25
                      minItems: 2
                      maxItems: 4
                      description: 2–4 poll choices, each 1–25 characters.
                    duration_minutes:
                      type: integer
                      minimum: 5
                      maximum: 10080
                      description: Poll duration in minutes (5–10080, i.e. up to 7 days).
                    reply_settings:
                      type: string
                      enum:
                        - following
                        - mentionedUsers
                        - subscribers
                        - verified
                card_uri:
                  type: string
                  description: Card URI. Mutually exclusive with `media`, `poll`, `quote_tweet_id`, and `direct_message_deep_link`.
                direct_message_deep_link:
                  type: string
                  description: Deep link that takes the conversation into a private DM.
                geo:
                  type: object
                  description: Attach a place to the tweet.
                  properties:
                    place_id:
                      type: string
                      description: X place ID.
                reply_settings:
                  type: string
                  enum:
                    - following
                    - mentionedUsers
                    - subscribers
                    - verified
                  description: Who is allowed to reply.
                for_super_followers_only:
                  type: boolean
                  default: false
                  description: Only visible to super followers.
                nullcast:
                  type: boolean
                  default: false
                  description: Nullcast (promoted-only) tweet — not shown in the public timeline or to followers.
                paid_partnership:
                  type: boolean
                  description: Marks the tweet as a paid partnership.
                made_with_ai:
                  type: boolean
                  description: Flags the tweet as containing AI-generated media.
                community_id:
                  type: string
                  pattern: ^[0-9]{1,19}$
                  description: Post into the specified community.
                share_with_followers:
                  type: boolean
                  default: false
                  description: Also share the community post with your followers.
                edit_options:
                  type: object
                  description: Edit an existing tweet instead of creating a new one (subject to X's edit window).
                  required:
                    - previous_post_id
                  properties:
                    previous_post_id:
                      type: string
                      pattern: ^[0-9]{1,19}$
                      description: Tweet ID to edit.
            examples:
              simple_text:
                summary: Plain text tweet
                value:
                  text: Hello, World!
              reply:
                summary: Reply to a tweet
                value:
                  text: Totally agree 👌
                  reply:
                    in_reply_to_tweet_id: '1234567890123456789'
                    auto_populate_reply_metadata: true
              with_poll:
                summary: Tweet with a poll
                value:
                  text: 'Pick your favorite:'
                  poll:
                    options:
                      - Option A
                      - Option B
                      - Option C
                    duration_minutes: 60
              with_media:
                summary: Tweet with media
                value:
                  text: Ship log 📸
                  media:
                    media_ids:
                      - '1146654567674912769'
                    tagged_user_ids:
                      - '2244994945'
              quote:
                summary: Quote tweet
                value:
                  text: 'Worth reading:'
                  quote_tweet_id: '1234567890123456789'
              edit:
                summary: Edit an existing tweet
                value:
                  text: Updated tweet content (typo fixed).
                  edit_options:
                    previous_post_id: '1234567890123456789'
      responses:
        '201':
          description: Tweet created (or edited) successfully.
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      id:
                        type: string
                        pattern: ^[0-9]{1,19}$
                        description: ID of the newly created or edited tweet.
                      text:
                        type: string
                        description: Final text of the tweet as stored by X.
              example:
                data:
                  id: '1346889436626259968'
                  text: Hello, World!
        '400':
          description: Invalid request — violated a mutual-exclusivity rule, missing required field, or text too long.
        '401':
          description: Missing or invalid AIsa API key.
        '403':
          description: >-
            OAuth session missing, expired, or lacking `tweet.write`. Re-authorize via `POST
            /apis/v1/twitter/auth_twitter`.
        '404':
          description: Referenced tweet (reply, quote, or edit target) not found.
        '409':
          description: Conflict — e.g., duplicate tweet content or edit outside the allowed window.
        '429':
          description: Rate limit hit.
        '500':
          description: Internal error.
        '502':
          description: Upstream X API unreachable.
      tags:
        - Twitter / X
      x-x402:
        path: /apis/v2/twitter/post_twitter
        source: https://github.com/AIsa-team/aisa-proxy
  /twitter/spaces/detail:
    get:
      tags:
        - Twitter / X
      summary: Get Space Detail
      description: Get details of a Twitter Space by its ID.
      parameters:
        - name: space_id
          in: query
          required: true
          schema:
            type: string
          description: The ID of the space.
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SpaceDetailResponse'
      x-x402:
        path: /apis/v2/twitter/spaces/detail
        source: https://github.com/AIsa-team/aisa-proxy
  /twitter/trends:
    get:
      tags:
        - Twitter / X
      summary: Get Trends
      description: Get trends by WOEID.
      parameters:
        - name: woeid
          in: query
          required: true
          schema:
            type: integer
            format: int64
          description: 'The WOEID of the location. Example: 2418046.'
        - name: count
          in: query
          required: false
          schema:
            type: integer
            format: int64
            default: 30
            minimum: 30
          description: The number of trends to return. Default is 30.
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TrendsResponse'
      x-x402:
        path: /apis/v2/twitter/trends
        source: https://github.com/AIsa-team/aisa-proxy
  /twitter/tweet/advanced_search:
    get:
      tags:
        - Twitter / X
      summary: Advanced Search
      description: Advanced search for tweets.
      parameters:
        - name: query
          in: query
          required: true
          schema:
            type: string
          description: The query to search for.
        - name: queryType
          in: query
          required: true
          schema:
            type: string
            enum:
              - Latest
              - Top
            default: Latest
          description: The query type to search for.
        - name: cursor
          in: query
          required: false
          schema:
            type: string
          description: The cursor to paginate through the results. First page is empty.
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AdvancedSearchResponse'
      x-x402:
        path: /apis/v2/twitter/tweet/advanced_search
        source: https://github.com/AIsa-team/aisa-proxy
  /twitter/tweet/quotes:
    get:
      tags:
        - Twitter / X
      summary: Get Tweet Quotations
      parameters:
        - name: tweetId
          in: query
          required: true
          schema:
            type: string
          description: The tweet ID to get quotes for.
        - name: cursor
          in: query
          schema:
            type: string
          description: Cursor for pagination.
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: object
                properties:
                  tweets:
                    type: array
                    items:
                      $ref: '#/components/schemas/Tweet'
                  has_next_page:
                    type: boolean
                  next_cursor:
                    type: string
                  status:
                    type: string
                  message:
                    type: string
      x-x402:
        path: /apis/v2/twitter/tweet/quotes
        source: https://github.com/AIsa-team/aisa-proxy
  /twitter/tweet/replies:
    get:
      tags:
        - Twitter / X
      summary: Get Tweet Replies
      parameters:
        - name: tweetId
          in: query
          required: true
          schema:
            type: string
          description: The tweet ID to get replies for.
        - name: cursor
          in: query
          schema:
            type: string
          description: Cursor for pagination.
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: object
                properties:
                  replies:
                    type: array
                    items:
                      $ref: '#/components/schemas/Tweet'
                  has_next_page:
                    type: boolean
                  next_cursor:
                    type: string
                  status:
                    type: string
                  message:
                    type: string
      x-x402:
        path: /apis/v2/twitter/tweet/replies
        source: https://github.com/AIsa-team/aisa-proxy
  /twitter/tweet/retweeters:
    get:
      tags:
        - Twitter / X
      summary: Get Tweet Retweeters
      parameters:
        - name: tweetId
          in: query
          required: true
          schema:
            type: string
          description: The tweet ID to get retweeters for.
        - name: cursor
          in: query
          schema:
            type: string
          description: Cursor for pagination.
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: object
                properties:
                  users:
                    type: array
                    items:
                      $ref: '#/components/schemas/User'
                  has_next_page:
                    type: boolean
                  next_cursor:
                    type: string
                  status:
                    type: string
                  message:
                    type: string
      x-x402:
        path: /apis/v2/twitter/tweet/retweeters
        source: https://github.com/AIsa-team/aisa-proxy
  /twitter/tweet/thread_context:
    get:
      tags:
        - Twitter / X
      summary: Get Tweet Thread Context
      description: Get the thread context of a tweet.
      parameters:
        - name: tweetId
          in: query
          required: true
          schema:
            type: string
          description: The tweet ID to get. Can be a reply tweet or an original tweet.
        - name: cursor
          in: query
          required: false
          schema:
            type: string
          description: The cursor to paginate through the results. First page is empty.
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TweetThreadContextResponse'
      x-x402:
        path: /apis/v2/twitter/tweet/thread_context
        source: https://github.com/AIsa-team/aisa-proxy
  /twitter/tweets:
    get:
      tags:
        - Twitter / X
      summary: Get Tweets by IDs
      parameters:
        - name: tweet_ids
          in: query
          required: true
          schema:
            type: array
            items:
              type: string
          description: Comma-separated list of tweet IDs.
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: object
                properties:
                  tweets:
                    type: array
                    items:
                      $ref: '#/components/schemas/Tweet'
                  status:
                    type: string
                  message:
                    type: string
      x-x402:
        path: /apis/v2/twitter/tweets
        source: https://github.com/AIsa-team/aisa-proxy
  /twitter/unfollow_twitter:
    post:
      summary: Unfollow a user on X/Twitter
      description: >-
        Make the authenticated source user unfollow the given target user on X/Twitter. Mirrors the [official X v2
        `DELETE /2/users/{source_user_id}/following/{target_user_id}`
        endpoint](https://docs.x.com/x-api/users/unfollow-user), routed through the AIsa gateway. Uses POST (not DELETE)
        for consistency with the other AIsa Twitter write actions.


        **Authentication.** Requires an OAuth session for the source user, attached to your AIsa API key. Link the
        account once via `POST /apis/v1/twitter/auth_twitter`.


        **Scopes.** The underlying X session must hold `follows.write`, `tweet.read`, and `users.read`.


        Unfollowing a user you don't currently follow is a no-op and still returns `200` with `following: false`.
      operationId: unfollowTwitterUser
      security:
        - BearerAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - target_user_id
              properties:
                target_user_id:
                  type: string
                  description: Numeric ID of the X/Twitter user to unfollow. Must match the X regex `^[0-9]{1,19}$`.
                  pattern: ^[0-9]{1,19}$
                  example: '2244994945'
            examples:
              unfollow_user:
                summary: Unfollow @TwitterDev (id 2244994945)
                value:
                  target_user_id: '2244994945'
      responses:
        '200':
          description: Unfollow succeeded (or the source user wasn't following the target to begin with).
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      following:
                        type: boolean
                        description: '`false` once the source user no longer follows the target user.'
              example:
                data:
                  following: false
        '400':
          description: Invalid request — missing or malformed `target_user_id`.
        '401':
          description: Missing or invalid AIsa API key.
        '403':
          description: >-
            OAuth session missing, expired, or lacking the `follows.write` scope. Re-authorize via `POST
            /apis/v1/twitter/auth_twitter`.
        '429':
          description: Rate limit hit — either your AIsa key's RPM cap or the upstream X rate limit.
        '500':
          description: Internal error.
        '502':
          description: Upstream X API unreachable or returned an error. Safe to retry with exponential backoff.
      tags:
        - Twitter / X
      x-x402:
        path: /apis/v2/twitter/unfollow_twitter
        source: https://github.com/AIsa-team/aisa-proxy
  /twitter/unlike_twitter:
    post:
      summary: Unlike a tweet
      description: >-
        Remove the source user's like from a tweet. Mirrors the [official X v2 `DELETE /2/users/{id}/likes/{tweet_id}`
        endpoint](https://docs.x.com/x-api/users/unlike-post), routed through the AIsa gateway. Uses POST (not DELETE)
        for consistency with the other AIsa Twitter write actions.


        **Authentication.** Requires an OAuth session for the source user, attached to your AIsa API key. Link the
        account once via `POST /apis/v1/twitter/auth_twitter`.


        **Scopes.** The underlying X session must hold `like.write`, `tweet.read`, and `users.read`.


        Unliking a tweet the source user has not liked is a no-op and still returns `200` with `liked: false`.
      operationId: unlikeTwitter
      security:
        - BearerAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - tweet_id
              properties:
                tweet_id:
                  type: string
                  description: Numeric ID of the tweet to unlike. Must match X's regex `^[0-9]{1,19}$`.
                  pattern: ^[0-9]{1,19}$
                  example: '1346889436626259968'
            examples:
              unlike_tweet:
                summary: Unlike tweet 1346889436626259968
                value:
                  tweet_id: '1346889436626259968'
      responses:
        '200':
          description: Unlike succeeded (or the source user hadn't liked the tweet to begin with).
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      liked:
                        type: boolean
                        description: '`false` once the like has been removed.'
              example:
                data:
                  liked: false
        '400':
          description: Invalid request — missing or malformed `tweet_id`.
        '401':
          description: Missing or invalid AIsa API key.
        '403':
          description: >-
            OAuth session missing, expired, or lacking `like.write`. Re-authorize via `POST
            /apis/v1/twitter/auth_twitter`.
        '404':
          description: Tweet not found or not visible to the source user.
        '429':
          description: Rate limit hit.
        '500':
          description: Internal error.
        '502':
          description: Upstream X API unreachable. Safe to retry with exponential backoff.
      tags:
        - Twitter / X
      x-x402:
        path: /apis/v2/twitter/unlike_twitter
        source: https://github.com/AIsa-team/aisa-proxy
  /twitter/user/batch_info_by_ids:
    get:
      tags:
        - Twitter / X
      summary: Batch Get User Info By UserIds
      parameters:
        - name: userIds
          in: query
          required: true
          schema:
            type: string
          description: Comma-separated user IDs
      responses:
        '200':
          description: Batch user information
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BatchUserInfoResponse'
      x-x402:
        path: /apis/v2/twitter/user/batch_info_by_ids
        source: https://github.com/AIsa-team/aisa-proxy
  /twitter/user/check_follow_relationship:
    get:
      tags:
        - Twitter / X
      summary: Check Follow Relationship
      description: Check if the user is following/followed by the target user.
      parameters:
        - name: source_user_name
          in: query
          required: true
          schema:
            type: string
          description: Screen name of the source user.
        - name: target_user_name
          in: query
          required: true
          schema:
            type: string
          description: Screen name of the target user.
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FollowRelationshipResponse'
      x-x402:
        path: /apis/v2/twitter/user/check_follow_relationship
        source: https://github.com/AIsa-team/aisa-proxy
  /twitter/user/followers:
    get:
      tags:
        - Twitter / X
      summary: Get User Followers
      parameters:
        - name: userName
          in: query
          required: true
          schema:
            type: string
          description: Screen name of the user
        - name: cursor
          in: query
          schema:
            type: string
          description: Cursor for pagination
        - name: pageSize
          in: query
          schema:
            type: integer
            default: 200
            minimum: 20
            maximum: 200
          description: Number of followers per page
      responses:
        '200':
          description: User followers
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BatchUserInfoResponse'
      x-x402:
        path: /apis/v2/twitter/user/followers
        source: https://github.com/AIsa-team/aisa-proxy
  /twitter/user/followings:
    get:
      tags:
        - Twitter / X
      summary: Get User Followings
      description: Get user followings. Each page returns exactly 200 followings. Use cursor for pagination.
      parameters:
        - name: userName
          in: query
          required: true
          schema:
            type: string
          description: Screen name of the user.
        - name: cursor
          in: query
          schema:
            type: string
          description: The cursor to paginate through the results. First page is empty.
        - name: pageSize
          in: query
          schema:
            type: integer
            default: 200
            minimum: 20
            maximum: 200
          description: The number of followings to return per page.
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserFollowingsResponse'
      x-x402:
        path: /apis/v2/twitter/user/followings
        source: https://github.com/AIsa-team/aisa-proxy
  /twitter/user/info:
    get:
      tags:
        - Twitter / X
      summary: Get User Info
      parameters:
        - name: userName
          in: query
          required: true
          schema:
            type: string
          description: The screen name of the user
      responses:
        '200':
          description: User information
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BatchUserInfoResponse'
      x-x402:
        path: /apis/v2/twitter/user/info
        source: https://github.com/AIsa-team/aisa-proxy
  /twitter/user/last_tweets:
    get:
      tags:
        - Twitter / X
      summary: Get User Last Tweets
      parameters:
        - name: userId
          in: query
          schema:
            type: string
          description: User ID of the user
        - name: userName
          in: query
          schema:
            type: string
          description: Screen name of the user
        - name: cursor
          in: query
          schema:
            type: string
          description: Cursor for pagination
        - name: includeReplies
          in: query
          schema:
            type: boolean
            default: false
          description: Include replies in the results
      responses:
        '200':
          description: User tweets
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserTweetsResponse'
      x-x402:
        path: /apis/v2/twitter/user/last_tweets
        source: https://github.com/AIsa-team/aisa-proxy
  /twitter/user/mentions:
    get:
      tags:
        - Twitter / X
      summary: Get User Mentions
      description: Get tweet mentions by user screen name. Each page returns exactly 20 mentions.
      parameters:
        - name: userName
          in: query
          required: true
          schema:
            type: string
          description: The user screen name to get mentions for.
        - name: sinceTime
          in: query
          schema:
            type: integer
            format: int64
          description: On or after a specified unix timestamp in seconds.
        - name: untilTime
          in: query
          schema:
            type: integer
            format: int64
          description: Before a specified unix timestamp in seconds.
        - name: cursor
          in: query
          schema:
            type: string
          description: The cursor to paginate through the results. First page is empty.
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserMentionsResponse'
      x-x402:
        path: /apis/v2/twitter/user/mentions
        source: https://github.com/AIsa-team/aisa-proxy
  /twitter/user/search:
    get:
      tags:
        - Twitter / X
      summary: Search User by Keyword
      description: Search user by keyword.
      parameters:
        - name: query
          in: query
          required: true
          schema:
            type: string
          description: The keyword to search.
        - name: cursor
          in: query
          schema:
            type: string
          description: The cursor to paginate through the results. First page is empty.
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SearchUserResponse'
      x-x402:
        path: /apis/v2/twitter/user/search
        source: https://github.com/AIsa-team/aisa-proxy
  /twitter/user/verifiedFollowers:
    get:
      tags:
        - Twitter / X
      summary: Get User Verified Followers
      description: Get user verified followers in reverse chronological order.
      parameters:
        - name: user_id
          in: query
          required: true
          schema:
            type: string
          description: User ID of the user.
        - name: cursor
          in: query
          schema:
            type: string
          description: The cursor to paginate through the results. First page is empty.
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VerifiedFollowersResponse'
      x-x402:
        path: /apis/v2/twitter/user/verifiedFollowers
        source: https://github.com/AIsa-team/aisa-proxy
  /twitter/user_about:
    get:
      tags:
        - Twitter / X
      summary: Get User Profile About
      parameters:
        - name: userName
          in: query
          required: true
          schema:
            type: string
          description: The screen name of the user
      responses:
        '200':
          description: User profile information
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserProfileAboutResponse'
      x-x402:
        path: /apis/v2/twitter/user_about
        source: https://github.com/AIsa-team/aisa-proxy
  /youtube/search:
    get:
      summary: YouTube Search
      description: Perform a YouTube search via SearchApi
      tags:
        - YouTube Search
      parameters:
        - name: engine
          in: query
          required: true
          schema:
            type: string
            enum:
              - youtube
          description: Engine identifier for YouTube Search
        - name: q
          in: query
          required: true
          schema:
            type: string
          description: Search query
        - name: sp
          in: query
          required: false
          schema:
            type: string
          description: YouTube filter token (pagination or advanced filters)
        - name: gl
          in: query
          required: false
          schema:
            type: string
          description: Country code (e.g. us, jp)
        - name: hl
          in: query
          required: false
          schema:
            type: string
          description: Interface language
      responses:
        '200':
          description: Successful YouTube search response
          content:
            application/json:
              schema:
                type: object
                description: YouTube search result payload
                properties:
                  search_metadata:
                    type: object
                    description: Search metadata
                  search_results:
                    type: array
                    items:
                      type: object
                      properties:
                        video_id:
                          type: string
                        title:
                          type: string
                        link:
                          type: string
                        channel_name:
                          type: string
        '400':
          description: Invalid request parameters
        '401':
          description: Unauthorized / Invalid API key
      security:
        - bearerAuth: []
      x-x402:
        path: /apis/v2/youtube/search
        source: https://github.com/AIsa-team/aisa-proxy
components:
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      description: AIsa API key. Get yours at https://aisa.one
  schemas:
    AnalystEstimatesResponse:
      type: object
      properties:
        analyst_estimates:
          type: array
          items:
            $ref: '#/components/schemas/AnalystEstimate'
    AnalystEstimate:
      type: object
      properties:
        fiscal_period:
          type: string
          format: date
          description: The fiscal period of the analyst estimate.
        period:
          type: string
          enum:
            - annual
            - quarterly
          description: The period of the analyst estimate.
        revenue:
          type: integer
          description: The estimated revenue.
        earnings_per_share:
          type: number
          description: The estimated earnings per share.
    ErrorResponse:
      type: object
      properties:
        error:
          type: string
          description: A short error message.
        message:
          type: string
          description: A more detailed error message.
    CoinsContractAddressDataBase:
      type: object
      properties:
        id:
          type: string
          description: coin ID
        symbol:
          type: string
          description: coin symbol
        name:
          type: string
          description: coin name
        web_slug:
          type: string
          description: coin web slug
        asset_platform_id:
          type: string
          description: coin asset platform ID
        platforms:
          type: object
          description: coin asset platform and contract address
          additionalProperties:
            type: string
            nullable: true
        detail_platforms:
          type: object
          description: detailed coin asset platform and contract address
          additionalProperties:
            type: object
            properties:
              decimal_place:
                type: number
                nullable: true
              contract_address:
                type: string
        block_time_in_minutes:
          type: number
          description: blockchain block time in minutes
        hashing_algorithm:
          type: string
          nullable: true
          description: blockchain hashing algorithm
        categories:
          type: array
          description: coin categories
          items:
            type: string
        preview_listing:
          type: boolean
          description: preview listing coin
        public_notice:
          type: string
          nullable: true
          description: public notice
        additional_notices:
          type: array
          description: additional notices
          items:
            type: string
        localization:
          type: object
          description: coin name localization
          additionalProperties:
            type: string
        description:
          type: object
          description: coin description
          additionalProperties:
            type: string
        links:
          type: object
          description: links
          properties:
            homepage:
              type: array
              description: coin website url
              items:
                type: string
            whitepaper:
              type: array
              description: coin whitepaper url
              items:
                type: string
            blockchain_site:
              type: array
              description: coin block explorer url
              items:
                type: string
            official_forum_url:
              type: array
              description: coin official forum url
              items:
                type: string
            chat_url:
              type: array
              description: coin chat url
              items:
                type: string
            announcement_url:
              type: array
              description: coin announcement url
              items:
                type: string
            snapshot_url:
              type: string
              description: coin snapshot url
            twitter_screen_name:
              type: string
              description: coin twitter handle
            facebook_username:
              type: string
              description: coin facebook username
            bitcointalk_thread_identifier:
              type: string
              description: coin bitcointalk thread identifier
            telegram_channel_identifier:
              type: string
              description: coin telegram channel identifier
            subreddit_url:
              type: string
              description: coin subreddit url
            repos_url:
              type: object
              description: coin repository url
              properties:
                github:
                  type: array
                  description: coin github repository url
                  items:
                    type: string
                bitbucket:
                  type: array
                  description: coin bitbucket repository url
                  items:
                    type: string
        image:
          type: object
          description: coin image url
          properties:
            thumb:
              type: string
            small:
              type: string
            large:
              type: string
        country_origin:
          type: string
          description: coin country of origin
        genesis_date:
          type: string
          nullable: true
          description: coin genesis date
          format: date-time
        contract_address:
          type: string
          description: coin contract address
        sentiment_votes_up_percentage:
          type: number
          description: coin sentiment votes up percentage
        sentiment_votes_down_percentage:
          type: number
          description: coin sentiment votes down percentage
        watchlist_portfolio_users:
          type: number
          description: number of users watching this coin in portfolio
        market_cap_rank:
          type: number
          description: coin rank by market cap
        market_cap_rank_with_rehypothecated:
          type: number
          description: coin rank by market cap including rehypothecated tokens
        market_data:
          type: object
          description: coin market data
          properties:
            current_price:
              type: object
              description: coin current price in currency
              properties:
                btc:
                  type: number
                eur:
                  type: number
                usd:
                  type: number
            total_value_locked:
              type: number
              nullable: true
              description: total value locked
            mcap_to_tvl_ratio:
              type: number
              nullable: true
              description: market cap to total value locked ratio
            fdv_to_tvl_ratio:
              type: number
              nullable: true
              description: fully diluted valuation to total value locked ratio
            roi:
              type: number
              nullable: true
              description: coin return on investment
            ath:
              type: object
              description: coin all time high (ATH) in currency
              properties:
                btc:
                  type: number
                eur:
                  type: number
                usd:
                  type: number
            ath_change_percentage:
              type: object
              description: coin all time high (ATH) change in percentage
              properties:
                btc:
                  type: number
                eur:
                  type: number
                usd:
                  type: number
            ath_date:
              type: object
              description: coin all time high (ATH) date
              properties:
                btc:
                  type: string
                eur:
                  type: string
                usd:
                  type: string
            atl:
              type: object
              description: coin all time low (atl) in currency
              properties:
                btc:
                  type: number
                eur:
                  type: number
                usd:
                  type: number
            atl_change_percentage:
              type: object
              description: coin all time low (atl) change in percentage
              properties:
                btc:
                  type: number
                eur:
                  type: number
                usd:
                  type: number
            atl_date:
              type: object
              description: coin all time low (atl) date
              properties:
                btc:
                  type: string
                eur:
                  type: string
                usd:
                  type: string
            market_cap:
              type: object
              description: coin market cap in currency
              properties:
                btc:
                  type: number
                eur:
                  type: number
                usd:
                  type: number
            market_cap_rank:
              type: number
              description: coin rank by market cap
            outstanding_token_value_usd:
              type: number
              nullable: true
              description: outstanding token value in USD
            market_cap_rank_with_rehypothecated:
              type: number
              description: coin rank by market cap including rehypothecated tokens
            fully_diluted_valuation:
              type: object
              description: coin fully diluted valuation (fdv) in currency
              properties:
                btc:
                  type: number
                eur:
                  type: number
                usd:
                  type: number
            market_cap_fdv_ratio:
              type: number
              description: market cap to fully diluted valuation ratio
            total_volume:
              type: object
              description: coin total trading volume in currency
              properties:
                btc:
                  type: number
                eur:
                  type: number
                usd:
                  type: number
            high_24h:
              type: object
              description: coin 24hr price high in currency
              properties:
                btc:
                  type: number
                eur:
                  type: number
                usd:
                  type: number
            low_24h:
              type: object
              description: coin 24hr price low in currency
              properties:
                btc:
                  type: number
                eur:
                  type: number
                usd:
                  type: number
            price_change_24h:
              type: number
              description: coin 24hr price change in currency
            price_change_percentage_24h:
              type: number
              description: coin 24hr price change in percentage
            price_change_percentage_7d:
              type: number
              description: coin 7d price change in percentage
            price_change_percentage_14d:
              type: number
              description: coin 14d price change in percentage
            price_change_percentage_30d:
              type: number
              description: coin 30d price change in percentage
            price_change_percentage_60d:
              type: number
              description: coin 60d price change in percentage
            price_change_percentage_200d:
              type: number
              description: coin 200d price change in percentage
            price_change_percentage_1y:
              type: number
              description: coin 1y price change in percentage
            market_cap_change_24h:
              type: number
              description: coin 24hr market cap change in currency
            market_cap_change_percentage_24h:
              type: number
              description: coin 24hr market cap change in percentage
            price_change_24h_in_currency:
              type: object
              description: coin 24hr price change in currency
              properties:
                btc:
                  type: number
                eur:
                  type: number
                usd:
                  type: number
            price_change_percentage_1h_in_currency:
              type: object
              description: coin 1h price change in currency
              properties:
                btc:
                  type: number
                eur:
                  type: number
                usd:
                  type: number
            price_change_percentage_24h_in_currency:
              type: object
              description: coin 24hr price change in currency
              properties:
                btc:
                  type: number
                eur:
                  type: number
                usd:
                  type: number
            price_change_percentage_7d_in_currency:
              type: object
              description: coin 7d price change in currency
              properties:
                btc:
                  type: number
                eur:
                  type: number
                usd:
                  type: number
            price_change_percentage_14d_in_currency:
              type: object
              description: coin 14d price change in currency
              properties:
                btc:
                  type: number
                eur:
                  type: number
                usd:
                  type: number
            price_change_percentage_30d_in_currency:
              type: object
              description: coin 30d price change in currency
              properties:
                btc:
                  type: number
                eur:
                  type: number
                usd:
                  type: number
            price_change_percentage_60d_in_currency:
              type: object
              description: coin 60d price change in currency
              properties:
                btc:
                  type: number
                eur:
                  type: number
                usd:
                  type: number
            price_change_percentage_200d_in_currency:
              type: object
              description: coin 200d price change in currency
              properties:
                btc:
                  type: number
                eur:
                  type: number
                usd:
                  type: number
            price_change_percentage_1y_in_currency:
              type: object
              description: coin 1y price change in currency
              properties:
                btc:
                  type: number
                eur:
                  type: number
                usd:
                  type: number
            market_cap_change_24h_in_currency:
              type: object
              description: coin 24hr market cap change in currency
              properties:
                btc:
                  type: number
                eur:
                  type: number
                usd:
                  type: number
            market_cap_change_percentage_24h_in_currency:
              type: object
              description: coin 24hr market cap change in percentage
              properties:
                btc:
                  type: number
                eur:
                  type: number
                usd:
                  type: number
            total_supply:
              type: number
              description: coin total supply
            max_supply:
              type: number
              nullable: true
              description: coin max supply
            max_supply_infinite:
              type: boolean
              description: whether max supply is infinite
            circulating_supply:
              type: number
              description: coin circulating supply
            outstanding_supply:
              type: number
              nullable: true
              description: tokens outstanding in the market, circulated/tradable or planned for circulation
            last_updated:
              type: string
              description: coin market data last updated timestamp
              format: date-time
        community_data:
          type: object
          description: coin community data
          properties:
            facebook_likes:
              type: number
              description: coin facebook likes
            reddit_average_posts_48h:
              type: number
              description: coin reddit average posts in 48 hours
            reddit_average_comments_48h:
              type: number
              description: coin reddit average comments in 48 hours
            reddit_subscribers:
              type: number
              description: coin reddit subscribers
            reddit_accounts_active_48h:
              type: number
              description: coin reddit active accounts in 48 hours
            telegram_channel_user_count:
              type: number
              description: coin telegram channel user count
        developer_data:
          type: object
          description: coin developer data
          properties:
            forks:
              type: number
              description: coin repository forks
            stars:
              type: number
              description: coin repository stars
            subscribers:
              type: number
              description: coin repository subscribers
            total_issues:
              type: number
              description: coin repository total issues
            closed_issues:
              type: number
              description: coin repository closed issues
            pull_requests_merged:
              type: number
              description: coin repository pull requests merged
            pull_request_contributors:
              type: number
              description: coin repository pull request contributors
            code_additions_deletions_4_weeks:
              type: object
              description: coin code additions and deletions in 4 weeks
              properties:
                additions:
                  type: number
                deletions:
                  type: number
            commit_count_4_weeks:
              type: number
              description: coin repository commit count in 4 weeks
            last_4_weeks_commit_activity_series:
              type: array
              description: coin repository last 4 weeks commit activity series
              items:
                type: number
        status_updates:
          type: array
          description: coin status updates
          items:
            type: string
        last_updated:
          type: string
          description: coin last updated timestamp
          format: date-time
        tickers:
          type: array
          description: coin tickers
          items:
            type: object
            properties:
              base:
                type: string
                description: coin ticker base currency
              target:
                type: string
                description: coin ticker target currency
              market:
                type: object
                description: coin ticker exchange
                properties:
                  name:
                    type: string
                    description: coin ticker exchange name
                  identifier:
                    type: string
                    description: coin ticker exchange identifier
                  has_trading_incentive:
                    type: boolean
                    description: coin ticker exchange trading incentive
              last:
                type: number
                description: coin ticker last price
              volume:
                type: number
                description: coin ticker volume
              converted_last:
                type: object
                description: coin ticker converted last price
                properties:
                  btc:
                    type: number
                  eth:
                    type: number
                  usd:
                    type: number
              converted_volume:
                type: object
                description: coin ticker converted volume
                properties:
                  btc:
                    type: number
                  eth:
                    type: number
                  usd:
                    type: number
              trust_score:
                type: string
                nullable: true
                description: coin ticker trust score
              bid_ask_spread_percentage:
                type: number
                description: coin ticker bid ask spread percentage
              timestamp:
                type: string
                description: coin ticker timestamp
                format: date-time
              last_traded_at:
                type: string
                description: coin ticker last traded timestamp
                format: date-time
              last_fetch_at:
                type: string
                description: coin ticker last fetch timestamp
                format: date-time
              is_anomaly:
                type: boolean
                description: coin ticker anomaly
              is_stale:
                type: boolean
                description: coin ticker stale
              trade_url:
                type: string
                description: coin ticker trade url
              token_info_url:
                type: string
                description: coin ticker token info url
              coin_id:
                type: string
                description: coin ticker base currency coin ID
              target_coin_id:
                type: string
                description: coin ticker target currency coin ID
              coin_mcap_usd:
                type: number
                description: coin market cap in USD
    CoinsContractAddress:
      allOf:
        - $ref: '#/components/schemas/CoinsContractAddressDataBase'
      example:
        id: usd-coin
        symbol: usdc
        name: USDC
        web_slug: usdc
        asset_platform_id: ethereum
        platforms:
          ethereum: '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48'
          polkadot: '1337'
          flow: A.b19436aae4d94622.FiatToken
          avalanche: '0xb97ef9ef8734c71904d8002f8b6bc66dd9c48a6e'
          optimistic-ethereum: '0x0b2c639c533813f4aa9d7837caf62653d097ff85'
          stellar: USDC-GA5ZSEJYB37JRC5AVCIA5MOP4RHTM335X2KGX3IHOJAPP5RE34K4KZVN
          near-protocol: 17208628f84f5d6ad33f0da3bbbeb27ffcb398eac501a31bd6ad2011e36133a1
          hedera-hashgraph: 0.0.456858
          zksync: '0x1d17cbcf0d6d143135ae902365d2e5e2a16538d4'
          tron: TEkxiTehnzSmSe2XqrBj4w32RUN966rdz8
          celo: '0xceba9300f2b948710d2653dd7b07f33a8b32118c'
          arbitrum-one: '0xaf88d065e77c8cc2239327c5edb3a432268e5831'
          base: '0x833589fcd6edb6e08f4c7c32d4f71b54bda02913'
          polygon-pos: '0x3c499c542cef5e3811e1192ce70d8cc03d5c3359'
          solana: EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v
        detail_platforms:
          ethereum:
            decimal_place: 6
            contract_address: '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48'
          polkadot:
            decimal_place: 6
            contract_address: '1337'
          flow:
            decimal_place: 8
            contract_address: A.b19436aae4d94622.FiatToken
          avalanche:
            decimal_place: 6
            contract_address: '0xb97ef9ef8734c71904d8002f8b6bc66dd9c48a6e'
          optimistic-ethereum:
            decimal_place: 6
            contract_address: '0x0b2c639c533813f4aa9d7837caf62653d097ff85'
          stellar:
            decimal_place: null
            contract_address: USDC-GA5ZSEJYB37JRC5AVCIA5MOP4RHTM335X2KGX3IHOJAPP5RE34K4KZVN
          near-protocol:
            decimal_place: 6
            contract_address: 17208628f84f5d6ad33f0da3bbbeb27ffcb398eac501a31bd6ad2011e36133a1
          hedera-hashgraph:
            decimal_place: 6
            contract_address: 0.0.456858
          zksync:
            decimal_place: 6
            contract_address: '0x1d17cbcf0d6d143135ae902365d2e5e2a16538d4'
          tron:
            decimal_place: 6
            contract_address: TEkxiTehnzSmSe2XqrBj4w32RUN966rdz8
          celo:
            decimal_place: 6
            contract_address: '0xceba9300f2b948710d2653dd7b07f33a8b32118c'
          arbitrum-one:
            decimal_place: 6
            contract_address: '0xaf88d065e77c8cc2239327c5edb3a432268e5831'
          base:
            decimal_place: 6
            contract_address: '0x833589fcd6edb6e08f4c7c32d4f71b54bda02913'
          polygon-pos:
            decimal_place: 6
            contract_address: '0x3c499c542cef5e3811e1192ce70d8cc03d5c3359'
          solana:
            decimal_place: 6
            contract_address: EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v
        block_time_in_minutes: 0
        hashing_algorithm: null
        categories:
          - Ronin Ecosystem
          - Osmosis Ecosystem
          - Mantle Ecosystem
          - Kava Ecosystem
          - Tron Ecosystem
          - Base Ecosystem
          - Neon Ecosystem
          - Hedera Ecosystem
          - Stellar Ecosystem
          - Rollux Ecosystem
          - Stablecoins
          - USD Stablecoin
          - BNB Chain Ecosystem
          - Cosmos Ecosystem
          - Polkadot Ecosystem
          - Avalanche Ecosystem
          - Solana Ecosystem
          - Gnosis Chain Ecosystem
          - Near Protocol Ecosystem
          - Fantom Ecosystem
          - Moonriver Ecosystem
          - Polygon Ecosystem
          - Arbitrum Ecosystem
          - Harmony Ecosystem
          - Ethereum Ecosystem
          - Velas Ecosystem
          - Arbitrum Nova Ecosystem
          - Moonbeam Ecosystem
          - Optimism Ecosystem
          - Metis Ecosystem
          - Cronos Ecosystem
          - Canto Ecosystem
          - ZkSync Ecosystem
        preview_listing: false
        public_notice: >-
          USD Coin (USDC) has rebranded to USDC (USDC). For more information, please refer to this <a
          href="https://www.circle.com/blog/usd-coin-and-euro-coin-are-now-exclusively-usdc-and-eurc">announcement</a>
          from the Circle Blog.
        additional_notices: []
        localization:
          en: USDC
          de: USDC
          es: USDC
          fr: USDC
          it: USDC
          pl: USDC
          ro: USDC
          hu: USDC
          nl: USDC
          pt: USDC
          sv: USDC
          vi: USDC
          tr: USDC
          ru: USDC
          ja: USDコイン
          zh: USDC
          zh-tw: USDC
          ko: USDC
          ar: USDC
          th: USDC
          id: USDC
          cs: USDC
          da: USDC
          el: USDC
          hi: USDC
          'no': USDC
          sk: USDC
          uk: USDC
          he: USDC
          fi: USDC
          bg: USDC
          hr: USDC
          lt: USDC
          sl: USDC
        description:
          en: USDC is a fully collateralized US dollar stablecoin ...
          de: USDC is a fully collateralized US dollar stablecoin...
        links:
          homepage:
            - https://www.circle.com/en/usdc
            - ''
            - ''
          whitepaper: ''
          blockchain_site:
            - https://etherscan.io/token/0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48
            - https://bscscan.com/token/0x8ac76a51cc950d9822d68b83fe1ad97b32cd580d
            - https://nearblocks.io/token/17208628f84f5d6ad33f0da3bbbeb27ffcb398eac501a31bd6ad2011e36133a1
            - https://ethplorer.io/address/0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48
            - https://basescan.org/token/0x833589fcd6edb6e08f4c7c32d4f71b54bda02913
            - https://arbiscan.io/token/0xaf88d065e77c8cc2239327c5edb3a432268e5831
            - https://binplorer.com/address/0x8ac76a51cc950d9822d68b83fe1ad97b32cd580d
            - https://explorer.kava.io/token/0xfa9343c3897324496a05fc75abed6bac29f8a40f
            - https://ftmscan.com/token/0x04068da6c83afcfa0e13ba15a6696662335d5b75
            - https://explorer.energi.network/token/0xffd7510ca0a3279c7a5f50018a26c21d5bc1dbcf
          official_forum_url:
            - ''
            - ''
            - ''
          chat_url:
            - https://discord.com/invite/buildoncircle
            - ''
            - ''
          announcement_url:
            - https://medium.com/centre-blog
            - https://blog.circle.com/2018/09/26/introducing-usd-coin/
          snapshot_url: null
          twitter_screen_name: circle
          facebook_username: ''
          bitcointalk_thread_identifier: null
          telegram_channel_identifier: ''
          subreddit_url: https://www.reddit.com
          repos_url:
            github:
              - https://github.com/centrehq/centre-tokens
            bitbucket: []
        image:
          thumb: https://assets.coingecko.com/coins/images/6319/thumb/usdc.png?1696506694
          small: https://assets.coingecko.com/coins/images/6319/small/usdc.png?1696506694
          large: https://assets.coingecko.com/coins/images/6319/large/usdc.png?1696506694
        country_origin: US
        genesis_date: null
        contract_address: '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48'
        sentiment_votes_up_percentage: 33.33
        sentiment_votes_down_percentage: 66.67
        watchlist_portfolio_users: 126374
        market_cap_rank: 7
        market_cap_rank_with_rehypothecated: 7
        market_data:
          current_price:
            aed: 3.68
            ars: 863.06
            aud: 1.52
            bch: 0.00145232
            bdt: 109.92
            bhd: 0.377611
            bmd: 1.003
            bnb: 0.00170967
            brl: 5.08
            btc: 0.00001429
            cad: 1.36
            chf: 0.904508
            clp: 942.53
            cny: 7.25
            czk: 23.43
            dkk: 6.9
            dot: 0.11492405
            eos: 0.96236821
            eth: 0.00029377
            eur: 0.924434
            gbp: 0.793567
            gel: 2.69
            hkd: 7.85
            huf: 361.11
            idr: 15933.99
            ils: 3.76
            inr: 83.54
            jpy: 152.05
            krw: 1355.2
            kwd: 0.308189
            lkr: 299.48
            ltc: 0.00973467
            mmk: 2103.16
            mxn: 16.5
            myr: 4.76
            ngn: 1298.4
            nok: 10.76
            nzd: 1.67
            php: 56.75
            pkr: 278.35
            pln: 3.96
            rub: 92.78
            sar: 3.76
            sek: 10.71
            sgd: 1.35
            sol: 23.88
            thb: 36.73
            try: 32.16
            twd: 32.22
            uah: 38.89
            usd: 1.003
            vef: 0.100421
            vnd: 25038
            xag: 0.0364874
            xau: 0.00043045
            xdr: 0.756423
            xlm: 7.701256
            xrp: 1.669349
            yfi: 0.0001188
            zar: 18.75
            bits: 14.29
            link: 0.05630197
            sats: 1428.76
          total_value_locked: null
          mcap_to_tvl_ratio: null
          fdv_to_tvl_ratio: null
          roi: null
          ath:
            aed: 4.31
            ars: 868.65
            aud: 1.83
            bch: 0.01345435
            bdt: 113.46
            bhd: 0.442094
            bmd: 1.17
            bnb: 0.25455702
            brl: 5.97
            btc: 0.00033582
            cad: 1.61
            chf: 1.2
            clp: 1057.99
            cny: 8.09
            czk: 27.1
            dkk: 7.88
            dot: 0.34808619
            eos: 1.89444
            eth: 0.01282697
            eur: 1.059
            gbp: 0.96424
            gel: 2.74
            hkd: 9.2
            huf: 455.32
            idr: 17341.09
            ils: 4.26
            inr: 87.19
            jpy: 154.07
            krw: 1466.8
            kwd: 0.356866
            lkr: 380.81
            ltc: 0.04751509
            mmk: 2166.16
            mxn: 25.72
            myr: 4.95
            ngn: 1641.1
            nok: 12.06
            nzd: 1.88
            php: 61.66
            pkr: 309.03
            pln: 5.09
            rub: 155.25
            sar: 4.4
            sek: 11.61
            sgd: 1.47
            sol: 26.45
            thb: 38.98
            try: 32.76
            twd: 36.3
            uah: 39.61
            usd: 1.17
            vef: 291403
            vnd: 27332
            xag: 0.086151
            xau: 0.00093093
            xdr: 0.842866
            xlm: 37.482414
            xrp: 9.1105
            yfi: 0.00126639
            zar: 19.92
            bits: 313.39
            link: 4.9423
            sats: 31339
          ath_change_percentage:
            aed: -14.38389
            ars: -0.51451
            aud: -16.54715
            bch: -89.16472
            bdt: -2.99363
            bhd: -14.475
            bmd: -14.36801
            bnb: -99.3281
            brl: -14.79026
            btc: -95.73352
            cad: -15.1066
            chf: -24.25592
            clp: -10.79724
            cny: -10.23969
            czk: -13.42505
            dkk: -12.26647
            dot: -66.90313
            eos: -49.11664
            eth: -97.70715
            eur: -12.61023
            gbp: -17.59352
            gel: -1.74226
            hkd: -14.57313
            huf: -20.58833
            idr: -7.99505
            ils: -11.60085
            inr: -4.06203
            jpy: -1.18617
            krw: -7.48817
            kwd: -13.52804
            lkr: -21.25532
            ltc: -79.49459
            mmk: -2.78254
            mxn: -35.75175
            myr: -3.75781
            ngn: -20.77937
            nok: -10.67094
            nzd: -11.13856
            php: -7.84159
            pkr: -9.81151
            pln: -22.06943
            rub: -40.1645
            sar: -14.34456
            sek: -7.62797
            sgd: -7.93611
            sol: -9.70201
            thb: -5.64291
            try: -1.67562
            twd: -11.13084
            uah: -1.68827
            usd: -14.36801
            vef: -99.99997
            vnd: -8.27313
            xag: -57.59221
            xau: -53.7014
            xdr: -10.13941
            xlm: -79.45084
            xrp: -81.6335
            yfi: -90.62471
            zar: -5.73322
            bits: -95.42817
            link: -98.85859
            sats: -95.42817
          ath_date:
            aed: '2019-05-08T00:40:28.300Z'
            ars: '2024-04-04T18:05:51.232Z'
            aud: '2020-03-13T02:35:16.858Z'
            bch: '2018-12-15T16:04:56.312Z'
            bdt: '2023-10-23T22:45:06.087Z'
            bhd: '2019-05-08T00:40:28.300Z'
            bmd: '2019-05-08T00:40:28.300Z'
            bnb: '2018-12-08T12:49:29.078Z'
            brl: '2020-05-14T14:07:45.849Z'
            btc: '2018-12-08T12:54:40.339Z'
            cad: '2020-03-13T02:35:16.858Z'
            chf: '2019-05-08T00:40:28.300Z'
            clp: '2022-07-19T00:53:26.862Z'
            cny: '2020-03-13T02:35:16.858Z'
            czk: '2020-03-13T02:35:16.858Z'
            dkk: '2022-09-27T16:25:08.674Z'
            dot: '2020-08-22T00:00:00.000Z'
            eos: '2023-10-19T07:35:20.838Z'
            eth: '2018-12-08T12:49:29.078Z'
            eur: '2022-09-27T16:25:08.674Z'
            gbp: '2022-09-26T01:00:46.182Z'
            gel: '2024-03-20T20:40:24.283Z'
            hkd: '2019-05-08T00:40:28.300Z'
            huf: '2022-10-13T12:54:39.018Z'
            idr: '2018-10-15T13:29:31.772Z'
            ils: '2020-03-13T02:35:16.858Z'
            inr: '2020-03-13T02:35:16.858Z'
            jpy: '2023-10-23T22:45:06.087Z'
            krw: '2022-09-30T02:11:16.560Z'
            kwd: '2019-05-08T00:40:28.300Z'
            lkr: '2022-05-12T07:24:27.813Z'
            ltc: '2018-12-08T12:49:29.078Z'
            mmk: '2022-09-13T12:36:28.482Z'
            mxn: '2020-04-06T05:20:12.159Z'
            myr: '2020-03-13T02:35:16.858Z'
            ngn: '2024-02-28T17:01:26.911Z'
            nok: '2020-03-19T09:32:58.419Z'
            nzd: '2020-03-13T02:35:16.858Z'
            php: '2018-10-15T13:29:31.772Z'
            pkr: '2023-09-06T17:10:41.513Z'
            pln: '2022-10-13T12:54:39.018Z'
            rub: '2022-03-07T17:44:50.584Z'
            sar: '2019-05-08T00:40:28.300Z'
            sek: '2022-10-13T12:54:39.018Z'
            sgd: '2022-05-12T07:24:27.813Z'
            sol: '2023-10-19T07:35:20.838Z'
            thb: '2022-09-30T02:11:16.560Z'
            try: '2024-03-13T05:46:55.999Z'
            twd: '2019-05-08T00:40:28.300Z'
            uah: '2024-03-25T14:01:08.978Z'
            usd: '2019-05-08T00:40:28.300Z'
            vef: '2019-05-08T00:40:28.300Z'
            vnd: '2019-05-08T00:40:28.300Z'
            xag: '2020-03-16T12:07:54.295Z'
            xau: '2018-10-15T13:29:31.772Z'
            xdr: '2019-05-08T00:40:28.300Z'
            xlm: '2020-03-13T02:27:51.989Z'
            xrp: '2020-03-13T02:27:51.989Z'
            yfi: '2020-07-18T00:00:00.000Z'
            zar: '2023-06-01T07:50:09.345Z'
            bits: '2018-12-16T00:00:00.000Z'
            link: '2018-12-16T00:00:00.000Z'
            sats: '2018-12-16T00:00:00.000Z'
          atl:
            aed: 3.22
            ars: 35.1
            aud: 1.15
            bch: 0.00061874
            bdt: 75.64
            bhd: 0.330818
            bmd: 0.877647
            bnb: 0.00145528
            brl: 3.66
            btc: 0.00001358
            cad: 1.079
            chf: 0.803831
            clp: 641.06
            cny: 5.74
            czk: 18.6
            dkk: 5.43
            dot: 0.01824728
            eos: 0.06823362
            eth: 0.00020588
            eur: 0.730265
            gbp: 0.629869
            gel: 2.59
            hkd: 6.89
            huf: 255.57
            idr: 12829.05
            ils: 2.91
            inr: 65.31
            jpy: 97.05
            krw: 1008.25
            kwd: 0.268173
            lkr: 169.86
            ltc: 0.0024386
            mmk: 1262.08
            mxn: 16.23
            myr: 3.69
            ngn: 306.14
            nok: 7.39
            nzd: 1.24
            php: 42.68
            pkr: 122.98
            pln: 3.3
            rub: 50.72
            sar: 3.29
            sek: 7.43
            sgd: 1.18
            sol: 20.4
            thb: 28.03
            try: 5.12
            twd: 24.94
            uah: 23.13
            usd: 0.877647
            vef: 0.087879
            vnd: 20544
            xag: 0.03215085
            xau: 0.00042766
            xdr: 0.618198
            xlm: 1.266586
            xrp: 0.51131826
            yfi: 0.00001103
            zar: 12.52
            bits: 13.58
            link: 0.01893714
            sats: 1357.66
          atl_change_percentage:
            aed: 14.41627
            ars: 2361.81893
            aud: 32.49086
            bch: 135.6116
            bdt: 45.50042
            bhd: 14.29254
            bmd: 14.42094
            bnb: 17.52902
            brl: 39.00819
            btc: 5.53325
            cad: 26.5285
            chf: 12.67067
            clp: 47.21742
            cny: 26.53016
            czk: 26.123
            dkk: 27.27694
            dot: 531.35789
            eos: 1312.72686
            eth: 42.84868
            eur: 26.75308
            gbp: 26.15257
            gel: 4.02071
            hkd: 14.12942
            huf: 41.47699
            idr: 24.36351
            ils: 29.16397
            inr: 28.08243
            jpy: 56.86384
            krw: 34.58554
            kwd: 15.0708
            lkr: 76.54458
            ltc: 299.53881
            mmk: 66.85867
            mxn: 1.80183
            myr: 29.35598
            ngn: 324.6662
            nok: 45.70553
            nzd: 34.5126
            php: 33.16285
            pkr: 126.62161
            pln: 20.17185
            rub: 83.14122
            sar: 14.32941
            sek: 44.26778
            sgd: 14.47286
            sol: 16.19608
            thb: 31.21405
            try: 528.64115
            twd: 29.34909
            uah: 68.3386
            usd: 14.42094
            vef: 14.42094
            vnd: 22.0335
            xag: 13.63538
            xau: 0.78357
            xdr: 22.51815
            xlm: 508.11643
            xrp: 227.24828
            yfi: 976.86962
            zar: 49.91998
            bits: 5.53325
            link: 197.88895
            sats: 5.53325
          atl_date:
            aed: '2023-03-11T08:02:13.981Z'
            ars: '2018-11-05T00:00:00.000Z'
            aud: '2021-05-19T13:14:05.611Z'
            bch: '2021-05-12T00:48:59.373Z'
            bdt: '2021-05-19T13:14:05.611Z'
            bhd: '2023-03-11T08:02:13.981Z'
            bmd: '2023-03-11T08:02:13.981Z'
            bnb: '2021-05-10T06:49:47.379Z'
            brl: '2019-01-10T00:00:00.000Z'
            btc: '2024-03-14T07:11:23.026Z'
            cad: '2021-05-19T13:14:05.611Z'
            chf: '2021-05-19T13:14:05.611Z'
            clp: '2021-05-19T13:14:05.611Z'
            cny: '2021-05-19T13:14:05.611Z'
            czk: '2021-05-19T13:14:05.611Z'
            dkk: '2021-05-19T13:14:05.611Z'
            dot: '2021-11-04T14:03:20.601Z'
            eos: '2021-05-12T00:19:38.267Z'
            eth: '2021-11-10T16:24:27.522Z'
            eur: '2021-05-19T13:14:05.611Z'
            gbp: '2021-05-19T13:14:05.611Z'
            gel: '2024-02-28T17:35:55.970Z'
            hkd: '2023-03-11T08:02:13.981Z'
            huf: '2021-05-19T13:14:05.611Z'
            idr: '2021-05-19T13:14:05.611Z'
            ils: '2021-05-19T13:14:05.611Z'
            inr: '2021-05-19T13:14:05.611Z'
            jpy: '2021-05-19T13:14:05.611Z'
            krw: '2021-05-19T13:14:05.611Z'
            kwd: '2021-05-19T13:14:05.611Z'
            lkr: '2018-10-07T00:00:00.000Z'
            ltc: '2021-05-10T02:59:49.794Z'
            mmk: '2020-08-02T04:44:57.506Z'
            mxn: '2023-03-11T08:02:13.981Z'
            myr: '2021-05-19T13:14:05.611Z'
            ngn: '2019-08-27T00:00:00.000Z'
            nok: '2021-05-19T13:14:05.611Z'
            nzd: '2021-05-19T13:14:05.611Z'
            php: '2021-05-19T13:14:05.611Z'
            pkr: '2018-10-07T00:00:00.000Z'
            pln: '2021-05-19T13:14:05.611Z'
            rub: '2022-06-29T08:44:56.399Z'
            sar: '2023-03-11T08:02:13.981Z'
            sek: '2021-05-19T13:14:05.611Z'
            sgd: '2023-03-11T08:02:13.981Z'
            sol: '2021-05-12T00:19:38.267Z'
            thb: '2021-05-19T13:14:05.611Z'
            try: '2018-12-30T00:00:00.000Z'
            twd: '2021-05-19T13:14:05.611Z'
            uah: '2019-12-26T19:59:45.264Z'
            usd: '2023-03-11T08:02:13.981Z'
            vef: '2023-03-11T08:02:13.981Z'
            vnd: '2021-05-19T13:14:05.611Z'
            xag: '2021-05-19T13:14:05.611Z'
            xau: '2024-04-07T15:40:38.864Z'
            xdr: '2021-05-19T13:14:05.611Z'
            xlm: '2021-05-16T09:54:34.066Z'
            xrp: '2021-04-14T05:34:20.469Z'
            yfi: '2021-05-12T00:31:55.487Z'
            zar: '2021-05-19T13:14:05.611Z'
            bits: '2024-03-14T07:11:23.026Z'
            link: '2021-05-10T00:18:26.781Z'
            sats: '2024-03-14T07:11:23.026Z'
          market_cap:
            aed: 120999090107
            ars: 28353111377396
            aud: 50065123859
            bch: 47850776
            bdt: 3611011939859
            bhd: 12405166075
            bmd: 32947335631
            bnb: 56263487
            brl: 166914167569
            btc: 470808
            cad: 44777076490
            chf: 29714641901
            clp: 30963723498232
            cny: 238288310221
            czk: 769659644552
            dkk: 226756742750
            dot: 3789619642
            eos: 31696182321
            eth: 9672781
            eur: 30369239566
            gbp: 26070040581
            gel: 88298859492
            hkd: 257975990628
            huf: 11863102506863
            idr: 523459031679163
            ils: 123517189074
            inr: 2744416324725
            jpy: 4994980818412
            krw: 44520744769077
            kwd: 10124551503
            lkr: 9838495420617
            ltc: 320634614
            mmk: 69092295816136
            mxn: 542102281546
            myr: 156417475910
            ngn: 42654804703977
            nok: 353505142924
            nzd: 54784401373
            php: 1864489756333
            pkr: 9144229230085
            pln: 130121779028
            rub: 3047857134527
            sar: 123586345532
            sek: 351778208327
            sgd: 44459530069
            sol: 778870
            thb: 1206505040009
            try: 1056670507653
            twd: 1058472693964
            uah: 1277756585625
            usd: 32947335631
            vef: 3299016717
            vnd: 822552701684877
            xag: 1198674150
            xau: 14140996
            xdr: 24849803059
            xlm: 253446689394
            xrp: 55015857817
            yfi: 3906707
            zar: 616016334302
            bits: 470807890093
            link: 1854262325
            sats: 47080789009277
          market_cap_rank: 7
          outstanding_token_value_usd: null
          market_cap_rank_with_rehypothecated: 7
          fully_diluted_valuation:
            aed: 121002864723
            ars: 28353995864398
            aud: 50066685661
            bch: 47852269
            bdt: 3611124586865
            bhd: 12405553060
            bmd: 32948363437
            bnb: 56265242
            brl: 166919374526
            btc: 470823
            cad: 44778473329
            chf: 29715568862
            clp: 30964689424356
            cny: 238295743723
            czk: 769683654402
            dkk: 226763816520
            dot: 3789737860
            eos: 31697171097
            eth: 9673083
            eur: 30370186947
            gbp: 26070853847
            gel: 88301614012
            hkd: 257984038295
            huf: 11863472581237
            idr: 523475361199517
            ils: 123521042244
            inr: 2744501937924
            jpy: 4995136638898
            krw: 44522133612069
            kwd: 10124867342
            lkr: 9838802336539
            ltc: 320644616
            mmk: 69094451178796
            mxn: 542119192650
            myr: 156422355418
            ngn: 42656135338199
            nok: 353516170663
            nzd: 54786110395
            php: 1864547919860
            pkr: 9144514488086
            pln: 130125838230
            rub: 3047952213687
            sar: 123590200859
            sek: 351789182194
            sgd: 44460917003
            sol: 778970
            thb: 1206542677431
            try: 1056703470925
            twd: 1058505713456
            uah: 1277796445769
            usd: 32948363437
            vef: 3299119631
            vnd: 822578361555605
            xag: 1198711543
            xau: 14141438
            xdr: 24850578259
            xlm: 253454595768
            xrp: 55017574059
            yfi: 3906829
            zar: 616035551185
            bits: 470822577139
            link: 1854320170
            sats: 47082257713905
          market_cap_fdv_ratio: 1
          total_volume:
            aed: 15244665166
            ars: 3572206113148
            aud: 6307700736
            bch: 6011151
            bdt: 454951090006
            bhd: 1562925828
            bmd: 4151032040
            bnb: 7076305
            brl: 21029501906
            btc: 59136
            cad: 5641460094
            chf: 3743745229
            clp: 3901116914259
            cny: 30021924124
            czk: 96969353759
            dkk: 28569062911
            dot: 475669038
            eos: 3983228751
            eth: 1215906
            eur: 3826217934
            gbp: 3284562216
            gel: 11124765867
            hkd: 32502373320
            huf: 1494631285147
            idr: 65950559289861
            ils: 15561920243
            inr: 345768781483
            jpy: 629317212389
            krw: 5609164881735
            kwd: 1275591391
            lkr: 1239551208963
            ltc: 40291669
            mmk: 8704932527533
            mxn: 68299420770
            myr: 19707024609
            ngn: 5374075250174
            nok: 44538083168
            nzd: 6902282112
            php: 234906907282
            pkr: 1152080670123
            pln: 16394031974
            rub: 383999263539
            sar: 15570633259
            sek: 44320506823
            sgd: 5601452447
            sol: 12086
            thb: 152021478053
            try: 133129828215
            twd: 133356885516
            uah: 160984444548
            usd: 4151032040
            vef: 415642838
            vnd: 103633345569541
            xag: 151020855
            xau: 1781623
            xdr: 3130824593
            xlm: 31875392898
            xrp: 6909411431
            yfi: 491696
            zar: 77611846048
            bits: 59136167290
            link: 233033060
            sats: 5913616728998
          high_24h:
            aed: 3.69
            ars: 864.18
            aud: 1.53
            bch: 0.00147921
            bdt: 110.06
            bhd: 0.378563
            bmd: 1.004
            bnb: 0.00171422
            brl: 5.09
            btc: 0.00001471
            cad: 1.36
            chf: 0.905681
            clp: 953.43
            cny: 7.26
            czk: 23.46
            dkk: 6.91
            dot: 0.118923
            eos: 0.99413647
            eth: 0.00029983
            eur: 0.926064
            gbp: 0.794596
            gel: 2.69
            hkd: 7.86
            huf: 361.59
            idr: 15954.66
            ils: 3.78
            inr: 83.65
            jpy: 152.24
            krw: 1356.96
            kwd: 0.308809
            lkr: 299.87
            ltc: 0.01001188
            mmk: 2105.88
            mxn: 16.52
            myr: 4.77
            ngn: 1300.09
            nok: 10.77
            nzd: 1.67
            php: 56.83
            pkr: 278.71
            pln: 3.97
            rub: 92.9
            sar: 3.77
            sek: 10.72
            sgd: 1.36
            sol: 0.000012
            thb: 36.78
            try: 32.21
            twd: 32.26
            uah: 39
            usd: 1.004
            vef: 0.100552
            vnd: 25071
            xag: 0.03653859
            xau: 0.00043101
            xdr: 0.757404
            xlm: 7.799251
            xrp: 1.696805
            yfi: 0.00012029
            zar: 18.78
            bits: 14.71
            link: 0.05738543
            sats: 1470.94
          low_24h:
            aed: 3.66
            ars: 857.46
            aud: 1.51
            bch: 0.00141766
            bdt: 109.21
            bhd: 0.375161
            bmd: 0.996404
            bnb: 0.00169154
            brl: 5.05
            btc: 0.00001429
            cad: 1.35
            chf: 0.89864
            clp: 936.41
            cny: 7.21
            czk: 23.28
            dkk: 6.86
            dot: 0.11453837
            eos: 0.9619467
            eth: 0.00029301
            eur: 0.918436
            gbp: 0.788419
            gel: 2.67
            hkd: 7.8
            huf: 358.77
            idr: 15830.62
            ils: 3.74
            inr: 83
            jpy: 151.06
            krw: 1346.41
            kwd: 0.30619
            lkr: 297.54
            ltc: 0.0094962
            mmk: 2089.51
            mxn: 16.39
            myr: 4.73
            ngn: 1289.98
            nok: 10.69
            nzd: 1.66
            php: 56.39
            pkr: 276.54
            pln: 3.94
            rub: 92.17
            sar: 3.74
            sek: 10.64
            sgd: 1.34
            sol: 0.000012
            thb: 36.49
            try: 31.96
            twd: 32.01
            uah: 38.64
            usd: 0.996404
            vef: 0.09977
            vnd: 24876
            xag: 0.03625069
            xau: 0.00042766
            xdr: 0.751516
            xlm: 7.67306
            xrp: 1.663026
            yfi: 0.00011822
            zar: 18.63
            bits: 14.29
            link: 0.05612925
            sats: 1429.46
          price_change_24h: 0.00398183
          price_change_percentage_24h: 0.39861
          price_change_percentage_7d: 0.29305
          price_change_percentage_14d: 0.27486
          price_change_percentage_30d: 0.23778
          price_change_percentage_60d: 0.34535
          price_change_percentage_200d: 0.28542
          price_change_percentage_1y: 0.26784
          market_cap_change_24h: 10444980
          market_cap_change_percentage_24h: 0.03171
          price_change_24h_in_currency:
            aed: 0.01482307
            ars: 3.43
            aud: 0.00605059
            bch: 0.00002114
            bdt: 0.436407
            bhd: 0.00103072
            bmd: 0.00398183
            bnb: -8.98695386508e-7
            brl: 0.02006244
            btc: -4.08289757483e-7
            cad: 0.00541151
            chf: 0.00359115
            clp: -5.90309015913681
            cny: 0.0287982
            czk: 0.093017
            dkk: 0.02740456
            dot: -0.00327886017878197
            eos: -0.030520948421398
            eth: -0.000005818976995429
            eur: 0.00322174
            gbp: 0.00315068
            gel: 0.01067131
            hkd: 0.03117755
            huf: 1.42
            idr: 63.26
            ils: 0.0008507
            inr: 0.331675
            jpy: 0.603666
            krw: 5.38
            kwd: 0.00099784
            lkr: 1.19
            ltc: -0.000234127203521317
            mmk: 8.35
            mxn: 0.065515
            myr: 0.01890375
            ngn: 5.16
            nok: 0.04272267
            nzd: 0.00662094
            php: 0.225332
            pkr: 1.11
            pln: 0.0157258
            rub: 0.368347
            sar: 0.01493596
            sek: 0.04251396
            sgd: 0.00537313
            sol: 0.0023
            thb: 0.149196
            try: 0.127703
            twd: 0.127921
            uah: 0.102042
            usd: 0.00398183
            vef: 0.0003987
            vnd: 99.41
            xag: 0.00014025
            xau: 0.00000171
            xdr: 0.00300321
            xlm: -0.0547530053062548
            xrp: -0.0181523667358481
            yfi: -0.000001157937833455
            zar: 0.074448
            bits: -0.408289757483253
            link: -0.000669120508494617
            sats: -40.8289757483253
          price_change_percentage_1h_in_currency:
            aed: 0.65299
            ars: 0.65299
            aud: 0.65299
            bch: -0.46748
            bdt: 0.65299
            bhd: 0.65299
            bmd: 0.65299
            bnb: 0.2798
            brl: 0.65299
            btc: -0.40006
            cad: 0.65299
            chf: 0.65299
            clp: 0.65299
            cny: 0.65299
            czk: 0.65299
            dkk: 0.65299
            dot: -0.19074
            eos: -0.14782
            eth: -0.01885
            eur: 0.65299
            gbp: 0.65299
            gel: 0.65299
            hkd: 0.65299
            huf: 0.65299
            idr: 0.65299
            ils: 0.65299
            inr: 0.65299
            jpy: 0.65299
            krw: 0.65299
            kwd: 0.65299
            lkr: 0.65299
            ltc: 0.19916
            mmk: 0.65299
            mxn: 0.65299
            myr: 0.65299
            ngn: 0.65299
            nok: 0.65299
            nzd: 0.65299
            php: 0.65299
            pkr: 0.65299
            pln: 0.65299
            rub: 0.65299
            sar: 0.65299
            sek: 0.65299
            sgd: 0.65299
            sol: 0.65299
            thb: 0.65299
            try: 0.65299
            twd: 0.65299
            uah: 0.65299
            usd: 0.65299
            vef: 0.65299
            vnd: 0.65299
            xag: 0.65299
            xau: 0.65299
            xdr: 0.65299
            xlm: 0.0107
            xrp: -0.05561
            yfi: 0.00533
            zar: 0.65299
            bits: -0.40006
            link: 0.08404
            sats: -0.40006
          price_change_percentage_24h_in_currency:
            aed: 0.40408
            ars: 0.39861
            aud: 0.39861
            bch: 1.47718
            bdt: 0.39861
            bhd: 0.27371
            bmd: 0.39861
            bnb: -0.05254
            brl: 0.39643
            btc: -2.77826
            cad: 0.39861
            chf: 0.39861
            clp: -0.6224
            cny: 0.39861
            czk: 0.39861
            dkk: 0.39861
            dot: -2.77393
            eos: -3.07395
            eth: -1.94233
            eur: 0.34973
            gbp: 0.39861
            gel: 0.39861
            hkd: 0.39861
            huf: 0.39445
            idr: 0.39861
            ils: 0.02263
            inr: 0.39861
            jpy: 0.39861
            krw: 0.39861
            kwd: 0.32483
            lkr: 0.39861
            ltc: -2.3486
            mmk: 0.39861
            mxn: 0.39861
            myr: 0.39861
            ngn: 0.39861
            nok: 0.39861
            nzd: 0.39861
            php: 0.39861
            pkr: 0.39861
            pln: 0.39861
            rub: 0.39861
            sar: 0.39861
            sek: 0.39861
            sgd: 0.39861
            sol: 0.39861
            thb: 0.40786
            try: 0.39861
            twd: 0.39861
            uah: 0.26304
            usd: 0.39861
            vef: 0.39861
            vnd: 0.39861
            xag: 0.38586
            xau: 0.39861
            xdr: 0.39861
            xlm: -0.70594
            xrp: -1.0757
            yfi: -0.96532
            zar: 0.39861
            bits: -2.77826
            link: -1.17449
            sats: -2.77826
          price_change_percentage_7d_in_currency:
            aed: 0.29851
            ars: 0.77925
            aud: -0.65027
            bch: -13.2081
            bdt: 0.2879
            bhd: 0.29118
            bmd: 0.29305
            bnb: 3.03355
            brl: 1.31074
            btc: 0.58561
            cad: 0.89438
            chf: 0.26815
            clp: -3.74092
            cny: 0.45556
            czk: 0.17726
            dkk: -0.12633
            dot: 9.9608
            eos: 4.95285
            eth: 6.35016
            eur: -0.1582
            gbp: 0.19782
            gel: -0.26517
            hkd: 0.33277
            huf: -1.03923
            idr: 0.34136
            ils: 2.17036
            inr: 0.18928
            jpy: 0.46534
            krw: 0.66329
            kwd: 0.16104
            lkr: -0.18828
            ltc: 0.27534
            mmk: 0.28566
            mxn: -0.35796
            myr: 0.78132
            ngn: -8.62563
            nok: -0.521
            nzd: -0.49074
            php: 1.05286
            pkr: 0.27769
            pln: -0.42519
            rub: 0.20027
            sar: 0.19475
            sek: 0.47641
            sgd: 0.28651
            sol: 0.29305
            thb: 1.16221
            try: -0.66189
            twd: 0.87488
            uah: -0.71017
            usd: 0.29305
            vef: 0.29305
            vnd: 0.91906
            xag: -8.90649
            xau: -3.88135
            xdr: 0.27816
            xlm: 7.78452
            xrp: 4.65475
            yfi: 7.33596
            zar: -0.88066
            bits: 0.58561
            link: 7.43694
            sats: 0.58561
          price_change_percentage_14d_in_currency:
            aed: 0.27759
            ars: 1.46827
            aud: -0.71502
            bch: -30.38764
            bdt: 0.58266
            bhd: 0.58582
            bmd: 0.27486
            bnb: -4.20719
            brl: 1.55155
            btc: -6.21481
            cad: 0.01728
            chf: 0.71462
            clp: -3.53906
            cny: 0.32757
            czk: -0.12532
            dkk: 0.00604
            dot: 5.88408
            eos: -0.52882
            eth: -0.20417
            eur: 0.40885
            gbp: -0.01879
            gel: -0.46792
            hkd: 0.34406
            huf: -1.27976
            idr: 0.74154
            ils: 3.96645
            inr: -0.08114
            jpy: 0.4
            krw: 0.77228
            kwd: 0.59436
            lkr: -0.86856
            ltc: -12.90008
            mmk: 0.58165
            mxn: -1.59414
            myr: 0.48652
            ngn: -11.38303
            nok: 0.02502
            nzd: -0.02528
            php: 0.63319
            pkr: 0.16182
            pln: -0.94152
            rub: 0.67966
            sar: 0.29007
            sek: 1.30993
            sgd: 0.31292
            sol: 0.27486
            thb: 1.34874
            try: 0.47599
            twd: 0.81145
            uah: 0.11703
            usd: 0.27486
            vef: 0.27486
            vnd: 1.06348
            xag: -9.95455
            xau: -6.7958
            xdr: 1.06802
            xlm: 3.53045
            xrp: 5.5305
            yfi: 4.19967
            zar: -1.6257
            bits: -6.21481
            link: 2.91916
            sats: -6.21481
          price_change_percentage_30d_in_currency:
            aed: 0.22686
            ars: 1.87242
            aud: 1.12588
            bch: -36.38999
            bdt: 0.06598
            bhd: 0.14521
            bmd: 0.23778
            bnb: -18.35901
            brl: 2.07514
            btc: -2.5256
            cad: 1.22263
            chf: 3.22081
            clp: -2.11973
            cny: 0.88922
            czk: 1.25296
            dkk: 1.41007
            dot: 18.78155
            eos: 14.18494
            eth: 15.69643
            eur: 1.22693
            gbp: 2.17246
            gel: 1.18163
            hkd: 0.36294
            huf: 0.42147
            idr: 2.64632
            ils: 5.1174
            inr: 0.91625
            jpy: 3.32703
            krw: 2.9829
            kwd: 0.30371
            lkr: -2.67914
            ltc: -14.7498
            mmk: 0.06787
            mxn: -1.80715
            myr: 1.48834
            ngn: -18.53236
            nok: 3.68985
            nzd: 3.16952
            php: 2.1567
            pkr: -0.46486
            pln: 0.89425
            rub: 1.81413
            sar: 0.25218
            sek: 4.97564
            sgd: 1.70026
            sol: 0.23778
            thb: 3.66298
            try: 0.55288
            twd: 2.6662
            uah: 1.68112
            usd: 0.23778
            vef: 0.23778
            vnd: 1.35127
            xag: -11.41734
            xau: -6.42701
            xdr: 0.26875
            xlm: 8.72863
            xrp: 3.49755
            yfi: 18.72705
            zar: 0.17562
            bits: -2.5256
            link: 11.99104
            sats: -2.5256
          price_change_percentage_60d_in_currency:
            aed: 0.33306
            ars: 4.02102
            aud: -0.44126
            bch: -65.76904
            bdt: 0.19479
            bhd: 0.25988
            bmd: 0.34535
            bnb: -48.13844
            brl: 2.43383
            btc: -38.48505
            cad: 1.28551
            chf: 3.84523
            clp: -0.7159
            cny: 2.01542
            czk: 1.07049
            dkk: -0.31682
            dot: -21.80148
            eos: -31.75086
            eth: -30.42882
            eur: -0.44975
            gbp: 0.30124
            gel: 1.09983
            hkd: 0.48096
            huf: 0.10941
            idr: 1.84307
            ils: 2.98528
            inr: 0.72708
            jpy: 2.84244
            krw: 2.18746
            kwd: 0.16315
            lkr: -4.36244
            ltc: -33.74326
            mmk: 0.18964
            mxn: -3.07488
            myr: 0.06082
            ngn: 43.54773
            nok: 1.80879
            nzd: 2.04992
            php: 1.34014
            pkr: -0.25215
            pln: -1.76406
            rub: 1.73775
            sar: 0.36291
            sek: 2.3238
            sgd: 0.83195
            sol: 0.34535
            thb: 3.33071
            try: 5.19379
            twd: 2.85279
            uah: 3.49377
            usd: 0.34535
            vef: 0.34535
            vnd: 2.56239
            xag: -18.26411
            xau: -12.15048
            xdr: 0.86128
            xlm: -17.32386
            xrp: -15.95294
            yfi: -15.12336
            zar: -0.79
            bits: -38.48505
            link: 3.48984
            sats: -38.48505
          price_change_percentage_200d_in_currency:
            aed: 0.27409
            ars: 146.59495
            aud: -0.94099
            bch: -68.69683
            bdt: 0.09955
            bhd: 0.15109
            bmd: 0.28542
            bnb: -63.08846
            brl: 4.81005
            btc: -61.15308
            cad: 1.61784
            chf: 1.04086
            clp: 6.79019
            cny: -0.47829
            czk: 2.94359
            dkk: -0.75097
            dot: -52.7331
            eos: -44.54766
            eth: -52.12473
            eur: -0.93634
            gbp: -1.69274
            gel: 1.22973
            hkd: 0.3808
            huf: 0.88833
            idr: 3.96384
            ils: -1.24135
            inr: 0.71132
            jpy: 2.92848
            krw: 2.19275
            kwd: -0.16131
            lkr: -7.6736
            ltc: -36.99859
            mmk: 0.09711
            mxn: -3.12141
            myr: 1.37443
            ngn: 67.82109
            nok: 0.50372
            nzd: -0.34572
            php: 0.11647
            pkr: -5.57784
            pln: -8.1674
            rub: -3.83937
            sar: 0.28237
            sek: -3.17098
            sgd: -0.57356
            sol: 0.28542
            thb: 2.17015
            try: 18.96991
            twd: 0.72026
            uah: 5.2582
            usd: 0.28542
            vef: 0.28542
            vnd: 3.07509
            xag: -14.25394
            xau: -16.35411
            xdr: -0.30858
            xlm: -9.47159
            xrp: -13.50921
            yfi: -36.14047
            zar: -0.0392
            bits: -61.15308
            link: -61.01735
            sats: -61.15308
          price_change_percentage_1y_in_currency:
            aed: 0.26525
            ars: 308.7285
            aud: 1.56451
            bch: -81.88425
            bdt: 3.7953
            bhd: 0.15187
            bmd: 0.26784
            bnb: -46.78318
            brl: 0.45006
            btc: -60.06751
            cad: 0.83133
            chf: -0.11602
            clp: 15.1576
            cny: 5.54632
            czk: 9.38824
            dkk: 1.0297
            dot: -28.69493
            eos: 16.06949
            eth: -45.34626
            eur: 0.82449
            gbp: -1.47721
            gel: 5.17331
            hkd: 0.01238
            huf: 5.1392
            idr: 6.6139
            ils: 4.38536
            inr: 2.07095
            jpy: 15.09363
            krw: 2.95664
            kwd: 0.36419
            lkr: -6.37707
            ltc: -11.73068
            mmk: 0.11137
            mxn: -9.08906
            myr: 8.11301
            ngn: 179.16204
            nok: 2.48686
            nzd: 4.08076
            php: 3.96895
            pkr: -2.01262
            pln: -7.63529
            rub: 13.73969
            sar: 0.23249
            sek: 2.28993
            sgd: 1.61669
            sol: 0.26784
            thb: 7.3578
            try: 66.98378
            twd: 5.92998
            uah: 5.75518
            usd: 0.26784
            vef: 0.26784
            vnd: 6.76382
            xag: -8.91935
            xau: -13.59483
            xdr: 1.81677
            xlm: -18.6887
            xrp: -15.15288
            yfi: 2.28685
            zar: 2.80774
            bits: -60.06751
            link: -59.29775
            sats: -60.06751
          market_cap_change_24h_in_currency:
            aed: 44946569
            ars: 8988517241
            aud: 15871670
            bch: 509943
            bdt: 1144764772
            bhd: -11514709.8968201
            bmd: 10444980
            bnb: -140471.262599774
            brl: 49292153
            btc: -13412.9923923103
            cad: 14195251
            chf: 9420150
            clp: -308207330384.047
            cny: 75542277
            czk: 243997877
            dkk: 71886534
            dot: -106704547.220642
            eos: -1004280018.51081
            eth: -200865.124155022
            eur: -5160992.71690369
            gbp: 8264737
            gel: 27992548
            hkd: 81783675
            huf: 3269263468
            idr: 165947238327
            ils: -424989183.342224
            inr: 870036206
            jpy: 1583511263
            krw: 14113988289
            kwd: -4234047.01619148
            lkr: 3119004632
            ltc: -7317729.50461823
            mmk: 21903673423
            mxn: 171857531
            myr: 49587545
            ngn: 13522447056
            nok: 112068373
            nzd: 17367778
            php: 591081455
            pkr: 2898908024
            pln: 41251270
            rub: 966233160
            sar: 39179404
            sek: 111520900
            sgd: 14094582
            sol: 10444980
            thb: 382486818
            try: 334986201
            twd: 335557531
            uah: -1322036717.14111
            usd: 10444980
            vef: 1045856
            vnd: 260766059925
            xag: 227836
            xau: 4482.99
            xdr: 7877897
            xlm: -1991231699.57169
            xrp: -570258604.427063
            yfi: -36804.9171342198
            zar: 195289800
            bits: -13412992392.3103
            link: -22696958.0787933
            sats: -1341299239231.03
          market_cap_change_percentage_24h_in_currency:
            aed: 0.03716
            ars: 0.03171
            aud: 0.03171
            bch: 1.07717
            bdt: 0.03171
            bhd: -0.09274
            bmd: 0.03171
            bnb: -0.24905
            brl: 0.02954
            btc: -2.77002
            cad: 0.03171
            chf: 0.03171
            clp: -0.98557
            cny: 0.03171
            czk: 0.03171
            dkk: 0.03171
            dot: -2.7386
            eos: -3.07115
            eth: -2.03436
            eur: -0.01699
            gbp: 0.03171
            gel: 0.03171
            hkd: 0.03171
            huf: 0.02757
            idr: 0.03171
            ils: -0.34289
            inr: 0.03171
            jpy: 0.03171
            krw: 0.03171
            kwd: -0.0418
            lkr: 0.03171
            ltc: -2.23134
            mmk: 0.03171
            mxn: 0.03171
            myr: 0.03171
            ngn: 0.03171
            nok: 0.03171
            nzd: 0.03171
            php: 0.03171
            pkr: 0.03171
            pln: 0.03171
            rub: 0.03171
            sar: 0.03171
            sek: 0.03171
            sgd: 0.03171
            sol: 0.03171
            thb: 0.03171
            try: 0.03171
            twd: 0.03171
            uah: -0.10336
            usd: 0.03171
            vef: 0.03171
            vnd: 0.03171
            xag: 0.01901
            xau: 0.03171
            xdr: 0.03171
            xlm: -0.77954
            xrp: -1.0259
            yfi: -0.9333
            zar: 0.03171
            bits: -2.77002
            link: -1.20924
            sats: -2.77002
          total_supply: 32937454819.1184
          max_supply: null
          circulating_supply: 32936427353.685
          outstanding_supply: null
          last_updated: '2024-04-07T16:35:22.339Z'
        community_data:
          facebook_likes: null
          reddit_average_posts_48h: 0
          reddit_average_comments_48h: 0
          reddit_subscribers: 0
          reddit_accounts_active_48h: 0
          telegram_channel_user_count: null
        developer_data:
          forks: 277
          stars: 491
          subscribers: 34
          total_issues: 47
          closed_issues: 36
          pull_requests_merged: 260
          pull_request_contributors: 21
          code_additions_deletions_4_weeks:
            additions: 68
            deletions: -15
          commit_count_4_weeks: 5
          last_4_weeks_commit_activity_series:
            - 0
            - 0
            - 0
            - 0
            - 1
            - 1
            - 0
            - 0
            - 0
            - 0
            - 0
            - 0
            - 0
            - 0
            - 0
            - 0
            - 0
            - 1
            - 0
            - 1
            - 0
            - 0
            - 0
            - 0
            - 0
            - 0
            - 0
            - 0
        status_updates: []
        last_updated: '2024-04-07T16:35:22.339Z'
        tickers:
          - base: USDC
            target: USDT
            market:
              name: Bitunix
              identifier: bitunix
              has_trading_incentive: false
            last: 0.9998
            volume: 12225554.4877
            converted_last:
              btc: 0.00001435
              eth: 0.00029359
              usd: 0.999143
            converted_volume:
              btc: 175.375
              eth: 3589
              usd: 12213859
            trust_score: null
            bid_ask_spread_percentage: 0.010001
            timestamp: '2024-04-07T15:34:49+00:00'
            last_traded_at: '2024-04-07T15:34:49+00:00'
            last_fetch_at: '2024-04-07T15:34:49+00:00'
            is_anomaly: false
            is_stale: false
            trade_url: https://www.bitunix.com/spot-trade?symbol=USDCUSDT
            token_info_url: null
            coin_id: usd-coin
            target_coin_id: tether
    GenerateContentRequest:
      type: object
      properties:
        contents:
          type: array
          items:
            $ref: '#/components/schemas/Content'
          description: Content of the conversation, required
        tools:
          type: array
          items:
            $ref: '#/components/schemas/Tool'
          description: Optional tools the model can use
        toolConfig:
          type: object
          description: Optional tool configuration
        safetySettings:
          type: array
          items:
            $ref: '#/components/schemas/SafetySetting'
        systemInstruction:
          $ref: '#/components/schemas/Content'
        generationConfig:
          $ref: '#/components/schemas/GenerationConfig'
        cachedContent:
          type: string
          description: Optional cached content ID
      required:
        - contents
    Content:
      type: object
      properties:
        parts:
          type: array
          items:
            oneOf:
              - type: object
                properties:
                  text:
                    type: string
              - type: object
                properties:
                  inline_data:
                    type: object
        role:
          type: string
          enum:
            - system
            - user
            - assistant
    Tool:
      type: object
    SafetySetting:
      type: object
    GenerationConfig:
      type: object
    GenerateContentResponse:
      type: object
      properties:
        candidates:
          type: array
          items:
            $ref: '#/components/schemas/Content'
    GeminiOpenapi_ErrorResponse:
      type: object
      properties:
        error:
          type: object
          properties:
            code:
              type: integer
            message:
              type: string
            status:
              type: string
    InterestRatesResponse:
      type: object
      properties:
        interest_rates:
          type: array
          items:
            $ref: '#/components/schemas/InterestRate'
    InterestRate:
      type: object
      properties:
        bank:
          type: string
          description: The symbol of the central bank.
        name:
          type: string
          description: The name of the central bank.
        rate:
          type: number
          description: The interest rate of the central bank.
        date:
          type: string
          description: The date of the interest rate in YYYY-MM-DD format.
    MacroSnapshot_ErrorResponse:
      type: object
      properties:
        error:
          type: string
          description: A short error message.
        message:
          type: string
          description: A more detailed error message.
    SearchFiltersRequest:
      type: object
      required:
        - filters
      properties:
        period:
          type: string
          enum:
            - annual
            - quarterly
            - ttm
          default: ttm
          description: The time period for the financial data.
        limit:
          type: integer
          minimum: 1
          maximum: 100
          default: 100
          description: The maximum number of results to return.
        order_by:
          type: string
          enum:
            - ticker
            - '-ticker'
            - report_period
            - '-report_period'
          default: ticker
          description: The field to order the results by.  Use -field to order in descending order.
        currency:
          type: string
          enum:
            - USD
            - EUR
            - GBP
            - JPY
            - CHF
            - AUD
            - CAD
            - SEK
          description: The currency of the financial data.
        historical:
          type: boolean
          default: false
          description: Whether to return historical financial data.
        filters:
          type: array
          items:
            type: object
            required:
              - field
              - operator
              - value
            properties:
              field:
                type: string
                description: >-
                  The criteria to filter on.  For financial metric fields, use 'gt', 'lt', 'gte', 'lte', 'eq'
                  operators.  For 'ticker' and 'cik' fields, use the 'in' operator to filter against multiple values.
              operator:
                type: string
                enum:
                  - gt
                  - lt
                  - gte
                  - lte
                  - eq
                  - in
                description: >-
                  The comparison operator. The 'in' operator can only be used with a field value of 'ticker' or 'cik'
                  and lets you filter against multiple values.
              value:
                oneOf:
                  - type: number
                    description: The value to compare against for single-value operators (gt, lt, gte, lte, eq)
                  - type: array
                    items:
                      type: string
                    description: Array of ticker or cik values to compare against when using the 'in' operator
          minItems: 1
          description: An array of filter objects to apply to the search.
    SearchLineItemsRequest:
      type: object
      required:
        - line_items
        - tickers
      properties:
        line_items:
          type: array
          items:
            type: string
            description: The financial metric to search for.
          minItems: 1
          description: An array of line items to apply to the search.
        tickers:
          type: array
          items:
            type: string
            description: The tickers to search for.
          minItems: 1
          description: An array of tickers to apply to the search.
        period:
          type: string
          enum:
            - annual
            - quarterly
            - ttm
          default: ttm
          description: The time period for the financial data.
        limit:
          type: integer
          minimum: 1
          default: 1
          description: The maximum number of results to return.
    FinancialsSearchResponse:
      type: object
      properties:
        search_results:
          type: array
          items:
            type: object
            properties:
              ticker:
                type: string
                description: The ticker symbol of the company.
              report_period:
                type: string
                format: date
                description: The reporting period of the financial data.
              period:
                type: string
                enum:
                  - annual
                  - quarterly
                  - ttm
                description: The time period of the financial data.
              currency:
                type: string
                description: The currency of the financial data.
            additionalProperties:
              type: string
              description: Additional financial metrics based on the search criteria.
    OpenapiFinancial_ErrorResponse:
      type: object
      properties:
        error:
          type: string
          description: A short error message.
        message:
          type: string
          description: A more detailed error message.
    InsiderTradesResponse:
      type: object
      properties:
        insider_trades:
          type: array
          items:
            $ref: '#/components/schemas/InsiderTrade'
    InstitutionalOwnershipResponse:
      type: object
      properties:
        institutional-ownership:
          type: array
          items:
            $ref: '#/components/schemas/InstitutionalOwnership'
    FinancialsResponse:
      type: object
      properties:
        financials:
          type: object
          properties:
            income_statements:
              type: array
              items:
                $ref: '#/components/schemas/IncomeStatement'
            balance_sheets:
              type: array
              items:
                $ref: '#/components/schemas/BalanceSheet'
            cash_flow_statements:
              type: array
              items:
                $ref: '#/components/schemas/CashFlowStatement'
    SegmentedRevenuesResponse:
      type: object
      properties:
        segmented_revenues:
          type: array
          items:
            $ref: '#/components/schemas/SegmentedRevenues'
    IncomeStatementResponse:
      type: object
      properties:
        income_statements:
          type: array
          items:
            $ref: '#/components/schemas/IncomeStatement'
    BalanceSheetResponse:
      type: object
      properties:
        balance_sheets:
          type: array
          items:
            $ref: '#/components/schemas/BalanceSheet'
    CashFlowStatementResponse:
      type: object
      properties:
        cash_flow_statements:
          type: array
          items:
            $ref: '#/components/schemas/CashFlowStatement'
    CompanyFactsResponse:
      type: object
      properties:
        company_facts:
          $ref: '#/components/schemas/CompanyFacts'
    FilingsResponse:
      type: object
      properties:
        filings:
          type: array
          items:
            $ref: '#/components/schemas/Filing'
    FilingItemsResponse:
      type: object
      properties:
        ticker:
          type: string
          description: The ticker symbol of the company.
        cik:
          type: string
          description: The Central Index Key (CIK) of the company.
        filing_type:
          type: string
          description: The type of filing.
        accession_number:
          type: string
          description: The accession number of the filing.
        year:
          type: integer
          description: The year of the filing.
        quarter:
          type: integer
          description: The quarter of the filing.
        items:
          type: array
          items:
            $ref: '#/components/schemas/FilingItem'
    PressReleasesResponse:
      type: object
      properties:
        press_releases:
          type: array
          items:
            $ref: '#/components/schemas/PressRelease'
    PriceSnapshotResponse:
      type: object
      properties:
        snapshot:
          $ref: '#/components/schemas/PriceSnapshot'
    CryptoPriceSnapshotResponse:
      type: object
      properties:
        snapshot:
          $ref: '#/components/schemas/CryptoPriceSnapshot'
    NewsResponse:
      type: object
      properties:
        news:
          type: array
          items:
            $ref: '#/components/schemas/News'
    PricesResponse:
      type: object
      properties:
        prices:
          type: array
          items:
            $ref: '#/components/schemas/Price'
        next_page_url:
          type: string
          description: The URL to the next page of results.
    CryptoPricesResponse:
      type: object
      properties:
        prices:
          type: array
          items:
            $ref: '#/components/schemas/Price'
    InsiderTrade:
      type: object
      properties:
        ticker:
          type: string
          description: The ticker symbol of the company.
        issuer:
          type: string
          description: The name of the issuing company.
        name:
          type: string
          description: The name of the insider.
        title:
          type: string
          description: The title of the insider.
        is_board_director:
          type: boolean
          description: Whether the insider is a board director.
        transaction_date:
          type: string
          format: date
          description: The date of the transaction.
        transaction_shares:
          type: number
          description: The number of shares involved in the transaction.
        transaction_price_per_share:
          type: number
          description: The price per share in the transaction.
        transaction_value:
          type: number
          description: The total value of the transaction.
        shares_owned_before_transaction:
          type: number
          description: The number of shares owned before the transaction.
        shares_owned_after_transaction:
          type: number
          description: The number of shares owned after the transaction.
        security_title:
          type: string
          description: The title of the security involved in the transaction.
        filing_date:
          type: string
          format: date
          description: The date the transaction was filed.
    InstitutionalOwnership:
      type: object
      properties:
        ticker:
          type: string
          description: The ticker symbol, if queried by investor.
        investor:
          type: string
          description: The investor name, if queried by ticker.
        report_period:
          type: string
          format: date
          description: The reporting period of the institutional ownership.
        price:
          type: number
          description: The estimated purchase price of the equity position.
        shares:
          type: number
          description: The number of shares held by the investment manager.
        market_value:
          type: number
          description: The market value of the equity position.
    SegmentedRevenues:
      type: object
      properties:
        ticker:
          type: string
          description: The ticker symbol.
        report_period:
          type: string
          format: date
          description: The reporting period of the revenue.
        period:
          type: string
          enum:
            - quarterly
            - annual
          description: The time period of the revenue.
        items:
          type: array
          description: An array of revenue segments from SEC filings (10-Ks and 10-Qs) in XBRL format
          items:
            type: object
            properties:
              name:
                type: string
                description: The name of the revenue segment.
              amount:
                type: number
                description: >-
                  The numerical amount reported for the specified financial metric, expressed in the company's reporting
                  currency; default is USD.
              end_period:
                type: string
                format: date
                nullable: true
                description: The end period of the revenue segment.  Only provided for quarterly data.
              start_period:
                type: string
                format: date
                nullable: true
                description: The start period of the revenue segment.  Only provided for quarterly data.
              segments:
                type: array
                items:
                  type: object
                  properties:
                    label:
                      type: string
                      description: The label for the revenue segment.
                    type:
                      type: string
                      description: The type of revenue segment.
    IncomeStatement:
      type: object
      properties:
        ticker:
          type: string
          description: The ticker symbol.
        report_period:
          type: string
          format: date
          description: The reporting period of the income statement.
        fiscal_period:
          type: string
          description: The fiscal period of the income statement.
        period:
          type: string
          enum:
            - quarterly
            - ttm
            - annual
          description: The time period of the income statement.
        currency:
          type: string
          description: The currency in which the financial data is reported.
        revenue:
          type: number
          nullable: false
          description: The total revenue of the company.
        cost_of_revenue:
          type: number
          nullable: false
          description: The cost of revenue of the company.
        gross_profit:
          type: number
          nullable: false
          description: The gross profit of the company.
        operating_expense:
          type: number
          nullable: false
          description: The operating expenses of the company.
        selling_general_and_administrative_expenses:
          type: number
          nullable: false
          description: The selling, general, and administrative expenses of the company.
        research_and_development:
          type: number
          nullable: false
          description: The research and development expenses of the company.
        operating_income:
          type: number
          nullable: false
          description: The operating income of the company.
        interest_expense:
          type: number
          nullable: false
          description: The interest expenses of the company.
        ebit:
          type: number
          nullable: false
          description: The earnings before interest and taxes of the company.
        income_tax_expense:
          type: number
          nullable: false
          description: The income tax expenses of the company.
        net_income_discontinued_operations:
          type: number
          nullable: false
          description: The net income from discontinued operations of the company.
        net_income_non_controlling_interests:
          type: number
          nullable: false
          description: The net income from non-controlling interests of the company.
        net_income:
          type: number
          nullable: false
          description: The net income of the company.
        net_income_common_stock:
          type: number
          nullable: false
          description: The net income available to common stockholders of the company.
        preferred_dividends_impact:
          type: number
          nullable: false
          description: The impact of preferred dividends on the net income of the company.
        consolidated_income:
          type: number
          nullable: false
          description: The consolidated income of the company.
        earnings_per_share:
          type: number
          nullable: false
          description: The earnings per share of the company.
        earnings_per_share_diluted:
          type: number
          nullable: false
          description: The diluted earnings per share of the company.
        dividends_per_common_share:
          type: number
          nullable: false
          description: The dividends per common share of the company.
        weighted_average_shares:
          type: number
          nullable: false
          description: The weighted average shares of the company.
        weighted_average_shares_diluted:
          type: number
          nullable: false
          description: The diluted weighted average shares of the company.
    BalanceSheet:
      type: object
      properties:
        ticker:
          type: string
          description: The ticker symbol.
        report_period:
          type: string
          format: date
          description: The reporting period of the balance sheet.
        fiscal_period:
          type: string
          description: The fiscal period of the balance sheet.
        period:
          type: string
          enum:
            - quarterly
            - ttm
            - annual
          description: The time period of the balance sheet.
        currency:
          type: string
          description: The currency in which the financial data is reported.
        total_assets:
          type: number
          nullable: false
          description: The total assets of the company.
        current_assets:
          type: number
          nullable: false
          description: The current assets of the company.
        cash_and_equivalents:
          type: number
          nullable: false
          description: The cash and equivalents of the company.
        inventory:
          type: number
          nullable: false
          description: The inventory of the company.
        current_investments:
          type: number
          nullable: false
          description: The current investments of the company.
        trade_and_non_trade_receivables:
          type: number
          nullable: false
          description: The trade and non-trade receivables of the company.
        non_current_assets:
          type: number
          nullable: false
          description: The non-current assets of the company.
        property_plant_and_equipment:
          type: number
          nullable: false
          description: The property, plant, and equipment of the company.
        goodwill_and_intangible_assets:
          type: number
          nullable: false
          description: The goodwill and intangible assets of the company.
        investments:
          type: number
          nullable: false
          description: The investments of the company.
        non_current_investments:
          type: number
          nullable: false
          description: The non-current investments of the company.
        outstanding_shares:
          type: number
          nullable: false
          description: The outstanding shares of the company.
        tax_assets:
          type: number
          nullable: false
          description: The tax assets of the company.
        total_liabilities:
          type: number
          nullable: false
          description: The total liabilities of the company.
        current_liabilities:
          type: number
          nullable: false
          description: The current liabilities of the company.
        current_debt:
          type: number
          nullable: false
          description: The current debt of the company.
        trade_and_non_trade_payables:
          type: number
          nullable: false
          description: The trade and non-trade payables of the company.
        deferred_revenue:
          type: number
          nullable: false
          description: The deferred revenue of the company.
        deposit_liabilities:
          type: number
          nullable: false
          description: The deposit liabilities of the company.
        non_current_liabilities:
          type: number
          nullable: false
          description: The non-current liabilities of the company.
        non_current_debt:
          type: number
          nullable: false
          description: The non-current debt of the company.
        tax_liabilities:
          type: number
          nullable: false
          description: The tax liabilities of the company.
        shareholders_equity:
          type: number
          nullable: false
          description: The shareholders' equity of the company.
        retained_earnings:
          type: number
          nullable: false
          description: The retained earnings of the company.
        accumulated_other_comprehensive_income:
          type: number
          nullable: false
          description: The accumulated other comprehensive income of the company.
        total_debt:
          type: number
          nullable: false
          description: The total debt of the company.
    CashFlowStatement:
      type: object
      properties:
        ticker:
          type: string
          description: The ticker symbol.
        report_period:
          type: string
          format: date
          description: The reporting period of the cash flow statement.
        fiscal_period:
          type: string
          description: The fiscal period of the cash flow statement.
        period:
          type: string
          enum:
            - quarterly
            - ttm
            - annual
          description: The time period of the cash flow statement.
        currency:
          type: string
          description: The currency in which the financial data is reported.
        net_income:
          type: number
          nullable: false
          description: The net income of the company.
        depreciation_and_amortization:
          type: number
          nullable: false
          description: The depreciation and amortization of the company.
        share_based_compensation:
          type: number
          nullable: false
          description: The share-based compensation of the company.
        net_cash_flow_from_operations:
          type: number
          nullable: false
          description: The net cash flow from operations of the company.
        capital_expenditure:
          type: number
          nullable: false
          description: The capital expenditure of the company.
        business_acquisitions_and_disposals:
          type: number
          nullable: false
          description: The business acquisitions and disposals of the company.
        investment_acquisitions_and_disposals:
          type: number
          nullable: false
          description: The investment acquisitions and disposals of the company.
        net_cash_flow_from_investing:
          type: number
          nullable: false
          description: The net cash flow from investing of the company.
        issuance_or_repayment_of_debt_securities:
          type: number
          nullable: false
          description: The issuance or repayment of debt securities of the company.
        issuance_or_purchase_of_equity_shares:
          type: number
          nullable: false
          description: The issuance or purchase of equity shares of the company.
        dividends_and_other_cash_distributions:
          type: number
          nullable: false
          description: The dividends and other cash distributions of the company.
        net_cash_flow_from_financing:
          type: number
          nullable: false
          description: The net cash flow from financing of the company.
        change_in_cash_and_equivalents:
          type: number
          nullable: false
          description: The change in cash and equivalents of the company.
        effect_of_exchange_rate_changes:
          type: number
          nullable: false
          description: The effect of exchange rate changes of the company.
        ending_cash_balance:
          type: number
          nullable: false
          description: The ending cash balance of the company.
        free_cash_flow:
          type: number
          nullable: false
          description: The free cash flow of the company.
    CompanyFacts:
      type: object
      properties:
        ticker:
          type: string
          description: The ticker symbol of the company.
        name:
          type: string
          description: The name of the company.
        cik:
          type: string
          description: The Central Index Key (CIK) of the company.
        industry:
          type: string
          description: The industry of the company.
        sector:
          type: string
          description: The sector of the company.
        category:
          type: string
          description: The category of the company.
        exchange:
          type: string
          description: The exchange of the company.
        is_active:
          type: boolean
          description: Whether the company is currently active.
        listing_date:
          type: string
          format: date
          description: The date the company was listed on the stock exchange.
        location:
          type: string
          description: The location of the company.
        market_cap:
          type: number
          description: The market capitalization of the company.
        number_of_employees:
          type: number
          description: The number of employees at the company.
        sec_filings_url:
          type: string
          format: uri
          description: The URL of the company's SEC filings.
        sic_code:
          type: string
          description: The Standard Industrial Classification (SIC) code of the company.
        sic_industry:
          type: string
          description: The industry of the company based on the SIC code.
        sic_sector:
          type: string
          description: The sector of the company based on the SIC code.
        website_url:
          type: string
          format: uri
          description: The URL of the company's website.
        weighted_average_shares:
          type: number
          description: The weighted average shares of the company.
    Filing:
      type: object
      properties:
        cik:
          type: integer
          description: The Central Index Key (CIK) of the company.
        accession_number:
          type: string
          description: The accession number of the filing.
        filing_type:
          type: string
          description: The type of the SEC filing (e.g., 10-Q, 8-K).
        report_date:
          type: string
          format: date
          description: The date of the report.
        ticker:
          type: string
          description: The ticker symbol.
        url:
          type: string
          format: uri
          description: The URL of the SEC filing.
    FilingItem:
      type: object
      properties:
        number:
          type: string
          description: The item number.
        name:
          type: string
          description: The item name.
        text:
          type: string
          description: The item text.
    PressRelease:
      type: object
      properties:
        ticker:
          type: string
          description: The ticker symbol of the company.
        title:
          type: string
          description: The title of the press release.
        url:
          type: string
          format: uri
          description: The URL of the press release.
        date:
          type: string
          format: date
          description: The date the press release was published.
        text:
          type: string
          description: The full text of the press release.
    PriceSnapshot:
      type: object
      properties:
        price:
          type: number
          description: The current price of the stock.
        ticker:
          type: string
          description: The ticker symbol.
        day_change:
          type: number
          description: The price change since the previous trading day's close.
        day_change_percent:
          type: number
          description: The percentage price change since the previous trading day's close.
        market_cap:
          type: number
          description: The market capitalization of the company.
        time:
          type: string
          description: The timestamp of the price snapshot in human-readable format in UTC.
        time_milliseconds:
          type: number
          description: The timestamp of the price snapshot in milliseconds since epoch.
    CryptoPriceSnapshot:
      type: object
      properties:
        price:
          type: number
          description: The current price of the cryptocurrency.
        ticker:
          type: string
          description: The ticker symbol.
        day_change:
          type: number
          description: The price change over the last 24 hours.
        day_change_percent:
          type: number
          description: The percentage price change over the last 24 hours.
        time:
          type: string
          description: The timestamp of the price snapshot in human-readable format in UTC.
    News:
      type: object
      properties:
        ticker:
          type: string
          description: The ticker symbol.
        title:
          type: string
          description: The title of the news article.
        author:
          type: string
          description: The author of the news article.
        source:
          type: string
          description: The source of the news article.
        date:
          type: string
          format: date
          description: The date the news article was published.
        url:
          type: string
          format: uri
          description: The URL of the news article.
        sentiment:
          type: string
          description: The sentiment of the news article.
    Price:
      type: object
      properties:
        open:
          type: number
          description: The open price of the ticker in the given time period.
        close:
          type: number
          description: The close price of the ticker in the given time period.
        high:
          type: number
          description: The high price of the ticker in the given time period.
        low:
          type: number
          description: The low price of the ticker in the given time period.
        volume:
          type: integer
          format: number
          description: The volume of the ticker in the given time period.
        time:
          type: string
          description: The human-readable time format of the price in UTC.
        time_milliseconds:
          type: number
          description: The timestamp of the price in milliseconds since epoch.
    FinancialMetricsResponse:
      type: object
      properties:
        ticker:
          type: string
          description: The ticker symbol of the company.
        market_cap:
          type: number
          description: The market capitalization of the company.
        enterprise_value:
          type: number
          description: The total value of the company (market cap + debt - cash).
        price_to_earnings_ratio:
          type: number
          description: Price to earnings ratio.
        price_to_book_ratio:
          type: number
          description: Price to book ratio.
        price_to_sales_ratio:
          type: number
          description: Price to sales ratio.
        enterprise_value_to_ebitda_ratio:
          type: number
          description: Enterprise value to EBITDA ratio.
        enterprise_value_to_revenue_ratio:
          type: number
          description: Enterprise value to revenue ratio.
        free_cash_flow_yield:
          type: number
          description: Free cash flow yield.
        peg_ratio:
          type: number
          description: Price to earnings growth ratio.
        gross_margin:
          type: number
          description: Gross profit as a percentage of revenue.
        operating_margin:
          type: number
          description: Operating income as a percentage of revenue.
        net_margin:
          type: number
          description: Net income as a percentage of revenue.
        return_on_equity:
          type: number
          description: Net income as a percentage of shareholders' equity.
        return_on_assets:
          type: number
          description: Net income as a percentage of total assets.
        return_on_invested_capital:
          type: number
          description: Net operating profit after taxes as a percentage of invested capital.
        asset_turnover:
          type: number
          description: Revenue divided by average total assets.
        inventory_turnover:
          type: number
          description: Cost of goods sold divided by average inventory.
        receivables_turnover:
          type: number
          description: Revenue divided by average accounts receivable.
        days_sales_outstanding:
          type: number
          description: Average accounts receivable divided by revenue over the period.
        operating_cycle:
          type: number
          description: Inventory turnover + receivables turnover.
        working_capital_turnover:
          type: number
          description: Revenue divided by average working capital.
        current_ratio:
          type: number
          description: Current assets divided by current liabilities.
        quick_ratio:
          type: number
          description: Quick assets divided by current liabilities.
        cash_ratio:
          type: number
          description: Cash and cash equivalents divided by current liabilities.
        operating_cash_flow_ratio:
          type: number
          description: Operating cash flow divided by current liabilities.
        debt_to_equity:
          type: number
          description: Total debt divided by shareholders' equity.
        debt_to_assets:
          type: number
          description: Total debt divided by total assets.
        interest_coverage:
          type: number
          description: EBIT divided by interest expense.
        revenue_growth:
          type: number
          description: Year-over-year growth in revenue.
        earnings_growth:
          type: number
          description: Year-over-year growth in earnings.
        book_value_growth:
          type: number
          description: Year-over-year growth in book value.
        earnings_per_share_growth:
          type: number
          description: Growth in earnings per share over the period.
        free_cash_flow_growth:
          type: number
          description: Growth in free cash flow over the period.
        operating_income_growth:
          type: number
          description: Growth in operating income over the period.
        ebitda_growth:
          type: number
          description: Growth in EBITDA over the period.
        payout_ratio:
          type: number
          description: Dividends paid as a percentage of net income.
        earnings_per_share:
          type: number
          description: Net income divided by weighted average shares outstanding.
        book_value_per_share:
          type: number
          description: Shareholders' equity divided by shares outstanding.
        free_cash_flow_per_share:
          type: number
          description: Free cash flow divided by shares outstanding.
    OpenapiFinancial_AnalystEstimatesResponse:
      type: object
      properties:
        analyst_estimates:
          type: array
          items:
            $ref: '#/components/schemas/AnalystEstimate'
    OpenapiFinancial_AnalystEstimate:
      type: object
      properties:
        fiscal_period:
          type: string
          format: date
          description: The fiscal period of the analyst estimate.
        period:
          type: string
          enum:
            - annual
            - quarterly
          description: The period of the analyst estimate.
        revenue:
          type: integer
          description: The estimated revenue.
        earnings_per_share:
          type: number
          description: The estimated earnings per share.
    EarningsTimeDimension:
      type: object
      properties:
        fiscal_period:
          type: string
          nullable: true
          description: Fiscal period label (e.g. 2025-Q4 or 2025-FY).
        currency:
          type: string
          nullable: true
          description: ISO currency code (e.g. USD).
        revenue:
          type: number
          nullable: true
        estimated_revenue:
          type: number
          description: Estimated revenue. Returned only when available.
        revenue_surprise:
          type: string
          description: Revenue surprise classification versus estimate. Returned only when available.
          enum:
            - BEAT
            - MISS
            - MEET
        earnings_per_share:
          type: number
          nullable: true
        estimated_earnings_per_share:
          type: number
          description: Estimated earnings per share. Returned only when available.
        eps_surprise:
          type: string
          description: EPS surprise classification versus estimate. Returned only when available.
          enum:
            - BEAT
            - MISS
            - MEET
        net_income:
          type: number
          nullable: true
        gross_profit:
          type: number
          nullable: true
        operating_income:
          type: number
          nullable: true
        weighted_average_shares:
          type: number
          nullable: true
        weighted_average_shares_diluted:
          type: number
          nullable: true
        cash_and_equivalents:
          type: number
          nullable: true
        total_debt:
          type: number
          nullable: true
        total_assets:
          type: number
          nullable: true
        total_liabilities:
          type: number
          nullable: true
        shareholders_equity:
          type: number
          nullable: true
        net_cash_flow_from_operations:
          type: number
          nullable: true
        capital_expenditure:
          type: number
          nullable: true
        net_cash_flow_from_investing:
          type: number
          nullable: true
        net_cash_flow_from_financing:
          type: number
          nullable: true
        change_in_cash_and_equivalents:
          type: number
          nullable: true
        free_cash_flow:
          type: number
          nullable: true
        revenue_chg:
          type: number
          description: >-
            Percentage change in revenue. QoQ in quarterly payload and YoY in annual payload. Returned only when
            calculable.
        net_income_chg:
          type: number
          description: >-
            Percentage change in net income. QoQ in quarterly payload and YoY in annual payload. Returned only when
            calculable.
        operating_income_chg:
          type: number
          description: >-
            Percentage change in operating income. QoQ in quarterly payload and YoY in annual payload. Returned only
            when calculable.
        gross_profit_chg:
          type: number
          description: >-
            Percentage change in gross profit. QoQ in quarterly payload and YoY in annual payload. Returned only when
            calculable.
        net_cash_flow_from_operations_chg:
          type: number
          description: >-
            Percentage change in net cash flow from operations. QoQ in quarterly payload and YoY in annual payload.
            Returned only when calculable.
        net_cash_flow_from_investing_chg:
          type: number
          description: >-
            Percentage change in net cash flow from investing. QoQ in quarterly payload and YoY in annual payload.
            Returned only when calculable.
        net_cash_flow_from_financing_chg:
          type: number
          description: >-
            Percentage change in net cash flow from financing. QoQ in quarterly payload and YoY in annual payload.
            Returned only when calculable.
        free_cash_flow_chg:
          type: number
          description: >-
            Percentage change in free cash flow. QoQ in quarterly payload and YoY in annual payload. Returned only when
            calculable.
    Earnings:
      type: object
      properties:
        ticker:
          type: string
          description: The requested ticker symbol.
        report_period:
          type: string
          format: date
          description: Most recent report period found for the ticker.
        fiscal_period:
          type: string
          nullable: true
          description: Fiscal period label (e.g. 2025-Q4 or 2025-FY).
        currency:
          type: string
          nullable: true
          description: ISO currency code (e.g. USD).
        quarterly:
          $ref: '#/components/schemas/EarningsTimeDimension'
        annual:
          $ref: '#/components/schemas/EarningsTimeDimension'
    EarningsResponse:
      type: object
      properties:
        earnings:
          $ref: '#/components/schemas/Earnings'
    Beta:
      type: object
      properties:
        value:
          type: number
          nullable: true
          description: Beta coefficient of stock monthly returns vs benchmark monthly returns.
        ticker:
          type: string
          description: The requested ticker symbol.
        benchmark:
          type: string
          description: Benchmark ticker used for beta calculation.
        requested_lookback:
          type: string
          description: Requested lookback window.
        interval:
          type: string
          description: Interval used for returns alignment.
        start_date:
          type: string
          format: date
          nullable: true
          description: First aligned month-end date used.
        end_date:
          type: string
          format: date
          nullable: true
          description: Last aligned month-end date used.
        n_observations:
          type: integer
          description: Number of overlapping monthly observations used.
        r_squared:
          type: number
          nullable: true
          description: Coefficient of determination for the OLS fit.
        method:
          type: string
          description: Computation method used.
        price_type:
          type: string
          description: Price type used to compute returns.
        reason:
          type: string
          nullable: true
          description: Present when value is null due to insufficient or invalid input data.
    BetaResponse:
      type: object
      properties:
        beta:
          $ref: '#/components/schemas/Beta'
    PriceSnapshotMarketResponse:
      type: object
      properties:
        snapshots:
          type: array
          items:
            $ref: '#/components/schemas/PriceSnapshot'
    TickersResponse:
      type: object
      properties:
        resource:
          type: string
          description: The resource type identifier.
        tickers:
          type: array
          items:
            type: string
          description: List of available ticker symbols.
    CiksResponse:
      type: object
      properties:
        resource:
          type: string
          description: The resource type identifier.
        ciks:
          type: array
          items:
            type: string
          description: List of available CIK codes.
    FinancialMetricSnapshotResponse:
      type: object
      properties:
        snapshot:
          $ref: '#/components/schemas/FinancialMetricSnapshot'
    FinancialMetricSnapshot:
      type: object
      properties:
        ticker:
          type: string
          description: The ticker symbol of the company.
        market_cap:
          type: number
          nullable: true
          description: The total market capitalization (stock price × shares outstanding).
        enterprise_value:
          type: number
          nullable: true
          description: The total value of the company (market cap + debt - cash).
        price_to_earnings_ratio:
          type: number
          nullable: true
          description: Price to earnings ratio.
        price_to_book_ratio:
          type: number
          nullable: true
          description: Price to book ratio.
        price_to_sales_ratio:
          type: number
          nullable: true
          description: Price to sales ratio.
        enterprise_value_to_ebitda_ratio:
          type: number
          nullable: true
          description: Enterprise value to EBITDA ratio.
        enterprise_value_to_revenue_ratio:
          type: number
          nullable: true
          description: Enterprise value to revenue ratio.
        free_cash_flow_yield:
          type: number
          nullable: true
          description: Free cash flow yield.
        peg_ratio:
          type: number
          nullable: true
          description: Price to earnings growth ratio.
        gross_margin:
          type: number
          nullable: true
          description: Gross profit as a percentage of revenue.
        operating_margin:
          type: number
          nullable: true
          description: Operating income as a percentage of revenue.
        net_margin:
          type: number
          nullable: true
          description: Net income as a percentage of revenue.
        return_on_equity:
          type: number
          nullable: true
          description: Net income as a percentage of shareholders' equity.
        return_on_assets:
          type: number
          nullable: true
          description: Net income as a percentage of total assets.
        return_on_invested_capital:
          type: number
          nullable: true
          description: Net operating profit after taxes as a percentage of invested capital.
        asset_turnover:
          type: number
          nullable: true
          description: Revenue divided by average total assets.
        inventory_turnover:
          type: number
          nullable: true
          description: Cost of goods sold divided by average inventory.
        receivables_turnover:
          type: number
          nullable: true
          description: Revenue divided by average accounts receivable.
        days_sales_outstanding:
          type: number
          nullable: true
          description: Average accounts receivable divided by revenue over the period.
        operating_cycle:
          type: number
          nullable: true
          description: Inventory turnover + receivables turnover.
        working_capital_turnover:
          type: number
          nullable: true
          description: Revenue divided by average working capital.
        current_ratio:
          type: number
          nullable: true
          description: Current assets divided by current liabilities.
        quick_ratio:
          type: number
          nullable: true
          description: Quick assets divided by current liabilities.
        cash_ratio:
          type: number
          nullable: true
          description: Cash and cash equivalents divided by current liabilities.
        operating_cash_flow_ratio:
          type: number
          nullable: true
          description: Operating cash flow divided by current liabilities.
        debt_to_equity:
          type: number
          nullable: true
          description: Total debt divided by shareholders' equity.
        debt_to_assets:
          type: number
          nullable: true
          description: Total debt divided by total assets.
        interest_coverage:
          type: number
          nullable: true
          description: EBIT divided by interest expense.
        revenue_growth:
          type: number
          nullable: true
          description: Year-over-year growth in revenue.
        earnings_growth:
          type: number
          nullable: true
          description: Year-over-year growth in earnings.
        book_value_growth:
          type: number
          nullable: true
          description: Year-over-year growth in book value.
        earnings_per_share_growth:
          type: number
          nullable: true
          description: Growth in earnings per share over the period.
        free_cash_flow_growth:
          type: number
          nullable: true
          description: Growth in free cash flow over the period.
        operating_income_growth:
          type: number
          nullable: true
          description: Growth in operating income over the period.
        ebitda_growth:
          type: number
          nullable: true
          description: Growth in EBITDA over the period.
        payout_ratio:
          type: number
          nullable: true
          description: Dividends paid as a percentage of net income.
        earnings_per_share:
          type: number
          nullable: true
          description: Net income divided by weighted average shares outstanding.
        book_value_per_share:
          type: number
          nullable: true
          description: Shareholders' equity divided by shares outstanding.
        free_cash_flow_per_share:
          type: number
          nullable: true
          description: Free cash flow divided by shares outstanding.
    OpenapiFinancial_InterestRatesResponse:
      type: object
      properties:
        interest_rates:
          type: array
          items:
            $ref: '#/components/schemas/InterestRate'
    SegmentBreakdown:
      type: object
      properties:
        label:
          type: string
          description: The label for the segment (e.g., 'iPhone', 'Americas').
        value:
          type: number
          description: The value for the segment.
    SegmentCategory:
      type: object
      description: Segment breakdowns grouped by category.
      properties:
        product:
          type: array
          description: Breakdowns by product line.
          items:
            $ref: '#/components/schemas/SegmentBreakdown'
        segment:
          type: array
          description: Breakdowns by business or operating segment.
          items:
            $ref: '#/components/schemas/SegmentBreakdown'
    SegmentMetadata:
      type: object
      description: Common metadata fields for all segment responses.
      properties:
        ticker:
          type: string
          description: The ticker symbol.
        report_period:
          type: string
          format: date
          description: The reporting period.
        fiscal_period:
          type: string
          description: The fiscal period (e.g., Q1, Q2, Q3, Q4, FY).
        period:
          type: string
          enum:
            - quarterly
            - annual
          description: The time period.
        currency:
          type: string
          description: The reporting currency (e.g., USD, EUR, GBP).
        accession_number:
          type: string
          description: The SEC filing accession number.
        filing_url:
          type: string
          description: URL to the SEC filing.
    IncomeStatementSegments:
      allOf:
        - $ref: '#/components/schemas/SegmentMetadata'
        - type: object
          properties:
            revenue:
              nullable: true
              allOf:
                - $ref: '#/components/schemas/SegmentCategory'
              description: Revenue broken down by product and/or segment.
            operating_income:
              nullable: true
              allOf:
                - $ref: '#/components/schemas/SegmentCategory'
              description: Operating income broken down by segment.
            depreciation:
              nullable: true
              allOf:
                - $ref: '#/components/schemas/SegmentCategory'
              description: Depreciation broken down by segment.
    BalanceSheetSegments:
      allOf:
        - $ref: '#/components/schemas/SegmentMetadata'
        - type: object
          properties:
            assets:
              nullable: true
              allOf:
                - $ref: '#/components/schemas/SegmentCategory'
              description: Assets broken down by segment.
            goodwill:
              nullable: true
              allOf:
                - $ref: '#/components/schemas/SegmentCategory'
              description: Goodwill broken down by segment.
            long_lived_assets:
              nullable: true
              allOf:
                - $ref: '#/components/schemas/SegmentCategory'
              description: Long-lived assets broken down by segment.
    CashFlowStatementSegments:
      allOf:
        - $ref: '#/components/schemas/SegmentMetadata'
        - type: object
          properties:
            capital_expenditure:
              nullable: true
              allOf:
                - $ref: '#/components/schemas/SegmentCategory'
              description: Capital expenditure broken down by segment.
    IncomeStatementSegmentsResponse:
      type: object
      properties:
        segmented_financials:
          type: array
          items:
            $ref: '#/components/schemas/IncomeStatementSegments'
    BalanceSheetSegmentsResponse:
      type: object
      properties:
        segmented_financials:
          type: array
          items:
            $ref: '#/components/schemas/BalanceSheetSegments'
    CashFlowStatementSegmentsResponse:
      type: object
      properties:
        segmented_financials:
          type: array
          items:
            $ref: '#/components/schemas/CashFlowStatementSegments'
    SegmentedFinancialsResponse:
      type: object
      properties:
        segmented_financials:
          type: array
          items:
            allOf:
              - $ref: '#/components/schemas/SegmentMetadata'
              - type: object
                properties:
                  income_statement:
                    type: object
                    nullable: true
                    description: Income statement segment breakdowns for this period.
                    properties:
                      revenue:
                        nullable: true
                        allOf:
                          - $ref: '#/components/schemas/SegmentCategory'
                      operating_income:
                        nullable: true
                        allOf:
                          - $ref: '#/components/schemas/SegmentCategory'
                      depreciation:
                        nullable: true
                        allOf:
                          - $ref: '#/components/schemas/SegmentCategory'
                  balance_sheet:
                    type: object
                    nullable: true
                    description: Balance sheet segment breakdowns for this period.
                    properties:
                      assets:
                        nullable: true
                        allOf:
                          - $ref: '#/components/schemas/SegmentCategory'
                      goodwill:
                        nullable: true
                        allOf:
                          - $ref: '#/components/schemas/SegmentCategory'
                      long_lived_assets:
                        nullable: true
                        allOf:
                          - $ref: '#/components/schemas/SegmentCategory'
                  cash_flow_statement:
                    type: object
                    nullable: true
                    description: Cash flow statement segment breakdowns for this period.
                    properties:
                      capital_expenditure:
                        nullable: true
                        allOf:
                          - $ref: '#/components/schemas/SegmentCategory'
    Exhibit:
      type: object
      properties:
        number:
          type: string
          description: The exhibit number (e.g., '99.1').
        description:
          type: string
          description: The description of the exhibit.
        url:
          type: string
          format: uri
          description: The URL to the exhibit document on the SEC website.
        text:
          type: string
          description: The raw text content of the exhibit. Only included when 'include_exhibits' parameter is set to true.
    OpenapiFinancial_InterestRate:
      type: object
      properties:
        bank:
          type: string
          description: The symbol of the central bank.
        name:
          type: string
          description: The name of the central bank.
        rate:
          type: number
          description: The interest rate of the central bank.
        date:
          type: string
          description: The date of the interest rate in YYYY-MM-DD format.
    KPIMetricsResponse:
      type: object
      properties:
        kpi_metrics:
          type: array
          items:
            $ref: '#/components/schemas/KPIMetric'
    KPIMetric:
      type: object
      required:
        - ticker
        - metric_name
        - value
        - unit
        - period
        - period_type
      properties:
        ticker:
          type: string
          description: Stock ticker symbol.
          example: DAL
        metric_name:
          type: string
          description: Canonical metric name.
          example: load_factor
        value:
          type: number
          nullable: true
          description: Extracted numeric value.
          example: 82
        unit:
          type: string
          description: Unit of measure (e.g., %, cents, dollars, miles, count).
          example: '%'
        period:
          type: string
          description: Reporting period (e.g., Q4 2025, FY 2025, or a date like 2025-04-30 for non-standard fiscal years).
          example: Q4 2025
        period_type:
          type: string
          enum:
            - quarterly
            - annual
          description: Whether this is a quarterly or annual figure.
          example: quarterly
        segment:
          type: string
          nullable: true
          description: >-
            Business segment, geography, or sub-category. Only present when the metric is reported for a sub-unit rather
            than the consolidated entity.
          example: Commercial Engines & Services
        yoy_value:
          type: number
          nullable: true
          description: Year-over-year comparison value from the prior period.
          example: 84
        yoy_change_pct:
          type: number
          nullable: true
          description: Year-over-year percentage change.
          example: -2.381
        source_text:
          type: string
          nullable: true
          description: The source text span from the filing where this value was found.
          example: Passenger load factor
        source_url:
          type: string
          format: uri
          description: >-
            Direct link to the SEC filing. When available, includes a text fragment that highlights the source in the
            browser.
          example: https://www.sec.gov/Archives/edgar/data/27904/000002790426000008/deltaairlinesannouncesdece.htm
    KPIGuidanceResponse:
      type: object
      properties:
        kpi_guidance:
          type: array
          items:
            $ref: '#/components/schemas/KPIGuidanceItem'
    KPIGuidanceItem:
      type: object
      required:
        - ticker
        - metric_name
        - period
        - period_type
      properties:
        ticker:
          type: string
          example: DAL
        metric_name:
          type: string
          example: Operating Margin
        value:
          type: number
          nullable: true
        unit:
          type: string
          example: '%'
        period:
          type: string
          example: Q2 2026
        period_type:
          type: string
          enum:
            - quarterly
            - annual
        segment:
          type: string
          nullable: true
        low:
          type: number
          nullable: true
          description: Low end of guidance range.
          example: 6
        high:
          type: number
          nullable: true
          description: High end of guidance range.
          example: 8
        point_estimate:
          type: number
          nullable: true
          description: Single-point guidance when no range is given.
        prior_value:
          type: number
          nullable: true
          description: Prior guidance value for revisions.
        raw_text:
          type: string
          nullable: true
          description: Original guidance text from the filing.
        change_direction:
          type: string
          nullable: true
          description: 'Direction: raised, lowered, maintained, initiated, withdrawn.'
          example: initiated
        source_text:
          type: string
          nullable: true
        source_url:
          type: string
          format: uri
          nullable: true
    KPINonGAAPResponse:
      type: object
      properties:
        kpi_non_gaap:
          type: array
          items:
            $ref: '#/components/schemas/KPINonGAAPMetric'
    KPINonGAAPMetric:
      type: object
      required:
        - ticker
        - metric_name
        - value
        - unit
        - period
        - period_type
      properties:
        ticker:
          type: string
          example: DAL
        metric_name:
          type: string
          example: Adjusted Diluted EPS
        value:
          type: number
          nullable: true
          example: 0.64
        unit:
          type: string
          example: USD per share
        period:
          type: string
          example: Q1 2026
        period_type:
          type: string
          enum:
            - quarterly
            - annual
        gaap_equivalent:
          type: string
          nullable: true
          description: The GAAP line item this metric adjusts.
          example: Diluted earnings per share
        key_adjustments:
          type: string
          nullable: true
          description: Description of adjustments made.
          example: Excludes restructuring charges of $150M
        source_text:
          type: string
          nullable: true
        source_url:
          type: string
          format: uri
          nullable: true
    ChatCompletionRequest:
      type: object
      required:
        - model
        - messages
      properties:
        model:
          type: string
          description: The Sonar model to use.
          enum:
            - sonar
            - sonar-pro
            - sonar-reasoning-pro
            - sonar-deep-research
        messages:
          type: array
          description: A list of messages comprising the conversation so far.
          items:
            type: object
            required:
              - role
              - content
            properties:
              role:
                type: string
                enum:
                  - system
                  - user
                  - assistant
                description: The role of the message author.
              content:
                type: string
                description: The content of the message.
        max_tokens:
          type: integer
          description: The maximum number of tokens to generate in the response.
        temperature:
          type: number
          description: Sampling temperature between 0 and 2. Lower values make output more focused and deterministic.
          default: 0.2
          minimum: 0
          maximum: 2
        top_p:
          type: number
          description: Nucleus sampling parameter. The model considers tokens with top_p probability mass.
          default: 0.9
          minimum: 0
          maximum: 1
        top_k:
          type: integer
          description: The number of tokens to keep for top-k filtering.
          default: 0
          minimum: 0
          maximum: 2048
        stream:
          type: boolean
          description: Whether to stream the response using server-sent events.
          default: false
        search_context:
          type: string
          description: Controls how much search context to use. Affects per-request cost.
          enum:
            - low
            - medium
            - high
          default: low
        frequency_penalty:
          type: number
          description: >-
            Penalizes new tokens based on their existing frequency in the text so far. Positive values decrease the
            likelihood of repeating the same line verbatim.
          default: 1
          minimum: 0
          maximum: 2
        presence_penalty:
          type: number
          description: >-
            Penalizes new tokens based on whether they appear in the text so far. Positive values increase the
            likelihood of talking about new topics.
          default: 0
          minimum: -2
          maximum: 2
        return_citations:
          type: boolean
          description: Whether to return citations and search results in the response.
          default: true
        search_recency_filter:
          type: string
          description: Filter search results by recency.
          enum:
            - month
            - week
            - day
            - hour
        search_domain_filter:
          type: array
          description: Limit search to specific domains.
          items:
            type: string
    ChatCompletionResponse:
      type: object
      properties:
        id:
          type: string
          description: Unique identifier for the completion.
        model:
          type: string
          description: The model used for the completion.
        object:
          type: string
          example: chat.completion
        created:
          type: integer
          description: Unix timestamp of when the completion was created.
        choices:
          type: array
          items:
            type: object
            properties:
              index:
                type: integer
              message:
                type: object
                properties:
                  role:
                    type: string
                  content:
                    type: string
                    description: The AI-generated answer, with inline citation references like [1][2].
              finish_reason:
                type: string
                enum:
                  - stop
                  - length
        citations:
          type: array
          description: List of source URLs referenced in the answer.
          items:
            type: string
        search_results:
          type: array
          description: Detailed search results with titles, snippets, and URLs.
          items:
            type: object
            properties:
              title:
                type: string
              url:
                type: string
              snippet:
                type: string
              date:
                type: string
              source:
                type: string
        usage:
          type: object
          properties:
            prompt_tokens:
              type: integer
            completion_tokens:
              type: integer
            total_tokens:
              type: integer
            search_context_size:
              type: string
    ScholarSearchResponse:
      type: object
      required:
        - id
        - results
      properties:
        id:
          type: string
          description: Unique identifier for the search request
        results:
          type: array
          items:
            $ref: '#/components/schemas/ScholarResult'
          description: List of academic paper results
    ScholarResult:
      type: object
      required:
        - title
        - link
        - snippet
        - authors
        - number_of_citations
      properties:
        title:
          type: string
          description: Title of the academic paper
        link:
          type: string
          format: uri
          description: URL to access the full paper
        snippet:
          type: string
          description: Brief summary or abstract of the paper
        authors:
          type: array
          items:
            type: string
          description: List of authors
        number_of_citations:
          type: integer
          minimum: 0
          description: Number of citations the paper has received
        year:
          type: integer
          description: Publication year
          minimum: 1900
          maximum: 2030
        journal:
          type: string
          description: Journal or conference name
    WebSearchResponse:
      type: object
      required:
        - id
        - results
      properties:
        id:
          type: string
          description: Unique identifier for the search request
        results:
          type: array
          items:
            $ref: '#/components/schemas/WebResult'
          description: List of web search results
    WebResult:
      type: object
      required:
        - title
        - link
        - snippet
      properties:
        title:
          type: string
          description: Title of the web page
        link:
          type: string
          format: uri
          description: URL to access the web page
        snippet:
          type: string
          description: Brief summary or preview of the web page content
        display_url:
          type: string
          description: Display-friendly URL
        published_date:
          type: string
          format: date-time
          description: Publication date of the web page
    SmartSearchResponse:
      type: object
      required:
        - id
        - results
      properties:
        id:
          type: string
          description: Unique identifier for the search request
        results:
          type: array
          items:
            $ref: '#/components/schemas/SmartResult'
          description: List of smart search results combining web and academic content
        search_type:
          type: string
          enum:
            - web
            - academic
            - hybrid
          description: Type of search results included
    SmartResult:
      type: object
      required:
        - title
        - link
        - snippet
      properties:
        title:
          type: string
          description: Title of the result
        link:
          type: string
          format: uri
          description: URL to access the content
        snippet:
          type: string
          description: Brief summary or abstract
        authors:
          type: array
          items:
            type: string
          description: List of authors (for academic content)
        number_of_citations:
          type: integer
          minimum: 0
          description: Number of citations (for academic content)
        type:
          type: string
          enum:
            - web
            - academic
          description: Type of the result
        relevance_score:
          type: number
          minimum: 0
          maximum: 1
          description: Relevance score of the result
    ExplainSearchRequest:
      type: object
      required:
        - search_id
      properties:
        search_id:
          type: string
          description: ID of the search to explain
        response_mode:
          type: string
          enum:
            - COMPLETE
            - SUMMARY
            - BULLET_POINTS
          default: COMPLETE
          description: Format of the explanation response
        language:
          type: string
          default: en
          description: Language code for the explanation (e.g., en, zh, ar)
          example: ar
        detail_level:
          type: string
          enum:
            - BRIEF
            - MODERATE
            - DETAILED
          default: MODERATE
          description: Level of detail in the explanation
    ExplainSearchResponse:
      type: object
      required:
        - search_id
        - explanation
      properties:
        search_id:
          type: string
          description: ID of the search being explained
        explanation:
          type: string
          description: Detailed explanation of the search results
        language:
          type: string
          description: Language of the explanation
        response_mode:
          type: string
          description: Format of the response
        summary:
          type: string
          description: Brief summary of the explanation
        key_insights:
          type: array
          items:
            type: string
          description: List of key insights from the search results
        confidence_score:
          type: number
          minimum: 0
          maximum: 1
          description: Confidence score for the explanation
        generated_at:
          type: string
          format: date-time
          description: Timestamp when the explanation was generated
    PlatformTxyzOpenapi_ErrorResponse:
      type: object
      properties:
        error:
          type: string
          description: Error message describing what went wrong
        code:
          type: integer
          description: HTTP status code
        details:
          type: string
          description: Additional error details
    CommunityInfo:
      type: object
      properties:
        id:
          type: string
        name:
          type: string
        description:
          type: string
        question:
          type: string
        member_count:
          type: integer
        moderator_count:
          type: integer
        created_at:
          type: string
        join_policy:
          type: string
        invites_policy:
          type: string
        is_nsfw:
          type: boolean
        is_pinned:
          type: boolean
        role:
          type: string
        primary_topic:
          type: object
          properties:
            id:
              type: string
            name:
              type: string
        banner_url:
          type: string
        search_tags:
          type: array
          items:
            type: string
        rules:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
              name:
                type: string
              description:
                type: string
        creator:
          $ref: '#/components/schemas/User'
        admin:
          $ref: '#/components/schemas/User'
        members_preview:
          type: array
          items:
            type: object
    User:
      type: object
      properties:
        type:
          type: string
        userName:
          type: string
        url:
          type: string
        id:
          type: string
        name:
          type: string
        isBlueVerified:
          type: boolean
        verifiedType:
          type: string
        profilePicture:
          type: string
        coverPicture:
          type: string
        description:
          type: string
        location:
          type: string
        followers:
          type: integer
        following:
          type: integer
        canDm:
          type: boolean
        createdAt:
          type: string
        favouritesCount:
          type: integer
        hasCustomTimelines:
          type: boolean
        isTranslator:
          type: boolean
        mediaCount:
          type: integer
        statusesCount:
          type: integer
        withheldInCountries:
          type: array
          items:
            type: string
        possiblySensitive:
          type: boolean
        pinnedTweetIds:
          type: array
          items:
            type: string
        isAutomated:
          type: boolean
        automatedBy:
          type: string
        unavailable:
          type: boolean
        message:
          type: string
        unavailableReason:
          type: string
        profile_bio:
          type: object
          properties:
            description:
              type: string
            entities:
              type: object
              properties:
                description:
                  type: object
                  properties:
                    urls:
                      type: array
                      items:
                        type: object
                        properties:
                          display_url:
                            type: string
                          expanded_url:
                            type: string
                          indices:
                            type: array
                            items:
                              type: integer
                          url:
                            type: string
                url:
                  type: object
                  properties:
                    urls:
                      type: array
                      items:
                        type: object
                        properties:
                          display_url:
                            type: string
                          expanded_url:
                            type: string
                          indices:
                            type: array
                            items:
                              type: integer
                          url:
                            type: string
    Tweet:
      type: object
      properties:
        type:
          type: string
        id:
          type: string
        url:
          type: string
        text:
          type: string
        source:
          type: string
        retweetCount:
          type: integer
        replyCount:
          type: integer
        likeCount:
          type: integer
        quoteCount:
          type: integer
        viewCount:
          type: integer
        createdAt:
          type: string
        lang:
          type: string
        bookmarkCount:
          type: integer
        isReply:
          type: boolean
        inReplyToId:
          type: string
        conversationId:
          type: string
        displayTextRange:
          type: array
          items:
            type: integer
        inReplyToUserId:
          type: string
        inReplyToUsername:
          type: string
        author:
          $ref: '#/components/schemas/User'
        entities:
          type: object
          properties:
            hashtags:
              type: array
              items:
                type: object
                properties:
                  indices:
                    type: array
                    items:
                      type: integer
                  text:
                    type: string
            urls:
              type: array
              items:
                type: object
                properties:
                  display_url:
                    type: string
                  expanded_url:
                    type: string
                  indices:
                    type: array
                    items:
                      type: integer
                  url:
                    type: string
            user_mentions:
              type: array
              items:
                type: object
                properties:
                  id_str:
                    type: string
                  name:
                    type: string
                  screen_name:
                    type: string
        quoted_tweet:
          type: string
        retweeted_tweet:
          type: string
        isLimitedReply:
          type: boolean
    TwitterListFollowersResponse:
      type: object
      properties:
        followers:
          type: array
          items:
            $ref: '#/components/schemas/TwitterUser'
        has_next_page:
          type: boolean
          description: Indicates if there are more results available
        next_cursor:
          type: string
          description: Cursor for fetching the next page of results
        status:
          type: string
          enum:
            - success
            - error
          description: Status of the request
        msg:
          type: string
          description: Message of the request, error message if status is error
    TwitterListMembersResponse:
      type: object
      properties:
        members:
          type: array
          items:
            $ref: '#/components/schemas/TwitterUser'
        has_next_page:
          type: boolean
          description: Indicates if there are more results available
        next_cursor:
          type: string
          description: Cursor for fetching the next page of results
        status:
          type: string
          enum:
            - success
            - error
          description: Status of the request
        msg:
          type: string
          description: Message of the request, error message if status is error
    TwitterUser:
      type: object
      properties:
        type:
          type: string
          description: Type of the user
        userName:
          type: string
          description: Username of the user
        url:
          type: string
          description: URL of the user's profile
        id:
          type: string
          description: ID of the user
        name:
          type: string
          description: Name of the user
        isBlueVerified:
          type: boolean
          description: Indicates if the user is blue verified
        verifiedType:
          type: string
          description: Type of verification
        profilePicture:
          type: string
          description: URL of the profile picture
        coverPicture:
          type: string
          description: URL of the cover picture
        description:
          type: string
          description: Description of the user
        location:
          type: string
          description: Location of the user
        followers:
          type: integer
          description: Number of followers
        following:
          type: integer
          description: Number of followings
        canDm:
          type: boolean
          description: Indicates if the user can be direct messaged
        createdAt:
          type: string
          description: Account creation date
        favouritesCount:
          type: integer
          description: Number of favorites
        hasCustomTimelines:
          type: boolean
          description: Indicates if the user has custom timelines
        isTranslator:
          type: boolean
          description: Indicates if the user is a translator
        mediaCount:
          type: integer
          description: Number of media items
        statusesCount:
          type: integer
          description: Number of statuses
        withheldInCountries:
          type: array
          items:
            type: string
          description: List of countries where the user is withheld
        possiblySensitive:
          type: boolean
          description: Indicates if the user has sensitive content
        pinnedTweetIds:
          type: array
          items:
            type: string
          description: List of pinned tweet IDs
        isAutomated:
          type: boolean
          description: Indicates if the account is automated
        automatedBy:
          type: string
          description: Indicates who automated the account
        unavailable:
          type: boolean
          description: Indicates if the account is unavailable
        message:
          type: string
          description: Message about the account
        unavailableReason:
          type: string
          description: Reason for unavailability
        profile_bio:
          type: object
          properties:
            description:
              type: string
              description: Bio description
            entities:
              type: object
              properties:
                description:
                  type: object
                  properties:
                    urls:
                      type: array
                      items:
                        $ref: '#/components/schemas/TwitterUrl'
                url:
                  type: object
                  properties:
                    urls:
                      type: array
                      items:
                        $ref: '#/components/schemas/TwitterUrl'
    TwitterUrl:
      type: object
      properties:
        display_url:
          type: string
          description: Display URL
        expanded_url:
          type: string
          description: Expanded URL
        indices:
          type: array
          items:
            type: integer
          description: Indices of the URL
        url:
          type: string
          description: URL
    Trend:
      type: object
      properties:
        name:
          type: string
        target:
          type: object
          properties:
            query:
              type: string
        rank:
          type: integer
          format: int64
        meta_description:
          type: string
    TrendsResponse:
      type: object
      properties:
        trends:
          type: array
          items:
            $ref: '#/components/schemas/Trend'
        status:
          type: string
          enum:
            - success
            - error
        msg:
          type: string
    SpaceDetail:
      type: object
      properties:
        id:
          type: string
        title:
          type: string
        state:
          type: string
        created_at:
          type: string
          format: date-time
        scheduled_start:
          type: string
          format: date-time
        updated_at:
          type: string
          format: date-time
        media_key:
          type: string
        is_subscribed:
          type: boolean
        settings:
          type: object
          properties:
            conversation_controls:
              type: integer
            disallow_join:
              type: boolean
            is_employee_only:
              type: boolean
            is_locked:
              type: boolean
            is_muted:
              type: boolean
            is_space_available_for_clipping:
              type: boolean
            is_space_available_for_replay:
              type: boolean
            no_incognito:
              type: boolean
            narrow_cast_space_type:
              type: integer
            max_guest_sessions:
              type: integer
            max_admin_capacity:
              type: integer
        stats:
          type: object
          properties:
            total_replay_watched:
              type: integer
            total_live_listeners:
              type: integer
            total_participants:
              type: integer
        creator:
          type: object
          properties:
            id:
              type: string
            name:
              type: string
            userName:
              type: string
            location:
              type: string
            url:
              type: string
            description:
              type: string
            protected:
              type: boolean
            isVerified:
              type: boolean
            isBlueVerified:
              type: boolean
            verifiedType:
              type: string
            followers:
              type: integer
            following:
              type: integer
            favouritesCount:
              type: integer
            statusesCount:
              type: integer
            mediaCount:
              type: integer
            createdAt:
              type: string
              format: date-time
            coverPicture:
              type: string
            profilePicture:
              type: string
            canDm:
              type: boolean
            affiliatesHighlightedLabel:
              type: object
            isAutomated:
              type: boolean
            automatedBy:
              type: string
    SpaceDetailResponse:
      type: object
      properties:
        data:
          $ref: '#/components/schemas/SpaceDetail'
        status:
          type: string
          enum:
            - success
            - error
        msg:
          type: string
    MyInfoResponse:
      type: object
      properties:
        recharge_credits:
          type: integer
    TwitterTweetBatch01_Tweet:
      type: object
      properties:
        type:
          type: string
        id:
          type: string
        url:
          type: string
        text:
          type: string
        source:
          type: string
        retweetCount:
          type: integer
        replyCount:
          type: integer
        likeCount:
          type: integer
        quoteCount:
          type: integer
        viewCount:
          type: integer
        createdAt:
          type: string
        lang:
          type: string
        bookmarkCount:
          type: integer
        isReply:
          type: boolean
        inReplyToId:
          type: string
        conversationId:
          type: string
        displayTextRange:
          type: array
          items:
            type: integer
        inReplyToUserId:
          type: string
        inReplyToUsername:
          type: string
        author:
          $ref: '#/components/schemas/User'
        entities:
          type: object
          properties:
            hashtags:
              type: array
              items:
                type: object
                properties:
                  indices:
                    type: array
                    items:
                      type: integer
                  text:
                    type: string
            urls:
              type: array
              items:
                type: object
                properties:
                  display_url:
                    type: string
                  expanded_url:
                    type: string
                  indices:
                    type: array
                    items:
                      type: integer
                  url:
                    type: string
            user_mentions:
              type: array
              items:
                type: object
                properties:
                  id_str:
                    type: string
                  name:
                    type: string
                  screen_name:
                    type: string
        quoted_tweet:
          type: string
        retweeted_tweet:
          type: string
        isLimitedReply:
          type: boolean
    TwitterTweetBatch01_User:
      type: object
      properties:
        type:
          type: string
        userName:
          type: string
        url:
          type: string
        id:
          type: string
        name:
          type: string
        isBlueVerified:
          type: boolean
        verifiedType:
          type: string
        profilePicture:
          type: string
        coverPicture:
          type: string
        description:
          type: string
        location:
          type: string
        followers:
          type: integer
        following:
          type: integer
        canDm:
          type: boolean
        createdAt:
          type: string
        favouritesCount:
          type: integer
        hasCustomTimelines:
          type: boolean
        isTranslator:
          type: boolean
        mediaCount:
          type: integer
        statusesCount:
          type: integer
        withheldInCountries:
          type: array
          items:
            type: string
        possiblySensitive:
          type: boolean
        pinnedTweetIds:
          type: array
          items:
            type: string
        isAutomated:
          type: boolean
        automatedBy:
          type: string
        unavailable:
          type: boolean
        message:
          type: string
        unavailableReason:
          type: string
    TweetThreadContextResponse:
      type: object
      properties:
        replies:
          type: array
          items:
            $ref: '#/components/schemas/Tweet'
        has_next_page:
          type: boolean
        next_cursor:
          type: string
        status:
          type: string
          enum:
            - success
            - error
        message:
          type: string
    TwitterTweetBatch02_Tweet:
      type: object
      properties:
        type:
          type: string
        id:
          type: string
        url:
          type: string
        text:
          type: string
        source:
          type: string
        retweetCount:
          type: integer
        replyCount:
          type: integer
        likeCount:
          type: integer
        quoteCount:
          type: integer
        viewCount:
          type: integer
        createdAt:
          type: string
        lang:
          type: string
        bookmarkCount:
          type: integer
        isReply:
          type: boolean
        inReplyToId:
          type: string
        conversationId:
          type: string
        displayTextRange:
          type: array
          items:
            type: integer
        inReplyToUserId:
          type: string
        inReplyToUsername:
          type: string
        author:
          $ref: '#/components/schemas/User'
        entities:
          $ref: '#/components/schemas/Entities'
        quoted_tweet:
          type: string
        retweeted_tweet:
          type: string
        isLimitedReply:
          type: boolean
    TwitterTweetBatch02_User:
      type: object
      properties:
        type:
          type: string
        userName:
          type: string
        url:
          type: string
        id:
          type: string
        name:
          type: string
        isBlueVerified:
          type: boolean
        verifiedType:
          type: string
        profilePicture:
          type: string
        coverPicture:
          type: string
        description:
          type: string
        location:
          type: string
        followers:
          type: integer
        following:
          type: integer
        canDm:
          type: boolean
        createdAt:
          type: string
        favouritesCount:
          type: integer
        hasCustomTimelines:
          type: boolean
        isTranslator:
          type: boolean
        mediaCount:
          type: integer
        statusesCount:
          type: integer
        withheldInCountries:
          type: array
          items:
            type: string
        possiblySensitive:
          type: boolean
        pinnedTweetIds:
          type: array
          items:
            type: string
        isAutomated:
          type: boolean
        automatedBy:
          type: string
        unavailable:
          type: boolean
        message:
          type: string
        unavailableReason:
          type: string
    Entities:
      type: object
      properties:
        hashtags:
          type: array
          items:
            type: object
            properties:
              indices:
                type: array
                items:
                  type: integer
              text:
                type: string
        urls:
          type: array
          items:
            type: object
            properties:
              display_url:
                type: string
              expanded_url:
                type: string
              indices:
                type: array
                items:
                  type: integer
              url:
                type: string
        user_mentions:
          type: array
          items:
            type: object
            properties:
              id_str:
                type: string
              name:
                type: string
              screen_name:
                type: string
    ArticleResponse:
      type: object
      properties:
        article:
          $ref: '#/components/schemas/Article'
        status:
          type: string
          enum:
            - success
            - failed
        message:
          type: string
    Article:
      type: object
      properties:
        author:
          $ref: '#/components/schemas/User'
        replyCount:
          type: integer
        likeCount:
          type: integer
        quoteCount:
          type: integer
        viewCount:
          type: integer
        createdAt:
          type: string
        title:
          type: string
        preview_text:
          type: string
        cover_media_img_url:
          type: string
        contents:
          type: array
          items:
            type: object
            properties:
              text:
                type: string
    AdvancedSearchResponse:
      type: object
      properties:
        tweets:
          type: array
          items:
            $ref: '#/components/schemas/Tweet'
        has_next_page:
          type: boolean
        next_cursor:
          type: string
    UserProfileAboutResponse:
      type: object
      properties:
        data:
          type: object
          properties:
            id:
              type: string
            name:
              type: string
            userName:
              type: string
            createdAt:
              type: string
            isBlueVerified:
              type: boolean
            protected:
              type: boolean
            affiliates_highlighted_label:
              type: object
              properties:
                label:
                  type: object
                  properties:
                    badge:
                      type: object
                      properties:
                        url:
                          type: string
                    description:
                      type: string
                    url:
                      type: object
                      properties:
                        url:
                          type: string
                        urlType:
                          type: string
                    userLabelDisplayType:
                      type: string
                    userLabelType:
                      type: string
            about_profile:
              type: object
              properties:
                account_based_in:
                  type: string
                location_accurate:
                  type: boolean
                learn_more_url:
                  type: string
                affiliate_username:
                  type: string
                source:
                  type: string
                username_changes:
                  type: object
                  properties:
                    count:
                      type: string
            identity_profile_labels_highlighted_label:
              type: object
              properties:
                label:
                  type: object
                  properties:
                    description:
                      type: string
                    badge:
                      type: object
                      properties:
                        url:
                          type: string
                    url:
                      type: object
                      properties:
                        url:
                          type: string
                        urlType:
                          type: string
                    userLabelDisplayType:
                      type: string
                    userLabelType:
                      type: string
        status:
          type: string
          enum:
            - success
            - error
        msg:
          type: string
    BatchUserInfoResponse:
      type: object
      properties:
        users:
          type: array
          items:
            type: object
            properties:
              type:
                type: string
              userName:
                type: string
              url:
                type: string
              id:
                type: string
              name:
                type: string
              isBlueVerified:
                type: boolean
              verifiedType:
                type: string
              profilePicture:
                type: string
              coverPicture:
                type: string
              description:
                type: string
              location:
                type: string
              followers:
                type: integer
              following:
                type: integer
              canDm:
                type: boolean
              createdAt:
                type: string
              favouritesCount:
                type: integer
              hasCustomTimelines:
                type: boolean
              isTranslator:
                type: boolean
              mediaCount:
                type: integer
              statusesCount:
                type: integer
              withheldInCountries:
                type: array
                items:
                  type: string
              possiblySensitive:
                type: boolean
              pinnedTweetIds:
                type: array
                items:
                  type: string
              isAutomated:
                type: boolean
              automatedBy:
                type: string
              unavailable:
                type: boolean
              message:
                type: string
              unavailableReason:
                type: string
        status:
          type: string
          enum:
            - success
            - error
        msg:
          type: string
    UserTweetsResponse:
      type: object
      properties:
        tweets:
          type: array
          items:
            type: object
            properties:
              type:
                type: string
              id:
                type: string
              url:
                type: string
              text:
                type: string
              source:
                type: string
              retweetCount:
                type: integer
              replyCount:
                type: integer
              likeCount:
                type: integer
              quoteCount:
                type: integer
              viewCount:
                type: integer
              createdAt:
                type: string
              lang:
                type: string
              bookmarkCount:
                type: integer
              isReply:
                type: boolean
              inReplyToId:
                type: string
              conversationId:
                type: string
              displayTextRange:
                type: array
                items:
                  type: integer
              inReplyToUserId:
                type: string
              inReplyToUsername:
                type: string
        has_next_page:
          type: boolean
        next_cursor:
          type: string
        status:
          type: string
          enum:
            - success
            - error
        message:
          type: string
    UserFollowingsResponse:
      type: object
      properties:
        followings:
          type: array
          items:
            $ref: '#/components/schemas/User'
        has_next_page:
          type: boolean
        next_cursor:
          type: string
        status:
          type: string
          enum:
            - success
            - error
        message:
          type: string
    UserMentionsResponse:
      type: object
      properties:
        tweets:
          type: array
          items:
            $ref: '#/components/schemas/Tweet'
        has_next_page:
          type: boolean
        next_cursor:
          type: string
        status:
          type: string
          enum:
            - success
            - error
        message:
          type: string
    FollowRelationshipResponse:
      type: object
      properties:
        data:
          type: object
          properties:
            following:
              type: boolean
            followed_by:
              type: boolean
        status:
          type: string
          enum:
            - success
            - error
        message:
          type: string
    SearchUserResponse:
      type: object
      properties:
        users:
          type: array
          items:
            $ref: '#/components/schemas/User'
        has_next_page:
          type: boolean
        next_cursor:
          type: string
        status:
          type: string
          enum:
            - success
            - error
        msg:
          type: string
    VerifiedFollowersResponse:
      type: object
      properties:
        followers:
          type: array
          items:
            $ref: '#/components/schemas/User'
        status:
          type: string
          enum:
            - success
            - error
        message:
          type: string
    TwitterUserBatch02_User:
      type: object
      properties:
        type:
          type: string
        userName:
          type: string
        url:
          type: string
        id:
          type: string
        name:
          type: string
        isBlueVerified:
          type: boolean
        verifiedType:
          type: string
        profilePicture:
          type: string
        coverPicture:
          type: string
        description:
          type: string
        location:
          type: string
        followers:
          type: integer
        following:
          type: integer
        canDm:
          type: boolean
        createdAt:
          type: string
        favouritesCount:
          type: integer
        hasCustomTimelines:
          type: boolean
        isTranslator:
          type: boolean
        mediaCount:
          type: integer
        statusesCount:
          type: integer
        withheldInCountries:
          type: array
          items:
            type: string
        possiblySensitive:
          type: boolean
        pinnedTweetIds:
          type: array
          items:
            type: string
        isAutomated:
          type: boolean
        automatedBy:
          type: string
        unavailable:
          type: boolean
        message:
          type: string
        unavailableReason:
          type: string
    TwitterUserBatch02_Tweet:
      type: object
      properties:
        type:
          type: string
        id:
          type: string
        url:
          type: string
        text:
          type: string
        source:
          type: string
        retweetCount:
          type: integer
        replyCount:
          type: integer
        likeCount:
          type: integer
        quoteCount:
          type: integer
        viewCount:
          type: integer
        createdAt:
          type: string
        lang:
          type: string
        bookmarkCount:
          type: integer
        isReply:
          type: boolean
        inReplyToId:
          type: string
        conversationId:
          type: string
        displayTextRange:
          type: array
          items:
            type: integer
        inReplyToUserId:
          type: string
        inReplyToUsername:
          type: string
        author:
          $ref: '#/components/schemas/User'
        entities:
          type: object
          properties:
            hashtags:
              type: array
              items:
                type: object
                properties:
                  indices:
                    type: array
                    items:
                      type: integer
                  text:
                    type: string
            urls:
              type: array
              items:
                type: object
                properties:
                  display_url:
                    type: string
                  expanded_url:
                    type: string
                  indices:
                    type: array
                    items:
                      type: integer
                  url:
                    type: string
            user_mentions:
              type: array
              items:
                type: object
                properties:
                  id_str:
                    type: string
                  name:
                    type: string
                  screen_name:
                    type: string
