Public API (read-only)

OpenAPI: openapi.json — API catalog (RFC 9727): /.well-known/api-catalog

OAuth/OIDC discovery (metadata for agents): /.well-known/oauth-protected-resource (RFC 9728), /.well-known/openid-configuration, /.well-known/oauth-authorization-server, /.well-known/jwks.json, /.well-known/http-message-signatures-directory (Web Bot Auth JWKS + signed directory).

Public JSON/RSS endpoints need no token; operator routes use the admin token as documented below.

MCP Server Card (SEP-1649): /.well-known/mcp/server-card.json — discovery only; streamable MCP is not active yet.

GET /api/news/today

Try — Query: date, source, page, pageSize, q

GET /api/stocks/:symbol

Example (FPT) — Query: date

GET /api/news/explain

Query u = canonical article URL.

GET /api/hsx/vnindex-chart

Query range = 1w | 1m | 1y

GET /api/notify/status

Try

GET /rss/today

Try — Query: source

GET /sitemap.xml

Try

GET /robots.txt

Try

GET /health

Try — Liveness JSON for all services above.

GET /api/intel/daily

Query date = YYYY-MM-DD (Vietnam report day). Returns JSON snapshot from R2 when available (written each refresh).

GET/POST /api/watchlist

Anonymous watchlist (max 18 symbols). Uses sn_watch_id cookie + KV. POST body: {"symbols":["VNM","FPT"],"name":"optional"}

GET /api/watchlist/export

CSV download. Query symbols optional (comma-separated).

GET /api/live/poll

Query since (ISO cursor), portfolio=1 to filter by watchlist cookie.

GET /api/search/ai

Query q (required), limit (1–20).

GET /desk

Investor Desk — hub HTML.

GET /briefing

Morning briefing — AI summary cached daily.

GET /portfolio

Watchlist — portfolio HTML; POST import at /portfolio/import.

GET /intel

Intel — archive dates + multi-source clusters.

← Trang chủ