{
  "version": "0.5.0",
  "payment_status": "https://taskmint-sign-proof-node22-production.up.railway.app/api/checkout/status",
  "local_execution": "free",
  "services": [
    {
      "id": "number_normalize",
      "name": "International numbers",
      "category": "Commerce & finance",
      "price_microusd": 1000,
      "description": "Turn explicitly localised number strings into exact decimal strings. Optional currency code; no exchange-rate conversion.",
      "coverage": "12 explicit locales · Arabic, Thai and Latin digits · up to 100 values",
      "billable": "One fully resolved batch, up to 100 values. Any unresolved value makes the entire batch free.",
      "input_schema": {
        "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": {
        "values": [
          "1.234,50",
          "9.876,00",
          "0,99"
        ],
        "locale": "de-DE",
        "currency": "EUR"
      },
      "challenge": {
        "values": [
          "1,234.50",
          "1.234,50"
        ],
        "locale": "de-DE",
        "currency": "EUR"
      },
      "use_cases": [
        "Supplier quotes",
        "Product feeds",
        "Invoice imports"
      ]
    },
    {
      "id": "date_normalize",
      "name": "Unambiguous dates",
      "category": "Operations & scheduling",
      "price_microusd": 500,
      "description": "Validate numeric Gregorian calendar dates and return YYYY-MM-DD using your declared field order.",
      "coverage": "YMD, DMY or MDY · up to 100 dates · no time-zone inference",
      "billable": "One fully resolved batch, up to 100 dates. Invalid or unsupported dates make the entire batch free.",
      "input_schema": {
        "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": {
        "values": [
          "22/09/2026",
          "01/10/2026",
          "29/02/2028"
        ],
        "order": "DMY"
      },
      "challenge": {
        "values": [
          "29/02/2026",
          "31/04/2026"
        ],
        "order": "DMY"
      },
      "use_cases": [
        "Shipment dates",
        "Bookings",
        "CRM imports"
      ]
    },
    {
      "id": "unit_convert",
      "name": "Compatible unit conversion",
      "category": "Commerce & logistics",
      "price_microusd": 500,
      "description": "Convert measurements within the same dimension, including explicitly US or imperial gallons and temperatures.",
      "coverage": "30 units · 6 dimensions · up to 100 conversions · numeric approximation",
      "billable": "One fully resolved batch, up to 100 conversions. Incompatible or out-of-range values make the entire batch free.",
      "input_schema": {
        "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": {
        "items": [
          {
            "value": 10,
            "from": "lb",
            "to": "kg"
          },
          {
            "value": 72,
            "from": "F",
            "to": "C"
          },
          {
            "value": 12,
            "from": "in",
            "to": "cm"
          }
        ]
      },
      "challenge": {
        "items": [
          {
            "value": 10,
            "from": "kg",
            "to": "l"
          },
          {
            "value": -5,
            "from": "K",
            "to": "C"
          }
        ]
      },
      "use_cases": [
        "Shipping",
        "Product specifications",
        "Procurement"
      ]
    },
    {
      "id": "record_duplicates",
      "name": "Duplicate record finder",
      "category": "Data operations",
      "price_microusd": 1000,
      "description": "Group records by exact selected keys, with explicit trim/case options. Returns row references without deleting or merging.",
      "coverage": "Any language as data · up to 50 flat records · typed matching",
      "billable": "One complete comparison, up to 50 records. Missing keys make the entire comparison free.",
      "input_schema": {
        "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": {
        "records": [
          {
            "sku": "A-102",
            "warehouse": "Berlin"
          },
          {
            "sku": "A-102",
            "warehouse": "Berlin"
          },
          {
            "sku": "A-102",
            "warehouse": "Tokyo"
          }
        ],
        "keys": [
          "sku",
          "warehouse"
        ]
      },
      "challenge": {
        "records": [
          {
            "sku": "A-102"
          },
          {
            "name": "Missing SKU"
          },
          {
            "sku": "A-102"
          }
        ],
        "keys": [
          "sku"
        ]
      },
      "use_cases": [
        "Inventory",
        "CRM hygiene",
        "Catalogue imports"
      ]
    },
    {
      "id": "data_check",
      "name": "Data contract check",
      "category": "Data operations",
      "price_microusd": 1000,
      "description": "Check required fields, scalar types, numeric limits and unexpected fields. Reports exact rows and issues; never coerces values.",
      "coverage": "Any language as data · up to 50 flat records · up to 20 rules",
      "billable": "One completed diagnostic report, up to 50 records. A report identifying bad data is still a completed result.",
      "input_schema": {
        "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": {
        "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
      },
      "challenge": {
        "records": [
          {
            "sku": null,
            "price": "free"
          }
        ],
        "rules": {
          "sku": {
            "type": "string",
            "required": true
          },
          "price": {
            "type": "number",
            "required": true,
            "min": 0
          }
        }
      },
      "use_cases": [
        "API handoffs",
        "Ecommerce",
        "Automation QA"
      ]
    },
    {
      "id": "catalog_audit",
      "name": "Catalogue import audit",
      "category": "Commerce workflows",
      "price_microusd": 5000,
      "description": "Check product identities, duplicate IDs and localised prices in one import-readiness report. Returns row-level fixes and exact normalised prices.",
      "coverage": "Up to 50 flat rows · 12 price locales · explicit currency · supplied data only",
      "billable": "One completed diagnostic, including reports that find invalid products. No upload to a store.",
      "input_schema": {
        "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": {
        "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"
      },
      "challenge": {
        "records": [
          {
            "sku": "A-10",
            "price": "29,95"
          },
          {
            "sku": "A-10",
            "price": "USD 12"
          },
          {
            "price": "-5,00"
          }
        ],
        "id_field": "sku",
        "price_field": "price",
        "locale": "de-DE",
        "currency": "EUR"
      },
      "use_cases": [
        "Supplier feeds",
        "Store migrations",
        "Marketplace preparation"
      ]
    },
    {
      "id": "record_reconcile",
      "name": "Dataset reconciliation",
      "category": "Operations workflows",
      "price_microusd": 5000,
      "description": "Match two supplied datasets by a typed identity key and report added, removed and changed records. Ambiguous identities stop the comparison.",
      "coverage": "Up to 50 rows on each side · 10 selected fields · exact typed keys",
      "billable": "One completed comparison. Missing or duplicate identities require review and are free.",
      "input_schema": {
        "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": {
        "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"
        ]
      },
      "challenge": {
        "before": [
          {
            "id": "A",
            "stock": 1
          },
          {
            "id": "A",
            "stock": 2
          }
        ],
        "after": [
          {
            "id": "A",
            "stock": 3
          }
        ],
        "key": "id",
        "fields": [
          "stock"
        ]
      },
      "use_cases": [
        "Inventory reconciliation",
        "CRM migrations",
        "Supplier price changes"
      ]
    },
    {
      "id": "invoice_arithmetic",
      "name": "Invoice arithmetic check",
      "category": "Finance operations",
      "price_microusd": 5000,
      "description": "Verify line extensions, subtotal and final total using exact integer arithmetic. You supply currency, decimal scale, tax and discount amounts.",
      "coverage": "Up to 50 lines · integer quantities · amounts as signed minor-unit strings",
      "billable": "One completed diagnostic, even if arithmetic mismatches are found. No tax calculation, accounting approval or document extraction.",
      "input_schema": {
        "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": {
        "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"
      },
      "challenge": {
        "currency": "USD",
        "scale": 2,
        "lines": [
          {
            "quantity": 3,
            "unit_minor": "1999",
            "line_minor": "6000"
          }
        ],
        "subtotal_minor": "6000",
        "tax_minor": "0",
        "shipping_minor": "0",
        "discount_minor": "0",
        "total_minor": "6000"
      },
      "use_cases": [
        "Invoice intake",
        "Order totals",
        "Procurement controls"
      ]
    },
    {
      "id": "field_diff",
      "name": "Field change receipt",
      "category": "Monitoring & operations",
      "price_microusd": 500,
      "description": "Compare selected fields in supplied snapshots, preserving exact values and types.",
      "coverage": "Any language as data · up to 30 selected fields · no live fetching",
      "billable": "One completed comparison. Missing values make the comparison free.",
      "example": {
        "before": {
          "price": 49.95,
          "stock": 20,
          "status": "available"
        },
        "after": {
          "price": 44.95,
          "stock": 16,
          "status": "available"
        },
        "fields": [
          "price",
          "stock",
          "status"
        ]
      },
      "challenge": {
        "before": {
          "price": 49.95
        },
        "after": {},
        "fields": [
          "price"
        ]
      },
      "use_cases": [
        "Price monitoring",
        "Inventory changes",
        "Configuration checks"
      ],
      "input_schema": {
        "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
      }
    },
    {
      "id": "listing_terms",
      "name": "Thai rental terms",
      "category": "Specialist service",
      "price_microusd": 2000,
      "description": "Resolve explicit Thai/English rent, security deposit and advance rent with source evidence. THB only.",
      "coverage": "Thai/English · THB only · supplied text, up to 10,000 characters",
      "billable": "One fully resolved extraction. Unresolved results are free.",
      "example": {
        "text": "ค่าเช่า 12,000 บาท/เดือน ประกัน 2 เดือน ล่วงหน้า 1 เดือน"
      },
      "challenge": {
        "text": "Monthly rent 12,000 THB. Booking deposit 5,000 THB. Advance rent not stated."
      },
      "use_cases": [
        "Thai rental listings"
      ],
      "input_schema": {
        "type": "object",
        "properties": {
          "text": {
            "type": "string",
            "minLength": 1,
            "maxLength": 10000
          }
        },
        "required": [
          "text"
        ],
        "additionalProperties": false
      }
    }
  ]
}