Widget Analytics

The same funnel per widget, with pagination, sorting and filtering by widget type, plus a single-widget lookup by ID.


A widget is a placement: the carousel on the home page, the stories bar on a collection, the floating player on product pages. This endpoint tells you which placement earns its space. Each item carries the widget (title, type, status, how many videos it holds) and a metrics object with the same eight fields as the summary.

Widget types

typeWhere it usually lives
carouselA row of videos on the home page or a collection page.
storyRound story bubbles, usually near the top of a page.
floatingA small player pinned to a corner of the page.
productpageVideos shown on the product page, next to the product they are tagged with.

Filter with widget_type=carousel to compare carousels only. Pagination counts are computed after the filter.

Two endpoints

EndpointReturns
GET /api/v1/analytics/widgetsA page of widgets, sorted the way you ask.
GET /api/v1/analytics/widget/{widgetId}One widget by its ID, for example widget-xyz789.

Query parameters are the same as for videos, plus widget_type.

Typical call

Every placement, best converting first:

curl "https://help.reelplus.app/api/v1/analytics/widgets?sort_by=orders&sort_order=desc" \
  -H "Authorization: Bearer rp_653f0a33f2bbf185566e8e9a11651a4fd3cfc5fe10c1694eef4d54b830c2d2cf"
GET
/api/v1/analytics/widgets

Authorization

BearerAuth
AuthorizationBearer <token>

API key with the rp_ prefix, sent as a Bearer token.

Sandbox: use the demo key from the API Overview. It is read-only and limited to the demo store.

Production: keys are issued per store on Enterprise plans, on request. Once enabled, generate them from Settings > API Access in your ReelPlus dashboard.

Format: rp_{64 hex characters}

In: header

Query Parameters

start_date?string

Start of the date range (ISO 8601). Defaults to 30 days ago.

Formatdate
end_date?string

End of the date range (ISO 8601). Defaults to now.

Formatdate
page?integer

Page number (1-indexed).

Default1
Range1 <= value
limit?integer

Results per page (max 100).

Default10
Range1 <= value <= 100
sort_by?string

Field to sort results by.

Default"views"
Value in"views" | "clicks" | "impressions" | "add_to_cart" | "orders" | "revenue" | "title" | "created_at"
sort_order?string

Sort direction.

Default"desc"
Value in"asc" | "desc"
widget_type?string

Filter by widget type.

Value in"carousel" | "story" | "floating" | "productpage"

Response Body

application/json

application/json

application/json

application/json

application/json

curl -X GET "https://help.reelplus.app/api/v1/analytics/widgets"
{
  "success": true,
  "data": [
    {
      "id": "widget-xyz789",
      "title": "Home Carousel",
      "type": "carousel",
      "status": "active",
      "video_count": 8,
      "metrics": {
        "impressions": 5600,
        "views": 1450,
        "clicks": 195,
        "add_to_cart": 42,
        "orders": 12,
        "revenue": 967.8
      }
    }
  ],
  "meta": {
    "start_date": "2025-01-01T00:00:00.000Z",
    "end_date": "2025-01-31T23:59:59.999Z"
  },
  "pagination": {
    "page": 1,
    "limit": 10,
    "total_count": 42,
    "total_pages": 5
  }
}
{
  "success": false,
  "error": {
    "code": "UNAUTHORIZED",
    "message": "Invalid or missing API key"
  }
}
{
  "success": false,
  "error": {
    "code": "UNAUTHORIZED",
    "message": "Invalid or missing API key"
  }
}
{
  "success": false,
  "error": {
    "code": "UNAUTHORIZED",
    "message": "Invalid or missing API key"
  }
}
{
  "success": false,
  "error": {
    "code": "UNAUTHORIZED",
    "message": "Invalid or missing API key"
  }
}
GET
/api/v1/analytics/widget/{widgetId}

Authorization

BearerAuth
AuthorizationBearer <token>

API key with the rp_ prefix, sent as a Bearer token.

Sandbox: use the demo key from the API Overview. It is read-only and limited to the demo store.

Production: keys are issued per store on Enterprise plans, on request. Once enabled, generate them from Settings > API Access in your ReelPlus dashboard.

Format: rp_{64 hex characters}

In: header

Path Parameters

widgetId*string

The unique widget identifier.

Query Parameters

start_date?string

Start of the date range (ISO 8601). Defaults to 30 days ago.

Formatdate
end_date?string

End of the date range (ISO 8601). Defaults to now.

Formatdate

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

curl -X GET "https://help.reelplus.app/api/v1/analytics/widget/widget-xyz789"
{
  "success": true,
  "data": {
    "id": "widget-xyz789",
    "title": "Home Carousel",
    "type": "carousel",
    "status": "active",
    "video_count": 8,
    "metrics": {
      "impressions": 5600,
      "views": 1450,
      "clicks": 195,
      "add_to_cart": 42,
      "orders": 12,
      "revenue": 967.8
    }
  },
  "meta": {
    "start_date": "2025-01-01T00:00:00.000Z",
    "end_date": "2025-01-31T23:59:59.999Z"
  }
}
{
  "success": false,
  "error": {
    "code": "UNAUTHORIZED",
    "message": "Invalid or missing API key"
  }
}
{
  "success": false,
  "error": {
    "code": "UNAUTHORIZED",
    "message": "Invalid or missing API key"
  }
}
{
  "success": false,
  "error": {
    "code": "UNAUTHORIZED",
    "message": "Invalid or missing API key"
  }
}
{
  "success": false,
  "error": {
    "code": "UNAUTHORIZED",
    "message": "Invalid or missing API key"
  }
}
{
  "success": false,
  "error": {
    "code": "UNAUTHORIZED",
    "message": "Invalid or missing API key"
  }
}