> ## 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.

# Статистика конверсии

> Subscriber-quality metrics per pricing model: total fans, fans with 3+ messages, fans with at least one purchase, ARPU — plus a daily conversion dataset (share of fans with 3+ messages).

Shared-link (limited access) CPL campaigns are excluded — no per-subscriber data exists for them.

Cached for 15 minutes.

Насколько вовлечены фаны, которых вы приводите, с разбивкой по моделям оплаты. Это те же данные, что в виджете **Conversion** в дашборде партнёра.

В ответе три панели: `total`, `revshare` и `cpl`. Каждая панель содержит:

| Поле         | Описание                                  |
| ------------ | ----------------------------------------- |
| `total_fans` | Фаны за всё время                         |
| `messages`   | Фаны, отправившие 3 и более сообщений     |
| `purchase`   | Фаны, сделавшие хотя бы одну покупку      |
| `arpu`       | Средняя выручка на фана за всё время      |
| `dataset`    | Конверсия по дням за период `from` / `to` |

Каждая запись `dataset` содержит `total_count` (фаны, подписавшиеся в этот день), `message_count` (сколько из них отправили 3 и более сообщений) и `conversion` (`message_count / total_count × 100`, в %).

## Период

`from` и `to` принимают Unix timestamp или дату `Y-m-d`.

* По умолчанию: последние 14 дней.
* Максимальный диапазон: 366 дней.
* Дата `to` в будущем считается текущим моментом.

<Note>
  CPL-кампании, работающие по общей ссылке (ограниченный доступ), не учитываются, потому что по ним нет данных на уровне подписчика. Поэтому `total_fans` здесь может быть меньше, чем `count` в [статистике фанов](/docs/ru/partners/api/stats-fans).
</Note>

<Info>Ответы кэшируются на 15 минут.</Info>


## OpenAPI

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


    **Authentication:** pass your API key in the `Authorization` header
    (`Authorization: your-api-key` or `Authorization: Bearer your-api-key`).
    Create keys in the partner cabinet: Tools -> API
    (https://partners.onlytraffic.com/tools/api). Up to 5 named keys per
    account, each **Full** or **Read-only**, with an optional expiry. Keys start
    with `ot_partners_` and are shown once, at creation. Read-only keys cannot
    call the `POST` endpoints (`error_code` 403, message `This API key is
    read-only`). An older legacy key keeps working with full access until you
    delete it on the same page.


    **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`).


    **Writes:** a Full-access key reads and writes. Write endpoints are `POST`
    with a JSON body, accept public ids only (`revc_…`, `cplo_…`) and answer
    with the updated object in `data`. Rate limit: 120 requests per minute for
    reads, 30 per minute for writes, per account (shared by all its keys).
servers:
  - url: https://partners.onlytraffic.com
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 and the category catalog
  - name: Subscribers
    description: Fans acquired through your campaigns
  - name: Stats
    description: Dashboard-style statistics widgets (fans, income, conversion)
  - name: Write
    description: >-
      Write API: start / stop / update campaigns and accept / reject / stop CPL
      campaigns (same key, same rules as the cabinet)
paths:
  /api/marketer/stats/conversion:
    get:
      tags:
        - Stats
      summary: Conversion statistics
      description: >-
        Subscriber-quality metrics per pricing model: total fans, fans with 3+
        messages, fans with at least one purchase, ARPU — plus a daily
        conversion dataset (share of fans with 3+ messages).


        Shared-link (limited access) CPL campaigns are excluded — no
        per-subscriber data exists for them.


        Cached for 15 minutes.
      parameters:
        - $ref: '#/components/parameters/stats_from'
        - $ref: '#/components/parameters/stats_to'
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                oneOf:
                  - title: Success
                    type: object
                    properties:
                      status:
                        type: string
                        enum:
                          - success
                      data:
                        $ref: '#/components/schemas/StatsConversion'
                  - $ref: '#/components/schemas/ErrorResponse'
              example:
                status: success
                data:
                  total:
                    total_fans: 6598
                    messages: 1420
                    purchase: 980
                    arpu: 3.254
                    dataset:
                      - date: '2026-07-16'
                        message_count: 21
                        total_count: 139
                        conversion: 15.11
                    label: Total
                  revshare:
                    total_fans: 4936
                    messages: 1100
                    purchase: 760
                    arpu: 3.87
                    dataset:
                      - date: '2026-07-16'
                        message_count: 8
                        total_count: 40
                        conversion: 20
                    label: RevShare
                  cpl:
                    total_fans: 1662
                    messages: 320
                    purchase: 220
                    arpu: 1.98
                    dataset:
                      - date: '2026-07-16'
                        message_count: 13
                        total_count: 99
                        conversion: 13.13
                    label: CPL
      security:
        - api_key: []
components:
  parameters:
    stats_from:
      name: from
      in: query
      schema:
        oneOf:
          - type: integer
          - type: string
            format: date
        example: '2026-06-01'
      description: >-
        Dataset period start — unix timestamp or Y-m-d. Default: 14 days ago.
        Max range: 366 days.
    stats_to:
      name: to
      in: query
      schema:
        oneOf:
          - type: integer
          - type: string
            format: date
        example: '2026-07-01'
      description: >-
        Dataset period end — unix timestamp or Y-m-d. Default: now (values in
        the future are clamped to now).
  schemas:
    StatsConversion:
      type: object
      description: >-
        Conversion widget data, one panel per pricing model. Shared-link
        campaigns are excluded.
      properties:
        total:
          $ref: '#/components/schemas/StatsConversionPanel'
        revshare:
          $ref: '#/components/schemas/StatsConversionPanel'
        cpl:
          $ref: '#/components/schemas/StatsConversionPanel'
    ErrorResponse:
      title: Error
      type: object
      properties:
        status:
          type: string
          enum:
            - error
        message:
          type: string
          description: Human-readable error description.
        error_code:
          type: integer
          description: >-
            403: access denied (missing / unknown / expired / revoked key, or
            the account is not an active partner: `Error! Access denied`; a
            Read-only key calling a write endpoint: `This API key is
            read-only`). 404: not found. 422: bad request params (message says
            what is wrong). 429: rate limit exceeded (a `Retry-After` header is
            set) or another campaign start is still running. 500: server error.
            503: the platform did not answer a write in time, retry later.
    StatsConversionPanel:
      type: object
      properties:
        total_fans:
          type: integer
          description: All-time fans count (shared-link campaigns excluded).
        messages:
          type: integer
          description: Fans who sent 3+ messages.
        purchase:
          type: integer
          description: Fans with at least one purchase.
        arpu:
          type: number
          description: Average revenue per fan, all-time.
        dataset:
          type: array
          description: One entry per day of the requested period.
          items:
            type: object
            properties:
              date:
                type: string
                format: date
              message_count:
                type: integer
                description: Fans subscribed this day who sent 3+ messages.
              total_count:
                type: integer
                description: Fans subscribed this day.
              conversion:
                type: number
                description: message_count / total_count × 100, %.
        label:
          type: string
  securitySchemes:
    api_key:
      type: apiKey
      name: Authorization
      in: header
      description: >-
        API key from the partner cabinet, Tools -> API
        (https://partners.onlytraffic.com/tools/api): up to 5 named keys per
        account, each Full or Read-only, `ot_partners_` prefix, shown once at
        creation. Raw value or `Bearer` form. Read-only keys cannot call the
        `POST` endpoints (403 `This API key is read-only`); expired or revoked
        keys get 403 `Error! Access denied`.

````