Realtime feed feedback
Dispatch real-time feed and video watch interaction signals.
Upstream
/tiktok/v1/realtime/feedback/Growth and upParameters
| Name | Type | Description |
|---|---|---|
account_idrequired | string | A connected account, from /dash/sessions or POST /v1/account/import. e.g. acc_7Hq2 |
aweme_idrequired | string | The video ID. e.g. 7705852133855161377 |
action_typerequired | string | Feedback signal type. e.g. watch_complete |
play_duration_ms | integer | Watch duration in milliseconds. e.g. 31840 |
Pricing
| Plan | Per call | Per 1,000 calls |
|---|---|---|
| Starter | 15 credits | $1.74 |
| Growth | 15 credits | $1.19 |
| Scale | 15 credits | $0.87 |
Connected sessions run on FullPool and are for accounts you own or are authorized to operate. Growth and up.
Response fields
| Field | Type | Description |
|---|---|---|
status_code | integer | Upstream TikTok mobile status code (0 indicates success). |
account_id | string | Connected session identifier bound to a dedicated FullPool mobile context. |
aweme_id | string | 64-bit TikTok Snowflake post ID (top 32 bits encode UTC creation timestamp). |
action_type | string | Decoded action type value. |
accepted | boolean | Whether accepted is enabled or true. |
log_pb | object | Upstream request trace envelope from the mobile gateway. |
log_pb.impr_id | string | Upstream TikTok impression / trace identifier. |
Responses
A 200 returns JSON with stable field names. Every response carries x-credits-cost, x-credits-tier and x-credits-remaining. Errors return a JSON body with a stable code and cost 0 credits. Error codes
import os
from tikultra import TikUltra
with TikUltra(api_key=os.environ["TIKULTRA_KEY"]) as client:
res = client.request(
"POST",
"/v1/account/realtime-feedback",
json_body={
"account_id": "acc_7Hq2",
"aweme_id": "7705852133855161377",
"action_type": "watch_complete",
"play_duration_ms": 31840,
},
)
print(res.credits_cost, res.data){
"status_code": 0,
"account_id": "acc_7Hq2",
"aweme_id": "7705852133855161377",
"action_type": "watch_complete",
"accepted": true,
"log_pb": {
"impr_id": "202611120200419F8E7D6C5B4A3210"
}
}More in Connected sessions
POST/v1/account/importGrowth+Import session25 crPOST/v1/account/login/otp/sendGrowth+Email sign-in: send code25 crPOST/v1/account/login/otp/verifyGrowth+Email sign-in: verify code25 crPOST/v1/account/sessionGrowth+Refresh session25 crGET/v1/account/healthGrowth+Session health15 crPOST/v1/account/session/cold-reopenGrowth+Cold reopen lifecycle15 crPOST/v1/account/session/warm-reopenGrowth+Warm reopen lifecycle15 crPOST/v1/account/session/backgroundGrowth+Session background flush10 crPOST/v1/account/session/tickGrowth+Session heartbeat tick10 crPOST/v1/account/applogGrowth+Flush AppLog batch15 crPOST/v1/account/warm/nicheGrowth+Warm session for niche25 crPOST/v1/account/warm/seed-accountsGrowth+Warm from seed creators25 crPOST/v1/account/warm/watch-itemGrowth+Watch item telemetry15 crGET/v1/account/upload/precheckGrowth+Upload precheck15 crPOST/v1/account/upload/videoGrowth+Publish video100 crPOST/v1/account/upload/slideshowGrowth+Publish slideshow100 crPOST/v1/account/upload/deleteGrowth+Delete post15 crPOST/v1/account/post/visibilityGrowth+Post visibility15 crGET/v1/account/upload/placesGrowth+Places for a post15 crPOST/v1/account/profile/updateGrowth+Update profile25 crPOST/v1/account/profile/usernameGrowth+Change username25 crPOST/v1/account/profile/avatarGrowth+Change avatar25 crPOST/v1/account/profile/privacyGrowth+Privacy settings25 crPOST/v1/account/settingsGrowth+App settings15 crPOST/v1/account/wellbeingGrowth+Digital wellbeing15 crGET/v1/account/studio/overviewGrowth+Studio analytics overview20 crGET/v1/account/studio/notificationsGrowth+Studio notifications20 crPOST/v1/account/commentGrowth+Post comment25 crPOST/v1/account/comment/likeGrowth+Like comment15 crPOST/v1/account/comment/unlikeGrowth+Unlike comment15 crPOST/v1/account/comment/deleteGrowth+Delete comment15 crPOST/v1/account/likeEnterpriseLike post15 crPOST/v1/account/followEnterpriseFollow creator20 crPOST/v1/account/repostEnterpriseRepost video15 crPOST/v1/account/shareEnterpriseRecord share15 crPOST/v1/account/favoriteEnterpriseBookmark post15 crPOST/v1/account/music/collectEnterpriseCollect sound15 crGET/v1/account/dm/inboxGrowth+Inbox20 crGET/v1/account/dm/conversation/listGrowth+Conversations20 crGET/v1/account/dm/conversation/messagesGrowth+Conversation messages20 crPOST/v1/account/dm/conversation/createGrowth+Start conversation20 crPOST/v1/account/dm/conversation/readGrowth+Mark read20 crPOST/v1/account/dm/typingGrowth+Typing indicator15 crPOST/v1/account/dm/sendGrowth+Send message35 crPOST/v1/account/dm/send-imageGrowth+Send image35 crPOST/v1/account/dm/send-voiceGrowth+Send voice note35 crPOST/v1/account/dm/replyGrowth+Reply to message35 crPOST/v1/account/dm/stickerGrowth+Send sticker35 crPOST/v1/account/dm/share-videoGrowth+Share video35 crPOST/v1/account/dm/reactGrowth+React to message15 crPOST/v1/account/dm/recallGrowth+Unsend message15 crGET/v1/account/dm/group/infoGrowth+Group info20 crGET/v1/account/dm/group/membersGrowth+Group members20 crGET/v1/account/dm/streaksGrowth+Streaks20 crPOST/v1/account/live/startGrowth+Start LIVE100 crPOST/v1/account/live/pingGrowth+LIVE heartbeat15 crPOST/v1/account/live/finishGrowth+End LIVE15 crPOST/v1/account/live/moderateGrowth+Moderate LIVE20 crPOST/v1/account/live/cohostGrowth+Co-host20 crPOST/v1/account/live/battleGrowth+LIVE match20 crPOST/v1/account/live/viewerGrowth+LIVE viewer session20 crPOST/v1/account/live/giftGrowth+LIVE gift & wallet35 crGET/v1/account/shop/cartGrowth+Cart25 crGET/v1/account/shop/order-centerGrowth+Orders25 crGET/v1/account/shop/csGrowth+Shop support chat25 cr
Ready to build?
Start with 2,500 free credits and test every public endpoint, then pick a plan.