AI Product Intelligence Engine
Pricing
from $0.50 / 1,000 deterministic check units
Go to Apify Store
AI Product Intelligence Engine
Pricing
from $0.50 / 1,000 deterministic check units
URL of the product feed to download (CSV, JSON array, or Google Merchant XML). Leave empty if using 'Upload a file' or 'Products' below instead.
Upload a CSV/JSON/XML feed file directly instead of pointing at a URL. If your file's column headers don't match our field names, also set 'Column mapping' below. Leave empty if using 'Feed URL' or 'Products' instead.
Map your feed's own column/field names to our schema when they don't already match — e.g. {"Product Name": "title", "Item SKU": "sku"}. Valid target fields: sku, title, description, brand, category, price, currency, availability, group_id, gtin, image_url. An unrecognized target field is ignored, not an error.
Format of the feed at feedUrl. Ignored if 'Products' is used instead.
Inline product records instead of feedUrl — useful for MCP tool calls and testing. Each item: {sku, title, description, brand, category, price, currency, availability, group_id, image_url, attributes: {...}}.
Which checks to run on your feed. Add or remove any combination.
[ "missing_attributes", "title_description_contradiction", "duplicate_detection", "variant_consistency", "image_technical_qa", "gtin_checksum_validator", "thin_content_description", "price_outlier_detector"]Attribute keys that must be present and non-empty on every product for the 'missing_attributes' check.
[ "brand", "category", "price"]Required for the 'translation_consistency' check. ISO language codes to translate into and check for number drift, e.g. ["cs", "pl", "sk", "de"]. Empty = check skipped entirely.
Required for the 'category_voice_consistency' check. Map category names to a tone/positioning brief, e.g. {"Baby & Mom": "warm, reassuring, speaks to a caring parent"}. A category with no brief is skipped entirely.
Real search queries from your site, for catalog-gap analysis. Each item: {"query": "red running shoes"}. Persisted across runs — a gap is only flagged once it's shown up repeatedly, not from one run's snapshot.
Descriptions shorter than this are flagged by 'thin_content_description'. Default 10 — calibrated against real feed data, not a generic SEO-content figure.
'price_outlier_detector' only runs on categories with at least this many priced products — too few samples make a median/outlier calculation meaningless. Default 5.
Modified z-score threshold for 'price_outlier_detector' — lower is more sensitive (flags more), must be greater than 0 or every priced product gets flagged. Default 3.5 (a standard statistical convention).
Safety limit on feed size per run. 0 = unlimited.
Separate, smaller safety limit for opt-in 'vision' checks (e.g. image_description_alignment, seo_keyword_gap, visual_brand_consistency) that cost one real inference call per product. Applies per check, independent of maxProducts above. 0 = unlimited.
Describe your expected product image style (e.g. 'white background, studio lighting, centered product shot'). Required for the 'visual_brand_consistency' check — leave empty to skip it entirely.
A hard ceiling on this run's projected billing, checked before any check runs. If the projected cost would exceed it, 'semantic_cannibalization' (the one check whose cost grows with the square of catalog size) has its input trimmed to fit the budget, and a warning is logged. Other checks are not auto-trimmed by this — bound their cost with maxVisionProducts, or by disabling them. 0 = unlimited.
Keeps only the highest-severity (then highest-confidence) findings from each check, up to this many — applied separately to every check, so this never hides one check's findings behind another's (e.g. a pairwise check that fires often won't crowd out a check that fires rarely). This does not reduce cost — the check still does the same work — it just keeps the output focused on what matters most on a large or noisy catalog. A nonzero value below 10 is treated as 10. 0 = unlimited.