# Render a Plan home in one request

> Build a Dailybot Plan home screen from a single call: counts, your due work, recent boards, goals, projects, attention items and activity, with ETag caching.

Language: en
Canonical: https://www.dailybot.com/developers/plan/recipes/home-in-one-request
Markdown: send header `Accept: text/markdown` on any URL to receive Markdown instead of HTML.
Last Updated: 2026-09-25

---

> **Beta** — Plan is in beta. Everything under `/plan` in the web app, the CLI and agent skill commands for projects, goals, boards and tasks, and the `/v1/plan/` public API may change before general availability. Want to try it with your team? Write to **support@dailybot.com**.

A home screen usually needs half a dozen lists: counts, your due work, recent boards, goals, projects, what needs attention, recent activity. `GET /v1/plan/pulse/` returns all of them in **one request**, and you opt into the heavier parts with `include`.

<h2 id="call">The call</h2>

```bash
curl -sS "https://api.dailybot.com/v1/plan/pulse/?include=projects,attention,activity,goal_progress" \
  -H "Authorization: Bearer $DAILYBOT_TOKEN"
```

From the CLI (next release), the same home with all four bands:

```bash
dailybot plan tasks status --json
```

<h2 id="always">What you always get</h2>

| Field | Use it for |
|---|---|
| `counts` | Integer tiles: `open_tasks`, `overdue_tasks`, `blocked_tasks`, `active_boards`, `active_projects`, `active_goals`, `open_tasks_on_goal_linked_projects` |
| `my_preview` | Your `overdue` and `due_today` counts and your `top_tasks` |
| `recent_boards` · `featured_boards` | Board cards to jump back into |
| `goals_preview` | Goals with their period and status |
| `timeline_teaser` | What is due soon in a short window |
| `agent_summary` | Boards where agents act and approvals waiting |
| `unread_count` | Your unread inbox items |
| `scope` | Always `viewer_visible`: everything counts only what **you** can see |

<h2 id="bands">Optional bands</h2>

Each `include` token adds one band. A band you do not ask for is absent and costs nothing:

| Token | Adds |
|---|---|
| `projects` | `projects_preview`: visible live projects with progress and their newest update |
| `attention` | `attention`: your open work that is overdue or blocked |
| `activity` | `recent_activity`: the newest events, in the same shape as `GET /v1/plan/activity/` |
| `goal_progress` | `progress` and `projects` on each `goals_preview` row |

An unknown token is `400 invalid_filter_value`.

<h2 id="tiles">Every tile names its query</h2>

When a person clicks a tile, open the list that reproduces it:

| Tile | List query |
|---|---|
| Open | `GET /v1/plan/tasks/?state=open` |
| Overdue | `GET /v1/plan/tasks/?due_before=<today>&state=open` |
| Blocked | `GET /v1/plan/tasks/?blocked=true&state=open` |

The numbers match because the tile and the list apply the same rules to the same visible tasks. The counts are always integers across what you can see; there is no per-person breakdown.

<h2 id="cache">Cache it with ETag</h2>

The response carries an `ETag`. Send it back in `If-None-Match` on the next refresh; if nothing changed, you get `304 Not Modified` and keep what you have:

```bash
curl -sS -i "https://api.dailybot.com/v1/plan/pulse/?include=projects,attention,activity,goal_progress" \
  -H "Authorization: Bearer $DAILYBOT_TOKEN" \
  -H "If-None-Match: $ETAG"
```

<h2 id="modes">Home mode and board-health mode</h2>

The same endpoint has a second mode. Add `group_by` (for example `group_by=state`) and it returns a board-health aggregate instead: totals, throughput per week and cycle time. Without `group_by` you always get the home screen described here. `include` applies to home mode only.

<h2 id="reference">Reference</h2>

- [`GET /v1/plan/pulse/`](/developers/api/plan-home#plan-pulse)
- [`GET /v1/plan/activity/`](/developers/api/plan-home#plan-activity-list)
- [`GET /v1/plan/me/tasks/`](/developers/api/plan-home#plan-me-tasks-list)

---

## Developer portal navigation

**Getting Started**

- [Overview](/developers)
- [Quick start](/developers/getting-started)
- [Authentication](/developers/authentication)

**API Reference**

- [API Overview](/developers/api)
- [Users](/developers/api/users)
- [Organization](/developers/api/organization)
- [Teams](/developers/api/teams)
- [Invitations](/developers/api/invitations)
- [Check-ins](/developers/api/check-ins)
- [Forms](/developers/api/forms)
- [Labels](/developers/api/labels)
- [Report channels](/developers/api/report-channels)
- [Templates](/developers/api/templates)
- [Kudos](/developers/api/kudos)
- [Mood tracking](/developers/api/mood)
- [Important dates](/developers/api/important-dates)
- [Messaging](/developers/api/messaging)
- [Automations](/developers/api/workflows)
- [Webhooks](/developers/api/webhooks)
- [Commands platform](/developers/api/commands-platform)
- [Agents](/developers/api/agents)
- [OAuth2](/developers/api/oauth2)
- [Integrations](/developers/api/integrations)
- [CLI](/developers/api/cli)
- [Plan · Projects](/developers/api/plan-projects)
- [Plan · Goals](/developers/api/plan-goals)
- [Plan · Boards](/developers/api/plan-boards)
- [Plan · Tasks](/developers/api/plan-tasks)
- [Plan · Comments & files](/developers/api/plan-collaboration)
- [Plan · Home & search](/developers/api/plan-home)
- [Plan · Notifications & reports](/developers/api/plan-notifications)

**Dailybot Plan**

- [Overview](/developers/plan)
- [Concepts](/developers/plan/concepts)
- [Quickstart](/developers/plan/quickstart)
- [Authentication & scopes](/developers/plan/authentication)
- [Agents on Plan](/developers/plan/agents)
- [Conventions](/developers/plan/conventions)
- [Errors](/developers/plan/errors)
- [CLI for Plan](/developers/plan/cli)
- [Agent skill](/developers/plan/agent-skill)
- [Recipe: live board](/developers/plan/recipes/board-live-updates)
- [Recipe: home in one request](/developers/plan/recipes/home-in-one-request) (this page)
- [Recipe: bulk create](/developers/plan/recipes/bulk-create)
- [Recipe: move on PR merge](/developers/plan/recipes/move-on-pr-merge)
- [Recipe: goal progress](/developers/plan/recipes/goal-progress)
- [Recipe: webhooks](/developers/plan/recipes/webhooks)

**API guides**

- [Errors & Status Codes](/developers/errors)
- [Rate Limits](/developers/rate-limits)
- [Conventions](/developers/conventions)
- [API Changelog](/developers/api-changelog)
- [Recipes](/developers/recipes)

**Developer Features**

- [Custom commands](/developers/custom-commands)
- [Serverless commands](/developers/serverless)
- [Webhooks & events](/developers/webhooks)
- [Automation API trigger](/developers/workflow-trigger)
- [Activity API](/developers/activity-api)

**CLI**

- [Overview](/developers/cli)
- [Authentication](/developers/cli-authentication)
- [Command reference](/developers/cli-reference)
- [CI/CD recipes](/developers/cli-ci-cd)
- [Configuration](/developers/cli-configuration)
- [Troubleshooting](/developers/cli-troubleshooting)

**Agent Skill**

- [Overview](/developers/agent-skill)
- [Skills catalog](/skills)

---

## Site navigation

**Product:**
- [Home](/)
- [Product](/product)
- [Pricing](/pricing)
- [Enterprise](/enterprise)
- [Integrations](/integrations)
- [Templates](/templates)

**Resources:**
- [Blog](/blog)
- [Academy](/academy)
- [Changelog](/changelog)
- [Help Center](/help)
- [Developers](/developers)
- [Agents](/agents)

**Company:**
- [About](/about)
- [Careers](/careers)
- [Security](/security)
- [Contact Sales](/demo)

**Connect:**
- [LinkedIn](https://www.linkedin.com/company/dailybot/)
- [X/Twitter](https://twitter.com/dailybot)
- [GitHub](https://github.com/Dailybot-Inc)
- [YouTube](https://www.youtube.com/channel/UC3uM9V52vwX7e3vQpCc4qvA)

