{"openapi":"3.1.0","info":{"title":"Indo News API","version":"1.0.0","description":"Indonesian news headlines and keyword search as structured JSON, paid per call with USDC on Base via x402.","contact":{"email":"kaminariouji@gmail.com"}},"servers":[{"url":"https://indo-news-api.vercel.app"}],"paths":{"/headlines":{"get":{"operationId":"getHeadlines","summary":"Indonesian news headlines by topic","description":"Up to 25 fresh headlines from Google News Indonesia edition for a topic.","tags":["news","indonesia"],"parameters":[{"name":"topic","in":"query","required":false,"schema":{"type":"string","enum":["nasional","dunia","finance","techno","sport","hiburan","sains","kesehatan"],"default":"nasional"}}],"responses":{"200":{"description":"Headlines as JSON"},"402":{"description":"Payment required (x402)"}},"x-payment-info":{"price":{"mode":"fixed","amount":"0.05","currency":"USD"},"protocols":[{"x402":{}}]}}},"/search":{"get":{"operationId":"searchNews","summary":"Search Indonesian news by keyword","description":"Up to 25 fresh articles from Google News Indonesia edition matching a keyword.","tags":["news","indonesia","search"],"parameters":[{"name":"q","in":"query","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Matching articles as JSON"},"402":{"description":"Payment required (x402)"}},"x-payment-info":{"price":{"mode":"fixed","amount":"0.10","currency":"USD"},"protocols":[{"x402":{}}]}}},"/briefing":{"get":{"operationId":"getBriefing","summary":"Ranked Indonesian news briefing with keyword trends","description":"Deduped, recency-ranked articles plus keyword frequency and top sources for a topic.","tags":["news","indonesia","intelligence"],"parameters":[{"name":"topic","in":"query","required":false,"schema":{"type":"string","enum":["nasional","dunia","finance","techno","sport","hiburan","sains","kesehatan"],"default":"finance"}}],"responses":{"200":{"description":"Briefing as JSON"},"402":{"description":"Payment required (x402)"}},"x-payment-info":{"price":{"mode":"fixed","amount":"0.50","currency":"USD"},"protocols":[{"x402":{}}]}}},"/digest":{"get":{"operationId":"getDigest","summary":"Full Indonesia digest: all topics in one call","description":"All 8 topics deduped across topics, with global keyword trends, top sources and per-topic headlines.","tags":["news","indonesia","intelligence","digest"],"responses":{"200":{"description":"Digest as JSON"},"402":{"description":"Payment required (x402)"}},"x-payment-info":{"price":{"mode":"fixed","amount":"2.50","currency":"USD"},"protocols":[{"x402":{}}]}}},"/monitor":{"get":{"operationId":"getMonitor","summary":"Coverage monitor for a brand, person or topic","description":"Deduped Indonesian articles for a query plus source counts, keyword trends and a 7-day coverage timeline. Built for media monitoring and brand tracking.","tags":["news","indonesia","monitoring","brand"],"parameters":[{"name":"q","in":"query","required":true,"schema":{"type":"string","minLength":2},"example":"rupiah"}],"responses":{"200":{"description":"Coverage monitor as JSON"},"400":{"description":"Missing or too-short query"},"402":{"description":"Payment required (x402)"}},"x-payment-info":{"price":{"mode":"fixed","amount":"1.00","currency":"USD"},"protocols":[{"x402":{}}]}}},"/report/buy":{"get":{"operationId":"buyCoverageReport","summary":"Written 30-day coverage report, paid per report","description":"Written coverage report for one brand, person or issue: up to 100 matching articles, outlet ranking, keyword trends and coverage timeline, as HTML and JSON. Delivered immediately after x402 payment.","tags":["news","indonesia","report","monitoring"],"parameters":[{"name":"q","in":"query","required":true,"schema":{"type":"string","minLength":2},"example":"pertamina"}],"responses":{"200":{"description":"Coverage report as HTML or JSON (Accept header)"},"400":{"description":"Missing or too-short query"},"402":{"description":"Payment required (x402)"}},"x-payment-info":{"price":{"mode":"fixed","amount":"49.00","currency":"USD"},"protocols":[{"x402":{}}]}}},"/license/pilot":{"get":{"operationId":"buyPilotLicense","parameters":[{"name":"ref","in":"query","required":false,"schema":{"type":"string","maxLength":64},"description":"Optional client reference echoed back in the response, e.g. an internal order id."}],"summary":"30-day licence, 1,000 calls","description":"Buy 1,000 calls over 30 days for all paid endpoints in one x402 payment. Returns a signed Bearer token; send it as Authorization: Bearer <token> instead of paying per call.","tags":["news","indonesia","licence"],"responses":{"200":{"description":"Licence token as JSON"},"402":{"description":"Payment required (x402)"}},"x-payment-info":{"price":{"mode":"fixed","amount":"99.00","currency":"USD"},"protocols":[{"x402":{}}]}}},"/license/growth":{"get":{"operationId":"buyGrowthLicense","parameters":[{"name":"ref","in":"query","required":false,"schema":{"type":"string","maxLength":64},"description":"Optional client reference echoed back in the response, e.g. an internal order id."}],"summary":"30-day licence, 10,000 calls","description":"Buy 10,000 calls over 30 days for all paid endpoints in one x402 payment. Returns a signed Bearer token; send it as Authorization: Bearer <token> instead of paying per call.","tags":["news","indonesia","licence"],"responses":{"200":{"description":"Licence token as JSON"},"402":{"description":"Payment required (x402)"}},"x-payment-info":{"price":{"mode":"fixed","amount":"399.00","currency":"USD"},"protocols":[{"x402":{}}]}}},"/preview":{"get":{"operationId":"getPreview","summary":"Free preview: 3 latest headlines","description":"Free sample of 3 headlines for a topic so clients can evaluate the data before paying.","tags":["news","indonesia","free"],"parameters":[{"name":"topic","in":"query","required":false,"schema":{"type":"string","enum":["nasional","dunia","finance","techno","sport","hiburan","sains","kesehatan"],"default":"nasional"}}],"responses":{"200":{"description":"Preview as JSON"}}}}}}