Рассылки

Получить рассылку по ID

Возвращает рассылку пользователя по ID. Для составных рассылок дополнительно возвращает их структуру: разбивку A/B-теста с вариантами и победителем (abTest), досыл (followUp), ссылку на основную рассылку у части (parent) и агрегированную статистику частей (totalStats). Статистика опционально — по флагу withStats=true.

get/v1/public/campaigns/{campaignId}

Request

  • Base URL: https://api.rusender.ru/api
  • URL: https://api.rusender.ru/api/v1/public/campaigns/{campaignId}
  • Auth: HTTP bearer

Path parameters

campaignIdinteger required

ID рассылки.

Query parameters

withStatsboolean

Если true — включает статистику в ответ.

Response

Рассылка.

okboolean required

Флаг успешного выполнения.

Example response

{
  "ok": true,
  "data": {
    "id": 1,
    "name": "March newsletter",
    "subject": "Our March update",
    "previewTitle": "Here is what we shipped this month",
    "type": "regular",
    "status": "completed",
    "statusModerate": "approved",
    "attachments": [
      {
        "id": 42,
        "fileName": "price-list.pdf",
        "size": 153204
      }
    ],
    "templateId": 100,
    "senderId": 10,
    "senderEmail": "noreply@example.com",
    "senderName": "Example Team",
    "lists": [
      {
        "id": 1,
        "name": "Newsletter subscribers"
      }
    ],
    "utm": {
      "utm_source": "newsletter",
      "utm_medium": "email",
      "utm_campaign": "march_promo"
    },
    "stats": {
      "total": 1000,
      "sending": {
        "count": 900,
        "rate": 90
      },
      "delivered": {
        "count": 900,
        "rate": 90
      },
      "open": {
        "count": 900,
        "rate": 90
      },
      "click": {
        "count": 900,
        "rate": 90
      },
      "error": {
        "count": 900,
        "rate": 90
      },
      "unsubscribe": {
        "count": 900,
        "rate": 90
      },
      "complaint": {
        "count": 900,
        "rate": 90
      }
    },
    "abTest": {
      "basicId": 107460,
      "testPercent": 20,
      "experimentType": "subject",
      "isWinnerSelected": true,
      "winnerId": 107461,
      "variants": [
        {
          "id": 107461,
          "name": "June updates — variant A",
          "subject": "June updates inside",
          "previewTitle": "Here is what we shipped this month",
          "status": "completed",
          "splitPercent": 10,
          "isWinner": true,
          "stats": {
            "total": 1000,
            "sending": {
              "count": 900,
              "rate": 90
            },
            "delivered": {
              "count": 900,
              "rate": 90
            },
            "open": {
              "count": 900,
              "rate": 90
            },
            "click": {
              "count": 900,
              "rate": 90
            },
            "error": {
              "count": 900,
              "rate": 90
            },
            "unsubscribe": {
              "count": 900,
              "rate": 90
            },
            "complaint": {
              "count": 900,
              "rate": 90
            }
          }
        }
      ]
    },
    "followUp": {
      "id": 105589,
      "name": "June updates — follow-up",
      "subject": "In case you missed it: June updates",
      "previewTitle": "Here is what we shipped this month",
      "status": "completed",
      "offsetHours": 24,
      "stats": {
        "total": 1000,
        "sending": {
          "count": 900,
          "rate": 90
        },
        "delivered": {
          "count": 900,
          "rate": 90
        },
        "open": {
          "count": 900,
          "rate": 90
        },
        "click": {
          "count": 900,
          "rate": 90
        },
        "error": {
          "count": 900,
          "rate": 90
        },
        "unsubscribe": {
          "count": 900,
          "rate": 90
        },
        "complaint": {
          "count": 900,
          "rate": 90
        }
      }
    },
    "parent": {
      "id": 107460,
      "type": "ab_basic",
      "name": "June updates",
      "subject": "June updates inside",
      "previewTitle": "Here is what we shipped this month",
      "status": "completed",
      "stats": {
        "total": 1000,
        "sending": {
          "count": 900,
          "rate": 90
        },
        "delivered": {
          "count": 900,
          "rate": 90
        },
        "open": {
          "count": 900,
          "rate": 90
        },
        "click": {
          "count": 900,
          "rate": 90
        },
        "error": {
          "count": 900,
          "rate": 90
        },
        "unsubscribe": {
          "count": 900,
          "rate": 90
        },
        "complaint": {
          "count": 900,
          "rate": 90
        }
      }
    },
    "totalStats": {
      "total": 1000,
      "sending": {
        "count": 900,
        "rate": 90
      },
      "delivered": {
        "count": 900,
        "rate": 90
      },
      "open": {
        "count": 900,
        "rate": 90
      },
      "click": {
        "count": 900,
        "rate": 90
      },
      "error": {
        "count": 900,
        "rate": 90
      },
      "unsubscribe": {
        "count": 900,
        "rate": 90
      },
      "complaint": {
        "count": 900,
        "rate": 90
      }
    }
  },
  "meta": {
    "requestId": "550e8400-e29b-41d4-a716-446655440000",
    "timestamp": "2026-03-05T12:00:00.000Z",
    "pagination": {
      "page": 1,
      "limit": 20,
      "totalItems": 150,
      "totalPages": 8
    }
  }
}

Changes

No recorded changes to this operation across all 1 revision of this API.