ThriveCart Affiliates API

The Affiliates API from ThriveCart — 9 operation(s) for affiliates.

Business capability
Channel Sales Management BC-410.60

Operations 10

Each operation below carries the questions people ask an LLM about it and the instructions they give an agent to run it. Generated by API Evangelist overlay

GET /affiliates Search affiliates by product, name or email · Search affiliates #
Ask an LLM
“How do I find affiliates approved to promote a particular product?”
“Can I look up an affiliate by searching their name or email?”
Tell an agent
Search affiliates approved for product {product_id}, page {page} with {perPage} per page.
Find affiliates matching {query}, showing page {page} at {perPage} results per page.
POST /affiliates Create a new affiliate · Create new affiliate #
Ask an LLM
“How do I sign up a new affiliate and add them to my products?”
“Can I choose a preferred affiliate ID when I create someone as an affiliate?”
Tell an agent
Create a new affiliate with email {email} for products {product_ids}.
Add {name} ({email}) as a new affiliate on products {product_ids} and auto-approve them: {auto_approve}.
POST /affiliate Look up one affiliate's details · Read affiliate info #
Ask an LLM
“How can I pull up the details of a single affiliate?”
“Can I fetch an affiliate's record using just their email address?”
Tell an agent
Get the affiliate record for {affiliate_id}.
Show me everything on file for the affiliate with email or ID {affiliate_id}.
POST /affiliates/{affiliate_id}/favorite Mark an affiliate as a favorite · Mark affiliate as favorite #
Ask an LLM
“How do I flag one of my affiliates as a VIP?”
“Can I star an affiliate as a favorite?”
Tell an agent
Mark affiliate {affiliate_id} as a favorite.
Flag {affiliate_id} as a VIP affiliate.
POST /affiliates/{affiliate_id}/unfavorite Remove an affiliate's favorite marker · Un-favourite an affiliate #
Ask an LLM
“How do I take an affiliate off my favorites?”
“Can I remove the VIP flag from an affiliate?”
Tell an agent
Unfavorite affiliate {affiliate_id}.
Remove the VIP marker from affiliate {affiliate_id}.
POST /affiliates/{affiliate_id}/register Register an existing affiliate for products · Register affiliate for a product #
Ask an LLM
“How do I add an affiliate I already have to another product?”
“Can an existing affiliate be enrolled in several products at once?”
Tell an agent
Register existing affiliate {affiliate_id} for products {product_ids}.
Enroll affiliate {affiliate_id} in {product_ids} and auto-approve: {auto_approve}.
POST /affiliates/{affiliate_id}/approve Approve an affiliate's pending application · Approve an affiliate for a product #
Ask an LLM
“How do I approve an affiliate who applied to promote my product?”
“What happens if I approve an affiliate whose application isn't pending?”
Tell an agent
Approve affiliate {affiliate_id}'s pending application for products {product_ids}.
Accept {affiliate_id} for {product_ids} without sending emails: trigger_emails {trigger_emails}.
POST /affiliates/{affiliate_id}/reject Reject an affiliate's pending application · Reject an affiliate for a product #
Ask an LLM
“How do I turn down an affiliate's application to promote a product?”
“Can I decline an affiliate applicant without emailing them?”
Tell an agent
Reject affiliate {affiliate_id}'s pending application for products {product_ids}.
Decline {affiliate_id} for {product_ids} and set trigger_emails to {trigger_emails}.
POST /affiliates/{affiliate_id}/custom_commissions Set custom commissions for an affiliate · Specify custom commissions #
Ask an LLM
“Can I pay one affiliate a different commission on a specific product?”
“How do I override how much and when an individual affiliate gets paid?”
Tell an agent
Set custom commissions {commission_object} for affiliate {affiliate_id} on product {product_id}.
Remove the custom commission override for affiliate {affiliate_id} on product {product_id} by sending {commission_object} as null.
POST /affiliates/{affiliate_id}/delete Delete an affiliate · Delete affiliate user #
Ask an LLM
“How do I permanently remove an affiliate from my account?”
“Can I delete an affiliate user through the API?”
Tell an agent destructive · confirm first
Delete affiliate {affiliate_id}.
Remove the affiliate user {affiliate_id} from my account.

Documentation

Specifications

Other Resources

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/thrivecart:thrivecart-affiliates-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

thrivecart-affiliates-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: ThriveCart Affiliates API
  version: '1'
  description: The ThriveCart API lets you read and manage the products, bumps, upsells, downsells, transactions, customers, subscriptions, affiliates and Learn students in a ThriveCart account, and to create targeted event subscriptions (webhooks).
  termsOfService: https://thrivecart.com/legal/thrivecart/
  contact:
    name: ThriveCart Developer Support
    url: https://developers.thrivecart.com/
    email: support@thrivecart.com
servers:
- url: https://thrivecart.com/api/external
  description: Production
security:
- bearerAuth: []
- oauth2: []
tags:
- name: Affiliates
paths:
  /affiliates:
    get:
      operationId: searchAffiliates
      summary: Search affiliates
      description: Search for affiliates by the product ID they're approved for, or by their name, email, or affiliate ID.
      tags:
      - Affiliates
      parameters:
      - name: product_id
        in: query
        required: false
        description: (Optional) Product ID
        schema:
          type: string
      - name: query
        in: query
        required: false
        description: (Optional) Search by affiliate name, email, affiliate ID
        schema:
          type: string
      - name: page
        in: query
        required: true
        description: Page number (1 through N)
        schema:
          type: string
        example: '1'
      - name: perPage
        in: query
        required: true
        description: Results per page (max of 25)
        schema:
          type: string
        example: '5'
      responses:
        '200':
          description: Search affiliates
          content:
            application/json:
              schema:
                type: object
                properties:
                  affiliates:
                    type: array
                    items:
                      type: object
                      properties:
                        user_id:
                          type: string
                        email:
                          type: string
                        affiliate_id:
                          type: string
                        label:
                          type: string
                        name:
                          type: string
                        is_favourite:
                          type: boolean
                        products:
                          type: array
                          items:
                            type: object
                            properties:
                              product_id:
                                type: string
                              product_name:
                                type: string
                              status_string:
                                type: string
                              status:
                                type: string
                              affiliate_link:
                                type: string
                  meta:
                    type: object
                    properties:
                      total:
                        type: integer
                      results:
                        type: integer
              examples:
                Search_affiliates:
                  value:
                    affiliates:
                    - user_id: '649'
                      email: alexis_fortier@thrivecart.com
                      affiliate_id: alexis_fortier
                      label: alexis_fortier (alexis_fortier@thrivecart.com)
                      name: Alexis Fortier
                      is_favourite: false
                      products:
                      - product_id: '250'
                        product_name: My Demo Subscription
                        status_string: active
                        status: '2'
                        affiliate_link: https://alexis_fortier--myaccount.thrivecart.com/my-demo-subscription/
                      - product_id: '296'
                        product_name: Demo Product
                        status_string: active
                        status: '2'
                        affiliate_link: https://alexis_fortier--myaccount.thrivecart.com/demo-product/
                    - user_id: '650'
                      email: amy_greene_dittz@thrivecart.com
                      affiliate_id: amy_greene_dittz
                      label: amy_greene_dittz (amy_greene_dittz@thrivecart.com)
                      name: Amy Greene-Dittz
                      is_favourite: false
                      products:
                      - product_id: '250'
                        product_name: My Demo Subscription
                        status_string: active
                        status: '2'
                        affiliate_link: https://amy_greene_dittz--myaccount.thrivecart.com/my-demo-subscription/
                      - product_id: '296'
                        product_name: Demo Product
                        status_string: active
                        status: '2'
                        affiliate_link: https://amy_greene_dittz--myaccount.thrivecart.com/demo-product/
                    meta:
                      total: 5672
                      results: 2
          headers:
            X-ThriveCart-Account-Name:
              description: X-ThriveCart-Account-Name
              schema:
                type: string
              example: myaccount
            X-ThriveCart-Account-URL:
              description: X-ThriveCart-Account-URL
              schema:
                type: string
              example: https://myaccount.thrivecart.com/
        '401':
          description: Unauthorized - the API key or access token is missing, invalid or expired.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                auth_missing:
                  value:
                    error: auth.missing
                invalid_token:
                  value:
                    error: invalid_token
                    error_description: The access token provided is invalid
        '429':
          description: Too Many Requests - the account has exceeded 60 requests per minute.
      security:
      - bearerAuth: []
      - oauth2: []
    post:
      operationId: createNewAffiliate
      summary: Create new affiliate
      description: 'Create a new affiliate in your account.


        You can optionally specify an affiliate_id key to set their preferred affiliate ID. Affiliate IDs are unique across the system, so this may be modified by the system to ensure uniqueness.


        If you do not specify any affiliate_id, we will generate one based on the user''s name or email address.


        If the user already exists in the system and has an affiliate ID set already, your parameter will be ignored and their affiliate ID will not be modified.'
      tags:
      - Affiliates
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              properties:
                email:
                  type: string
                  description: Affiliate's email (used to sign in)
                name:
                  type: string
                  description: (Optional) Affiliate's name
                affiliate_id:
                  type: string
                  description: (Optional) Desired affiliate ID - may be updated by the system
                product_ids:
                  type: string
                  description: Array of at least one product ID to add them to
                auto_approve:
                  type: string
                  description: (Optional) Auto-approve the affiliate for these products?
                parent_affiliate:
                  type: string
                  description: (Optional) Mark this affiliate as having been referred by another?
                first_name:
                  type: string
                  description: (Optional) Affiliate's first name
                last_name:
                  type: string
                  description: (Optional) Affiliate's last name
                company:
                  type: string
                  description: (Optional) Affiliate's company/business name
                country:
                  type: string
                  description: (Optional) 2-digit country code for affiliate's country
                city:
                  type: string
                  description: (Optional) Affiliate's city
                state:
                  type: string
                  description: (Optional) Affiliate's state/region
                zip:
                  type: string
                  description: (Optional) Affiliate's ZIP/post code
                trigger_emails:
                  type: string
                  description: (Optional) Trigger email to affiliate and vendor? Defaults to true
              required:
              - email
              - product_ids
      responses:
        '401':
          description: Unauthorized - the API key or access token is missing, invalid or expired.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                auth_missing:
                  value:
                    error: auth.missing
                invalid_token:
                  value:
                    error: invalid_token
                    error_description: The access token provided is invalid
        '429':
          description: Too Many Requests - the account has exceeded 60 requests per minute.
      security:
      - bearerAuth: []
      - oauth2: []
  /affiliate:
    post:
      operationId: readAffiliateInfo
      summary: Read affiliate info
      description: Return the information about a specific affiliate by their affiliate ID, their numeric user ID, or their email address.
      tags:
      - Affiliates
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              properties:
                affiliate_id:
                  type: string
                  description: Affiliate user ID, affiliate id, or email
              required:
              - affiliate_id
      responses:
        '200':
          description: Read affiliate info
          content:
            application/json:
              schema:
                type: object
                properties:
                  user_id:
                    type: string
                  email:
                    type: string
                  affiliate_id:
                    type: string
                  label:
                    type: string
                  name:
                    type: string
                  is_favourite:
                    type: boolean
                  products:
                    type: array
                    items:
                      type: object
                      properties:
                        product_id:
                          type: string
                        product_name:
                          type: string
                        status_string:
                          type: string
                        status:
                          type: string
                        affiliate_link:
                          type: string
              examples:
                Read_affiliate_info:
                  value:
                    user_id: '649'
                    email: edwardmann@thrivecart.com
                    affiliate_id: edward_mann
                    label: alexis_fortier (demoaffiliate@thrivecart.com)
                    name: Edward Mann
                    is_favourite: false
                    products:
                    - product_id: '250'
                      product_name: My Demo Subscription
                      status_string: active
                      status: '2'
                      affiliate_link: https://edward_mann--myaccount.thrivecart.com/my-demo-subscription/
                    - product_id: '296'
                      product_name: Demo Product
                      status_string: active
                      status: '2'
                      affiliate_link: https://edward_mann--myaccount.thrivecart.com/demo-product/
          headers:
            X-ThriveCart-Account-Name:
              description: X-ThriveCart-Account-Name
              schema:
                type: string
              example: myaccount
            X-ThriveCart-Account-URL:
              description: X-ThriveCart-Account-URL
              schema:
                type: string
              example: https://myaccount.thrivecart.com/
        '401':
          description: Unauthorized - the API key or access token is missing, invalid or expired.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                auth_missing:
                  value:
                    error: auth.missing
                invalid_token:
                  value:
                    error: invalid_token
                    error_description: The access token provided is invalid
        '429':
          description: Too Many Requests - the account has exceeded 60 requests per minute.
      security:
      - bearerAuth: []
      - oauth2: []
  /affiliates/{affiliate_id}/favorite:
    post:
      operationId: markAffiliateAsFavorite
      summary: Mark affiliate as favorite
      description: Mark an affiliate as a 'favorite' or VIP affiliate.
      tags:
      - Affiliates
      parameters:
      - name: affiliate_id
        in: path
        required: true
        description: Affiliate ID
        schema:
          type: string
      responses:
        '401':
          description: Unauthorized - the API key or access token is missing, invalid or expired.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                auth_missing:
                  value:
                    error: auth.missing
                invalid_token:
                  value:
                    error: invalid_token
                    error_description: The access token provided is invalid
        '429':
          description: Too Many Requests - the account has exceeded 60 requests per minute.
      security:
      - bearerAuth: []
      - oauth2: []
  /affiliates/{affiliate_id}/unfavorite:
    post:
      operationId: unFavouriteAnAffiliate
      summary: Un-favourite an affiliate
      description: Remove the 'favorite' marker from an affiliate.
      tags:
      - Affiliates
      parameters:
      - name: affiliate_id
        in: path
        required: true
        description: Affiliate ID
        schema:
          type: string
      responses:
        '401':
          description: Unauthorized - the API key or access token is missing, invalid or expired.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                auth_missing:
                  value:
                    error: auth.missing
                invalid_token:
                  value:
                    error: invalid_token
                    error_description: The access token provided is invalid
        '429':
          description: Too Many Requests - the account has exceeded 60 requests per minute.
      security:
      - bearerAuth: []
      - oauth2: []
  /affiliates/{affiliate_id}/register:
    post:
      operationId: registerAffiliateForAProduct
      summary: Register affiliate for a product
      description: Register an existing affiliate for a specific product or list of products.
      tags:
      - Affiliates
      parameters:
      - name: affiliate_id
        in: path
        required: true
        description: Affiliate ID
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              properties:
                product_ids:
                  type: string
                  description: Array of at least one product ID to add them to
                auto_approve:
                  type: string
                  description: (Optional) Auto-approve the affiliate for these products?
                trigger_emails:
                  type: string
                  description: (Optional) Trigger email to affiliate and vendor? Defaults to true
                parent_affiliate:
                  type: string
                  description: (Optional) Mark this affiliate as having been referred by another?
              required:
              - product_ids
      responses:
        '401':
          description: Unauthorized - the API key or access token is missing, invalid or expired.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                auth_missing:
                  value:
                    error: auth.missing
                invalid_token:
                  value:
                    error: invalid_token
                    error_description: The access token provided is invalid
        '429':
          description: Too Many Requests - the account has exceeded 60 requests per minute.
      security:
      - bearerAuth: []
      - oauth2: []
  /affiliates/{affiliate_id}/approve:
    post:
      operationId: approveAnAffiliateForAProduct
      summary: Approve an affiliate for a product
      description: Approve an affiliate for a pending application to a product or products. Note, if the application isn't already pending, no changes will be made.
      tags:
      - Affiliates
      parameters:
      - name: affiliate_id
        in: path
        required: true
        description: Affiliate ID
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              properties:
                product_ids:
                  type: string
                  description: Array of at least one product ID to approve their application for
                trigger_emails:
                  type: string
                  description: (Optional) Trigger email to affiliate and vendor? Defaults to true
              required:
              - product_ids
      responses:
        '401':
          description: Unauthorized - the API key or access token is missing, invalid or expired.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                auth_missing:
                  value:
                    error: auth.missing
                invalid_token:
                  value:
                    error: invalid_token
                    error_description: The access token provided is invalid
        '429':
          description: Too Many Requests - the account has exceeded 60 requests per minute.
      security:
      - bearerAuth: []
      - oauth2: []
  /affiliates/{affiliate_id}/reject:
    post:
      operationId: rejectAnAffiliateForAProduct
      summary: Reject an affiliate for a product
      description: Approve an affiliate for a pending application to a product or products. Note, if the application isn't already pending, no changes will be made.
      tags:
      - Affiliates
      parameters:
      - name: affiliate_id
        in: path
        required: true
        description: Affiliate ID
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              properties:
                product_ids:
                  type: string
                  description: Array of at least one product ID to reject their application for
                trigger_emails:
                  type: string
                  description: (Optional) Trigger email to affiliate and vendor? Defaults to true
              required:
              - product_ids
      responses:
        '401':
          description: Unauthorized - the API key or access token is missing, invalid or expired.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                auth_missing:
                  value:
                    error: auth.missing
                invalid_token:
                  value:
                    error: invalid_token
                    error_description: The access token provided is invalid
        '429':
          description: Too Many Requests - the account has exceeded 60 requests per minute.
      security:
      - bearerAuth: []
      - oauth2: []
  /affiliates/{affiliate_id}/custom_commissions:
    post:
      operationId: specifyCustomCommissions
      summary: Specify custom commissions
      description: 'Specify a block of custom commissions for a specific affiliate and product they are promoting.


        This enables you to override the affiliate much like affiliate rules, and change how much, when, and how they get paid.


        See our example SDK for further examples and insight.'
      tags:
      - Affiliates
      parameters:
      - name: affiliate_id
        in: path
        required: true
        description: Affiliate ID
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              properties:
                product_id:
                  type: string
                  description: Product ID to apply custom commissions for
                commission_object:
                  type: string
                  description: Custom commissions object (or null to remove any custom commissions set for this product)
              required:
              - product_id
              - commission_object
      responses:
        '401':
          description: Unauthorized - the API key or access token is missing, invalid or expired.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                auth_missing:
                  value:
                    error: auth.missing
                invalid_token:
                  value:
                    error: invalid_token
                    error_description: The access token provided is invalid
        '429':
          description: Too Many Requests - the account has exceeded 60 requests per minute.
      security:
      - bearerAuth: []
      - oauth2: []
  /affiliates/{affiliate_id}/delete:
    post:
      operationId: deleteAffiliateUser
      summary: Delete affiliate user
      description: Return the information about a specific affiliate by their affiliate ID, their numeric user ID, or their email address.
      tags:
      - Affiliates
      parameters:
      - name: affiliate_id
        in: path
        required: true
        description: Affiliate ID
        schema:
          type: string
      responses:
        '401':
          description: Unauthorized - the API key or access token is missing, invalid or expired.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                auth_missing:
                  value:
                    error: auth.missing
                invalid_token:
                  value:
                    error: invalid_token
                    error_description: The access token provided is invalid
        '429':
          description: Too Many Requests - the account has exceeded 60 requests per minute.
      security:
      - bearerAuth: []
      - oauth2: []
components:
  schemas:
    Error:
      type: object
      description: ThriveCart error envelope. Not RFC 9457 problem+json.
      properties:
        error:
          type: string
          description: Machine-readable error key.
        error_description:
          type: string
          description: Human-readable description, when present.
      required:
      - error
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: 'Account-scoped API key created under Settings > API & webhooks > API tokens, or an OAuth access token, sent as `Authorization: Bearer <token>`.'
    oauth2:
      type: oauth2
      description: OAuth 2.0 authorization code grant for applications acting on behalf of another ThriveCart account. ThriveCart does not publish a scope reference; access is granted account-wide on consent.
      flows:
        authorizationCode:
          authorizationUrl: https://thrivecart.com/authorization/new
          tokenUrl: https://thrivecart.com/authorization/token
          scopes: {}
externalDocs:
  description: ThriveCart Developers
  url: https://developers.thrivecart.com/documentation/