Rayana AI
Account

API & MCP

Pull Rayana AI's scores, rankings, and research programmatically, or point an MCP client — Claude Desktop, Claude Code, or your own agent — straight at it.

API and MCP access ship on Pro and above ($129/mo). Every tier can browse this page; only a Pro+ key will authenticate.

Getting started

  1. Subscribe to Pro or Elite, then open your account page and click Regenerate key under "API key".
  2. Copy the key immediately — it's shown exactly once. Only a hash is stored, so it can't be shown again; regenerating replaces it and invalidates the old one right away.
  3. Call the REST API or connect an MCP client with it, below.

A first REST call:

curl https://api.rayana.ai/v1/rankings?lane=daily \
  -H "X-API-Key: YOUR_API_KEY"

Authentication

Every endpoint except /v1/health requires an X-API-Key header. There is no OAuth flow and no query-string key option — always send it as a header, and never share it or commit it to a public repo.

REST base
https://api.rayana.ai/v1
MCP endpoint
https://mcp.rayana.ai/mcp
Header
X-API-Key: YOUR_API_KEY

Tiers & rate limits

Your key's tier tracks your subscription and shapes both what an endpoint returns and how often you can call it. MCP itself requires Pro or higher, even for endpoints REST would serve to a Standard key.

Going over a limit returns 429 with a Retry-After header — back off and retry rather than hammering it.

REST endpoints

All under /v1. "Tier" is the minimum your key needs; a lower tier either gets a truncated response (rankings/signals/trends top-5) or a 403. Full request/response schemas are in the interactive reference at api.rayana.ai/docs.

Rankings & signals

  • GET /v1/rankings?lane=daily|turtle|mr
    Free (top 5)Latest ranked candidate batch for a lane
  • GET /v1/lanes
    Free (top 5)Which lanes currently have a batch
  • GET /v1/lanes/{lane}
    Free (top 5)Alias of /rankings by path param
  • GET /v1/signals?lane=equity|crypto|commodity
    Free (top 5)Latest aggregator-consensus batch
  • GET /v1/signals/consensus?source=
    StandardPer-source consensus snapshots

Tickers

  • GET /v1/tickers/{symbol}
    FreeFull per-ticker research view
  • GET /v1/tickers/{symbol}/price?period=1M|6M|YTD|1Y|5Y|MAX
    FreeDaily OHLC close history
  • GET /v1/tickers/{symbol}/overview
    FreeCompany overview: sector, description, valuation ratios
  • GET /v1/tickers/{symbol}/analyst
    FreeToday's cached AI analyst read (404 if none yet)
  • GET /v1/tickers/{symbol}/articles
    FreeThis ticker's published article history
  • GET /v1/tickers
    FreeEvery ticker with a current score

Rotation & trends

  • GET /v1/rotation?days=
    StandardCluster-rotation RRG summary, trajectories, crossings
  • GET /v1/rotation/laggards
    StandardMembers trailing a firing cluster's leader
  • GET /v1/rotation/discovered
    StandardUnsupervised cluster-discovery cohorts
  • GET /v1/rotation/members
    StandardStructural cluster membership
  • GET /v1/trends?limit=
    Free (top 5)Attention/virality leaderboard
  • GET /v1/trends/sources
    StandardPer-source reach today
  • GET /v1/trends/heat
    StandardPer-(ticker, source) attention heat matrix
  • GET /v1/trends/search?limit=
    StandardRising/breakout consumer search queries
  • GET /v1/trends/video?limit=
    StandardRising video-view velocity

Briefs, portfolios, articles

  • GET /v1/briefs/market?date=
    FreeDescriptive daily market brief, no recommendations
  • GET /v1/briefs/analyst?date=
    StandardBroadcast portfolio-analyst brief
  • GET /v1/portfolios?include_retired=
    FreeModel-portfolio shelf cards
  • GET /v1/portfolios/{slug}
    Book's own tierOne model portfolio's full detail
  • GET /v1/articles?limit=
    FreePublic articles feed, newest first
  • GET /v1/articles/{slug}
    FreeOne published article's full body

Utility

  • GET /v1/search?q=&limit=
    FreeResolve free text to a known symbol
  • GET /v1/health
    NoneLiveness check

POST /v1/search/hit is intentionally not listed — it's an internal signal-accrual endpoint for the site's own search box, not part of the public API surface.

MCP

The MCP server exposes the same data as read-only tools, so an agent can call it directly instead of you writing REST plumbing. It speaks Streamable HTTP at https://mcp.rayana.ai/mcp, authenticated the same way as REST — your X-API-Key passed as a connection header. Requires a Pro or Elite key.

Claude Code

claude mcp add --transport http rayana-ai \
  https://mcp.rayana.ai/mcp \
  --header "X-API-Key: YOUR_API_KEY"

Claude Desktop

Add to your MCP config (Settings → Connectors → Add custom connector, or edit the config file directly):

{
  "mcpServers": {
    "rayana-ai": {
      "url": "https://mcp.rayana.ai/mcp",
      "headers": {
        "X-API-Key": "YOUR_API_KEY"
      }
    }
  }
}

Any other MCP client that supports Streamable HTTP with custom headers connects the same way.

Tools

17 read-only tools — one endpoint's worth each, with a few related REST routes folded into a single tool via a view argument (rotation, trends, articles).

  • rayana_ai_rankings(lane)
    Latest ranked candidate batch for a lane
  • rayana_ai_lanes()
    Which lanes currently have a batch
  • rayana_ai_signals(lane, limit)
    Latest aggregator-consensus batch
  • rayana_ai_consensus(source?)
    Per-source consensus snapshots, one or all
  • rayana_ai_ticker(symbol)
    Full per-ticker research view
  • rayana_ai_ticker_price(symbol, period)
    Daily OHLC close history
  • rayana_ai_ticker_analyst(symbol)
    Today's cached AI analyst read
  • rayana_ai_ticker_articles(symbol)
    One ticker's article history
  • rayana_ai_rotation(view, days)
    summary / laggards / discovered / members
  • rayana_ai_trends(limit)
    Attention/virality leaderboard
  • rayana_ai_trends_detail(view, limit?)
    sources / heat / search / video
  • rayana_ai_market_brief(date?)
    Descriptive daily market brief
  • rayana_ai_analyst_brief(date?)
    Broadcast portfolio-analyst brief
  • rayana_ai_portfolios(include_retired)
    Model-portfolio shelf cards
  • rayana_ai_portfolio(slug)
    One model portfolio's full detail
  • rayana_ai_search(q, limit)
    Resolve free text to a known symbol
  • rayana_ai_articles(slug?, limit?)
    Article feed, or one article's body

A Pro key gets a 403-style tool error from rayana_ai_portfolio for an Elite-only book slug — MCP access doesn't change what your tier can see, only how you can fetch it.

Errors

  • 401Missing, invalid, or revoked API key
  • 403Key's tier is below what's required
  • 404Unknown symbol/slug, or nothing generated yet today
  • 429Rate limit exceeded, see Retry-After
  • 503Transient backend hiccup, retry