InsightSocial API
TikTok Shop

TikTok Shop Sales API reference

Your first 10 calls are free, no card needed. Pricing and FAQ

Get a free API key
Example request
curl "https://api.insightsocial.app/v1/tiktokshop/sales?query=lip%20gloss" \
  -H "x-api-key: $INSIGHTSOCIAL_API_KEY"
GET
/v1/tiktokshop/sales

Returns, per market, listings found, their units sold added up, an estimated sales figure in local currency, and the top listings by units for a keyword.

Beta. The source's own structure under our naming rules (snake_case keys, string ids, ISO times where the source gives a timestamp), not one of the schema-2 entities. Fields may change. See Schema 2.

Use it to compare a keyword's unit sales across several markets in one call; use search directly when you only need one market's listings.

Metered: 0–80 credits. We reserve the ceiling when the call starts and charge what it actually used when it finishes.

x-api-key<token>

Your key from the dashboard. It starts with isk_.

In: header

Query Parameters

query*string

Product keyword, sent unchanged to each market's search (1-200 characters).

regions?string

Comma-separated markets, up to 8: US, GB, DE, FR, IT, ES, IE, ID, MY, MX, PH, SG, TH, VN, BR, JP. Default US.

top?integer

How many top listings by units to return per market, 1 to 20. Default 5.

Range1 <= value <= 20
dry_run?"1"

Set to 1 to get the price of this call without making it: data.dry_run carries credits_min and credits_max. Nothing is charged.

Value in

  • "1"

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

application/json

application/json

application/json

curl -X GET "https://api.insightsocial.app/v1/tiktokshop/sales?query=string"
{  "success": true,  "platform": "string",  "endpoint": "string",  "schema_version": "2",  "pagination": {    "next_cursor": "string",    "has_more": true,    "page_size": 0,    "stopped_at": "since"  },  "unavailable": [    "string"  ],  "credits_used": 0,  "credits_remaining": 0,  "request_id": "string",  "cached": true,  "idempotent_replay": true,  "charge_reason": "string",  "free_call": true,  "data": {    "property1": null,    "property2": null  }}