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.

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 email required.

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.1.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:
  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.
    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.