cURL
curl --request POST \
--url 'https://api.keyapi.ai/v1/tiktok/product/image-search/analytics' \
--header 'Authorization: Bearer <YOUR_API_KEY>'import requests
response = requests.post(
'https://api.keyapi.ai/v1/tiktok/product/image-search/analytics',
params={},
headers={'Authorization': 'Bearer <YOUR_API_KEY>'}
)
print(response.json())const response = await fetch('https://api.keyapi.ai/v1/tiktok/product/image-search/analytics',
{
method: 'POST',
headers: { 'Authorization': 'Bearer <YOUR_API_KEY>' }
}
);
const data = await response.json();
console.log(data);HttpResponse<String> response = Unirest.post("https://api.keyapi.ai/v1/tiktok/product/image-search/analytics")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"image_base64\": \"\",\n \"size\": 30\n}")
.asString();{
"code": 0,
"message": "success",
"data": [
{
"_index": "product_image_search",
"_id": "1731083827559830517",
"_score": 31.961123,
"_source": {
"product_id": "1731083827559830517",
"priority_region": "US",
"vector_source_image": "tos://echosell-images/product-cover/649/1731083827559830517_0.jpeg",
"product_name": "Bibliophobia: A Memoir"
}
}
],
"requestId": "79e17592-5dc7-42ed-97f9-a0929413d230"
}{
"code": 400,
"data": null,
"message": "Missing required parameter: handle"
}{
"code": 401,
"data": null,
"message": "apiKey is null"
}{
"code": 402,
"data": null,
"message": "apiKey quota is not enough"
}{
"code": 429,
"data": null,
"message": "qps limit exceeded"
}{
"code": 500,
"data": null,
"message": "Internal server error"
}TikTok Shop
Product Image Search -EchoTik
Search for TikTok Shop products using an image. Upload an image to find visually similar products in the analytics database.
POST
/
v1
/
tiktok
/
product
/
image-search
/
analytics
cURL
curl --request POST \
--url 'https://api.keyapi.ai/v1/tiktok/product/image-search/analytics' \
--header 'Authorization: Bearer <YOUR_API_KEY>'import requests
response = requests.post(
'https://api.keyapi.ai/v1/tiktok/product/image-search/analytics',
params={},
headers={'Authorization': 'Bearer <YOUR_API_KEY>'}
)
print(response.json())const response = await fetch('https://api.keyapi.ai/v1/tiktok/product/image-search/analytics',
{
method: 'POST',
headers: { 'Authorization': 'Bearer <YOUR_API_KEY>' }
}
);
const data = await response.json();
console.log(data);HttpResponse<String> response = Unirest.post("https://api.keyapi.ai/v1/tiktok/product/image-search/analytics")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"image_base64\": \"\",\n \"size\": 30\n}")
.asString();{
"code": 0,
"message": "success",
"data": [
{
"_index": "product_image_search",
"_id": "1731083827559830517",
"_score": 31.961123,
"_source": {
"product_id": "1731083827559830517",
"priority_region": "US",
"vector_source_image": "tos://echosell-images/product-cover/649/1731083827559830517_0.jpeg",
"product_name": "Bibliophobia: A Memoir"
}
}
],
"requestId": "79e17592-5dc7-42ed-97f9-a0929413d230"
}{
"code": 400,
"data": null,
"message": "Missing required parameter: handle"
}{
"code": 401,
"data": null,
"message": "apiKey is null"
}{
"code": 402,
"data": null,
"message": "apiKey quota is not enough"
}{
"code": 429,
"data": null,
"message": "qps limit exceeded"
}{
"code": 500,
"data": null,
"message": "Internal server error"
}🪙1 creditper request
Copy for AI
🤖 Why Code When AI Can Do It For You?
Stop writing code like it’s 1970! Let AI do the heavy lifting - click the sparkles to copy a perfectly formatted prompt for ChatGPT, Claude, or your favorite AI assistant.
Authorizations
Body
application/json
Response
Success
The response is of type object.

