Manual
KOLens REST API — an influencer marketing API for developers
Last updated: 2026-06-10
In short
The KOLens API exposes the full influencer workflow over plain REST with Bearer-token auth: submit keyword scrapes on TikTok, Instagram, X and Douyin (202 + job id, 1 credit per 10 results), poll jobs, query the creator database with rich filters (engagement rate, country, category, has-email), and drive lists, watchlist, alerts, video tracking and CRM programmatically. Base URL https://kolens.ai, keys from the in-app API-keys page, 5 scrape submissions/minute, HTTP 402 on insufficient credits. If you're building on an AI agent rather than custom code, the MCP server is usually the better path.
Authentication
Create a key in the web app under Account → API keys. Every /api/* request carries it as a Bearer token. Keys are tied to your user for billing — keep them server-side, never in client code.
export KOLENS_API_KEY="kol_xxxxxxxxxxxx"
curl https://kolens.ai/api/kols \
-H "Authorization: Bearer $KOLENS_API_KEY"Core flow: search → poll → query
1. Submit a keyword scrape
curl -X POST https://kolens.ai/api/scrape \
-H "Authorization: Bearer $KOLENS_API_KEY" \
-H "Content-Type: application/json" \
-d '{"keyword": "skincare routine", "max_videos": 50, "region": "US"}'
# → 202 {"job_id": "…", "status": "queued", …}The other platforms mirror the shape: POST /api/instagram/scrape {"hashtag": "kbeauty", "max_videos": 50} · POST /api/x/scrape {"keyword": "ai tools", "max_tweets": 50} · POST /api/douyin/scrape {"keyword": "美妆", "max_videos": 50}. All return 202 with a job id; all bill max(1, ceil(results ÷ 10)) credits, refunded on failure.
2. Poll the job
curl https://kolens.ai/api/jobs/$JOB_ID \
-H "Authorization: Bearer $KOLENS_API_KEY"
# → {"status": "completed", "kol_count": 12, "total_videos": 50, …}
# Excel download:
# GET /api/jobs/$JOB_ID/exportStatuses move queued → running → completed (or failed). Poll with backoff (a few seconds is plenty); GET /api/jobs lists recent jobs.
3. Query the creator database
curl "https://kolens.ai/api/kols?keyword=skincare%20routine\
&require_email=true&min_engagement_rate=0.04\
&min_followers=10000&sort_by=avg_views" \
-H "Authorization: Bearer $KOLENS_API_KEY"Key filters: platform, min/max_followers, min_engagement_rate (decimal — 0.04 = 4%), min_avg_views, country (ISO-2), category, require_email, require_website, hide_sellers, verified_only, scope=personal|team|both, sort_by. Add llm_friendly=true to receive a pre-digested summary, risk_flags and next_actions per row — designed for feeding LLMs. Single creator: GET /api/kols/{username}; audience: GET /api/kols/{username}/audience.
Endpoint families
| Family | Endpoints |
|---|---|
| Discovery | POST /api/scrape · /api/instagram/scrape · /api/x/scrape · /api/douyin/scrape · /api/kols/profile-scrape |
| Jobs | GET /api/jobs · /api/jobs/{id} · /api/jobs/{id}/export |
| Database | GET /api/kols · /api/kols/{username} · /api/kols/{username}/audience · /snapshots · /videos |
| Lists | POST/GET/PATCH/DELETE /api/lists · GET/POST /api/lists/{id}/members · PATCH …/members/{username} · POST /api/lists/{id}/assign-export |
| Watchlist & alerts | GET/POST /api/watchlist · DELETE /api/watchlist/{username} · GET /api/alerts · POST /api/alerts/{id}/read · GET/PUT /api/alert-preferences |
| Video tracking | POST /api/videos/track · GET /api/videos/tracked · GET /api/videos/{id}/tracking · GET /api/videos/compare |
| CRM | GET/POST/PATCH /api/crm/conversations · POST …/{id}/ai/draft · …/ai/summarise · POST /api/crm/tasks |
| Plans & usage | POST/GET/PATCH/DELETE /api/discovery-plans · GET /api/usage/daily · /jobs · /ledger |
Limits & errors
- Rate limit: 5 scrape submissions per minute per key; reads are not separately limited (poll politely).
- 401 — missing/invalid key · 402 — insufficient credits (job not started) · 404 — unknown resource · 422 — validation error with field details.
- Interactive OpenAPI (Swagger) docs with every schema live on the API service itself — this page covers the stable core.
Note
Building on Claude or another AI agent? The MCP server wraps this same API with OAuth and tool schemas — usually less code than raw REST. See MCP for AI agents.
Frequently asked questions
Is there a sandbox or free tier for development?
All reads against your existing data are free, so most integration work costs nothing. For end-to-end tests that scrape, the $0.99 Trial Pack (5 credits) covers a full search cycle.
How should I wait for job completion?
Poll GET /api/jobs/{id} every few seconds with backoff; typical completion is 2–5 minutes. The job object carries stage and progress so you can show live status.
Are engagement rates decimals or percentages?
Decimals throughout the API: 0.04 means 4%. The min_engagement_rate filter follows the same convention.
Can multiple apps share one key?
Create one key per integration instead — keys are labeled, individually revocable, and usage reports then attribute spend per system.
Related
Ready to try it on real data?
Everything in this manual works on a free account — the homepage demo search doesn't even need one. Your first search takes about 5 minutes.
Get started