openapi: 3.1.0
info:
  title: Partner Exception Lists API
  description: 'An exception list allows a brand to pay different commission rates
    based on the product category or SKU associated with a tracked action. Exception
    lists are linked to contracts — retrieve the ExceptionListId from the Contracts
    API, then use these endpoints to retrieve the list details and its items.

    '
  version: '15'
  contact:
    name: impact.com Developer Support
    url: https://app.impact.com/secure/help/contact-support.ihtml
servers:
- url: https://api.impact.com
tags:
- name: Exception Lists
  description: Endpoints for retrieving exception list details and items.
paths:
  /Mediapartners/{AccountSID}/ExceptionLists/{ExceptionListId}:
    get:
      operationId: retrieveExceptionList
      tags:
      - Exception Lists
      summary: Retrieve an Exception List
      description: 'Retrieves the details of an existing exception list using its
        unique ID. The ExceptionListId can be obtained from the Contracts API.

        '
      parameters:
      - name: AccountSID
        in: path
        required: true
        schema:
          type: string
        description: Unique identifier for the partner account.
      - name: ExceptionListId
        in: path
        required: true
        schema:
          type: string
        description: The unique identifier for the exception list.
      responses:
        '200':
          description: The exception list object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ExceptionList'
  /Mediapartners/{AccountSID}/ExceptionLists/{ExceptionListId}/Items:
    get:
      operationId: listExceptionListItems
      tags:
      - Exception Lists
      summary: List Exception List Items
      description: Returns a list of all items in a specific exception list. Each
        item defines a product category or SKU value that triggers an alternate commission
        rate.
      parameters:
      - name: AccountSID
        in: path
        required: true
        schema:
          type: string
        description: Unique identifier for the partner account.
      - name: ExceptionListId
        in: path
        required: true
        schema:
          type: string
        description: The unique identifier for the exception list whose items are
          being retrieved.
      responses:
        '200':
          description: A list of exception list item objects.
          content:
            application/json:
              schema:
                type: object
                properties:
                  ExceptionListItems:
                    type: array
                    items:
                      $ref: '#/components/schemas/ExceptionListItem'
components:
  schemas:
    ExceptionList:
      type: object
      properties:
        Id:
          type: string
          description: Unique identifier for the exception list.
          example: '5001'
        Name:
          type: string
          description: Display name of the exception list.
          example: Wayne Tech SKU Exclusions
        State:
          type: string
          enum:
          - ACTIVE
          - CLOSED
          - DEACTIVATED
          description: The current state of the exception list.
          example: ACTIVE
        CampaignId:
          type: string
          description: Unique identifier for the program this exception list applies
            to.
          example: '10306'
        Type:
          type: string
          enum:
          - CATEGORY
          - SKU
          description: The matching basis for this exception list. CATEGORY matches
            against the conversion's product category value; SKU matches against
            the conversion's SKU or ProductId value.
          example: SKU
        CreatedDate:
          type: string
          format: date-time
          description: Date and time the exception list was created (ISO 8601).
          example: '2024-01-15T10:30:00-08:00'
        DeactivationDate:
          type: string
          format: date-time
          description: Date and time the exception list was deactivated (ISO 8601).
            Empty if the list is still active.
          example: ''
        NumberOfItems:
          type: integer
          description: The number of items in the exception list.
          example: 12
        ItemsUri:
          type: string
          description: API resource path for retrieving the items in this exception
            list.
          example: /Mediapartners/<AccountSID>/ExceptionLists/5001/Items
        Uri:
          type: string
          description: Unique reference to the exception list object in the impact.com
            API.
          example: /Mediapartners/<AccountSID>/ExceptionLists/5001
    ExceptionListItem:
      type: object
      description: An item within an exception list that defines a specific category
        or SKU value triggering an alternate commission rate.
      properties:
        Id:
          type: string
          description: Unique identifier for the exception list item.
          example: '1'
        ListId:
          type: string
          description: Unique identifier for the parent exception list.
          example: '5001'
        Name:
          type: string
          description: Display name of the exception list item.
          example: Batsuit SKU
        Value:
          type: string
          description: The category or SKU value that this item matches against,
            depending on the parent exception list's Type.
          example: BS-KVL-01
        MatchMode:
          type: string
          enum:
          - EQ
          - REGEX
          description: The matching methodology used to evaluate the value. EQ matches
            exactly; REGEX matches using a regular expression.
          example: EQ
        CreatedDate:
          type: string
          format: date-time
          description: Date and time this item was added to the exception list (ISO
            8601).
          example: '2024-01-15T10:30:00-08:00'
        Uri:
          type: string
          description: Unique reference to the exception list item in the impact.com
            API.
          example: /Mediapartners/<AccountSID>/ExceptionLists/5001/Items/1
