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

# Tasks you have already triaged

> Returns the tasks that arrived in the Inbox and have since been placed, scheduled, completed or archived, most recently triaged first, with the instant each one left. Use it to look back at what an Inbox held, or to find something filed by mistake.

A task created straight into a project or an area never appears here: it was never in the Inbox. A task that returned to the Inbox and was triaged again keeps the instant it first left, and appears once.

Unlike `listTasks`, this does not exclude calendar blocks: a task turned into one left the Inbox like any other, and hiding it would make an item disappear without trace.

This is the task half of the Inbox history. Agent handbacks live in the local vault and messages come from `listInboxComments`; the Desktop client merges the three into one chronological list.



## OpenAPI

````yaml https://api.doers.sh/openapi.json get /v2/inbox/history
openapi: 3.1.0
info:
  title: Doers API
  version: 2.0.0
  description: >-
    The open API of Doers: tasks, projects, areas, prioritised context and the
    day's plan.


    ## Authentication


    Every route requires a bearer token, generated from **Settings > API & MCP**
    in the app:


    ```

    Authorization: Bearer pc_…

    ```


    ## Two date fields, not to be confused


    - `when` — the **schedule**: `today`, `anytime` (Later), `someday` (Future)
    or a date.

    - `deadline` — the **commitment**, independent of the schedule.


    ## Time zone


    The server reasons in UTC and does not know yours. Send the `X-PC-Today:
    YYYY-MM-DD` header

    (or the `day` argument where it exists) so dated operations use your local
    day.


    ## MCP server


    The same token gives access to the [Model Context
    Protocol](https://modelcontextprotocol.io)

    server at `POST https://doers.sh/mcp`, which exposes the same operations as
    tools for Claude,

    Cursor and other compatible clients.
servers:
  - url: https://api.doers.sh
    description: Production.
security:
  - bearerAuth: []
tags:
  - name: Tasks
  - name: Projects
  - name: Areas
  - name: Headings
  - name: Comments
  - name: Realtime
  - name: Devices
  - name: Context
  - name: Plan
  - name: Sessions
  - name: Rounds
  - name: Journal
  - name: Habits
  - name: Stats
  - name: Users
  - name: Profiles
  - name: Workspaces
  - name: Access
  - name: Activity
  - name: Tokens
  - name: Referrals
  - name: Files
  - name: Connections
  - name: Collaborators
  - name: Links
  - name: Packages
  - name: Installs
  - name: Billing
  - name: Calendar
  - name: Coach
  - name: Marketplace
paths:
  /v2/inbox/history:
    get:
      tags:
        - Tasks
      summary: Tasks you have already triaged
      description: >-
        Returns the tasks that arrived in the Inbox and have since been placed,
        scheduled, completed or archived, most recently triaged first, with the
        instant each one left. Use it to look back at what an Inbox held, or to
        find something filed by mistake.


        A task created straight into a project or an area never appears here: it
        was never in the Inbox. A task that returned to the Inbox and was
        triaged again keeps the instant it first left, and appears once.


        Unlike `listTasks`, this does not exclude calendar blocks: a task turned
        into one left the Inbox like any other, and hiding it would make an item
        disappear without trace.


        This is the task half of the Inbox history. Agent handbacks live in the
        local vault and messages come from `listInboxComments`; the Desktop
        client merges the three into one chronological list.
      operationId: listInboxHistory
      parameters:
        - name: cursor
          in: query
          required: false
          description: Opaque cursor from a previous page.
          schema:
            type: string
            maxLength: 512
        - name: limit
          in: query
          required: false
          description: How many triaged tasks to return.
          schema:
            type: integer
            default: 100
            minimum: 1
            maximum: 200
      responses:
        '200':
          description: Success.
          content:
            application/json:
              schema:
                type: object
                properties:
                  items:
                    type: array
                    items:
                      type: object
                      properties:
                        task:
                          type: object
                          properties:
                            id:
                              type: string
                            title:
                              type: string
                            notes:
                              type: string
                            status:
                              type: string
                              enum:
                                - open
                                - done
                                - archived
                            priority:
                              type: integer
                              minimum: -9007199254740991
                              maximum: 9007199254740991
                            when:
                              oneOf:
                                - type: object
                                  properties:
                                    kind:
                                      type: string
                                      const: today
                                  required:
                                    - kind
                                  additionalProperties: false
                                - type: object
                                  properties:
                                    kind:
                                      type: string
                                      const: anytime
                                  required:
                                    - kind
                                  additionalProperties: false
                                - type: object
                                  properties:
                                    kind:
                                      type: string
                                      const: someday
                                  required:
                                    - kind
                                  additionalProperties: false
                                - type: object
                                  properties:
                                    kind:
                                      type: string
                                      const: date
                                    date:
                                      type: string
                                    hasTime:
                                      type: boolean
                                    time:
                                      anyOf:
                                        - type: string
                                        - type: 'null'
                                  required:
                                    - kind
                                    - date
                                    - hasTime
                                  additionalProperties: false
                              description: >-
                                How the task is scheduled (distinct from its
                                `deadline`).
                            deadline:
                              anyOf:
                                - type: string
                                - type: 'null'
                              description: Due date `YYYY-MM-DD`, or `null`.
                            projectId:
                              anyOf:
                                - type: string
                                - type: 'null'
                            areaId:
                              anyOf:
                                - type: string
                                - type: 'null'
                            headingId:
                              anyOf:
                                - type: string
                                - type: 'null'
                              description: >-
                                Heading grouping the task, or `null` if it sits
                                above them all.
                            tags:
                              type: array
                              items:
                                type: string
                            checklist:
                              type: array
                              items:
                                type: object
                                properties:
                                  id:
                                    type: string
                                  label:
                                    type: string
                                  done:
                                    type: boolean
                                required:
                                  - id
                                  - label
                                  - done
                                additionalProperties: false
                            completedAt:
                              anyOf:
                                - type: number
                                - type: 'null'
                            durationMin:
                              anyOf:
                                - type: number
                                - type: 'null'
                            kind:
                              type: string
                              enum:
                                - task
                                - event
                            repeat:
                              anyOf:
                                - type: object
                                  properties:
                                    every:
                                      type: integer
                                      minimum: 1
                                      maximum: 365
                                      description: 'The multiplier: 2 × week.'
                                    unit:
                                      type: string
                                      enum:
                                        - day
                                        - week
                                        - month
                                        - year
                                    mode:
                                      type: string
                                      enum:
                                        - calendar
                                        - after
                                      description: >-
                                        `calendar`: the next one starts from the
                                        scheduled date. `after`: from ticking.
                                    weekdays:
                                      description: >-
                                        ISO weekdays (1 = Monday … 7 = Sunday)
                                        the weekly rule fires on. Only valid
                                        with unit "week".
                                      minItems: 1
                                      maxItems: 7
                                      type: array
                                      items:
                                        type: integer
                                        minimum: 1
                                        maximum: 7
                                  required:
                                    - every
                                    - unit
                                    - mode
                                  additionalProperties: false
                                  description: >-
                                    Repeat rule. Ticking the task creates the
                                    next occurrence.
                                - type: 'null'
                            visibility:
                              type: string
                              enum:
                                - public
                                - anonymized
                                - private
                              description: >-
                                Who sees this task on shared and social
                                surfaces: public shows title and project,
                                anonymized shows only the area, private shows
                                nothing. New tasks default to private.
                            order:
                              type: number
                              description: >-
                                Manual position. Fractional values are valid;
                                lower sorts first.
                            notePath:
                              anyOf:
                                - type: string
                                  maxLength: 1024
                                  description: >-
                                    Path of a note in the local markdown vault,
                                    relative to its root (`Projects/Launch.md`).
                                    When set, the app shows that note **instead
                                    of** the `notes` field. Do not invent one:
                                    it names a file on the user's machine.
                                - type: 'null'
                            conversationPath:
                              anyOf:
                                - type: string
                                  maxLength: 1024
                                  description: >-
                                    Path of the Atelier conversation this task
                                    is delegated to, relative to the vault root
                                    (`Agents/Reel scripter/Conversations/….md`).
                                    The agent is derived from the path. Do not
                                    invent one: it names a file on the user's
                                    machine.
                                - type: 'null'
                            assigneeId:
                              anyOf:
                                - type: string
                                - type: 'null'
                              description: >-
                                Who it is assigned to: one person who reaches
                                the task, or nobody.
                            assignee:
                              anyOf:
                                - type: object
                                  properties:
                                    id:
                                      type: string
                                    username:
                                      anyOf:
                                        - type: string
                                        - type: 'null'
                                    name:
                                      anyOf:
                                        - type: string
                                        - type: 'null'
                                    email:
                                      anyOf:
                                        - type: string
                                        - type: 'null'
                                    image:
                                      anyOf:
                                        - type: string
                                        - type: 'null'
                                  required:
                                    - id
                                    - username
                                    - name
                                    - email
                                    - image
                                  additionalProperties: false
                                - type: 'null'
                              description: The same person, as the row draws them.
                            accessRole:
                              description: Your effective role on this task.
                              type: string
                              enum:
                                - owner
                                - editor
                                - commenter
                                - reader
                          required:
                            - id
                            - title
                            - notes
                            - status
                            - priority
                            - when
                            - deadline
                            - projectId
                            - areaId
                            - headingId
                            - tags
                            - checklist
                            - completedAt
                            - durationMin
                            - kind
                            - repeat
                            - visibility
                            - order
                            - notePath
                            - conversationPath
                            - assigneeId
                            - assignee
                          additionalProperties: false
                        processedAt:
                          type: number
                          description: >-
                            Epoch milliseconds at which the task first left the
                            Inbox.
                      required:
                        - task
                        - processedAt
                      additionalProperties: false
                  nextCursor:
                    anyOf:
                      - type: string
                      - type: 'null'
                    description: Opaque cursor for the next page, or null.
                required:
                  - items
                  - nextCursor
                additionalProperties: false
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '429':
          $ref: '#/components/responses/TooManyRequests'
components:
  responses:
    BadRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
      description: >-
        Invalid request — unreadable body, out-of-range field or unknown
        parameter.
    Unauthorized:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
      description: Token missing, unknown or revoked.
    TooManyRequests:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
      description: Too many requests. `Retry-After` says how many seconds to wait.
  schemas:
    Error:
      type: object
      properties:
        error:
          type: object
          properties:
            code:
              type: string
              description: Stable machine-readable code.
            message:
              type: string
              description: Human-readable message.
            details:
              type: array
              description: Per-field detail, present on validation errors.
              items:
                type: object
                properties:
                  field:
                    type: string
                  message:
                    type: string
                required:
                  - field
                  - message
          required:
            - code
            - message
      required:
        - error
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: A `pc_…` token generated from Settings > API & MCP.

````