US Stocks Analysis - SentiSense
Capability skill for US equities. Don't just pull data: synthesize it. This skill teaches the agent five expert workflows that combine price action, sentiment, insider trading, congressional STOCK Act disclosures, institutional 13F flows, analyst ratings, and AI insights into one-line answers a non-technical user can act on. Read-only API. No trading, no purchases, no write operations, no wallet access.
Base URL: https://app.sentisense.ai
Website: https://sentisense.ai
Full API reference: https://sentisense.ai/skill.md
Authentication: API key via X-SentiSense-API-Key header. Generate keys at Settings > Developer Console.
Use & Disclaimer
This skill is an educational data interface to SentiSense's read-only Data APIs. Output is informational only. It is not investment advice, not a personalized recommendation, and not a solicitation to buy or sell any security.
The user is responsible for their own decisions. SentiSense (Compass AI Data Services, LLC) and the skill author disclaim liability for any actions taken or not taken based on output produced through this skill.
The capability workflows below produce data-grounded synthesis. When framing the result for the user, present it as educational context and analysis (signal convergence, sentiment shifts, position changes), never as a personal buy/sell recommendation.
Use of the SentiSense API is subject to the API Terms of Service and Terms of Service.
Authentication
curl -H "X-SentiSense-API-Key: $SENTISENSE_API_KEY" \
"https://app.sentisense.ai/api/v1/stocks/price?ticker=AAPL"
All endpoints require an API key. Free tier (1,000 req/month, 30 req/min) covers everyday use. PRO ($15/mo) lifts limits and unlocks full preview-gated history.
| Tier | Quota | Rate | |------|-------|------| | Free | 1,000 req/month | 30 req/min | | PRO | 100,000 req/month | 200 req/min |
Anonymous calls return 401 api_key_required.
Capability Menu
Each capability is a natural-language command the user can give the agent. The agent's job is to recognize the intent, run the API calls in order, and synthesize the result. Specific endpoint reference at the bottom of this file.
Capability 1: "Brief me on $TICKER"
A 5-line composite read on a stock that goes far beyond the quote.
Synthesis pattern:
GET /api/v1/stocks/price?ticker={T}to anchor with current price + day changeGET /api/v2/metrics/entity/{T}/metric/sentimentfor the sentiment trend (server default window is the last 7 days)GET /api/v1/insider/trades/{T}?lookbackDays=90for recent insider activityGET /api/v1/analyst/{T}/consensusfor the analyst price target bandGET /api/v1/insights/stock/{T}for AI insights (sorted urgency-then-confidence; take the first item for the headline)
Synthesize as: "AAPL $190.20 (+1.2%). Sentiment +0.34 and rising (+0.06 over 7d). 3 insider buys in 90d, no sells. Analyst target band $180-$250 (mean $210, 33 analysts, Buy). Latest insight: 'Margin guide raised, services revenue beating consensus.'"
The user gets a dense, terminal-grade read in five lines.
Capability 2: "What's the smart money doing this week?"
Cross-reference insider cluster buys + congressional STOCK Act trades + analyst upgrades. Surface tickers where all three converge.
Synthesis pattern:
GET /api/v1/insider/cluster-buys?lookbackDays=7for tickers where multiple insiders boughtGET /api/v1/politicians/activity?lookbackDays=7for recent congressional purchases (filter to PURCHASE)GET /api/v1/analyst/activity?lookbackDays=7for market-wide analyst actions (filter client-side toactionType=="UPGRADE"; the API has no server-sidetypes=filter)
Synthesize as: intersect the three ticker lists. Report tickers in 2+ of the three buckets, with a one-liner on each: "NVDA: 4 insiders bought ($2.1M), 1 senator purchased $50k-$100k, 2 analyst upgrades."
This is a screen no free data source produces: convergence is the signal.
Empty-window fallback: the 7-day insider and congressional feeds frequently return empty arrays on quiet weeks (disclosure lag, isPreview:false, not an error). If cluster-buys or politicians/activity comes back empty, widen that call to lookbackDays=30 and say so in the header so the screen is never silently blank.
Capability 3: "Find divergence stocks"
Stocks where price action and sentiment disagree. A bullish gap (price down, sentiment up) often precedes a recovery; a bearish gap (price up, sentiment down) often precedes a fall.
Synthesis pattern:
GET /api/v1/stocks/popularto get the candidate list- For each:
GET /api/v1/stocks/chart?ticker={T}&timeframe=1M(returns intraday bars, ~126 for a month, not daily closes; for a 7-day change filter to bars withtimestamp >= now-7dand compare first vs last) - For each:
GET /api/v2/metrics/entity/{T}/metric/sentiment(server default 7-day window; compute the trend over the returned series) - Rank by
|priceChange - sentimentChange|; report top 5 each direction
Synthesize as: "Bullish divergence (price down, sentiment up): TSLA -8% / sentiment +12%. Bearish divergence (price up, sentiment down): COIN +14% / sentiment -9%."
Capability 4: "Pre-earnings sentiment check on $TICKER"
Before an earnings report, agents and users want to know: is the smart-money / sentiment positioning bullish or bearish?
Synthesis pattern:
GET /api/v1/stocks/{T}/profileto confirm the ticker exists and pull sector/industry context (the API does not currently expose a next-earnings-date field; if the user supplies the earnings date, treat it as ground truth)GET /api/v2/metrics/entity/{T}/metric/sentiment?startTime={now-30d in epoch ms}&endTime={now in epoch ms}for the 30-day trendGET /api/v1/insider/trades/{T}?lookbackDays=60for 60-day insider activityGET /api/v1/analyst/{T}/estimatesfor the consensus EPS band (returnsestimateLow / estimateMean / estimateHigh / numberOfAnalysts / periodLabel / periodTypeplus asurprises[]history; no revenue figure and no revision history)GET /api/v1/analyst/{T}/actions?lookbackDays=30for recent analyst rating changes
Synthesize as: "AAPL ER in 5d. Sentiment +0.22 over 30d, trending up (bullish). Insiders: 2 sells, 0 buys ($1.2M, neutral-to-bearish). EPS consensus $1.52 (range $1.48-$1.55, 28 analysts); beat in 3 of the last 4 quarters. 3 upgrades in 30d. Setup: mixed-bullish."
Capability 5: "Sector rotation today"
Which sectors are in greed, which in fear, and what stocks are driving each.
Synthesis pattern:
GET /api/v2/market-moodfor composite market mood + sector breakdowns.sectorsis a string-keyed dict (not an array) with overlapping GICS labels (TechnologyandInformation Technology,HealthcareandHealth Care, etc.); iterate the dict values and dedupe these overlaps before ranking top and bottom- For each sector with
weeklyChange > +5or< -5:GET /api/v1/insights/market(no params), then client-side filter the returneddata[]to insights whoseinsightTextmentions tickers known to belong to that sector (cross-reference withGET /api/v1/stocks/descriptions?tickers=A,B,Cif you need the sector mapping). The endpoint itself has no server-side sector filter. - Report top 2 movers (positive) and bottom 2 (negative)
Synthesize as: "Market mood 62 (Greed, +4 wk). Greed leaders: Technology 71 (+3.2), Communications 68. Fear: Energy 31 (-6), Utilities 36. Top driver: NVDA insight 'Data-center revenue accelerating.' Top drag: XOM 'Crude inventory builds.'"
Endpoint Reference (compact)
For the full schema, see https://sentisense.ai/skill.md.
Price & profile (Public)
GET /api/v1/stocks/price?ticker={T}: current price, day changeGET /api/v1/stocks/prices?tickers=A,B,C: batchGET /api/v1/stocks/chart?ticker={T}&timeframe=1M|3M|6M|1Y: OHLCVGET /api/v1/stocks/{T}/profile: sector, industry, CEO
Sentiment (Public, requires API key)
GET /api/v2/metrics/entity/{T}/metric/sentiment?startTime={epochMs}&endTime={epochMs}: time series (omit params for the server default 7-day window)GET /api/v2/market-mood: composite fear/greed (0-100), 5 sub-signals, sector breakdowns
Insider (Public, preview)
GET /api/v1/insider/cluster-buys?lookbackDays=N: tickers with multiple insider buysGET /api/v1/insider/trades/{T}?lookbackDays=N: Form 4 filings for a ticker
Congressional STOCK Act (Public, preview)
GET /api/v1/politicians/activity?lookbackDays=N: recent trades across all membersGET /api/v1/politicians/member/{slug}: member profile; recent trades are already nested atdata.recentTrades[]
Institutional 13F (Public, preview)
GET /api/v1/institutional/quarters: call this FIRST to get validreportDatevaluesGET /api/v1/institutional/holders/{T}?reportDate={Q}: top holders (data.holders[]sorted by largest position)
Analyst ratings (Public, preview)
GET /api/v1/analyst/{T}/consensus: price target band, distributionGET /api/v1/analyst/{T}/actions?lookbackDays=N: recent rating changesGET /api/v1/analyst/{T}/estimates: EPS estimate band (low/mean/high, # analysts) plussurprises[]history; no revenue, no revision historyGET /api/v1/analyst/activity?lookbackDays=N: market-wide actions (filter client-side onactionType)
AI insights (Public, preview)
GET /api/v1/insights/stock/{T}: AI signals for a ticker (sorted urgency-then-confidence; first item is the headline signal)GET /api/v1/insights/stock/{T}/types: list available insight types (Public, no authentication required, no quota cost)GET /api/v1/insights/market: top market-wide signals
Agent Tips
- Wrap vs flat varies by endpoint. Read FLAT (no
.data):price,prices,chart,popular,market-mood,stocks/{T}/profile,descriptions, andsentiment(bare array).institutional/quartersis a bare array ([0].reportDateis latest). These ARE wrapped in{ isPreview, previewReason, data }(read.data):insider/*,analyst/*,insights/*,politicians/*,institutional/holders. When unsure, accept both:Array.isArray(raw) ? raw : (raw?.data ?? raw). - Sentiment is polarity. The sentiment metric is a value in
[-1.0, 1.0]where the sign is the direction (negative is bearish and real). Represent polarity; do not force it onto a 0-100 scale. The separate SentiSense Score metric is unbounded; report it as-is. - Always fetch quarters first before
/institutional/*calls. Never hardcodereportDate. - Free tier is real. A user without PRO still gets back
data(just truncated). Synthesize from what you get; don't refuse the workflow. - Don't hallucinate endpoints. No options flow, no dark pool, no
/congress(it's/politicians). - Be brief. Users asked for synthesis, not a data dump. Five lines beats fifty.
Tier Summary
| Capability | Free | PRO |
|------------|------|-----|
| Brief me on $TICKER | Full read, AI insight preview-gated (top 3) | Full insight list |
| Smart money this week | Top items shown | Full lists |
| Divergence screen | Works against /popular (~50 tickers) | Run against full universe |
| Pre-earnings check | Insider preview, action preview | Full history |
| Sector rotation | Full sector breakdown free | Unlimited refreshes |
PRO at $15/month: https://app.sentisense.ai/pricing?coupon=AGENTS26 (apply coupon AGENTS26 at checkout for a builder launch discount)
Scan to join WeChat group