logo
languageENdown
menu

TikTok Shop Keyword Search

Give one TikTok Shop search keyword and an expected product count to get matching US listings with shop, price, and sales signals.

Overview

Searching TikTok Shop by keyword is how shoppers actually discover products, but the public listing is hard to capture as a comparable dataset: titles, prices, shops, and rank shift together, and screenshots do not survive analysis. This app turns one search keyword into a structured list of matching United States TikTok Shop products so merchandising, brand, and research teams can see what currently appears for that term.

Unlike opening a product page you already know, keyword search shows which listings occupy the shelf for a brand, category, or campaign phrase. Keeping product identity, listing commercial signals, and shop context in the same row makes it possible to compare terms, watch a brand's presence, or build a candidate set without copying results by hand.

Data notes

Each record is a public product listing associated with the submitted search keyword on TikTok Shop in the United States. Product IDs are de-duplicated within the returned dataset. Matched keyword, Business ID, and Source item preserve the search context and may repeat across many products from the same task. Listings are returned in a stable ascending collection-time order.

Price is the listing amount as a raw string, with no separate currency field. Collect timestamp and Created timestamp are millisecond strings; Collection time has no timezone, so it should not be treated as an absolute cross-region clock. Search rank starts at 0. A No-data marker distinguishes a search item that produced no matching products from ordinary listing rows.

The collection covers public United States search listings only. It does not include other country catalogs, product-detail specifications, comments, or order data.

What a result looks like

Each row is one TikTok Shop product listing associated with the search keyword, or a no-data marker for that search.

Product titleProduct IDPriceShop nameSales countSearch rank
Micro Ingredients Whole Milk Powder, 4lbs, Made in USA172943535848682769341.54Micro Ingredients232840
Binggrae Flavored Milk Drink, Banana Flavor 200ml * 6 Cartons172940885864766336118.26Weee Asian Supermarket67141

Brand name, Product image, Rating count, Shop ID, Collection time, and No-data marker are also available when supplied with the record.

Use cases

  • For keyword merchandising, group rows by Matched keyword and compare Product title, Price, and Shop name to see which listings occupy the search shelf.
  • For competitive tracking, sort by Search rank and use Sales count with Rating count to separate highly visible listings from long-tail products.
  • For brand monitoring, compare Brand name against Shop name and Product ID to see whether branded goods are sold by the brand shop or by other merchants.
  • For sourcing follow-up, keep Product ID, Shop ID, and Product image together so the same listing can be reopened later without repeating the search by hand.

Scope and boundaries

One TikTok Shop search keyword per task with an expected result count from 1 to 300; results are returned in complete batches of 30 and may be rounded up; coverage is limited to public US TikTok Shop search listings.

  • Good for
  • When you need US TikTok Shop products that appear for a brand, product, or category keyword.
  • When you need a structured list that connects each matched listing with its shop, price, rank, and public sales or rating signals.
  • Do not use for
  • When you need full product specifications, comments, or order data from a product detail page.
  • When you need an immediate single-record lookup rather than a background keyword collection task.
  • When you need TikTok Shop listings from regions other than the United States.

Failure handling

Failure and retry behavior declared by the author. We recommend including it in your system prompt when integrating.

  1. 1If no matching records are returned, try a shorter or broader search phrase and resubmit.
  2. 2Keep completed records after a partial success; resubmit the same input after a failed or expired task.
  3. 3Retry later after rate limiting, temporary service unavailability, or a timeout.
  4. 4If authentication fails, verify the API Key configured for the execution environment.

Input

Parameters required to call this App, generated from the input.schema in manifest.json.

FieldBusiness nameTypeRequiredDefaultEnum / ConstraintsExampleDescription
keywordSearch keywordstringYes——milkA brand, product, or category phrase to search on TikTok Shop. Each task accepts one keyword from 1 to 512 characters.
crawl_countExpected result countintegerYes—1–30030Expected number of product listings, from 1 to 300. Results are returned in complete batches of 30, so the actual count may be rounded up. Incomplete batches are still billed as 30 records.

Output

Field structure of a single record, generated from the output.schema in manifest.json.

FieldBusiness nameTypeExampleDescription
biz_idBusiness IDstringmilkBusiness grouping identifier returned with the collected listing; empty when none is returned.
brand_nameBrand namestringMicro IngredientsBrand name shown on the product listing; empty when none is returned.
collect_timeCollect timestampstring1789121807761Collect time as a millisecond timestamp string; empty when none is returned.
crawl_timeCollection timestring2026-09-11T18:16:47Collection time for the listing; the source does not specify a timezone.
created_atCreated timestampstring1789121807761Record created time as a millisecond timestamp string; empty when none is returned.
image_urlProduct imagestringhttps://p16-oec-general-useast5.ttcdn-us.com/tos-useast5-i-omjb5zjo8w-tx/a6be9c262efc4e9e95cce5c93daa4ccf~tplv-fhlh96nyum-crop-webp:2000:2000.webp?dr=12190&t=555f072d&ps=933b5bde&shp=8dbd94bf&shcp=a6e80448&idc=useast5&from=2378011839Main product image URL from the listing; empty when none is returned.
keywordMatched keywordstringmilkSearch keyword associated with this product listing.
page_numResult pagestring1Search result page number as a string; empty when none is returned.
platform_codePlatform codestringtiktokShopSource platform code returned with the listing.
pricePricestring41.54Listing price as a raw string, with no separate currency field; empty when none is returned.
product_idProduct IDstring1729435358486827693Stable unique identifier of the TikTok Shop product.
product_titleProduct titlestringMicro Ingredients Whole Milk Powder, 4lbs, Made in USAProduct title shown on the TikTok Shop listing.
rank_indexSearch rankinteger0Zero-based rank of the product in the search listing; empty when none is returned.
rating_countRating countstring3185Number of ratings as a numeric string; empty when none is returned.
sale_countSales countstring23284Public sales count as a numeric string; empty when none is returned.
shop_idShop IDstring7494949083499694765Unique identifier of the TikTok Shop store; empty when none is returned.
shop_nameShop namestringMicro IngredientsStore name associated with the product listing.
status_codeStatus codestring—Raw product status code; empty when none is returned.
source_itemSource itemstringmilkKeyword item associated with the collection that produced this record.
no_dataNo-data markerbooleanfalseIndicates whether this search item produced no matching products.

Record schema

Output is returned record by record. detail.output.idFieldHint

output.schema
{
  "type": "object",
  "properties": {
    "biz_id": {
      "type": "string",
      "title": "Business ID",
      "description": "Business grouping identifier returned with the collected listing; empty when none is returned.",
      "prefill": "milk"
    },
    "brand_name": {
      "type": "string",
      "title": "Brand name",
      "description": "Brand name shown on the product listing; empty when none is returned.",
      "prefill": "Micro Ingredients"
    },
    "collect_time": {
      "type": "string",
      "title": "Collect timestamp",
      "description": "Collect time as a millisecond timestamp string; empty when none is returned.",
      "prefill": "1789121807761"
    },
    "crawl_time": {
      "type": "string",
      "title": "Collection time",
      "description": "Collection time for the listing; the source does not specify a timezone.",
      "prefill": "2026-09-11T18:16:47"
    },
    "created_at": {
      "type": "string",
      "title": "Created timestamp",
      "description": "Record created time as a millisecond timestamp string; empty when none is returned.",
      "prefill": "1789121807761"
    },
    "image_url": {
      "type": "string",
      "title": "Product image",
      "description": "Main product image URL from the listing; empty when none is returned.",
      "prefill": "https://p16-oec-general-useast5.ttcdn-us.com/tos-useast5-i-omjb5zjo8w-tx/a6be9c262efc4e9e95cce5c93daa4ccf~tplv-fhlh96nyum-crop-webp:2000:2000.webp?dr=12190&t=555f072d&ps=933b5bde&shp=8dbd94bf&shcp=a6e80448&idc=useast5&from=2378011839"
    },
    "keyword": {
      "type": "string",
      "title": "Matched keyword",
      "description": "Search keyword associated with this product listing.",
      "prefill": "milk"
    },
    "page_num": {
      "type": "string",
      "title": "Result page",
      "description": "Search result page number as a string; empty when none is returned.",
      "prefill": "1"
    },
    "platform_code": {
      "type": "string",
      "title": "Platform code",
      "description": "Source platform code returned with the listing.",
      "prefill": "tiktokShop"
    },
    "price": {
      "type": "string",
      "title": "Price",
      "description": "Listing price as a raw string, with no separate currency field; empty when none is returned.",
      "prefill": "41.54"
    },
    "product_id": {
      "type": "string",
      "title": "Product ID",
      "description": "Stable unique identifier of the TikTok Shop product.",
      "prefill": "1729435358486827693"
    },
    "product_title": {
      "type": "string",
      "title": "Product title",
      "description": "Product title shown on the TikTok Shop listing.",
      "prefill": "Micro Ingredients Whole Milk Powder, 4lbs, Made in USA"
    },
    "rank_index": {
      "type": "integer",
      "title": "Search rank",
      "description": "Zero-based rank of the product in the search listing; empty when none is returned.",
      "prefill": 0
    },
    "rating_count": {
      "type": "string",
      "title": "Rating count",
      "description": "Number of ratings as a numeric string; empty when none is returned.",
      "prefill": "3185"
    },
    "sale_count": {
      "type": "string",
      "title": "Sales count",
      "description": "Public sales count as a numeric string; empty when none is returned.",
      "prefill": "23284"
    },
    "shop_id": {
      "type": "string",
      "title": "Shop ID",
      "description": "Unique identifier of the TikTok Shop store; empty when none is returned.",
      "prefill": "7494949083499694765"
    },
    "shop_name": {
      "type": "string",
      "title": "Shop name",
      "description": "Store name associated with the product listing.",
      "prefill": "Micro Ingredients"
    },
    "status_code": {
      "type": "string",
      "title": "Status code",
      "description": "Raw product status code; empty when none is returned."
    },
    "source_item": {
      "type": "string",
      "title": "Source item",
      "description": "Keyword item associated with the collection that produced this record.",
      "prefill": "milk"
    },
    "no_data": {
      "type": "boolean",
      "title": "No-data marker",
      "description": "Indicates whether this search item produced no matching products.",
      "prefill": false
    }
  },
  "required": [],
  "additionalProperties": false
}

Integration

This App can be integrated via MCP, API, SDK, or file export. All channels share the same capabilities and pricing. Every request authenticates with the Authorization: Bearer header using an API key (long-lived, created in the Data Hub Console); MCP clients can also sign in with OAuth, no key required. More options such as CLI and Skill are on the way.

With the MCP (Model Context Protocol), you can call this App directly from AI clients like Claude and Cursor. Pick your client and auth mode, then copy the config below.

Client config

Replace the value after Bearer with your long-lived API key. Works in any client, CI, or headless environment.

mcpServers config
{
  "mcpServers": {
    "super_ig__tiktok-shop-keyword-list": {
      "type": "http",
      "url": "https://mcp-v2.octoparse.com?pin=super_ig/tiktok-shop-keyword-list",
      "headers": { "Authorization": "Bearer <YOUR_API_KEY>" }
    }
  }
}

Let AI set it up for you

Don't want to edit configs by hand? Copy the install prompt and paste it into any AI client. It will complete the setup its own way. (The prompt asks the AI to request your API key from you, so credentials never end up in chat history or shared configs.)

detail.access.mcp.composeHint

Pricing

30 returned records

Charged by the number of records successfully returned. Failed runs are not charged. Billed in units of 30 record; any partial unit is rounded up to 30 record.

$0.005/ 30 record
Per task submitted

Charged once per submitted run, regardless of how many records are returned.

$0.0001/ run

Multiple billing events accumulate independently. See each item for details. Failed runs are not charged.

View credits

Try it now

Fill in the parameters and run. Results come from a real call.

Example
Parameters are validated against input.schema before submission
Please fill in the required parameters first
From $0.005 / 30 record