Skip to main content

Description

This endpoint allows you to search for TikTok users using keywords. It returns a paginated list of user profiles matching your search query, including profile information and statistics.

Endpoint

POST /api/v1/search-tiktok-users

Request Headers

HeaderTypeDescription
Content-TypestringMust be application/json.
AuthorizationstringYour API key (Bearer token). e.g. Bearer sk_xxx

Request Body

ParameterTypeDescriptionRequiredDefault
querystringThe search query/keyword.Yes
cursornumberOptional cursor for pagination. Pass the cursor from a previous response to get the next page.No
countnumberNumber of results to fetch per request.NoAPI default
requestSourcestringOptional. Source of the request (e.g., MAKE_DOT_COM, ZAPIER, API).NoAPI
The search query can be a username, partial username, or keywords related to user profiles.

Responses

Success (200 OK)

Returns a JSON object containing an array of user search results with pagination information.
{
  "userList": [
    {
      "user": {
        "id": "6123456789012345678",
        "uniqueId": "searchresultuser",
        "nickname": "Search Result User",
        "avatarThumb": "https://...jpeg",
        "signature": "User bio/description",
        "verified": true,
        "secUid": "MS4wLjABAAAA...",
        "privateAccount": false
      },
      "stats": {
        "followerCount": 123456,
        "followingCount": 234,
        "heartCount": 5678901,
        "videoCount": 456,
        "diggCount": 789
      }
    }
    // ... more search results
  ],
  "cursor": 20,
  "hasMore": true
}
Response Headers:
  • Content-Type: application/json
  • X-RateLimit-Limit: The rate limit for the user.
  • X-RateLimit-Remaining: The remaining number of requests for the user.

Error Responses

400 Bad Request

Indicates an issue with the request parameters.
{
  "error": "'query' parameter is required and must be a non-empty string."
}
Possible error messages:
  • Invalid JSON in request body
  • 'query' parameter is required and must be a non-empty string.
  • The search service could not process the query.
  • The search service reported an issue.

401 Unauthorized

API key is missing, invalid, or inactive.
{
  "error": "API key is invalid or missing."
}

403 Forbidden

API key does not have enough credits.
{
  "error": "Insufficient credits. Please top up your account."
}

404 Not Found

No users found matching the search query.
{
  "error": "No users found for query: [query]"
}

500 Internal Server Error

An unexpected error occurred on the server.
{
  "error": "An unexpected server error occurred while searching TikTok users: [specific error message]"
}
Possible error messages:
  • Service not configured. Please contact support.
  • Service authentication failed. Please contact support.
  • An unexpected server error occurred...

502 Bad Gateway

Indicates an issue with an upstream service.
{
  "error": "Received invalid data structure from search service."
}
Possible error messages:
  • The search service is currently unavailable.
  • Received invalid data structure from search service.
  • Error fetching search results from the upstream service.

503 Service Unavailable

Rate limit exceeded with an upstream service.
{
  "error": "Rate limit exceeded. Please try again later."
}

Example Request

cURL

curl -X POST \
  https://app.dumplingai.com/api/v1/search-tiktok-users \
  -H 'Authorization: Bearer YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{ "query": "cooking" }'

Node.js (fetch)

async function searchTikTokUsers(apiKey, query, cursor = null) {
  const url = 'https://app.dumplingai.com/api/v1/search-tiktok-users';
  const body = { query };
  if (cursor !== null) body.cursor = cursor;

  const options = {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json',
      'Authorization': `Bearer ${apiKey}`
    },
    body: JSON.stringify(body)
  };

  try {
    const response = await fetch(url, options);
    const data = await response.json();
    if (!response.ok) {
      console.error(`Error: ${response.status}`, data);
      return null;
    }
    console.log(`Found ${data.userList.length} users`);
    console.log(`Has more: ${data.hasMore}`);
    return data;
  } catch (error) {
    console.error('Failed to search TikTok users:', error);
    return null;
  }
}

// Example usage - search and paginate through results:
async function getAllSearchResults(apiKey, query) {
  let allUsers = [];
  let cursor = null;
  let hasMore = true;

  while (hasMore) {
    const data = await searchTikTokUsers(apiKey, query, cursor);
    if (!data) break;

    allUsers = allUsers.concat(data.userList);
    hasMore = data.hasMore;
    cursor = data.cursor;
  }

  console.log(`Total users found: ${allUsers.length}`);
  return allUsers;
}

// getAllSearchResults('YOUR_API_KEY', 'cooking');

Notes

  • Use the cursor field from the response to paginate through search results.
  • The hasMore field indicates whether there are additional pages available.
  • Search results include both profile information and statistics for each user.
  • This endpoint is useful for influencer discovery, competitor analysis, and audience research.
  • Results are ranked by relevance to the search query.

Credit Cost

This endpoint costs 1 credit per successful request. For more details, see our Credit Costs page.

Rate Limiting

This endpoint is subject to standard API rate limits. Check the X-RateLimit-Limit and X-RateLimit-Remaining headers in the response to monitor your usage.