Discover/AAII API
live

AAII APIaaii.com

Access AAII Investor Sentiment Survey data via API. Get weekly bullish/bearish/neutral readings, ~52 weeks of history, state breakdowns, and historical averages.

Endpoint health
verified 3d ago
get_current_sentiment
get_state_sentiment
get_historical_sentiment
3/3 passing latest checkself-healing
Endpoints
3
Updated
22d ago

What is the AAII API?

The AAII Sentiment API provides three endpoints covering the American Association of Individual Investors' weekly survey data, which has tracked individual investor market outlook since 1987. The get_current_sentiment endpoint returns this week's bullish, neutral, and bearish percentages alongside live vote tallies, one-year highs, historical long-term averages, a weekly special question with vote results, and a link to the latest commentary article.

Try it

No input parameters required.

api.parse.bot/scraper/8c822fae-6fc0-4ddc-9498-e70358c72ccf/<endpoint>
Ready to send
Fill in the parameters and hit sign in to send to see live response data here.
Call it over HTTPgrab a free API key at signup
curl -X GET 'https://api.parse.bot/scraper/8c822fae-6fc0-4ddc-9498-e70358c72ccf/get_current_sentiment' \
  -H 'X-API-Key: $PARSE_API_KEY'
Python SDK · recommended

Typed, relational, agent-ready

A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.

  • Fully typed · autocompletes
  • Objects link to objects
  • Typed errors & pagination

Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:

uv add parse-sdk
uv run parse init
uv run parse add --marketplace aaii-com-api

uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.

"""Walkthrough: AAII Investor Sentiment Survey — bounded, re-runnable."""
from parse_apis.aaii_investor_sentiment_survey_api import (
    AAII,
    SentimentUnavailable,
)

client = AAII()

# Fetch the current sentiment snapshot (single call, no pagination).
snapshot = client.sentiments.current()
print(f"Current week ({snapshot.current_week.date}): "
      f"Bull {snapshot.current_week.bullish}% / "
      f"Neutral {snapshot.current_week.neutral}% / "
      f"Bear {snapshot.current_week.bearish}%")

# Compare live votes to the official reading.
print(f"Live votes: Bull {snapshot.live_vote_percentages.bullish}%, "
      f"Bear {snapshot.live_vote_percentages.bearish}%")

# Historical averages for context.
print(f"Historical avg: Bull {snapshot.historical_averages.bullish}%, "
      f"Bear {snapshot.historical_averages.bearish}%")

# Weekly special question breakdown.
sq = snapshot.special_question
print(f"Special Q: {sq.question} ({sq.total_votes} votes)")

# Fetch ~52 weeks of historical data for trend analysis.
historical = client.historicalsentiments.get()
print(f"Historical: {historical.total_weeks} weeks "
      f"from {historical.date_range.start} to {historical.date_range.end}")

# Inspect the most recent week's spread.
latest = historical.weekly_data[-1]
print(f"Latest spread: {latest.spread} (bull {latest.bullish}%, bear {latest.bearish}%)")

# Fetch state-by-state sentiment; handle possible unavailability.
try:
    states_report = client.statesentimentreports.get()
    print(f"States reporting: {states_report.total_states}")
except SentimentUnavailable as exc:
    print(f"State data unavailable: {exc}")

print("Exercised: sentiments.current / historicalsentiments.get / statesentimentreports.get")
All endpoints · 3 totalmissing one? ·

Retrieves the latest AAII investor sentiment survey snapshot. Returns the current week's bullish/neutral/bearish percentages, the last 4 weeks of data, live vote percentages (updated in real-time as members vote), long-term historical averages, 1-year sentiment highs, the weekly special question with answer breakdown, and a link to the latest commentary article. Data refreshes each Thursday when the new survey closes.

Input

No input parameters required.

Response
{
  "type": "object",
  "fields": {
    "commentary": "object with date, title, url, and summary of the latest sentiment commentary article",
    "current_week": "object with date, bullish, neutral, bearish percentages for the latest survey week",
    "recent_weeks": "array of the last 4 weekly sentiment objects (date, bullish, neutral, bearish)",
    "one_year_highs": "object with bullish_high, neutral_high, bearish_high (each containing value and week_ending)",
    "special_question": "object with question, question_date, total_votes, and answers array",
    "historical_averages": "object with long-term average bullish, neutral, bearish percentages",
    "live_vote_percentages": "object with current live bullish, neutral, bearish vote percentages"
  },
  "sample": {
    "data": {
      "commentary": {
        "url": "https://www.aaii.com/latest/article/493628-aaii-sentiment-survey-pessimism-steps-down",
        "date": "June 4, 2026",
        "title": "AAII Sentiment Survey: Pessimism Steps Down",
        "summary": "Pessimism among individual investors about the short-term outlook for stocks decreased in the latest AAII Sentiment Survey."
      },
      "current_week": {
        "date": "6/10/2026",
        "bearish": 47.7,
        "bullish": 30.4,
        "neutral": 22
      },
      "recent_weeks": [
        {
          "date": "6/10/2026",
          "bearish": 47.7,
          "bullish": 30.4,
          "neutral": 22
        },
        {
          "date": "6/3/2026",
          "bearish": 37,
          "bullish": 36.3,
          "neutral": 26.7
        }
      ],
      "one_year_highs": {
        "bearish_high": {
          "value": 100,
          "week_ending": "Week Ending 6/11/2026"
        },
        "bullish_high": {
          "value": 49.5,
          "week_ending": "Week Ending 1/14/2026"
        },
        "neutral_high": {
          "value": 31.4,
          "week_ending": "Week Ending 3/4/2026"
        }
      },
      "special_question": {
        "answers": [
          {
            "votes": 87,
            "answer": "The economy and/or inflation",
            "percentage": 34.8
          }
        ],
        "question": "Which factor is most influencing your six-month outlook for stocks?",
        "total_votes": 250,
        "question_date": "May, 28 2026 00:00:00"
      },
      "historical_averages": {
        "bearish": 31,
        "bullish": 37.5,
        "neutral": 31.5
      },
      "live_vote_percentages": {
        "bearish": 41.81,
        "bullish": 33.8,
        "neutral": 24.39
      }
    },
    "status": "success"
  }
}

About the AAII API

What the API returns

Three endpoints cover the full public surface of the AAII Investor Sentiment Survey. get_current_sentiment is the main weekly snapshot: it returns a current_week object (date, bullish, neutral, bearish percentages), a recent_weeks array of the prior four weeks, live_vote_percentages reflecting real-time voting, one_year_highs for each sentiment direction (value + week_ending date), historical_averages with long-run mean readings, and a special_question object with the current poll question, total votes, and a full answers array. A commentary object surfaces the latest editorial piece (date, title, URL, summary).

Historical and geographic data

get_historical_sentiment returns approximately 52 weeks of weekly records. Each entry in the weekly_data array includes date, bullish/neutral/bearish percentages, running bull and bear averages (bull_avg, bear_avg), and the bull-bear spread. The date_range object and total_weeks integer let you quickly verify coverage before building charts. get_state_sentiment breaks the current survey period down by US state and territory: the states object maps abbreviations (CA, TX, NY, etc.) to bullish/neutral/bearish percentages, with total_states indicating how many states have sufficient respondents for that period.

Coverage notes

All three endpoints take no input parameters — data is scoped to the current survey period or the trailing ~52-week window. The historical endpoint does not provide the full archive back to 1987 in a single call. State-level data depends on respondent counts; not every state appears every week.

Reliability & maintenanceVerified

The AAII API is a managed, monitored endpoint for aaii.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when aaii.com changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.

This isn't an official aaii.com API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.

Last verified
3d ago
Latest check
3/3 endpoints passing
Maintenance
Monitored & self-healing
Will this API break when the source site changes?+
It's built not to. Every endpoint is health-checked on a schedule with automated test probes. When the source site changes and a check fails, the API is automatically queued for repair and re-verified — that's the self-healing layer. Each API page shows when its endpoints were last verified. And because marketplace APIs are shared, any fix reaches everyone using it.
Is this an official API from the source site?+
No — Parse APIs are independent, managed REST wrappers over publicly available data. That is the point: where a site has no official API (or only a limited one), Parse gives you a maintained, monitored endpoint for that data and keeps it working as the site changes — so you get a stable contract over a source that never promised one.
Can I fix or extend this API myself if I need a new endpoint or field?+
Yes — and you don't have to wait on us. This API was generated by the Parse agent, which stays attached. Describe the change in plain English ("add an endpoint that returns reviews", "fix the price field") in the revise box on the API page or via the revise_api MCP tool, and the agent rebuilds it against the live site in minutes. Contributing the change back to the public API is free.
What happens if I call an endpoint that has an issue?+
Errors are machine-readable: a bad call returns a clean status with the list of available endpoints and a repair hint, so an agent (or you) can recover or trigger a fix instead of failing silently. Confirmed failures feed the automatic repair queue.
Common use cases
  • Plotting a 52-week bull-bear spread chart using the spread field from get_historical_sentiment
  • Alerting when bullish sentiment breaches its one-year high using one_year_highs from get_current_sentiment
  • Comparing live vote percentages against finalized weekly readings to detect intra-week sentiment shifts
  • Building a regional sentiment heatmap of US states using get_state_sentiment data
  • Tracking the weekly special question results to surface topical investor concerns
  • Backtesting contrarian trading signals against the historical bull-bear spread data
  • Displaying the latest AAII commentary link and summary in a financial news digest via the commentary object
Pricing & limitsSee full pricing →
TierPriceCredits/monthRate limit
Free$0/mo1005 req/min
Hobby$30/mo1,00020 req/min
Developer$100/mo5,000100 req/min

One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.

Frequently asked questions
Does AAII offer an official developer API for its sentiment data?+
AAII does not publish a documented public developer API for its sentiment survey data. The data is available on the AAII website (aaii.com/sentiment-survey) as a member resource, but there is no official REST or data API with keys, versioning, or documentation.
What does `get_historical_sentiment` cover and how far back does it go?+
The endpoint returns approximately 52 weeks of weekly data. Each record includes date, bullish, neutral, and bearish percentages, running averages for bulls and bears, and the bull-bear spread. It does not return the full survey archive dating to 1987. You can fork the API on Parse and revise it to add a longer historical range endpoint if full-archive coverage is needed.
Does the state sentiment endpoint return data for every US state every week?+
Not always. The get_state_sentiment endpoint only includes states and territories with sufficient survey respondents in the current period. The total_states field tells you how many are present in a given response, but low-population states may be absent in some weeks. You can fork the API on Parse and revise it to add historical state-level tracking across multiple survey periods.
Can I filter historical sentiment data by a custom date range?+
The get_historical_sentiment endpoint takes no input parameters and returns the trailing ~52 weeks automatically. Custom date range filtering is not currently supported. You can fork the API on Parse and revise it to add date-range query parameters against a wider historical dataset.
How fresh is the data returned by `get_current_sentiment`?+
The AAII sentiment survey is conducted and published weekly, typically on Thursdays. The current_week object reflects the most recently published results, and live_vote_percentages reflects ongoing votes before the week closes. Intra-week live data may differ from the finalized reading published at week's end.
Page content last updated . Spec covers 3 endpoints from aaii.com.
Related APIs in FinanceSee all →
sentimentrader.com API
Track real-time market sentiment and investor behavior by accessing Smart Money/Dumb Money confidence levels, trending stocks, and capitulation signals to inform your trading decisions. Monitor macroeconomic conditions alongside sentiment indicators to get a comprehensive view of current market psychology and potential turning points.
cryptopanic.com API
Access real-time cryptocurrency market sentiment data from CryptoPanic. Retrieve news posts filtered by bullish or bearish sentiment, browse the full news feed with flexible filters, and fetch an aggregated sentiment score derived from 24-hour price movements across top cryptocurrencies.
alphavantage.co API
Track stock prices, forex rates, and cryptocurrency values with real-time and historical market data, while accessing company financials, earnings reports, and technical indicators. Search tickers, monitor economic indicators, analyze news sentiment, and get global quotes all in one place.
stockanalysis.com API
Access comprehensive stock market data including real-time financials, income statements, statistics, and IPO calendars to research individual stocks and identify market movers. Search stocks, view detailed overviews, and monitor premarket activity all in structured, easy-to-use format.
insights.apmiindia.org API
Access comprehensive financial data on Indian PMS providers and investment approaches, including AUM breakdowns, industry dashboards, and detailed provider information. Search and compare investment strategies, view discretionary AUM details, and generate insight reports to analyze the PMS market landscape.
marketbeat.com API
Track comprehensive stock market data including real-time overviews, analyst ratings, earnings reports, insider trades, and institutional ownership across thousands of companies. Search stocks, analyze financial statements and profitability metrics, monitor short interest, explore options chains, and stay updated with market headlines and competitor analysis.
aeaweb.org API
Search for academic papers across American Economic Association journals to instantly access abstracts, author information, JEL classifications, and citation metrics. Retrieve detailed article information to stay current with the latest economic research and citations from premier sources like the American Economic Review.
allsides.com API
Get balanced news coverage from multiple political perspectives and discover media bias ratings to understand how outlets lean Left, Center, or Right. Search headlines by topic and perspective to compare how different viewpoints cover the same stories.