Product Feed Validator
Pricing
from $0.50 / 1,000 product validateds
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
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
4 days ago
Last modified
Categories
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_2026checks current structural requirements and common risk patterns from the Google Merchant product data specification.generic_ecommercechecks 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
includeOriginalProductis explicitly enabled. - Output storage follows the access controls of the account running the Actor.
Pricing
You pay for completed product-validated events only.
| Apify tier | Price 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.