openapi: 3.1.0 info: title: CJ Affiliate Click Events API version: '2026-08-13' description: 'CJ Affiliate''s published REST APIs, transcribed from CJ''s own developer documentation. Two families are covered: 1. The classic XML lookup / search APIs on `*.api.cj.com` — Link Search, Advertiser Lookup, Publisher Lookup and the deprecated Commission Detail (Legacy). Each is documented with a stated call limit of 25 calls per minute and returns an `application/xml` `` document. 2. The JSON click-tracking APIs — the Click Events API (`clicks.api.cj.com`) for partners and the Publisher Tracking API (`publishertracking.api.cj.com`) for publishers. Both accept a JSON body and return `{ destinationUrl, errorMessages }`. PROVENANCE: every path, parameter name, response field, status code and error message below was read on 2026-08-13 from CJ''s machine-readable documentation corpus, which the CJ Developer Portal single-page app loads from https://production-docs-assets.p.cjpowered.com/ (index at /index.yaml, one markdown file per page). Nothing here is modeled. CJ''s modern surface is GraphQL — see graphql/ in this repo for the three live schemas captured by introspection.' contact: name: API Evangelist email: kin@apievangelist.com url: https://developers.cj.com/ x-source: - https://production-docs-assets.p.cjpowered.com/REST%20APIs/Overview.md - https://production-docs-assets.p.cjpowered.com/REST%20APIs/Link%20Search.md - https://production-docs-assets.p.cjpowered.com/REST%20APIs/Advertiser%20Lookup.md - https://production-docs-assets.p.cjpowered.com/REST%20APIs/Publisher%20Lookup.md - https://production-docs-assets.p.cjpowered.com/REST%20APIs/Commission%20Detail%20(Legacy).md - https://production-docs-assets.p.cjpowered.com/REST%20APIs/Automated%20Offer%20Feed.md - https://production-docs-assets.p.cjpowered.com/Publisher%20Site%20Tracking/Click%20Events%20API.md - https://production-docs-assets.p.cjpowered.com/Publisher%20Site%20Tracking/Publisher%20Tracking%20API.md servers: - url: https://clicks.api.cj.com description: Click Events API security: - personalAccessToken: [] tags: - name: Click Events description: Server-side click registration returning a tracked destination URL. paths: /partner/event: post: tags: - Click Events operationId: createClickEvent summary: Register a consumer click and receive a tracked destination URL description: Server-to-server click registration for CJ partners. Returns the final landing page URL carrying the `cjevent` tracking parameter; the partner is responsible for navigating the consumer to it, and for falling back to a traditional CJ tracking Click URL on any error. Cannot be called from a browser. CJ asks partners to contact their CJ representative for integration validation before implementing. servers: - url: https://clicks.api.cj.com requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/ClickEventRequest' responses: '200': description: Destination URL resolved. content: application/json: schema: $ref: '#/components/schemas/ClickDestinationResponse' '400': description: 'Schema or field-level validation error. Documented messages: "Please specify valid JSON", "Please include required field: XXxXX", "Extra Unknown Field Detected: XXxXX", "XXxXX included consumer Personally Identifiable Information".' content: application/json: schema: $ref: '#/components/schemas/ClickDestinationResponse' '401': description: Authentication failed — the personal access token provided is not valid. content: application/json: schema: $ref: '#/components/schemas/ClickDestinationResponse' '403': description: Authorization failed — you are not authorized to make this call. content: application/json: schema: $ref: '#/components/schemas/ClickDestinationResponse' '500': description: Internal Server Error. Contact CJ Support for assistance. content: application/json: schema: $ref: '#/components/schemas/ClickDestinationResponse' components: securitySchemes: personalAccessToken: type: http scheme: bearer description: 'A CJ Personal Access Token created at https://developers.cj.com/account/personal-access-tokens, sent as `Authorization: Bearer `. CJ''s REST APIs also accept a legacy Developer Key in the same Authorization header.' schemas: ClickDestinationResponse: type: object description: The shared response envelope for both click APIs. `destinationUrl` is an empty string when an error occurred. properties: destinationUrl: type: string errorMessages: type: array items: type: string statusCode: type: integer description: Documented in the response table as a returned field. ClickEventRequest: type: object required: - companyId - adId - promotionalPropertyId - destinationUrl properties: companyId: type: string description: The partner CJ Account Number (CID). advertiserCompanyId: type: string deprecated: true description: The advertiser CJ Account Number (CID). Deprecated by CJ and will be removed in a future release — use `companyId`. adId: type: string description: The ad ID (AID) associated with the link the consumer clicked. promotionalPropertyId: type: string description: The Promotional Property ID (PID) for the property where the publisher posted the link. destinationUrl: type: string description: The page to navigate the consumer to. Send as plain text, unencoded. clickParameters: type: object properties: productCategory: type: string sid: type: string description: Shopper ID. If an SID is present on the publisher link it must be passed through. propertyName: type: string description: Select partners only — contact CJ for confirmation. trafficSource: type: string description: Select partners only. enum: - Storefront - Short Link userIpAddress: type: string userIdentifier: type: string description: A persistent first-party non-PII user id. Must be perpetuated for as long as the consumer's browser allows the cookie to be read. userAgent: type: string referringUrl: type: string