Product Feed Validator avatar

Product Feed Validator

Pricing

from $0.50 / 1,000 product validateds

Go to Apify Store
Product Feed Validator

Product Feed Validator

Catch missing fields, invalid prices, duplicate IDs, inconsistent variants, and Google Merchant feed risks before import.

Pricing

from $0.50 / 1,000 product validateds

Rating

0.0

(0)

Developer

Michael Olmos

Michael Olmos

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

4 days ago

Last modified

Share

Catch catalog defects before they become rejected products, broken ads, failed imports, or manual cleanup work.

Product Feed Validator normalizes and checks product rows from an Apify dataset, an upstream Actor, or inline JSON. Every completed row gets a readiness score, structured issue evidence, and field-level repair suggestions. The checks are deterministic, require no external API key, and exclude original source rows from output by default.

Why use it?

Product feeds often fail for ordinary but expensive reasons: missing required attributes, malformed prices, invalid links, duplicate IDs, bad identifiers, promotional titles, and variants that disagree with each other. Finding those issues after an import or campaign launch costs time and can interrupt revenue.

Use this Actor as a preflight gate before Google Merchant Center, an advertising workflow, a marketplace import, a PIM migration, or a catalog handoff.

Validation profiles

  • google_merchant_2026 checks current structural requirements and common risk patterns from the Google Merchant product data specification.
  • generic_ecommerce checks a smaller, channel-neutral product core and reports missing images or availability as recommendations.

Rules are versioned in every output row. The current Google profile covers the required id, title, description, link, image_link, availability, and price structure; field limits; price and sale-price consistency; URL formats; availability and condition values; GTIN check digits; identifier completeness; and title hygiene. It also performs whole-batch checks for duplicate IDs, reused links, inconsistent variant brands, and repeated color/size combinations.

This is deterministic preflight guidance. It does not crawl links, inspect image dimensions, verify inventory, or guarantee approval by Google or any other channel.

Quick start

Run with no input to validate a safe built-in product, or paste products directly:

{
"products": [
{
"id": "runner-42-black",
"title": "Example Men's Black Running Shoes - Size 42",
"description": "Lightweight black running shoes with a breathable mesh upper and rubber sole.",
"link": "https://example.com/products/runner-42-black",
"image_link": "https://example.com/images/runner-42-black.jpg",
"availability": "in_stock",
"price": "79.99 USD",
"brand": "Example",
"gtin": "4006381333931",
"condition": "new"
}
]
}

For production, select an Apify dataset:

{
"datasetId": "YOUR_DATASET_ID",
"profile": "google_merchant_2026",
"maxProducts": 500,
"includeNormalizedProduct": true,
"includeOriginalProduct": false
}

Inline products and a selected dataset may be combined. The maxProducts limit applies across both sources and is capped at 5,000 per run.

Field mapping

Common snake_case and camelCase attributes are detected automatically. For a custom schema, map canonical fields to source paths:

{
"datasetId": "YOUR_DATASET_ID",
"fieldMap": {
"id": "catalog.sku",
"title": "catalog.displayName",
"imageLink": "media.primary.url",
"price": "offers.current",
"itemGroupId": "variants.parentSku"
}
}

Dot-separated paths are supported, and an explicit mapping is tried before automatic aliases. Supported canonical fields include id, title, description, link, imageLink, additionalImageLinks, availability, price, salePrice, brand, gtin, mpn, condition, itemGroupId, color, size, gender, ageGroup, and identifierExists.

Prices can be numbers, strings such as 79.99 USD or USD 79.99, or objects such as {"amount":79.99,"currency":"USD"}.

Use it after another Actor

Add Product Feed Validator from the source Actor's Integrations tab. The upstream run's default dataset is accepted automatically, so a crawler or scraper can feed directly into validation.

Typical workflows:

  • ecommerce scraper → feed validation → repair queue
  • PIM export → feed validation → marketplace import
  • scheduled catalog dataset → validation → webhook or alert
  • merchant feed update → validation → ad-campaign gate

Output

The default dataset contains one result per completed product-validated event:

{
"productId": "broken-104",
"status": "invalid",
"qualityScore": 41,
"grade": "F",
"issueCodes": [
"LINK_INVALID",
"PRICE_CURRENCY_MISSING_OR_INVALID",
"PRODUCT_IDENTIFIERS_INCOMPLETE"
],
"issues": [
{
"code": "LINK_INVALID",
"severity": "error",
"field": "link",
"message": "Product link is not a valid HTTP or HTTPS URL.",
"observed": "product/104",
"expected": "An absolute HTTP or HTTPS URL",
"ruleSource": "Google Merchant Center product data specification (accessed 2026-08-05)"
}
],
"repairSuggestions": [
{
"issueCode": "LINK_INVALID",
"field": "link",
"action": "Replace or map link so it matches: An absolute HTTP or HTTPS URL."
}
]
}

Each row also includes severity counts, a ruleset version, normalized fields when enabled, and a validation timestamp. The default key-value-store OUTPUT record contains batch totals, grade distribution, issue counts, average score, source type, budget status, and the applied profile.

Automate through the API

curl -X POST \
"https://api.apify.com/v2/acts/gifted_wagon~product-feed-validator/runs" \
-H "Authorization: Bearer $APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"datasetId":"YOUR_DATASET_ID","maxProducts":500}'

The run response contains storage IDs for the row-level results and summary. You can also call the Actor from an Apify client, schedule, webhook, Make, Zapier, or another Actor.

Privacy and permissions

  • Limited permissions: read the selected dataset; write the run's default dataset and key-value store.
  • No product data is sent to an external AI model or validation service.
  • Source URLs and image URLs are checked structurally but are not requested.
  • Original product objects are excluded unless includeOriginalProduct is explicitly enabled.
  • Output storage follows the access controls of the account running the Actor.

Pricing

You pay for completed product-validated events only.

Apify tierPrice per 1,000 products
Free$1.25
Bronze$1.00
Silver$0.75
Gold, Platinum, Diamond$0.50

There is also a $0.00005 Actor-start event. The Actor checks the run spending limit before paid work and stops cleanly when the remaining budget cannot cover another product.

Scope and rule maintenance

The Google profile is based on the Google Merchant product data specification and is labeled with a version and access date. Channel requirements can change. The Actor's changelog records material rule updates, and a profile should be disabled or revised if a specification change makes it materially inaccurate.

The validator cannot determine factual accuracy, legal eligibility, policy compliance, landing-page equivalence, live stock, image quality, or account-specific enforcement. Review Google's current 2026 specification changes before relying on a rule for a high-risk workflow.

Support

If your dataset uses an unsupported shape or a finding appears incorrect, open an issue from the Actor's Issues tab. Include the run ID, issue code, field mapping, and a redacted example. Do not post private catalog data in a public issue.