---
title: "Server-paginated reel table across every reel the viewer can see."
method: GET
path: "/api/v1/analytics/reels/table"
tags: ["Analytics"]
---

# Server-paginated reel table across every reel the viewer can see.

`GET /api/v1/analytics/reels/table`

## Request

- Base URL: `https://api.avatarfactory.io` (the document declares no server; this is the origin it was published from)
- URL: `https://api.avatarfactory.io/api/v1/analytics/reels/table`
- Auth: one of:
  - API key in cookie `session`
  - HTTP bearer

<br/>Visibility: own reels + reels of global ("AvatarFactory Verified")<br/>accounts (admins see all). Supports range/account/category/date<br/>filters, two-axis sort, and limit/offset pagination with a total<br/>count plus the facet lists for the filter dropdowns.<br/><br/>Two of those knobs are plan-gated (Lior, 2026-09-30): asking for<br/>``outperformers_only=true`` or ``sort_by=outperform`` without the<br/>Outperformers entitlement is a 402 ``UPGRADE_REQUIRED``. The gate is on<br/>the REQUEST, not the payload: every row still carries<br/>``outperform_ratio`` and ``is_outperformer`` for every caller, because<br/>seeing the badges is what makes the upgrade worth asking for.

## Query parameters

- `min_views` integer, nullable
- `max_views` integer, nullable
- `min_likes` integer, nullable
- `max_likes` integer, nullable
- `min_comments` integer, nullable
- `max_comments` integer, nullable
- `min_followers` integer, nullable
- `max_followers` integer, nullable
- `min_engagement` number, nullable
- `max_engagement` number, nullable
- `account` string[]
- `category_id` integer[]
- `posted_after` string, date, nullable
- `posted_before` string, date, nullable
- `favorites_only` boolean
- `outperformers_only` boolean
- `source` 'all' | 'mine' | 'verified'
- `sort_by` 'views' | 'engagement' | 'recent' | 'vph' | 'likes' | 'comments' | 'followers' | 'outperform' | 'af_score'
- `sort_dir` 'asc' | 'desc'
- `page` integer
- `page_size` integer

## Response `200`

OK

- ReelTableResponse
  - `facets` ReelTableFacets
    - `accounts` AccountFacet[]
      - `id` integer, required
      - `username` string, required
    - `categories` CategoryRow[]
      - `color` string, nullable
      - `id` integer, required
      - `name` string, required
  - `page` integer
  - `page_size` integer
  - `rows` ReelTableRow[]
    - `account_followers` integer, nullable, required
    - `account_id` integer, nullable, required
    - `account_is_real` boolean
    - `account_picture_url` string, nullable
    - `account_username` string, nullable, required
    - `af_components` object, nullable
    - `af_score` integer, nullable
    - `caption` string, required
    - `category_name` string, nullable, required
    - `comments` integer, nullable, required
    - `engagement_rate` number, required
    - `has_transcript` boolean
    - `id` integer, required
    - `is_favorite` boolean
    - `is_outperformer` boolean
    - `likes` integer, nullable, required
    - `outperform_ratio` number, nullable
    - `posted_at` string, date-time, nullable, required
    - `reel_shortcode` string, required
    - `reel_url` string, nullable, required
    - `thumbnail_url` string, nullable, required
    - `video_url` string, nullable
    - `views` integer, nullable, required
    - `views_per_hour` number, required
  - `total_count` integer

## Other responses

- `402`: Payment Required
- `422`: Unprocessable Entity

---

[API](https://skmtc.dev/avatarfactory/apis/avatarfactory-api.md) · [All operations](https://skmtc.dev/avatarfactory/apis/avatarfactory-api/llms.txt) · [OpenAPI document](https://skmtc.dev/avatarfactory/apis/avatarfactory-api/revisions/66fc7aa3f296?raw)
