Browse documentation

Tool

Find standout posts

Use to find posts that beat their own creator's usual views at least twice. The outlier score is views / the creator's baseline, the median views of their latest 10 unpinned posts at least a day old. Searches up to 10 named creators when creators is given, the creators this workspace tracks with scope competitors, and otherwise every post Cuekoo has stored, there only from creators whose usual post reaches 1,000 views. Named or tracked creators Cuekoo has not stored, or without enough posts for a baseline, come back in skipped. Returns 10 posts per page with a next_cursor. API, MCP and Koo cost 1 credit per non-empty page; empty pages and direct web browsing are free.

POSTtools.read1 credit per non-empty API/MCP results page
POST/openapi/v1/tools/list_outliers

Call it

curl -X POST https://api.cuekoo.com/openapi/v1/tools/list_outliers \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{}'

The MCP tool is named cuekoo_list_outliers. Arguments and results are identical to the REST call.

Arguments

Send a JSON object with these fields. Scope: tools.read.

NameTypeRequiredDescription
content_typesstring[] | nullOptionalOnly these formats: video, slideshow (photo posts and carousels)
creatorsobject[] | nullOptionalUp to 10 creators to search; naming creators without a scope searches them; not allowed with scope all or competitors
creators[].handlestringRequiredThe creator's handle, with or without the leading @
creators[].platformstringRequiredThe creator's platform: tiktok, instagram or youtube
cursorstringOptionalnext_cursor from the previous page, to continue the same search
hashtagsstring[] | nullOptionalUp to 10 hashtags, with or without #. A post carrying any of them matches
keywordstringOptionalOnly posts whose caption contains this text or that carry it as a hashtag; up to 100 characters
languagesstring[] | nullOptionalISO 639-1 language codes; posts in other languages are left out, posts with no detectable language are kept. Default: ["en"], or every language when creators are named; pass [] for every language
limitinteger | nullOptionalPosts per page, 1 to 10. Default: 10
max_followersinteger | nullOptionalOnly creators with at most this many followers
max_outlier_scorenumber | nullOptionalOnly posts with at most this outlier score, to leave out freak multiples on tiny baselines
max_viewsinteger | nullOptionalOnly posts with at most this many views
min_followersinteger | nullOptionalOnly creators with at least this many followers
min_outlier_scorenumber | nullOptionalOnly posts with at least this outlier score, views / the creator's usual views; at least 2. Default: 2, the outlier threshold
min_viewsinteger | nullOptionalOnly posts with at least this many views
nichesstring[] | nullOptionalUp to 5 niche slugs from Cuekoo's taxonomy, level 1 or level 2 (for example beauty or skincare). A post matches when it is labeled with any of them; combined with hashtags, a post matching either is kept
one_per_creatorbooleanOptionalReturn only each creator's best post under the sort, so one prolific creator does not fill the page
platformsstring[] | nullOptionalOnly these platforms: tiktok, instagram, youtube. Default: all three
published_within_daysintegerOptionalOnly posts published in the last 7, 30 or 90 days. Default: 30
regionsstring[] | nullOptionalISO 3166-1 alpha-2 region codes of the creator's account registration (not the audience). Default: no region filter
scopestringOptionalWhose posts to search: all (every post Cuekoo has stored), competitors (the creators this workspace tracks) or creators (the creators listed in creators)
sortstringOptionalOrder, highest first: outlier_score, views or published_at. Default: outlier_score

Response

NameTypeRequired
itemsobject[] | nullRequired
items[].ai_labeledbooleanRequired
items[].baselineobject | nullRequired
items[].baseline.captured_atstringRequired
items[].baseline.samplesintegerRequired
items[].baseline.viewsintegerRequired
items[].creatorobjectRequired
items[].creator.display_namestringRequired
items[].creator.followersintegerRequired
items[].creator.handlestringRequired
items[].creator.languagestring | nullRequired
items[].creator.platformstringRequired
items[].creator.regionstring | nullRequired
items[].engagement_ratenumber | nullRequired
items[].languagestring | nullRequired
items[].metricsobjectRequired
items[].metrics.commentsinteger | nullRequired
items[].metrics.latest_captured_atstring | nullRequired
items[].metrics.likesinteger | nullRequired
items[].metrics.savesinteger | nullRequired
items[].metrics.sharesinteger | nullRequired
items[].metrics.viewsinteger | nullRequired
items[].nicheobject | nullRequired
items[].niche.l1stringRequired
items[].niche.l2string[] | nullRequired
items[].outlier_scorenumber | nullRequired
items[].postobjectRequired
items[].post.captionstringRequired
items[].post.content_typestringRequired
items[].post.duration_secondsinteger | nullRequired
items[].post.idstringRequired
items[].post.platformstringRequired
items[].post.platform_post_idstringRequired
items[].post.published_atstringRequired
items[].post.thumbnail_urlstringRequired
items[].post.urlstringRequired
items[].regionstring | nullRequired
items[].virality_scorenumber | nullRequired
next_cursorstringOptional
skippedobject[] | nullRequired
skipped[].handlestringRequired
skipped[].platformstringRequired
skipped[].reasonstringRequired

A call returns the Tool's output object at HTTP 200. Failures use the error envelope.

Credits

1 credit per non-empty API/MCP results page

How credits work