快工助手跨境电商知识与商机助手

SPS API Merchant Performance Diagnosis: ISV Integration Use Cases

TikTok Shop 官方资料 · TikTok Shop Partner Center 开发者文档 · 适合开发者

stable本次发布有变化全部展示

来自 TikTok Shop 官方资料快照 ·

打开官方原文 ↗
  1. 当前资料结构化阅读页
  2. 固定快照已留存,可追溯
  3. 官方原文可核对
查看技术与溯源信息
平台 / profile
TikTok Shop / profile.tiktok.docs_api
语言
en-US
发布版本
cn-20260909-2
标签
zhuge/sourceplatform/tiktok_shopaudience/developercategory/api_doctopic/compliancetopic/developer

资料正文

§1 SPS API Merchant Performance Diagnosis: ISV Integration Use Cases

An ISV-developed App can use five read-only SPS APIs to build an end-to-end journey: overview, prioritization, diagnosis, object-level drill-down, action, and review. The App frontend first displays the merchant’s SPS, dimensions, peer ranking, and benefits; then prioritizes Top Opportunity metrics for diagnosis, identifies affected products, orders, logistics providers, or conversations, and converts recommendations into executable tasks. The SPS API does not modify products, orders, or customer service settings. Actions must either deep-link to TikTok Shop Seller Center or be handled by the App’s own capabilities.

  1. View the SPS overview and benefit gaps;

This solution covers six user cases:

  1. Identify priority improvement metrics and complete metric diagnosis;
  2. Reduce product-satisfaction issues (NRR/NBFR);
  3. Stabilize fulfillment and logistics performance (SFCR/OTDR);
  4. Improve customer service and aftersales efficiency (IM_DSAT/AHT);
  5. Build an action plan, monitor by cycle, and review results continuously.

Implementation must treat API-returned status, benefits.is_unlocked, benchmarks, top_reason_text, and update_time as the source of truth. Do not hard-code tier thresholds or benefit requirements in the client. Displayed scores are rounded, and some benefits have additional eligibility requirements; do not predict benefit unlocks using sps_score >= unlock_score.

#

§2 Solution Scope

#

§3 Target Users and Systems

Target Users and Systems

ItemDefinition
Target merchantsTikTok Shop merchants who have authorized the App and meet or are close to the SPS eligibility threshold
App usersStore owners, product operations specialists, fulfillment operations specialists, customer service leads, and aftersales leads
App systemsApp frontend, analytics module, task and notification module, OAuth token service, and App backend (BFF/API gateway)
TikTok Shop systemsOpen API and Seller Center
Expected outcomeISVs can use this document directly to design App pages, orchestrate API calls, map App frontend fields, configure Actions, and define acceptance criteria.

Terminology: In this document, App means an ISV-developed application used by merchants; App frontend means the pages merchants interact with directly; and App backend (BFF) means the backend service that calls the SPS API for the App frontend, handles authentication, and normalizes data.

#

§4 In Scope

In Scope

Included:

  • Overall SPS score, tier, peer ranking, primary category, dimension scores, and benefits;
  • Status, score, value, benchmarks, trend, calculation details, and diagnosis conclusions for all six metrics;
  • Drill-down by product, order, logistics provider, aftersales type, and conversation;
  • Recommended Actions, Seller Center deep links, and App-owned action plans;
  • NIL, no data, partial data, pagination, and expired authorization.

Excluded:

  • Modifying products, inventory, logistics, or customer service settings through the SPS API;
  • Submitting an appeal through the SPS API;
  • Calculating or predicting the official SPS within the App;
  • Production rollout outside the United States. The five endpoints currently specified support US shops only.
#

§5 SPS Rules at a Glance

SPS Rules at a Glance

  • SPS is a dynamic score from 0 to 5. Merchants generally become eligible after receiving at least 30 delivered orders in the previous 90 days. Risk-controlled orders, sample orders, gift orders, and certain other orders may be excluded.
  • SPS uses the highest-selling category from the previous 90 days as the primary category and evaluates the shop against benchmarks for peer merchants in that category.
  • Recent orders carry more weight. Current official guidance states that the weight decays by 0.7 every 15 days.
  • Scope of NIL: Once a shop has received an overall SPS, the overall score is normally not NIL. However, each of the six SPS metrics is evaluated independently. If a metric does not meet its scoring eligibility conditions, it may return status=NIL with no valid score even while the overall SPS and other metrics are available. The App must continue to show the overall SPS and other scored metrics, render only the affected metric as “Insufficient data,” and must not treat it as 0 or turn the entire SPS page into an empty state. The platform redistributes that metric’s weight across other scored metrics according to its rules.
  • Merchants should prioritize metrics marked Top Opportunity, but the App must not derive that label independently.
  • Low-volume protection, excluded orders, and score adjustments are calculated by the platform. The App should explain the returned results rather than recreate the scoring algorithm.
#

§6 Six Metrics and Data Capabilities

Six Metrics and Data Capabilities

Dimensionmetric_codeMetricDirectionCurrent official evaluation periodTop ItemsProblem Details
Product SatisfactionNRRNegative Review RateLower is better60 daysProductsOrders with negative reviews
Product SatisfactionNBFRNon-Buyer Fault Return & Refund RateLower is better60 daysProductsReturn and refund orders
Fulfillment and LogisticsSFCRSeller Fault Cancellation RateLower is better30 daysNot supportedCanceled orders
Fulfillment and LogisticsOTDROn-Time Delivery RateHigher is better30 daysLogistics providersOrders not delivered on time
Customer ServiceIM_DSATIM Dissatisfaction RateLower is better60 daysNot supportedLow-satisfaction conversations
Customer ServiceAHTAfter-Sales Handling TimeLower is better60 daysAftersales types and productsAftersales orders

Display the API value of evaluate_duration_days as the source of truth for the evaluation period. The table above is only a reference for the current official rules.

#

§7 Integration Architecture and Shared API-Calling Strategy

#

§8 System Architecture

System Architecture

Image

#

§9 Page-Level Calling Strategy

Page-Level Calling Strategy

Image

#

§10 API-Calling Principles

API-Calling Principles

  1. Fetch Overview first, then fetch Metrics based on the result. When Overview returns a valid overall SPS, load Metrics. If an individual metrics[].status=NIL, keep the overall SPS and other scored metrics visible, and show “Insufficient data” only for that metric; diagnosis and drill-down availability must follow the corresponding API response. Show an overview-level empty state only when the shop has not yet met overall SPS eligibility or Overview is unavailable. Lazy-load Diagnosis, Top Items, and Problem Details when the merchant opens them.
  2. Use update_time to indicate data freshness. Show “Data updated at…” on the page. If update_time remains unchanged after a refresh, do not imply that the score has been recalculated.
  3. Interpret results using API status fields. Prefer status and status_text; do not reclassify a metric solely by comparing value with thresholds.
  4. Route by endpoint capability.top_items does not support SFCR or IM_DSAT; use problem_details directly for these two metrics.
  5. Pass locale through for internationalization. Include locale in requests and prioritize localized names and descriptions returned by the API. Use only metric_code, status, and sps_tier as business-logic keys—not localized labels.
  6. Handle unknown metrics gracefully. This document lists six metrics, while field descriptions use “possible values include.” Unknown metric_code values must be displayed safely or ignored without causing the page to fail.
#

§11 User Case 01: View SPS Overview and Benefits Gap

#

§12 Scenario Overview

Scenario Overview

The store owner wants to view SPS directly in the App frontend used for daily operations, without switching to Seller Center. They need to quickly understand the store’s current performance, the dimension that most needs improvement, its position relative to peer sellers, and which business benefits are unlocked or close to being unlocked. Trigger conditions: The merchant has completed authorization and the store is a US shop. Primary role: Store owner. Successful outcome: The merchant confirms the current SPS status within 30 seconds and opens the highest-priority issue for diagnosis.

#

§13 Merchant Flow

Merchant Flow

The diagram below presents the complete merchant journey as “flow step — purpose and key interaction — App UI demo.” If the shop has an overall SPS but an individual metrics[].status=NIL, the App frontend must keep the SPS Overview, other scored metrics, and benefit information visible, and show “Insufficient data” with the current evaluation period only on the affected metric card. It must not turn the entire page into an empty state.

Image

#

§14 API Call Flow

API Call Flow

Image

#

§15 Page-to-Field Mapping

Page-to-Field Mapping

Page areaAPI fieldsInteraction
SPS main cardsps_score, sps_tier, sps_tier_textSelect to view scoring details; do not predict the next score locally.
Peer positionpeer_percentile, primary_category.*Use a tooltip to explain that the comparison is based on the store’s primary category.
Evaluation periodstart_evaluation_time, end_evaluation_time, update_timeDisplay the evaluation period and latest update time.
Dimension cardsdimensions[].name/score/status/weightSelect a card to filter the metrics within that dimension.
Benefits listbenefits[].benefit_name/is_unlocked/unlock_scoreis_unlocked is the source of truth; unlock_score is informational only and must not be used for local score-based predictions.
Priority issuestop_issues.summary, top_issues.issues[]Sort by rank; select an item to open its corresponding metric_code.
#

§16 Optimization Opportunities and Actions

Optimization Opportunities and Actions

Identification signalRecommendation for the merchantAction
top_issues is presentAddress the highest-ranked issue first instead of spreading resources evenly.Diagnose top issue: Open UC02
A dimension is POOR/CRITICALExpand the metrics for that dimension instead of looking only at the overall score.View metrics
A benefit is locked and unlock_score is availableShow the score gap and related priority metrics; do not promise that completing an Action will unlock the benefit.Build action plan: Open UC06
metrics[].status=NIL / insufficient data for one metricKeep the overall SPS and other scored metrics visible; explain only that metric’s scoring eligibility and evaluation period, and do not treat it as 0.Learn about SPS
The merchant believes the data is unfair or incorrectCapture the current metric, evaluation period, and affected records, then open the official appeal entry point.Appeal; the link in the current recommendation document remains: https://seller-us.tiktok.com/university/essay?knowledge_id=6567382587836173
#

§17 UI Interaction Requirements

UI Interaction Requirements

  • The initial screen should highlight SPS, Top Opportunity, the three dimensions, and the data update time, with the label “Latest calculated result; not real-time monitoring.”
  • Group benefits into unlocked and pending-unlock sections, without using fear-based copy.
  • When metrics[].status=NIL, use the “Insufficient data” state only for that metric. Keep the overall SPS, other metrics, and benefits visible, and do not display a red score of 0.
  • After the merchant selects a Top Issue, preserve the source context and restore the previous scroll position when they return to Overview.
#

§18 User Case 02: Identify the Priority Metric and Complete Diagnosis

#

§19 Scenario Overview

Scenario Overview

The operations team knows the SPS score is low but cannot determine which metric to improve first or how far the current value is from the peer benchmark. The App frontend combines data from the Metrics and Diagnosis APIs on one page to explain what the problem is, why it occurred, how far the store is from the target, and whether the trend is improving. Primary roles: Store owner and domain operations leads. Successful outcome: The merchant selects a clearly defined priority metric and either drills down to affected records or creates an Action.

#

§20 Merchant Flow

Merchant Flow

The diagram below includes the corresponding App UI demo under each diagnostic step. At the final step, the merchant can either drill down to affected records or add the recommendation directly to the action plan.

Image

#

§21 API Call Flow

API Call Flow

Image

#

§22 Diagnostic Prioritization

Diagnostic Prioritization

  1. When top_reason_text is present, pin it to the top and label it Top Opportunity.
  2. Display the remaining metrics by the severity of the platform status, but do not present App-defined sorting as an official priority ranking.
  3. Within the same severity level, metrics may be sorted by worsening trend, gap to excellent_threshold, or the preference of the responsible operations lead.
  4. Place NIL metrics last and explain insufficient data separately.
#

§23 Optimization Opportunities and Actions

Optimization Opportunities and Actions

Diagnostic signalRecommendationAction
top_reason_textThis metric is the most valuable improvement opportunity to prioritize.Diagnose
The trend continues to worsenReview records newly affected in the last 15 days and address recent issues first.View recent problems
The current value has not reached excellent_thresholdShow the gap and direction; read the target value from the API.Set target
One distribution bucket has an anomalous shareConvert the bucket into a root-cause label and filter the related records.Filter affected records
The numerator or denominator appears abnormalHelp the merchant validate the evaluation criteria and included records.Review calculation
The merchant believes the data is incorrectPreserve the raw response, evaluation period, and record IDs to prepare appeal evidence.Prepare appeal evidence
#

§24 UI Interaction Requirements

UI Interaction Requirements

  • Present the six metrics as switchable tabs or a list; switching metrics must update the value, trend, benchmark, and Action.
  • Label the trend chart with both units and the evaluation period; do not show an unlabeled line without axes.
  • Use explicit text to indicate whether a lower or higher rate is better; do not rely on color alone.
  • When analysis is empty, hide the “Intelligent Analysis” module and do not generate diagnostic conclusions that the platform did not return.
#

§25 User Case 03: Reduce Product Satisfaction Issues (NRR / NBFR)

#

§26 Scenario Overview

Scenario Overview

Product operations teams may find that NRR or NBFR is dragging down SPS. They need to identify the products with the greatest concentration of issues and the leading negative-review or return reasons, then improve product quality, product detail pages, packaging, and after-sales handling. Primary roles: Product operations, quality owner, and after-sales owner. Successful outcome: The merchant identifies the top affected products and root causes, then completes the appropriate product, packaging, or review-handling actions.

#

§27 Merchant Flow

Merchant Flow

The flow below covers NRR / NBFR metric diagnosis, key products, problem orders, and product-action pages. Root causes such as inaccurate descriptions, quality issues, wrong-item shipments, damage, and review handling branch into the appropriate action at the final step.

Image

#

§28 API Call Flow

API Call Flow

Image

#

§29 Data Mapping

Data Mapping

MetricKey Top Items FieldsKey Problem Details Fields
NRRproduct_id/name, image_url, delivered_order_count, negative_order_count, top_review_reasonsorder_id, product_id/name, sku_id, user_review_rating, deliver_time
NBFRproduct_id/name, return_order_count, top_return_reasons, top_reason_order_countorder_id, product_id/name, sku_id, return_refund_reason, deliver_time
#

§30 Optimization Recommendations and Actions

Optimization Recommendations and Actions

Metric / Root CauseOptimization OpportunityActionUS Seller Center
NRR: Not as describedComplete size, material, feature, and use-case details, and add authentic images or videosProduct optimizerhttps://seller-us.tiktok.com/product/optimizer
NRR: Concentration of low-star reviewsReview 1–2-star ratings daily, identify recurring causes, and offer replacement or remediation optionsManage Reviewshttps://seller-us.tiktok.com/product/rating
NRR: Repeated product-quality issuesPause affected SKUs, strengthen inspections, or release an improved versionManage Producthttps://seller-us.tiktok.com/product/manage
NBFR: Size or material mismatchAdd a size chart, material details, and usage guidanceProduct optimizerhttps://seller-us.tiktok.com/product/optimizer
NBFR: DamageAdd bubble wrap, inner boxes, and outer-box protection for fragile productsImprove packagingInstructional guidance; no fixed destination
NBFR: Wrong item shippedUse bulk tools or templates and add SKU picking verificationPrevent Errorshttps://seller-us.tiktok.com/product/batch/edit-prods?entry-from=manage
NRR / NBFR: Concentrated returnsReview return records and take action by product, reason, and batchManage returnhttps://seller-us.tiktok.com/order/return
Suspected malicious or incorrect dataPreserve supporting order and review evidence, then submit an SPS appealAppealhttps://seller-us.tiktok.com/university/essay?knowledge_id=6567382587836173
#

§31 UI Interaction Requirements

UI Interaction Requirements

  • Display key products in the order returned by the API and provide a “View problem orders” entry point. Because the API does not define rank, a fixed Top-N, or pagination, do not present the result as a complete ranking.
  • Use a placeholder when a product image fails to load; do not block diagnosis.
  • Load more must pass through the opaque next_page_token; the client must not parse the token.
  • Before an action opens Seller Center, indicate that the merchant is leaving the App and do not claim that the App has completed the change.
  • Marking an action complete updates only the App task status; it does not modify SPS API data.
#

§32 User Case 04: Stabilize Fulfillment and Logistics Performance (SFCR / OTDR)

#

§33 Scenario Overview

Scenario Overview

Fulfillment operations teams need to reduce seller-fault cancellations and improve the on-time delivery rate. The App frontend should bring inventory, cancellation reasons, expected and actual delivery times, and logistics-provider performance into one diagnostic flow. This helps merchants decide whether to correct inventory, adjust product handling time, extend dispatch deadlines, switch logistics providers, or enroll in FBT. Primary roles: Fulfillment operations, warehouse owner, and logistics owner. Successful outcome: The merchant completes the appropriate inventory or delivery action and can trace the issue to a specific order or logistics provider.

#

§34 Merchant Flow

Merchant Flow

The flow below covers SFCR / OTDR diagnosis, cancellation reasons or logistics providers, problem orders, and fulfillment-action pages. Inventory, pricing, SLA, logistics-provider, FBT, and shipping-label actions branch by root cause at the final step.

Image

#

§35 API Call Flow

API Call Flow

Image

#

§36 Data Mapping

Data Mapping

MetricTop ItemsKey Problem Details Fields
SFCRNot supported; do not callorder_id, product_id/name, sku_id, cancellation_reasons, order_create_time
OTDRlogistics_provider, delivered_order_count, on_time_deliver_order_count, on_time_deliver_rateorder_id, product_name, sku_id, expect_deliver_time, actual_deliver_time
#

§37 Optimization Recommendations and Actions

Optimization Recommendations and Actions

Metric / Root CauseOptimization OpportunityActionUS Seller Center
SFCR: Out of stockSync inventory in real time, do not inflate sellable inventory, and set order caps when stock is lowManage Stockhttps://seller-us.tiktok.com/product/stock
SFCR: Delayed inventory updatesConfigure inventory alerts or automatic synchronizationMaintain Stock Accuracyhttps://seller-us.tiktok.com/product/stock
SFCR: Pricing or manual errorsVerify prices before listing and use bulk templates to reduce manual errorsVerify Pricing / Prevent Errorshttps://seller-us.tiktok.com/product/manage
OTDR: Insufficient peak capacityUse Order Capacity Handling to extend dispatch deadlinesExtend your dispatch deadlineshttps://seller-us.tiktok.com/order/shipping-delivery-settings?tab=fulfillment&openOhcTool=true
OTDR: Product requires special handlingSet the appropriate product type for custom, pre-order, out-of-stock replenishment, or other special-handling productsProduct-Specifichttps://seller-us.tiktok.com/product/manage?tab=all
OTDR: Poor carrier performanceCompare logistics-provider on-time rates and select a reliable carrier or consolidatorChoose a reliable logistics providerOfficial learning resources
OTDR: Unstable self-fulfillmentEvaluate enrollment in FBT; FBT orders receive the applicable exemptions under platform rulesEnroll in FBThttps://seller-us.tiktok.com/fbt/fbt_landing?from=fbtaca
OTDR: Missing order-status updatesTrack shipped orders daily and proactively contact the carrierStay up-to-date on order statusesOfficial learning resources
OTDR: Shipping-label or payment noncomplianceEnsure sufficient payment or postage and make sure labels meet carrier standardsEnsure Payment and Label ComplianceInstructional guidance
OTDR: Dispatch deadline approachingMonitor delay tags and complete picking, packing, and handover before the automatic-cancellation dateMonitor Dispatch Tags / Meet Pickup Deadlineshttps://seller-us.tiktok.com/order
#

§38 UI Interaction Requirements

UI Interaction Requirements

  • In the OTDR logistics-provider table, display the numerator, denominator, and on-time rate clearly; do not sort by order volume alone.
  • Do not display an empty “Top Items” module on the SFCR page.
  • When expected and actual delivery times are shown together, display the length of the delay.
  • The FBT action must state the eligibility requirements and must not promise that historical SPS will change immediately after enrollment.
#

§39 User Case 05: Improve Customer Service and After-Sales Efficiency (IM_DSAT / AHT)

#

§40 Scenario

Scenario

Customer service managers need to identify low-satisfaction chats and slow after-sales requests, determine whether the issues stem from response speed, service attitude, FAQ coverage, manual approval workflows, or return inspections, and configure saved replies, automation, or after-sales rules. Primary roles: Customer Service Manager and After-Sales Manager. Successful outcome: The merchant identifies low-rated chats or high-duration after-sales cases and completes the relevant customer service or after-sales Actions.

#

§41 Merchant Flow

Merchant Flow

The diagram below covers IM_DSAT / AHT diagnosis, low-rated chats or after-sales types, handling bottlenecks, and the Service Actions page. At the final node, Actions branch into response speed, service scripts, FAQs, automated approvals, and agent training.

Image

#

§42 API Call Flow

API Call Flow

Image

#

§43 Data Mapping

Data Mapping

MetricTop ItemsKey Problem Details Fields
IM_DSATNot supported; do not callchat_record_id, customer_name, customer_rating, rating_reasons, service_agent, first_reply_time, chat_duration_hours
AHTtop_aftersales_type_name, handle_duration_hours, return_order_count, top_type_order_count, product_id/nameorder_id, return_order_id, aftersales_type_name, approve_duration_hours, inspect_duration_hours, total_handle_duration_hours, review_count
#

§44 Optimization Recommendations and Actions

Optimization Recommendations and Actions

Metric / Root CauseMerchant OptimizationActionUS Seller Center
IM_DSAT: Slow first responseEnable notifications and set an internal response target of <1hTurn on notificationshttps://seller-us.tiktok.com/chat/settings/notification
IM_DSAT: Repeated common questionsBuild an FAQ library and saved replies covering frequent topics such as returns, sizing, and shippingBuild FAQ Library / Use saved answershttps://seller-us.tiktok.com/chat/assistant/general/automatic-robot-setting
IM_DSAT: Missed messagesReview chats daily; mark spam as No response neededStay on top of messageshttps://seller-us.tiktok.com/chat/settings/notification
IM_DSAT: Service attitude / accuracyTrain agents to communicate professionally, empathetically, and accuratelyAgent trainingOfficial learning resources
IM_DSAT: Insufficient status updatesEnable Chat Assistant and proactive messages to share shipping statusUse chat assistant and Proactive messageshttps://seller-us.tiktok.com/chat/assistant/general/automation-tool-setting
AHT: Slow approvalReview and process after-sales requests within 12 hours whenever possibleRespond PromptlyIn-app guidance copy
AHT: Suitable for automationConfigure automatic approval rules for eligible scenariosConfigure Self-Service Optionshttps://seller-us.tiktok.com/order/shipping-delivery-settings?shop_region=US&tab=return
AHT: Repeated inspection / communicationClarify return and refund policies and provide clear responses and supporting evidenceMaintain Quality CommunicationIn-app guidance copy
AHT: Repeated returns for similar productsImprove product descriptions and packaging in parallelManage Product / Product optimizerhttps://seller-us.tiktok.com/product/manage
#

§45 UI Interaction Requirements

UI Interaction Requirements

  • Use customer names as masked by the API; do not attempt to re-identify them.
  • Display only fields within the authorized scope in chat details; do not combine them with personal information from other sources.
  • For AHT, show approval, inspection, and total handling times together to help merchants locate workflow bottlenecks.
  • Do not display an empty Top Items section on the IM_DSAT page.
  • The automated approval Action must remind the merchant to review eligible scenarios and risks.
#

§46 User Case 06: Build an Action Plan, Monitor Periodically, and Review Continuously

#

§47 Scenario

Scenario

Cross-functional improvements usually cannot be completed in a single diagnostic session. The shop owner needs to assign recommendations in the App to product, fulfillment, or customer service owners, track due dates, and determine whether trends improved after the next SPS update. For merchants who do not proactively open the page, the App can also run periodic monitoring based on update_time and notify them when the SPS tier, Top Opportunity, or benefits status changes. The SPS API is read-only. Tasks, owners, due dates, and completion status must be stored in the App's own system.

#

§48 Merchant Flow

Merchant Flow

The diagram below covers the complete journey from converting a recommendation into a task and executing it through an external link, to marking it complete and reviewing it periodically. If new data does not improve, the merchant follows the feedback path back to the diagnosis page and adjusts the Action.

Image

#

§49 API and App Data Flow

API and App Data Flow

Image

#

§50 Minimum Action Plan Data Model

Minimum Action Plan Data Model

FieldDescription
shop_idInternal shop identifier used by the App; do not expose tokens on the App frontend
metric_codeLinks the task to an SPS metric; may be null for a general Action
action_idStable App Action ID; do not use display copy as the primary key
source_update_timeSPS data version when the task is created
baseline_value/status/scoreSnapshot at creation; preserve both raw and display values
owner_id, due_at, completed_atOwner, due date, and completion timestamp
target_valueOptional; proposed from an API benchmark and must be confirmed by the merchant
seller_center_urlReturned from the App backend (BFF) Action configuration and controlled by market
follow_up_snapshotMetric snapshot after a subsequent data update
#

§51 Optimization Recommendations and Actions

Optimization Recommendations and Actions

Management IssueRecommendationAction
Recommendation has no ownerRequire an owner or team when creating an ActionAssign owner
Multiple Actions are in progressKeep one Top Opportunity as the primary task and the others as secondary tasksPrioritize
Data has not been updatedShow “Waiting for platform data update”; do not equate task completion with score improvementCheck after update
No improvement after completionCompare problem count, trend, and newly affected objects; refine the root-cause hypothesisRe-diagnose
The merchant needs to file an appealExport the metric, assessment period, affected objects, and action logs as evidencePrepare appeal evidence
#

§52 Periodic Monitoring and Notification Strategy

Periodic Monitoring and Notification Strategy

  1. Scheduled jobs should call Overview only. If update_time is unchanged, stop all subsequent calls.
  2. After update_time changes, call Metrics and compare score/status/value/top_reason_text with the previous snapshot.
  3. Send business notifications only when the SPS tier, Top Opportunity, benefits unlock state, or metric status changes. Avoid creating noise from raw decimal fluctuations.
  4. After the merchant opens a notification, lazy-load Diagnosis, Top Items, and Problem Details to avoid continuously fetching and storing order or chat details.
  5. The current design has no webhook. The polling frequency must be configurable and comply with the refresh frequency and rate limits in the official API documentation.
  6. Need TikTok support: appeal link. Until the link is confirmed, show only guidance for preparing an appeal and hide the empty button.
#

§53 UI Interaction Requirements

UI Interaction Requirements

  • “Add to Action Plan” and “Go to Seller Center” are two separate actions.
  • When the merchant returns after opening an external link, preserve the task's edit state.
  • Completing an Action means only that the operational action is complete; it does not mean SPS has improved.
  • The follow-up comparison must use a new update_time; otherwise, show “No new data”.
#

§54 SPS API Endpoint List and Call Timing

APIMethod & PathWhen to CallKey Parameters
Get SPS OverviewGET /analytics/202606/shop_performances/overviewSPS landing pagelocale
Get SPS MetricsGET /analytics/202606/shop_performances/metricsSPS landing page and metric-list refreshlocale
Get SPS Metric DiagnosisGET /analytics/202606/shop_performances/metrics/:metric_code/diagnosisWhen the merchant opens metric detailsmetric_code, locale, trend_duration_days
Get SPS Metric Problem DetailsGET /analytics/202606/shop_performances/metrics/:metric_code/problem_detailsWhen the merchant opens “Problem Orders/Conversations”metric_code, locale, page_size (default: 10; maximum: 50), page_token
Get SPS Metric Top ItemsGET /analytics/202606/shop_performances/metrics/:metric_code/top_itemsWhen the merchant opens product, logistics-provider, or aftersales-type aggregatesNRR/NBFR/OTDR/AHT only; locale

Common host: https://open-api.tiktokglobalshop.com Business headers listed here: x-tts-access-token: <seller_access_token> and content-type: application/json

All five endpoints use GET and send no request body. The table lists endpoint-specific business parameters only; it is not a complete authentication or signing specification. Follow the official OpenAPI documentation for common parameters, signatures, API scopes, error codes, rate limits, and retry policies.

#

§55 Action Recommendation Configuration

#

§56 Recommendation Rules

Recommendation Rules

The recommendation engine only interprets and routes results; it does not replace platform scoring. Diagnosis is native API data, while the Action Catalog contains static suggestions that the App matches to diagnosis results. The App frontend must present these two layers separately:

API status/top_reason_text
  + metric_code
  + diagnosis.analysis/distribution
  + reason fields from top_items/problem_details
  -> Match an Action by rule
  -> Merchant confirmation
  -> Seller Center deep link or App-owned task

Recommended priority:

  1. Actions for a Top Opportunity metric;
  2. Actions that directly match API analysis or an explicit issue reason;
  3. Actions that can address a high-share Top Item;
  4. General preventive Actions;
  5. Show appeal guidance only when the merchant believes the data is incorrect or unfair—not as a default shortcut to a higher score.
#

§57 Complete Action Catalog (US Primary Flow)

Complete Action Catalog (US Primary Flow)

Recommendation MappingAction NameMerchant ActionButtonUS Link
ALLNeed TikTok supportPrepare supporting evidence and appeal suspected malicious, unfair, or incorrect data.Appealhttps://seller-us.tiktok.com/university/essay?knowledge_id=6567382587836173
NRR/NBFR/AHTManage returnReview and process returns.Managehttps://seller-us.tiktok.com/order/return
NRR/NBFRProduct optimizerOptimize titles, images, attributes, variants, and descriptions.Optimizehttps://seller-us.tiktok.com/product/optimizer
NRR/NBFRManage ProductDelist, revise, or update affected products.Managehttps://seller-us.tiktok.com/product/manage
NRRManage ReviewsReview negative feedback, identify root causes, and offer a resolution.Managehttps://seller-us.tiktok.com/product/rating
OTDREnroll in FBTEvaluate enrollment in Fulfilled by TikTok.Join nowhttps://seller-us.tiktok.com/fbt/fbt_landing?from=fbtaca
OTDRProduct-SpecificSet a more suitable SLA for customized, pre-order, restocking, or special-handling products.Managehttps://seller-us.tiktok.com/product/manage?tab=all
OTDRExtend your dispatch deadlinesExtend dispatch deadlines during peak-capacity periods.To edithttps://seller-us.tiktok.com/order/shipping-delivery-settings?tab=fulfillment&openOhcTool=true
SFCRManage StockVerify and update inventory.Managehttps://seller-us.tiktok.com/product/stock
OTDRStay up-to-date on your order statusesContinuously track shipped orders and contact the carrier when needed.Learn morehttps://seller-us.tiktok.com/university/essay?knowledge_id=6179821974439723&role=1&course_type=1&from=search&identity=1
OTDRChoose a reliable logistics providerSelect a reliable carrier or logistics consolidator.Learn morehttps://seller-us.tiktok.com/university/essay?knowledge_id=8308896260065025&role=1&course_type=1&from=search&identity=1
SFCR/AHTCustomizing Your Cancellation FeaturesConfigure cancellation rules to reduce unnecessary manual handling.Set uphttps://seller-us.tiktok.com/order/shipping-delivery-settings?tab=cancellations
IM_DSATMark spam as no response neededMark spam or messages that do not require a reply as “No response needed.”None
IM_DSATRespond Promptly and proactivelyRespond promptly and proactively to customer inquiries.None
IM_DSATBuild the FAQ LibraryBuild automated FAQ replies.Add Newhttps://seller-us.tiktok.com/chat/assistant/general/automatic-robot-setting
IM_DSATStay on top of incoming messagesCheck chats daily and enable notifications.Turn onhttps://seller-us.tiktok.com/chat/settings/notification
IM_DSATUse saved answers to questionsCreate saved replies for frequently asked questions.Createhttps://seller-us.tiktok.com/chat/settings/saved-reply
IM_DSATUse chat assistant and Proactive messagesEnable the chat assistant and proactive messages.Set Uphttps://seller-us.tiktok.com/chat/assistant/general/automation-tool-setting
IM_DSATAgent trainingTrain customer service agents on professional communication, empathy, and accuracy.Learn morehttps://seller-us.tiktok.com/university/essay?knowledge_id=5513514540189453&role=1&course_type=1&from=search&identity=1&anchor_link=EC5F00C9
AHTRespond PromptlyProcess aftersales requests promptly.None
AHTConfigure Self-Service OptionsConfigure automatic approval for eligible aftersales requests.Set uphttps://seller-us.tiktok.com/order/shipping-delivery-settings?shop_region=US&tab=return
AHT/IM_DSATMaintain Quality CommunicationProvide clear responses and relevant supporting evidence.None
NRR/NBFR/SFCRPrevent ErrorsUse bulk tools or templates to reduce manual errors.To Usehttps://seller-us.tiktok.com/product/batch/edit-prods?entry-from=manage
NBFR/SFCRVerify PricingDouble-check pricing before listing.To checkhttps://seller-us.tiktok.com/product/manage
OTDR/NBFRFor Smooth ShippingEnsure postage is fully paid and shipping labels are compliant.None
OTDRMonitor Dispatch TagsMonitor delayed-order tags.To checkhttps://seller-us.tiktok.com/order
OTDRMeet Pickup DeadlinesPrepare orders before the auto-cancellation date and set reminders.To checkhttps://seller-us.tiktok.com/order
SFCRMaintain Stock AccuracyConfigure low-stock alerts or automatic inventory synchronization.Set Alerthttps://seller-us.tiktok.com/product/stock
OTDRFollow Inbound GuidelinesFollow logistics-partner requirements for inbound delivery, documentation, and packaging.Learn morehttps://seller-us.tiktok.com/university/essay?knowledge_id=6201736389805867&role=1&course_type=1&from=search&identity=1
OTDREnsure Payment and Label ComplianceEnsure parcels are fully paid and shipping labels are compliant.None
NRR/NBFREnsure Full ComplianceUpload and maintain all required qualifications when listing products.None
NRR/NBFRCertificates & Docs: Valid & ReadyKeep certificates authentic, legible, and valid.None
NRR/NBFRAuthenticity and Safety FirstSell only authentic products and retain invoices or proof of authenticity.None
NRR/NBFRMonitor & Act on RecallsMonitor recalls and promptly delist affected products.To checkhttps://seller-us.tiktok.com/order

The source recommendation table maintains both L2L and POP links. Because the current SPS API design supports US shops only, this solution includes L2L links in the production primary flow. Enable POP links only after the corresponding market APIs become available.

#

§58 Page Information Architecture and Interaction Demo Notes

#

§59 Page Structure

Page Structure

Image

#

§60 Core Components

Core Components

ComponentContentKey Interaction
SPS HeaderOverall score, tier, peer percentile, and update timeView scoring details
Dimension CardsScores, statuses, and weights for the three dimensionsFilter metrics by dimension
Metric SwitcherSix metrics, Top Opportunity, and statusUpdate the full page when the selected metric changes
Diagnosis PanelCurrent value, score, benchmarks, trend, calculation formula, and distributionSelect a trend period and expand the calculation definition
Affected ObjectsProducts, logistics providers, aftersales types, and problem detailsDrill down, paginate, and copy IDs
Action CardsReason, recommendation, button, and deep linkAdd to a plan or open Seller Center
Action Plan Drawerowner、due date、target、noteSave an App task or mark it complete
#

§61 Demo Data Disclaimer

Demo Data Disclaimer

The interaction demo uses mock data to illustrate fields and behaviors. It does not represent any real shop or platform commitment. Thresholds, scores, problem orders, and trends in the demo are for design illustration only; production environments must use actual SPS API responses. Display the following two notices persistently on the page:

  • “Data comes from the TikTok Shop SPS API and reflects the most recently calculated result, not real-time monitoring. The benchmark for the current primary category may change with category and peer-merchant performance.”
  • “The recommendations below are matched by the App based on API diagnosis results and are provided for operational reference only. Taking an Action does not guarantee changes to the score, traffic, or benefits.”
#

§62 API List

Mock data notice: All request parameters, response examples, shop/product/order/conversation identifiers, and access-credential examples in this section are mock data provided only to illustrate field formats. They do not represent any real account or business data.

#

§63 Get SPS Metrics

Get SPS Metrics

TypeValue
API NameGet SPS Metrics
API Version202606
API URI (fixed for all APIs)Host: open-api.tiktokglobalshop.com Schemes: HTTPS
API Path/analytics/:version/shop_performances/metrics
API MethodGET
API Function DescriptionReturns SPS metric details and benchmark thresholds for the authorized shop. Supported only for US-region shops.
#
§64 Request Parameters

Request Parameters

#
§65 Path
Path
PropertiesTypeRequiredExampleProperties description
#
§66 Query
Query
PropertiesTypeRequiredExampleProperties description
localestringfalseen-USLocale code used to localize response text. If omitted, the default locale is resolved from the request context.
#
§67 Headers
Headers
PropertiesTypeRequiredExampleProperties description
x-tts-access-tokenstringtrue<REDACTED_EXAMPLE_TOKEN>Seller access_token
content-typestringtrueapplication/jsonAllowed type: application/json
#
§68 Body (not applicable to GET/DELETE)
Body (not applicable to GET/DELETE)
PropertiesTypeRequiredExampleProperties description

Request Body Example

{}
#
§69 Response Parameters

Response Parameters

PropertiesTypeExampleProperties description
metrics[]objectFixed complete SPS metric set for the authorized shop.
>benchmarksobjectBenchmark thresholds for the metric.
>>excellent_thresholdstring0.02Excellent tier threshold.
>>poor_thresholdstring0.08Poor tier threshold.
>dimensionstringProduct satisfactionSPS dimension that the metric belongs to.
>evaluate_duration_daysint3230Number of days included in this metric's evaluation period.
>end_evaluation_timeint641761264000Metric evaluation period end time. Unix timestamp in seconds.
>start_evaluation_timeint641758672000Metric evaluation period start time. Unix timestamp in seconds.
>metric_codestringNRRStable metric code. Possible values include NRR, NBFR, SFCR, OTDR, AHT, and IM_DSAT.
>metric_namestring60-day negative review rateLocalized metric display name.
>scorestring4.7Metric score, from 0 to 5.
>statusstringEXCELLENTMetric status. Possible values include EXCELLENT, GOOD, POOR, CRITICAL and NIL.
>status_textstringExcellentMetric status text. Values include Excellent, Good, Normal, Attention.
>valuestring0.97Metric value. Hours are represented as values; percentages are represented as values from 0 to 100.
>value_unitstringPERCENTUnit of the metric value. Possible values include PERCENT and HOURS.
>top_reason_textstringTop opportunityIndicates that this metric is a key contributor to SPS.

NIL handling: This example means the individual IM_DSAT metric has not yet met its scoring eligibility conditions. The shop’s overall SPS and other metrics may still be available. The App should show “Insufficient data” only for this metric.

{
  "metric_code": "IM_DSAT",
  "status": "NIL",
  "status_text": ""
}

Note: parameter preceded by ">" means the parameter is a subobject.

{
  "metrics": {
    "benchmarks": {
      "excellent_threshold": "0.02",
      "poor_threshold": "0.08"
    },
    "dimension": "Product satisfaction",
    "evaluate_duration_days": 30,
    "end_evaluation_time": 1761264000,
    "start_evaluation_time": 1758672000,
    "metric_code": "NRR",
    "metric_name": "60-day negative review rate",
    "score": "4.7",
    "status": "EXCELLENT",
    "status_text": "Excellent",
    "value": "0.97",
    "value_unit": "PERCENT",
    "top_reason_text": "Top opportunity"
  }
}
#

§70 Get SPS Overview

Get SPS Overview

TypeValue
API NameGet SPS Overview
API Version202606
API URI (fixed for all APIs)Host: open-api.tiktokglobalshop.com Schemes: HTTPS
API Path/analytics/:version/shop_performances/overview
API MethodGET
API Function DescriptionReturns the SPS overview for the authorized shop, including the score, tier, dimensions, benefits, and top issues. Supported only for US-region shops.
#
§71 Request Parameters

Request Parameters

#
§72 Path
Path
PropertiesTypeRequiredExampleProperties description
#
§73 Query
Query
PropertiesTypeRequiredExampleProperties description
localestringfalseen-USLocale code used to localize response text. If omitted, the default locale is resolved from the request context.
#
§74 Headers
Headers
PropertiesTypeRequiredExampleProperties description
x-tts-access-tokenstringtrue<REDACTED_EXAMPLE_TOKEN>Seller access_token
content-typestringtrueapplication/jsonAllowed type: application/json
#
§75 Body (not applicable to GET/DELETE)
Body (not applicable to GET/DELETE)
PropertiesTypeRequiredExampleProperties description

Request Body Example

{}
#
§76 Response Parameters

Response Parameters

PropertiesTypeExampleProperties description
benefits[]objectFixed complete set of benefits associated with the shop SPS score.
>benefit_namestringLIVE giveawayBenefit display name localized by the requested locale.
>is_unlockedbooltrueWhether the shop has unlocked this benefit.
>unlock_scorestring4.5Score required to unlock the benefit, from 0 to 5.
dimensions[]objectScore details by SPS dimension.
>namestringProduct satisfactionDimension name.
>scorestring4.8Dimension score, from 0 to 5.
>statusstringEXCELLENTDimension status enum. Possible values include EXCELLENT, GOOD, POOR, CRITICAL and NIL.
>status_textstringExcellentDimension status text. Possible values include Excellent, Good, Normal, Attention.
>weightstring70Dimension weight as a percent from 0 to 100.
evaluate_duration_daysint3290The number of days included in the score evaluation period.
end_evaluation_timeint641782518400The evaluation period end time. Unix timestamp in seconds.
start_evaluation_timeint641774828800The evaluation period start time. Unix timestamp in seconds.
peer_percentilestring86.5The shop's percentile among peers, from 0 to 100.
primary_categoryobjectThe shop's primary category.
>category_idstring601450The primary category ID.
>category_namestringHome SuppliesThe primary category name.
sps_scorestring4.6The shop SPS score, from 0 to 5 with one decimal place.
sps_tierstringGOODThe SPS tier. Possible values include EXCELLENT, GOOD, POOR, CRITICAL and NIL.
sps_tier_textstringExcellentThe SPS tier. Possible values include Excellent, Good, Normal, Attention.
top_issuesobjectTop SPS issues that contributed to the current score.
>issues[]objectRanked issue list.
>>descriptionstringYour on-time delivery performance is lower than peer shops.Localized issue description.
>>evaluation_duration_daysint3230Number of days included in this issue's evaluation period.
>>end_evaluation_timeint641761264000Issue evaluation period end time. Unix timestamp in seconds.
>>start_evaluation_timeint641758672000Issue evaluation period start time. Unix timestamp in seconds.
>>metric_codestringOTDRRelated metric code. Possible values include NRR, NBFR, SFCR, OTDR, AHT, and IM_DSAT.
>>metric_namestringOn-time delivery rateLocalized metric display name.
>>percentilestring72.4Metric percentile among peer shops, from 0 to 100.
>>rankint321Issue rank, where 1 is the top issue.
>summarystringImprove late dispatch and negative reviews to increase your SPS score.Localized summary of the top issues.
update_timeint641761264000The latest score refresh time. Unix timestamp in seconds.

Note: parameter preceded by ">" means the parameter is a subobject.

{
  "benefits": {
    "benefit_name": "LIVE giveaway",
    "is_unlocked": true,
    "unlock_score": "4.5"
  },
  "dimensions": {
    "name": "Product satisfaction",
    "score": "4.8",
    "status": "EXCELLENT",
    "status_text": "Excellent",
    "weight": "70"
  },
  "evaluate_duration_days": 90,
  "end_evaluation_time": 1782518400,
  "start_evaluation_time": 1774828800,
  "peer_percentile": "86.5",
  "primary_category": {
    "category_id": "601450",
    "category_name": "Home Supplies"
  },
  "sps_score": "4.6",
  "sps_tier": "GOOD",
  "sps_tier_text": "Excellent",
  "top_issues": {
    "issues": {
      "description": "Your on-time delivery performance is lower than peer shops.",
      "evaluation_duration_days": 30,
      "end_evaluation_time": 1761264000,
      "start_evaluation_time": 1758672000,
      "metric_code": "OTDR",
      "metric_name": "On-time delivery rate",
      "percentile": "72.4",
      "rank": 1
    },
    "summary": "Improve late dispatch and negative reviews to increase your SPS score."
  },
  "update_time": 1761264000
}
#

§77 Get SPS Metric Problem Details

Get SPS Metric Problem Details

TypeValue
API NameGet SPS Metric Problem Details
API Version202606
API URI (fixed for all APIs)Host: open-api.tiktokglobalshop.com Schemes: HTTPS
API Path/analytics/:version/shop_performances/metrics/:metric_code/problem_details
API MethodGET
API Function DescriptionReturns problem order or chat details for a selected SPS metric. Supported only for US-region shops.
#
§78 Request Parameters

Request Parameters

#
§79 Path
Path
PropertiesTypeRequiredExampleProperties description
metric_codestringtrueNRRMetric code. Possible values include NRR, NBFR, SFCR, OTDR, AHT, and IM_DSAT.
#
§80 Query
Query
PropertiesTypeRequiredExampleProperties description
localestringfalseen-USLocale code used to localize response text. If omitted, the default locale is resolved from the request context.
page_tokenstringfalse2Token used to retrieve the next page of results. Leave empty for the first page.
page_sizeint32false10The number of results to return per page. Default value is 10. Maximum value is 50.
#
§81 Headers
Headers
PropertiesTypeRequiredExampleProperties description
x-tts-access-tokenstringtrue<REDACTED_EXAMPLE_TOKEN>Seller access_token
content-typestringtrueapplication/jsonAllowed type: application/json
#
§82 Body (not applicable to GET/DELETE)
Body (not applicable to GET/DELETE)
PropertiesTypeRequiredExampleProperties description

Request Body Example

{}
#
§83 Response Parameters

Response Parameters

PropertiesTypeExampleProperties description
aht_problem_order_items[]objectAHT problem order items.
>aftersales_type_namestringOnly ReturnAftersales type returned by TikTok Shop aftersales classification.
>approve_duration_hoursstring12.5Approval duration in hours.
>inspect_duration_hoursstring30.0Inspection duration in hours.
>order_idstring576461413038785752Order ID.
>return_order_idstring576461413038785753Return order ID.
>review_countint322Number of review rounds.
>total_handle_duration_hoursstring42.5Total aftersales handle duration in hours.
im_dsat_chat_items[]objectIM_DSAT chat session items.
>chat_duration_hoursstring1.5Chat duration in hours.
>chat_record_idstring745961413038785752Chat record ID.
>customer_namestringJ*** D***Masked customer name.
>customer_ratingint322Customer rating from 1 to 5.
>first_reply_timeint641761264060First reply time. Unix timestamp in seconds.
>rating_reasons[]stringotherCustomer rating reasons.
>service_agentstringAgent AService agent name.
metric_codestringNRRStable metric code. Possible values include NRR, NBFR, SFCR, OTDR, AHT, and IM_DSAT.
nbfr_problem_order_items[]objectNBFR problem order items.
>deliver_timeint641761523200Delivery time. Unix timestamp in seconds.
>order_create_timeint641761264000Order creation time. Unix timestamp in seconds.
>order_idstring576461413038785752Order ID.
>product_idstring1729592969712207010Product ID.
>product_namestringCotton T-ShirtProduct name.
>return_refund_reasonstringWrong sizeReturn or refund reason.
>sku_idstring1729592969712207013SKU ID.
next_page_tokenstringb2Zmc2V0PTAKAn opaque token used to retrieve the next page of a paginated result set. Returns an empty string when there are no more results.
nrr_problem_order_items[]objectNRR problem order items.
>deliver_timeint641761523200Delivery time. Unix timestamp in seconds.
>order_create_timeint641761264000Order creation time. Unix timestamp in seconds.
>order_idstring576461413038785752Order ID.
>product_idstring1729592969712207008Product ID.
>product_namestringWireless HeadphonesProduct name.
>sku_idstring1729592969712207012SKU ID.
>user_review_ratingint322User review rating from 1 to 5.
otdr_problem_order_items[]objectOTDR problem order items.
>actual_deliver_timeint641761609600Actual deliver time. Unix timestamp in seconds.
>expect_deliver_timeint641761523200Expected deliver time. Unix timestamp in seconds.
>order_idstring576461413038785752Order ID.
>product_namestringWireless HeadphonesProduct name.
>sku_idstring1729592969712207014SKU ID.
sfcr_problem_order_items[]objectSFCR problem order items.
>cancellation_reasons[]stringDefective itemCancellation reasons.
>order_create_timeint641761264000Order creation time. Unix timestamp in seconds.
>order_idstring576461413038785752Order ID.
>product_idstring1729592969712207011Product ID.
>product_namestringSmart WatchProduct name.
>sku_idstring1729592969712207014SKU ID.
total_countint32200Total number of available records.

Note: parameter preceded by ">" means the parameter is a subobject.

{
  "aht_problem_order_items": {
    "aftersales_type_name": "Only Return",
    "approve_duration_hours": "12.5",
    "inspect_duration_hours": "30.0",
    "order_id": "576461413038785752",
    "return_order_id": "576461413038785753",
    "review_count": 2,
    "total_handle_duration_hours": "42.5"
  },
  "im_dsat_chat_items": {
    "chat_duration_hours": "1.5",
    "chat_record_id": "745961413038785752",
    "customer_name": "J*** D***",
    "customer_rating": 2,
    "first_reply_time": 1761264060,
    "rating_reasons": "other",
    "service_agent": "Agent A"
  },
  "metric_code": "NRR",
  "nbfr_problem_order_items": {
    "deliver_time": 1761523200,
    "order_create_time": 1761264000,
    "order_id": "576461413038785752",
    "product_id": "1729592969712207010",
    "product_name": "Cotton T-Shirt",
    "return_refund_reason": "Wrong size",
    "sku_id": "1729592969712207013"
  },
  "next_page_token": "b2Zmc2V0PTAK",
  "nrr_problem_order_items": {
    "deliver_time": 1761523200,
    "order_create_time": 1761264000,
    "order_id": "576461413038785752",
    "product_id": "1729592969712207008",
    "product_name": "Wireless Headphones",
    "sku_id": "1729592969712207012",
    "user_review_rating": 2
  },
  "otdr_problem_order_items": {
    "actual_deliver_time": 1761609600,
    "expect_deliver_time": 1761523200,
    "order_id": "576461413038785752",
    "product_name": "Wireless Headphones",
    "sku_id": "1729592969712207014"
  },
  "sfcr_problem_order_items": {
    "cancellation_reasons": "Defective item",
    "order_create_time": 1761264000,
    "order_id": "576461413038785752",
    "product_id": "1729592969712207011",
    "product_name": "Smart Watch",
    "sku_id": "1729592969712207014"
  },
  "total_count": 200
}
#

§84 Get SPS Metric Diagnosis

Get SPS Metric Diagnosis

TypeValue
API NameGet SPS Metric Diagnosis
API Version202606
API URI (fixed for all APIs)Host: open-api.tiktokglobalshop.com Schemes: HTTPS
API Path/analytics/:version/shop_performances/metrics/:metric_code/diagnosis
API MethodGET
API Function DescriptionReturns diagnosis details for a single SPS metric, including benchmark thresholds, trends, calculation details, and distribution details. Supported only for US-region shops.
#
§85 Request Parameters

Request Parameters

#
§86 Path
Path
PropertiesTypeRequiredExampleProperties description
metric_codestringtrueOTDRMetric code. Possible values include NRR, NBFR, SFCR, OTDR, AHT, and IM_DSAT.
#
§87 Query
Query
PropertiesTypeRequiredExampleProperties description
localestringfalseen-USLocale code used to localize response text. If omitted, the default locale is resolved from the request context.
trend_duration_daysint32false30Number of days to look back for metric trend data. Default value is 30.
#
§88 Headers
Headers
PropertiesTypeRequiredExampleProperties description
x-tts-access-tokenstringtrue<REDACTED_EXAMPLE_TOKEN>Seller access_token
content-typestringtrueapplication/jsonAllowed type: application/json
#
§89 Body (not applicable to GET/DELETE)
Body (not applicable to GET/DELETE)
PropertiesTypeRequiredExampleProperties description

Request Body Example

{}
#
§90 Response Parameters

Response Parameters

PropertiesTypeExampleProperties description
benchmarksobjectBenchmark thresholds for this metric.
>excellent_thresholdstring0.98Excellent tier threshold.
>poor_thresholdstring0.80Poor tier threshold.
calculation_ruleobjectCalculation details used to derive this metric.
>denominator_labelstringDelivered ordersDenominator label.
>denominator_valuestring1000Denominator value.
>numerator_labelstringOn-time delivered ordersNumerator label.
>numerator_valuestring947Numerator value.
dimensionstringProduct satisfactionSPS dimension that the metric belongs to.
distribution_details[]objectAdditional distribution details for the metric.
>countint32820Number of items in the distribution bucket.
>namestringDispatch 24-48 HoursDistribution detail name.
>percentstring82.0Percentage of items in the distribution bucket, from 0 to 100.
evaluate_duration_daysint3230Number of days included in the metric evaluation period.
end_evaluation_timeint641761264000Metric evaluation period end time. Unix timestamp in seconds.
start_evaluation_timeint641758672000Metric evaluation period start time. Unix timestamp in seconds.
metric_codestringOTDRStable metric code. Possible values include NRR, NBFR, SFCR, OTDR, AHT, and IM_DSAT.
scorestring4.3Metric score, from 0 to 5.
statusstringGOODMetric status. Possible values include EXCELLENT, GOOD, POOR, CRITICAL and NIL.
status_textstringExcellentMetric status text. Values include Excellent, Good, Normal, Attention.
trendobjectMetric trend over the requested lookback range.
>data_points[]objectMetric trend data points.
>>record_datestring2026-06-01Trend date in YYYY-MM-DD format.
>>valuestring0.947Metric value on the trend date, using the same unit as value_unit.
valuestring0.947Metric value. Ratios are represented as values from 0 to 1; percentages are represented as values from 0 to 100.
value_unitstringPERCENTUnit of the metric value. Possible values include PERCENT and HOURS.
analysis[]objectDiagnostic insights for the selected metric.
>summaries[]stringSummarized causes affecting the selected metric.
>details[]stringDetailed explanations for the selected metric diagnosis.

Note: parameter preceded by ">" means the parameter is a subobject.

{
  "benchmarks": {
    "excellent_threshold": "0.98",
    "poor_threshold": "0.80"
  },
  "calculation_rule": {
    "denominator_label": "Delivered orders",
    "denominator_value": "1000",
    "numerator_label": "On-time delivered orders",
    "numerator_value": "947"
  },
  "dimension": "Product satisfaction",
  "distribution_details": {
    "count": 820,
    "name": "Dispatch 24-48 Hours",
    "percent": "82.0"
  },
  "evaluate_duration_days": 30,
  "end_evaluation_time": 1761264000,
  "start_evaluation_time": 1758672000,
  "metric_code": "OTDR",
  "score": "4.3",
  "status": "GOOD",
  "status_text": "Excellent",
  "trend": {
    "data_points": {
      "record_date": "2026-06-01",
      "value": "0.947"
    }
  },
  "value": "0.947",
  "value_unit": "PERCENT",
  "analysis": {
    "summaries": "",
    "details": ""
  }
}
#

§91 Get SPS Metric Top Items

Get SPS Metric Top Items

TypeValue
API NameGet SPS Metric Top Items
API Version202606
API URI (fixed for all APIs)Host: open-api.tiktokglobalshop.com Schemes: HTTPS
API Path/analytics/:version/shop_performances/metrics/:metric_code/top_items
API MethodGET
API Function DescriptionReturns top products, logistics providers, or aftersales types for a selected SPS metric. Supported only for US-region shops.
#
§92 Request Parameters

Request Parameters

#
§93 Path
Path
PropertiesTypeRequiredExampleProperties description
metric_codestringtrueNRRMetric code. Possible values include NRR, NBFR, OTDR, and AHT.
#
§94 Query
Query
PropertiesTypeRequiredExampleProperties description
localestringfalseen-USLocale code used to localize response text. If omitted, the default locale is resolved from the request context.
#
§95 Headers
Headers
PropertiesTypeRequiredExampleProperties description
x-tts-access-tokenstringtrue<REDACTED_EXAMPLE_TOKEN>Seller access_token
content-typestringtrueapplication/jsonAllowed type: application/json
#
§96 Body (not applicable to GET/DELETE)
Body (not applicable to GET/DELETE)
PropertiesTypeRequiredExampleProperties description

Request Body Example

{}
#
§97 Response Parameters

Response Parameters

PropertiesTypeExampleProperties description
aht_aftersales_type_items[]objectAHT aftersales type items.
>handle_duration_hoursstring18.5Average handle duration in hours.
>product_idstring1729592969712207011Product ID.
>product_namestringSmart WatchProduct name.
>return_order_countint3230Total number of return orders.
>top_aftersales_type_namestringOnly RefundTop aftersales type returned by TikTok Shop aftersales classification.
>top_type_order_countint3220Number of orders associated with the top aftersales type.
metric_codestringNRRStable metric code. Possible values include NRR, NBFR, OTDR, and AHT.
nbfr_top_product_items[]objectNBFR top product items.
>product_idstring1729592969712207010Product ID.
>product_namestringCotton T-ShirtProduct name.
>return_order_countint328Number of return or refund orders.
>top_reason_order_countint325Number of orders associated with the top return or refund reason.
>top_return_reasons[]stringItem doesn't match descriptionTop return or refund reasons.
nrr_top_product_items[]objectNRR top product items.
>delivered_order_countint32300Total number of delivered orders.
>image_urlstringhttps://example.com/product.jpgProduct image URL.
>negative_order_countint3212Number of orders with negative reviews.
>product_idstring1729592969712207008Product ID.
>product_namestringWireless HeadphonesProduct name.
>top_review_reasons[]stringItem doesn't match descriptionTop negative review reasons.
otdr_logistics_items[]objectOTDR logistics provider items.
>delivered_order_countint321000Total number of delivered orders.
>logistics_providerstringTikTok ShippingLogistics provider name.
>on_time_deliver_order_countint32947Number of orders delivered on time.
>on_time_deliver_ratestring0.947On-time delivery rate as a ratio from 0 to 1.
total_countint32120Total number of available records.

Note: parameter preceded by ">" means the parameter is a subobject.

{
  "aht_aftersales_type_items": {
    "handle_duration_hours": "18.5",
    "product_id": "1729592969712207011",
    "product_name": "Smart Watch",
    "return_order_count": 30,
    "top_aftersales_type_name": "Only Refund",
    "top_type_order_count": 20
  },
  "metric_code": "NRR",
  "nbfr_top_product_items": {
    "product_id": "1729592969712207010",
    "product_name": "Cotton T-Shirt",
    "return_order_count": 8,
    "top_reason_order_count": 5,
    "top_return_reasons": "Item doesn't match description"
  },
  "nrr_top_product_items": {
    "delivered_order_count": 300,
    "image_url": "https://example.com/product.jpg",
    "negative_order_count": 12,
    "product_id": "1729592969712207008",
    "product_name": "Wireless Headphones",
    "top_review_reasons": "Item doesn't match description"
  },
  "otdr_logistics_items": {
    "delivered_order_count": 1000,
    "logistics_provider": "TikTok Shipping",
    "on_time_deliver_order_count": 947,
    "on_time_deliver_rate": "0.947"
  },
  "total_count": 120
}
#