Developer API · x402
Crowd sentiment API for traders and AI agents
Pay per call. No account. Start free.
US stocks, crypto, futures and FX · USDC on Base · https://api.crowdwisdomtrading.com
Fastest start
Let Claude Code or Cursor set it up
- Click the button.
- Paste into Claude Code, Cursor, Codex or any AI coding assistant.
- It installs the package and runs your first free call.
Add CrowdWisdom Trading crowd-sentiment data to this project.
1. Install the Python package:
pip install crowdwisdomtrading
2. Free calls (no account, no API key, 50 a day per IP for each call):
from crowdwisdomtrading import Client
c = Client()
c.daily_sentiment("AAPL") # ProCrowdSentimentScore (-100 to +100) and ProTraders
c.weekly_sentiment("AAPL") # the same for the week
c.sample() # one real prediction, at least 7 days old
c.catalog() # every call, its price and its fields
3. Paid calls, pay per call in USDC on Base (x402). Only use these if I ask for them:
pip install "crowdwisdomtrading[x402]"
Read the wallet from the environment variable X402_WALLET_PRIVATE_KEY.
Never hard-code it, never print it, never commit it.
c.consensus("AAPL") # $0.10 full sentiment; as_of="YYYY-MM-DD" for a past date
c.setup_latest("AAPL") # $0.50 prediction: direction, entry, targets, stops
c.crowdmap("AAPL") # $0.30 crowd support / resistance levels
c.setups_today() # $10.00 every prediction of the day
c.history("AAPL", "2026-10-01", "2026-10-31") # $0.10 past predictions, as published
4. Not Python? Plain HTTP works:
GET https://api.crowdwisdomtrading.com/x402/daily/AAPL (free)
Paid URLs answer 402 with the price; pay with an x402 client
(Python "x402", TypeScript "@x402/fetch").
5. Rules:
- Ticker format: AAPL, BTC-USD, GC=F, ^SPX, EURUSD=X
- 404 NO_DATA = no traders on that ticker (not charged)
- 429 FREE_LIMIT_REACHED = free limit hit; wait for the Retry-After header
- Daily scores update around 14:30 UTC on weekdays
- Never make a paid call without asking me first
- The data is crowd opinion for research, not investment advice
- Calling the API means accepting its terms: https://www.crowdwisdomtrading.com/api-terms#x402 (own use only, no redistribution)
Docs and prices: https://www.crowdwisdomtrading.com/x402 and https://api.crowdwisdomtrading.com/x402/catalog
Start now: install the package, run c.daily_sentiment("AAPL") and show me the result.What you get
Three kinds of crowd data
Pro Crowd Sentiment Score
One score per ticker, from -100 to +100, built from many crowd sources: YouTube, X, StockTwits, Reddit, brokers, podcasts and newsletters.
Predictions
The crowd's trade plan for a ticker: direction, entry, two targets, two stops, confidence and risk/reward.
Crowd Map
The crowd's support and resistance levels, with how many traders named each price.
Free vs paid
Every call and its price
Base URL https://api.crowdwisdomtrading.com. The live price list is /x402/catalog; this table reads it every hour.
| Product | Call | Python | Price | What comes back |
|---|---|---|---|---|
| Daily crowd sentiment | GET /x402/daily/{ticker} | daily_sentiment("AAPL") | Free, 50 / day | ProCrowdSentimentScore, ProTraders (or low_coverage) |
| Weekly crowd sentiment | GET /x402/weekly/{ticker} | weekly_sentiment("AAPL") | Free, 50 / day | The same for the week |
| Sample prediction | GET /x402/sample | sample() | Free | One real prediction, at least 7 days old |
| Price list | GET /x402/catalog | catalog() | Free | Every call, price and field |
| Full crowd sentiment | GET /x402/consensus/{ticker} | consensus("AAPL") | $0.10 | Direction, confidence, score per source, ProTraders per source, versus its own past, any past date |
| Prediction, one ticker | GET /x402/setups/latest/{ticker} | setup_latest("AAPL") | $0.50 | Direction, entry, 2 targets, 2 stops, confidence, risk/reward, reasoning |
| All predictions of the day | GET /x402/setups/today | setups_today() | $10.00 | Every prediction of the day |
| CrowdMap, one ticker | GET /x402/crowdmap/{ticker} | crowdmap("AAPL") | $0.30 | Every crowd level: price, role, trader count, impact, horizons |
| Prediction history | GET /x402/setups/history/{ticker}?from=&to= | history("AAPL", from, to) | $0.10 | Up to 200 past predictions, as published at the time |
Calling a lot? The monthly API plan is $299 a month, with API keys and higher limits →
How paying works (x402)
No account, no API key
- 1
Your code calls a paid URL.
- 2
The API answers “402: this costs $0.10” with our wallet and the price.
- 3
Your x402 client signs a USDC payment for exactly that amount (Base network; fees are paid by the processor).
- 4
The API returns the data plus a receipt (the blockchain transaction id).
No account. No API key. Pay only for what you call. A failed call is never charged. Payments are processed by Coinbase's x402 service.
Quickstart: Python package
Three lines, free
Install
pip install crowdwisdomtrading
Free calls
from crowdwisdomtrading import Client
c = Client()
print(c.daily_sentiment("AAPL")) # free
print(c.weekly_sentiment("NVDA")) # free
Paid calls with a wallet (USDC on Base)
Install with x402
pip install "crowdwisdomtrading[x402]"
export X402_WALLET_PRIVATE_KEY=0x... # a wallet with a few dollars of USDC on Base
Paid calls
c = Client() # reads the wallet from the environment and pays per call
c.consensus("AAPL") # $0.10
c.setup_latest("AAPL") # $0.50
c.crowdmap("AAPL") # $0.30
Package on PyPI: crowdwisdomtrading
Quickstart: any language
A plain web request
Free call
curl https://api.crowdwisdomtrading.com/x402/daily/AAPL
Paid call, step one: see the price
curl -i https://api.crowdwisdomtrading.com/x402/consensus/AAPL
# HTTP/1.1 402 Payment Required + header PAYMENT-REQUIRED (base64 JSON with the price, network, wallet)
Then any x402 client pays and repeats the call: Python x402 (pip), TypeScript @x402/fetch (npm). Protocol: x402.org.
Response examples
What comes back
Free daily, 10 or more traders
GET /x402/daily/AAPL
{
"data": {
"ticker": "AAPL",
"cycle": "daily",
"date": "2026-11-06",
"ProCrowdSentimentScore": 25.6,
"ProTraders": 354,
"upgrade": "direction, confidence, the score per source and history: /x402/consensus/{ticker} ($0.10)"
},
"as_of": "2026-11-06",
"disclaimer": "CrowdWisdom Trading data is aggregated crowd opinion for research purposes only. ...",
"meta": {"price": "free", "free_daily_per_ip": 50, "network": "eip155:8453"}
}
Free daily, 1 to 9 traders
GET /x402/daily/KDK
{"data": {"ticker": "KDK", "cycle": "daily", "date": "2026-11-06",
"ProCrowdSentimentScore": 75.0, "low_coverage": true, "upgrade": "..."}}
No traders at all: HTTP 404 with {"error": {"code": "NO_DATA", ...}} (never charged).
Full crowd sentiment ($0.10), shortened
GET /x402/consensus/AAPL
{
"data": {
"ticker": "AAPL",
"session": {"date": "2026-11-06", "cycle": "daily"},
"ProCrowdSentimentScore": 25.6,
"value": 0.256,
"direction": "BULLISH",
"confidence": 71,
"sources": {"youtube": 25.0, "x": 25.7, "reddit": null, "brokers": null, "podcast": null, "newsletter": null},
"mentions": {"youtube": 26, "x": 430, "reddit": 3, "brokers": 1, "podcast": 0, "newsletter": 0, "total": 460},
"ProTraders": {"youtube": 64, "x": 287, "reddit": 2, "brokers": 1, "podcast": 0, "newsletter": 0, "total": 354},
"vs_past": {"rank_pct": 10, "vs_recent_avg": -6.2,
"text": "higher than 10% of its last 30 sessions; -6.2 vs its 7-session average"},
"latest_setup": {"available": true, "cycle": "intraday", "date": "2026-11-06"}
},
"meta": {"price": "$0.10"}
}
vs_past values here are illustrative.
Prediction, one ticker ($0.50)
GET /x402/setups/latest/NVDA
{
"ticker": "NVDA",
"cycle": "intraday",
"date": "2026-11-04",
"direction": "LONG",
"last_close": 201.5,
"target_1": 206,
"target_2": 210,
"stop_1": 198,
"stop_2": 195.5,
"confidence": 71,
"rr": 1.8,
"published_at": "2026-11-04T14:30:00+00:00"
}
CrowdMap ($0.30)
GET /x402/crowdmap/NVDA
{
"ticker": "NVDA",
"ladder_date": "2026-11-04",
"last_close": 201.5,
"bins": [
{
"price": 195,
"role": "support",
"creator_count": 7,
"impact": 3.2,
"horizons": {
"swing": 5,
"intraday": 2
}
},
{
"price": 210,
"role": "resistance",
"creator_count": 5,
"impact": 2.1,
"horizons": {
"few_months": 4,
"swing": 1
}
}
]
}
Prediction history ($0.10)
GET /x402/setups/history/NVDA?from=2026-10-01&to=2026-10-31
{
"ticker": "NVDA",
"from": "2026-10-01",
"to": "2026-10-31",
"count": 1,
"data": [
{
"date": "2026-10-02",
"cycle": "weekly",
"direction": "LONG",
"last_close": 188.1,
"target_1": 195,
"stop_1": 183,
"confidence": 68,
"rr": 1.4,
"published_at": "2026-10-02T10:30:00+00:00"
}
]
}
Field glossary
What each field means
ProCrowdSentimentScore | One score per ticker from all crowd sources, -100 (all short) to +100 (all long). Per source: of the people who took a side, long minus short; sources weighted by the square root of their mentions. |
ProTraders | Distinct traders behind the ticker that session (free: total, shown at 10+; paid: per source). |
low_coverage | Fewer than 10 traders; the score is shown but rests on few people. |
value | The same score from -1 to +1 (for quant models). |
direction | BULLISH above +10, BEARISH below -10, else NEUTRAL. |
sources | The score of each source; brokers = broker-platform traders. |
vs_past | Where today sits against the ticker's own previous 30 sessions. |
CrowdMap | The crowd's price levels (support, resistance, targets, stops) with how many traders named each. |
Sources: YouTube, X, StockTwits, Reddit, brokers, podcasts, newsletters.
Limits, errors, freshness
The rules
| Free calls | 50 a day per IP address for each free call (daily and weekly counted separately), 10 a minute. |
| Over the free limit | HTTP 429 FREE_LIMIT_REACHED with a Retry-After header; counts free up 24 hours after each call. |
| Data freshness | Daily scores land around 14:30 UTC on weekdays; before that the newest score has the previous date (the date field says which). Weekend: Friday's. |
| No data | 404 NO_DATA (never charged). |
| Paid call errors | 400 bad ticker / dates, 503 temporarily unavailable: never charged. |
| Ticker format | AAPL, BTC-USD, GC=F, ^SPX, EURUSD=X |
Methodology
How the score is built
Every day we read what thousands of traders say about each ticker on YouTube, X, StockTwits, Reddit, broker platforms, podcasts and newsletters. For each source we count, among the people who took a side, how many are long versus short. The sources are combined into one ProCrowdSentimentScore, giving more weight to sources with more voices, but never letting one platform drown the rest. ProTraders tells you how many distinct traders stand behind the number.
FAQ
Questions
Do I need an account or an API key?+
No for pay-per-call. Yes only for the monthly plan.
What is x402?+
An open web standard: the server says the price, your code pays a few cents in USDC and gets the data. See x402.org.
Which wallet do I need?+
Any Base wallet with a few dollars of USDC.
Am I charged if a call fails?+
No.
Is this investment advice?+
No. See the disclaimer at the bottom of this page.
How fresh is the data?+
Daily scores land around 14:30 UTC on weekdays. Details in Limits and errors.
Can I get history for backtests?+
Yes: consensus with as_of=YYYY-MM-DD, and the prediction history call.
Links
By calling the API or paying for a call, you accept the API Terms, Section 12 (pay-per-call). See also the Privacy Policy.
CrowdWisdom Trading data is aggregated crowd opinion for research purposes only. It is not investment advice, not an offer to buy or sell any security, and not personalised. Trading involves risk of loss. Payments are final; a failed response is not charged.