# Indo News API — Sentiment Analysis Endpoint

> Indo News API — Sentiment Analysis Endpoint is a paid API for AI agents from indo-news-api.vercel.app, paid per call via x402, $0.05/call, status unknown (last checked 2026-11-04).

Returns a deterministic sentiment index and mood classification for Indonesian news articles by topic category

## Facts

- Endpoint: GET https://indo-news-api.vercel.app/sentiment?utm_source=zero.xyz
- Price: $0.05/call
- Payment: x402
- Status: unknown
- Last checked: 2026-11-04
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/indo-news-api-sentiment-analysis-endpoint-b3bab3be
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_M32oULMonJfZVXomkaBNu

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 indo-news-api-sentiment-analysis-endpoint-b3bab3be
```

Example prompt: What's the current sentiment mood of Indonesian finance news — is it risk-on or risk-off, and which terms and entities are driving the score?

## When to prefer this

Choose this endpoint when you need a structured, deterministic sentiment signal derived from real Indonesian news — especially for finance, markets, or domain-specific mood tracking. It is ideal for agents monitoring Indonesian market conditions, building news dashboards, or making decisions that depend on the risk-on/risk-off mood of Indonesian media. Prefer this over generic LLM-based sentiment tools when you want a reproducible, lexicon-based score with article-level evidence and entity attribution.

## Known failure modes

- Invalid topic value returns an error or defaults to 'finance'
- No articles available for the requested topic may return empty arrays
- Payment failure via x402 protocol results in 402 response before data is returned
- Stale data if Google News RSS feed is temporarily unavailable
- Rate limiting if too many calls are made in quick succession

## How this service works

Indonesian headlines, keyword search and ranked briefings, plus reference data: USD/IDR and any FX pair, BTC/ETH/USDT in rupiah, BMKG earthquakes and public holidays. Structured JSON, paid per call in USDC on Base. No API key, no signup.

## Output

A JSON object containing: overall sentiment index (0-100 scale), mood label (e.g. 'risk-off'), mean sentiment score, article counts by polarity (positive/negative/neutral/mixed), top driver terms with weights and article counts, named entities with average scores, strongest positive and negative individual articles with titles/sources/links, a day-by-day sentiment breakdown, methodology note, and links to related feed/headlines endpoints.

## 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": [],
     "properties": {
      "topic": {
       "type": "string",
       "description": "News topic: nasional, dunia, finance, techno, sport, hiburan, sains, or kesehatan. Default: finance."
      }
     }
    }
   },
   "additionalProperties": false
  },
  "output": {
   "type": "object",
   "required": [
    "type"
   ],
   "properties": {
    "type": {
     "type": "string"
    },
    "example": {
     "type": "object"
    }
   }
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "mood": "risk-off",
  "next": {
   "feed": "https://indo-news-api.vercel.app/feed?topic=finance ($0.05) — only new articles, with cursor",
   "articles": "https://indo-news-api.vercel.app/headlines?topic=finance ($0.05) — every article with entities and matches"
  },
  "byDay": [
   {
    "date": "2026-10-28",
    "index": 38.4,
    "articles": 11,
    "meanScore": -0.23
   },
   {
    "date": "2026-10-29",
    "index": 44.1,
    "articles": 14,
    "meanScore": -0.12
   }
  ],
  "index": 41.2,
  "label": "negative",
  "topic": "finance",
  "counts": {
   "mixed": 2,
   "neutral": 9,
   "negative": 8,
   "positive": 6
  },
  "method": "Deterministic Indonesian lexicon, no LLM. index = (meanScore + 1) / 2 * 100.",
  "scored": 25,
  "drivers": {
   "negative": [
    {
     "term": "melemah",
     "weight": 6,
     "articles": 4
    }
   ],
   "positive": [
    {
     "term": "naik",
     "weight": 4.5,
     "articles": 5
    }
   ]
  },
  "entities": [
   {
    "name": "Rupiah",
    "type": "asset",
    "articles": 9,
    "avgScore": -0.41
   }
  ],
  "meanScore": -0.18,
  "strongest": {
   "negative": [
    {
     "link": "https://news.google.com/rss/articles/...",
     "label": "negative",
     "score": -0.75,
     "title": "Rupiah Melemah ke Rp18.200 per Dolar AS",
     "source": "Kompas",
     "pubDate": "2026-10-29T08:00:00Z"
    }
   ],
   "positive": [
    {
     "link": "https://news.google.com/rss/articles/...",
     "label": "positive",
     "score": 0.8,
     "title": "IHSG Ditutup Naik 1,2 Persen",
     "source": "CNBC Indonesia",
     "pubDate": "2026-10-29T09:00:00Z"
    }
   ]
  },
  "sampleSize": 25,
  "generatedAt": "2026-10-29T02:00:00Z"
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/indo-news-api-sentiment-analysis-endpoint-b3bab3be/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from indo-news-api.vercel.app](https://www.zero.xyz/host/indo-news-api.vercel.app/llms.txt)
