> ## Documentation Index
> Fetch the complete documentation index at: https://docs.daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

---
title: "Public API"
url: https://docs.daily.dev/public-api/
description: "Access your daily.dev feed programmatically with the Public API. Build integrations with AI coding assistants, automate workflows, and access personalized developer content via REST API."
lastUpdated: "2026-04-29T11:53:47+03:00"
---

The daily.dev Public API is a REST API that enables AI agents, automation tools, and custom integrations to access personalized developer content. Whether you're building with Claude Code, OpenClaw, or creating your own integration, the API provides programmatic access to your feeds, bookmarks, posts, and more.

:::info Plus Required
The Public API requires an active [Plus subscription](https://app.daily.dev/plus).
:::

## Getting started
### Generate a personal access token

1. Go to [API Settings](https://app.daily.dev/settings/api)
2. Click "Generate new token"
3. Give your token a descriptive name (e.g., "My AI Agent")
4. Choose an expiration period (never, 30 days, 90 days, or 1 year)
5. Copy and securely store your token - it will only be shown once

### Security best practices

- Never commit tokens to version control
- Store tokens in environment variables or secure vaults
- Revoke tokens you no longer need from the settings page

## Authentication

All API requests require Bearer token authentication.

**Header format:**

```
Authorization: Bearer <your-token>
```

**Example request:**

```bash
curl -H "Authorization: Bearer your-token-here" \
  https://api.daily.dev/public/v1/feeds
```

**Error responses:**

- `401 Unauthorized` - Missing or invalid token

## Base URL & API reference

- **Base URL:** `https://api.daily.dev/public/v1`
- **OpenAPI Specification (JSON):** [https://api.daily.dev/public/v1/docs/json](https://api.daily.dev/public/v1/docs/json)
- **OpenAPI Specification (YAML):** [https://api.daily.dev/public/v1/docs/yaml](https://api.daily.dev/public/v1/docs/yaml)

The OpenAPI spec provides complete endpoint documentation including request/response schemas, and can be imported into tools like Postman or used to generate client libraries.

## Available endpoints
### Feeds

Access your personalized content streams. Get your "For You" feed tailored to your interests, browse popular posts across the platform, discover content by specific tags or sources, or see what's generating the most discussion in the community.

- Get your personalized "For You" feed
- Browse trending and popular posts
- Filter content by tags or sources
- View most discussed posts

### Posts

Dive deeper into individual articles. Retrieve full details about any post including its summary, engagement metrics, and metadata. Access the discussion by fetching comments and replies.

- Get detailed information about any post
- Fetch comments and discussions

### Search

Find exactly what you're looking for. Search across posts to discover articles on specific topics, find tags to follow, or discover new content sources to add to your feed.

- Search posts by keywords
- Find tags matching your query
- Discover content sources

### Bookmarks

Access your saved content library. Retrieve bookmarks you've saved, search through them, and organize them into folders for easy access later.

- List your saved bookmarks
- Search within your bookmarks
- Manage Bookmark Folders (create, list, delete)
- Add or remove bookmarks programmatically

### Custom Feeds

Build laser-focused content streams for specific topics or workflows. Create Custom Feeds with specific filters, set engagement thresholds, and configure advanced content settings to surface exactly the content you need.

- List and view your Custom Feeds
- Create new Custom Feeds with specific criteria
- Update or delete existing feeds
- Configure advanced settings like minimum upvotes or view counts

### Feed filters

Fine-tune what appears in your feeds. Manage the tags, sources, and content types that appear in your personalized or Custom Feeds. Add or remove filters to shape your content experience.

- View current filter settings
- Add tags or sources to follow
- Block unwanted tags or sources
- Apply filters to specific feeds or globally

### Notifications

Stay on top of your daily.dev activity. Access your notification feed, check unread counts, and mark notifications as read.

- List your notifications
- Get unread notification count
- Mark notifications as read

### Profile

Access and update your daily.dev profile information programmatically.

- Get your profile details
- Update profile information

### Experiences

Manage your professional history including work experience, education, projects, certifications, volunteering, and open source contributions.

- List your experiences (filterable by type)
- Get details of a specific experience
- Add new experiences to your profile
- Update existing experiences
- Remove experiences

**Experience Types:** `work`, `education`, `project`, `certification`, `volunteering`, `opensource`

### Tech stack

Showcase the tools you use. Manage your technology stack that appears on your profile - add tools, update descriptions, reorder items, and search for tools to add.

- View your current tech stack
- Add new tools to your stack
- Update or remove existing items
- Search available tools
- Reorder your stack display

For complete endpoint details, parameters, and response schemas, see the [OpenAPI specification](https://api.daily.dev/public/v1/docs/json).

## Rate limiting

The API implements two layers of rate limiting:

| Limit Type | Rate | Purpose |
| --- | --- | --- |
| IP-based | 300 requests/minute | Protection against abuse |
| User-based | 60 requests/minute | Fair usage quota |

**Rate limit headers in responses:**

- `x-ratelimit-limit` - Your rate limit ceiling
- `x-ratelimit-remaining` - Requests remaining in current window
- `x-ratelimit-reset` - When the rate limit resets

**When rate limited (HTTP 429):**

- `retry-after` header indicates seconds to wait
- Back off and retry after the indicated time

## Response format

All responses use JSON with a consistent structure.

**Paginated responses:**

```json
{
  "data": [...],
  "pagination": {
    "hasNextPage": true,
    "endCursor": "cursor-string"
  }
}
```

**Pagination:** Use cursor-based pagination by passing the `endCursor` value as the `cursor` parameter in subsequent requests.

## Skills (AI agent integrations)

The daily.dev plugin ships a set of **Skills** for your AI coding agent. Once you install the plugin in Claude Code, Cursor, Codex, or OpenClaw, the following skills are available:

- **`/daily.dev`** – interact with your personalized feed, bookmarks, Custom Feeds, and profile through the Public API. Useful for pulling your reading list into your editor, saving links, or running your own Custom Feeds.
- **`/daily-dev-ask`** – WebSearch for developers, grounded in daily.dev's community-curated articles. Ask a technical question and the agent searches the corpus of articles read and upvoted by the daily.dev community, then returns an answer with linked sources. Try it on the dedicated page at [https://app.daily.dev/agents/ask](https://app.daily.dev/agents/ask).

Both skills require an active [Plus subscription](https://app.daily.dev/plus) and a Personal Access Token (see [Getting Started](#getting-started) above).

:::info Why daily-dev-ask vs. generic web search?
`daily-dev-ask` ranks results by developer upvotes (not SEO), restricts answers to community-vetted developer articles, and always grounds responses with links you can open. It's designed as a focused alternative to general web search when you want trustworthy, technical answers.
:::

### Claude code

Add the daily.dev plugin to Claude Code:

```bash
claude plugin marketplace add https://github.com/dailydotdev/daily.git
claude plugin install daily.dev@daily.dev
claude "/daily.dev setup"
```

After installation you can invoke either skill from your prompt:

- `/daily.dev` – interact with your feed, bookmarks, and Custom Feeds.
- `/daily-dev-ask your question here` – search daily.dev's article corpus and get a sourced answer.

### Openclaw

Copy one of these instructions to your agent to install the matching skill:

```
Install the daily-dev skill from clawdhub and explain my new superpowers
```

```
Install daily-dev-ask from clawhub and ask about my topic
```

The skills are available on ClawHub at [https://clawhub.ai/idoshamun/daily-dev](https://clawhub.ai/idoshamun/daily-dev).

### Codex

Install the skills in Codex:

```
$skill-installer install the daily.dev skill from https://github.com/dailydotdev/daily.git
```

```
$skill-installer install the daily-dev-ask skill from https://github.com/dailydotdev/daily.git
```

Restart Codex after installation, then use `$daily.dev` to interact with your feed or `$daily-dev-ask` to search daily.dev's article corpus.

### Cursor

Add daily.dev as a remote rule in Cursor:

1. Open Cursor Settings → Rules (Cmd+Shift+J on Mac, Ctrl+Shift+J on Windows/Linux)
2. Click "Add Rule" → "Remote Rule (Github)"
3. Enter the repository URL: `https://github.com/dailydotdev/daily.git`

In Agent chat, use `/daily.dev` to interact with your feed or `/daily-dev-ask` to search daily.dev's article corpus.

### Direct API integration

For custom integrations, use the OpenAPI specification to generate client libraries or make direct HTTP requests. The specification is available at:

- JSON: [https://api.daily.dev/public/v1/docs/json](https://api.daily.dev/public/v1/docs/json)
- YAML: [https://api.daily.dev/public/v1/docs/yaml](https://api.daily.dev/public/v1/docs/yaml)

## Example: Fetching your feed

```bash
# Get your personalized feed
curl -H "Authorization: Bearer $DAILY_DEV_TOKEN" \
  "https://api.daily.dev/public/v1/feeds"

# Get the next page using cursor
curl -H "Authorization: Bearer $DAILY_DEV_TOKEN" \
  "https://api.daily.dev/public/v1/feeds?cursor=cursor-from-previous-response"
```

## Related documentation

- [Plus Overview](/plus-overview/) - Learn about all Plus features
- [Custom Feeds](/custom-feeds/) - Create feeds to access via API