Kwai profile posts API
A user's public posts: caption, media URLs, covers, counts and author.
GET /v1/kwai/profile/posts
GET /v1/kwai/profile/posts
A user's public posts: caption, media URLs, covers, counts and author. Pass the cursor back for more.
- Cost: 1 credit
- Cache: Results are kept up to 30 days; send
max_age_daysto reuse them for free. - Timeout: A request still running after about 25 seconds answers
202with a job to poll (Batch and jobs).
Parameters#
| Name | Type | Required | Description |
|---|---|---|---|
url | URL | one of | Profile URL (kwai.com/@<user>). Accepted hosts: kwai.com. |
handle | string | one of | Username, with or without the leading @. Also accepted as username. |
limit | integer | no | Number of posts per page, at most 50. Range 1 to 50. Also accepted as count. |
Send at least one of url, handle. If you send several, the first listed is used and the rest are ignored.
Every request also accepts:
cursor: the cursor from the previous page (Pagination).trim:truefor a smaller response withoutnullfields andextra.raw:trueto also get the platform's original object asraw.max_age_days: accept a cached result up to this many days old, for 0 credits (Caching).
Example request#
Set your key in the environment first (see Authentication).
1curl -G "https://api.socialscrape.dev/v1/kwai/profile/posts" \2 -H "x-api-key: $SOCIALSCRAPE_API_KEY" \3 --data-urlencode "handle=KwaiBrasilOficial" \4 --data-urlencode "limit=10"1import os2import requests34params = {5 "handle": "KwaiBrasilOficial",6 "limit": "10",7}8res = requests.get(9 "https://api.socialscrape.dev/v1/kwai/profile/posts",10 headers={"x-api-key": os.environ["SOCIALSCRAPE_API_KEY"]},11 params=params,12)13body = res.json()1415if body["ok"]:16 print(body["data"])17else:18 print(body["error"]["code"], body["error"]["message"])1const url = new URL("https://api.socialscrape.dev/v1/kwai/profile/posts");2url.search = new URLSearchParams({3 "handle": "KwaiBrasilOficial",4 "limit": "10"5}).toString();6const res = await fetch(url, {7 headers: { "x-api-key": process.env.SOCIALSCRAPE_API_KEY! },8});9const body = await res.json();1011if (body.ok) {12 console.log(body.data);13} else {14 console.error(body.error.code, body.error.message);15}1{2 "nodes": [3 {4 "name": "SocialScrape Kwai profile posts",5 "type": "n8n-nodes-base.httpRequest",6 "typeVersion": 4.2,7 "position": [8 0,9 010 ],11 "parameters": {12 "method": "GET",13 "url": "https://api.socialscrape.dev/v1/kwai/profile/posts",14 "sendQuery": true,15 "queryParameters": {16 "parameters": [17 {18 "name": "handle",19 "value": "KwaiBrasilOficial"20 },21 {22 "name": "limit",23 "value": "10"24 }25 ]26 },27 "sendHeaders": true,28 "headerParameters": {29 "parameters": [30 {31 "name": "x-api-key",32 "value": "={{ $env.SOCIALSCRAPE_API_KEY }}"33 }34 ]35 }36 }37 }38 ],39 "connections": {}40}Example response#
This is a sample from a recorded response, lists and long text are shortened. Status 200.
1{2 "ok": true,3 "credits_charged": 1,4 "credits_remaining": 4999,5 "cached": false,6 "cached_at": null,7 "request_id": "req_b94efd098959dda7b0d9febf",8 "data": {9 "object": "list",10 "items": [11 {12 "object": "post",13 "platform": "kwai",14 "id": "5252191699663398465",15 "url": "https://www.kwai.com/@KwaiBrasilOficial/video/5252191699663398465",16 "type": "video",17 "author": {18 "id": "558843093",19 "handle": "KwaiBrasilOficial",20 "name": "Kwai Brasil Oficial",21 "url": "https://www.kwai.com/@KwaiBrasilOficial",22 "avatar_url": "https://aws-br-pic.kwai.net/bs2/overseaHead/20261008020943_BNTU4ODQzMDkz_tw.webp",23 "verified": true24 },25 "title": null,26 "text": "Chegou a hora de mandar a real pro dono do chapéu! 🤠👀 Toda semana o fazendeiro vai encarar as dúvidas da galera no Cantinho do Fazendeiro! Pra participar é fácil: comente sua pergunta usando a hashtag #AFazendaNoKwai aqui na nossa publicaçã...",27 "published_at": "2026-10-29T19:00:00.015000Z",28 "duration_seconds": 46.507,29 "language": null,30 "hashtags": [31 "AFazendaNoKwai"32 ],33 "mentions": null,34 "stats": {35 "views": 319,36 "likes": 25,37 "comments": 4,38 "shares": 4,39 "saves": null,40 "dislikes": null41 },42 "media": {43 "thumbnail_url": "https://p16-kimg.kwai.net/kimg/EKzM1y8qUAoKbWVkaWFjbG91ZBIPa3dhaS1rd2FpLWltYWdlGjE3YjUwNTI2NTYwMTkwMDM3LWFmM2JhMmM5YjRiZGEyNjUzN2VmY2VjM2EyMDgxMWU1.webp",44 "video_url": "https://aws-br-cdn.kwai.net/upic/2026/10/30/02/BMjAyNjEwMzAwMjA2MjNfNTU4ODQzMDkzXzE1MDExMTU5NzgwMTIxN18zXzM=_b_B1c854c8d6307584d6bec57baf54233fc.mp4?tag=1-1793320722-s-0-a1sqamnrw8-4a43f60bf47ca37e",45 "audio_url": null,46 "image_urls": null,47 "width": 720,48 "height": 128049 },50 "song": {51 "id": "13759980923",52 "title": null,53 "artist": "Kwai Brasil Oficial",54 "url": "https://aws-br-pic.kwai.net/bs2/ost/MTUwMTExNTk3ODAxMjE3XzU1ODg0MzA5Mw.m4a"55 },56 "location": null,57 "is_pinned": false,58 "is_sponsored": null,59 "extra": {60 "allow_download": true,61 "audio_url": "https://aws-br-pic.kwai.net/bs2/ost/MTUwMTExNTk3ODAxMjE3XzU1ODg0MzA5Mw.m4a",62 "categories": [63 "娱乐;Entertainment",64 "八卦追星;Gossip&celebrity"65 ],66 "cover_first_frame_url": "https://aws-br-pic.kwai.net/upic/2026/10/30/02/BMjAyNjEwMzAwMjA2MjNfNTU4ODQzMDkzXzE1MDExMTU5NzgwMTIxN18zXzM=_offn_B681a22a72bc053147220197444a57ce5.webp?tag=1-1793320722-s-0-hbhxn6czo4-5ff287c4d4a03bb5",67 "display_time": "2026-10-30 03:00:00",68 "pinned_to_profile": false,69 "post_kind": 170 }71 },72 {73 "object": "post",74 "platform": "kwai",75 "id": "5253880553670639173",76 "url": "https://www.kwai.com/@KwaiBrasilOficial/video/5253880553670639173",77 "type": "video",78 "author": {79 "id": "558843093",80 "handle": "KwaiBrasilOficial",81 "name": "Kwai Brasil Oficial",82 "url": "https://www.kwai.com/@KwaiBrasilOficial",83 "avatar_url": "https://aws-br-pic.kwai.net/bs2/overseaHead/20261008020943_BNTU4ODQzMDkz_tw.webp",84 "verified": true85 },86 "title": null,87 "text": "Eita que a rotina agitou! 🤠🔥 E essa semana tem mais, hein? Fiquem ligados no programa porque o tema da vez é receitas! 🍳👨🍳 Gostou? Então já usa a hashtag #AFazendaNoKwai, posta o seu vídeo também e vem acompanhar tudo o que rola no reality...",88 "published_at": "2026-10-26T20:00:00.015000Z",89 "duration_seconds": 184.875,90 "language": null,91 "hashtags": [92 "AFazendaNoKwai"93 ],94 "mentions": null,95 "stats": {96 "views": 1720,97 "likes": 216,98 "comments": 78,99 "shares": 112,100 "saves": null,101 "dislikes": null102 },103 "media": {104 "thumbnail_url": "https://p16-kimg.kwai.net/kimg/EKzM1y8qkAEKAnMzEg1waG90by1vdmVyc2VhGnt1cGljLzIwMjYvMTAvMjcvMDMvQk1qQXlOakV3TWpjd016TTJNemhmTlRVNE9EUXpNRGt6WHpFMU1ERXhNVFU0TkRnek16QTBORjh6WHpNPV9vdXVfQmE5NDdjZTBhNDJjN2JjMjQ4NmYyZmEyMjBlMGE4ZmVmLndlYnA.webp",105 "video_url": "https://aws-br-cdn.kwai.net/upic/2026/10/27/03/BMjAyNjEwMjcwMzM2MzhfNTU4ODQzMDkzXzE1MDExMTU4NDgzMzA0NF8zXzM=_b_B13e514718c13d6dfa58774564e10b519.mp4?tag=1-1793320722-s-0-fthunqih0l-04689ba4437f3fb1",106 "audio_url": null,107 "image_urls": null,108 "width": 720,109 "height": 1280110 },111 "song": {112 "id": "13751347905",113 "title": null,114 "artist": "Kwai Brasil Oficial",115 "url": "https://aws-br-pic.kwai.net/bs2/ost/MTUwMTExNTg0ODMzMDQ0XzU1ODg0MzA5Mw.m4a"116 },117 "location": null,118 "is_pinned": false,119 "is_sponsored": null,120 "extra": {121 "allow_download": true,122 "audio_url": "https://aws-br-pic.kwai.net/bs2/ost/MTUwMTExNTg0ODMzMDQ0XzU1ODg0MzA5Mw.m4a",123 "categories": [124 "潮流玩法;Trending Styles",125 "挑战;Challenge"126 ],127 "cover_first_frame_url": "https://aws-br-pic.kwai.net/upic/2026/10/27/03/BMjAyNjEwMjcwMzM2MzhfNTU4ODQzMDkzXzE1MDExMTU4NDgzMzA0NF8zXzM=_offn_B663f430f3c67337dce2138aea5433893.webp?tag=1-1793320722-s-0-q5dkdbkxmr-5697000465d597ac",128 "display_time": "2026-10-27 04:00:00",129 "pinned_to_profile": false,130 "post_kind": 1131 }132 }133 ],134 "cursor": "1792610101494",135 "has_more": true,136 "parent": null137 },138 "cursor": "1792610101494",139 "has_more": true140}Response#
A list of Post objects in data.items, with data.cursor and data.has_more.
See Data models for every field. The envelope around data is described in Responses.
Errors#
Failures are free: credits_charged is 0. Branch on error.code, never on the message.
| Code | HTTP | Retry | Meaning |
|---|---|---|---|
invalid_params | 400 | no | A parameter is missing, unknown or has the wrong type. |
unsupported_url | 400 | no | The URL is not one this endpoint accepts (wrong platform or form). |
not_found | 404 | no | The platform says this profile, post or item does not exist. |
Every request can also fail with the account and platform errors listed on the Errors page.
Example error:
1{2 "ok": false,3 "error": {4 "code": "not_found",5 "message": "The platform says this profile, post or item does not exist.",6 "retryable": false7 },8 "credits_charged": 0,9 "request_id": "req_f36a55ffc464bb299c85e3e1"10}Also served at#
These paths answer the same request, so code written for other APIs keeps working: /v1/kwai/user/posts. See Switching from ScrapeCreators.
Related endpoints#
- Kwai profile (
GET /v1/kwai/profile) - Kwai post (
GET /v1/kwai/post)