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

# Get Daily Activity

> Return one page of referred-user activity for the authenticated affiliate (KOL)
partner. The caller is the API-key owner. Extra unmarked KOL plans and cashback-only
plans are not included.

Two mutually exclusive variants:

* **Day** — `activity_date` (`YYYY-MM-DD`). One page of visible enrolled
  referred users who had activity that UTC trade day, plus day-wide `totals`.
  Opted-out users are omitted from `items` and `totals`. Unenrolled users
  are omitted from `items` only; their activity stays in `totals`.
* **History** — `iiban` (one to ten full IIBANs, comma-delimited) with inclusive
  `start_date` and `end_date`. The same per-day entries for those participants only.
  Day-wide fields (`totals`, `active_users`, `revision`, `estimated`,
  `opted_out`) are omitted.
  Figures are never summed across days.

Sending both variants is a `400`. Dates must be today or one of the previous 89 UTC
days. A future date or a date older than that window is a `400`. An in-window day
with no rows is an empty page.

Monetary figures are decimal strings in the top-level `currency` (always `USD`
today): the reporting currency, not the payout asset. `volume` is omitted on
fee-only products (`margin_rollover`). `maker` and `taker` appear only on
execution products (spot, margin, futures, tokenized spot). Instant buy/sell
(`ptl_trading`, `tokenized_equity_ptl_trading`) and financing charges have no
liquidity side. Absence of `maker`/`taker` means unclassified, not zero.
When both are present they sum to the classified portion; headline minus
maker minus taker is the unclassified remainder.

The `products` map is open-ended: ignore unknown keys; an absent key means zero
activity for that product. Current keys: `spot_trading`, `ptl_trading`,
`margin_trading`, `margin_rollover`, `futures_order_fill`,
`tokenized_equity_spot_trading`, `tokenized_equity_ptl_trading`. Options is not
included.

Day-wide `totals` are visible users only. Opted-out activity is the separate
`opted_out` remainder (`summary`, or `suppressed` when that group is too small
to show). Payable for the day is `totals` plus `summary` when `summary` is
present. Daily figures will not tie exactly to weekly payments: headlines are
payable-only, geo-blocked activity is shown separately and pays zero commission,
and this endpoint windows on trade date while payments window on insert time.

Use `referee_reference` as the stable join key across days. `masked_iiban` is
the last four characters of the IIBAN and is not unique. `enrolled_at` is
truncated to the hour.

`revision` (day variant, first page) is when this partner's figures for that UTC
day were last written. Re-check the trailing 35 days for late events. `estimated`
is `true` when amounts for that calendar day are still an estimate.

Successful responses are the object itself. Errors are a non-2xx
status with a typed error body, not a wrapped `{ "error", "result" }`.

**API Key Permissions Required:** permission to query referrals



## OpenAPI

````yaml /openapi/affiliate-rest.yaml get /affiliate/v1/daily-activity
openapi: 3.0.0
info:
  title: Affiliate REST API
  version: 1.0.0
  description: >
    Referred-user activity for approved affiliate (KOL) partners.


    Paths are on `https://api.kraken.com` (no `/0` prefix).

    Authentication uses the same API key and secret as the rest of the Kraken
    REST

    API. Requests sign each call and send `api-key`, `api-sign`, and `api-nonce`

    headers; the signed path includes the query string.


    Requires permission to query referrals. The caller must be the

    main referrer on a live KOL plan. Cashback-only or extra unmarked plans do

    not count.


    See the [Affiliate guide](/exchange/guides/affiliate/introduction).
servers:
  - url: https://api.kraken.com
    description: Production Server
security:
  - API-Key: []
    API-Sign: []
    API-Nonce: []
tags:
  - name: Affiliate
    x-group: Daily Activity
    x-displayName: Daily Activity
    description: |
      Daily referred-user activity for approved affiliate (KOL) partners.

      See the [Affiliate guide](/exchange/guides/affiliate/introduction).
paths:
  /affiliate/v1/daily-activity:
    get:
      tags:
        - Affiliate
      summary: Get Daily Activity
      description: >-
        Return one page of referred-user activity for the authenticated
        affiliate (KOL)

        partner. The caller is the API-key owner. Extra unmarked KOL plans and
        cashback-only

        plans are not included.


        Two mutually exclusive variants:


        * **Day** — `activity_date` (`YYYY-MM-DD`). One page of visible enrolled
          referred users who had activity that UTC trade day, plus day-wide `totals`.
          Opted-out users are omitted from `items` and `totals`. Unenrolled users
          are omitted from `items` only; their activity stays in `totals`.
        * **History** — `iiban` (one to ten full IIBANs, comma-delimited) with
        inclusive
          `start_date` and `end_date`. The same per-day entries for those participants only.
          Day-wide fields (`totals`, `active_users`, `revision`, `estimated`,
          `opted_out`) are omitted.
          Figures are never summed across days.

        Sending both variants is a `400`. Dates must be today or one of the
        previous 89 UTC

        days. A future date or a date older than that window is a `400`. An
        in-window day

        with no rows is an empty page.


        Monetary figures are decimal strings in the top-level `currency` (always
        `USD`

        today): the reporting currency, not the payout asset. `volume` is
        omitted on

        fee-only products (`margin_rollover`). `maker` and `taker` appear only
        on

        execution products (spot, margin, futures, tokenized spot). Instant
        buy/sell

        (`ptl_trading`, `tokenized_equity_ptl_trading`) and financing charges
        have no

        liquidity side. Absence of `maker`/`taker` means unclassified, not zero.

        When both are present they sum to the classified portion; headline minus

        maker minus taker is the unclassified remainder.


        The `products` map is open-ended: ignore unknown keys; an absent key
        means zero

        activity for that product. Current keys: `spot_trading`, `ptl_trading`,

        `margin_trading`, `margin_rollover`, `futures_order_fill`,

        `tokenized_equity_spot_trading`, `tokenized_equity_ptl_trading`. Options
        is not

        included.


        Day-wide `totals` are visible users only. Opted-out activity is the
        separate

        `opted_out` remainder (`summary`, or `suppressed` when that group is too
        small

        to show). Payable for the day is `totals` plus `summary` when `summary`
        is

        present. Daily figures will not tie exactly to weekly payments:
        headlines are

        payable-only, geo-blocked activity is shown separately and pays zero
        commission,

        and this endpoint windows on trade date while payments window on insert
        time.


        Use `referee_reference` as the stable join key across days.
        `masked_iiban` is

        the last four characters of the IIBAN and is not unique. `enrolled_at`
        is

        truncated to the hour.


        `revision` (day variant, first page) is when this partner's figures for
        that UTC

        day were last written. Re-check the trailing 35 days for late events.
        `estimated`

        is `true` when amounts for that calendar day are still an estimate.


        Successful responses are the object itself. Errors are a non-2xx

        status with a typed error body, not a wrapped `{ "error", "result" }`.


        **API Key Permissions Required:** permission to query referrals
      operationId: getDailyActivity
      parameters:
        - in: query
          name: activity_date
          schema:
            description: >-
              Day variant: UTC trade date. Today or one of the previous 89 UTC
              days.

              Mutually exclusive with `iiban`, `start_date`, and `end_date`.
            type: string
            pattern: ^[0-9]{4}-[0-9]{2}-[0-9]{2}$
            minLength: 10
            maxLength: 10
          style: form
          example: '2026-09-16'
        - in: query
          name: iiban
          schema:
            description: >-
              History variant: one to ten full IIBANs, comma-delimited. Empty,
              duplicate,

              or malformed values are a `400`. Validity is a format check only,
              not

              account existence. Unattributed, unknown, unenrolled, and
              opted-out valid

              IIBANs all return the same empty result. The full identifier is
              never

              echoed; responses still serve `masked_iiban` only.
            type: string
            minLength: 1
            maxLength: 350
          style: form
          example: AA45N84GQK2VUN7A,BB12N84GQK2VUN7B
        - in: query
          name: start_date
          schema:
            description: >-
              History variant: inclusive start, `YYYY-MM-DD`, in the last 90 UTC
              days.

              Required with `iiban` and `end_date`.
            type: string
            pattern: ^[0-9]{4}-[0-9]{2}-[0-9]{2}$
            minLength: 10
            maxLength: 10
          style: form
          example: '2026-08-20'
        - in: query
          name: end_date
          schema:
            description: >-
              History variant: inclusive end, `YYYY-MM-DD`, in the last 90 UTC
              days.

              Required with `iiban` and `start_date`. Must be on or after
              `start_date`.
            type: string
            pattern: ^[0-9]{4}-[0-9]{2}-[0-9]{2}$
            minLength: 10
            maxLength: 10
          style: form
          example: '2026-09-16'
        - in: query
          name: cursor
          schema:
            description: >-
              Opaque cursor from a previous response. Day variant: last item's

              `referee_reference`. History variant: `YYYY-MM-DD:` plus that
              day's

              `referee_reference`. It is not a Kraken account id.
            type: string
            minLength: 1
          style: form
        - in: query
          name: limit
          schema:
            description: >-
              Page size. Defaults to 50 when omitted. Values over 200 are
              rejected.
            type: integer
            format: int32
            minimum: 1
            maximum: 200
            default: 50
          style: form
          example: 50
      responses:
        '200':
          description: One page of affiliate daily activity.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/affiliate.GetDailyActivityResponse'
              example:
                activity_date: '2026-09-16'
                currency: USD
                revision: '2026-09-17T00:14:02Z'
                generated_at: '2026-09-17T12:01:04Z'
                active_users: 1
                totals:
                  spot_trading:
                    volume: '42110.20'
                    fees: '38.20'
                    commission: '11.46'
                    event_count: 12
                    maker:
                      volume: '18400.00'
                      fees: '9.20'
                      commission: '2.76'
                      event_count: 5
                    taker:
                      volume: '23710.20'
                      fees: '29.00'
                      commission: '8.70'
                      event_count: 7
                items:
                  - masked_iiban: UN7A
                    referee_reference: jsd6ggr6qjrzmemn
                    plans:
                      - referral_code: KOL8H2X
                        campaign: tg-vip
                        referral_level: 1
                        enrolled_at: '2026-03-14T09:00:00Z'
                        status: active
                        earning: true
                        expires_at: '2027-03-14T09:21:07Z'
                        products:
                          spot_trading:
                            volume: '42110.20'
                            fees: '38.20'
                            commission: '11.46'
                            event_count: 12
                            maker:
                              volume: '18400.00'
                              fees: '9.20'
                              commission: '2.76'
                              event_count: 5
                            taker:
                              volume: '23710.20'
                              fees: '29.00'
                              commission: '8.70'
                              event_count: 7
                limit: 50
                opted_out:
                  suppressed: {}
      security:
        - API-Key: []
          API-Sign: []
          API-Nonce: []
        - API-Key: []
          API-Sign: []
          API-Nonce: []
          API-OTP: []
components:
  schemas:
    affiliate.GetDailyActivityResponse:
      description: One page of affiliate daily activity.
      type: object
      required:
        - currency
        - generated_at
        - items
        - limit
      properties:
        activity_date:
          description: Day variant only. The UTC trade date every item shares.
          type: string
          pattern: ^[0-9]{4}-[0-9]{2}-[0-9]{2}$
        currency:
          description: Reporting currency for every monetary figure. Always `USD` today.
          type: string
          example: USD
        revision:
          description: >-
            Day variant, first page only. When this partner's figures for that
            UTC day were

            last updated. Omitted when this partner has no rows, and on later
            pages. A later

            value on re-fetch means this partner's figures moved.
          type: string
          format: date-time
        generated_at:
          type: string
          format: date-time
        active_users:
          description: |-
            Day variant, first page only. Count of visible enrolled users
            that day. Omitted on later pages; not a remaining-page count.
          type: integer
          format: int64
          minimum: 0
        totals:
          description: >-
            Day variant, first page only. Totals for visible users in `items`.
            An empty

            map on a later page is omission, not a zero day. Does not include
            opted-out

            activity. Includes unenrolled users so the headline does not move.
          type: object
          additionalProperties:
            $ref: '#/components/schemas/affiliate.ProductActivity'
        next_cursor:
          description: >-
            Present when more results exist. Pass as `cursor` on the next
            request.
          type: string
        items:
          type: array
          items:
            $ref: '#/components/schemas/affiliate.DailyActivityItem'
        estimated:
          description: >-
            Day variant, first page only. Amounts for this date are an estimate
            of that

            calendar day, including the opted-out remainder. Omitted when exact.
          type: boolean
        opted_out:
          $ref: '#/components/schemas/affiliate.GatedActivity'
          description: >-
            Day variant, first page only. Opted-out remainder. Day-wide payable
            is

            `totals` plus `summary` when `summary` is set.
        limit:
          description: >-
            Page size used for this response. Echo of request `limit` after the
            default of 50.
          type: integer
          format: int32
          minimum: 1
          maximum: 200
    affiliate.ProductActivity:
      description: >-
        Activity attributed to one reward-source product. The map key names the
        product.

        The key set is open-ended: ignore unknown keys; an absent key means
        zero.

        Parent volume, fees, event_count, and commission cover payable activity
        only;

        geo_blocked is an additional breakdown and is not included in those
        parent

        figures.
      type: object
      required:
        - fees
        - commission
        - event_count
      properties:
        volume:
          $ref: '#/components/schemas/affiliate.decimalAmount'
          description: Absent for fee-only products such as `margin_rollover`.
        fees:
          $ref: '#/components/schemas/affiliate.decimalAmount'
        commission:
          $ref: '#/components/schemas/affiliate.decimalAmount'
        event_count:
          type: integer
          format: int32
          minimum: 0
        geo_blocked:
          $ref: '#/components/schemas/affiliate.GeoBlockedActivity'
        maker:
          $ref: '#/components/schemas/affiliate.MakerTakerActivity'
        taker:
          $ref: '#/components/schemas/affiliate.MakerTakerActivity'
    affiliate.DailyActivityItem:
      description: One referred user's activity by plan, then product.
      type: object
      required:
        - masked_iiban
        - plans
        - referee_reference
      properties:
        activity_date:
          description: >-
            History variant only. Stamps this entry's own day. The day variant
            omits it

            because every item shares the top-level `activity_date`.
          type: string
          pattern: ^[0-9]{4}-[0-9]{2}-[0-9]{2}$
        masked_iiban:
          description: >-
            Last four characters of the IIBAN. Not a length-preserving mask and
            not unique.

            Do not use as a join key; use `referee_reference`. History responses
            do not

            echo which requested IIBAN produced the row — correlate via

            `referee_reference` from day-variant results. When multiple
            requested IIBANs

            share the same last four characters, `masked_iiban` cannot
            disambiguate them.
          type: string
        plans:
          type: array
          items:
            $ref: '#/components/schemas/affiliate.ReferralPlan'
        referee_reference:
          description: >-
            Partner-scoped opaque join key for this enrolment. Stable for the
            same referred

            user under this partner; not a Kraken account id and not joinable
            across

            partners.
          type: string
        estimated:
          description: >-
            History variant: amounts for this date are an estimate of that
            calendar day.
          type: boolean
    affiliate.GatedActivity:
      description: >-
        Exactly one arm. `suppressed` when the opted-out group is too small to
        show

        or when there are no opted-out participants; `summary` otherwise.
      type: object
      oneOf:
        - type: object
          required:
            - suppressed
          properties:
            suppressed:
              type: object
        - type: object
          required:
            - summary
          properties:
            summary:
              type: object
              required:
                - active_participants
              properties:
                active_participants:
                  type: integer
                  format: int64
                  minimum: 0
                products:
                  type: object
                  additionalProperties:
                    $ref: '#/components/schemas/affiliate.ProductActivity'
    affiliate.decimalAmount:
      description: Decimal amount as a string.
      type: string
      pattern: ^[+-]?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))$
    affiliate.GeoBlockedActivity:
      description: >-
        Geo-blocked activity for one product. Shown so a blocked-region user
        does not

        look idle. Blocked events pay zero commission; `commission` on the
        parent

        product already covers payable activity only.
      type: object
      required:
        - fees
        - event_count
      properties:
        volume:
          $ref: '#/components/schemas/affiliate.decimalAmount'
          description: Absent for fee-only products, matching `ProductActivity.volume`.
        fees:
          $ref: '#/components/schemas/affiliate.decimalAmount'
        event_count:
          type: integer
          format: int32
          minimum: 0
    affiliate.MakerTakerActivity:
      description: >-
        Payable activity for one liquidity role. Present only on execution
        products.

        Maker plus taker are the classified portion when both are present;
        headline

        minus maker minus taker is the unclassified remainder.
      type: object
      required:
        - volume
        - fees
        - commission
        - event_count
      properties:
        volume:
          $ref: '#/components/schemas/affiliate.decimalAmount'
        fees:
          $ref: '#/components/schemas/affiliate.decimalAmount'
        commission:
          $ref: '#/components/schemas/affiliate.decimalAmount'
        event_count:
          type: integer
          format: int32
          minimum: 0
    affiliate.ReferralPlan:
      description: One of the caller's reward plans this referred user is enrolled in.
      type: object
      required:
        - referral_code
        - products
      properties:
        referral_code:
          type: string
        campaign:
          description: Enrollment suffix, not the plan name.
          type: string
        referral_level:
          type: integer
          format: int32
          minimum: 0
        enrolled_at:
          description: Enrollment time, truncated to the hour (RFC3339).
          type: string
          format: date-time
        status:
          description: >-
            Open vocabulary. `active` and `completed` are the two payable states
            — see

            `earning`.
          type: string
        earning:
          description: >-
            Whether this plan is currently paying the caller. True while
            `status` is

            `active` or `completed`.
          type: boolean
        expires_at:
          type: string
          format: date-time
        products:
          type: object
          additionalProperties:
            $ref: '#/components/schemas/affiliate.ProductActivity'
  securitySchemes:
    API-Key:
      type: apiKey
      description: The "API-Key" header should contain your API key.
      name: API-Key
      in: header
    API-Sign:
      type: apiKey
      description: >-
        Authenticated requests should be signed with the "API-Sign" header,
        using a signature generated with your private key, nonce, encoded
        payload, and URI path.
      name: API-Sign
      in: header
    API-Nonce:
      type: apiKey
      description: >-
        The "API-Nonce" header should contain an always-increasing 64-bit
        integer, most commonly a Unix timestamp in milliseconds. Each request
        must use a nonce greater than the nonce of the previous request signed
        with the same API key.
      name: API-Nonce
      in: header
    API-OTP:
      type: apiKey
      description: >-
        The "API-OTP" header should contain your two-factor authentication
        one-time password. Required only if 2FA is configured for the API key.
      name: API-OTP
      in: header

````