API DOCS · v1
新鮮勢 Web3 Attention API
新鮮勢網站是 Web3 Attention API 的 reference client。它跟 /v1/* endpoint 使用同一組 public schema:網站讓人讀,API 讓 AI Agent、 企業系統、研究工作流直接接這套判斷。
v1 為公開測試版本,無需 API key、CORS 全開。歡迎讀取與引用,請在 consumer 端附上原文 permalink 連結。
Endpoints
| URL | 用途 |
|---|---|
/v1/attention/daily.json | 今天最值得注意的事件,按 display_score 排序。AI Agent 想要一份 daily web3 brief 就用這個。 |
/v1/events.json | 全量 top-level 事件清單,按 display_score 排序。給想做完整同步的 consumer。 |
/v1/events/{id}.json | 單一事件詳細內容。回 { generated_at, event, children },children 只在 top-level 有值。 |
/v1/updates.json | 被 producer 再次更新過的事件(如新增來源、修改摘要),按 last_updated 排序。要拿「最新事件」請用 events.json 或按 added_date 過濾。 |
/v1/tags/{tag}.json | 按 tag 過濾的事件清單。Tag 必須 ≥ 3 件事件才會開 endpoint。 |
/v1/months/{YYYY-MM}.json | 按月份分組的事件清單,給歷史回溯用。 |
/v1/taxonomy.json | 目錄頁。列出所有 endpoint pattern、可用 tag、可用月份、統計。AI consumer 第一個應該 fetch 的入口。 |
範例
curl
# 拿今天的 daily brief
curl https://feeds.blocktrend.today/v1/attention/daily.json | jq
# 抓單一事件詳細
curl https://feeds.blocktrend.today/v1/events/2026-05-28-samsung-trio-dunamu-upbit-4pct-korea-stablecoin.json
# 拿 2026 年 5 月所有事件
curl https://feeds.blocktrend.today/v1/months/2026-05.json
# 先看目錄知道有哪些 tag / 月份
curl https://feeds.blocktrend.today/v1/taxonomy.json | jq '.tags[] | select(.count > 5)' JavaScript / fetch
const res = await fetch('https://feeds.blocktrend.today/v1/attention/daily.json');
const { events } = await res.json();
for (const e of events) {
console.log(e.date, e.title, '/', e.permalink);
} Python
import httpx
r = httpx.get('https://feeds.blocktrend.today/v1/attention/daily.json')
for e in r.json()['events']:
print(f"{e['date']} [{e['display_score']}] {e['title']}") 事件 schema
List 型 endpoint(events / attention/daily / updates / tags / months)都回
{ generated_at, count, events: [...] }。
單一事件 endpoint(/v1/events/{id}.json)回
{ generated_at, event: {...}, children: [...] },
兩者的 event 物件結構相同。欄位如下:
| 欄位 | 型別 | 說明 |
|---|---|---|
id | string | 事件唯一 slug,可用於 /v1/events/{id}.json |
parent_id | string | null | null 表示 top-level;非 null 表示掛在近期新聞 anchor 底下的 child |
parent_relation | string | null | child 與 parent 的關係,例如 blocktrend_context / prior_development / same_story_update |
parent_relation_reason | string | null | 為什麼掛在這個 parent 底下 |
title | string | 中文標題 |
url | string | null | 該事件主要來源原文 URL |
date | string | YYYY-MM-DD |
tags | string[] | 分類標籤 |
summary_html | string | null | 兩段式摘要,HTML fragment(含 <p> 標籤),可直接 embed |
discussions_html | string | null | 社群討論列表,HTML fragment(<ul><li> 結構),可直接 embed |
sources | Source[] | 來源陣列,見下表 |
context_links | ContextLink[] | 相關脈絡,不代表 parent / child;例如同一風險模式、同一監管脈絡或背景事件 |
source_count | number | 等於 sources.length |
discussion_count | number | discussions_html 內的條目數 |
discussion_signal_score | number | null | 社群討論的排序訊號。與 discussion_count 分離,採 capped 遞減分數,避免討論數直接推高排序 |
discussion_metadata | DiscussionMetadata[] | 社群討論作者的角色 metadata。這是 shadow mode 欄位,暫時不影響排序;role 可能是 primary_actor / domain_expert / market_participant / media_or_aggregator / unknown |
importance_score | number | null | 事件重要性,0~100 |
display_score | number | null | 含時間衰減的綜合分數,網站排序與 /attention/daily 都用它 |
display_score_baseline | number | null | 時間衰減前的 baseline 分數。display_score = baseline × attentionDecay。給想自己解構分數演化的 consumer 用 |
image | string | null | top-level 事件的封面圖 URL |
added_date | string | null | 該事件加入資料庫的日期 |
last_updated | string | null | 該事件最後一次被更新的 ISO timestamp |
permalink | string | 對應的網站 permalink URL,供 attribution 連結 |
child_count | number | sub-event 數量。Sub-event 自身永遠是 0 |
DiscussionMetadata 子物件
| 欄位 | 型別 | 說明 |
|---|---|---|
url | string | 社群討論原始連結 |
author | string | 連結文字中的作者或帳號名稱 |
handle | string | undefined | X / Twitter URL 可解析時的 handle |
role_text | string | undefined | discussions_html 內括號標註的角色文字 |
role | string | 保守判斷後的角色;判斷不了會是 unknown |
role_confidence | "high" | "medium" | "low" | 規則命中的把握度 |
reason | string | 命中哪個已知帳號、媒體網域或角色文字 |
source | string | 判斷來源;目前為 deterministic |
Source 子物件
| 欄位 | 型別 | 說明 |
|---|---|---|
name | string | 媒體名(CoinDesk / The Block / 等) |
url | string | 原文連結 |
title | string | null | 該則報導的中文記者風格標題 |
added_date | string | null | 該來源加入這個事件的日期 |
media_type | "article" | "video" | "podcast" | 來源型態,預設 article |
ContextLink 子物件
| 欄位 | 型別 | 說明 |
|---|---|---|
id | string | 相關事件 id,可用於 /v1/events/{id}.json |
relation | string | 關係類型,例如 background / same_risk_pattern / same_regulatory_thread |
strength | string | number | null | 關聯強度,通常是 high / medium / low |
reason | string | null | 為什麼相關;這是編輯脈絡,不是同一事件判定 |
版本與穩定性承諾
- v1 不會改現有欄位名稱、不會刪欄位。可能新增欄位(non-breaking)。
- 未來會新增的欄位包含
attention_score、why_ranked、confidence_score、source_quality_score。Consumer 對這些「還沒有的欄位」要 defensive。 - 未列入這份文件的欄位都視為 internal、可能隨時改名或消失,請不要依賴。特別包含:以
_開頭的任何欄位、fetchedFrom、cluster_split_*、chart。 - Breaking change 會升 v2,v1 端點保留至少 6 個月。
- 資料更新頻率:autofarm 每 6 小時掃一次,重大事件會手動 trigger 更新。
注記
/v1/attention/daily.json目前 cap 30 件、/v1/updates.json目前 cap 50 件。實際數字可能調整,不視為穩定承諾。請以 response 的count欄位為準。- 所有 list endpoint 都不分頁。如未來資料量讓全量回應變大,會新增 cursor-based pagination 並保留現有 endpoint 的非分頁行為。
- 單一事件 endpoint 的
children僅在 top-level 事件有值。sub-event 的children永遠是[]。
授權
v1 公開測試。歡迎讀取與引用,請在 consumer 端附上:
- 來源標示:「資料來源:新鮮勢」
- 連結回
permalink欄位的 URL,或回首頁https://feeds.blocktrend.today
轉售、再散布整份 feed、用於閉源模型訓練,請先聯絡 mingnhsu@gmail.com 另行同意。商業條件目前還在規劃中。
回饋
用了覺得哪裡卡、想要哪個 endpoint 沒有,歡迎來信 mingnhsu@gmail.com 或在 X 上 @mnhsuTW。第一批 pilot 使用者的回饋會 直接形塑 v2 的設計。
← 回新鮮勢首頁