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

# Referred Subscribers

> Fans acquired through all your campaigns (RevShare + CPL combined).

`campaign.public_id` is the campaign public_id for RevShare, and the **CPL order** public_id for CPL.

`order_id` in the `campaign` context is always the CPL order public_id (starts with `cplo_`). For RevShare subscribers this field is absent.



## OpenAPI

````yaml api/openapi-partners.json GET /api/marketer/subscribers
openapi: 3.0.2
info:
  title: OnlyTraffic Marketer API
  version: 2.0.0
  description: >-
    Partner (marketer) API for OnlyTraffic.


    **Authentication:** pass your API key in the `Authorization` header.


    **Pagination:** all list endpoints accept `offset` (default 0) and `limit`
    (default 50, max 1000) as query parameters or JSON body fields.


    **Dates:** every timestamp field has two variants — an ISO 8601 string
    (`*_at`) and a Unix timestamp integer (`*_at_ts` / `*_ts`).
servers:
  - url: https://%CURRENT_HOST%
security: []
tags:
  - name: RevShare
    description: RevShare campaigns and financial data
  - name: CPL
    description: Cost-Per-Lead orders placed against your offers
  - name: CPC
    description: Cost-Per-Click orders
  - name: Subscribers
    description: Fans acquired through your campaigns
paths:
  /api/marketer/subscribers:
    get:
      tags:
        - Subscribers
      summary: List subscribers
      description: >-
        Fans acquired through all your campaigns (RevShare + CPL combined).


        `campaign.public_id` is the campaign public_id for RevShare, and the
        **CPL order** public_id for CPL.


        `order_id` in the `campaign` context is always the CPL order public_id
        (starts with `cplo_`). For RevShare subscribers this field is absent.
      parameters:
        - $ref: '#/components/parameters/offset'
        - $ref: '#/components/parameters/limit'
        - name: of_account_id
          in: query
          schema:
            type: integer
          description: Filter by OnlyFans account numeric id.
        - name: campaign_id
          in: query
          schema:
            type: string
          description: >-
            Filter by campaign public_id (RevShare) or CPL order public_id
            (CPL).
        - name: campaign_type
          in: query
          schema:
            type: string
            enum:
              - revshare
              - cpl
          description: Filter by campaign type.
        - name: from
          in: query
          schema:
            type: string
            format: date
            example: '2024-01-01'
          description: Subscription date from (inclusive), format Y-m-d.
        - name: to
          in: query
          schema:
            type: string
            format: date
            example: '2024-01-31'
          description: Subscription date to (inclusive), format Y-m-d.
        - name: sort
          in: query
          schema:
            type: string
            enum:
              - subscribed_at_desc
              - subscribed_at_asc
            default: subscribed_at_desc
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                oneOf:
                  - title: Success
                    type: object
                    properties:
                      status:
                        type: string
                        enum:
                          - success
                      data:
                        type: array
                        items:
                          $ref: '#/components/schemas/Subscriber'
                  - $ref: '#/components/schemas/ErrorResponse'
              example:
                status: success
                data:
                  - of_user_id: 789
                    name: John
                    of_account_id: 456789
                    campaign:
                      public_id: cplo_abc123
                      type: cpl
                    amount_spent: 23.45
                    subscribed_at: '2026-01-15T12:00:00+00:00'
                    subscribed_at_ts: 1736942400
                    badges:
                      - 1_purchase
                      - 3_messages
                  - of_user_id: 1011
                    name: Alice
                    of_account_id: 456789
                    campaign:
                      public_id: camp_xyz789
                      type: revshare
                    amount_spent: 105
                    subscribed_at: '2026-01-10T08:30:00+00:00'
                    subscribed_at_ts: 1736500200
                    badges:
                      - 5_purchases
                      - pay_subscribe
      security:
        - api_key: []
components:
  parameters:
    offset:
      name: offset
      in: query
      schema:
        type: integer
        default: 0
        minimum: 0
      description: Number of records to skip.
    limit:
      name: limit
      in: query
      schema:
        type: integer
        default: 50
        minimum: 1
        maximum: 1000
      description: Number of records to return.
  schemas:
    Subscriber:
      type: object
      properties:
        of_user_id:
          type: integer
          description: OnlyFans user numeric id.
        name:
          type: string
          description: Subscriber display name.
        of_account_id:
          type: integer
        campaign:
          type: object
          properties:
            public_id:
              type: string
              description: >-
                For `revshare`: campaign public_id. For `cpl`: CPL order
                public_id (prefix `cplo_`).
            type:
              type: string
              enum:
                - revshare
                - cpl
        amount_spent:
          type: number
          description: >-
            Total revenue generated by this subscriber (RevShare). For CPL
            subscribers this may be 0.
        subscribed_at:
          type: string
          format: date-time
        subscribed_at_ts:
          type: integer
        badges:
          type: array
          description: Engagement milestones reached by the subscriber.
          items:
            type: string
            enum:
              - 1_purchase
              - 2_purchases
              - 5_purchases
              - 500_purchases
              - 3_messages
              - pay_subscribe
              - pay_resubscribe
    ErrorResponse:
      title: Error
      type: object
      properties:
        status:
          type: string
          enum:
            - error
        message:
          type: string
          description: Human-readable error description.
        error_code:
          type: integer
          description: '422: bad request params. 404: not found. 429: rate limit exceeded.'
  securitySchemes:
    api_key:
      type: apiKey
      name: Authorization
      in: header

````