README
🚀 免费加密新闻 API
免费加密新闻 API 是一个强大且免费的工具,提供来自 200 多个来源的实时加密新闻。它无需身份验证,提供 150 多个端点,支持多语言翻译,还具备丰富的高级功能和分析工具,能满足开发者和用户对加密新闻数据的各种需求。
🚀 快速开始
使用此 API 非常简单,只需一个 API 调用,就能从 200 多个来源获取实时加密新闻。例如,使用以下 curl 命令获取最新新闻:
curl https://cryptocurrency.cv/api/news
✨ 主要特性
- 免费使用:永久免费,无需 API 密钥。
- 多源聚合:从 130 多个英文媒体和 76 个国际来源聚合新闻。
- 多语言支持:支持 18 种语言的实时翻译。
- AI 功能强大:提供 30 多个免费的 AI 端点,如情感分析、实体提取等。
- 历史存档丰富:拥有 662,000 多篇 2017 - 2025 年的加密新闻文章。
- 多平台集成:提供 13 种语言的 SDK,支持与 ChatGPT、MCP 等集成。
- 实时更新:支持 WebSocket 和 SSE 实时更新。
- 安全可靠:具备完善的认证和安全机制。
📦 安装指南
一键部署
手动安装
git clone https://github.com/nirholas/free-crypto-news.git
cd free-crypto-news
pnpm install
pnpm dev
打开 http://localhost:3000/api/news 即可访问。
环境变量
所有环境变量都是可选的,项目无需配置即可直接运行。
| 变量 | 默认值 | 描述 |
| ---- | ---- | ---- |
| GROQ_API_KEY | - | 启用 18 种语言的自动翻译,可在 console.groq.com/keys 获取免费密钥 |
| FEATURE_TRANSLATION | false | 设置为 true 以启用实时翻译 |
| REDDIT_CLIENT_ID | - | 启用 Reddit 社交信号 |
| REDDIT_CLIENT_SECRET | - | Reddit OAuth 密钥 |
| X_AUTH_TOKEN | - | 通过 XActions 获取 X/Twitter 信号 |
| ARCHIVE_DIR | ./archive | 存档存储路径 |
| API_URL | 生产环境 Vercel | 存档收集的 API 端点 |
功能标志
| 变量 | 默认值 | 描述 |
| ---- | ---- | ---- |
| FEATURE_MARKET | true | 市场数据(CoinGecko、DeFiLlama) |
| FEATURE_ONCHAIN | true | 链上事件(BTC 统计、DEX 交易量) |
| FEATURE_SOCIAL | true | 社交信号(Reddit 情感) |
| FEATURE_PREDICTIONS | true | 预测市场(Polymarket、Manifold) |
| FEATURE_CLUSTERING | true | 故事聚类和去重 |
| FEATURE_RELIABILITY | true | 来源可靠性跟踪 |
💻 使用示例
基础用法
以下是使用 Python 和 JavaScript 获取最新新闻的示例:
Python
import requests
BASE_URL = "https://cryptocurrency.cv"
# 获取最新新闻
news = requests.get(f"{BASE_URL}/api/news?limit=10").json()
for article in news["articles"]:
print(f"• {article['title']} ({article['source']})")
# 获取比特币情感分析
sentiment = requests.get(f"{BASE_URL}/api/ai/sentiment?asset=BTC").json()
print(f"BTC Sentiment: {sentiment['label']} ({sentiment['score']:.2f})")
JavaScript
const BASE_URL = 'https://cryptocurrency.cv';
// 获取最新新闻
const news = await fetch(`${BASE_URL}/api/news?limit=10`).then(r => r.json());
news.articles.forEach(a => console.log(`• ${a.title} (${a.source})`));
// 流式获取实时更新
const events = new EventSource(`${BASE_URL}/api/stream`);
events.onmessage = (e) => console.log('New:', JSON.parse(e.data).title);
高级用法
以下是使用 API 进行分类过滤和翻译的示例:
# 获取机构/风投研究新闻
curl "https://cryptocurrency.cv/api/news?category=institutional"
# 获取西班牙语新闻
curl "https://cryptocurrency.cv/api/news?lang=es"
📚 详细文档
完整的 API 文档和教程可在 cryptocurrency.cv/developers 查看,涵盖了 19 个分步指南,包含 Python、JavaScript、TypeScript 和 cURL 示例,详细介绍了所有 150 多个端点的使用方法。
🔧 技术细节
运行时与性能
- 边缘运行时:140 多个端点针对边缘运行时进行了优化。
- 目标指标:TTFB <200ms(实际约 150ms),FCP <1.8s(实际约 1.2s),LCP <2.5s(实际约 2.0s),CLS <0.1(实际约 0.05),TTI <3.8s(实际约 2.8s)。
缓存策略(4 层)
| 层 | 技术 | TTL | 目的 | | ---- | ---- | ---- | ---- | | L1 - 内存 | 内存映射 | 180 - 300s | 热点数据 | | L2 - Redis | Vercel KV / Upstash | 可变 | 持久缓存 | | L3 - ISR | Next.js | 60 - 300s | 静态再生 | | L4 - CDN | Vercel Edge | 自定义 | 全球分发 |
数据库后端
- 支持的存储:Vercel KV(主要 - 生产环境)、Upstash Redis(替代 - 生产环境)、内存(开发环境)、文件系统(本地测试)。
- 特性:基于文档的操作与版本控制、TTL 支持、批量操作、键模式匹配、统计和监控、内容寻址存储(CAS)。
数据架构
| 模式 | 示例 | 目的 |
| ---- | ---- | ---- |
| feed:{source} | feed:coindesk | 缓存 RSS 源 |
| article:{id} | article:abc123 | 单个文章 |
| user:{userId}:watchlist | user:123:watchlist | 用户关注列表 |
| portfolio:{userId} | portfolio:123 | 用户投资组合 |
| alert:{id} | alert:xyz789 | 价格提醒 |
| apikey:{hash} | apikey:sha256... | API 密钥哈希 |
实时更新
| 方法 | 使用场景 | 实现方式 |
| ---- | ---- | ---- |
| WebSocket | 实时价格、清算 | Binance 流 |
| SSE | 新闻更新、突发新闻提醒 | /api/sse |
| 轮询 | 投资组合更新 | 客户端 |
📄 许可证
本项目采用 MIT 许可证,版权所有 © 2025 nich。
扫码联系在线客服