CJ Affiliate Click Events API

Server-to-server JSON REST API through which CJ partners register a consumer click and receive back the final landing-page URL carrying the cjevent tracking parameter. Supports bounceless tracking experiences and first-party id journey mapping. Cannot be called from a browser, rejects unknown fields, and rejects any field containing an email pattern as consumer PII. On any error the partner must fall back to a traditional CJ tracking click URL.

OpenAPI Specification

cj-affiliate-click-events-api-openapi.yml Raw ↑
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` `<cj-api>` 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 <token>`. 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