TikTok Video Comment Reply
curl --request POST \
--url https://mavi-backend.memories.ai/serve/api/v2/tiktok/video/comment/reply \
--header 'Authorization: <api-key>' \
--header 'Content-Type: application/json' \
--data '
{
"video_id": "7543017294226558221",
"comment_id": "comment_id",
"page_size": 6,
"cursor": 0
}
'import requests
url = "https://mavi-backend.memories.ai/serve/api/v2/tiktok/video/comment/reply"
payload = {
"video_id": "7543017294226558221",
"comment_id": "comment_id",
"page_size": 6,
"cursor": 0
}
headers = {
"Authorization": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
video_id: '7543017294226558221',
comment_id: 'comment_id',
page_size: 6,
cursor: 0
})
};
fetch('https://mavi-backend.memories.ai/serve/api/v2/tiktok/video/comment/reply', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://mavi-backend.memories.ai/serve/api/v2/tiktok/video/comment/reply",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'video_id' => '7543017294226558221',
'comment_id' => 'comment_id',
'page_size' => 6,
'cursor' => 0
]),
CURLOPT_HTTPHEADER => [
"Authorization: <api-key>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://mavi-backend.memories.ai/serve/api/v2/tiktok/video/comment/reply"
payload := strings.NewReader("{\n \"video_id\": \"7543017294226558221\",\n \"comment_id\": \"comment_id\",\n \"page_size\": 6,\n \"cursor\": 0\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://mavi-backend.memories.ai/serve/api/v2/tiktok/video/comment/reply")
.header("Authorization", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"video_id\": \"7543017294226558221\",\n \"comment_id\": \"comment_id\",\n \"page_size\": 6,\n \"cursor\": 0\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://mavi-backend.memories.ai/serve/api/v2/tiktok/video/comment/reply")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"video_id\": \"7543017294226558221\",\n \"comment_id\": \"comment_id\",\n \"page_size\": 6,\n \"cursor\": 0\n}"
response = http.request(request)
puts response.read_body[
{
"rid": "reply_id_1",
"text": "Reply content",
"create_time": 1756245606,
"like_count": 5,
"author": {
"id": "user_id",
"name": "username",
"nick_name": "Display name"
}
},
{
"rid": "reply_id_2",
"text": "Another reply",
"create_time": 1756245700,
"like_count": 3,
"author": {
"id": "user_id_2",
"name": "username2",
"nick_name": "Display name 2"
}
}
]
TikTok
TikTok Video Comment Reply
Get the reply list for TikTok video comments.
POST
/
tiktok
/
video
/
comment
/
reply
TikTok Video Comment Reply
curl --request POST \
--url https://mavi-backend.memories.ai/serve/api/v2/tiktok/video/comment/reply \
--header 'Authorization: <api-key>' \
--header 'Content-Type: application/json' \
--data '
{
"video_id": "7543017294226558221",
"comment_id": "comment_id",
"page_size": 6,
"cursor": 0
}
'import requests
url = "https://mavi-backend.memories.ai/serve/api/v2/tiktok/video/comment/reply"
payload = {
"video_id": "7543017294226558221",
"comment_id": "comment_id",
"page_size": 6,
"cursor": 0
}
headers = {
"Authorization": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
video_id: '7543017294226558221',
comment_id: 'comment_id',
page_size: 6,
cursor: 0
})
};
fetch('https://mavi-backend.memories.ai/serve/api/v2/tiktok/video/comment/reply', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://mavi-backend.memories.ai/serve/api/v2/tiktok/video/comment/reply",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'video_id' => '7543017294226558221',
'comment_id' => 'comment_id',
'page_size' => 6,
'cursor' => 0
]),
CURLOPT_HTTPHEADER => [
"Authorization: <api-key>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://mavi-backend.memories.ai/serve/api/v2/tiktok/video/comment/reply"
payload := strings.NewReader("{\n \"video_id\": \"7543017294226558221\",\n \"comment_id\": \"comment_id\",\n \"page_size\": 6,\n \"cursor\": 0\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://mavi-backend.memories.ai/serve/api/v2/tiktok/video/comment/reply")
.header("Authorization", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"video_id\": \"7543017294226558221\",\n \"comment_id\": \"comment_id\",\n \"page_size\": 6,\n \"cursor\": 0\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://mavi-backend.memories.ai/serve/api/v2/tiktok/video/comment/reply")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"video_id\": \"7543017294226558221\",\n \"comment_id\": \"comment_id\",\n \"page_size\": 6,\n \"cursor\": 0\n}"
response = http.request(request)
puts response.read_body[
{
"rid": "reply_id_1",
"text": "Reply content",
"create_time": 1756245606,
"like_count": 5,
"author": {
"id": "user_id",
"name": "username",
"nick_name": "Display name"
}
},
{
"rid": "reply_id_2",
"text": "Another reply",
"create_time": 1756245700,
"like_count": 3,
"author": {
"id": "user_id_2",
"name": "username2",
"nick_name": "Display name 2"
}
}
]
Product: Visual Intelligence — Social Media Scraping
Use case: Fetch video metadata, transcripts, captions, and comments from YouTube, Instagram, TikTok, and Twitter/X
Host:
https://mavi-backend.memories.ai/serve/api/v2
Auth: Authorization: sk-mavi-... (no Bearer prefix)Channel routing guide: see Social Media Scraping Overview. Endpoints with a
channel request field let you choose apify, rapid, or memories.ai; endpoints without this field use managed routing.Each API call costs $0.01 USD.
Channel Options
If your request supports achannel option, use it to control how scraper data is sourced:
| Channel | What it means | Typical trade-off |
|---|---|---|
apify | Uses Apify, a dedicated web scraping platform with broad content coverage. | Most stable and most complete results, but usually more expensive. |
rapid | Uses RapidAPI, a lower-cost aggregation platform. | Lower cost, but less stable and often narrower coverage. |
memories.ai | Managed routing by Memories.ai. | Automatically selects the best price/performance path for your request. |
Recommendation: Start with
memories.ai unless you need to force a specific provider.- The maximum value for pagination parameter
page_sizeis 6 cursorstarts from 0, increment bypage_sizevalue each time- When the number of returned replies is less than
page_size, it indicates all replies have been retrieved
Code Example
import requests
BASE_URL = "https://mavi-backend.memories.ai/serve/api/v2"
API_KEY = "sk-mavi-..."
HEADERS = {
"Authorization": f"{API_KEY}",
"Content-Type": "application/json"
}
def tiktok_video_comment_reply(video_id: str, comment_id: str):
url = f"{BASE_URL}/tiktok/video/comment/reply"
page_size = 6
cursor = 0
all_replies = []
while True:
data = {"video_id": video_id, "comment_id": comment_id, "page_size": page_size, "cursor": cursor}
resp = requests.post(url, json=data, headers=HEADERS).json()
replies = resp if isinstance(resp, list) else []
all_replies.extend(replies)
if len(replies) < page_size:
break
cursor += page_size
return all_replies
# Usage example
replies = tiktok_video_comment_reply("your_tiktok_video_id", "comment_id")
print(replies)
const axios = require('axios');
const BASE_URL = 'https://mavi-backend.memories.ai/serve/api/v2';
const API_KEY = 'sk-mavi-...';
const headers = {
'Authorization': API_KEY,
'Content-Type': 'application/json'
};
async function tiktokVideoCommentReply(videoId, commentId) {
const response = await axios.post(
`${BASE_URL}/tiktok/video/comment/reply`,
{ video_id: videoId, comment_id: commentId, page_size: 6, cursor: 0 },
{ headers }
);
return response.data;
}
// Usage example
tiktokVideoCommentReply('your_tiktok_video_id', 'comment_id')
.then(result => console.log(result));
curl -X POST "https://mavi-backend.memories.ai/serve/api/v2/tiktok/video/comment/reply" \
-H "Authorization: sk-mavi-..." \
-H "Content-Type: application/json" \
-d '{
"video_id": "your_tiktok_video_id",
"comment_id": "comment_id",
"page_size": 6,
"cursor": 0
}'
Request Body
| Field | Type | Required | Description |
|---|---|---|---|
| video_id | string | Yes | TikTok video ID (the numeric ID at the end of a TikTok URL, e.g., 7543017294226558221) |
| comment_id | string | Yes | Comment ID (obtained from the TikTok Video Comment response) |
| page_size | number | No | Number of replies returned per page, maximum value is 6, default is 6 |
| cursor | number | No | Pagination cursor, starts from 0, default is 0 |
Response
Returns an array of reply list.[
{
"rid": "reply_id_1",
"text": "Reply content",
"create_time": 1756245606,
"like_count": 5,
"author": {
"id": "user_id",
"name": "username",
"nick_name": "Display name"
}
},
{
"rid": "reply_id_2",
"text": "Another reply",
"create_time": 1756245700,
"like_count": 3,
"author": {
"id": "user_id_2",
"name": "username2",
"nick_name": "Display name 2"
}
}
]
Response Parameters
| Parameter | Type | Description |
|---|---|---|
| [].rid | string | Reply ID |
| [].text | string | Reply content |
| [].create_time | number | Reply creation timestamp |
| [].like_count | number | Like count |
| [].author | object | Reply author information |
| [].author.id | string | Author ID |
| [].author.name | string | Author username |
| [].author.nick_name | string | Author display name |
Authorizations
Body
application/json
TikTok video ID
Example:
"7543017294226558221"
Comment ID
Example:
"comment_id"
Number of replies returned per page, maximum value is 6, default is 6
Required range:
x <= 6Example:
6
Pagination cursor, starts from 0, default is 0
Required range:
x >= 0Example:
0
⌘I
