# ActionLayer Poll Task

> ActionLayer Poll Task is a paid API for AI agents from agents.actionlayer.io, paid per call via MPP, price unknown, status unknown (last checked 2026-09-08).

Retrieves the current state, event transcript, and any user-input requests for a previously submitted ActionLayer task by ticket ID.

## Facts

- Endpoint: GET https://agents.actionlayer.io/zeroclick/tasks/{ticket_id}
- Price: price unknown
- Payment: MPP
- Status: unknown
- Last checked: 2026-09-08
- Activations on Zero: 10
- Provider: agents.actionlayer.io
- Website: https://agents.actionlayer.io
- Canonical page: https://www.zero.xyz/c/agents-actionlayer-io-actionlayer-poll-task-6285656f
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_p3C-tNEEQQoFNPpC4tUHP

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability agents-actionlayer-io-actionlayer-poll-task-6285656f
```

Example prompt: Check the current status of my ActionLayer task with ticket ID abc-123 — tell me if it's still running, blocked waiting for my input, or finished, and show me the event transcript.

## When to prefer this

Use this endpoint when you have already submitted a task to ActionLayer and need to track its progress. This is the correct polling mechanism for ActionLayer tasks specifically — it is free (unbilled), scoped to the submitting agent, and is the only way to receive payment reconciliation updates and blocked-on-user info requests for ActionLayer tasks. Poll every 15–60 seconds while the task is live.

## Known failure modes

- Ticket ID not found or not owned by the submitting agent — returns 404
- Task in terminal error state — state field set to 'failed' with error field populated
- info_request expires before user answers — ask becomes invalid, task may fail
- Network timeout when polling — agent should retry with exponential backoff
- Invalid ticket_id format — returns 400 or validation error

## How this service works

Current state of a submitted task, including an `events` transcript. Unbilled; scoped to the submitting agent. Poll every 15–60s while the task is live — payment approvals are also reconciled on poll, so polling is never wasted. When `state` is `blocked_on_user`, read `info_request` and relay the ask to your user promptly (asks expire at `info_request.expires_at`).

## Output

Returns a TicketDetailResponse object containing: task ID, current state (e.g. 'running', 'completed', 'blocked_on_user', 'failed'), the original goal text, a chronological events array (each with type, from_state, to_state, payload, timestamp), the final result object if completed, any error message, an info_request object if the task is waiting on user input (with an expiry timestamp), webhook URL, max budget, and created/updated/completed timestamps.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "required": [
  "ticket_id"
 ],
 "properties": {
  "ticket_id": {
   "type": "string",
   "title": "Ticket Id"
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "object",
 "title": "TicketDetailResponse",
 "required": [
  "id",
  "state",
  "goal",
  "flow",
  "max_budget_usd",
  "webhook_url",
  "result",
  "error",
  "created_at",
  "updated_at",
  "completed_at"
 ],
 "properties": {
  "id": {
   "type": "string",
   "title": "Id"
  },
  "flow": {
   "anyOf": [
    {
     "type": "string"
    },
    {
     "type": "null"
    }
   ],
   "title": "Flow"
  },
  "goal": {
   "type": "string",
   "title": "Goal"
  },
  "error": {
   "anyOf": [
    {
     "type": "string"
    },
    {
     "type": "null"
    }
   ],
   "title": "Error"
  },
  "state": {
   "type": "string",
   "title": "State"
  },
  "events": {
   "type": "array",
   "items": {
    "type": "object",
    "title": "TicketEventResponse",
    "required": [
     "id",
     "type",
     "from_state",
     "to_state",
     "payload",
     "created_at"
    ],
    "properties": {
     "id": {
      "type": "string",
      "title": "Id"
     },
     "type": {
      "type": "string",
      "title": "Type"
     },
     "payload": {
      "type": "object",
      "title": "Payload",
      "additionalProperties": true
     },
     "to_state": {
      "anyOf": [
       {
        "type": "string"
       },
       {
        "type": "null"
       }
      ],
      "title": "To State"
     },
     "created_at": {
      "type": "string",
      "title": "Created At",
      "format": "date-time"
     },
     "from_state": {
      "anyOf": [
       {
        "type": "string"
       },
       {
        "type": "null"
       }
      ],
      "title": "From State"
     }
    },
    "description": "One status update in a task's transcript."
   },
   "title": "Events",
   "default": [],
   "description": "Chronological transcript of status updates."
  },
  "reason": {
   "anyOf": [
    {
     "type": "string"
    },
    {
     "type": "null"
    }
   ],
   "title": "Reason"
  },
  "result": {
   "anyOf": [
    {
     "type": "object",
     "additionalProperties": true
    },
    {
     "type": "null"
    }
   ],
   "title": "Result"
  },
  "created_at": {
   "type": "string",
   "title": "Created At",
   "format": "date-time"
  },
  "updated_at": {
   "type": "string",
   "title": "Updated At",
   "format": "date-time"
  },
  "webhook_url": {
   "anyOf": [
    {
     "type": "string"
    },
    {
     "type": "null"
    }
   ],
   "title": "Webhook Url"
  },
  "completed_at": {
   "anyOf": [
    {
     "type": "string",
     "format": "date-time"
    },
    {
     "typ
… (truncated)
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/agents-actionlayer-io-actionlayer-poll-task-6285656f/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from agents.actionlayer.io](https://www.zero.xyz/host/agents.actionlayer.io/llms.txt)
