# ActionLayer Reply to Blocked Task

> ActionLayer Reply to Blocked 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-14).

Resumes an ActionLayer task that is waiting on user input by supplying an answer, field value, or structured info response.

## Facts

- Endpoint: POST https://agents.actionlayer.io/zeroclick/tasks/{ticket_id}/reply
- Price: price unknown
- Payment: MPP
- Status: unknown
- Last checked: 2026-09-14
- Activations on Zero: 0
- Provider: agents.actionlayer.io
- Website: https://agents.actionlayer.io
- Canonical page: https://www.zero.xyz/c/agents-actionlayer-io-actionlayer-reply-to-blocked-task-cd0b36c2
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_7Gyr0jGFkg4lKtz9WsHF5

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-reply-to-blocked-task-cd0b36c2 -d '<json body>'
```

Example prompt: The ActionLayer task for booking my flight is blocked waiting for my SMS verification code — reply to ticket abc123 with the code 847291 and mark it as sensitive.

## When to prefer this

Use this endpoint when an ActionLayer task has reached the blocked_on_user state and is waiting for user-supplied input — whether that is a free-form message, a specific named field value (such as a verification code), a full structured info_request response, or a payment decline/re-approval signal. Do not use this to start a new task or poll task status; use the task submission and polling endpoints for those.

## Known failure modes

- Task not in blocked_on_user state — reply rejected because task is not awaiting input
- Missing required info fields — info.field_values keys don't exactly match requested_fields or questions[].key
- Empty field values — all values in info.field_values must be non-empty strings
- Payment approval attempted here — payment approvals must happen in the user's Link app, not via this endpoint
- Ticket not found — invalid or expired ticket_id returns 404
- Sensitive value not flagged — secrets submitted without sensitive:true may be logged or exposed

## How this service works

Resume a task waiting on user input. Plain asks (no `info_request` on the task): answer with `message` or `field`+`value`, setting `sensitive: true` for secrets. Structured asks (`info_request` present): send `info.field_values` whose keys exactly match `requested_fields` plus every `questions[].key`, all values non-empty. Payment asks are approved in the end user's Link app, never here — `info.payment_approved` only declines a charge (false) or re-sends a lapsed approval push (true). Unbilled; scoped to the submitting agent.

## Output

Returns the full updated task object including the new state (e.g. pending, completed, failed), the goal text, any remaining info_request, the structured result on completion, and an error code if the task failed (e.g. payment_rejected).

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "title": "ReplyTaskRequest",
 "properties": {
  "info": {
   "anyOf": [
    {
     "type": "object",
     "title": "InfoReplyData",
     "properties": {
      "field_values": {
       "type": "object",
       "title": "Field Values",
       "description": "Map of `{requested_field_name: value}`. Keys must exactly match `info_request.requested_fields` plus every `info_request.questions[].key`; values must be non-empty.",
       "additionalProperties": {
        "type": "string"
       }
      },
      "payment_approved": {
       "anyOf": [
        {
         "type": "boolean"
        },
        {
         "type": "null"
        }
       ],
       "title": "Payment Approved",
       "description": "Payment-ask control. `false`: decline the charge and end the task (`error=payment_rejected`). `true`: when `payment_status=approval_expired`, send a fresh approval request to the user's Link app. The approval itself always happens in the Link app, never here."
      }
     },
     "description": "Structured answers for a task's `info_request`. Either the end user or their agent can supply these."
    },
    {
     "type": "null"
    }
   ],
   "description": "Required when the task carries an `info_request`; ignored otherwise."
  },
  "field": {
   "anyOf": [
    {
     "type": "string",
     "maxLength": 64
    },
    {
     "type": "null"
    }
   ],
   "title": "Field",
   "description": "Machine-readable name of the requested item — e.g. `sms_code`. `value` is stored under this key."
  },
  "value": {
   "anyOf": [
    {
     "type": "string",
     "maxLength": 4000
    },
    {
     "type": "null"
    }
   ],
   "title": "Value"
  },
  "message": {
   "anyOf": [
    {
     "type": "string",
     "maxLength": 4000
    },
    {
     "type": "null"
    }
   ],
   "title": "Message"
  },
  "sensitive": {
   "type": "boolean",
   "title": "Sensitive",
   "default": false,
   "description": "Set true when `value` is a secret (2FA code, password): encrypted at rest, purged when the task ends, redacted in logs."
  }
 },
 "description": "Body for answering a `blocked_on_user` ask: a free-form `message`, or `field`+`value` for a specific requested item, or `info` when the task carries an `info_request`."
}
```

## Response schema (JSON Schema)

```json
{
 "type": "object",
 "title": "TicketResponse",
 "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",
   "description": "The submitted task text; answered questions are folded in over time."
  },
  "error": {
   "anyOf": [
    {
     "type": "string"
    },
    {
     "type": "null"
    }
   ],
   "title": "Error",
   "description": "Machine-readable failure code when state is failed (e.g. `payment_rejected`)."
  },
  "state": {
   "type": "string",
   "title": "State",
   "description": "`pending | blocked_on_user | completed | failed | cancelled` — see the document description for how to handle each."
  },
  "reason": {
   "anyOf": [
    {
     "type": "string"
    },
    {
     "type": "null"
    }
   ],
   "title": "Reason",
   "description": "Human-readable summary, set when state is completed or failed."
  },
  "result": {
   "anyOf": [
    {
     "type": "object",
     "additionalProperties": true
    },
    {
     "type": "null"
    }
   ],
   "title": "Result",
   "description": "Structured output on completion: `{output, summary}`."
  },
  "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",
   "description": "Not used on this surface; always null."
  },
  "completed_at": {
   "anyOf": [
    {
     "type": "string",
     "format": "date-time"
    },
    {
     "type": "null"
    }
   ],
   "title": "Completed At"
  },
  "info_request": {
   "anyOf": [
    {
     "type": "object",
     "additionalProperties": true
    },
    {
     "type": "null"
    }
   ],
   "title": "Info Request",
   "description": "Present while the task awaits user action: `{amount_usd?, merchant_name?, payment_status?, payment_error?, requested_fields, questions, note?, created_at, expires_at}`. See the document description for `payment_status` handling."
  },
  "max_budget_usd": {
   "anyOf": [
    {
     "type": "number"
    },
    {
     "type": "null"
 
… (truncated)
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/agents-actionlayer-io-actionlayer-reply-to-blocked-task-cd0b36c2/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)
