VendeeX · prepared 2 Nov 2026

CJ + Awin integration spec for an AI shopping agent

The developer-facing half of the job, drafted before hire: how VendeeX authenticates, pulls product feeds, builds per-product deep links, and gets conversions back on each network. Sourced from Awin's current help centre and CJ's developer portal.

Biggest finding: Awin now runs an official MCP server at https://mcp.awin.com (docs updated Sept–Oct 2026). Publisher tools cover programmes, programme details, performance by advertiser and tracking links, up to 100 links per request. It is switched on by default under Account › Profile › Overview › Connect to AI tools. VendeeX can use it on day one of approval, alongside the REST API.

1. Side by side

AwinCJ
AuthOAuth2 bearer token, generated in the publisher UI (API Credentials). Sent as Authorization: Bearer or ?accessToken=. Publisher ID is used in every path.Personal Access Token, created at developers.cj.com, sent as Authorization: Bearer. Also needs the Company ID (CID) and the Website ID (PID) for links.
Product feedsEnhanced feed (Google format), as JSONL:
GET api.awin.com/publishers/{pid}/awinfeeds/download/{advertiserId}-retail-{locale}.jsonl
The classic CSV/XML route is Create-a-Feed / Product Feed List Download, and each row carries a ready-made Awin deep link. Feeds are only available for joined programmes.
Product Search GraphQL at ads.api.cj.com/query (products query by CID, advertiser IDs, keywords). Each result returns linkCode(pid) → clickUrl, a tracked link with your PID. Only advertisers you are approved with show up.
Deep linksLink Builder API:
POST /publishers/{pid}/linkbuilder/generate (single)
/generate-batch (up to 100)
Short links count against a 24-hour quota, checked with GET …/linkbuilder/quota. Some advertisers block Link Builder ("Unknown error"), so fall back to the feed link.
Deep-link pattern on CJ click domains:
…/click-{PID}-{AID}?url={encoded}
An approved deep-link-enabled advertiser is required, so check the advertiser's terms. The Link Search API lists the creative links that are available.
Click ID / S2Sclickref through clickref6 on every link. These come back on transactions from GET /publishers/{pid}/transactions/, so VendeeX session IDs reconcile without cookies.sid parameter on the click URL. It comes back on each commission from the Commission Detail GraphQL API (commissions.api.cj.com/query).
Rate limits20 API calls per minute per user (Awin's published throttle). The MCP is also limited per user per minute.Per-API limits are listed in the portal. Confirm them once the account exists; the plan below assumes batch and cache.
SandboxNo public sandbox. Test against a joined programme with low-volume clickrefs.No public sandbox. Test through the GraphQL explorer once you are signed in.
Agent interfaceYes: Awin MCP (mcp.awin.com, OAuth with the Awin login)None found as of this date

2. Calls VendeeX's developers will make

# Awin: one per-product tracking link, tagged with the VendeeX session
curl -X POST "https://api.awin.com/publishers/$PID/linkbuilder/generate" \
  -H "Authorization: Bearer $AWIN_TOKEN" -H "Content-Type: application/json" \
  -d '{"advertiserId":6789,"destinationUrl":"https://merchant.example/p/123",
       "parameters":{"clickref":"vx_sess_8f2a","clickref2":"rank_1"},"shorten":false}'

# Awin: pull a merchant's full catalogue (JSONL, one product per line)
curl -H "Authorization: Bearer $AWIN_TOKEN" \
  "https://api.awin.com/publishers/$PID/awinfeeds/download/6789-retail-en_GB.jsonl"

# CJ: product search (GraphQL)
curl -X POST https://ads.api.cj.com/query -H "Authorization: Bearer $CJ_PAT" \
  -d '{"query":"{ products(companyId:\"CID\", keywords:[\"hiking boots\"], limit:50){ resultList { title price { amount currency } linkCode(pid:\"PID\"){ clickUrl } } } }"}'

3. Agent-traffic terms: the per-advertiser risk

For an AI agent this is the column that decides everything. Many programme terms ban "automated", "bot" or "software" traffic, or ban browser extensions and toolbars, written long before agents existed. Each application should state plainly that clicks happen when a human picks a result and the ranking ignores commission. That wording gets the approval and protects the commissions later.
Column in the advertiser tableWhere it comes from
Commission rate and groupsAwin GET /publishers/{pid}/commissiongroups; CJ programme terms
Cookie / click windowAwin programme details (API or MCP); CJ advertiser terms
Validation and payout periodAwin programme page; CJ "action lock" period
GeographyProgramme's allowed regions (UK/EU first for this job)
Automated / AI-agent trafficProgramme T&Cs text, read by hand and quoted verbatim in the tracker
Deep-link allowed / Link Builder allowedAwin Link Builder response; CJ deep-link flag

4. Order of work

  1. Days 1–2: Awin and CJ publisher applications in Vendee Labs' name, with the agent model written up front. Booking.com, Trip.com and Expedia go first because of travel approval lag.
  2. Days 2–10: Advertiser programme applications on both networks, logged as they go: status, conditions and the verbatim agent-traffic clause.
  3. On approval: Tokens and IDs generated and handed over, Awin MCP switched on, first live link and first feed pulled to prove the pipe.
  4. Finish: The final CJ and Awin integration specs (this page, completed with live values), the per-advertiser table and the updated tracker.

Price: $1,000 fixed. Network approval time sits outside the work and doesn't change the price.