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

# List tasks that need you

> Read what needs the person now: one list of tasks across their websites, such as missing links, pages that are down, disavow uploads, renewals, plan and payment problems, Search Console reconnects, agent access requests and setup.

`list_tasks`

Read what needs the person now: one list of tasks across their websites, such as missing links, pages that are down, disavow uploads, renewals, plan and payment problems, Search Console reconnects, agent access requests and setup. Each task says who can act, how it clears, where in the console it gets done and what an agent may do; agents draft outreach and never send it. Call it at the start of a session.

<Note>This command name is absent from deployment evidence dated 2026-09-20. Hosted availability for this current definition is unverified; inspect your connected catalog before invoking it. Verify the command and its input schema in the selected environment.</Note>

| Access | Behavior |
| - | - |
| `projects:read` | Reads saved data |

This read does not start a verification job.

## Example request

Connect through [MCP](/guides/connect-mcp), [CLI](/guides/connect-cli), or [HTTP](/guides/connect-http). Replace example identifiers with records from your workspace.

<CodeGroup>
  ```json MCP theme={null}
  {
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
      "name": "list_tasks",
      "arguments": {}
    }
  }
  ```

  ```bash CLI theme={null}
  agentlinkops call list_tasks --args '{}'
  ```

  ```bash HTTP theme={null}
  curl --fail-with-body https://app.agentlinkops.com/v1/commands/list_tasks \
    -H "Authorization: Bearer $AGENTLINKOPS_TOKEN" \
    -H 'Content-Type: application/json' \
    --data '{}'
  ```
</CodeGroup>

## Returned result

Illustrative data validated against the documented response schema. IDs and dates are examples, not a live account capture. MCP returns this data in `structuredContent` and in a text content block; generic HTTP and CLI return the JSON result directly.

<Accordion title="Full response example">
  ```json theme={null}
  {
    "tasks": [
      {
        "id": "missing_links:project_example",
        "kind": "missing_links",
        "group": "needs_you",
        "priority": "normal",
        "projectId": "project_example",
        "website": "example.com",
        "who": "agent_or_you",
        "canAct": true,
        "title": "Decide about 3 missing links on example.com",
        "detail": "Ask each site to put the link back, or pause the checks for links you have let go.",
        "count": 3,
        "since": "2026-10-01T09:00:00.000Z",
        "route": "#/placements?state=missing&website=project_example",
        "handoff": null,
        "agent": {
          "can": true,
          "prompt": "Draft restore requests for my 3 missing links on example.com. Use AgentLinkOps list_tasks and follow the steps for this task. Never send them: give me the drafts.",
          "steps": [
            "Call list_link_watches with {\"projectId\": \"project_example\", \"state\": \"missing\"} to read the 3 missing links on example.com.",
            "For each link, call get_public_contacts with {\"watchId\": \"<the link's id>\"} to read the contacts its page publishes.",
            "Draft one short email per site asking it to restore the link to example.com. Never send anything: give the drafts to the person.",
            "Verify after a site says the link is back: call request_check with {\"subject\": \"link\", \"subjectId\": \"<the link's id>\", \"idempotencyKey\": \"<a new key>\"} and read get_check_job. The task clears when a check finds the link again."
          ]
        },
        "clears": "Clears when a check finds the link again, or when you pause its checks."
      },
      {
        "id": "disavow_upload:project_example",
        "kind": "disavow_upload",
        "group": "needs_you",
        "priority": "normal",
        "projectId": "project_example",
        "website": "example.com",
        "who": "agent_or_you",
        "canAct": true,
        "title": "Upload the example.com disavow list to Google",
        "detail": "2 changes to the approved list aren't in Google's copy yet.",
        "count": 2,
        "since": "2026-10-05T09:00:00.000Z",
        "route": "#/placements?show=disavow&website=project_example",
        "handoff": "disavow_upload",
        "agent": {
          "can": true,
          "prompt": "Upload my disavow list for example.com to Google. Use AgentLinkOps get_handoff \"disavow_upload\" for the steps."
        },
        "clears": "Clears when a check of Google's copy (confirm_disavow_upload) matches the approved list."
      },
      {
        "id": "setup_connect_agent:workspace_example",
        "kind": "setup_connect_agent",
        "group": "setup",
        "priority": "setup",
        "projectId": null,
        "website": null,
        "who": "owner",
        "canAct": true,
        "title": "Connect your agent",
        "detail": "Claude, Codex or another agent can add the links it builds and read the results here.",
        "count": 1,
        "since": "2026-09-20T00:00:00.000Z",
        "route": "#/access?section=grants",
        "handoff": null,
        "agent": {
          "can": false,
          "prompt": null
        },
        "clears": "Clears when an agent or API key has access to this workspace."
      }
    ],
    "counts": {
      "urgent": 0,
      "normal": 2,
      "low": 0,
      "setup": 1
    },
    "generatedAt": "2026-10-13T12:00:00.000Z",
    "truncated": false
  }
  ```
</Accordion>

## Input fields

Omit optional fields when you do not want to supply them. Null is accepted only where listed. Unknown input properties are rejected.

| Field | Type | Presence | Meaning and constraints |
| - | - | - | - |
| `projectId` | string | Optional | One website id from list\_projects. Omit it for every website this credential can read. Selecting a website still includes eligible workspace tasks, subject to read scopes and who can act. minLength: `1`; maxLength: `200` |

### Validation and omitted values

Omit projectId to cover every website the credential can read, up to 200; truncated tells you when more websites exist. You can also supply one accessible website id. Selecting one website does not exclude eligible workspace tasks for plan limits, payment, agent access requests or connecting an agent. Read scopes and who can act still apply.

Each task covers one kind of work for one website or the workspace. It names who can act (you, owner, agent\_or\_you or only\_you), whether the person behind this credential can act (canAct, from their workspace role), how it clears and the console route for the work. The list sorts by priority (urgent, normal, low, setup), then oldest since, then website. A provider reconnect task covers one website; count is its connections that need a new sign-in, and since is their oldest update time.

The service derives tasks from saved records on each read; it stores no task and marks none done. A task clears when saved data shows the work happened (a check, a sync or a provider event), or after a deliberate action such as pausing checks or rejecting a suggestion. Missing and can't-reach use the same link statuses as get\_link\_summary; the low cant\_reach\_lasting task uses the same inclusive seven-day cutoff, rounded down to the hour, as the link-list filter.

agent.can describes task capability; follow-up commands still require their own access. agent.prompt is a sentence the person can paste; agent.steps lists the exact commands, or get\_handoff supplies them when handoff names one. Finish with the verify step. Agents draft outreach and never send it. Each kind requires its read scope; payment problems and setup suggestions appear only to members who can act on them.

## Output fields

Fields inside optional or nullable parents apply only when that parent exists. [Common schema conventions](/reference/schemas) explain evidence states, empty lists and extensions.

* **`tasks`** (array, required).
* **`counts`** (object, required): additional fields rejected
* **`generatedAt`** (string, required).
* **`truncated`** (boolean, required): True when the workspace has more than 200 readable websites and only the first 200 were read.

<Accordion title="All fields and nested objects">
  | Field | Type | Presence | Meaning and constraints |
  | - | - | - | - |
  | `tasks` | array | Required | |
  | `tasks[].id` | string | Required | Stable across calls: kind and website id, or kind and workspace id for a workspace task. |
  | `tasks[].kind` | string | Required | values: `"search_console_reconnect"`, `"payment_problem"`, `"page_down"`, `"agent_access_request"`, `"missing_links"`, `"disavow_upload"`, `"disavow_suggestions"`, `"renewals_due"`, `"plan_limit"`, `"cant_reach_lasting"`, `"setup_add_links"`, `"setup_connect_agent"`, `"setup_search_console"` |
  | `tasks[].group` | string | Required | values: `"needs_you"`, `"setup"` |
  | `tasks[].priority` | string | Required | values: `"urgent"`, `"normal"`, `"low"`, `"setup"` |
  | `tasks[].projectId` | string / null | Required | Identifier returned by the related operation. |
  | `tasks[].website` | string / null | Required | The website domain; null for a workspace task. |
  | `tasks[].who` | string | Required | Who can act: you (a member with write access), owner, agent\_or\_you or only\_you (the person's own sign-in elsewhere). values: `"you"`, `"owner"`, `"agent_or_you"`, `"only_you"` |
  | `tasks[].canAct` | boolean | Required | Whether the person behind this credential can act, from their workspace role. agent.can says whether their agent can. |
  | `tasks[].title` | string | Required | |
  | `tasks[].detail` | string | Required | |
  | `tasks[].count` | integer | Required | minimum: `0`; maximum: `9007199254740991` |
  | `tasks[].since` | string / null | Required | When the task began: the oldest affected record. Null when unknown. |
  | `tasks[].route` | string | Required | Console hash route where the task gets done; a website task carries website=. |
  | `tasks[].handoff` | string / null | Required | get\_handoff id with the steps, when the task happens on another website. |
  | `tasks[].agent` | object | Required | additional fields rejected |
  | `tasks[].agent.can` | boolean | Required | Whether the person's agent may do this task. Agents draft outreach and never send it. |
  | `tasks[].agent.prompt` | string / null | Required | A plain sentence the person can paste to their agent; it names the website, never an id. |
  | `tasks[].agent.steps` | array | Optional | The exact commands for an agent task that has no handoff; with a handoff, get\_handoff carries them. |
  | `tasks[].clears` | string | Required | How the task clears: verified by data, or a deliberate accept action. Never a click. |
  | `tasks[].items` | array | Optional | Records in this bounded page. maxItems: `5` |
  | `tasks[].items[].label` | string | Required | |
  | `tasks[].items[].route` | string | Required | |
  | `counts` | object | Required | additional fields rejected |
  | `counts.urgent` | integer | Required | minimum: `0`; maximum: `9007199254740991` |
  | `counts.normal` | integer | Required | minimum: `0`; maximum: `9007199254740991` |
  | `counts.low` | integer | Required | minimum: `0`; maximum: `9007199254740991` |
  | `counts.setup` | integer | Required | minimum: `0`; maximum: `9007199254740991` |
  | `generatedAt` | string | Required | |
  | `truncated` | boolean | Required | True when the workspace has more than 200 readable websites and only the first 200 were read. |
</Accordion>

[Download input schema](/schemas/list_tasks.input.json) · [Download output schema](/schemas/list_tasks.output.json)

## Errors and retries

Follow the error recovery before retrying this read. Preserve the selected workspace, project, filters and feed. Recovering a read does not require an idempotency key or another verification job. Operation-specific errors include `INVALID_INPUT`, `PROJECT_NOT_FOUND`, `WORKSPACE_ACCESS_DENIED`, `INSUFFICIENT_SCOPE`.

See [error recovery](/reference/errors) for status, scope, cooldown, cursor and retry handling. Unknown observations are result data and do not establish loss.

## HTTP resource routes

This operation has no separate resource alias. Use its generic command route in a matching environment.

## Continue

[get\_handoff](/reference/commands/get_handoff) · [list\_link\_watches](/reference/commands/list_link_watches) · [get\_disavow\_status](/reference/commands/get_disavow_status)

Follow the [related workflow](/guides/connect-http), inspect [capability status](/capability-status), or return to the [command index](/reference/index).


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.