Adds creators to one of your watchlists. Pass profileIds (from search_profiles or any search result) and/or handles as {platform, handle} pairs; up to 25 per call. Creators must already be tracked (crawl_profile first if not; unresolved ones come back in notFound). Already-present creators are reported, not duplicated. Free to call. Each added creator counts against your followed-profiles allowance, which comes from a subscription or is earned from API spend; an over-limit call explains what unlocks more.
Fill a watchlist with creators in batches of up to 25 per call, by internal profile id or simply by platform and handle. Unresolved handles come back in a notFound list (crawl_profile adds them to the database first), and creators already on the list are reported rather than duplicated. Free to call; each creator counts against your followed-profiles allowance.
POST /api/v1/watchlists/profiles. Authenticate with your API key. Same call in three languages:
cURL
curl -X POST "https://viraloutliers.com/api/v1/watchlists/profiles" \
-H "Authorization: Bearer so_live_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{"watchlistId":"example","profileIds":["tiktok"],"handles":"example"}'Python (requests)
import requests
r = requests.post(
"https://viraloutliers.com/api/v1/watchlists/profiles",
headers={"Authorization": "Bearer so_live_YOUR_KEY"},
json={"watchlistId":"example","profileIds":["tiktok"],"handles":"example"},
)
print(r.json())JavaScript (fetch)
const res = await fetch("https://viraloutliers.com/api/v1/watchlists/profiles", {
method: "POST",
headers: { "Authorization": "Bearer so_live_YOUR_KEY", "Content-Type": "application/json" },
body: JSON.stringify({"watchlistId":"example","profileIds":["tiktok"],"handles":"example"}),
});
const data = await res.json();
console.log(data);| Name | Type | Description |
|---|---|---|
watchlistId* | string | Target watchlist id. |
profileIds | string[] | Internal profile ids to add. |
handles | {platform,handle}[] | Handle pairs to resolve and add, e.g. [{"platform":"tiktok","handle":"x"}]. profileIds + handles ≤ 25 per call. |
Resolves the identifiers you pass to tracked profiles, inserts the ones not already on the list, and returns added, alreadyPresent, notFound and the new profileCount. Handles are matched exactly on platform + handle, so an agent can go straight from a user's "@creator on tiktok" to a list entry without a search round-trip.
Right after create_watchlist to populate it, or whenever the owner asks to track a new competitor. Batch up to 25 per call; for a longer list, page through in 25s. If a handle lands in notFound, call crawl_profile for it and add it again once the crawl completes.
This skill is free and never spends credits.
Yes. Pass handles as {platform, handle} pairs. Anything that is not yet tracked comes back in notFound; run crawl_profile for those and add them once crawled.
Nothing in credits. Each creator uses one slot of your followed-profiles allowance: 50 on Basic, 150 on Pro, unlimited on Agency, or the equivalent earned from API spend ($17, $37 or $149 of credits used within a 30-day window). Removing a creator frees the slot again, and an over-limit call tells you exactly what unlocks more.
Also available as an MCP tool.
Related topics: bulk add creators · watchlist by handle · competitor list building