{
  "protocolVersion": "0.3.0",
  "name": "Kenward Payable API",
  "description": "Machine-payable verification API: did this address or service actually receive money on Base — how much, from how many senders, and when last. Payment settles in USDC; no account, no API key.",
  "url": "https://pay.kenwardai.my.id",
  "preferredTransport": "HTTP+JSON",
  "version": "1.0",
  "provider": {
    "organization": "Kenward",
    "url": "https://pay.kenwardai.my.id"
  },
  "documentationUrl": "https://pay.kenwardai.my.id/llms.txt",
  "capabilities": {
    "streaming": false,
    "pushNotifications": false,
    "stateTransitionHistory": false
  },
  "defaultInputModes": [
    "application/json"
  ],
  "defaultOutputModes": [
    "application/json"
  ],
  "skills": [
    {
      "id": "-get",
      "name": "GET /",
      "description": "free endpoint (no payment, no auth)",
      "tags": [
        "x402",
        "free"
      ]
    },
    {
      "id": ".well-known-mcp-get",
      "name": "GET /.well-known/mcp",
      "description": "free endpoint (no payment, no auth)",
      "tags": [
        "x402",
        "free"
      ]
    },
    {
      "id": ".well-known-x402-get",
      "name": "GET /.well-known/x402",
      "description": "free endpoint (no payment, no auth)",
      "tags": [
        "x402",
        "free"
      ]
    },
    {
      "id": "health-get",
      "name": "GET /health",
      "description": "free endpoint (no payment, no auth)",
      "tags": [
        "x402",
        "free"
      ]
    },
    {
      "id": "llms.txt-get",
      "name": "GET /llms.txt",
      "description": "free endpoint (no payment, no auth)",
      "tags": [
        "x402",
        "free"
      ]
    },
    {
      "id": "mcp-get",
      "name": "GET /mcp",
      "description": "free endpoint (no payment, no auth)",
      "tags": [
        "x402",
        "free"
      ]
    },
    {
      "id": "proof-get",
      "name": "GET /proof",
      "description": "free endpoint (no payment, no auth)",
      "tags": [
        "x402",
        "free"
      ]
    },
    {
      "id": "robots.txt-get",
      "name": "GET /robots.txt",
      "description": "free endpoint (no payment, no auth)",
      "tags": [
        "x402",
        "free"
      ]
    },
    {
      "id": "v1-attestation-get",
      "name": "GET /v1/attestation",
      "description": "Use when a seller needs proof it can publish and a buyer must verify it without trusting the seller: signed attestation of third-party USDC received over 30 days, with an",
      "tags": [
        "x402",
        "paid"
      ]
    },
    {
      "id": "v1-attestation-post",
      "name": "POST /v1/attestation",
      "description": "Use when a seller needs proof it can publish and a buyer must verify it without trusting the seller: signed attestation of third-party USDC received over 30 days, with an",
      "tags": [
        "x402",
        "paid"
      ]
    },
    {
      "id": "v1-buyer-get",
      "name": "GET /v1/buyer",
      "description": "Use when a job poster's payment history decides whether the work is worth taking: has this poster ever paid anyone in this market? Returns the observed payment record wit",
      "tags": [
        "x402",
        "paid"
      ]
    },
    {
      "id": "v1-buyer-post",
      "name": "POST /v1/buyer",
      "description": "Use when a job poster's payment history decides whether the work is worth taking: has this poster ever paid anyone in this market? Returns the observed payment record wit",
      "tags": [
        "x402",
        "paid"
      ]
    },
    {
      "id": "v1-payability-get",
      "name": "GET /v1/payability",
      "description": "Use when an agent must choose which marketplace to spend effort in: how crowded is it (bids per job, measured), and does money actually move here (payer share, buyer beha",
      "tags": [
        "x402",
        "paid"
      ]
    },
    {
      "id": "v1-payability-post",
      "name": "POST /v1/payability",
      "description": "Use when an agent must choose which marketplace to spend effort in: how crowded is it (bids per job, measured), and does money actually move here (payer share, buyer beha",
      "tags": [
        "x402",
        "paid"
      ]
    },
    {
      "id": "v1-pdf-get",
      "name": "GET /v1/pdf",
      "description": "Use when an agent must read a PDF (report, filing, invoice, paper) without a browser: page-by-page text-layer extraction, ready for indexing or summarising. Batch mode: r",
      "tags": [
        "x402",
        "paid"
      ]
    },
    {
      "id": "v1-pdf-post",
      "name": "POST /v1/pdf",
      "description": "Use when an agent must read a PDF (report, filing, invoice, paper) without a browser: page-by-page text-layer extraction, ready for indexing or summarising. Batch mode: r",
      "tags": [
        "x402",
        "paid"
      ]
    },
    {
      "id": "v1-preview-get",
      "name": "GET /v1/preview",
      "description": "free endpoint (no payment, no auth)",
      "tags": [
        "x402",
        "free"
      ]
    },
    {
      "id": "v1-readable-get",
      "name": "GET /v1/readable",
      "description": "Use when an agent needs a web page as clean text for RAG, LLM prompts or indexing: fetched server-side, boilerplate/ads/nav stripped, returned as title + headings + parag",
      "tags": [
        "x402",
        "paid"
      ]
    },
    {
      "id": "v1-readable-post",
      "name": "POST /v1/readable",
      "description": "Use when an agent needs a web page as clean text for RAG, LLM prompts or indexing: fetched server-side, boilerplate/ads/nav stripped, returned as title + headings + parag",
      "tags": [
        "x402",
        "paid"
      ]
    },
    {
      "id": "v1-settlement-get",
      "name": "GET /v1/settlement",
      "description": "Use when an agent must decide whether an address or x402 service has actually received USDC from anyone other than its operator - before paying it, listing it, or trustin",
      "tags": [
        "x402",
        "paid"
      ]
    },
    {
      "id": "v1-settlement-post",
      "name": "POST /v1/settlement",
      "description": "Use when an agent must decide whether an address or x402 service has actually received USDC from anyone other than its operator - before paying it, listing it, or trustin",
      "tags": [
        "x402",
        "paid"
      ]
    },
    {
      "id": "v1-settlements-get",
      "name": "GET /v1/settlements",
      "description": "Use when a directory or marketplace must check MANY payTo addresses in one call (max 25): third-party USDC received on Base, sender count, first/last seen and aggregates,",
      "tags": [
        "x402",
        "paid"
      ]
    },
    {
      "id": "v1-settlements-post",
      "name": "POST /v1/settlements",
      "description": "Use when a directory or marketplace must check MANY payTo addresses in one call (max 25): third-party USDC received on Base, sender count, first/last seen and aggregates,",
      "tags": [
        "x402",
        "paid"
      ]
    },
    {
      "id": "v1-transcript-get",
      "name": "GET /v1/transcript",
      "description": "Use when an agent needs what was actually said in a video: timestamped transcript segments as machine-readable text, ready for summarising, indexing, subtitling or RAG in",
      "tags": [
        "x402",
        "paid"
      ]
    },
    {
      "id": "v1-transcript-post",
      "name": "POST /v1/transcript",
      "description": "Use when an agent needs what was actually said in a video: timestamped transcript segments as machine-readable text, ready for summarising, indexing, subtitling or RAG in",
      "tags": [
        "x402",
        "paid"
      ]
    },
    {
      "id": "v1-uptime-get",
      "name": "GET /v1/uptime",
      "description": "Use when a service must be checked before your agent depends on it: reachability, HTTP status and latency, measured now from our side, with the measurement time attached.",
      "tags": [
        "x402",
        "paid"
      ]
    },
    {
      "id": "v1-uptime-post",
      "name": "POST /v1/uptime",
      "description": "Use when a service must be checked before your agent depends on it: reachability, HTTP status and latency, measured now from our side, with the measurement time attached.",
      "tags": [
        "x402",
        "paid"
      ]
    },
    {
      "id": "v1-venue-get",
      "name": "GET /v1/venue",
      "description": "Use when you need to know whether an agent marketplace is paying today, before you list on it or spend effort there: venue status with measured, dated evidence and an exp",
      "tags": [
        "x402",
        "paid"
      ]
    },
    {
      "id": "v1-venue-post",
      "name": "POST /v1/venue",
      "description": "Use when you need to know whether an agent marketplace is paying today, before you list on it or spend effort there: venue status with measured, dated evidence and an exp",
      "tags": [
        "x402",
        "paid"
      ]
    }
  ],
  "securitySchemes": {
    "x402": {
      "type": "x402",
      "network": "eip155:8453",
      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
      "payTo": "0x351eb3679f817ea7de8baeCbaF3Bd5120200eadc"
    }
  },
  "generatedFrom": [
    "/openapi.json",
    "/.well-known/x402"
  ],
  "generatedAt": "2026-10-31T06:31:08Z"
}
