Install
openclaw skills install kolensSearch and analyze TikTok KOL (Key Opinion Leaders) using the KOLens API. Use when: (1) User asks to search KOL/influencers for a specific keyword/niche. (2) User wants to find contact information (email, website, Instagram) of TikTok creators. (3) User wants to analyze KOL metrics (followers, avg views, engagement rate).
openclaw skills install kolensKOLens is a TikTok KOL data scraping API that provides:
Contact the KOLens service administrator to obtain:
export KOLENS_API_KEY="kol_your_key_here"
export KOLENS_API_URL="https://your-kolens-api-url.com"
curl -X POST "${KOLENS_API_URL}/api/scrape" \
-H "Authorization: Bearer ${KOLENS_API_KEY}" \
-H "Content-Type: application/json" \
-d '{"keyword":"[KEYWORD]","max_videos":30,"fetch_contacts":true}'
Parameters:
keyword (required): TikTok search keywordmax_videos (optional, default: 50): Max videos to scrape (1-200)fetch_contacts (optional, default: true): Whether to fetch contact infoResponse:
{
"job_id": "abc123",
"status": "queued",
"keyword": "peptides",
"estimated_seconds": 105
}
curl "${KOLENS_API_URL}/api/jobs/[JOB_ID]" \
-H "Authorization: Bearer ${KOLENS_API_KEY}"
Status values: queued → running → completed | failed
Completed response:
{
"job_id": "abc123",
"status": "completed",
"stage": "Done — 12 videos, 8 KOLs, 0 Sellers",
"progress": 100,
"total_videos": 12,
"kol_count": 8,
"seller_count": 0
}
# KOLs with email only
curl "${KOLENS_API_URL}/api/kols?keyword=[KEYWORD]&require_email=true&per_page=30" \
-H "Authorization: Bearer ${KOLENS_API_KEY}"
# All KOLs
curl "${KOLENS_API_URL}/api/kols?keyword=[KEYWORD]&per_page=30" \
-H "Authorization: Bearer ${KOLENS_API_KEY}"
Response:
{
"total": 6,
"page": 1,
"per_page": 30,
"kols": [
{
"username": "somekol",
"display_name": "Some KOL",
"follower_count": 1000000,
"avg_views": 500000,
"avg_engagement_rate": 0.05,
"has_email": true,
"has_website": true,
"first_seen_at": "2026-04-10T07:18:59.933946",
"last_updated_at": "2026-04-10T07:18:59.933948"
}
]
}
curl "${KOLENS_API_URL}/api/kols/[USERNAME]" \
-H "Authorization: Bearer ${KOLENS_API_KEY}"
Response:
{
"username": "somekol",
"display_name": "Some KOL",
"follower_count": 1000000,
"avg_views": 500000,
"avg_engagement_rate": 0.05,
"bio": "This is my bio",
"contact": {
"email": "contact@example.com",
"phone": null,
"website": "https://example.com",
"instagram": "@somekol",
"youtube": "somekol",
"linktree_url": "https://linktr.ee/somekol"
}
}
| Endpoint | Method | Description |
|---|---|---|
/api/scrape | POST | Submit a scraping job |
/api/jobs/{job_id} | GET | Get job status |
/api/kols | GET | Query KOL database |
/api/kols/{username} | GET | Get single KOL profile |
# 1. Submit job
curl -s -X POST "${KOLENS_API_URL}/api/scrape" \
-H "Authorization: Bearer ${KOLENS_API_KEY}" \
-H "Content-Type: application/json" \
-d '{"keyword":"camping","max_videos":30,"fetch_contacts":true}' > /tmp/job.json
JOB_ID=$(cat /tmp/job.json | jq -r '.job_id')
echo "Job ID: ${JOB_ID}"
# 2. Poll until completed (every 90s)
for i in 1 2 3 4 5 6 7 8 9 10; do
STATUS=$(curl -s "${KOLENS_API_URL}/api/jobs/${JOB_ID}" \
-H "Authorization: Bearer ${KOLENS_API_KEY}" | jq -r '.status')
echo "Status: ${STATUS}"
if [ "${STATUS}" = "completed" ]; then
echo "Job completed!"
break
fi
sleep 90
done
# 3. Get KOLs with email
curl -s "${KOLENS_API_URL}/api/kols?keyword=camping&require_email=true" \
-H "Authorization: Bearer ${KOLENS_API_KEY}"
When using this skill to collect KOL contact information: