Skip to content
scrapeatlas.Dashboard

Get a Kwai post

Try in Playground

Retrieve a public Kwai video post by /@handle/photo/id URL, with music, tags and media metadata. Responses retain null values and coverage.

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

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

Query parameters
1
urlstringrequiredquery

Required canonical HTTPS Kwai /@handle/photo/numeric-id URL. Short/share links, other URL formats and query strings are unsupported.

max 350 chars

Examplehttps://www.kwai.com/@example/photo/5193363430624671876
Response fields
39
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.idstring

Exact authoritative string post ID. Use this for storage and requests.

data.photo_idinteger

Source numeric alias, which may be rounded in JavaScript for 64-bit IDs. Use id for exact identity.

≥ 0

data.urlstring

Always included.

absolute HTTPS URL

data.captionstringnullable

Source caption or null.

data.created_atstringnullable

Source millisecond timestamp as UTC ISO 8601, or null when unavailable.

data.created_at_textstringnullable

Source display timestamp without timezone conversion.

data.video_urlstringnullable

First public playback URL; may expire and is never fetched.

data.cover_urlstringnullable

First source thumbnail URL.

data.view_countintegernullable

Public view count or null. Like, comment and forward counts follow the same rule.

data.like_countintegernullable

Always included.

data.comment_countintegernullable

Always included.

data.forward_countintegernullable

Always included.

Public numeric ID, handle, display name, avatar and verification metadata. Encrypted source author IDs are verified against the public profile before returning its numeric ID.

data.author.idinteger

Always included.

-9007199254740991 – 9007199254740991

data.author.handlestring

Always included.

data.author.usernamestring

Always included.

data.author.avatar_urlstringnullable

Always included.

data.author.verifiedbooleannullable

Always included.

data.author.verified_descriptionstringnullable

Always included.

Available music ID, name, artist and URL. Null with music_unavailable when the detail source omits it.

data.music.idinteger

Always included.

-9007199254740991 – 9007199254740991

data.music.namestringnullable

Always included.

data.music.artiststringnullable

Always included.

data.music.urlstringnullable

Always included.

data.tagsJSON[]nullable

Source tags array. Null with tags_unavailable when absent; an empty array stays empty.

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.