> ## Documentation Index
> Fetch the complete documentation index at: https://docs.winwinkit.com/llms.txt
> Use this file to discover all available pages before exploring further.

# List Affiliates

> Returns the project approved affiliates with their group, all-time totals and connected platforms — the same data as the affiliates table in the dashboard. Newest joiner first unless `sort_by` names another field — then largest first, or A to Z for `name`. Note 1: this endpoint is only accessible with a secret API key. Note 2: up to 100 affiliates are returned per request; page through the rest with `offset`.



## OpenAPI

````yaml get /affiliates
openapi: 3.0.0
info:
  title: WinWinKit API
  description: An API for interacting with WinWinKit.
  version: '1.0'
  contact:
    name: WinWinKit
    url: https://winwinkit.com
    email: support@winwinkit.com
servers:
  - url: https://api.winwinkit.com
    description: Production
security: []
tags:
  - name: Users
    description: User endpoints
  - name: Claim Actions
    description: Claim actions endpoints
  - name: Rewards Actions
    description: Rewards actions endpoints
  - name: Analytics
    description: Analytics endpoints
  - name: Affiliates
    description: Affiliates endpoints
paths:
  /affiliates:
    get:
      tags:
        - Affiliates
      summary: List Affiliates
      description: >-
        Returns the project approved affiliates with their group, all-time
        totals and connected platforms — the same data as the affiliates table
        in the dashboard. Newest joiner first unless `sort_by` names another
        field — then largest first, or A to Z for `name`. Note 1: this endpoint
        is only accessible with a secret API key. Note 2: up to 100 affiliates
        are returned per request; page through the rest with `offset`.
      operationId: getAffiliates
      parameters:
        - name: limit
          required: false
          in: query
          description: How many affiliates to return, from 1 to 100.
          schema:
            minimum: 1
            maximum: 100
            default: 100
            example: 100
            type: number
        - name: offset
          required: false
          in: query
          description: How many affiliates to skip before the page.
          schema:
            minimum: 0
            default: 0
            example: 0
            type: number
        - name: group_ids
          required: false
          in: query
          description: >-
            Only the affiliates of these affiliate groups, by id, up to 5. Given
            as a list: `group_ids[]=<id>&group_ids[]=<id>`; a single id may be
            given bare. Omit for every group. Cannot be combined with
            `group_slugs`.
          schema:
            maxItems: 5
            example:
              - a1b2c3d4-e5f6-7890-abcd-ef0123456701
            type: array
            items:
              type: string
              format: uuid
        - name: group_slugs
          required: false
          in: query
          description: >-
            Only the affiliates of these affiliate groups, by slug, up to 5.
            Given as a list: `group_slugs[]=<slug>&group_slugs[]=<slug>`; a
            single slug may be given bare. Omit for every group. Cannot be
            combined with `group_ids`.
          schema:
            maxItems: 5
            example:
              - creators
            type: array
            items:
              type: string
        - name: sort_by
          required: false
          in: query
          description: >-
            The field to order the affiliates by. `name` orders A to Z; every
            other field largest first, `started_at` newest first. `profit` is
            revenue less earnings; `followers` is the summed audience across
            Instagram, TikTok and YouTube, with affiliates whose audience is
            unknown last. Defaults to `started_at`.
          schema:
            default: started_at
            example: revenue
            type: string
            enum:
              - name
              - claims
              - conversions
              - revenue
              - earnings
              - profit
              - followers
              - started_at
        - name: x-api-key
          in: header
          description: The secret API key.
          required: true
          schema:
            type: string
      responses:
        '200':
          description: The page of affiliates.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AffiliateListResponse'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorsResponse'
        '422':
          description: The request is invalid.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorsResponse'
        '429':
          description: The rate limit for this endpoint has been exceeded.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorsResponse'
components:
  schemas:
    AffiliateListResponse:
      type: object
      properties:
        data:
          $ref: '#/components/schemas/AffiliateList'
      required:
        - data
    ErrorsResponse:
      type: object
      properties:
        errors:
          type: array
          items:
            $ref: '#/components/schemas/ErrorObject'
      description: Errors Response
      required:
        - errors
    AffiliateList:
      type: object
      properties:
        affiliates:
          description: >-
            The page of affiliates, in the order `sort_by` asks for — newest
            joiner first when it is omitted
          type: array
          items:
            $ref: '#/components/schemas/AffiliateListEntry'
        pagination:
          description: Where this page sits within the affiliates that matched
          allOf:
            - $ref: '#/components/schemas/Pagination'
      required:
        - affiliates
        - pagination
    ErrorObject:
      type: object
      properties:
        code:
          type: string
        status:
          type: integer
        message:
          type: string
        source:
          type: string
          nullable: true
      description: Error Object
      required:
        - code
        - status
        - message
        - source
    AffiliateListEntry:
      type: object
      properties:
        id:
          type: string
          example: 2772aded-9009-474c-a368-c887dda45b01
          description: The affiliate id
        name:
          type: string
          example: Jane Doe
          description: The affiliate name
        logo_url:
          type: string
          nullable: true
          example: https://example.com/logo.png
          description: The affiliate logo url
        country:
          type: string
          nullable: true
          example: US
          description: The affiliate country, as an ISO 3166-1 alpha-2 code
        group:
          description: The affiliate group the affiliate belongs to in this project
          allOf:
            - $ref: '#/components/schemas/AffiliateListGroup'
        status:
          type: string
          enum:
            - approved
          example: approved
          description: >-
            The affiliate standing with the project. Always `approved`: only
            approved affiliates are listed
        claims:
          type: number
          example: 120
          description: The number of times the affiliate's codes were claimed
        conversions:
          type: number
          example: 34
          description: The number of claims that converted into a purchase
        revenue:
          type: number
          example: 249900
          description: The revenue attributed to the affiliate, in USD cents
        earnings:
          type: number
          example: 49980
          description: The commission owed to the affiliate on that revenue, in USD cents
        profit:
          type: number
          example: 199920
          description: The revenue less the earnings, in USD cents
        started_at:
          format: date-time
          type: string
          nullable: true
          example: '2026-01-01T00:00:00.000Z'
          description: >-
            When the affiliate joined the project. Null for affiliates approved
            before the date was recorded
        platforms:
          description: The affiliate connected social platforms; empty when they have none
          type: array
          items:
            $ref: '#/components/schemas/AffiliateListPlatform'
        application:
          nullable: true
          description: >-
            What the affiliate submitted on an application form to this project,
            if they ever did; null when nothing was ever submitted. Says what
            they wrote, not how they hold their current place: an affiliate who
            applied and was later invited still carries the answers, which may
            be to another group's form
          allOf:
            - $ref: '#/components/schemas/AffiliateListApplication'
      required:
        - id
        - name
        - logo_url
        - country
        - group
        - status
        - claims
        - conversions
        - revenue
        - earnings
        - profit
        - started_at
        - platforms
        - application
    Pagination:
      type: object
      properties:
        limit:
          type: number
          example: 100
          description: How many results were requested
        offset:
          type: number
          example: 0
          description: How many results were skipped before this page
        total:
          type: number
          example: 512
          description: How many results matched in total, across every page
        has_more:
          type: boolean
          example: true
          description: Whether another page follows this one
      required:
        - limit
        - offset
        - total
        - has_more
    AffiliateListGroup:
      type: object
      properties:
        id:
          type: string
          example: a1b2c3d4-e5f6-7890-abcd-ef0123456701
          description: The affiliate group id
        name:
          type: string
          example: Creators
          description: The affiliate group name
        slug:
          type: string
          example: creators
          description: The affiliate group slug, as used in apply links
        color:
          type: string
          nullable: true
          example: '#6366F1'
          description: The affiliate group color, as shown in the dashboard
      required:
        - id
        - name
        - slug
        - color
    AffiliateListPlatform:
      type: object
      properties:
        type:
          type: string
          enum:
            - instagram
            - tiktok
            - youtube
            - twitter
            - website
          example: instagram
          description: The platform type
        handle:
          type: string
          example: winwinkit
          description: >-
            The public handle/username on the platform, without a leading "@"; a
            full URL for websites
        followers:
          type: number
          nullable: true
          example: 12400
          description: >-
            The follower count on the platform — subscribers, on YouTube. Null
            while the platform has been connected but its stats never fetched
      required:
        - type
        - handle
        - followers
    AffiliateListApplication:
      type: object
      properties:
        answers:
          description: >-
            The answers on the group application form, in the order asked. Empty
            when the form had no questions
          type: array
          items:
            $ref: '#/components/schemas/AffiliateListApplicationAnswer'
      required:
        - answers
    AffiliateListApplicationAnswer:
      type: object
      properties:
        type:
          type: string
          enum:
            - short_text
            - long_text
            - options
          example: options
          description: The kind of question, which decides the shape of the answer
        question:
          type: string
          example: Where will you promote us?
          description: >-
            The question as it was asked. Kept with the answer, so it still
            reads right if the form has since changed
        answer:
          oneOf:
            - type: string
            - type: array
              items:
                type: string
          example:
            - YouTube
            - Newsletter
          description: >-
            The answer: a string, or for an `options` question allowing several
            choices, the chosen options
      required:
        - type
        - question
        - answer

````