canonical: https://jentic.com/apis/nirvanahq.com/nirvanahq

# Nirvanahq Nirvana Task API

The Nirvana Task API reads and updates tasks and projects in a Nirvana GTD account, using Getting Things Done states such as inbox, next, waiting, scheduled, someday, later, and logbook. It filters tasks by state, type, tags, keyword, starred Focus status, overdue status, and due date range, and it creates and updates tasks with fields like duedate, startdate, waitingfor, energy, and etime. Read-only endpoints return tag usage counts, per-state task counts, and a server-side analytics snapshot of system health for weekly reviews. The API is in public beta.

## For AI agents

Capture tasks into a Nirvana inbox, query tasks by GTD state, tags, keyword, and due date, move tasks between states, and read counts and system-health analytics for a weekly review.

## Scope

Does not manage calendars, team assignments, recurring task templates, or file attachments. Use for capturing, querying, and updating tasks and projects in a personal Nirvana GTD account only.

## Capabilities

- Capture a task or project with name, note, tags, duedate, energy, and etime, defaulting to the inbox state
- Query tasks by GTD state, type, tags, keyword, starred, overdue, and due_before or due_after dates
- Move a task between states such as next, waiting, scheduled, and logbook, with completed set automatically on logbook
- Record who a task is waiting on with waitingfor when the state is waiting
- List tags and areas with their task usage counts before tagging
- Read per-state task counts and an analytics snapshot covering velocity, dormancy, inbox age, and project health

## Use cases

### Agent task capture through Jentic

A personal assistant agent turns requests from chat or email into Nirvana tasks. It searches Jentic for 'create a task in Nirvana', receives the v1CreateTask schema, and posts a name with optional tags, duedate, and energy. Because the spec enforces combination rules, such as scheduled requiring startdate, the agent sets state and dates together in one valid request.

Example prompt: Search Jentic for 'create a task in Nirvana', then call POST `/v1/tasks` with name='Renew passport', tags=['errands'], duedate='2026-12-01', energy=1

### Weekly review assistant

The GTD weekly review is about spotting stalled work. GET `/v1/analytics` returns a server-side snapshot covering tasks captured and completed in the last 7 and 30 days, tasks untouched for 30, 60, or 90 days, inbox age, waiting-for aging, and project health, and GET `/v1/counts` gives per-state totals, so an assistant can prepare a review summary before you sit down.

Example prompt: Call GET `/v1/analytics` and GET `/v1/counts`, then summarise inbox age, dormant tasks, and waiting-for items older than 30 days

### Context lists and focus planning

Planning the day means pulling the right slice of next actions. GET `/v1/tasks` accepts state=next with comma-separated tags using AND logic, starred=true for the Focus list, and limit and offset for paging up to 200 results at a time, so an assistant can assemble a short list for a given context.

Example prompt: Call GET `/v1/tasks` with state='next', tags='office', limit=20 and return the task names sorted by energy

### Closing the loop on delegated work

Delegated items need follow-up. PATCH `/v1/tasks/{id}` changes only the fields you send, so an assistant can move a task to waiting with a waitingfor value, and later to logbook, which sets completed to today automatically.

Example prompt: Call PATCH `/v1/tasks/{id}` with state='waiting' and waitingfor='Sam', then later PATCH the same id with state='logbook'

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| GET | `/v1/tasks` | Query tasks |
| POST | `/v1/tasks` | Create a task or project |
| PATCH | `/v1/tasks/{id}` | Update a task |
| GET | `/v1/tags` | List tags with usage counts |
| GET | `/v1/analytics` | Get GTD system health analytics |
| GET | `/v1/counts` | Get task counts per GTD state |

## Key resources

- **Tasks** — Query tasks by state, type, tags, keyword, and dates; create tasks and projects; update fields and state by id
- **Tags** — List tags and areas with task usage counts
- **Counts and analytics** — Per-state task counts and a GTD system-health snapshot

## AI readiness

This API is usable in Jentic One now. Its AI-readiness score against Jentic's framework shows where it stands today and where improvements would make it even easier for agents to use.

- **Score:** 69 / 100
- **Maturity:** AI-Aware
- **Dimensions:**
  - Foundational Compliance: 93 / 100
  - Developer Experience & Jentic Compatibility: 65 / 100
  - AI-Readiness & Agent Experience: 51 / 100
  - Agent Usability: 94 / 100
  - Security: 60 / 100
  - AI Discoverability: 81 / 100
- **View full report:** https://jentic.com/apis/nirvanahq.com/nirvanahq/scorecard
- **How the score is calculated:** https://docs.jentic.com/reference/api-readiness-framework/overview/
- **More about the dimensions:** https://docs.jentic.com/reference/api-readiness-framework/specification/#dimensional-model-overview

### Score it yourself

Every API in the directory is allowlisted, so you can re-score it with no key required.

- **Score your own API:** https://jentic.com/scorecard.md
- **Scoring CLI agent skill:** https://github.com/jentic/jentic-api-scorecard/blob/main/skills/jentic-api-scorecard/SKILL.md

```sh
npx @jentic/api-scorecard-cli score <openapi-url>
```

## Why Jentic

- **Setup:** Wiring Nirvana by hand means handling its bearer token and learning the state rules, such as scheduled needing startdate and waitingfor only with waiting, before your first write succeeds. Through Jentic you install once, import Nirvana from the API Directory, store the token once, and your agent calls it.
- **Permission scoping:** Nirvana's read and write operations are separate paths and methods, so a rule can limit your agent to the ones it needs, such as reading tasks and analytics. You choose the operations it may call, so changes like PATCH `/v1/tasks/{id}`, which can move a task to trash, are not included unless you add them.
- **Credential handling:** Your Nirvana auth token is stored once, encrypted, by your own Jentic One instance and injected at execution time. It never enters the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'create a task in Nirvana' or 'list next actions', and Jentic returns the matching Nirvana operation with its input schema so the agent calls the right endpoint without browsing the reference docs.

## Related APIs

- **Asana API** — Team task and project management with workspaces and sections
- **Trello API** — Board and card based task tracking
- **Calendly API** — Scheduling API whose booked meetings can become Nirvana follow-up tasks

## FAQ

### What authentication does the Nirvana Task API use?

Per its OpenAPI spec, the Nirvana Task API uses a bearer token, sent as `Authorization: Bearer <nirvana-auth-token>`. Through Jentic, the token is stored encrypted by your own Jentic One instance and injected at call time, so it stays out of the agent's prompt and logs.

### Can I delete tasks with the Nirvana Task API?

There is no DELETE operation in the spec. To discard a task, PATCH `/v1/tasks/{id}` with state set to trash; to complete one, set state to logbook, which sets completed to today.

### What are the rate limits for the Nirvana Task API?

The OpenAPI spec does not specify rate limits. Check https://nirvanahq.com for current limits. Task queries return at most 200 results per page through the limit parameter.

### How do I add a task to Nirvana through Jentic?

Install Jentic One with `curl -fsSL https://raw.githubusercontent.com/jentic/jentic-one/main/tools/install.sh | sh`, add Nirvana from the Jentic API Directory, and store your Nirvana auth token. Your agent searches for 'create a task in Nirvana' and calls POST `/v1/tasks` with a name; the task lands in the inbox unless you set another state. To run it on your own infrastructure, install Jentic One from its GitHub repo.

### Can I limit what my agent is allowed to do with the Nirvana Task API?

Yes. For a review assistant, write a rule that allows GET `/v1/tasks`, GET `/v1/counts`, and GET `/v1/analytics`, so it can read and summarise your system but cannot add or change tasks. For a capture assistant, allow POST `/v1/tasks` and leave PATCH out, so it can add to the inbox but not move or trash existing items.

### Is there a Nirvana MCP server?

You don't need an MCP server to give your agent the Nirvana Task API. Jentic connects it directly from the API Directory: import it, store your token once, and your agent calls it.

### Can the Nirvana Task API change recurring tasks?

No. The spec marks the recurring state as read-only: recurring task templates are managed by the Nirvana app and cannot be created or modified through the API.
