KOLens
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

TikTok (50 videos = 5 credits, pre-charged)
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/export

Statuses 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

FamilyEndpoints
DiscoveryPOST /api/scrape · /api/instagram/scrape · /api/x/scrape · /api/douyin/scrape · /api/kols/profile-scrape
JobsGET /api/jobs · /api/jobs/{id} · /api/jobs/{id}/export
DatabaseGET /api/kols · /api/kols/{username} · /api/kols/{username}/audience · /snapshots · /videos
ListsPOST/GET/PATCH/DELETE /api/lists · GET/POST /api/lists/{id}/members · PATCH …/members/{username} · POST /api/lists/{id}/assign-export
Watchlist & alertsGET/POST /api/watchlist · DELETE /api/watchlist/{username} · GET /api/alerts · POST /api/alerts/{id}/read · GET/PUT /api/alert-preferences
Video trackingPOST /api/videos/track · GET /api/videos/tracked · GET /api/videos/{id}/tracking · GET /api/videos/compare
CRMGET/POST/PATCH /api/crm/conversations · POST …/{id}/ai/draft · …/ai/summarise · POST /api/crm/tasks
Plans & usagePOST/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
KOLens REST API — an influencer marketing API for developers | KOLens