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

  1. Click the button.
  2. Paste into Claude Code, Cursor, Codex or any AI coding assistant.
  3. 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

ProCrowdSentimentScore

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.

CrowdMap

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.

ProductCallPythonPriceWhat comes back
Daily crowd sentimentGET /x402/daily/{ticker}daily_sentiment("AAPL")Free, 50 / dayProCrowdSentimentScore, ProTraders (or low_coverage)
Weekly crowd sentimentGET /x402/weekly/{ticker}weekly_sentiment("AAPL")Free, 50 / dayThe same for the week
Sample predictionGET /x402/samplesample()FreeOne real prediction, at least 7 days old
Price listGET /x402/catalogcatalog()FreeEvery call, price and field
Full crowd sentimentGET /x402/consensus/{ticker}consensus("AAPL")$0.10Direction, confidence, score per source, ProTraders per source, versus its own past, any past date
Prediction, one tickerGET /x402/setups/latest/{ticker}setup_latest("AAPL")$0.50Direction, entry, 2 targets, 2 stops, confidence, risk/reward, reasoning
All predictions of the dayGET /x402/setups/todaysetups_today()$10.00Every prediction of the day
CrowdMap, one tickerGET /x402/crowdmap/{ticker}crowdmap("AAPL")$0.30Every crowd level: price, role, trader count, impact, horizons
Prediction historyGET /x402/setups/history/{ticker}?from=&to=history("AAPL", from, to)$0.10Up 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. 1

    Your code calls a paid URL.

  2. 2

    The API answers “402: this costs $0.10” with our wallet and the price.

  3. 3

    Your x402 client signs a USDC payment for exactly that amount (Base network; fees are paid by the processor).

  4. 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

ProCrowdSentimentScoreOne 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.
ProTradersDistinct traders behind the ticker that session (free: total, shown at 10+; paid: per source).
low_coverageFewer than 10 traders; the score is shown but rests on few people.
valueThe same score from -1 to +1 (for quant models).
directionBULLISH above +10, BEARISH below -10, else NEUTRAL.
sourcesThe score of each source; brokers = broker-platform traders.
vs_pastWhere today sits against the ticker's own previous 30 sessions.
CrowdMapThe 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 calls50 a day per IP address for each free call (daily and weekly counted separately), 10 a minute.
Over the free limitHTTP 429 FREE_LIMIT_REACHED with a Retry-After header; counts free up 24 hours after each call.
Data freshnessDaily 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 data404 NO_DATA (never charged).
Paid call errors400 bad ticker / dates, 503 temporarily unavailable: never charged.
Ticker formatAAPL, 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.

Is there a monthly plan?+

Yes. See the API plan or Pro plan.