---
title: "Get an agent’s creator outliers"
method: GET
path: "/v1/agents/{id}/creators/outliers"
tags: ["Content Research Agents"]
---

# Get an agent’s creator outliers

`GET /v1/agents/{id}/creators/outliers`

## Request

- Base URL: `https://api.virlo.ai`
- URL: `https://api.virlo.ai/v1/agents/{id}/creators/outliers`
- Auth: HTTP bearer

Creators who significantly outperform their follower count within the agent’s corpus. With `order_by=rising`, rows are ranked by true run-over-run velocity and carry additive `growth_followers` / `growth_views` / `growth_video_count` / `local_video_count` fields; on an agent without two snapshots yet, `rising` transparently falls back to the weighted-outlier ranking. `follower_tier` and `category` filter the rows in-process. Each row carries an `author_id` — pass it as `:creator_id` to `GET /v1/agents/:id/creators/:creator_id/similar` to find adjacent creators.

## Path parameters

- `id` string, required

## Query parameters

- `limit` number
- `page` number
- `order_by` 'outlier_ratio' | 'avg_views' | 'follower_count' | 'weighted_score' | 'rising'
- `sort` 'asc' | 'desc'
- `platform` 'youtube' | 'tiktok' | 'instagram'
- `follower_tier` 'nano' | 'micro' | 'mid' | 'macro'
- `category` string

## Response `200`

Creator outliers

- AgentOutliersResponseDto
  - `data` AgentOutliersDataDto, required
    - `agent_id` string, uuid, required
    - `agent_name` string, nullable
    - `total` number
    - `limit` number
    - `offset` number
    - `has_more` boolean: Whether more outliers exist beyond this page.
    - `hasMore` boolean: Deprecated camelCase alias for `has_more`, kept for backward compatibility. Removed Aug 3, 2026 — migrate to `has_more`.
    - `ranking` 'velocity' | 'outlier_fallback': Present when `order_by=rising`: `velocity` for run-over-run ranking, `outlier_fallback` when the agent lacks two snapshots.
    - `sort` string: Echo of the requested sort when `order_by=rising`.
    - `outliers` V1OutlierItemDto[], required
      - `author_id` string, uuid, nullable, required: Stable creator identifier. Pass this as `:creator_id` to `GET /v1/comet/:id/creators/:creator_id/similar`. Null only when the upstream record has no linked author.
      - `creator_url` string, nullable, required
      - `creator_avatar_url` string, nullable, required
      - `follower_count` number, nullable, required
      - `avg_views` number, nullable, required: Average views across the creator's analyzed videos. Null when `order_by=rising` — the velocity ranking exposes `growth_*` instead of outlier metrics.
      - `outlier_ratio` number, nullable, required: How far the creator outperforms its follower count. Null when `order_by=rising` (not applicable to a velocity ranking).
      - `weighted_score` number: Size-weighted outlier score (Virality Score)
      - `videos_analyzed` number, required
      - `creator_topics` string[], required: Empty on `order_by=rising` (velocity snapshots carry no topic data — pass `category` to use the topic-aware weighted ranking instead).
      - `matching_topics` string[], required: Empty on `order_by=rising` (see `creator_topics`).
      - `platform` string, nullable, required
      - `identified_at` string, nullable, required: Null when `order_by=rising`.
      - `median_views` number, nullable: Median views across the creator's analyzed videos — a robust "typical reach" that a single viral spike cannot inflate. Null when `order_by=rising`.
      - `top_video_views` number, nullable: Views of the creator's best analyzed video (the breakout headline). Null when `order_by=rising`.
      - `breakout_video_count` number: How many analyzed videos individually overperformed (consistency signal). Pairs with `videos_analyzed` as "N of M videos overperformed".
      - `avg_engagement_rate` number, nullable: Mean engagement rate = (likes+comments+shares+bookmarks)/views across analyzed videos. Null when the platform does not expose the underlying counts.
      - `posts_per_week` number, nullable: Posting cadence (posts per week) derived from the publish-date spread of analyzed videos. Null when there are too few dated videos.
      - `content_angle` string, nullable: One-sentence AI rationale describing what this creator does that makes them stand out. Null when unavailable.
      - `growth_followers` number, nullable: Phase 3 (`order_by=rising` only): change in follower count vs the previous run. Null otherwise.
      - `growth_views` number, nullable: Phase 3 (`order_by=rising` only): change in total niche views vs the previous run. Null otherwise.
      - `growth_video_count` number, nullable: Phase 3 (`order_by=rising` only): change in the creator's niche video count vs the previous run. Null otherwise.
      - `local_video_count` number: Phase 3 (`order_by=rising` only): number of this creator's videos in the niche.
      - `videos` V1OutlierVideoDto[]
        - `id` string, required
        - `title` string, required
        - `description` string, required
        - `views` number, required
        - `likes` number, required
        - `comments` number, required
        - `publish_date` string, nullable: ISO publish timestamp.
        - `publishDate` string, nullable: Deprecated camelCase alias for `publish_date`. Removed Aug 3, 2026.
        - `url` string, required
        - `hashtags` string[], required
        - `thumbnail_url` string, required
        - `type` string, required

## Other responses

- `401`: Missing or invalid API key (`missing_api_key` / `invalid_api_key`)
- `404`: Agent not found
- `429`: Rate limit exceeded (`rate_limit_exceeded`); see the Retry-After header

---

[API](https://skmtc.dev/virlo/apis/virlo-public-api.md) · [All operations](https://skmtc.dev/virlo/apis/virlo-public-api/llms.txt) · [OpenAPI document](https://skmtc.dev/virlo/apis/virlo-public-api/revisions/3b69c6145087?raw)
