# List my open action items

`GET https://evohub.io/api/v1/retro/action-items/mine`

Part of the [Retro API](https://docs.evohub.io/retro.md) reference · operationId `listMyActionItems`.

The open action items owned by the caller on the boards they can see:
overdue first, then by due date (no due date last), then oldest.
`open` and `overdue` count every matching item, not only the ones
returned.

An item is the caller's when its `assignee_user_id` is the caller's
user ID. With a personal key that is the key's person; an
organization key owns no items, so it gets an empty list.

Requires the `retro:action:read` scope.

## Authorization

Any one of:

- `bearerKey`
- `headerKey`

Where:

- `bearerKey`: HTTP Bearer — An EvoHub API key (`evohub_…`) as a bearer token.
- `headerKey`: API key in the header `X-API-Key` — An EvoHub API key (`evohub_…`).

## Query parameters

- `limit` (integer, default `10`, min 1, max 50): How many items to return. Values above 50 are read as 50.
- `team_id` (string, example `none`): Narrow to one team's boards plus the organization-wide ones, or `none` for only the organization-wide ones. It never widens what the caller can see.

## Responses

### 200 — The caller's open action items and their counts.

Content type: `application/json`

Type: `object`

- `success` (boolean)
- `data` (MyActionItems)
  - `items` (array of object)
    - `id` (string)
    - `board_id` (string)
    - `board_name` (string)
    - `description` (string)
    - `status` (string, value `open`)
    - `due_at` (string (date-time) | null)
    - `created_at` (string (date-time))
  - `open` (integer): All of the caller's open items.
  - `overdue` (integer): Those of them past their due date.

### 400 — `limit` is not a positive integer (`INVALID_LIMIT`).

Content type: `application/json`

Type: `Error`

- `success` (boolean, value `false`): Sent by Retro itself; refusals before the request reaches Retro (401, 429) carry only `error`.
- `error` (object, required)
  - `code` (string, required, example `NOT_FOUND`)
  - `message` (string, required, example `board not found`)
  - `request_id` (string)

### 401 — No API key was sent, or it is unknown, revoked or expired (`UNAUTHORIZED`).

Content type: `application/json`

Type: `Error`

- `success` (boolean, value `false`): Sent by Retro itself; refusals before the request reaches Retro (401, 429) carry only `error`.
- `error` (object, required)
  - `code` (string, required, example `NOT_FOUND`)
  - `message` (string, required, example `board not found`)
  - `request_id` (string)

### 403 — The key lacks the scope this endpoint needs (`FORBIDDEN`).

Content type: `application/json`

Type: `Error`

- `success` (boolean, value `false`): Sent by Retro itself; refusals before the request reaches Retro (401, 429) carry only `error`.
- `error` (object, required)
  - `code` (string, required, example `NOT_FOUND`)
  - `message` (string, required, example `board not found`)
  - `request_id` (string)

### 429 — Too many requests (`RATE_LIMITED`). Wait for `Retry-After` seconds.

Headers:

- `Retry-After` (integer): Seconds to wait before retrying.

Content type: `application/json`

Type: `Error`

- `success` (boolean, value `false`): Sent by Retro itself; refusals before the request reaches Retro (401, 429) carry only `error`.
- `error` (object, required)
  - `code` (string, required, example `NOT_FOUND`)
  - `message` (string, required, example `board not found`)
  - `request_id` (string)

### 500 — Something went wrong on EvoHub's side (`INTERNAL_ERROR`). Retry later.

Content type: `application/json`

Type: `Error`

- `success` (boolean, value `false`): Sent by Retro itself; refusals before the request reaches Retro (401, 429) carry only `error`.
- `error` (object, required)
  - `code` (string, required, example `NOT_FOUND`)
  - `message` (string, required, example `board not found`)
  - `request_id` (string)

## Example request

```bash
curl -X GET 'https://evohub.io/api/v1/retro/action-items/mine' \
  -H 'Authorization: Bearer <TOKEN>'
```
