From messy merchant data to enterprise-ready API.
Every offer published through Kindred runs through five stages — ingestion from multiple sources, standardization onto a canonical schema, automated QA including agentic checkout testing, localization across 244 markets and 16 languages, and publication to all four downstream surfaces.
The discipline that makes Promo Discovery, Merchant Map, Entity Mapping and Offsite Context enterprise-grade.
Merchants don't all send clean data. Affiliate networks, direct feeds, manual portal entry and continuous web verification each produce different shapes. The pipeline below is what turns that variance into a single, daily-tested, multilingual catalogue exposed via four APIs.
Ingest from multiple sources
Merchant data does not arrive in a single shape. Kindred ingests from four parallel channels with different cadences and formats — and unifies them downstream. Affiliate networks are one such source, alongside direct merchant feeds, portal-based entry, and continuous in-the-wild verification.
Source channels
Example raw inbound · merchant CSV (unclean)
| Code | Description | Discount | Valid until |
|---|---|---|---|
| JORDAN15 | 15% off all jordan footwear ! ends soon | 15 | 31/05 |
| welcome20 | $20 off your first order over $100 (new customers only) | 20 | 2026-12-31T00:00 |
| SUMMER!! | summer sale - up to 30% off (some exclusions) | up to 30% | tba |
Mixed date formats, unstructured discount values, free-text restrictions, no SKU mapping. Routine across all source channels.
// Affiliate network sync — every 5 min { "feed_source": "network_partner", "received_at": "2026-05-06T14:32:08Z", "merchant": "NIKE.COM", "offers": [ { "code": "JORDAN15", "desc_raw": "15% off all jordan footwear ! ends soon", "voucher_value": "15", "voucher_type": "percent", "valid_to": "31/05", "category_str": "footwear & sneakers", "countries": null, "min_spend": null, "merchant_url": "https://nike.com/?aff_id=..." } ] } // Merchant portal — manual entry { "feed_source": "merchant_portal", "submitted_by": "merchant-admin@example.com", "merchant_id": 1001, "offer": { "name": "Air Jordan launch promo", "code": "JORDAN15", "discount_pct": 15, "keywords": ["jordan", "trainers"], "start": "2026-05-06", "end": "2026-05-31" } } // In-the-wild verification — agent crawls site { "feed_source": "in_the_wild", "agent": "kindred-crawler", "verified_at": "2026-05-06T08:14:22Z", "merchant_domain": "nike.com", "observed_codes": ["JORDAN15", "FREESHIP75"], "page_url": "https://nike.com/promo/jordan-launch" }
Standardise onto canonical schema
Every inbound offer is mapped onto Kindred's canonical promo record — a single, well-typed shape used by every downstream surface. Discount types are enumerated, dates parsed to ISO 8601, free-text restrictions extracted into structured fields, and merchant identity resolved against Kindred's merchant graph.
Mapping rules applied
{
"promoId": "k_prm_8f2a91cd",
"merchantName": "Nike",
"merchantDomain": "nike.com",
"kindredMerchantId": 1001,
"code": "JORDAN15",
"description": "15% off Jordan footwear",
"startDate": "2026-05-06T00:00:00Z",
"endDate": "2026-05-31T23:59:59Z",
"countryCodes": ["US", "GB", "DE", "FR"],
"language": "en",
"metadata": {
"discountType": "percentage",
"promoType": "category",
"currency": "USD",
"category": "footwear",
"brandFilter": "Jordan",
"scope": "selected_products",
"discounts": [
{
"discountValue": 15,
"maxDiscountValue": null,
"minimumSpend": null
}
],
"eligibility": "all_customers"
},
"source": {
"channels": ["merchant_portal", "in_the_wild"],
"resolvedAt": "2026-05-06T14:33:01Z",
"matchConfidence": 0.97
},
}
QA — agentic and automated
Every standardized offer is validated before reaching any downstream surface. Validity is tested against live merchant checkouts via VM-based agentic testing, deduped via a fingerprinting graph, and continuously re-checked through real-world signal feedback. Failures are quarantined; passing offers carry their pass record forward.
QA checks applied
Result
90%+ auto-coupon accuracy benchmark — 3× the rate of public coupon sources. Failed offers are quarantined and either re-tested or removed.
{
"promoId": "k_prm_8f2a91cd",
"qa_run_id": "qa_2026-05-06_14_33_18",
"vm_agent": "kindred-tester-vm",
"checks": {
"redemption_test": {
"status": "PASS",
"basket_value_pre": 130.00,
"basket_value_post": 110.50,
"discount_observed": 19.50,
"discount_expected": 19.50,
"checkout_url": "nike.com/checkout",
"latency_ms": 1842
},
"expiry": { "status": "PASS", "days_remaining": 25 },
"duplicate_check": { "status": "PASS", "matched_records": 0 },
"brand_match": { "status": "PASS", "confidence": 0.97 },
"tcs_parsed": { "status": "PASS", "restrictions": ["jordan_brand_only"] },
"min_spend": { "status": "PASS", "value": null },
"geo_eligibility": { "status": "PASS", "verified": ["US", "GB", "DE", "FR"] },
"real_world_signal": { "status": "PASS", "d2c_redemptions_24h": 142 }
},
"verdict": "PUBLISH",
"score": 0.97,
"next_qa_run": "2026-05-07T08:00:00Z"
}
Localize · 244 markets, 16 languages
Validated offers are localized for every market they're eligible in. Descriptions are translated, brand voice is preserved, currencies and date formats are formatted to local conventions, and right-to-left scripts are handled. The same canonical record exposes the right text to every consumer surface in the right language.
Coverage
Translation pipeline
LLM translation pass → in-house brand voice review for tier-1 markets → continuous A/B against conversion rates. Language strings are versioned and can be hot-swapped without re-validating the underlying offer.
Publish to four enterprise APIs
The same standardized, QA-passed, localized record is exposed simultaneously through four delivery surfaces: a REST API for real-time agent queries, a daily SFTP feed for bulk integrations, an MCP server for any LLM client, and a JavaScript bridge for in-browser auto-coupon application. Single source, four delivery shapes.
Delivery surfaces
JSON over HTTPS
JSON Lines, country-partitioned
Model Context Protocol
24h template TTL
→ Partner enrichment
Consumed by
Promo Discovery, Merchant Map, Entity Mapping and Offsite Context APIs all read from this canonical store. See API specs →
// GET /campaigns/partners/v2/opendata/domain-search // ?domain=nike.com&location=US [ { "storeName": "Nike", "logoUrl": "https://cdn.example.com/logos/nike.svg", "code": "JORDAN15", "summary": "15% off Jordan footwear at Nike", "offerLink": "https://nike.com/?promo=JORDAN15", "validTo": "2026-05-31T23:59:59Z", "verifiedAt": "2026-05-06T14:33:18Z", "qaScore": 0.97 }, { "storeName": "Nike", "code": "FREESHIP75", "summary": "Free shipping on orders over $75", "offerLink": "https://nike.com/?promo=FREESHIP75", "validTo": "2026-12-31T23:59:59Z", "qaScore": 0.99 } ]