VI | EN
Message us on Messenger
Developer resources

Get synchronous catalog product diagnostic information — TikTok Business API

Get synchronous catalog product diagnostic information · call it through Quantri360 with one API key for your own accounts / assets that you connected and authorized — 360 handles request signing and refreshing the authorization you granted.

Get synchronous catalog product diagnostic information

GET/diagnostic/catalog/Via 360: GET https://partner.quantri360.com/v1/tiktok_business/diagnostic/catalog/
Description

Use this endpoint to retrieve diagnostic information synchronously for your catalog products.

  • If issues are detected in your catalog, the most recent diagnostic information may be generated for the previous day. This delay is because of the one-day delay in catalog diagnostic data, which is based on UTC+0 Time.
  • If no issues are detected in your catalog, the returned diagnostic information will be empty.

To create an asynchronous download task for catalog product diagnostic information, use /diagnostic/catalog/product/task/create/. Note that the diagnostic information provided by the asynchronous download task is less detailed than the information provided by this endpoint. The asynchronous download task only returns the Product ID (product_id), SKU ID (sku_id / hotel_id / flight_id / destination_id), Item title (title), Issue title (issue_title), Severity (issue_level), and Source (feed name) for each issue.

Request

Endpoint

GET https://partner.quantri360.com/v1/tiktok_business/diagnostic/catalog/

Authentication & shop

NameInTypeSampleDescription
AuthorizationheaderheaderBearer q360_live_ab12cd34_…Khóa API của brand (tạo ở mục API key). Bắt buộc với mọi request. Brand suy từ key — không truyền mã brand.
platform_shop_idquerystring7000000000000000001Tài sản TikTok Business đã kết nối — "Mã tài sản" ở trang Nền tảng hoặc GET /v1/platforms (tài khoản quảng cáo cho Marketing API, tài khoản TikTok cho Organic / Messaging). Có thể bỏ khi chỉ kết nối một tài sản.

Request parameters

NameInTypeRequiredSampleDescription
catalog_idquerystringYesID of a catalog that you have permission to access.
bc_idquerystringYesID of a Business Center that either owns the catalog, or has been granted access to it as an asset.
feed_idquerystringNoFeed ID. If not specified, the ID of the default feed for the catalog will be used. To retrieve the diagnostics for all feeds for the catalog, set this field to ALL. To obtain feed IDs for a catalog, use /catalog/feed/get/.
filteringqueryobjectNoFiltering conditions.
langquerystringNoThe language you want to set for the returned issue_title and reason_and_suggestion. Default value: en. To find out the enum values, refer to the Enum values for lang section below.
pagequeryintegerNoCurrent page number. Default value: 1. Value range: ≥1.
page_sizequeryintegerNoPage size. Default value: 10. Value range: [1, 20].

Request examples

curl -s "https://partner.quantri360.com/v1/tiktok_business/diagnostic/catalog/?catalog_id=&bc_id=" \
  -H "Authorization: Bearer $KEY"
Python
import requests

KEY = "q360_live_..."  # khóa API của brand
r = requests.get(
    "https://partner.quantri360.com/v1/tiktok_business/diagnostic/catalog/",
    params={
        "catalog_id": "",
        "bc_id": ""
    },
    headers={"Authorization": f"Bearer {KEY}"},
    timeout=60,
)
print(r.status_code)
print(r.json())
Node.js
const KEY = 'q360_live_...'; // khóa API của brand
const url = new URL('https://partner.quantri360.com/v1/tiktok_business/diagnostic/catalog/');
for (const [k, v] of Object.entries({"catalog_id":"","bc_id":""})) url.searchParams.set(k, typeof v === 'object' ? JSON.stringify(v) : String(v));
const r = await fetch(url, {
  method: 'GET',
  headers: { Authorization: `Bearer ${KEY}` },
});
console.log(r.status, await r.json());
PHP
<?php
$key = 'q360_live_...'; // khóa API của brand
$url = 'https://partner.quantri360.com/v1/tiktok_business/diagnostic/catalog/' . '?' . http_build_query(['catalog_id' => '', 'bc_id' => '']);
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, ['Authorization: Bearer ' . $key]);
$res = curl_exec($ch);
$status = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
echo $status, "\n", $res;

Response

Response fields (as returned by TikTok Business)

NameTypeSampleDescription
codenumberResponse code. For the complete list of response codes and descriptions, see Appendix-Return Code.
messagestringResponse message. For details, see Appendix - Return Codes.
request_idstringThe log ID of a request, which uniquely identifies the request.
dataobjectReturned data.
diagnostic_datestringThe date (UTC +0 Time) when the diagnostic information was generated, in the format of `"YYYY-MM-DD"`. Example: `"2023-06-15"`.
issuesobject[]Diagnostic information about issues detected in the catalog.
issue_idstringIssue ID. Some issue IDs can be passed to the endpoint /diagnostic/catalog/product/task/create/ to create an asynchronous download task for diagnostic information about the issue.
issue_titlestringThe issue title, which provides a summary of the issue.
reason_and_suggestionstringReason and suggestion. This field contains a description of the issue and a suggestion on how to fix it.
issue_levelstringIssue level. Enum values: - `CRITICAL`: This is a critical issue that requires immediate attention. - `WARNING`: This is a warning issue for which a suggestion is provided to optimize the product settings.
issue_categorystringIssue category. Enum values: - `PRODUCT_ATTRIBUTES`: Product attributes issue. - `PRODUCT_REVIEW`: Product review issue. - `CATALOG`: Catalog issue. - `PIXEL_OR_EVENT`: Pixel or event issue. - `FILE_UPLOAD_OR_FEED`: File upload or feed issue.
issue_product_fieldstringThe product field for which the issue was detected.
affected_product_countintegerThe number of catalog products for which the issue was detected.
affected_product_percentagenumberThe percentage of catalog products for which the issue was detected. Value range: [0,100].
example_affected_productsobject[]Returned when the value of `affected_product_count` is greater than 0. An object array containing up to 10 sample catalog products for which the issue was detected. You can use the fields in this object array to analyze the issues in detail. The schema for this object array is the same as the `list` parameter in the response of /catalog/product/get/. Note that the specific fields returned for each product vary depending on the product type. For instance, `hotel_id` is only returned for hotel catalog products.
page_infoobjectPagination information.
pagenumberCurrent page number.
page_sizenumberPaging size.
total_numbernumberTotal number of results.
total_pagenumberTotal pages of results.

Response sample

HTTPS/1.1 200 OK
{
    "code": 0,
    "message": "OK",
    "request_id": "{{request_id}}",
    "data": {
        "issues": [
            {
                "affected_product_percentage": 0.06253552657278164,
                "example_affected_products": [],
                "issue_id": "2002",
                "issue_level": "CRITICAL",
                "affected_product_count": 714,
                "issue_product_field": "",
                "issue_category": "PRODUCT_ATTRIBUTES",
                "reason_and_suggestion": "Check and update the link to an image that is at least 500x500 pixels",
                "issue_title": "Image is less than 500x500 pixels"
            },
            {
                "affected_product_percentage": 0.21221790040035,
                "example_affected_products": [],
                "issue_id": "3001",
                "issue_level": "CRITICAL",
                "affected_product_count": 2423,
                "issue_product_field": "",
                "issue_category": "PRODUCT_REVIEW",
                "reason_and_suggestion": "Update product info and appeal to continue. For approval, make sure newly updated products follow our Ad Policy.",
                "issue_title": "Product was disapproved due to prohibited content"
            },
            {
                "affected_product_percentage": 0.026363016104211864,
                "example_affected_products": [],
                "issue_id": "2004",
                "issue_level": "CRITICAL",
                "affected_product_count": 301,
                "issue_product_field": "",
                "issue_category": "PRODUCT_ATTRIBUTES",
                "reason_and_suggestion": "Check and update the image link. It must end with .jpeg or .png.",
                "issue_title": "Image link is invalid and can't be downloaded"
            },
            {
                "affected_product_percentage": 0.0053426710377306435,
                "example_affected_products": [],
                "issue_id": "2003",
                "issue_level": "CRITICAL",
                "affected_product_count": 61,
                "issue_product_field": "",
                "issue_category": "PRODUCT_ATTRIBUTES",
                "reason_and_suggestion": "Check the feed link and upload a file that is in CSV, XML, TSV, or GZIP format.",
                "issue_title": "Incorrect feed file or link format"
            },
            {
                "affected_product_percentage": 0.002539958362199814,
                "example_affected_products": [],
                "issue_id": "2001",
                "issue_level": "CRITICAL",
                "affected_product_count": 29,
                "issue_product_field": "",
                "issue_category": "PRODUCT_ATTRIBUTES",
                "reason_and_suggestion": "Check that the image hosting site doesn't block TikTok's server from fetching information.",
                "issue_title": "TikTok doesn't have permissions to access the image information hosted on your server"
            },
            {
                "affected_product_percentage": 6.694191640734276,
                "example_affected_products": [
                    {
                        "brand": "{{brand}}",
                        "product_version": "{{product_version}}",
                        "product_id": "{{product_id}}",
                        "item_group_id": "{{item_group_id}}",
                        "description": "{{description}}",
                        "title": "{{title}}",
                        "image_status": "SUCCESS",
                        "availability": "IN_STOCK",
                        "sku_id": "{{sku_id}}",
                        "profession": {
                            "condition": "NEW"
                        },
                        "image": [
                            {
                                "url": "{{url}}"
                            }
                        ],
                        "google_product_category": "",
                        "price": {
                            "sale_price": 0,
                            "price": 104.18,
                            "sale_price_effective_date": []
                        },
                        "audit": {
                            "audit_status": "approved"
                        },
                        "active_status": "ACTIVATED",
                        "image_url": "{{image_url}}",
                        "additional_image_urls": [],
                        "video_url": "",
                        "global_trade_item_number": "",
                        "manufacturer_part_number": "",
                        "landing_page": {
                            "android_url": "",
                            "ios_app_store_id": "",
                            "android_app_name": "",
                            "ios_app_name": "",
                            "iphone_app_name": "",
                            "ipad_app_store_id": "",
                            "ipad_app_name": "",
                            "android_package": "",
                            "ios_url": "",
                            "url": "{{url}}",
                            "iphone_app_store_id": "",
                            "landing_page_url": "{{landing_page_url}}"
                        },
                        "extra_info": {
                            "custom_label_4": "{{custom_label_4}}",
                            "custom_label_1": null,
                            "custom_label_3": null,
                            "custom_label_0": null,
                            "custom_label_2": null
                        }
                    },
                    {
                        "brand": "{{brand}}",
                        "product_version": "{{product_version}}",
                        "product_id": "{{product_id}}",
                        "item_group_id": "{{item_group_id}}",
                        "description": "{{descrip

Get started

  1. Sign up for Partner
  2. Enable a data type of the Ads (Marketing API) group on the platform page
  3. Create an API key (tick the TikTok Business channel)
  4. Call it as in the examples above