Skip to content
scrapeatlas.Dashboard

Get a Kwai profile

Try in Playground

Read public account metadata and counts from Kwai’s public web API. Supply exactly one of handle or url. A private profile can expose public metadata with is_private=true.

GET/v1/kwai/profilex-api-key
x-api-keystringrequiredheader

Your ScrapeAtlas customer key. Create one on /account/ and set SCRAPEATLAS_API_KEY.

Query parameters
2
handlestringquery

Kwai handle without @. Exactly one of handle or url is required. ASCII letters, digits, underscore, hyphen and dot; starts with a letter or digit, at most 100 characters.

Exampleexample
urlstringquery

Canonical HTTPS kwai.com or www.kwai.com /@handle URL. Queries, fragments, short links, credentials and nonstandard ports are rejected.

max 300 chars

Response fields
31
requestIdstring

Request correlation identifier.

Upstream attempts, combined decoded response bytes and elapsed milliseconds.

accounting.upstreamRequestsinteger

Always included.

≥ 0

accounting.responseBytesinteger

Always included.

≥ 0

accounting.durationMsnumber

Always included.

≥ 0

successboolean

True when usable public data was retrieved.

statusenum

success, partial, failed or challenged. Inspect coverage even for HTTP 200.

one of: success, partial

sourceUrlstring

Canonical public Kwai profile or post URL.

absolute HTTPS URL

fetchedAtstring

UTC retrieval time.

Complete means this supported bounded response has no known omissions; it does not mean an entire account was enumerated.

coverage.sourcestring

Always included.

coverage.completeboolean

Always included.

coverage.warningsstring[]

Always included.

Provider data. Unknown fields are null; unknown counts are never zero-filled.

data.idinteger

Source numeric user ID.

-9007199254740991 – 9007199254740991

data.eidstringnullable

Public encrypted user identifier when supplied.

data.handlestring

Always included.

data.usernamestring

Display name; handle is the account identifier.

data.biostringnullable

Public biography.

data.urlstring

Always included.

absolute HTTPS URL

data.avatar_urlstringnullable

Public avatar URL; never downloaded.

data.verifiedbooleannullable

Source verification flag; descriptions and numbers remain separate.

data.verified_descriptionstringnullable

Always included.

data.verified_numberintegernullable

Always included.

data.genderstringnullable

Source gender code; U or absent becomes null.

data.follower_countintegernullable

Source fan count, without normalization or correction.

data.following_countintegernullable

Source follow count.

data.like_countintegernullable

Source liked total, not the profile’s own liked-feed count.

data.public_post_countintegernullable

Source public post count.

data.private_post_countintegernullable

Source aggregate private post count only; no private posts are retrieved.

data.is_privatebooleannullable

Public privacy setting; null if unavailable.

HTTP 200 returns the success variant. Check status: partial means usable data with warnings, and failed or challenged requests carry a failure object described in Errors & responses.

Error codes
12
HTTPfailure.codeMeaning
200partialKnown omissions: profile_counts_unavailable, privacy_unavailable, music_unavailable, tags_unavailable, post_counts_unavailable, media_unavailable, timestamp_unavailable or album_limit.
400invalid_requestMissing, duplicate, ambiguous, unsafe or unsupported inputs.
401unauthorizedMissing or invalid worker API key.
403restrictedThe requested feed or post is private or restricted.
404not_foundThe source returned no requested profile or post.
429upstream_rate_limitedSource throttling; no retry.
502upstream_challengedThe source challenged the request; no retry.
502unsupported_pageMalformed response, mismatched identity, or invalid pagination.
502response_too_large payload_too_complexByte, depth or node bounds exceeded.
502unsafe_redirect request_limit upstream_errorThe bounded source request failed.
503busyAll worker slots are occupied.
504timeoutTotal request deadline expired.