{
  "title": "Product feed validator",
  "human_url": "https://happytails.ai/en/data-tools/product-feed-validator/",
  "agent_url": "https://happytails.ai/agents/en/data-tools/product-feed-validator/",
  "language": "en",
  "markdown_url": "https://happytails.ai/en/data-tools/product-feed-validator.md",
  "content": "Product feed validator\nCheck CSV, TSV or simple XML product records against editable custom field profiles and download every located issue.\nHow to use Product feed validator\nChoose CSV, TSV or XML and a custom profile.\nFor an editable profile, choose Custom JSON and change required fields, keys, checks and length limits.\nReview issues by source record and download the protected CSV and complete JSON report.\nHow can we improve this tool?\nReport a problem or share an idea.\nPlease leave out private information. Your message and the tool name go to our team via PostHog.\nUseful next steps\nGTIN check digit calculator\nProduct variant matrix generator\nSKU naming generator\nEditable custom rules\nCustom basic checks id, title, price, currency and url, with optional GTIN values. Custom minimal requires id and title. Choose Custom JSON to edit the complete profile. HTTP and HTTPS URL checks do not fetch destinations.\nLocal processing and exports\nProcessing runs on your device. CSV downloads quote every cell and protect formula prefixes by default. JSON preserves original strings and includes the report and result tables. Spreadsheet import settings can still change identifiers; import them as text.",
  "content_format": "text/plain",
  "visibility": "public",
  "links": [
    {
      "name": "GTIN check digit calculator",
      "url": "https://happytails.ai/en/data-tools/gtin-check-digit-calculator/"
    },
    {
      "name": "Product variant matrix generator",
      "url": "https://happytails.ai/en/data-tools/product-variant-matrix-generator/"
    },
    {
      "name": "SKU naming generator",
      "url": "https://happytails.ai/en/data-tools/sku-naming-generator/"
    }
  ],
  "tool": {
    "id": "product-feed-validator",
    "category": "data-tools",
    "built": true,
    "requirements": "Custom profiles check data quality and do not certify compliance with any external platform. Currency checks uppercase three-letter syntax only; prices use up to two decimal places. XML supports simple text children and exact qualified field names. Maximum 1,000,000 input characters, 10,000 records and 100,000 result cells. CSV output is bounded to 4,000,000 characters.",
    "implementation": {
      "fields": [
        {
          "key": "format",
          "label": "Feed format",
          "value": "CSV",
          "type": "select",
          "values": [
            "CSV",
            "TSV",
            "XML"
          ]
        },
        {
          "key": "profile",
          "label": "Field profile",
          "value": "Custom basic",
          "type": "select",
          "values": [
            "Custom basic",
            "Custom minimal",
            "Custom JSON"
          ]
        },
        {
          "key": "profileJson",
          "label": "Editable custom profile",
          "value": "{\n  \"required\": [\n    \"id\",\n    \"title\",\n    \"price\",\n    \"currency\",\n    \"url\"\n  ],\n  \"key\": \"id\",\n  \"price\": \"price\",\n  \"currency\": \"currency\",\n  \"urls\": [\n    \"url\"\n  ],\n  \"gtin\": \"gtin\",\n  \"maxLengths\": {\n    \"id\": 100,\n    \"title\": 200\n  }\n}",
          "type": "textarea",
          "help": "Choose Custom JSON to edit. required and urls are arrays of exact column names; key, price, currency and gtin are optional column names. maxLengths maps column names to positive character limits. These are custom data checks, not platform specifications.",
          "showWhen": {
            "profile": [
              "Custom JSON"
            ]
          }
        },
        {
          "key": "recordTag",
          "label": "XML product element name",
          "value": "product",
          "type": "text",
          "help": "Exact qualified XML name, such as product or item. Product children must be unique simple text elements without attributes. Use qualified field names such as g:id in the custom profile.",
          "showWhen": {
            "format": [
              "XML"
            ]
          }
        }
      ],
      "live": true,
      "background": true,
      "presentation": "metrics",
      "note": "Paste CSV, TSV or XML, up to 1,000,000 characters, 10,000 products, 100 fields and 100,000 cells. A maximum of 10,000 issues is supported; larger reports fail without partial export. Required fields reject blank or whitespace-only values. Prices use nonnegative plain decimals with up to two decimal places; currency checks three uppercase letters only. HTTP/HTTPS URL checks are syntactic and do not fetch links. XML rejects DTDs, custom entities, processing instructions and nested product fields. CSV reports protect formula prefixes. Runs on your device.",
      "experience": {
        "automatic": true,
        "single": false,
        "inputMaxLength": 1000000,
        "inputMode": "text",
        "label": "Product feed",
        "placeholder": "Paste CSV, TSV or XML",
        "help": "CSV/TSV needs a unique header. XML products must contain simple unique text elements. Results update as you type. Up to 1,000,000 characters.",
        "action": null
      },
      "mode": "automatic",
      "interactive": false
    },
    "execution": "Browser interface",
    "api": null,
    "browser_agent": {
      "supported": true,
      "name": "run_current_tool",
      "discovery": "WebMCP on the human page in a supporting browser",
      "verification": "See audit/API-AUDIT.md; availability is not verification"
    }
  },
  "markdown": "# Product feed validator\n\n- Human page: https://happytails.ai/en/data-tools/product-feed-validator/\n- Markdown: https://happytails.ai/en/data-tools/product-feed-validator.md\n- Structured JSON: https://happytails.ai/agents/en/data-tools/product-feed-validator/index.json\n- Visibility: public\n\n## Tool capabilities\n\n| Property | Value |\n| --- | --- |\n| Tool ID | `product-feed-validator` |\n| Category | data-tools |\n| Implementation | Registered implementation. Registration alone is not a production-quality guarantee. |\n| Browser execution | Automatic updates after valid input or file selection. |\n| Browser processing | Browser; see tool notes for network behavior. |\n| HTTP API | Not callable through HTTP. |\n| Browser-agent interface | run_current_tool |\n\n### Implementation notes\n\nPaste CSV, TSV or XML, up to 1,000,000 characters, 10,000 products, 100 fields and 100,000 cells. A maximum of 10,000 issues is supported; larger reports fail without partial export. Required fields reject blank or whitespace-only values. Prices use nonnegative plain decimals with up to two decimal places; currency checks three uppercase letters only. HTTP/HTTPS URL checks are syntactic and do not fetch links. XML rejects DTDs, custom entities, processing instructions and nested product fields. CSV reports protect formula prefixes. Runs on your device.\n\n### Inputs and settings\n\nText input: Product feed.\n\nExample or placeholder shown in the interface (not a validated fixture):\n\n```text\nPaste CSV, TSV or XML\n```\n\nCSV/TSV needs a unique header. XML products must contain simple unique text elements. Results update as you type. Up to 1,000,000 characters.\n\n| Setting | Meaning | Control type | Default | Constraints |\n| --- | --- | --- | --- | --- |\n| `format` | Feed format | select | \"CSV\" | Allowed: CSV, TSV, XML |\n| `profile` | Field profile | select | \"Custom basic\" | Allowed: Custom basic, Custom minimal, Custom JSON |\n| `profileJson` | Editable custom profile | textarea | \"{\\n  \\\"required\\\": [\\n    \\\"id\\\",\\n    \\\"title\\\",\\n    \\\"price\\\",\\n    \\\"currency\\\",\\n    \\\"url\\\"\\n  ],\\n  \\\"key\\\": \\\"id\\\",\\n  \\\"price\\\": \\\"price\\\",\\n  \\\"currency\\\": \\\"currency\\\",\\n  \\\"urls\\\": [\\n    \\\"url\\\"\\n  ],\\n  \\\"gtin\\\": \\\"gtin\\\",\\n  \\\"maxLengths\\\": {\\n    \\\"id\\\": 100,\\n    \\\"title\\\": 200\\n  }\\n}\" |  |\n| `recordTag` | XML product element name | text | \"product\" |  |\n\n### Browser-agent workflow\n\n1. Open the human page in a browser that supports WebMCP.\n2. Discover the interface exposed by that page; use its actual schema.\n3. Select files on the page first when the tool requires files.\n4. Call `run_current_tool` with valid input and settings.\n5. Inspect the returned result or error and the displayed output. Retrieve files from the displayed download links.\n\nCalls do not automatically copy or download results. Browser permissions still apply. Interface availability alone is not proof of successful execution.\n\n### Planning specification\n\nCustom profiles check data quality and do not certify compliance with any external platform. Currency checks uppercase three-letter syntax only; prices use up to two decimal places. XML supports simple text children and exact qualified field names. Maximum 1,000,000 input characters, 10,000 records and 100,000 result cells. CSV output is bounded to 4,000,000 characters.\n\nThis describes intended requirements. Use the implementation notes, interface schema and observed output to determine current support.\n\n### Complete machine-readable capability record\n\n```json\n{\n  \"id\": \"product-feed-validator\",\n  \"category\": \"data-tools\",\n  \"built\": true,\n  \"requirements\": \"Custom profiles check data quality and do not certify compliance with any external platform. Currency checks uppercase three-letter syntax only; prices use up to two decimal places. XML supports simple text children and exact qualified field names. Maximum 1,000,000 input characters, 10,000 records and 100,000 result cells. CSV output is bounded to 4,000,000 characters.\",\n  \"implementation\": {\n    \"fields\": [\n      {\n        \"key\": \"format\",\n        \"label\": \"Feed format\",\n        \"value\": \"CSV\",\n        \"type\": \"select\",\n        \"values\": [\n          \"CSV\",\n          \"TSV\",\n          \"XML\"\n        ]\n      },\n      {\n        \"key\": \"profile\",\n        \"label\": \"Field profile\",\n        \"value\": \"Custom basic\",\n        \"type\": \"select\",\n        \"values\": [\n          \"Custom basic\",\n          \"Custom minimal\",\n          \"Custom JSON\"\n        ]\n      },\n      {\n        \"key\": \"profileJson\",\n        \"label\": \"Editable custom profile\",\n        \"value\": \"{\\n  \\\"required\\\": [\\n    \\\"id\\\",\\n    \\\"title\\\",\\n    \\\"price\\\",\\n    \\\"currency\\\",\\n    \\\"url\\\"\\n  ],\\n  \\\"key\\\": \\\"id\\\",\\n  \\\"price\\\": \\\"price\\\",\\n  \\\"currency\\\": \\\"currency\\\",\\n  \\\"urls\\\": [\\n    \\\"url\\\"\\n  ],\\n  \\\"gtin\\\": \\\"gtin\\\",\\n  \\\"maxLengths\\\": {\\n    \\\"id\\\": 100,\\n    \\\"title\\\": 200\\n  }\\n}\",\n        \"type\": \"textarea\",\n        \"help\": \"Choose Custom JSON to edit. required and urls are arrays of exact column names; key, price, currency and gtin are optional column names. maxLengths maps column names to positive character limits. These are custom data checks, not platform specifications.\",\n        \"showWhen\": {\n          \"profile\": [\n            \"Custom JSON\"\n          ]\n        }\n      },\n      {\n        \"key\": \"recordTag\",\n        \"label\": \"XML product element name\",\n        \"value\": \"product\",\n        \"type\": \"text\",\n        \"help\": \"Exact qualified XML name, such as product or item. Product children must be unique simple text elements without attributes. Use qualified field names such as g:id in the custom profile.\",\n        \"showWhen\": {\n          \"format\": [\n            \"XML\"\n          ]\n        }\n      }\n    ],\n    \"live\": true,\n    \"background\": true,\n    \"presentation\": \"metrics\",\n    \"note\": \"Paste CSV, TSV or XML, up to 1,000,000 characters, 10,000 products, 100 fields and 100,000 cells. A maximum of 10,000 issues is supported; larger reports fail without partial export. Required fields reject blank or whitespace-only values. Prices use nonnegative plain decimals with up to two decimal places; currency checks three uppercase letters only. HTTP/HTTPS URL checks are syntactic and do not fetch links. XML rejects DTDs, custom entities, processing instructions and nested product fields. CSV reports protect formula prefixes. Runs on your device.\",\n    \"experience\": {\n      \"automatic\": true,\n      \"single\": false,\n      \"inputMaxLength\": 1000000,\n      \"inputMode\": \"text\",\n      \"label\": \"Product feed\",\n      \"placeholder\": \"Paste CSV, TSV or XML\",\n      \"help\": \"CSV/TSV needs a unique header. XML products must contain simple unique text elements. Results update as you type. Up to 1,000,000 characters.\",\n      \"action\": null\n    },\n    \"mode\": \"automatic\",\n    \"interactive\": false\n  },\n  \"execution\": \"Browser interface\",\n  \"api\": null,\n  \"browser_agent\": {\n    \"supported\": true,\n    \"name\": \"run_current_tool\",\n    \"discovery\": \"WebMCP on the human page in a supporting browser\",\n    \"verification\": \"See audit/API-AUDIT.md; availability is not verification\"\n  }\n}\n```\n\n## Page guide\n\nCheck CSV, TSV or simple XML product records against editable custom field profiles and download every located issue.\n\n### How to use Product feed validator\n\n1. Choose CSV, TSV or XML and a custom profile.\n2. For an editable profile, choose Custom JSON and change required fields, keys, checks and length limits.\n3. Review issues by source record and download the protected CSV and complete JSON report.\n\nHow can we improve this tool?\n\nReport a problem or share an idea.\n\nPlease leave out private information. Your message and the tool name go to our team via PostHog.\n\n## Useful next steps\n\n- [GTIN check digit calculator](https://happytails.ai/en/data-tools/gtin-check-digit-calculator/) ([Markdown](https://happytails.ai/en/data-tools/gtin-check-digit-calculator.md))\n\n- [Product variant matrix generator](https://happytails.ai/en/data-tools/product-variant-matrix-generator/) ([Markdown](https://happytails.ai/en/data-tools/product-variant-matrix-generator.md))\n\n- [SKU naming generator](https://happytails.ai/en/data-tools/sku-naming-generator/) ([Markdown](https://happytails.ai/en/data-tools/sku-naming-generator.md))\n\n## Editable custom rules\n\nCustom basic checks id, title, price, currency and url, with optional GTIN values. Custom minimal requires id and title. Choose Custom JSON to edit the complete profile. HTTP and HTTPS URL checks do not fetch destinations.\n\n### Local processing and exports\n\nProcessing runs on your device. CSV downloads quote every cell and protect formula prefixes by default. JSON preserves original strings and includes the report and result tables. Spreadsheet import settings can still change identifiers; import them as text.\n"
}