openapi: 3.1.0 info: title: CJ Affiliate Legacy REST APIs Advertiser Lookup Product Search (Legacy) API version: '2.0' description: 'CJ Affiliate''s legacy REST APIs for finding links, advertisers, publishers, and products. CJ now steers new integrations to its GraphQL APIs (commissions.api.cj.com and ads.api.cj.com), but these REST endpoints remain documented. Each service is hosted on its own subdomain of api.cj.com and authenticates with a personal access token (Bearer). GROUNDING: The Advertiser Lookup and Publisher Lookup endpoints, paths, and the requestor-cid + Bearer PAT auth model are grounded in CJ documentation (confirmed curl examples). The Link Search and Product Search (Legacy) base URLs follow the same ".api.cj.com/v2/" family pattern and are documented by CJ, but several individual query parameters and response fields below are MODELED from CJ knowledge-base articles. Verify exact parameter and field names against https://developers.cj.com/docs/rest-apis/ before relying on them.' contact: name: API Evangelist email: kin@apievangelist.com servers: - url: https://link-search.api.cj.com description: Link Search API - url: https://advertiser-lookup.api.cj.com description: Advertiser Lookup API - url: https://publisher-lookup.api.cj.com description: Publisher Lookup API - url: https://product-search.api.cj.com description: Product Search (Legacy) API security: - personalAccessToken: [] tags: - name: Product Search (Legacy) paths: /v2/product-search: get: tags: - Product Search (Legacy) operationId: productSearchLegacy summary: Search advertiser product feeds (legacy) description: Legacy REST product catalog search across advertiser product feeds by keyword, advertiser, price, and other criteria. CJ steers new integrations to the GraphQL Product Search API; this endpoint remains documented for existing integrations. servers: - url: https://product-search.api.cj.com parameters: - name: website-id in: query required: true description: Your promotional property / website (PID) identifier. schema: type: string - name: advertiser-ids in: query required: false schema: type: string default: joined - name: keywords in: query required: false schema: type: string - name: low-price in: query required: false schema: type: number - name: high-price in: query required: false schema: type: number - name: currency in: query required: false schema: type: string - name: records-per-page in: query required: false schema: type: integer default: 100 - name: page-number in: query required: false schema: type: integer default: 1 responses: '200': description: Matching products. content: application/xml: schema: type: object application/json: schema: type: object '401': description: Missing or invalid personal access token. '429': description: Rate limit exceeded. components: securitySchemes: personalAccessToken: type: http scheme: bearer description: 'Personal access token created in the CJ developer portal at https://developers.cj.com/account/personal-access-tokens and sent as ''Authorization: Bearer ''.'