---
title: "Profile Scrape By Handle"
method: POST
path: "/api/kols/profile-scrape"
tags: ["KOL Database"]
---

# Profile Scrape By Handle

`POST /api/kols/profile-scrape`

## Request

- Base URL: `https://api.kolens.ai` (the document declares no server; this is the origin it was published from)
- URL: `https://api.kolens.ai/api/kols/profile-scrape`
- Auth: HTTP bearer

Look up a single TikTok handle and persist their profile + videos.

Charges ``ceil(max_videos / 50)`` credits (so the default 50-video
pull is exactly 1 credit). Refunds the charge if Apify fails or
returns nothing usable.

Returns the headline metrics from the persisted DBAuthor row;
the full profile is then available via ``GET /api/kols/{username}``.

## Headers

- `x-kolens-user-id` string, nullable

## Request body

- HandleLookupRequest
  - `handle` string, required
  - `max_videos` integer

## Response `200`

Successful Response

- HandleLookupResponse
  - `username` string, required
  - `profile_url` string, required
  - `credits_charged` integer, nullable
  - `videos_scraped` integer, required
  - `account_created_at` string, date-time, nullable
  - `first_video_at` string, date-time, nullable
  - `last_video_at` string, date-time, nullable
  - `posting_cadence_days` number, nullable
  - `videos_per_week` number, nullable
  - `follower_count` integer, nullable
  - `avg_engagement_rate` number, nullable

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/kolens/apis/kolens-api.md) · [All operations](https://skmtc.dev/kolens/apis/kolens-api/llms.txt) · [OpenAPI document](https://skmtc.dev/kolens/apis/kolens-api/revisions/5d6865ab0a24?raw)
