{
  "openapi": "3.1.0",
  "x-zeroclick-navigation": {
    "fullSpec": "https://agents.actionlayer.io/openapi.json",
    "services": "https://agents.actionlayer.io/services",
    "serviceSpecTemplate": "https://agents.actionlayer.io/services/{slug}/openapi.json",
    "searchTemplate": "https://agents.actionlayer.io/openapi.json?q={text}",
    "operationTemplate": "https://agents.actionlayer.io/openapi.json?path={path}&method={method}",
    "firstPage": "https://agents.actionlayer.io/openapi.json?page=1",
    "instructions": [
      "Use this spec if it contains the operation and details you need. Otherwise, search or open a relevant service spec using the links below.",
      "Find service slugs in x-zeroclick-services or x-payment-info.rates[].service; use them in serviceSpecTemplate, never as request values.",
      "URL-encode template values. Search is ranked; service, path, and method filters are exact. Filters combine.",
      "Pages contain up to 10 operations; follow info.x-next or the Link header if you need more results. Shared operations retain all selector values."
    ]
  },
  "info": {
    "title": "ActionLayer",
    "version": "1.0.0",
    "description": "ActionLayer runs real-world web tasks end to end: an agent submits a natural-language task plus the end user's email, then polls until it finishes. Flat price per task. Purchases made inside a task are paid by the end user from their own connected wallet with their explicit approval - the per-task fee covers the service only. This server is a pay-per-use, transparent proxy in front of ActionLayer's own API: it handles identity, payment, and proxying. Agents can purchase autonomously or with their human's approval. The complete verified paid surface is listed at /openapi.json, the source of truth for available operations. Each operation here carries its live price in x-payment-info. Use the operations and details here when they meet your needs. Filtered specs contain only matching operations; if you cannot find what you need here, use search or the service catalog. The live catalog at /manifest.json is authoritative for prices and any free included units (prices[].includedUnits) - some meters include free usage per account before any charge, reserved for agents claimed by a human with a verified email.",
    "x-guidance": "Start with the free seller advisor: POST https://agents.actionlayer.io/zeroclick/agent/quote with your goal and known budget or requirements. This operation costs $0 and requires only an x402 or MPP wallet proof; it returns a guide and never executes a purchase. Without a wallet, GET https://agents.actionlayer.io/zeroclick/agent/guide?goal=URL_ENCODED_TASK or POST to that guide. Other operations below are the direct API reference; their own prices and access requirements still apply. Call the operations listed in this document at https://agents.actionlayer.io. Each service's full price matrix, plans, and how to buy are at https://agents.actionlayer.io/services/{slug}; each operation's x-payment-info names the service it bills by slug (rates[].service). Slugs identify services in prices and usage reports and are never request values: when one operation serves several services, its request body schema lists the accepted values of the field that selects the service, so send one of those exactly as written. An unpaid call returns 402 Payment Required with a signed challenge; settle it with a supported payment method - x402 (Base USDC) or MPP (Tempo USDC) today - and retry with the proof attached. No upstream API key is needed, and an agent without a payment method can set one up instantly at no cost. Read GET https://agents.actionlayer.io/manifest.json for the live services, meters, plans, prices, and any free included units, and https://agents.actionlayer.io/llms-full.txt for the full agent guide, including how the free allowance works without funding (it requires an agent identity claimed by a human with a verified email)."
  },
  "x-service-info": {
    "categories": [
      "web"
    ],
    "docs": {
      "homepage": "https://actionlayer.io",
      "apiReference": "https://agents.actionlayer.io/openapi.json",
      "llms": "https://agents.actionlayer.io/llms.txt"
    }
  },
  "externalDocs": {
    "url": "https://agents.actionlayer.io/llms-full.txt",
    "description": "How to authenticate, pay, and call this API; links the upstream API reference."
  },
  "servers": [
    {
      "url": "https://agents.actionlayer.io",
      "description": "Pay-per-use access to ActionLayer's API"
    }
  ],
  "security": [
    {
      "payPerUse": []
    }
  ],
  "components": {
    "securitySchemes": {
      "payPerUse": {
        "type": "apiKey",
        "in": "header",
        "name": "x-payment",
        "description": "Pay-per-use access. An unpaid call returns 402 Payment Required with a signed challenge; settle it with a supported payment method (x402 or MPP today) and retry with the proof in this header (x402) or as Authorization: Payment (MPP; use ZC-Agent-Authorization for a separate buyer bearer). No upstream API key is needed, and an agent without a payment method can set one up instantly at no cost."
      },
      "sellerAgentX402": {
        "type": "apiKey",
        "in": "header",
        "name": "Payment-Signature",
        "description": "Signed $0 x402 proof from the 402 challenge"
      },
      "sellerAgentMpp": {
        "type": "http",
        "scheme": "Payment",
        "description": "Signed $0 MPP proof from the 402 challenge"
      }
    },
    "schemas": {
      "sds_C7QeMFxEs-g1TbRZxP8wP_c0927fded4f82b82_ref0": {
        "type": "object",
        "title": "ZeroClickTaskRequest",
        "required": [
          "task",
          "email"
        ],
        "properties": {
          "task": {
            "type": "string",
            "title": "Task",
            "maxLength": 100000,
            "minLength": 1,
            "description": "The task, in natural language. Include every detail the task needs — addresses, dates, quantities, preferences."
          },
          "email": {
            "type": "string",
            "title": "Email",
            "maxLength": 254,
            "minLength": 3,
            "description": "The end user's email address. The task is attached to the ActionLayer account for this address (created if missing), and it's where the user is contacted if a payment needs their approval — get it right."
          }
        },
        "description": "Submit-task body — deliberately minimal: the task text carries\nevery detail; there are no other knobs on this surface."
      },
      "sds_C7QeMFxEs-g1TbRZxP8wP_c0927fded4f82b82_ref1": {
        "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"
              }
            ],
            "title": "Max Budget Usd",
            "description": "Not used on this surface; always null."
          }
        },
        "description": "A task. `state` is one of `pending | blocked_on_user | completed | failed | cancelled`; `completed` and `failed` carry a human-readable `reason`. When `state` is `blocked_on_user`, `info_request` describes what's needed."
      },
      "sds_C7QeMFxEs-g1TbRZxP8wP_c0927fded4f82b82_ref2": {
        "type": "object",
        "title": "HTTPValidationError",
        "properties": {
          "detail": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/sds_C7QeMFxEs-g1TbRZxP8wP_c0927fded4f82b82_ref3"
            },
            "title": "Detail"
          }
        }
      },
      "sds_C7QeMFxEs-g1TbRZxP8wP_c0927fded4f82b82_ref3": {
        "type": "object",
        "title": "ValidationError",
        "required": [
          "loc",
          "msg",
          "type"
        ],
        "properties": {
          "ctx": {
            "type": "object",
            "title": "Context"
          },
          "loc": {
            "type": "array",
            "items": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "integer"
                }
              ]
            },
            "title": "Location"
          },
          "msg": {
            "type": "string",
            "title": "Message"
          },
          "type": {
            "type": "string",
            "title": "Error Type"
          },
          "input": {
            "title": "Input"
          }
        }
      },
      "sds_C7QeMFxEs-g1TbRZxP8wP_2a041d002d4e8922_ref0": {
        "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": {
              "$ref": "#/components/schemas/sds_C7QeMFxEs-g1TbRZxP8wP_2a041d002d4e8922_ref1"
            },
            "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"
              },
              {
                "type": "null"
              }
            ],
            "title": "Completed At"
          },
          "info_request": {
            "anyOf": [
              {
                "type": "object",
                "additionalProperties": true
              },
              {
                "type": "null"
              }
            ],
            "title": "Info Request"
          },
          "max_budget_usd": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Max Budget Usd"
          }
        },
        "description": "A task plus its `events` transcript."
      },
      "sds_C7QeMFxEs-g1TbRZxP8wP_2a041d002d4e8922_ref1": {
        "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."
      },
      "sds_C7QeMFxEs-g1TbRZxP8wP_2a041d002d4e8922_ref2": {
        "type": "object",
        "title": "HTTPValidationError",
        "properties": {
          "detail": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/sds_C7QeMFxEs-g1TbRZxP8wP_2a041d002d4e8922_ref3"
            },
            "title": "Detail"
          }
        }
      },
      "sds_C7QeMFxEs-g1TbRZxP8wP_2a041d002d4e8922_ref3": {
        "type": "object",
        "title": "ValidationError",
        "required": [
          "loc",
          "msg",
          "type"
        ],
        "properties": {
          "ctx": {
            "type": "object",
            "title": "Context"
          },
          "loc": {
            "type": "array",
            "items": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "integer"
                }
              ]
            },
            "title": "Location"
          },
          "msg": {
            "type": "string",
            "title": "Message"
          },
          "type": {
            "type": "string",
            "title": "Error Type"
          },
          "input": {
            "title": "Input"
          }
        }
      },
      "sds_C7QeMFxEs-g1TbRZxP8wP_a8c19abcd59eec00_ref0": {
        "type": "object",
        "title": "ReplyTaskRequest",
        "properties": {
          "info": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/sds_C7QeMFxEs-g1TbRZxP8wP_a8c19abcd59eec00_ref1"
              },
              {
                "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`."
      },
      "sds_C7QeMFxEs-g1TbRZxP8wP_a8c19abcd59eec00_ref1": {
        "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."
      },
      "sds_C7QeMFxEs-g1TbRZxP8wP_a8c19abcd59eec00_ref2": {
        "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"
              }
            ],
            "title": "Max Budget Usd",
            "description": "Not used on this surface; always null."
          }
        },
        "description": "A task. `state` is one of `pending | blocked_on_user | completed | failed | cancelled`; `completed` and `failed` carry a human-readable `reason`. When `state` is `blocked_on_user`, `info_request` describes what's needed."
      }
    }
  },
  "paths": {
    "/zeroclick/tasks": {
      "post": {
        "summary": "Submit a task",
        "responses": {
          "202": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/sds_C7QeMFxEs-g1TbRZxP8wP_c0927fded4f82b82_ref1"
                }
              }
            },
            "description": "Successful Response"
          },
          "400": {
            "description": "Malformed email address."
          },
          "401": {
            "description": "ZeroClick signature verification failed."
          },
          "402": {
            "description": "Payment required"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/sds_C7QeMFxEs-g1TbRZxP8wP_c0927fded4f82b82_ref2"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "description": "Accepts a task for asynchronous execution and returns the task object — poll `GET /zeroclick/tasks/{id}` for progress. Retried requests with the same `zc-request-id` return the original task and are never charged twice.",
        "operationId": "submit_task_zeroclick_tasks_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/sds_C7QeMFxEs-g1TbRZxP8wP_c0927fded4f82b82_ref0"
              }
            }
          },
          "required": true
        },
        "x-zeroclick-document-sources": [
          {
            "gaps": [],
            "pages": [],
            "sourceId": "sds_C7QeMFxEs-g1TbRZxP8wP",
            "authority": "official",
            "conflicts": [],
            "revisionId": "sdrn_4lbE8XpTJmw9irVc3Hz-z"
          }
        ],
        "x-zeroclick-services": [
          "tasks"
        ],
        "x-payment-info": {
          "access": "payg",
          "protocols": [
            {
              "mpp": {
                "method": "tempo",
                "intent": "charge",
                "currency": "USD"
              }
            },
            {
              "x402": {
                "network": "eip155:8453",
                "scheme": "exact",
                "currency": "USDC"
              }
            }
          ],
          "offers": [
            {
              "amount": "1500000",
              "currency": "0x20C000000000000000000000b9537d11c60E8b50",
              "description": "$1.500000 per task (task, service tasks)",
              "intent": "charge",
              "method": "tempo"
            }
          ],
          "price": {
            "mode": "fixed",
            "currency": "USD",
            "amount": "1.500000"
          },
          "rates": [
            {
              "service": "tasks",
              "meter": "task",
              "unit": "task",
              "unitSize": 1,
              "priceUsd": "1.500000",
              "includedUnits": 0
            }
          ]
        }
      }
    },
    "/zeroclick/tasks/{ticket_id}": {
      "get": {
        "summary": "Poll a task",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/sds_C7QeMFxEs-g1TbRZxP8wP_2a041d002d4e8922_ref0"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "description": "ZeroClick signature verification failed."
          },
          "402": {
            "description": "Payment required"
          },
          "404": {
            "description": "Unknown task id, or not this agent's task."
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/sds_C7QeMFxEs-g1TbRZxP8wP_2a041d002d4e8922_ref2"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "parameters": [
          {
            "in": "path",
            "name": "ticket_id",
            "schema": {
              "type": "string",
              "title": "Ticket Id"
            },
            "required": true
          }
        ],
        "description": "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`).",
        "operationId": "get_zeroclick_task_zeroclick_tasks__ticket_id__get",
        "x-zeroclick-document-sources": [
          {
            "gaps": [],
            "pages": [],
            "sourceId": "sds_C7QeMFxEs-g1TbRZxP8wP",
            "authority": "official",
            "conflicts": [],
            "revisionId": "sdrn_4lbE8XpTJmw9irVc3Hz-z"
          }
        ],
        "x-zeroclick-services": [
          "tasks"
        ],
        "x-payment-info": {
          "access": "payg",
          "protocols": [
            {
              "mpp": {
                "method": "tempo",
                "intent": "charge",
                "currency": "USD"
              }
            },
            {
              "x402": {
                "network": "eip155:8453",
                "scheme": "exact",
                "currency": "USDC"
              }
            }
          ],
          "offers": [
            {
              "amount": "0",
              "currency": "0x20C000000000000000000000b9537d11c60E8b50",
              "description": "Free",
              "intent": "charge",
              "method": "tempo"
            }
          ],
          "price": {
            "mode": "fixed",
            "currency": "USD",
            "amount": "0.000000"
          }
        }
      }
    },
    "/zeroclick/tasks/{ticket_id}/reply": {
      "post": {
        "summary": "Answer a blocked_on_user ask",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/sds_C7QeMFxEs-g1TbRZxP8wP_a8c19abcd59eec00_ref2"
                }
              }
            },
            "description": "Successful Response"
          },
          "401": {
            "description": "ZeroClick signature verification failed."
          },
          "402": {
            "description": "Payment required"
          },
          "404": {
            "description": "Unknown task id, or not this agent's task."
          },
          "409": {
            "description": "The task isn't waiting on a reply, or the payment ask is in a state the reply doesn't match."
          },
          "410": {
            "description": "The ask expired before the reply arrived."
          },
          "422": {
            "description": "Reply field validation failed (mismatched or empty field_values)."
          }
        },
        "parameters": [
          {
            "in": "path",
            "name": "ticket_id",
            "schema": {
              "type": "string",
              "title": "Ticket Id"
            },
            "required": true
          }
        ],
        "description": "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.",
        "operationId": "reply_zeroclick_task_zeroclick_tasks__ticket_id__reply_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/sds_C7QeMFxEs-g1TbRZxP8wP_a8c19abcd59eec00_ref0"
              }
            }
          },
          "required": true
        },
        "x-zeroclick-document-sources": [
          {
            "gaps": [],
            "pages": [],
            "sourceId": "sds_C7QeMFxEs-g1TbRZxP8wP",
            "authority": "official",
            "conflicts": [],
            "revisionId": "sdrn_4lbE8XpTJmw9irVc3Hz-z"
          }
        ],
        "x-zeroclick-services": [
          "tasks"
        ],
        "x-payment-info": {
          "access": "payg",
          "protocols": [
            {
              "mpp": {
                "method": "tempo",
                "intent": "charge",
                "currency": "USD"
              }
            },
            {
              "x402": {
                "network": "eip155:8453",
                "scheme": "exact",
                "currency": "USDC"
              }
            }
          ],
          "offers": [
            {
              "amount": "0",
              "currency": "0x20C000000000000000000000b9537d11c60E8b50",
              "description": "Free",
              "intent": "charge",
              "method": "tempo"
            }
          ],
          "price": {
            "mode": "fixed",
            "currency": "USD",
            "amount": "0.000000"
          }
        }
      }
    },
    "/zeroclick/agent/quote": {
      "post": {
        "operationId": "sellerAgentQuote",
        "summary": "Get a free seller API quote and purchase guide",
        "description": "Describe your task to get the matching API contract, prices, prerequisites and next steps. This is a $0 wallet-proof lookup, not the seller's paid service. No purchase is executed. Without a wallet, use /zeroclick/agent/guide.",
        "servers": [
          {
            "url": "https://agents.actionlayer.io"
          }
        ],
        "security": [
          {
            "sellerAgentX402": []
          },
          {
            "sellerAgentMpp": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "goal": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 2000,
                    "description": "Describe the task and known inputs. Do not include credentials."
                  },
                  "quantity": {
                    "description": "Number of API calls, not returned items. Omit when unknown; describe desired output in goal.",
                    "type": "integer",
                    "minimum": 1,
                    "maximum": 1000000
                  },
                  "budgetUsd": {
                    "description": "Total cash budget in USD. A quote does not authorize spending.",
                    "type": "string",
                    "pattern": "^(0|[1-9]\\d{0,8})(\\.\\d{1,6})?$"
                  },
                  "budgetExclusive": {
                    "type": "boolean"
                  },
                  "reviewAfterCalls": {
                    "type": "integer",
                    "minimum": 1,
                    "maximum": 1000000
                  },
                  "requirements": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 300
                  },
                  "humanAvailable": {
                    "description": "Whether a human is in the loop. False recommends anonymous auth for a new autonomous identity; omit when unknown. Executing a human's request without further interruptions does not by itself mean false.",
                    "type": "boolean"
                  },
                  "payment": {
                    "description": "Known payment method for the eventual purchase, independent of this free lookup's wallet proof.",
                    "type": "string",
                    "enum": [
                      "x402",
                      "mpp",
                      "card"
                    ]
                  }
                },
                "required": [
                  "goal"
                ],
                "additionalProperties": false
              },
              "example": {
                "goal": "Find the available services, prices and purchase steps"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Task guidance; inspect status before executing anything",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "string",
                      "enum": [
                        "quoted",
                        "ready",
                        "needs_input",
                        "blocked",
                        "unknown",
                        "unsupported",
                        "unavailable"
                      ]
                    },
                    "priceUsd": {
                      "type": "string",
                      "const": "0"
                    },
                    "guide": {
                      "type": "string",
                      "description": "Markdown guidance containing the task result, exact contract, pricing and next steps when available. No purchase is executed."
                    },
                    "guideUrl": {
                      "type": "string",
                      "format": "uri",
                      "description": "Wallet-free advisor endpoint for further planning or recovery."
                    }
                  },
                  "required": [
                    "status",
                    "priceUsd",
                    "guide",
                    "guideUrl"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "402": {
            "description": "$0 x402 or MPP wallet proof required; sign and retry the same request. No funds are transferred."
          },
          "503": {
            "description": "Advisor unavailable; use the wallet-free guide or direct storefront references"
          }
        },
        "x-payment-info": {
          "access": "payg",
          "price": {
            "mode": "fixed",
            "currency": "USD",
            "amount": "0"
          },
          "protocols": [
            {
              "x402": {
                "network": "eip155:8453",
                "scheme": "exact",
                "currency": "USDC"
              }
            },
            {
              "mpp": {
                "method": "tempo",
                "intent": "charge",
                "currency": "USD"
              }
            }
          ],
          "offers": [
            {
              "amount": "0",
              "currency": "0x20C000000000000000000000b9537d11c60E8b50",
              "method": "tempo",
              "intent": "charge",
              "description": "Free seller advisor lookup"
            }
          ]
        }
      }
    }
  },
  "x-zeroclick-navigation-footer": {
    "instructions": [
      "Use this spec if it contains the operation and details you need. Otherwise, search or open a relevant service spec using the links below.",
      "Find service slugs in x-zeroclick-services or x-payment-info.rates[].service; use them in serviceSpecTemplate, never as request values.",
      "URL-encode template values. Search is ranked; service, path, and method filters are exact. Filters combine.",
      "Pages contain up to 10 operations; follow info.x-next or the Link header if you need more results. Shared operations retain all selector values."
    ],
    "fullSpec": "https://agents.actionlayer.io/openapi.json",
    "services": "https://agents.actionlayer.io/services",
    "serviceSpecTemplate": "https://agents.actionlayer.io/services/{slug}/openapi.json",
    "searchTemplate": "https://agents.actionlayer.io/openapi.json?q={text}",
    "operationTemplate": "https://agents.actionlayer.io/openapi.json?path={path}&method={method}",
    "firstPage": "https://agents.actionlayer.io/openapi.json?page=1"
  }
}
