Rising on TikTokRisingSee all trendsAll trends

Source: TikTok Creator Search Insights via TokConnect, 28 October 2026. Search counts are TikTok's figure for the last 7 days; the arrow compares the latest reading with the average of the previous six days. TikTok Shop items: estimated revenue, TikTok Shop US, 30 days to 18 October 2026, growth against the 30 days before.

Research your niche
DevelopersAPIDemand and keywords
API reference

Demand and keywords

What people search for on TikTok, from TikTok's own Creator Search Insights, plus autocomplete and keyword ideas from TikTok and TikTok Shop.

  • 16 routes
  • 1 credit per call
  • Base URL https://api.tokconnect.com/v1

Find TikTok search topics

Finds what people search on TikTok (Creator Search Insights). Each topic has queryId, searchVolume (TikTok's 7-day popularity figure, never a monthly count), videoCount (0 = content gap) and a daily trend. Use for demand, content gaps and trend research. Pass a topic's queryId to demand_topic for charts, audience and related searches. Example: {"keyword":"protein snacks"} or {"method":"feed","channel":"content_gap"}.

GET/v1/searches

Topics matching keyword

  • 1 credit per call
  • Paged

Parameters

  • keywordstring

    method=search: phrase to match, e.g. 'bicep workouts'.

  • limitinteger

    Results per page. Max 20. Values above a method's maximum are lowered and reported in notes.

3 more optional parameters
  • cursorstring

    Paging: pass the next value from the previous response unchanged. Omit on the first page.

  • detailstring

    compact (default) returns the useful fields; full adds the raw upstream payload (large).

    Defaultcompact   One ofcompactfull

  • languagestring

    method=search or feed: language code from reference method=csi_languages, e.g. en.

Use it in Claude or ChatGPT

Connect https://mcp.tokconnect.com/mcp and your AI calls this as the demand_find_topics tool with method: search. Same data, same credit. MCP setup

MCP tool call
{
  "tool": "demand_find_topics",
  "arguments": {
    "method": "search",
    "keyword": "lip oil",
    "limit": 3
  }
}

Request

curl "https://api.tokconnect.com/v1/searches?keyword=lip%20oil&limit=3" \
  -H "X-API-Key: $TOKCONNECT_API_KEY"

Response

Example response
{
  "data": {
    "channel": "search",
    "hasMore": true,
    "next": "eyJvZmZzZXQiOjN9",
    "tab": "SEARCH",
    "topics": [
      {
        "category": "Fashion > Fashion Tutorials",
        "popularity": 77,
        "queryId": "7661799877281595413",
        "queryText": "what to look for in a lip oil",
        "searchVolume": 384507,
        "trend7d": [
          286756,
          201899,
          179210
        ],
        "videoCount": 0
      },
      {
        "category": "Fashion > Fashion Products > Beauty and Skin Care Products > Beauty Products",
        "popularity": 72,
        "queryId": "41561603",
        "queryText": "Best lip oil",
        "searchVolume": 189105,
        "trend7d": [
          185907,
          210094,
          137831
        ],
        "videoCount": 1113
      },
      {
        "category": "Fashion > Fashion Products > Beauty and Skin Care Products > Beauty Products",
        "popularity": 40,
        "queryId": "7411340654124498950",
        "queryText": "lip oils for lips",
        "searchVolume": 3799,
        "trend7d": [
          4099,
          3499,
          2999
        ],
        "videoCount": 1168
      }
    ]
  },
  "meta": {
    "credits_charged": 1,
    "credits_remaining": 7906,
    "request_id": "req_3f9c2a1b7d4e"
  },
  "next_cursor": "eyJvZmZzZXQiOjN9"
}
Response fields
  • dataobjectThe tool's result. Compact by default; pass detail=full for the complete record.
  • data.channelstring
  • data.hasMoreboolean
  • data.nextstring
  • data.tabstring
  • data.topicsarray
  • data.topics[].categorystring
  • data.topics[].popularityinteger
  • data.topics[].queryIdstring
  • data.topics[].queryTextstring
  • data.topics[].searchVolumeinteger
  • data.topics[].trend7darray
  • data.topics[].videoCountinteger
  • metaobject
  • meta.credits_chargedinteger1 on success.
  • meta.credits_remainingintegerCredits left this period, when known.
  • meta.request_idstringQuote it to support.
  • next_cursorstringPresent when there is another page: pass it back as cursor.

Errors

  • 400
  • 401
  • 402
  • 403
  • 404
  • 429
  • 502
  • 503
Try it Live call, 1 credit
More parameters (3)

GET/v1/searches/feed

A ready-made list (channel)

  • 1 credit per call
  • Paged

Parameters

  • limitinteger

    Results per page. Max 20. Values above a method's maximum are lowered and reported in notes.

4 more optional parameters
  • channelstring

    method=feed: which list. suggested, content_gap (high demand, few videos), or a category.

    One ofsuggestedcontent_gaplifestylefashionfoodsportstourismgamingscience

  • cursorstring

    Paging: pass the next value from the previous response unchanged. Omit on the first page.

  • detailstring

    compact (default) returns the useful fields; full adds the raw upstream payload (large).

    Defaultcompact   One ofcompactfull

  • languagestring

    method=search or feed: language code from reference method=csi_languages, e.g. en.

Use it in Claude or ChatGPT

Connect https://mcp.tokconnect.com/mcp and your AI calls this as the demand_find_topics tool with method: feed. Same data, same credit. MCP setup

MCP tool call
{
  "tool": "demand_find_topics",
  "arguments": {
    "method": "feed",
    "limit": "3"
  }
}

Request

curl "https://api.tokconnect.com/v1/searches/feed?limit=3" \
  -H "X-API-Key: $TOKCONNECT_API_KEY"

Response

Example response
{
  "data": {
    "hasMore": true,
    "next": "eyJvZmZzZXQiOjN9",
    "tab": "ALL",
    "topics": [
      {
        "category": "TikTok's Featured Content > Others TikTok and Video Contents",
        "popularity": 2,
        "queryId": "7637721127158022164",
        "queryText": "views and likes",
        "searchVolume": 99,
        "trend7d": [
          99,
          299,
          99
        ],
        "videoCount": 194769
      },
      {
        "category": "Local Life > Leisure and Entertainment > Other Leisure and Entertainment Venues",
        "popularity": 93,
        "queryId": "7693004027847507989",
        "queryText": "lucki complex con",
        "searchVolume": 34704706,
        "trend7d": [
          0,
          0,
          0
        ],
        "videoCount": 228448
      },
      {
        "category": "TikTok's Featured Content > Stories/Posting Captions",
        "popularity": 72,
        "queryId": "7478520405142011910",
        "queryText": "#relate",
        "searchVolume": 180718,
        "trend7d": [
          3000,
          700,
          54105
        ],
        "videoCount": 166276
      }
    ]
  },
  "meta": {
    "credits_charged": 1,
    "credits_remaining": 7906,
    "request_id": "req_3f9c2a1b7d4e"
  },
  "next_cursor": "eyJvZmZzZXQiOjN9"
}
Response fields
  • dataobjectThe tool's result. Compact by default; pass detail=full for the complete record.
  • data.hasMoreboolean
  • data.nextstring
  • data.tabstring
  • data.topicsarray
  • data.topics[].categorystring
  • data.topics[].popularityinteger
  • data.topics[].queryIdstring
  • data.topics[].queryTextstring
  • data.topics[].searchVolumeinteger
  • data.topics[].trend7darray
  • data.topics[].videoCountinteger
  • metaobject
  • meta.credits_chargedinteger1 on success.
  • meta.credits_remainingintegerCredits left this period, when known.
  • meta.request_idstringQuote it to support.
  • next_cursorstringPresent when there is another page: pass it back as cursor.

Errors

  • 400
  • 401
  • 402
  • 403
  • 404
  • 429
  • 502
  • 503
Try it Live call, 1 credit
More parameters (4)

One TikTok search topic

Everything about one search topic (id = queryId from demand_find_topics): detail, daily popularity chart, searcher demographics, related searches, TikTok's content guidance and matching videos. Popularity values are TikTok's readings: never add days together or call them monthly searches. Example: {"id":"7261...","method":"popularity","days":"180","countries":["US"]}.

GET/v1/searches/{id}

searchVolume, trend, category, top countries

  • 1 credit per call

Parameters

1 more optional parameter
  • detailstring

    compact (default) returns the useful fields; full adds the raw upstream payload (large).

    Defaultcompact   One ofcompactfull

Use it in Claude or ChatGPT

Connect https://mcp.tokconnect.com/mcp and your AI calls this as the demand_topic tool with method: detail. Same data, same credit. MCP setup

MCP tool call
{
  "tool": "demand_topic",
  "arguments": {
    "method": "detail",
    "id": "7637721127158022164"
  }
}

Request

curl "https://api.tokconnect.com/v1/searches/7637721127158022164" \
  -H "X-API-Key: $TOKCONNECT_API_KEY"

Response

Example response
{
  "data": {
    "topCountries": [
      {
        "country_code": "PH",
        "country_name": "Philippines"
      },
      {
        "country_code": "ID",
        "country_name": "Indonesia"
      },
      {
        "country_code": "NG",
        "country_name": "Nigeria"
      }
    ],
    "topic": {
      "category": "TikTok's Featured Content > Others TikTok and Video Contents",
      "popularity": 2,
      "queryId": "7637721127158022164",
      "queryText": "views and likes",
      "searchVolume": 99,
      "trend7d": [
        99,
        299,
        99
      ],
      "videoCount": 194769
    },
    "usesInsightsVideoEndpoint": false
  },
  "meta": {
    "credits_charged": 1,
    "credits_remaining": 7906,
    "request_id": "req_3f9c2a1b7d4e"
  }
}
Response fields
  • dataobjectThe tool's result. Compact by default; pass detail=full for the complete record.
  • data.topCountriesarray
  • data.topCountries[].country_codestring
  • data.topCountries[].country_namestring
  • data.topicobject
  • data.topic.categorystring
  • data.topic.popularityinteger
  • data.topic.queryIdstring
  • data.topic.queryTextstring
  • data.topic.searchVolumeinteger
  • data.topic.trend7darray
  • data.topic.videoCountinteger
  • data.usesInsightsVideoEndpointboolean
  • metaobject
  • meta.credits_chargedinteger1 on success.
  • meta.credits_remainingintegerCredits left this period, when known.
  • meta.request_idstringQuote it to support.
  • next_cursorstringPresent when there is another page: pass it back as cursor.

Errors

  • 400
  • 401
  • 402
  • 403
  • 404
  • 429
  • 502
  • 503
Try it Live call, 1 credit
More parameters (1)

GET/v1/searches/{id}/audience

Age, gender and location of searchers

  • 1 credit per call

Parameters

2 more optional parameters
  • daysstring

    method=popularity or audience: window in days (default 30).

    One of73060180

  • detailstring

    compact (default) returns the useful fields; full adds the raw upstream payload (large).

    Defaultcompact   One ofcompactfull

Use it in Claude or ChatGPT

Connect https://mcp.tokconnect.com/mcp and your AI calls this as the demand_topic tool with method: audience. Same data, same credit. MCP setup

MCP tool call
{
  "tool": "demand_topic",
  "arguments": {
    "method": "audience",
    "id": "7637721127158022164"
  }
}

Request

curl "https://api.tokconnect.com/v1/searches/7637721127158022164/audience" \
  -H "X-API-Key: $TOKCONNECT_API_KEY"

Response

Example response
{
  "data": {
    "age": [
      {
        "category": "total",
        "popularity": 96667
      },
      {
        "category": "25-34",
        "popularity": 32190
      },
      {
        "category": "18-24",
        "popularity": 26891
      }
    ],
    "gender": [
      {
        "category": "total",
        "popularity": 96669
      },
      {
        "category": "unknown",
        "popularity": 50284
      },
      {
        "category": "male",
        "popularity": 24492
      }
    ],
    "location": [
      {
        "category": "total",
        "popularity": 96586
      },
      {
        "category": "Indonesia",
        "popularity": 12896
      },
      {
        "category": "Pakistan",
        "popularity": 10696
      }
    ],
    "summary": {
      "age": "25-34",
      "gender": "unknown",
      "location": "Indonesia"
    }
  },
  "meta": {
    "credits_charged": 1,
    "credits_remaining": 7906,
    "request_id": "req_3f9c2a1b7d4e"
  }
}
Response fields
  • dataobjectThe tool's result. Compact by default; pass detail=full for the complete record.
  • data.agearray
  • data.age[].categorystring
  • data.age[].popularityinteger
  • data.genderarray
  • data.gender[].categorystring
  • data.gender[].popularityinteger
  • data.locationarray
  • data.location[].categorystring
  • data.location[].popularityinteger
  • data.summaryobject
  • data.summary.agestring
  • data.summary.genderstring
  • data.summary.locationstring
  • metaobject
  • meta.credits_chargedinteger1 on success.
  • meta.credits_remainingintegerCredits left this period, when known.
  • meta.request_idstringQuote it to support.
  • next_cursorstringPresent when there is another page: pass it back as cursor.

Errors

  • 400
  • 401
  • 402
  • 403
  • 404
  • 429
  • 502
  • 503
Try it Live call, 1 credit
More parameters (2)

GET/v1/searches/{id}/guidance

TikTok's suggested hooks, hashtags and outlines (often unavailable)

  • 1 credit per call

Parameters

1 more optional parameter
  • detailstring

    compact (default) returns the useful fields; full adds the raw upstream payload (large).

    Defaultcompact   One ofcompactfull

Use it in Claude or ChatGPT

Connect https://mcp.tokconnect.com/mcp and your AI calls this as the demand_topic tool with method: guidance. Same data, same credit. MCP setup

MCP tool call
{
  "tool": "demand_topic",
  "arguments": {
    "method": "guidance",
    "id": "7637721127158022164"
  }
}

Request

curl "https://api.tokconnect.com/v1/searches/7637721127158022164/guidance" \
  -H "X-API-Key: $TOKCONNECT_API_KEY"

Response

Example response
{
  "data": {
    "available": false,
    "message": "TikTok reports that content guidance is not generated for this CSI topic yet. No guidance is available in this response."
  },
  "meta": {
    "credits_charged": 1,
    "credits_remaining": 7906,
    "request_id": "req_3f9c2a1b7d4e"
  }
}
Response fields
  • dataobjectThe tool's result. Compact by default; pass detail=full for the complete record.
  • data.availableboolean
  • data.messagestring
  • metaobject
  • meta.credits_chargedinteger1 on success.
  • meta.credits_remainingintegerCredits left this period, when known.
  • meta.request_idstringQuote it to support.
  • next_cursorstringPresent when there is another page: pass it back as cursor.

Errors

  • 400
  • 401
  • 402
  • 403
  • 404
  • 429
  • 502
  • 503
Try it Live call, 1 credit
More parameters (1)

GET/v1/searches/{id}/popularity

Daily popularity chart, worldwide or per country

  • 1 credit per call

Parameters

3 more optional parameters
  • countriesarray of string

    method=popularity: country codes to break out, e.g. "US","GB". Omit for worldwide.

  • daysstring

    method=popularity or audience: window in days (default 30).

    One of73060180

  • detailstring

    compact (default) returns the useful fields; full adds the raw upstream payload (large).

    Defaultcompact   One ofcompactfull

Use it in Claude or ChatGPT

Connect https://mcp.tokconnect.com/mcp and your AI calls this as the demand_topic tool with method: popularity. Same data, same credit. MCP setup

MCP tool call
{
  "tool": "demand_topic",
  "arguments": {
    "method": "popularity",
    "id": "7637721127158022164"
  }
}

Request

curl "https://api.tokconnect.com/v1/searches/7637721127158022164/popularity" \
  -H "X-API-Key: $TOKCONNECT_API_KEY"

Response

Example response
{
  "data": {
    "series": [
      {
        "country": "global",
        "points": [
          {
            "date": "2026-09-30",
            "popularity": 1481
          },
          {
            "date": "2026-10-01",
            "popularity": 1093
          },
          {
            "date": "2026-10-02",
            "popularity": 701
          }
        ]
      }
    ],
    "windowDays": 30
  },
  "meta": {
    "credits_charged": 1,
    "credits_remaining": 7906,
    "request_id": "req_3f9c2a1b7d4e"
  }
}
Response fields
  • dataobjectThe tool's result. Compact by default; pass detail=full for the complete record.
  • data.seriesarray
  • data.series[].countrystring
  • data.series[].pointsarray
  • data.series[].points[].datestring
  • data.series[].points[].popularityinteger
  • data.windowDaysinteger
  • metaobject
  • meta.credits_chargedinteger1 on success.
  • meta.credits_remainingintegerCredits left this period, when known.
  • meta.request_idstringQuote it to support.
  • next_cursorstringPresent when there is another page: pass it back as cursor.

Errors

  • 400
  • 401
  • 402
  • 403
  • 404
  • 429
  • 502
  • 503
Try it Live call, 1 credit
More parameters (3)

GET/v1/searches/{id}/videos

Videos TikTok shows for the topic

  • 1 credit per call
  • Paged

Parameters

  • idstringPathRequired

    queryId from demand_find_topics. Not a video id or keyword.

  • limitinteger

    Results per page. method=related max 20; method=videos max 20. Values above a method's maximum are lowered and reported in notes.

2 more optional parameters
  • cursorstring

    Paging: pass the next value from the previous response unchanged. Omit on the first page.

  • detailstring

    compact (default) returns the useful fields; full adds the raw upstream payload (large).

    Defaultcompact   One ofcompactfull

Use it in Claude or ChatGPT

Connect https://mcp.tokconnect.com/mcp and your AI calls this as the demand_topic tool with method: videos. Same data, same credit. MCP setup

MCP tool call
{
  "tool": "demand_topic",
  "arguments": {
    "method": "videos",
    "id": "7637721127158022164",
    "limit": "3"
  }
}

Request

curl "https://api.tokconnect.com/v1/searches/7637721127158022164/videos?limit=3" \
  -H "X-API-Key: $TOKCONNECT_API_KEY"

Response

Example response
{
  "data": {
    "hasMore": true,
    "next": "eyJvZmZzZXQiOjN9",
    "topicQueryId": "7637721127158022164",
    "topicQueryText": "views and likes",
    "videos": [
      {
        "caption": "going viral does NOT have to be super complicated!! #iwanttogoviral #howtogoviralontiktok #howtogoviraltips #tiktokgrowth",
        "comments": 55778,
        "creator": {
          "followers": 18459,
          "handle": "thelifeofjftb",
          "id": "6895909988976395270",
          "nickname": "jenny",
          "secUid": "MS4wLjABAAAAdhjwJHeb-b3JtDSrR-E8hiKgVLnfHukcHXlpylkukO23nDO8Pgib43DTfy9kayiV"
        },
        "durationSec": 89.634,
        "hashtags": [
          {
            "id": "85581100",
            "name": "iwanttogoviral"
          },
          {
            "id": "1645041228246018",
            "name": "howtogoviralontiktok"
          },
          {
            "id": "1661640432713733",
            "name": "howtogoviraltips"
          }
        ],
        "id": "7516402158825196846",
        "language": "en",
        "likes": 200636,
        "posted": "2025-06-16T04:39:53Z",
        "saves": 78023,
        "shares": 75002,
        "sound": {
          "author": "jenny",
          "id": "7516402224461892395",
          "original": true,
          "title": "original sound - thelifeofjftb"
        },
        "url": "https://www.tiktok.com/@thelifeofjftb/video/7516402158825196846",
        "views": 2086466
      },
      {
        "caption": "The views may be low but unfortunately I’ve already decided I’m famous 😭😂 #TikTokHumor #SmallCreator #MainCharacterEnergy #ForYou #KeepPosting",
        "comments": 8422,
        "creator": {
          "followers": 2868,
          "handle": "thehouseofsamuel",
          "id": "7605020458355196941",
          "nickname": "The House Of Samuel",
          "secUid": "MS4wLjABAAAAoJkre_H8s5vnyPV8BRX1hTk1-vrY-VkKYFvBTKCAh3Q2vlpwN80nZL0hHlhtldNA"
        },
        "durationSec": 6.547,
        "hashtags": [
          {
            "id": "1589764631152642",
            "name": "tiktokhumor"
          },
          {
            "id": "1609436969656325",
            "name": "smallcreator"
          },
          {
            "id": "1665817412595717",
            "name": "maincharacterenergy"
          }
        ],
        "id": "7693916067256749343",
        "language": "en",
        "likes": 157523,
        "posted": "2026-10-07T13:24:33Z",
        "saves": 22839,
        "shares": 8585,
        "sound": {
          "author": "AngieBLoveee🇺🇸",
          "id": "7414631646038625066",
          "original": true,
          "title": "Imma keep posting"
        },
        "url": "https://www.tiktok.com/@thehouseofsamuel/video/7693916067256749343",
        "views": 1088039
      },
      {
        "caption": "Here’s how to use the new algorithm to get more likes and views on your posts! #creatorsearchinsights  #howtogoviral",
        "comments": 283,
        "creator": {
          "followers": 154056,
          "handle": "beckett_cj",
          "id": "7471419225988236334",
          "nickname": "Beckett CJ",
          "secUid": "MS4wLjABAAAAwnFwtUWXMkbHwZB7aKcCFKjdg6eGpv7h3mrjqad3HMrtjm2zXL0DZ4IHUB0cXWLp"
        },
        "durationSec": 78.668,
        "hashtags": [
          {
            "id": "7340824418278440993",
            "name": "creatorsearchinsights"
          },
          {
            "id": "1620762388052997",
            "name": "howtogoviral"
          }
        ],
        "id": "7623207520521194765",
        "language": "en",
        "likes": 2068,
        "posted": "2026-03-31T00:18:50Z",
        "saves": 979,
        "shares": 332,
        "sound": {
          "author": "Beckett CJ",
          "id": "7623207565551209229",
          "original": true,
          "title": "original sound - beckett_cj"
        },
  …
Response fields
  • dataobjectThe tool's result. Compact by default; pass detail=full for the complete record.
  • data.hasMoreboolean
  • data.nextstring
  • data.topicQueryIdstring
  • data.topicQueryTextstring
  • data.videosarray
  • data.videos[].captionstring
  • data.videos[].commentsinteger
  • data.videos[].creatorobject
  • data.videos[].creator.followersinteger
  • data.videos[].creator.handlestring
  • data.videos[].creator.idstring
  • data.videos[].creator.nicknamestring
  • data.videos[].creator.secUidstring
  • data.videos[].durationSecnumber
  • data.videos[].hashtagsarray
  • data.videos[].hashtags[].idstring
  • data.videos[].hashtags[].namestring
  • data.videos[].idstring
  • data.videos[].languagestring
  • data.videos[].likesinteger
  • data.videos[].postedstring
  • data.videos[].savesinteger
  • data.videos[].sharesinteger
  • data.videos[].soundobject
  • data.videos[].sound.authorstring
  • data.videos[].sound.idstring
  • data.videos[].sound.originalboolean
  • data.videos[].sound.titlestring
  • data.videos[].urlstring
  • data.videos[].viewsinteger
  • metaobject
  • meta.credits_chargedinteger1 on success.
  • meta.credits_remainingintegerCredits left this period, when known.
  • meta.request_idstringQuote it to support.
  • next_cursorstringPresent when there is another page: pass it back as cursor.

Errors

  • 400
  • 401
  • 402
  • 403
  • 404
  • 429
  • 502
  • 503
Try it Live call, 1 credit
More parameters (2)

Keyword suggestions

Autocomplete and keyword ideas from TikTok and TikTok Shop. method=signals adds TikTok's predicted click-through and a shopping-intent flag per phrase. These rank phrases; they are not search volume (use demand_find_topics for volume). Example: {"keyword":"matcha","method":"signals"}.

GET/v1/keywords/accounts

Account (@handle) suggestions

  • 1 credit per call

Parameters

  • keywordstring

    Seed phrase. Not needed for method=trending.

  • limitinteger

    Results per page. tiktok/accounts max 50, signals max 20, trending max 30, ad_library max 20. Values above a method's maximum are lowered and reported in notes.

1 more optional parameter
  • detailstring

    compact (default) returns the useful fields; full adds the raw upstream payload (large).

    Defaultcompact   One ofcompactfull

Use it in Claude or ChatGPT

Connect https://mcp.tokconnect.com/mcp and your AI calls this as the demand_keywords tool with method: accounts. Same data, same credit. MCP setup

MCP tool call
{
  "tool": "demand_keywords",
  "arguments": {
    "method": "accounts",
    "keyword": "lip oil",
    "limit": 3
  }
}

Request

curl "https://api.tokconnect.com/v1/keywords/accounts?keyword=lip%20oil&limit=3" \
  -H "X-API-Key: $TOKCONNECT_API_KEY"

Response

Example response
{
  "data": {
    "suggestions": [
      "lip oil",
      "Lip Oil",
      "Lip oil"
    ]
  },
  "meta": {
    "credits_charged": 1,
    "credits_remaining": 7906,
    "request_id": "req_3f9c2a1b7d4e"
  }
}
Response fields
  • dataobjectThe tool's result. Compact by default; pass detail=full for the complete record.
  • data.suggestionsarray
  • metaobject
  • meta.credits_chargedinteger1 on success.
  • meta.credits_remainingintegerCredits left this period, when known.
  • meta.request_idstringQuote it to support.
  • next_cursorstringPresent when there is another page: pass it back as cursor.

Errors

  • 400
  • 401
  • 402
  • 403
  • 404
  • 429
  • 502
  • 503
Try it Live call, 1 credit
More parameters (1)

GET/v1/keywords/ad-library

EU/UK Ad Library advertiser and keyword autocomplete

  • 1 credit per call
  • 17 markets

Parameters

  • keywordstring

    Seed phrase. Not needed for method=trending.

  • limitinteger

    Results per page. tiktok/accounts max 50, signals max 20, trending max 30, ad_library max 20. Values above a method's maximum are lowered and reported in notes.

3 more optional parameters
  • detailstring

    compact (default) returns the useful fields; full adds the raw upstream payload (large).

    Defaultcompact   One ofcompactfull

  • regionstring

    method=ad_library: 2-letter EU/UK country from reference method=ad_regions. Default DE.

  • suggest_typestring

    method=ad_library: TikTok's suggestion type, default 1 (advertisers and keywords).

Use it in Claude or ChatGPT

Connect https://mcp.tokconnect.com/mcp and your AI calls this as the demand_keywords tool with method: ad_library. Same data, same credit. MCP setup

MCP tool call
{
  "tool": "demand_keywords",
  "arguments": {
    "method": "ad_library",
    "keyword": "lip oil",
    "limit": 3
  }
}

Request

curl "https://api.tokconnect.com/v1/keywords/ad-library?keyword=lip%20oil&limit=3" \
  -H "X-API-Key: $TOKCONNECT_API_KEY"

Response

Example response
{
  "data": {
    "advertisers": [],
    "code": 0,
    "keywords": []
  },
  "meta": {
    "credits_charged": 1,
    "credits_remaining": 7906,
    "request_id": "req_3f9c2a1b7d4e"
  }
}
Response fields
  • dataobjectThe tool's result. Compact by default; pass detail=full for the complete record.
  • data.advertisersarray
  • data.codeinteger
  • data.keywordsarray
  • metaobject
  • meta.credits_chargedinteger1 on success.
  • meta.credits_remainingintegerCredits left this period, when known.
  • meta.request_idstringQuote it to support.
  • next_cursorstringPresent when there is another page: pass it back as cursor.

Errors

  • 400
  • 401
  • 402
  • 403
  • 404
  • 429
  • 502
  • 503
Try it Live call, 1 credit
More parameters (3)

GET/v1/keywords/shop

TikTok Shop search autocomplete

  • 1 credit per call

Parameters

  • keywordstring

    Seed phrase. Not needed for method=trending.

1 more optional parameter
  • detailstring

    compact (default) returns the useful fields; full adds the raw upstream payload (large).

    Defaultcompact   One ofcompactfull

Use it in Claude or ChatGPT

Connect https://mcp.tokconnect.com/mcp and your AI calls this as the demand_keywords tool with method: shop. Same data, same credit. MCP setup

MCP tool call
{
  "tool": "demand_keywords",
  "arguments": {
    "method": "shop",
    "keyword": "lip oil"
  }
}

Request

curl "https://api.tokconnect.com/v1/keywords/shop?keyword=lip%20oil" \
  -H "X-API-Key: $TOKCONNECT_API_KEY"

Response

Example response
{
  "data": {
    "page": "suggest",
    "suggestions": [
      "lip oil hydration",
      "lip oil stain",
      "lip oil gloss"
    ]
  },
  "meta": {
    "credits_charged": 1,
    "credits_remaining": 7906,
    "request_id": "req_3f9c2a1b7d4e"
  }
}
Response fields
  • dataobjectThe tool's result. Compact by default; pass detail=full for the complete record.
  • data.pagestring
  • data.suggestionsarray
  • metaobject
  • meta.credits_chargedinteger1 on success.
  • meta.credits_remainingintegerCredits left this period, when known.
  • meta.request_idstringQuote it to support.
  • next_cursorstringPresent when there is another page: pass it back as cursor.

Errors

  • 400
  • 401
  • 402
  • 403
  • 404
  • 429
  • 502
  • 503
Try it Live call, 1 credit
More parameters (1)

GET/v1/keywords/signals

Autocomplete with click-through and shopping-intent signals

  • 1 credit per call

Parameters

  • keywordstring

    Seed phrase. Not needed for method=trending.

  • limitinteger

    Results per page. tiktok/accounts max 50, signals max 20, trending max 30, ad_library max 20. Values above a method's maximum are lowered and reported in notes.

1 more optional parameter
  • detailstring

    compact (default) returns the useful fields; full adds the raw upstream payload (large).

    Defaultcompact   One ofcompactfull

Use it in Claude or ChatGPT

Connect https://mcp.tokconnect.com/mcp and your AI calls this as the demand_keywords tool with method: signals. Same data, same credit. MCP setup

MCP tool call
{
  "tool": "demand_keywords",
  "arguments": {
    "method": "signals",
    "keyword": "lip oil",
    "limit": 3
  }
}

Request

curl "https://api.tokconnect.com/v1/keywords/signals?keyword=lip%20oil&limit=3" \
  -H "X-API-Key: $TOKCONNECT_API_KEY"

Response

Example response
{
  "data": {
    "keyword": "lip oil",
    "suggestions": [
      {
        "ecomIntent": 2,
        "predictedCtr": 0.026337544,
        "text": "lip oil"
      },
      {
        "ecomIntent": 1,
        "predictedCtr": 0.0067250463,
        "text": "lip oil vs lip gloss"
      },
      {
        "ecomIntent": 2,
        "predictedCtr": 0.0041258996,
        "text": "Lip oil essence"
      }
    ]
  },
  "meta": {
    "credits_charged": 1,
    "credits_remaining": 7906,
    "request_id": "req_3f9c2a1b7d4e"
  }
}
Response fields
  • dataobjectThe tool's result. Compact by default; pass detail=full for the complete record.
  • data.keywordstring
  • data.suggestionsarray
  • data.suggestions[].ecomIntentinteger
  • data.suggestions[].predictedCtrnumber
  • data.suggestions[].textstring
  • metaobject
  • meta.credits_chargedinteger1 on success.
  • meta.credits_remainingintegerCredits left this period, when known.
  • meta.request_idstringQuote it to support.
  • next_cursorstringPresent when there is another page: pass it back as cursor.

Errors

  • 400
  • 401
  • 402
  • 403
  • 404
  • 429
  • 502
  • 503
Try it Live call, 1 credit
More parameters (1)

GET/v1/keywords/suggest

TikTok search autocomplete

  • 1 credit per call

Parameters

  • keywordstring

    Seed phrase. Not needed for method=trending.

  • limitinteger

    Results per page. tiktok/accounts max 50, signals max 20, trending max 30, ad_library max 20. Values above a method's maximum are lowered and reported in notes.

1 more optional parameter
  • detailstring

    compact (default) returns the useful fields; full adds the raw upstream payload (large).

    Defaultcompact   One ofcompactfull

Use it in Claude or ChatGPT

Connect https://mcp.tokconnect.com/mcp and your AI calls this as the demand_keywords tool with method: tiktok. Same data, same credit. MCP setup

MCP tool call
{
  "tool": "demand_keywords",
  "arguments": {
    "method": "tiktok",
    "keyword": "lip oil",
    "limit": 3
  }
}

Request

curl "https://api.tokconnect.com/v1/keywords/suggest?keyword=lip%20oil&limit=3" \
  -H "X-API-Key: $TOKCONNECT_API_KEY"

Response

Example response
{
  "data": {
    "suggestions": [
      "lip oil",
      "lip oil vs lip gloss",
      "Lip oil essence"
    ]
  },
  "meta": {
    "credits_charged": 1,
    "credits_remaining": 7906,
    "request_id": "req_3f9c2a1b7d4e"
  }
}
Response fields
  • dataobjectThe tool's result. Compact by default; pass detail=full for the complete record.
  • data.suggestionsarray
  • metaobject
  • meta.credits_chargedinteger1 on success.
  • meta.credits_remainingintegerCredits left this period, when known.
  • meta.request_idstringQuote it to support.
  • next_cursorstringPresent when there is another page: pass it back as cursor.

Errors

  • 400
  • 401
  • 402
  • 403
  • 404
  • 429
  • 502
  • 503
Try it Live call, 1 credit
More parameters (1)