Infusionsoft (Keap) Affiliate API

Affiliates-Endpoint

Operations 101

GET /rest/v2/affiliates List Affiliates #
POST /rest/v2/affiliates Create an Affiliate #
POST /rest/v2/affiliates/{id}:removeFromProgram Remove an Affiliate from a Commission Program #
POST /rest/v2/affiliates/{id}:assignToProgram Assign Affiliate to Commission program #
POST /rest/v2/affiliates/model/customFields Create an Affiliate Custom Field #
GET /rest/v2/affiliates/model/customFields/tabs List Affiliate Custom Field Tabs #
POST /rest/v2/affiliates/model/customFields/tabs Create an Affiliate Custom Field Tab #
GET /rest/v2/affiliates/model/customFields/groups List Affiliate Custom Field Groups #
POST /rest/v2/affiliates/model/customFields/groups Create an Affiliate Custom Field Group #
GET /rest/v2/affiliates/commissionPrograms List Affiliate Commission Programs #
POST /rest/v2/affiliates/commissionPrograms Create an Affiliate Commission Program #
POST /rest/v2/affiliates/commissionPrograms/{commission_id}:removeSubscriptionCommission Remove a Subscription from a Commission Program #
POST /rest/v2/affiliates/commissionPrograms/{commission_id}:removeProductCommission Remove a Product from a Commission Program #
POST /rest/v2/affiliates/commissionPrograms/subscriptionCommissionPrograms/{commission_program_id} Assign a Subscription Commission Program #
PATCH /rest/v2/affiliates/commissionPrograms/subscriptionCommissionPrograms/{commission_program_id} Update a Subscription Commission Program #
POST /rest/v2/affiliates/commissionPrograms/resources Create Commission Program Resource #
POST /rest/v2/affiliates/commissionPrograms/productCommissionPrograms/{commission_program_id} Assign a Product Commission Program #
PATCH /rest/v2/affiliates/commissionPrograms/productCommissionPrograms/{commission_program_id} Update a Product Commission Program #
POST /rest/v2/affiliates/commissionPrograms/defaultCommissionPrograms/{commission_program_id} Create a Default Commission Program #
PATCH /rest/v2/affiliates/commissionPrograms/defaultCommissionPrograms/{commission_program_id} Update a Default Commission Program #
GET /rest/v2/affiliates/{id} Retrieve an Affiliate #
DELETE /rest/v2/affiliates/{id} Delete Affiliate #
PATCH /rest/v2/affiliates/{id} Update an Affiliate #
DELETE /rest/v2/affiliates/model/customFields/{custom_field_id} Delete a Custom Field #
PATCH /rest/v2/affiliates/model/customFields/{custom_field_id} Update a Custom Field #
GET /rest/v2/affiliates/model/customFields/tabs/{tab_id} Retrieve an Affiliate Custom Field Tab #
DELETE /rest/v2/affiliates/model/customFields/tabs/{tab_id} Delete an Affiliate Custom Field Tab #
PATCH /rest/v2/affiliates/model/customFields/tabs/{tab_id} Update an Affiliate Custom Field Tab #
GET /rest/v2/affiliates/model/customFields/groups/{group_id} Retrieve an Affiliate Custom Field Group #
DELETE /rest/v2/affiliates/model/customFields/groups/{group_id} Delete an Affiliate Custom Field Group #
PATCH /rest/v2/affiliates/model/customFields/groups/{group_id} Update an Affiliate Custom Field Group #
GET /rest/v2/affiliates/commissionPrograms/{commission_program_id} Retrieve a Commission Program #
DELETE /rest/v2/affiliates/commissionPrograms/{commission_program_id} Delete a Commission Program #
PATCH /rest/v2/affiliates/commissionPrograms/{commission_program_id} Update an Affiliate Commission Program #
DELETE /rest/v2/affiliates/commissionPrograms/resources/{resource_id} Remove Commission Program Resource #
PATCH /rest/v2/affiliates/commissionPrograms/resources/{resource_id} Update Commission Program Resource #
GET /rest/v2/affiliates/{affiliate_id}:commissions Retrieve Affiliate Commissions #
GET /rest/v2/affiliates/{affiliate_id}/referrals Retrieve Affiliate Referrals #
GET /rest/v2/affiliates/{affiliate_id}/payments List Affiliate Payments #
GET /rest/v2/affiliates/{affiliate_id}/commissionTotal Retrieve Affiliate Commission Earned and View LedgerURl for portal #
GET /rest/v2/affiliates/summaries List Affiliate Summaries #
GET /rest/v2/affiliates/model Retrieve Affiliate Model #
GET /rest/v2/affiliates/commissionPrograms/{commission_program_id}/resources Retrieve Commission Program Resources #
GET /v1/affiliates List Affiliates #
POST /v1/affiliates Create an affiliate #
GET /v1/affiliates/commissions List Commissions #
GET /v1/affiliates/model Retrieve Affiliate Model #
GET /v1/affiliates/programs List Commission Programs #
GET /v1/affiliates/redirectlinks List Affiliate Redirects #
GET /v1/affiliates/summaries List affiliate summaries #
GET /v1/affiliates/{affiliateId}/clawbacks List Affiliate clawbacks #
GET /v1/affiliates/{affiliateId}/payments List Affiliate payments #
GET /v1/affiliates/{id} Retrieve an affiliate #
GET /rest/v1/affiliates List Affiliates #
POST /rest/v1/affiliates Create an affiliate #
GET /rest/v1/affiliates/{id} Retrieve an affiliate #
GET /rest/v1/affiliates/{affiliateId}/payments List Affiliate payments #
GET /rest/v1/affiliates/{affiliateId}/clawbacks List Affiliate clawbacks #
GET /rest/v1/affiliates/summaries List affiliate summaries #
GET /rest/v1/affiliates/programs List Commission Programs #
GET /rest/v1/affiliates/model Retrieve Affiliate Model #
GET /rest/v1/affiliates/commissions List Commissions #
GET /v2/affiliates List Affiliates #
POST /v2/affiliates Create an Affiliate #
GET /v2/affiliates/commissionPrograms List Affiliate Commission Programs #
POST /v2/affiliates/commissionPrograms Create an Affiliate Commission Program #
POST /v2/affiliates/commissionPrograms/defaultCommissionPrograms/{commission_program_id} Create a Default Commission Program #
PATCH /v2/affiliates/commissionPrograms/defaultCommissionPrograms/{commission_program_id} Update a Default Commission Program #
POST /v2/affiliates/commissionPrograms/productCommissionPrograms/{commission_program_id} Assign a Product Commission Program #
PATCH /v2/affiliates/commissionPrograms/productCommissionPrograms/{commission_program_id} Update a Product Commission Program #
POST /v2/affiliates/commissionPrograms/subscriptionCommissionPrograms/{commission_program_id} Assign a Subscription Commission Program #
PATCH /v2/affiliates/commissionPrograms/subscriptionCommissionPrograms/{commission_program_id} Update a Subscription Commission Program #
POST /v2/affiliates/commissionPrograms/{commission_id}:removeProductCommission Remove a Product from a Commission Program #
POST /v2/affiliates/commissionPrograms/{commission_id}:removeSubscriptionCommission Remove a Subscription from a Commission Program #
GET /v2/affiliates/commissionPrograms/{commission_program_id} Retrieve a Commission Program #
DELETE /v2/affiliates/commissionPrograms/{commission_program_id} Delete a Commission Program #
PATCH /v2/affiliates/commissionPrograms/{commission_program_id} Update an Affiliate Commission Program #
GET /v2/affiliates/model Retrieve Affiliate Model #
POST /v2/affiliates/model/customFields Create an Affiliate Custom Field #
DELETE /v2/affiliates/model/customFields/{custom_field_id} Delete a Custom Field #
PATCH /v2/affiliates/model/customFields/{custom_field_id} Update a Custom Field #
GET /v2/affiliates/redirects List Affiliate Links #
POST /v2/affiliates/redirects Create an Affiliate Link #
GET /v2/affiliates/redirects/{redirect_id} Retrieve an Affiliate Link #
DELETE /v2/affiliates/redirects/{redirect_id} Delete an Affiliate Link #
PATCH /v2/affiliates/redirects/{redirect_id} Update an Affiliate Link #
GET /v2/affiliates/summaries List Affiliate Summaries #
GET /v2/affiliates/{affiliate_id}/commissionTotal Retrieve Affiliate Commission Earned and View LedgerURl for portal #
GET /v2/affiliates/{affiliate_id}/payments List Affiliate Payments #
GET /v2/affiliates/{affiliate_id}:commissions Retrieve Affiliate Commission and Clawbacks #
GET /v2/affiliates/{id} Retrieve an Affiliate #
DELETE /v2/affiliates/{id} Delete Affiliate #
PATCH /v2/affiliates/{id} Update an Affiliate #
POST /v2/affiliates/{id}:assignToProgram Assign Affiliate to Commission program #
POST /v2/affiliates/{id}:removeFromProgram Remove an Affiliate from a Commission Program #

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/infusionsoft-affiliate-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

infusionsoft-affiliate-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Infusionsoft Affiliate API
  license:
    name: Apache 2.0
    url: https://www.apache.org/licenses/LICENSE-2.0
  version: '1.0'
  description: 'Operations tagged Affiliate across 7 of this provider''s published API definitions: infusionsoft-keap-sdk-v2-swagger-original.yml, infusionsoft-rest-v1-2025-11-05-openapi-original.json, infusionsoft-rest-v1-openapi-original.json, infusionsoft-rest-v1-openapi.json, infusionsoft-rest-v2-2025-11-05-openapi-original.json, infusionsoft-rest-v2-openapi-original.json, infusionsoft-rest-v2-openapi.json. Each path carries the servers of the definition it was published in.'
servers:
- url: https://api.keap.com/crm
- url: https://api.infusionsoft.com/crm/rest
- url: https://api.infusionsoft.com/crm
tags:
- name: Affiliate
paths:
  /rest/v2/affiliates:
    get:
      tags:
      - Affiliate
      summary: List Affiliates
      description: Retrieves a list of Affiliates
      operationId: listAffiliate
      parameters:
      - name: filter
        in: query
        description: 'Filter to apply, allowed fields are:

          - (String) `id` - Allowable operators: "==","<=", "<", ">=", ">", "!="

          - (String) `name` - Wildcard matching allowed

          - (String) `contact_id`

          - (String) `referral_contact_id`

          - (String) `status`

          - (String) `code`

          - (Custom) Custom field names - Reference by field name (e.g., `tier`, `region`)


          You will need to apply the `==` operator to check the equality of one of the filters with the

          value you want to match, in the encoded form `%3D%3D`. For the filters listed above,

          here are some examples:

          - `filter=id%3C123`

          - `filter=id%3D%3D123`

          - `filter=name%3D%3DBob`

          - `filter=contact_id%3D%3D567`

          - `filter=contact_id%3D%3D123%3Bcode%3D%3D567`


          For fields which allow wildcard matching, you may use the * wildcard character (or its encoded form %2A)

          for case-insensitive partial matching on text fields. Example of a valid pattern of wildcard usage:

          - `field==foo*` finds anything in `field` that begins with `foo`


          Custom Field Filtering:

          Custom fields are referenced by their field name as configured in the system.

          Standard field names take precedence over custom field names.


          Supported operators by field type:

          - Text fields and single-value choice fields with text options (dropdown, radio, state): ==, and wildcard support (e.g., `value*`)

          - Numeric fields (including user, month, day of week): ==, <, <=, >, >=

          - Date fields: ==, <, <=, >, >= (ISO 8601 format)

          - Yes/No and drilldown fields: ==

          - Multi-select fields: == (matches if value is present)


          Examples of custom field filtering:

          - `filter=tier%3D%3DPlatinum` - Text field exact match

          - `filter=region%3D%3DWest%2A` - Text field with wildcard (starts with "West")

          - `filter=revenue%3E100000` - Numeric field greater than 100000

          - `filter=join_date%3E%3D2024-01-01` - Date field on or after Jan 1, 2024

          - `filter=name%3D%3DBob%3Btier%3D%3DGold` - Combine standard and custom fields


          Note: Leading wildcards (e.g., `*value`) are not supported for performance reasons.

          Only prefix wildcards (e.g., `value*`) are allowed.

          '
        required: false
        schema:
          type: string
      - name: order_by
        in: query
        description: 'Attribute and direction to order items.

          One of the following fields:

          - `id`

          - `date_created`

          - `name`

          - `status`

          - `code`


          One of the following directions:

          - `asc`

          - `desc`

          '
        required: false
        schema:
          type: string
      - name: page_size
        in: query
        description: Total number of items to return per page
        required: false
        schema:
          type: integer
          format: int32
          maximum: 1000
          minimum: 0
        example: 0
      - name: page_token
        in: query
        description: Page token
        required: false
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListAffiliatesResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '405':
          description: Method Not Allowed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '409':
          description: Conflict
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '501':
          description: Method Not Implemented
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      security:
      - oauth2: []
    post:
      tags:
      - Affiliate
      summary: Create an Affiliate
      description: Creates a single Affiliate
      operationId: addAffiliate
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateAffiliateRequest'
        required: true
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RestAffiliate'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '405':
          description: Method Not Allowed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '409':
          description: Conflict
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '501':
          description: Method Not Implemented
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      security:
      - oauth2: []
    servers:
    - url: https://api.keap.com/crm
  /rest/v2/affiliates/{id}:removeFromProgram:
    post:
      tags:
      - Affiliate
      summary: Remove an Affiliate from a Commission Program
      description: Removes an Affiliate from a Commission Program
      operationId: removeAffiliateFromProgram
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AffiliateRemoveFromProgramRequest'
        required: true
      responses:
        '200':
          description: OK
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '405':
          description: Method Not Allowed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '409':
          description: Conflict
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '501':
          description: Method Not Implemented
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      security:
      - oauth2: []
    servers:
    - url: https://api.keap.com/crm
  /rest/v2/affiliates/{id}:assignToProgram:
    post:
      tags:
      - Affiliate
      summary: Assign Affiliate to Commission program
      description: Assigns an Affiliate to Commission Program
      operationId: addAffiliateToProgram
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AffiliateAddToProgramRequest'
        required: true
      responses:
        '200':
          description: OK
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '405':
          description: Method Not Allowed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '409':
          description: Conflict
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '501':
          description: Method Not Implemented
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      security:
      - oauth2: []
    servers:
    - url: https://api.keap.com/crm
  /rest/v2/affiliates/redirects:
    get:
      tags:
      - Affiliate
      summary: List Affiliate Links
      description: Retrieves a list of Affiliate Links
      operationId: listAffiliateLinks
      parameters:
      - name: filter
        in: query
        description: 'Filter to apply, allowed fields are:

          - (String) `name`

          - (String) `affiliate_id`

          '
        required: false
        schema:
          type: string
      - name: order_by
        in: query
        description: 'Attribute and direction to order items.

          One of the following fields:

          - `name`

          - `date_created`


          One of the following directions:

          - `asc`

          - `desc`'
        required: false
        schema:
          type: string
      - name: page_size
        in: query
        description: Total number of items to return per page
        required: false
        schema:
          type: integer
          format: int32
          maximum: 1000
          minimum: 0
        example: 0
      - name: page_token
        in: query
        description: Page token
        required: false
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListAffiliateLinksResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '405':
          description: Method Not Allowed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '409':
          description: Conflict
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '501':
          description: Method Not Implemented
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      security:
      - oauth2: []
    post:
      tags:
      - Affiliate
      summary: Create an Affiliate Link
      description: Creates a single Affiliate Link
      operationId: createRedirectLink
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateOrUpdateAffiliateLinkRequest'
        required: true
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AffiliateLink'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '405':
          description: Method Not Allowed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '409':
          description: Conflict
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '501':
          description: Method Not Implemented
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      security:
      - oauth2: []
    servers:
    - url: https://api.keap.com/crm
  /rest/v2/affiliates/model/customFields:
    post:
      tags:
      - Affiliate
      summary: Create an Affiliate Custom Field
      description: Creates a single Affiliate Custom Field
      operationId: createAffiliateCustomField
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateCustomFieldRequest'
        required: true
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CustomFieldMetaData'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '405':
          description: Method Not Allowed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '409':
          description: Conflict
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '501':
          description: Method Not Implemented
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      security:
      - oauth2: []
    servers:
    - url: https://api.keap.com/crm
  /rest/v2/affiliates/model/customFields/tabs:
    get:
      tags:
      - Affiliate
      summary: List Affiliate Custom Field Tabs
      description: Retrieves a list of custom field tabs for the Affiliate record type.
      operationId: listAffiliateCustomFieldTabs
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListCustomFieldTabsResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '405':
          description: Method Not Allowed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '409':
          description: Conflict
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '501':
          description: Method Not Implemented
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      security:
      - oauth2: []
    post:
      tags:
      - Affiliate
      summary: Create an Affiliate Custom Field Tab
      description: Creates a new custom field tab for the Affiliate record type.
      operationId: createAffiliateCustomFieldTab
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateCustomFieldTabRequest'
        required: true
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CustomFieldTab'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '405':
          description: Method Not Allowed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '409':
          description: Conflict
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '501':
          description: Method Not Implemented
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      security:
      - oauth2: []
    servers:
    - url: https://api.keap.com/crm
  /rest/v2/affiliates/model/customFields/groups:
    get:
      tags:
      - Affiliate
      summary: List Affiliate Custom Field Groups
      description: Retrieves a list of custom field groups for the Affiliate record type. Optionally filter by tab_id to scope to a specific tab.
      operationId: listAffiliateCustomFieldGroups
      parameters:
      - name: tab_id
        in: query
        description: Optional tab id to scope groups to a single tab
        required: false
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListCustomFieldGroupsResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '405':
          description: Method Not Allowed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '409':
          description: Conflict
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '501':
          description: Method Not Implemented
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      security:
      - oauth2: []
    post:
      tags:
      - Affiliate
      summary: Create an Affiliate Custom Field Group
      description: Creates a new custom field group for the Affiliate record type. If `tab_id` is omitted, the group is added to the default 'Custom Fields' tab.
      operationId: createAffiliateCustomFieldGroup
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateCustomFieldGroupRequest'
        required: true
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CustomFieldGroup'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '405':
          description: Method Not Allowed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '409':
          description: Conflict
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '501':
          description: Method Not Implemented
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      security:
      - oauth2: []
    servers:
    - url: https://api.keap.com/crm
  /rest/v2/affiliates/commissionPrograms:
    get:
      tags:
      - Affiliate
      summary: List Affiliate Commission Programs
      description: Retrieves a list of Affiliate Commission Programs
      operationId: listAffiliateCommissionPrograms
      parameters:
      - name: filter
        in: query
        description: 'Filter to apply, allowed fields are:

          - (String) `name`

          - (String) `affiliate_id`

          '
        required: false
        schema:
          type: string
      - name: order_by
        in: query
        description: 'Attribute and direction to order items.

          One of the following fields:

          - `name`

          - `date_created`


          One of the following directions:

          - `asc`

          - `desc`'
        required: false
        schema:
          type: string
      - name: page_size
        in: query
        description: Total number of items to return per page
        required: false
        schema:
          type: integer
          format: int32
          maximum: 1000
          minimum: 0
        example: 0
      - name: page_token
        in: query
        description: Page token
        required: false
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListAffiliateCommissionProgramsResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '405':
          description: Method Not Allowed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '409':
          description: Conflict
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '501':
          description: Method Not Implemented
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      security:
      - oauth2: []
    post:
      tags:
      - Affiliate
      summary: Create an Affiliate Commission Program
      description: Creates an Affiliate Commission Program
      operationId: addCommissionProgram
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateCommissionProgramRequest'
        required: true
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AffiliateCommissionProgramResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '405':
          description: Method Not Allowed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '409':
          description: Conflict
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '501':
          description: Method Not Implemented
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      security:
      - oauth2: []
    servers:
    - url: https://api.keap.com/crm
  /rest/v2/affiliates/commissionPrograms/{commission_id}:removeSubscriptionCommission:
    post:
      tags:
      - Affiliate
      summary: Remove a Subscription from a Commission Program
      description: Removes a Subscription from a Commission Program
      operationId: removeSubscriptionPlanCommissionFromCommissions
      parameters:
      - name: commission_id
        in: path
        required: true
  

# --- truncated at 32 KB (964 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/infusionsoft/refs/heads/main/openapi/infusionsoft-affiliate-api-openapi.yml