{
  "openapi": "3.1.0",
  "info": {
    "title": "TaskMint x402 agent jobs",
    "version": "0.5.0",
    "x-guidance": "POST a service payload with a fresh cryptographically random 32-byte lowercase hex request_token. Persist the exact body and reuse it for x402 challenge, signed retry and recovery. Validate native USDC, Base, price and recipient before the buyer signs. No signature is needed for free or unresolved results. Recover HTTP 202 using the identical body without a signature; never create another payment to resolve uncertainty.",
    "description": "Exact native USDC on Base; externally owned wallets only. Generate a private 32-byte random request_token for each new job, persist the entire body, and reuse it for challenge/retry and recovery. The token grants result access. Do not log or share it. HTTP 202 or an uncertain transport failure requires recovery with the identical body without a signature, never a new purchase. Results expire after 24 hours. Ten bounded deterministic services. Local execution is free; hosted jobs require customer-authorized payment only when billable."
  },
  "servers": [
    {
      "url": "https://taskmint-sign-proof-node22-production.up.railway.app"
    }
  ],
  "paths": {
    "/api/agent/number_normalize": {
      "post": {
        "x-payment-info": {
          "price": {
            "mode": "fixed",
            "currency": "USD",
            "amount": "0.001000"
          },
          "protocols": [
            {
              "x402": {}
            }
          ]
        },
        "operationId": "number_normalize",
        "summary": "International numbers",
        "description": "Turn explicitly localised number strings into exact decimal strings. Optional currency code; no exchange-rate conversion. 12 explicit locales · Arabic, Thai and Latin digits · up to 100 values",
        "parameters": [
          {
            "in": "header",
            "name": "PAYMENT-SIGNATURE",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 12000
            },
            "description": "Base64 x402 v2 payment payload. Omit for initial challenge and result recovery."
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "required": [
                  "request_token",
                  "payload"
                ],
                "properties": {
                  "request_token": {
                    "type": "string",
                    "pattern": "^[a-f0-9]{64}$",
                    "description": "Generate 32 cryptographically random bytes as lowercase hex for each new job. Keep this private result credential and reuse the identical body for retries. Replace the synthetic example token."
                  },
                  "payload": {
                    "type": "object",
                    "properties": {
                      "values": {
                        "type": "array",
                        "minItems": 1,
                        "maxItems": 100,
                        "items": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 100
                        }
                      },
                      "locale": {
                        "enum": [
                          "en-US",
                          "en-GB",
                          "en-AU",
                          "en-IN",
                          "de-DE",
                          "fr-FR",
                          "es-ES",
                          "pt-BR",
                          "ja-JP",
                          "zh-CN",
                          "ar-EG",
                          "th-TH"
                        ]
                      },
                      "currency": {
                        "type": "string",
                        "pattern": "^[A-Z]{3}$"
                      }
                    },
                    "required": [
                      "values",
                      "locale"
                    ],
                    "additionalProperties": false
                  }
                }
              },
              "example": {
                "request_token": "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef",
                "payload": {
                  "values": [
                    "1.234,50",
                    "9.876,00",
                    "0,99"
                  ],
                  "locale": "de-DE",
                  "currency": "EUR"
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Paid or free result; confirmed payment includes PAYMENT-RESPONSE header",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "state",
                    "service",
                    "result"
                  ],
                  "properties": {
                    "state": {
                      "type": "string",
                      "enum": [
                        "paid",
                        "free"
                      ]
                    },
                    "service": {
                      "const": "number_normalize"
                    },
                    "result": {
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "202": {
            "description": "Settlement uncertain; recover using identical body without signature"
          },
          "402": {
            "description": "PAYMENT-REQUIRED challenge, or rejected authorization; do not sign automatically without validating price, network, token and recipient"
          },
          "409": {
            "description": "Conflicting request token or missing original quote"
          },
          "410": {
            "description": "Unpaid quote expired; no new payment submitted"
          },
          "429": {
            "description": "Rate limited"
          },
          "503": {
            "description": "Temporarily unavailable; preserve original token for recovery"
          }
        }
      }
    },
    "/api/agent/date_normalize": {
      "post": {
        "x-payment-info": {
          "price": {
            "mode": "fixed",
            "currency": "USD",
            "amount": "0.000500"
          },
          "protocols": [
            {
              "x402": {}
            }
          ]
        },
        "operationId": "date_normalize",
        "summary": "Unambiguous dates",
        "description": "Validate numeric Gregorian calendar dates and return YYYY-MM-DD using your declared field order. YMD, DMY or MDY · up to 100 dates · no time-zone inference",
        "parameters": [
          {
            "in": "header",
            "name": "PAYMENT-SIGNATURE",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 12000
            },
            "description": "Base64 x402 v2 payment payload. Omit for initial challenge and result recovery."
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "required": [
                  "request_token",
                  "payload"
                ],
                "properties": {
                  "request_token": {
                    "type": "string",
                    "pattern": "^[a-f0-9]{64}$",
                    "description": "Generate 32 cryptographically random bytes as lowercase hex for each new job. Keep this private result credential and reuse the identical body for retries. Replace the synthetic example token."
                  },
                  "payload": {
                    "type": "object",
                    "properties": {
                      "values": {
                        "type": "array",
                        "minItems": 1,
                        "maxItems": 100,
                        "items": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 100
                        }
                      },
                      "order": {
                        "enum": [
                          "YMD",
                          "DMY",
                          "MDY"
                        ]
                      }
                    },
                    "required": [
                      "values",
                      "order"
                    ],
                    "additionalProperties": false
                  }
                }
              },
              "example": {
                "request_token": "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef",
                "payload": {
                  "values": [
                    "22/09/2026",
                    "01/10/2026",
                    "29/02/2028"
                  ],
                  "order": "DMY"
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Paid or free result; confirmed payment includes PAYMENT-RESPONSE header",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "state",
                    "service",
                    "result"
                  ],
                  "properties": {
                    "state": {
                      "type": "string",
                      "enum": [
                        "paid",
                        "free"
                      ]
                    },
                    "service": {
                      "const": "date_normalize"
                    },
                    "result": {
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "202": {
            "description": "Settlement uncertain; recover using identical body without signature"
          },
          "402": {
            "description": "PAYMENT-REQUIRED challenge, or rejected authorization; do not sign automatically without validating price, network, token and recipient"
          },
          "409": {
            "description": "Conflicting request token or missing original quote"
          },
          "410": {
            "description": "Unpaid quote expired; no new payment submitted"
          },
          "429": {
            "description": "Rate limited"
          },
          "503": {
            "description": "Temporarily unavailable; preserve original token for recovery"
          }
        }
      }
    },
    "/api/agent/unit_convert": {
      "post": {
        "x-payment-info": {
          "price": {
            "mode": "fixed",
            "currency": "USD",
            "amount": "0.000500"
          },
          "protocols": [
            {
              "x402": {}
            }
          ]
        },
        "operationId": "unit_convert",
        "summary": "Compatible unit conversion",
        "description": "Convert measurements within the same dimension, including explicitly US or imperial gallons and temperatures. 30 units · 6 dimensions · up to 100 conversions · numeric approximation",
        "parameters": [
          {
            "in": "header",
            "name": "PAYMENT-SIGNATURE",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 12000
            },
            "description": "Base64 x402 v2 payment payload. Omit for initial challenge and result recovery."
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "required": [
                  "request_token",
                  "payload"
                ],
                "properties": {
                  "request_token": {
                    "type": "string",
                    "pattern": "^[a-f0-9]{64}$",
                    "description": "Generate 32 cryptographically random bytes as lowercase hex for each new job. Keep this private result credential and reuse the identical body for retries. Replace the synthetic example token."
                  },
                  "payload": {
                    "type": "object",
                    "properties": {
                      "items": {
                        "type": "array",
                        "minItems": 1,
                        "maxItems": 100,
                        "items": {
                          "type": "object",
                          "properties": {
                            "value": {
                              "type": "number"
                            },
                            "from": {
                              "enum": [
                                "mm",
                                "cm",
                                "m",
                                "km",
                                "in",
                                "ft",
                                "yd",
                                "mi",
                                "mg",
                                "g",
                                "kg",
                                "t",
                                "oz",
                                "lb",
                                "ml",
                                "l",
                                "m3",
                                "us_gal",
                                "imp_gal",
                                "s",
                                "min",
                                "h",
                                "day",
                                "m2",
                                "ft2",
                                "ha",
                                "acre",
                                "C",
                                "F",
                                "K"
                              ]
                            },
                            "to": {
                              "enum": [
                                "mm",
                                "cm",
                                "m",
                                "km",
                                "in",
                                "ft",
                                "yd",
                                "mi",
                                "mg",
                                "g",
                                "kg",
                                "t",
                                "oz",
                                "lb",
                                "ml",
                                "l",
                                "m3",
                                "us_gal",
                                "imp_gal",
                                "s",
                                "min",
                                "h",
                                "day",
                                "m2",
                                "ft2",
                                "ha",
                                "acre",
                                "C",
                                "F",
                                "K"
                              ]
                            }
                          },
                          "required": [
                            "value",
                            "from",
                            "to"
                          ],
                          "additionalProperties": false
                        }
                      }
                    },
                    "required": [
                      "items"
                    ],
                    "additionalProperties": false
                  }
                }
              },
              "example": {
                "request_token": "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef",
                "payload": {
                  "items": [
                    {
                      "value": 10,
                      "from": "lb",
                      "to": "kg"
                    },
                    {
                      "value": 72,
                      "from": "F",
                      "to": "C"
                    },
                    {
                      "value": 12,
                      "from": "in",
                      "to": "cm"
                    }
                  ]
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Paid or free result; confirmed payment includes PAYMENT-RESPONSE header",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "state",
                    "service",
                    "result"
                  ],
                  "properties": {
                    "state": {
                      "type": "string",
                      "enum": [
                        "paid",
                        "free"
                      ]
                    },
                    "service": {
                      "const": "unit_convert"
                    },
                    "result": {
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "202": {
            "description": "Settlement uncertain; recover using identical body without signature"
          },
          "402": {
            "description": "PAYMENT-REQUIRED challenge, or rejected authorization; do not sign automatically without validating price, network, token and recipient"
          },
          "409": {
            "description": "Conflicting request token or missing original quote"
          },
          "410": {
            "description": "Unpaid quote expired; no new payment submitted"
          },
          "429": {
            "description": "Rate limited"
          },
          "503": {
            "description": "Temporarily unavailable; preserve original token for recovery"
          }
        }
      }
    },
    "/api/agent/record_duplicates": {
      "post": {
        "x-payment-info": {
          "price": {
            "mode": "fixed",
            "currency": "USD",
            "amount": "0.001000"
          },
          "protocols": [
            {
              "x402": {}
            }
          ]
        },
        "operationId": "record_duplicates",
        "summary": "Duplicate record finder",
        "description": "Group records by exact selected keys, with explicit trim/case options. Returns row references without deleting or merging. Any language as data · up to 50 flat records · typed matching",
        "parameters": [
          {
            "in": "header",
            "name": "PAYMENT-SIGNATURE",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 12000
            },
            "description": "Base64 x402 v2 payment payload. Omit for initial challenge and result recovery."
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "required": [
                  "request_token",
                  "payload"
                ],
                "properties": {
                  "request_token": {
                    "type": "string",
                    "pattern": "^[a-f0-9]{64}$",
                    "description": "Generate 32 cryptographically random bytes as lowercase hex for each new job. Keep this private result credential and reuse the identical body for retries. Replace the synthetic example token."
                  },
                  "payload": {
                    "type": "object",
                    "properties": {
                      "records": {
                        "type": "array",
                        "minItems": 1,
                        "maxItems": 50,
                        "items": {
                          "type": "object",
                          "maxProperties": 20,
                          "additionalProperties": {
                            "type": [
                              "string",
                              "number",
                              "boolean",
                              "null"
                            ]
                          }
                        }
                      },
                      "keys": {
                        "type": "array",
                        "minItems": 1,
                        "maxItems": 10,
                        "items": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 100
                        }
                      },
                      "trim": {
                        "type": "boolean"
                      },
                      "ignore_case": {
                        "type": "boolean"
                      }
                    },
                    "required": [
                      "records",
                      "keys"
                    ],
                    "additionalProperties": false
                  }
                }
              },
              "example": {
                "request_token": "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef",
                "payload": {
                  "records": [
                    {
                      "sku": "A-102",
                      "warehouse": "Berlin"
                    },
                    {
                      "sku": "A-102",
                      "warehouse": "Berlin"
                    },
                    {
                      "sku": "A-102",
                      "warehouse": "Tokyo"
                    }
                  ],
                  "keys": [
                    "sku",
                    "warehouse"
                  ]
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Paid or free result; confirmed payment includes PAYMENT-RESPONSE header",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "state",
                    "service",
                    "result"
                  ],
                  "properties": {
                    "state": {
                      "type": "string",
                      "enum": [
                        "paid",
                        "free"
                      ]
                    },
                    "service": {
                      "const": "record_duplicates"
                    },
                    "result": {
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "202": {
            "description": "Settlement uncertain; recover using identical body without signature"
          },
          "402": {
            "description": "PAYMENT-REQUIRED challenge, or rejected authorization; do not sign automatically without validating price, network, token and recipient"
          },
          "409": {
            "description": "Conflicting request token or missing original quote"
          },
          "410": {
            "description": "Unpaid quote expired; no new payment submitted"
          },
          "429": {
            "description": "Rate limited"
          },
          "503": {
            "description": "Temporarily unavailable; preserve original token for recovery"
          }
        }
      }
    },
    "/api/agent/data_check": {
      "post": {
        "x-payment-info": {
          "price": {
            "mode": "fixed",
            "currency": "USD",
            "amount": "0.001000"
          },
          "protocols": [
            {
              "x402": {}
            }
          ]
        },
        "operationId": "data_check",
        "summary": "Data contract check",
        "description": "Check required fields, scalar types, numeric limits and unexpected fields. Reports exact rows and issues; never coerces values. Any language as data · up to 50 flat records · up to 20 rules",
        "parameters": [
          {
            "in": "header",
            "name": "PAYMENT-SIGNATURE",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 12000
            },
            "description": "Base64 x402 v2 payment payload. Omit for initial challenge and result recovery."
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "required": [
                  "request_token",
                  "payload"
                ],
                "properties": {
                  "request_token": {
                    "type": "string",
                    "pattern": "^[a-f0-9]{64}$",
                    "description": "Generate 32 cryptographically random bytes as lowercase hex for each new job. Keep this private result credential and reuse the identical body for retries. Replace the synthetic example token."
                  },
                  "payload": {
                    "type": "object",
                    "properties": {
                      "records": {
                        "type": "array",
                        "minItems": 1,
                        "maxItems": 50,
                        "items": {
                          "type": "object",
                          "maxProperties": 20,
                          "additionalProperties": {
                            "type": [
                              "string",
                              "number",
                              "boolean",
                              "null"
                            ]
                          }
                        }
                      },
                      "rules": {
                        "type": "object",
                        "minProperties": 1,
                        "maxProperties": 20,
                        "additionalProperties": {
                          "type": "object",
                          "properties": {
                            "type": {
                              "enum": [
                                "string",
                                "number",
                                "integer",
                                "boolean"
                              ]
                            },
                            "required": {
                              "type": "boolean"
                            },
                            "nullable": {
                              "type": "boolean"
                            },
                            "min": {
                              "type": "number"
                            },
                            "max": {
                              "type": "number"
                            }
                          },
                          "required": [
                            "type"
                          ],
                          "additionalProperties": false
                        }
                      },
                      "allow_extra": {
                        "type": "boolean"
                      }
                    },
                    "required": [
                      "records",
                      "rules"
                    ],
                    "additionalProperties": false
                  }
                }
              },
              "example": {
                "request_token": "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef",
                "payload": {
                  "records": [
                    {
                      "sku": "A-102",
                      "price": 29.95,
                      "stock": 4
                    },
                    {
                      "sku": "B-204",
                      "price": "19.95",
                      "stock": -1
                    }
                  ],
                  "rules": {
                    "sku": {
                      "type": "string",
                      "required": true
                    },
                    "price": {
                      "type": "number",
                      "required": true,
                      "min": 0
                    },
                    "stock": {
                      "type": "integer",
                      "required": true,
                      "min": 0
                    }
                  },
                  "allow_extra": false
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Paid or free result; confirmed payment includes PAYMENT-RESPONSE header",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "state",
                    "service",
                    "result"
                  ],
                  "properties": {
                    "state": {
                      "type": "string",
                      "enum": [
                        "paid",
                        "free"
                      ]
                    },
                    "service": {
                      "const": "data_check"
                    },
                    "result": {
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "202": {
            "description": "Settlement uncertain; recover using identical body without signature"
          },
          "402": {
            "description": "PAYMENT-REQUIRED challenge, or rejected authorization; do not sign automatically without validating price, network, token and recipient"
          },
          "409": {
            "description": "Conflicting request token or missing original quote"
          },
          "410": {
            "description": "Unpaid quote expired; no new payment submitted"
          },
          "429": {
            "description": "Rate limited"
          },
          "503": {
            "description": "Temporarily unavailable; preserve original token for recovery"
          }
        }
      }
    },
    "/api/agent/catalog_audit": {
      "post": {
        "x-payment-info": {
          "price": {
            "mode": "fixed",
            "currency": "USD",
            "amount": "0.005000"
          },
          "protocols": [
            {
              "x402": {}
            }
          ]
        },
        "operationId": "catalog_audit",
        "summary": "Catalogue import audit",
        "description": "Check product identities, duplicate IDs and localised prices in one import-readiness report. Returns row-level fixes and exact normalised prices. Up to 50 flat rows · 12 price locales · explicit currency · supplied data only",
        "parameters": [
          {
            "in": "header",
            "name": "PAYMENT-SIGNATURE",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 12000
            },
            "description": "Base64 x402 v2 payment payload. Omit for initial challenge and result recovery."
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "required": [
                  "request_token",
                  "payload"
                ],
                "properties": {
                  "request_token": {
                    "type": "string",
                    "pattern": "^[a-f0-9]{64}$",
                    "description": "Generate 32 cryptographically random bytes as lowercase hex for each new job. Keep this private result credential and reuse the identical body for retries. Replace the synthetic example token."
                  },
                  "payload": {
                    "type": "object",
                    "properties": {
                      "records": {
                        "type": "array",
                        "maxItems": 50,
                        "items": {
                          "type": "object",
                          "maxProperties": 20,
                          "additionalProperties": {
                            "type": [
                              "string",
                              "number",
                              "boolean",
                              "null"
                            ]
                          }
                        },
                        "minItems": 1
                      },
                      "id_field": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 100
                      },
                      "price_field": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 100
                      },
                      "locale": {
                        "enum": [
                          "en-US",
                          "en-GB",
                          "en-AU",
                          "en-IN",
                          "de-DE",
                          "fr-FR",
                          "es-ES",
                          "pt-BR",
                          "ja-JP",
                          "zh-CN",
                          "ar-EG",
                          "th-TH"
                        ]
                      },
                      "currency": {
                        "type": "string",
                        "pattern": "^[A-Z]{3}$"
                      }
                    },
                    "required": [
                      "records",
                      "id_field",
                      "price_field",
                      "locale",
                      "currency"
                    ],
                    "additionalProperties": false
                  }
                }
              },
              "example": {
                "request_token": "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef",
                "payload": {
                  "records": [
                    {
                      "sku": "A-10",
                      "price": "1.234,50"
                    },
                    {
                      "sku": "B-20",
                      "price": "29,95"
                    }
                  ],
                  "id_field": "sku",
                  "price_field": "price",
                  "locale": "de-DE",
                  "currency": "EUR"
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Paid or free result; confirmed payment includes PAYMENT-RESPONSE header",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "state",
                    "service",
                    "result"
                  ],
                  "properties": {
                    "state": {
                      "type": "string",
                      "enum": [
                        "paid",
                        "free"
                      ]
                    },
                    "service": {
                      "const": "catalog_audit"
                    },
                    "result": {
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "202": {
            "description": "Settlement uncertain; recover using identical body without signature"
          },
          "402": {
            "description": "PAYMENT-REQUIRED challenge, or rejected authorization; do not sign automatically without validating price, network, token and recipient"
          },
          "409": {
            "description": "Conflicting request token or missing original quote"
          },
          "410": {
            "description": "Unpaid quote expired; no new payment submitted"
          },
          "429": {
            "description": "Rate limited"
          },
          "503": {
            "description": "Temporarily unavailable; preserve original token for recovery"
          }
        }
      }
    },
    "/api/agent/record_reconcile": {
      "post": {
        "x-payment-info": {
          "price": {
            "mode": "fixed",
            "currency": "USD",
            "amount": "0.005000"
          },
          "protocols": [
            {
              "x402": {}
            }
          ]
        },
        "operationId": "record_reconcile",
        "summary": "Dataset reconciliation",
        "description": "Match two supplied datasets by a typed identity key and report added, removed and changed records. Ambiguous identities stop the comparison. Up to 50 rows on each side · 10 selected fields · exact typed keys",
        "parameters": [
          {
            "in": "header",
            "name": "PAYMENT-SIGNATURE",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 12000
            },
            "description": "Base64 x402 v2 payment payload. Omit for initial challenge and result recovery."
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "required": [
                  "request_token",
                  "payload"
                ],
                "properties": {
                  "request_token": {
                    "type": "string",
                    "pattern": "^[a-f0-9]{64}$",
                    "description": "Generate 32 cryptographically random bytes as lowercase hex for each new job. Keep this private result credential and reuse the identical body for retries. Replace the synthetic example token."
                  },
                  "payload": {
                    "type": "object",
                    "properties": {
                      "before": {
                        "type": "array",
                        "maxItems": 50,
                        "items": {
                          "type": "object",
                          "maxProperties": 20,
                          "additionalProperties": {
                            "type": [
                              "string",
                              "number",
                              "boolean",
                              "null"
                            ]
                          }
                        }
                      },
                      "after": {
                        "type": "array",
                        "maxItems": 50,
                        "items": {
                          "type": "object",
                          "maxProperties": 20,
                          "additionalProperties": {
                            "type": [
                              "string",
                              "number",
                              "boolean",
                              "null"
                            ]
                          }
                        }
                      },
                      "key": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 100
                      },
                      "fields": {
                        "type": "array",
                        "minItems": 1,
                        "maxItems": 10,
                        "uniqueItems": true,
                        "items": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 100
                        }
                      }
                    },
                    "required": [
                      "before",
                      "after",
                      "key",
                      "fields"
                    ],
                    "additionalProperties": false
                  }
                }
              },
              "example": {
                "request_token": "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef",
                "payload": {
                  "before": [
                    {
                      "id": "A",
                      "stock": 12,
                      "price": 29
                    },
                    {
                      "id": "B",
                      "stock": 5,
                      "price": 19
                    }
                  ],
                  "after": [
                    {
                      "id": "A",
                      "stock": 10,
                      "price": 29
                    },
                    {
                      "id": "C",
                      "stock": 8,
                      "price": 39
                    }
                  ],
                  "key": "id",
                  "fields": [
                    "stock",
                    "price"
                  ]
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Paid or free result; confirmed payment includes PAYMENT-RESPONSE header",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "state",
                    "service",
                    "result"
                  ],
                  "properties": {
                    "state": {
                      "type": "string",
                      "enum": [
                        "paid",
                        "free"
                      ]
                    },
                    "service": {
                      "const": "record_reconcile"
                    },
                    "result": {
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "202": {
            "description": "Settlement uncertain; recover using identical body without signature"
          },
          "402": {
            "description": "PAYMENT-REQUIRED challenge, or rejected authorization; do not sign automatically without validating price, network, token and recipient"
          },
          "409": {
            "description": "Conflicting request token or missing original quote"
          },
          "410": {
            "description": "Unpaid quote expired; no new payment submitted"
          },
          "429": {
            "description": "Rate limited"
          },
          "503": {
            "description": "Temporarily unavailable; preserve original token for recovery"
          }
        }
      }
    },
    "/api/agent/invoice_arithmetic": {
      "post": {
        "x-payment-info": {
          "price": {
            "mode": "fixed",
            "currency": "USD",
            "amount": "0.005000"
          },
          "protocols": [
            {
              "x402": {}
            }
          ]
        },
        "operationId": "invoice_arithmetic",
        "summary": "Invoice arithmetic check",
        "description": "Verify line extensions, subtotal and final total using exact integer arithmetic. You supply currency, decimal scale, tax and discount amounts. Up to 50 lines · integer quantities · amounts as signed minor-unit strings",
        "parameters": [
          {
            "in": "header",
            "name": "PAYMENT-SIGNATURE",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 12000
            },
            "description": "Base64 x402 v2 payment payload. Omit for initial challenge and result recovery."
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "required": [
                  "request_token",
                  "payload"
                ],
                "properties": {
                  "request_token": {
                    "type": "string",
                    "pattern": "^[a-f0-9]{64}$",
                    "description": "Generate 32 cryptographically random bytes as lowercase hex for each new job. Keep this private result credential and reuse the identical body for retries. Replace the synthetic example token."
                  },
                  "payload": {
                    "type": "object",
                    "properties": {
                      "currency": {
                        "type": "string",
                        "pattern": "^[A-Z]{3}$"
                      },
                      "scale": {
                        "type": "integer",
                        "minimum": 0,
                        "maximum": 4
                      },
                      "lines": {
                        "type": "array",
                        "minItems": 1,
                        "maxItems": 50,
                        "items": {
                          "type": "object",
                          "properties": {
                            "quantity": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 1000000
                            },
                            "unit_minor": {
                              "type": "string",
                              "pattern": "^-?(0|[1-9][0-9]{0,17})$"
                            },
                            "line_minor": {
                              "type": "string",
                              "pattern": "^-?(0|[1-9][0-9]{0,17})$"
                            }
                          },
                          "required": [
                            "quantity",
                            "unit_minor",
                            "line_minor"
                          ],
                          "additionalProperties": false
                        }
                      },
                      "subtotal_minor": {
                        "type": "string",
                        "pattern": "^-?(0|[1-9][0-9]{0,17})$"
                      },
                      "tax_minor": {
                        "type": "string",
                        "pattern": "^-?(0|[1-9][0-9]{0,17})$"
                      },
                      "shipping_minor": {
                        "type": "string",
                        "pattern": "^-?(0|[1-9][0-9]{0,17})$"
                      },
                      "discount_minor": {
                        "type": "string",
                        "pattern": "^-?(0|[1-9][0-9]{0,17})$"
                      },
                      "total_minor": {
                        "type": "string",
                        "pattern": "^-?(0|[1-9][0-9]{0,17})$"
                      }
                    },
                    "required": [
                      "currency",
                      "scale",
                      "lines",
                      "subtotal_minor",
                      "tax_minor",
                      "shipping_minor",
                      "discount_minor",
                      "total_minor"
                    ],
                    "additionalProperties": false
                  }
                }
              },
              "example": {
                "request_token": "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef",
                "payload": {
                  "currency": "USD",
                  "scale": 2,
                  "lines": [
                    {
                      "quantity": 3,
                      "unit_minor": "1999",
                      "line_minor": "5997"
                    },
                    {
                      "quantity": 2,
                      "unit_minor": "500",
                      "line_minor": "1000"
                    }
                  ],
                  "subtotal_minor": "6997",
                  "tax_minor": "700",
                  "shipping_minor": "500",
                  "discount_minor": "200",
                  "total_minor": "7997"
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Paid or free result; confirmed payment includes PAYMENT-RESPONSE header",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "state",
                    "service",
                    "result"
                  ],
                  "properties": {
                    "state": {
                      "type": "string",
                      "enum": [
                        "paid",
                        "free"
                      ]
                    },
                    "service": {
                      "const": "invoice_arithmetic"
                    },
                    "result": {
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "202": {
            "description": "Settlement uncertain; recover using identical body without signature"
          },
          "402": {
            "description": "PAYMENT-REQUIRED challenge, or rejected authorization; do not sign automatically without validating price, network, token and recipient"
          },
          "409": {
            "description": "Conflicting request token or missing original quote"
          },
          "410": {
            "description": "Unpaid quote expired; no new payment submitted"
          },
          "429": {
            "description": "Rate limited"
          },
          "503": {
            "description": "Temporarily unavailable; preserve original token for recovery"
          }
        }
      }
    },
    "/api/agent/field_diff": {
      "post": {
        "x-payment-info": {
          "price": {
            "mode": "fixed",
            "currency": "USD",
            "amount": "0.000500"
          },
          "protocols": [
            {
              "x402": {}
            }
          ]
        },
        "operationId": "field_diff",
        "summary": "Field change receipt",
        "description": "Compare selected fields in supplied snapshots, preserving exact values and types. Any language as data · up to 30 selected fields · no live fetching",
        "parameters": [
          {
            "in": "header",
            "name": "PAYMENT-SIGNATURE",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 12000
            },
            "description": "Base64 x402 v2 payment payload. Omit for initial challenge and result recovery."
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "required": [
                  "request_token",
                  "payload"
                ],
                "properties": {
                  "request_token": {
                    "type": "string",
                    "pattern": "^[a-f0-9]{64}$",
                    "description": "Generate 32 cryptographically random bytes as lowercase hex for each new job. Keep this private result credential and reuse the identical body for retries. Replace the synthetic example token."
                  },
                  "payload": {
                    "type": "object",
                    "properties": {
                      "before": {
                        "type": "object"
                      },
                      "after": {
                        "type": "object"
                      },
                      "fields": {
                        "type": "array",
                        "items": {
                          "type": "string"
                        },
                        "minItems": 1,
                        "maxItems": 30
                      }
                    },
                    "required": [
                      "before",
                      "after",
                      "fields"
                    ],
                    "additionalProperties": false
                  }
                }
              },
              "example": {
                "request_token": "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef",
                "payload": {
                  "before": {
                    "price": 49.95,
                    "stock": 20,
                    "status": "available"
                  },
                  "after": {
                    "price": 44.95,
                    "stock": 16,
                    "status": "available"
                  },
                  "fields": [
                    "price",
                    "stock",
                    "status"
                  ]
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Paid or free result; confirmed payment includes PAYMENT-RESPONSE header",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "state",
                    "service",
                    "result"
                  ],
                  "properties": {
                    "state": {
                      "type": "string",
                      "enum": [
                        "paid",
                        "free"
                      ]
                    },
                    "service": {
                      "const": "field_diff"
                    },
                    "result": {
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "202": {
            "description": "Settlement uncertain; recover using identical body without signature"
          },
          "402": {
            "description": "PAYMENT-REQUIRED challenge, or rejected authorization; do not sign automatically without validating price, network, token and recipient"
          },
          "409": {
            "description": "Conflicting request token or missing original quote"
          },
          "410": {
            "description": "Unpaid quote expired; no new payment submitted"
          },
          "429": {
            "description": "Rate limited"
          },
          "503": {
            "description": "Temporarily unavailable; preserve original token for recovery"
          }
        }
      }
    },
    "/api/agent/listing_terms": {
      "post": {
        "x-payment-info": {
          "price": {
            "mode": "fixed",
            "currency": "USD",
            "amount": "0.002000"
          },
          "protocols": [
            {
              "x402": {}
            }
          ]
        },
        "operationId": "listing_terms",
        "summary": "Thai rental terms",
        "description": "Resolve explicit Thai/English rent, security deposit and advance rent with source evidence. THB only. Thai/English · THB only · supplied text, up to 10,000 characters",
        "parameters": [
          {
            "in": "header",
            "name": "PAYMENT-SIGNATURE",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 12000
            },
            "description": "Base64 x402 v2 payment payload. Omit for initial challenge and result recovery."
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "required": [
                  "request_token",
                  "payload"
                ],
                "properties": {
                  "request_token": {
                    "type": "string",
                    "pattern": "^[a-f0-9]{64}$",
                    "description": "Generate 32 cryptographically random bytes as lowercase hex for each new job. Keep this private result credential and reuse the identical body for retries. Replace the synthetic example token."
                  },
                  "payload": {
                    "type": "object",
                    "properties": {
                      "text": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 10000
                      }
                    },
                    "required": [
                      "text"
                    ],
                    "additionalProperties": false
                  }
                }
              },
              "example": {
                "request_token": "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef",
                "payload": {
                  "text": "ค่าเช่า 12,000 บาท/เดือน ประกัน 2 เดือน ล่วงหน้า 1 เดือน"
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Paid or free result; confirmed payment includes PAYMENT-RESPONSE header",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "state",
                    "service",
                    "result"
                  ],
                  "properties": {
                    "state": {
                      "type": "string",
                      "enum": [
                        "paid",
                        "free"
                      ]
                    },
                    "service": {
                      "const": "listing_terms"
                    },
                    "result": {
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "202": {
            "description": "Settlement uncertain; recover using identical body without signature"
          },
          "402": {
            "description": "PAYMENT-REQUIRED challenge, or rejected authorization; do not sign automatically without validating price, network, token and recipient"
          },
          "409": {
            "description": "Conflicting request token or missing original quote"
          },
          "410": {
            "description": "Unpaid quote expired; no new payment submitted"
          },
          "429": {
            "description": "Rate limited"
          },
          "503": {
            "description": "Temporarily unavailable; preserve original token for recovery"
          }
        }
      }
    }
  }
}