CJ Affiliate Publisher Tracking API

Server-to-server JSON REST API through which publishers exchange a standard CJ tracking link for a final destination URL, taking the consumer straight to the advertiser where a bounceless journey is appropriate and returning the original tracking link where it is not. Cannot be called from a browser - the browser-based equivalent is CJ's Publisher Tag. On any error the publisher must navigate the consumer to the traditional click URL.

Operations 1

POST /clickdestination Resolve a publisher click into a bounceless destination URL #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/cj-affiliate-publisher-tracking-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

cj-affiliate-publisher-tracking-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: CJ Affiliate Publisher Tracking 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://publishertracking.api.cj.com
  description: Publisher Tracking API
security:
- personalAccessToken: []
tags:
- name: Publisher Tracking
  description: Publisher server-side click registration (bounceless tracking).
paths:
  /clickdestination:
    post:
      tags:
      - Publisher Tracking
      operationId: resolveClickDestination
      summary: Resolve a publisher click into a bounceless destination URL
      description: Server-to-server click registration for publishers. Returns either a destination URL directly to the advertiser (when a bounceless journey is appropriate) or the original tracking link that was passed in. On any error the publisher must navigate the consumer to the traditional Click URL. Cannot be called from a browser — the browser-based equivalent is CJ's Publisher Tag.
      servers:
      - url: https://publishertracking.api.cj.com
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PublisherTrackingRequest'
      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: '"The provided bearer token is invalid or has expired", or "Authorization failed" — this API returns 401 for both authentication and authorization failures.'
          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:
  schemas:
    PublisherTrackingRequest:
      type: object
      required:
      - publisherCompanyId
      - promotionalPropertyId
      - clickUrl
      properties:
        publisherCompanyId:
          type: string
          description: CJ Account Number (CID).
        promotionalPropertyId:
          type: string
          description: Your Promotional Property ID (PID). Must match the PID in your CJ tracking URL.
        clickUrl:
          type: string
          description: The tracking link you would normally navigate the consumer to, in current standard CJ tracking link format.
        userIdentifier:
          type: string
          description: A persistent first-party non-PII user id.
        userAgent:
          type: string
        userIpAddress:
          type: string
          description: Consumer IP address. Used by CJ to determine compliance requirements.
        referringUrl:
          type: string
          description: Full URL of the page that navigated the consumer to the advertiser.
    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.
  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.'