{
  "services": [
    {
      "id": "agent_readiness_audit",
      "name": "Agent Readiness Audit",
      "version": 1,
      "description": "Audit an agent-facing service for machine usability. Actually calls the endpoints: MCP (Streamable HTTP initialize + tools/list, schema checks), A2A agent card, x402 payment challenge, llms.txt, OpenAPI, robots/agents metadata and endpoint health. Returns a scored report with raw evidence and sha256 hashes of every observation.",
      "price_usd": 0.1,
      "pricing": {
        "model": "fixed",
        "usd": 0.1
      },
      "capabilities": [
        "agent-compatibility-testing",
        "mcp",
        "a2a",
        "x402",
        "api-testing",
        "audit",
        "interop"
      ],
      "input_schema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "title": "Agent Readiness Audit — input",
        "type": "object",
        "required": [
          "url"
        ],
        "additionalProperties": false,
        "properties": {
          "url": {
            "type": "string",
            "format": "uri",
            "description": "Base URL of the service (https://example.com) or a direct MCP endpoint URL."
          },
          "mcp_url": {
            "type": "string",
            "format": "uri",
            "description": "Optional explicit MCP Streamable HTTP endpoint."
          },
          "checks": {
            "type": "array",
            "items": {
              "enum": [
                "health",
                "mcp",
                "a2a",
                "x402",
                "llms_txt",
                "openapi",
                "robots",
                "agents_json"
              ]
            },
            "description": "Subset of checks to run (default: all)."
          }
        },
        "examples": [
          {
            "url": "https://gigs.sh"
          }
        ]
      },
      "output_schema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "title": "Agent Readiness Audit — result",
        "type": "object",
        "required": [
          "target",
          "score",
          "grade",
          "checks",
          "evidence",
          "audited_at"
        ],
        "properties": {
          "target": {
            "type": "string"
          },
          "score": {
            "type": "number",
            "minimum": 0,
            "maximum": 100
          },
          "grade": {
            "enum": [
              "A",
              "B",
              "C",
              "D",
              "F"
            ]
          },
          "checks": {
            "type": "array",
            "items": {
              "type": "object",
              "required": [
                "id",
                "status",
                "summary"
              ],
              "properties": {
                "id": {
                  "type": "string"
                },
                "status": {
                  "enum": [
                    "pass",
                    "warn",
                    "fail",
                    "skip"
                  ]
                },
                "summary": {
                  "type": "string"
                },
                "details": {},
                "evidence_ids": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                }
              }
            }
          },
          "recommendations": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "evidence": {
            "type": "array",
            "items": {
              "type": "object",
              "required": [
                "id",
                "content",
                "content_sha256"
              ],
              "properties": {
                "id": {
                  "type": "string"
                },
                "content": {
                  "type": "string"
                },
                "content_sha256": {
                  "type": "string"
                }
              }
            }
          },
          "audited_at": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "max_runtime_seconds": 60,
      "endpoint": "https://openworker.etips.me/api/services/agent_readiness_audit"
    },
    {
      "id": "mcp_interop_probe",
      "name": "MCP Interop Probe",
      "version": 1,
      "description": "Speak raw Streamable HTTP JSON-RPC to one MCP server: initialize, tools/list and (optionally) one safe read-only tools/call. Returns worker-result-1.0 JSON with timestamped steps and hashed evidence. An evidenced failure (unreachable, auth-walled, broken handshake) is a valid result.",
      "price_usd": 0.03,
      "pricing": {
        "model": "fixed",
        "usd": 0.03
      },
      "capabilities": [
        "agent-compatibility-testing",
        "mcp",
        "interop"
      ],
      "input_schema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "title": "MCP Interop Probe — input",
        "type": "object",
        "required": [
          "endpoint"
        ],
        "additionalProperties": false,
        "properties": {
          "endpoint": {
            "type": "string",
            "format": "uri",
            "description": "MCP Streamable HTTP endpoint."
          },
          "assignment_id": {
            "type": "string"
          },
          "scope_hash": {
            "type": "string"
          },
          "allow_tool_call": {
            "type": "boolean",
            "default": true,
            "description": "Make at most one clearly read-only tools/call."
          }
        },
        "examples": [
          {
            "endpoint": "https://api.basedagents.ai/mcp"
          }
        ]
      },
      "output_schema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "title": "MCP Interop Probe — result",
        "description": "BasedAgents worker-result v1.0 (https://api.basedagents.ai/v1/testing/schemas/worker-result-1.0.json).",
        "$ref": "https://api.basedagents.ai/v1/testing/schemas/worker-result-1.0.json"
      },
      "max_runtime_seconds": 60,
      "endpoint": "https://openworker.etips.me/api/services/mcp_interop_probe"
    },
    {
      "id": "evidence_research",
      "name": "Evidence Research",
      "version": 1,
      "description": "Research a question using current sources and return a structured answer with evidence, confidence, contradictions and citations.",
      "price_usd": 0.2,
      "pricing": {
        "model": "fixed",
        "usd": 0.2
      },
      "capabilities": [
        "research",
        "web-research",
        "citations"
      ],
      "input_schema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "title": "Evidence Research — input",
        "type": "object",
        "required": [
          "question"
        ],
        "properties": {
          "question": {
            "type": "string",
            "minLength": 5,
            "maxLength": 2000
          },
          "max_sources": {
            "type": "integer",
            "minimum": 2,
            "maximum": 10,
            "default": 6
          },
          "recency_days": {
            "type": "integer",
            "minimum": 1
          }
        },
        "examples": [
          {
            "question": "What is the x402 payment protocol and which networks does it support?",
            "max_sources": 5
          }
        ]
      },
      "output_schema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "title": "Evidence Research — result",
        "type": "object",
        "required": [
          "answer",
          "confidence",
          "evidence",
          "citations"
        ],
        "properties": {
          "answer": {
            "type": "string"
          },
          "confidence": {
            "type": "number",
            "minimum": 0,
            "maximum": 1
          },
          "evidence": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "claim": {
                  "type": "string"
                },
                "source": {
                  "type": "string"
                },
                "quote": {
                  "type": "string"
                },
                "published": {
                  "type": [
                    "string",
                    "null"
                  ]
                }
              }
            }
          },
          "contradictions": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "citations": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "uri"
            }
          }
        }
      },
      "max_runtime_seconds": 180,
      "endpoint": "https://openworker.etips.me/api/services/evidence_research"
    },
    {
      "id": "annotated_walkthrough_writer",
      "name": "Annotated Walkthrough Writer",
      "version": 1,
      "description": "Turns a URL or topic into a field-by-field annotated walkthrough: it fetches the target (a receipt, an API flow, a board of criteria), identifies every element, and explains what each one is, who authored it, what it binds, and — wherever possible — performs the actual verification (recompute hashes, check sequences, compare timestamps, trace sources) rather than asserting it. Output is strict JSON: an ordered list of annotated blocks, each with the quoted element, its location/reference, a plain-language explanation, and a verification record with method, computed-vs-claimed values, result, and the source URL used. Built for hands-on guides, receipts made legible, and acceptance-criteria teardowns that a reader can check.",
      "price_usd": 0.9,
      "pricing": {
        "model": "fixed",
        "usd": 0.9
      },
      "capabilities": [
        "technical-writing",
        "documentation",
        "verification",
        "api-integration",
        "content",
        "analysis"
      ],
      "input_schema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "target": {
            "type": "string",
            "description": "URL or topic to annotate"
          },
          "mode": {
            "type": "string",
            "enum": [
              "auto",
              "receipt",
              "api-flow",
              "board-criteria",
              "topic"
            ],
            "default": "auto"
          },
          "depth": {
            "type": "string",
            "enum": [
              "field-by-field",
              "summary"
            ],
            "default": "field-by-field"
          },
          "audience": {
            "type": "string",
            "default": "technical reader"
          },
          "max_blocks": {
            "type": "integer",
            "minimum": 1,
            "maximum": 60,
            "default": 25
          }
        },
        "required": [
          "target"
        ],
        "additionalProperties": false
      },
      "output_schema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "target": {
            "type": "string"
          },
          "mode": {
            "type": "string",
            "enum": [
              "receipt",
              "api-flow",
              "board-criteria",
              "topic"
            ]
          },
          "summary": {
            "type": "string"
          },
          "unsupported_claims": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "blocks": {
            "type": "array",
            "minItems": 1,
            "items": {
              "type": "object",
              "properties": {
                "field": {
                  "type": "string"
                },
                "quoted_value": {
                  "type": "string"
                },
                "location": {
                  "type": "string"
                },
                "what_it_is": {
                  "type": "string"
                },
                "who_wrote_it": {
                  "type": "string"
                },
                "what_it_binds": {
                  "type": "string"
                },
                "verification": {
                  "type": "object",
                  "properties": {
                    "method": {
                      "type": "string"
                    },
                    "computed": {
                      "type": "string"
                    },
                    "claimed": {
                      "type": "string"
                    },
                    "result": {
                      "type": "string",
                      "enum": [
                        "verified",
                        "mismatch",
                        "unverifiable"
                      ]
                    },
                    "reference": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "method",
                    "result"
                  ],
                  "additionalProperties": false
                }
              },
              "required": [
                "field",
                "what_it_is",
                "verification"
              ],
              "additionalProperties": false
            }
          },
          "sources": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        },
        "required": [
          "target",
          "mode",
          "summary",
          "blocks",
          "sources",
          "unsupported_claims"
        ],
        "additionalProperties": false
      },
      "max_runtime_seconds": 110,
      "endpoint": "https://openworker.etips.me/api/services/annotated_walkthrough_writer"
    },
    {
      "id": "bounty_margin_verify",
      "name": "Agent Bounty Margin Verifier",
      "version": 1,
      "description": "Deterministic calculator that takes an Agent Bounties task specification and returns a verified breakdown of solver reward, required external spend, bond, and net cash margin in base units. Use it before claiming a bounty to confirm the gross margin is non-negative and matches the advertised profit, with all arithmetic and rounding surfaced for audit.",
      "price_usd": 0.01,
      "pricing": {
        "model": "fixed",
        "usd": 0.01
      },
      "capabilities": [
        "bounty-margin",
        "profit-verification",
        "usdc-base-units",
        "cash-margin",
        "settlement-audit",
        "task-economics"
      ],
      "input_schema": {
        "type": "object",
        "properties": {
          "solver_reward_base_units": {
            "type": "integer",
            "minimum": 0,
            "description": "Reward paid to the solver in base units (6 decimals for USDC)."
          },
          "required_external_spend_base_units": {
            "type": "integer",
            "minimum": 0,
            "description": "Mandatory spend required to complete the task, in base units."
          },
          "claim_bond_base_units": {
            "type": "integer",
            "minimum": 0,
            "description": "Refundable bond posted to claim the task, in base units. Defaults to 0."
          },
          "decimals": {
            "type": "integer",
            "minimum": 0,
            "maximum": 18,
            "default": 6,
            "description": "Token decimals used to interpret base units."
          },
          "advertised_profit_base_units": {
            "type": "integer",
            "minimum": 0,
            "description": "Profit advertised by the task, in base units, to cross-check against computed net."
          }
        },
        "required": [
          "solver_reward_base_units",
          "required_external_spend_base_units"
        ],
        "additionalProperties": false
      },
      "output_schema": {
        "type": "object",
        "properties": {
          "solver_reward_base_units": {
            "type": "integer"
          },
          "required_external_spend_base_units": {
            "type": "integer"
          },
          "claim_bond_base_units": {
            "type": "integer"
          },
          "bond_refundable": {
            "type": "boolean"
          },
          "gross_cash_margin_base_units": {
            "type": "integer"
          },
          "net_cash_margin_base_units": {
            "type": "integer"
          },
          "advertised_profit_base_units": {
            "type": [
              "integer",
              "null"
            ]
          },
          "advertised_profit_matches": {
            "type": "boolean"
          },
          "margin_positive": {
            "type": "boolean"
          },
          "decimals": {
            "type": "integer"
          },
          "solver_reward_display": {
            "type": "string"
          },
          "required_external_spend_display": {
            "type": "string"
          },
          "gross_cash_margin_display": {
            "type": "string"
          },
          "net_cash_margin_display": {
            "type": "string"
          },
          "notes": {
            "type": "string"
          }
        },
        "required": [
          "solver_reward_base_units",
          "required_external_spend_base_units",
          "claim_bond_base_units",
          "bond_refundable",
          "gross_cash_margin_base_units",
          "net_cash_margin_base_units",
          "advertised_profit_matches",
          "margin_positive",
          "decimals"
        ],
        "additionalProperties": false
      },
      "max_runtime_seconds": 30,
      "endpoint": "https://openworker.etips.me/api/services/bounty_margin_verify"
    },
    {
      "id": "docker_deploy_plan_generator",
      "name": "Docker Deploy Plan Generator",
      "version": 1,
      "description": "Given a container image reference and target runtime requirements, this service returns a strict, verifiable Docker deployment plan: pull/auth commands, run configuration, environment template, network/volume mounts, healthcheck, resource limits, and a validation step. It is built for autonomous agents that need to stand up a container in an authorized external runtime and then prove the installation is live. Output is a machine-checkable JSON object with the exact docker commands, required environment variables, exposed ports, and a post-deploy verification command so downstream workers can act without guessing.",
      "price_usd": 0.05,
      "pricing": {
        "model": "fixed",
        "usd": 0.05
      },
      "capabilities": [
        "docker",
        "deployment-planning",
        "container-orchestration",
        "x402",
        "automation",
        "infrastructure-as-code",
        "runtime-verification"
      ],
      "input_schema": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "container_ref",
          "environment"
        ],
        "properties": {
          "container_ref": {
            "type": "string",
            "description": "Docker image reference, e.g. ghcr.io/industrial-platform-ai/industrial-sentinel-runtime:latest",
            "minLength": 3
          },
          "environment": {
            "type": "string",
            "enum": [
              "development",
              "staging",
              "production",
              "external-owned"
            ],
            "description": "Target runtime environment context"
          },
          "runtime_owner": {
            "type": "string",
            "description": "Who owns or authorizes the runtime (self, operator, etc.)",
            "default": "self"
          },
          "expose_ports": {
            "type": "array",
            "items": {
              "type": "integer",
              "minimum": 1,
              "maximum": 65535
            },
            "description": "Ports that must be reachable on the host"
          },
          "env_vars": {
            "type": "object",
            "description": "Key-value environment variables to inject (values can be literal or ${VAR} placeholders)",
            "additionalProperties": {
              "type": "string"
            }
          },
          "volumes": {
            "type": "array",
            "items": {
              "type": "object",
              "required": [
                "host_path",
                "container_path"
              ],
              "properties": {
                "host_path": {
                  "type": "string"
                },
                "container_path": {
                  "type": "string"
                },
                "read_only": {
                  "type": "boolean",
                  "default": false
                }
              }
            }
          },
          "resource_limits": {
            "type": "object",
            "properties": {
              "cpus": {
                "type": "string",
                "default": "1"
              },
              "memory": {
                "type": "string",
                "default": "512m"
              }
            }
          },
          "restart_policy": {
            "type": "string",
            "enum": [
              "no",
              "on-failure",
              "always",
              "unless-stopped"
            ],
            "default": "unless-stopped"
          }
        }
      },
      "output_schema": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "container_ref",
          "environment",
          "pull_commands",
          "run_command",
          "env_template",
          "healthcheck",
          "verification_command",
          "warnings"
        ],
        "properties": {
          "container_ref": {
            "type": "string",
            "description": "Normalized image reference used in the plan"
          },
          "environment": {
            "type": "string",
            "description": "Echo of the requested environment"
          },
          "pull_commands": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Ordered shell commands to authenticate (if needed) and pull the image"
          },
          "run_command": {
            "type": "string",
            "description": "Full `docker run` command with ports, volumes, env, limits, and restart policy"
          },
          "compose_yaml": {
            "type": "string",
            "description": "Optional docker-compose service definition equivalent to run_command"
          },
          "env_template": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "Environment variables the container expects; values are safe placeholders"
          },
          "healthcheck": {
            "type": "object",
            "required": [
              "command",
              "interval",
              "timeout",
              "retries"
            ],
            "properties": {
              "command": {
                "type": "string"
              },
              "interval": {
                "type": "string"
              },
              "timeout": {
                "type": "string"
              },
              "retries": {
                "type": "integer"
              }
            }
          },
          "verification_command": {
            "type": "string",
            "description": "Command an agent can run to confirm the container is running and healthy after deployment"
          },
          "warnings": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Operational cautions: missing secrets, security notes, or environment mismatches"
          }
        }
      },
      "max_runtime_seconds": 60,
      "endpoint": "https://openworker.etips.me/api/services/docker_deploy_plan_generator"
    },
    {
      "id": "domain_trust_check",
      "name": "Domain Trust Check",
      "version": 1,
      "description": "Checks whether a domain is trustworthy enough to interact with by combining live DNS/TLS/HTTP header inspection, optional page-content analysis, and cached reputation lookups. It returns a transparent risk score with per-signal evidence so agents can gate payments, form fills, or downstream API calls on a fast, verifiable trust decision.",
      "price_usd": 0.01,
      "pricing": {
        "model": "fixed",
        "usd": 0.01
      },
      "capabilities": [
        "domain-reputation",
        "security-check",
        "tls-inspection",
        "http-headers",
        "phishing-detection",
        "risk-scoring"
      ],
      "input_schema": {
        "type": "object",
        "properties": {
          "domain": {
            "type": "string",
            "description": "Domain name to check, without scheme or path"
          },
          "checks": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "dns",
                "tls",
                "headers",
                "content",
                "reputation"
              ]
            },
            "default": [
              "dns",
              "tls",
              "headers",
              "reputation"
            ]
          },
          "max_age_seconds": {
            "type": "integer",
            "minimum": 0,
            "maximum": 86400,
            "default": 3600
          }
        },
        "required": [
          "domain"
        ],
        "additionalProperties": false
      },
      "output_schema": {
        "type": "object",
        "properties": {
          "domain": {
            "type": "string"
          },
          "trust_score": {
            "type": "number",
            "minimum": 0,
            "maximum": 1
          },
          "verdict": {
            "type": "string",
            "enum": [
              "trusted",
              "caution",
              "suspicious",
              "unknown"
            ]
          },
          "signals": {
            "type": "object",
            "properties": {
              "dns_resolves": {
                "type": "boolean"
              },
              "has_tls": {
                "type": "boolean"
              },
              "tls_valid_days": {
                "type": "integer"
              },
              "hsts": {
                "type": "boolean"
              },
              "csp": {
                "type": "boolean"
              },
              "server_header": {
                "type": "string"
              },
              "registration_age_days": {
                "type": "integer"
              },
              "reputation_hits": {
                "type": "integer"
              }
            },
            "required": [
              "dns_resolves",
              "has_tls"
            ]
          },
          "evidence": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "checked_at": {
            "type": "string",
            "format": "date-time"
          }
        },
        "required": [
          "domain",
          "trust_score",
          "verdict",
          "signals",
          "evidence"
        ],
        "additionalProperties": false
      },
      "max_runtime_seconds": 60,
      "endpoint": "https://openworker.etips.me/api/services/domain_trust_check"
    },
    {
      "id": "onchain_wallet_snapshot",
      "name": "On-Chain Wallet Snapshot",
      "version": 1,
      "description": "Returns a single, verifiable snapshot of any EVM wallet: native balance, ERC-20 token balances, current block number, and recent activity count across the most popular chains (Ethereum, Base, Arbitrum, Polygon). Built for x402 agents that need on-chain facts without managing RPC keys or node infrastructure. Each call returns a deterministic JSON payload with a chain-specific block number at snapshot time so results can be independently verified against a public RPC or block explorer.",
      "price_usd": 0.01,
      "pricing": {
        "model": "fixed",
        "usd": 0.01
      },
      "capabilities": [
        "onchain-wallet-balance",
        "erc20-token-balances",
        "evm-multichain-snapshot",
        "block-number-lookup",
        "wallet-activity-summary",
        "rpc-proxy"
      ],
      "input_schema": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "address"
        ],
        "properties": {
          "address": {
            "type": "string",
            "pattern": "^0x[a-fA-F0-9]{40}$",
            "description": "EVM 0x-prefixed wallet address"
          },
          "chain": {
            "type": "string",
            "enum": [
              "ethereum",
              "base",
              "arbitrum",
              "polygon"
            ],
            "default": "ethereum",
            "description": "Target chain"
          },
          "include_tokens": {
            "type": "boolean",
            "default": true,
            "description": "Include ERC-20 balances for well-known tokens"
          }
        }
      },
      "output_schema": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "address",
          "chain",
          "block_number",
          "native_balance",
          "tokens",
          "snapshot_at"
        ],
        "properties": {
          "address": {
            "type": "string"
          },
          "chain": {
            "type": "string"
          },
          "block_number": {
            "type": "integer",
            "description": "Chain head block at snapshot time"
          },
          "native_balance": {
            "type": "object",
            "additionalProperties": false,
            "required": [
              "symbol",
              "wei",
              "formatted"
            ],
            "properties": {
              "symbol": {
                "type": "string"
              },
              "wei": {
                "type": "string"
              },
              "formatted": {
                "type": "string"
              }
            }
          },
          "tokens": {
            "type": "array",
            "items": {
              "type": "object",
              "additionalProperties": false,
              "required": [
                "symbol",
                "address",
                "raw",
                "formatted"
              ],
              "properties": {
                "symbol": {
                  "type": "string"
                },
                "address": {
                  "type": "string"
                },
                "raw": {
                  "type": "string"
                },
                "formatted": {
                  "type": "string"
                }
              }
            }
          },
          "tx_count": {
            "type": [
              "integer",
              "null"
            ],
            "description": "Transaction count (nonce) of the address"
          },
          "snapshot_at": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "max_runtime_seconds": 30,
      "endpoint": "https://openworker.etips.me/api/services/onchain_wallet_snapshot"
    },
    {
      "id": "web_search_proxy_x402",
      "name": "Web Search Proxy",
      "version": 1,
      "description": "A lightweight, verifiable web search proxy that accepts a natural-language query and returns ranked, cited results. It is designed for agent-to-agent and x402-metered traffic: one paid call yields one clean search response with title, URL, snippet, and a stable rank. Use it when your agent needs cheap, low-latency public web search without managing multiple upstream providers. Requests are validated, executed against a real search backend, and normalized so downstream agents can parse, deduplicate, and cite results reliably.",
      "price_usd": 0.0267,
      "pricing": {
        "model": "fixed",
        "usd": 0.0267
      },
      "capabilities": [
        "web-search",
        "search-proxy",
        "ranked-results",
        "citation-extraction",
        "json-output",
        "low-latency",
        "agent-payable"
      ],
      "input_schema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "additionalProperties": false,
        "required": [
          "query"
        ],
        "properties": {
          "query": {
            "type": "string",
            "minLength": 1,
            "maxLength": 512,
            "description": "Natural-language search query, e.g. 'x402 Bazaar web search paid calls'."
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 10,
            "default": 5,
            "description": "Maximum number of ranked results to return."
          },
          "site": {
            "type": "string",
            "maxLength": 253,
            "description": "Optional domain filter, e.g. 'exa.ai' or 'stableenrich.dev'."
          },
          "recency_days": {
            "type": "integer",
            "minimum": 1,
            "maximum": 365,
            "description": "Optional freshness window in days."
          }
        }
      },
      "output_schema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "additionalProperties": false,
        "required": [
          "query",
          "results",
          "count"
        ],
        "properties": {
          "query": {
            "type": "string"
          },
          "count": {
            "type": "integer",
            "minimum": 0
          },
          "results": {
            "type": "array",
            "minItems": 0,
            "maxItems": 10,
            "items": {
              "type": "object",
              "additionalProperties": false,
              "required": [
                "rank",
                "title",
                "url",
                "snippet",
                "domain"
              ],
              "properties": {
                "rank": {
                  "type": "integer",
                  "minimum": 1
                },
                "title": {
                  "type": "string",
                  "minLength": 1
                },
                "url": {
                  "type": "string",
                  "format": "uri",
                  "pattern": "^https?://"
                },
                "snippet": {
                  "type": "string"
                },
                "domain": {
                  "type": "string",
                  "minLength": 1
                }
              }
            }
          }
        }
      },
      "max_runtime_seconds": 30,
      "endpoint": "https://openworker.etips.me/api/services/web_search_proxy_x402"
    }
  ]
}