# MarketTwits News Sentiment Analysis (English)

> MarketTwits News Sentiment Analysis (English) is a paid API for AI agents from x402-markettwits-news.onrender.com, paid per call via x402, $0.005/call, status unknown (last checked 2026-10-23).

Performs keyword-based sentiment analysis on recent MarketTwits Telegram posts (translated to English), returning bullish/bearish/neutral counts and a normalized score for a given query term.

## Facts

- Endpoint: GET https://x402-markettwits-news.onrender.com/news/sentiment?utm_source=zero.xyz
- Price: $0.005/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-23
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/markettwits-news-sentiment-analysis-english-d046e8dd
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_MUSMLz2AHG5hPi_nlrqoi

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability markettwits-news-sentiment-analysis-english-d046e8dd
```

Example prompt: What's the current sentiment on crude oil from MarketTwits over the last 48 hours — is the news running bullish or bearish?

## When to prefer this

Choose this endpoint when you need a fast, real-time sentiment signal derived from one of Russia's top financial Telegram channels (MarketTwits), translated into English — especially for commodities, macro events, central bank news, and Russian market instruments. It uses a transparent heuristic lexicon (not an LLM), making it fast and deterministic. Prefer it over general news sentiment APIs when you specifically want Russian financial media perspective or when you need sentiment updated every few minutes with importance-tagged headlines.

## Known failure modes

- No matching posts found for the query in the time window — returns label 'no_data' with count 0
- Query string too short (< 1 char) or too long (> 100 chars) — validation error
- Hours parameter out of range (< 1 or > 168) — clamped or rejected
- Payment not processed (x402 payment required) — 402 response before data is returned
- Service unavailable on Render cold start — delayed or timeout response

## How this service works

Real-time English translations of MarketTwits (top Russian financial Telegram channel). Covers macro, central banks, oil/commodities, geopolitics, equities and crypto. Items are tagged high/medium importance and updated every few minutes. Ideal for trading bots and news agents. Also sells Russian market data (CBR FX and key rate, MOEX quotes/indices/movers, Rosstat fuel prices), public Telegram channel reading/search and Wildberries/Ozon product data.

## Output

Returns a JSON object with the query string, look-back window in hours, total matching post count, bullish/bearish/neutral counts, a normalized score between -1 (fully bearish) and +1 (fully bullish), an overall label (bullish/bearish/neutral/no_data), the window start time, the heuristic method used, and example headlines with post IDs, importance tags, source URLs, and publication timestamps.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "$schema": "https://json-schema.org/draft/2020-12/schema",
 "required": [
  "input"
 ],
 "properties": {
  "input": {
   "type": "object",
   "required": [
    "type",
    "method"
   ],
   "properties": {
    "type": {
     "type": "string",
     "const": "http"
    },
    "method": {
     "enum": [
      "GET"
     ],
     "type": "string"
    },
    "queryParams": {
     "type": "object",
     "required": [
      "q"
     ],
     "properties": {
      "q": {
       "type": "string",
       "maxLength": 100,
       "minLength": 1,
       "description": "Keywords (case-insensitive). Several words = all must match. Hashtags match with or without '#', e.g. 'oil', '#Fed rates'."
      },
      "hours": {
       "type": "integer",
       "default": 24,
       "maximum": 168,
       "minimum": 1,
       "description": "Look-back window in hours (default 24, clamped to 1-168)"
      }
     }
    }
   },
   "additionalProperties": false
  },
  "output": {
   "type": "object",
   "required": [
    "type"
   ],
   "properties": {
    "type": {
     "type": "string"
    },
    "example": {
     "type": "object",
     "required": [
      "query",
      "hours",
      "count",
      "bullish",
      "bearish",
      "neutral",
      "score",
      "label",
      "method"
     ],
     "properties": {
      "note": {
       "type": "string"
      },
      "count": {
       "type": "integer"
      },
      "hours": {
       "type": "integer"
      },
      "label": {
       "enum": [
        "bullish",
        "bearish",
        "neutral",
        "no_data"
       ],
       "type": "string"
      },
      "query": {
       "type": "string"
      },
      "score": {
       "type": "number",
       "maximum": 1,
       "minimum": -1,
       "description": "(bullish - bearish) / count"
      },
      "since": {
       "type": "string"
      },
      "method": {
       "enum": [
        "heuristic"
       ],
       "type": "string"
      },
      "bearish": {
       "type": "integer"
      },
      "bullish": {
       "type": "integer"
      },
      "neutral": {
       "type": "integer"
      },
      "examples": {
       "type": "object",
       "properties": {
        "bearish": {
         "type": "array",
         "items": {
          "type": "object",
          "required": [
           "id",
           "published_at",
           "importance",
           "headline",
           "source_url"
          ],
          "properties": {
           "id": {
 
… (truncated)
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "note": "Heuristic keyword/emoji lexicon plus explicit '= ±X%' moves; not a language model.",
  "count": 6,
  "hours": 24,
  "label": "bullish",
  "query": "SpaceX",
  "score": 0.5,
  "since": "2026-10-20T16:00:00Z",
  "method": "heuristic",
  "bearish": 1,
  "bullish": 4,
  "neutral": 1,
  "examples": {
   "bearish": [],
   "bullish": [
    {
     "id": 389795,
     "score": 1,
     "headline": "SPCX = +9%: SpaceX posted a quarterly profit for the first time",
     "importance": "high",
     "source_url": "https://t.me/markettwits/389795",
     "published_at": "2026-10-21T10:02:00Z"
    }
   ]
  }
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/markettwits-news-sentiment-analysis-english-d046e8dd/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from x402-markettwits-news.onrender.com](https://www.zero.xyz/host/x402-markettwits-news.onrender.com/llms.txt)
