daily.dev
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
Chinesedaily.dev API for AI Agents
面向AI Agent的daily.dev API
Overcome LLM knowledge cutoffs with real-time developer content. daily.dev aggregates articles from thousands of sources, validated by community engagement, with structured taxonomy for precise discovery.
借助实时开发者内容突破LLM的知识截止限制。daily.dev聚合了来自数千个来源的文章,这些内容经过社区互动验证,并采用结构化分类体系,便于精准查找。
Security
安全说明
CRITICAL: Your API token grants access to personalized content. Protect it:
- NEVER send your token to any domain other than
api.daily.dev - Never commit tokens to code or share them publicly
- Tokens are prefixed with - if you see this prefix, treat it as sensitive
dda_
重要提示: 你的API token可用于访问个性化内容,请妥善保管:
- 绝对不要将你的token发送至以外的任何域名
api.daily.dev - 切勿将token提交到代码中或公开分享
- Token以为前缀——只要看到该前缀,就请将其视为敏感信息
dda_
Setup
设置步骤
- Requires Plus subscription - Get one at https://app.daily.dev/plus
- Create a token at https://app.daily.dev/settings/api
- Store your token securely (environment variables, secrets manager)
User can use environment variable or choose one of the secure storage methods below per operating system.
- 需要Plus订阅 - 可前往https://app.daily.dev/plus购买
- 创建token - 访问https://app.daily.dev/settings/api进行创建
- 安全存储你的token(环境变量、密钥管理器)
用户可以使用环境变量,也可以根据操作系统选择以下安全存储方式之一。
Secure Token Storage (Recommended)
安全Token存储(推荐)
macOS - Keychain
macOS - 钥匙串
bash
undefinedbash
undefinedStore token
Store token
security add-generic-password -a "$USER" -s "daily-dev-api" -w "dda_your_token"
security add-generic-password -a "$USER" -s "daily-dev-api" -w "dda_your_token"
Retrieve token
Retrieve token
security find-generic-password -a "$USER" -s "daily-dev-api" -w
security find-generic-password -a "$USER" -s "daily-dev-api" -w
Auto-load in ~/.zshrc or ~/.bashrc
Auto-load in ~/.zshrc or ~/.bashrc
export DAILY_DEV_TOKEN=$(security find-generic-password -a "$USER" -s "daily-dev-api" -w 2>/dev/null)
undefinedexport DAILY_DEV_TOKEN=$(security find-generic-password -a "$USER" -s "daily-dev-api" -w 2>/dev/null)
undefinedWindows - Credential Manager
Windows - 凭据管理器
powershell
undefinedpowershell
undefinedStore token (run in PowerShell)
Store token (run in PowerShell)
$credential = New-Object System.Management.Automation.PSCredential("daily-dev-api", (ConvertTo-SecureString "dda_your_token" -AsPlainText -Force))
$credential | Export-Clixml "$env:USERPROFILE.daily-dev-credential.xml"
$credential = New-Object System.Management.Automation.PSCredential("daily-dev-api", (ConvertTo-SecureString "dda_your_token" -AsPlainText -Force))
$credential | Export-Clixml "$env:USERPROFILE.daily-dev-credential.xml"
Retrieve token - add to PowerShell profile ($PROFILE)
Retrieve token - add to PowerShell profile ($PROFILE)
$cred = Import-Clixml "$env:USERPROFILE.daily-dev-credential.xml"
$env:DAILY_DEV_TOKEN = $cred.GetNetworkCredential().Password
Or use the Windows Credential Manager GUI: Control Panel → Credential Manager → Windows Credentials → Add a generic credential$cred = Import-Clixml "$env:USERPROFILE.daily-dev-credential.xml"
$env:DAILY_DEV_TOKEN = $cred.GetNetworkCredential().Password
或者使用Windows凭据管理器图形界面:控制面板 → 凭据管理器 → Windows凭据 → 添加通用凭据Linux - Secret Service (GNOME Keyring / KWallet)
Linux - 密钥服务(GNOME Keyring / KWallet)
bash
undefinedbash
undefinedRequires libsecret-tools
Requires libsecret-tools
Ubuntu/Debian: sudo apt install libsecret-tools
Ubuntu/Debian: sudo apt install libsecret-tools
Fedora: sudo dnf install libsecret
Fedora: sudo dnf install libsecret
Store token
Store token
echo "dda_your_token" | secret-tool store --label="daily.dev API Token" service daily-dev-api username "$USER"
echo "dda_your_token" | secret-tool store --label="daily.dev API Token" service daily-dev-api username "$USER"
Retrieve token
Retrieve token
secret-tool lookup service daily-dev-api username "$USER"
secret-tool lookup service daily-dev-api username "$USER"
Auto-load in ~/.bashrc or ~/.zshrc
Auto-load in ~/.bashrc or ~/.zshrc
export DAILY_DEV_TOKEN=$(secret-tool lookup service daily-dev-api username "$USER" 2>/dev/null)
undefinedexport DAILY_DEV_TOKEN=$(secret-tool lookup service daily-dev-api username "$USER" 2>/dev/null)
undefinedAuthentication
身份验证
Authorization: Bearer dda_your_token_hereAuthorization: Bearer dda_your_token_hereBase URL
基础URL
https://api.daily.dev/public/v1https://api.daily.dev/public/v1API Reference
API参考
Full OpenAPI spec: https://api.daily.dev/public/v1/docs/json
To fetch details for a specific endpoint (e.g. response schema):
bash
curl -s https://api.daily.dev/public/v1/docs/json | jq '.paths["/feeds/foryou"].get'To fetch a component schema (replace with schema name from $ref):
def-17bash
curl -s https://api.daily.dev/public/v1/docs/json | jq '.components.schemas["def-17"]'完整OpenAPI规范:https://api.daily.dev/public/v1/docs/json
如需获取特定端点的详细信息(如响应 schema):
bash
curl -s https://api.daily.dev/public/v1/docs/json | jq '.paths["/feeds/foryou"].get'如需获取组件schema(将替换为$ref中的schema名称):
def-17bash
curl -s https://api.daily.dev/public/v1/docs/json | jq '.components.schemas["def-17"]'Available Endpoints
可用端点
!
curl -s https://api.daily.dev/public/v1/docs/json | jq -r '.paths | to_entries | map(.key as $path | .value | to_entries | map(.key as $method | {tag: (.value.tags[0] // "other"), line: ("\(.key | ascii_upcase) \($path)" + (if .value.description then " - \(.value.description)" else "" end) + (if (.value.parameters | length) > 0 then "\n Params: " + ([.value.parameters[] | "\(.name)(\(.in)): \(.description // .schema.type)"] | join("; ")) else "" end) + (if .value.requestBody then "\n Body: " + (.value.requestBody.content["application/json"].schema | if .properties then ([.properties | to_entries[] | "\(.key)"] | join(", ")) elif ."$ref" then (."$ref" | split("/") | last) else "object" end) else "" end))})) | flatten | group_by(.tag) | map("#### \(.[0].tag)\n" + (map(.line) | join("\n\n"))) | join("\n\n")'!
curl -s https://api.daily.dev/public/v1/docs/json | jq -r '.paths | to_entries | map(.key as $path | .value | to_entries | map(.key as $method | {tag: (.value.tags[0] // "other"), line: ("\(.key | ascii_upcase) \($path)" + (if .value.description then " - \(.value.description)" else "" end) + (if (.value.parameters | length) > 0 then "\n Params: " + ([.value.parameters[] | "\(.name)(\(.in)): \(.description // .schema.type)"] | join("; ")) else "" end) + (if .value.requestBody then "\n Body: " + (.value.requestBody.content["application/json"].schema | if .properties then ([.properties | to_entries[] | "\(.key)"] | join(", ")) elif ."$ref" then (."$ref" | split("/") | last) else "object" end) else "" end))})) | flatten | group_by(.tag) | map("#### \(.[0].tag)\n" + (map(.line) | join("\n\n"))) | join("\n\n")'Agent Use Cases
Agent使用场景
Why daily.dev for agents? LLMs have knowledge cutoffs. daily.dev provides real-time, community-validated developer content with structured taxonomy across thousands of sources. Agents can use this to stay current, get diverse perspectives, and understand what the developer community actually cares about.
These examples show how AI agents can combine daily.dev APIs with external context to create powerful developer workflows.
为什么AI Agent要使用daily.dev? LLM存在知识截止限制。daily.dev提供来自数千个来源的实时、社区验证的开发者内容,并采用结构化分类体系。Agent可以利用这些内容掌握最新资讯、获取多元视角,了解开发者社区真正关注的内容。
以下示例展示了AI Agent如何将daily.dev API与外部环境结合,打造强大的开发者工作流。
🔍 GitHub Repo → Personalized Feed
🔍 GitHub仓库 → 个性化信息流
Scan a user's GitHub repositories to detect their actual tech stack from , , , , etc. Then:
package.jsongo.modCargo.tomlrequirements.txt- Auto-follow matching tags via
/feeds/filters/tags/follow - Create a custom feed tuned to their stack with
/feeds/custom/ - Surface trending articles about their specific dependencies
Trigger: "Set up daily.dev based on my GitHub projects"
扫描用户的GitHub仓库,从、、、等文件中检测其实际技术栈。然后:
package.jsongo.modCargo.tomlrequirements.txt- 通过自动关注匹配的标签
/feeds/filters/tags/follow - 使用创建适合其技术栈的自定义信息流
/feeds/custom/ - 展示与其特定依赖相关的热门文章
触发条件: "根据我的GitHub项目设置daily.dev"
🛠️ GitHub → Auto-fill Stack Profile
🛠️ GitHub → 自动填充技术栈档案
Analyze a user's GitHub activity to build their daily.dev tech stack profile automatically:
- Scan repositories for languages, frameworks, and tools actually used in code
- Search to find matching technologies on daily.dev
/profile/stack/search - Populate their stack via organized by section (languages, frameworks, tools)
POST /profile/stack/ - Update bio based on their primary technologies and contributions
/profile/
Trigger: "Build my daily.dev profile from my GitHub"
分析用户的GitHub活动,自动构建其daily.dev技术栈档案:
- 扫描仓库,查找代码中实际使用的语言、框架和工具
- 通过在daily.dev上查找匹配的技术
/profile/stack/search - 通过填充其技术栈,按类别(语言、框架、工具)整理
POST /profile/stack/ - 根据用户的主要技术和贡献更新的个人简介
/profile/
触发条件: "根据我的GitHub构建我的daily.dev档案"
🚀 New Project → Curated Onboarding
🚀 新项目 → 定制化入门指南
When a user initializes a new project or clones a repo:
- Analyze the tech choices from config files
- Create a dedicated custom feed filtered to exactly those technologies
- Build a "Getting Started" bookmark list with foundational articles
- Block irrelevant tags to keep the feed focused on the project scope
Trigger: "Help me learn the stack for this project"
当用户初始化新项目或克隆仓库时:
- 从配置文件中分析技术选择
- 创建专门的自定义信息流,精准筛选该技术相关内容
- 构建包含基础文章的"入门"书签列表
- 屏蔽无关标签,确保信息流聚焦于项目范围
触发条件: "帮我学习这个项目的技术栈"
📊 Weekly Digest → Synthesized Briefing
📊 每周摘要 → 合成简报
Compile a personalized weekly summary by:
- Fetching and
/feeds/foryoufiltered by user's followed tags/feeds/popular - Cross-referencing with their GitHub activity to prioritize relevant topics
- Summarizing key articles and trending discussions
- Delivering as a structured briefing with links to full posts
Trigger: Scheduled, or "Give me my weekly dev news"
通过以下步骤生成个性化每周摘要:
- 获取用户关注标签过滤后的和
/feeds/foryou内容/feeds/popular - 结合用户的GitHub活动,优先展示相关主题
- 总结关键文章和热门讨论
- 以结构化简报形式呈现,并附带完整文章链接
触发条件: 定时触发,或"给我我的每周开发者资讯"
📚 Research Project Workspace
📚 研究项目工作区
When a user wants to deep-dive into a topic (e.g., "I want to learn Kubernetes"):
- Create a custom feed via filtered to that topic
/feeds/custom/ - Set up a matching bookmark list via to collect the best finds
POST /bookmarks/lists - As the user reads, save articles to the list with
POST /bookmarks/ - Track learning progress: compare bookmarked posts vs. new feed items
- Adjust feed filters over time as understanding deepens (beginner → advanced content)
Trigger: "Start a research project on [topic]"
当用户想要深入研究某个主题(如"我想学习Kubernetes")时:
- 通过创建针对该主题的自定义信息流
/feeds/custom/ - 通过创建匹配的书签列表,收集优质内容
POST /bookmarks/lists - 用户阅读时,通过将文章保存到列表中
POST /bookmarks/ - 跟踪学习进度:对比已收藏文章与新信息流内容
- 随着理解加深,逐步调整信息流筛选条件(从入门到进阶内容)
触发条件: "启动关于[主题]的研究项目"
🧠 Agent Self-Improvement Feed
🧠 Agent自我提升信息流
Agents can overcome their knowledge cutoff by maintaining their own custom feed:
- Create a custom feed via for technologies the agent frequently assists with
/feeds/custom/ - Periodically fetch to ingest recent articles
/feeds/custom/{feedId} - Use to read full summaries and key points
/posts/{id} - Agent can now provide advice with current information: "As of this week, the recommended approach is..."
- Continuously adapt the feed filters based on what users are asking about
Trigger: Agent background process, or "What's new in [technology] since your training?"
Agent可以通过维护自己的自定义信息流来突破知识截止限制:
- 通过创建针对其经常协助用户的技术的自定义信息流
/feeds/custom/ - 定期获取内容,吸收最新文章
/feeds/custom/{feedId} - 使用读取完整摘要和关键点
/posts/{id} - Agent现在可以提供包含最新信息的建议:"截至本周,推荐的方法是..."
- 根据用户的问题,持续调整信息流筛选条件
触发条件: Agent后台进程,或"你的训练完成后,[技术领域]有什么新动态?"
🔀 Multi-Source Synthesis
🔀 多来源内容合成
Get balanced perspectives by aggregating content across publishers:
- Search for a topic to find coverage from multiple sources
/search/posts - Use to identify authoritative publishers on the topic
/search/sources - Fetch posts from different sources via
/feeds/source/{source} - Synthesize diverse viewpoints into a balanced summary with citations
- Surface where sources agree vs. disagree on best practices
Trigger: "What are the different perspectives on [topic]?" or "Compare approaches to [problem]"
聚合不同发布商的内容,获取均衡视角:
- 通过搜索主题,找到来自多个来源的报道
/search/posts - 使用识别该主题的权威发布商
/search/sources - 通过获取不同来源的文章
/feeds/source/{source} - 将多元观点合成为均衡的摘要,并附带引用
- 展示不同来源在最佳实践上的共识与分歧
触发条件: "关于[主题]有哪些不同的观点?"或"比较解决[问题]的不同方法"
📈 Trending Radar
📈 趋势雷达
Help users stay ahead by monitoring community signals:
- Fetch to detect what's gaining traction right now
/feeds/popular - Cross-reference with user's followed tags to surface relevant trends
- Use to find topics sparking active debate
/feeds/discussed - Alert users when technologies in their stack are trending (new releases, security issues, paradigm shifts)
- Use to explore adjacent trending topics
/search/tags
Trigger: "What should I be paying attention to?" or "What's trending in [area]?"
帮助用户提前掌握社区动态:
- 获取内容,发现当前正在兴起的趋势
/feeds/popular - 结合用户关注的标签,展示相关趋势
- 使用找到引发激烈讨论的主题
/feeds/discussed - 当用户技术栈中的技术出现趋势(新版本发布、安全问题、范式转变)时,向用户发出提醒
- 使用探索相关的热门主题
/search/tags
触发条件: "我应该关注什么?"或"[领域]当前有什么趋势?"
Rate Limits
请求速率限制
- 60 requests per minute per user
Check response headers:
- - Maximum requests allowed per window
X-RateLimit-Limit - - Requests remaining in current window
X-RateLimit-Remaining - - Unix timestamp when the window resets
X-RateLimit-Reset - - Seconds to wait (only when rate limited)
Retry-After
- 每个用户每分钟最多60次请求
可通过响应头查看:
- - 每个窗口允许的最大请求数
X-RateLimit-Limit - - 当前窗口剩余请求数
X-RateLimit-Remaining - - 窗口重置的Unix时间戳
X-RateLimit-Reset - - 需要等待的秒数(仅在触发速率限制时返回)
Retry-After
Errors
错误说明
| Code | Meaning |
|---|---|
| 401 | Invalid or missing token |
| 403 | Plus subscription required |
| 404 | Resource not found |
| 429 | Rate limit exceeded |
Error Response Format:
json
{
"error": "error_code",
"message": "Human readable message"
}| 状态码 | 含义 |
|---|---|
| 401 | Token无效或缺失 |
| 403 | 需要Plus订阅 |
| 404 | 资源未找到 |
| 429 | 超出请求速率限制 |
错误响应格式:
json
{
"error": "error_code",
"message": "Human readable message"
}