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.
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 [email protected].
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.
The call
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:
dailybot plan tasks status --json
What you always get
| 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 |
Optional bands
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.
Every tile names its query
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.
Cache it with ETag
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:
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"
Home mode and board-health mode
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.