> ## Documentation Index
> Fetch the complete documentation index at: https://docs.dumplingai.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Get TikTok Profile

> Retrieves public profile information for a TikTok user.

## Description

This endpoint allows you to fetch detailed public profile information for a specified TikTok user, including user details, statistics, and a list of recent items (if available from the service).

## Endpoint

**POST** `/api/v1/get-tiktok-profile`

## Request Headers

| Header          | Type   | Description                                       |
| :-------------- | :----- | :------------------------------------------------ |
| `Content-Type`  | string | Must be `application/json`.                       |
| `Authorization` | string | Your API key (Bearer token). e.g. `Bearer sk_xxx` |

## Request Body

| Parameter       | Type   | Description                                                                                                                       | Required | Default |
| :-------------- | :----- | :-------------------------------------------------------------------------------------------------------------------------------- | :------- | :------ |
| `handle`        | string | The TikTok user handle (username).                                                                                                | Yes      |         |
| `requestSource` | string | Optional. Source of the request (e.g., `MAKE_DOT_COM`, `ZAPIER`, `API`). Defaults to `API` if not provided or if sent via header. | No       | `API`   |

<Info>
  The `handle` is the username you see on TikTok, like `stoolpresidente`.
</Info>

## Responses

### Success (200 OK)

Returns a JSON object containing the user's profile data.

```json theme={null}
{
  "user": {
    "id": "6659752019493208069", // TikTok's internal user ID
    "shortId": "", // Short ID if available
    "uniqueId": "stoolpresidente", // The handle/username
    "nickname": "Dave Portnoy", // Display name
    "avatarLarger": "https://p16-sign-va.tiktokcdn.com/...jpeg", // URL to larger avatar
    "avatarMedium": "https://p16-sign-va.tiktokcdn.com/...jpeg", // URL to medium avatar
    "avatarThumb": "https://p16-sign-va.tiktokcdn.com/...jpeg", // URL to thumbnail avatar
    "signature": "El Presidente/Barstool Sports Founder.", // User's bio/signature
    "createTime": 1550594547, // Timestamp of account creation
    "verified": true, // Whether the account is verified
    "secUid": "MS4wLjABAAAAINC_ElRR-l1RCcnEjOZhNO-9wOzAMf-YHXqRY8vvG9bEhMRa6iu23TaE3JPZYXBD", // Secured User ID
    "ftc": false,
    "relation": 0,
    "openFavorite": false,
    "bioLink": { // Optional: details about the link in bio
      "link": "https://www.barstoolsports.com/bios/Surviving-Barstool",
      "risk": 0
    },
    "commentSetting": 0,
    "commerceUserInfo": { "commerceUser": false },
    "duetSetting": 0,
    "stitchSetting": 0,
    "privateAccount": false, // Whether the account is private
    "secret": false,
    "isADVirtual": false,
    "roomId": "",
    "uniqueIdModifyTime": 0,
    "ttSeller": false,
    "region": "US", // User's region
    "downloadSetting": 0,
    "profileTab": {
      "showMusicTab": false,
      "showQuestionTab": false,
      "showPlayListTab": true
    },
    "followingVisibility": 1,
    "recommendReason": "",
    "nowInvitationCardUrl": "",
    "nickNameModifyTime": 0,
    "isEmbedBanned": false,
    "canExpPlaylist": true,
    "profileEmbedPermission": 1,
    "language": "en", // Profile language
    "eventList": [],
    "suggestAccountBind": false,
    "isOrganization": 0
  },
  "stats": {
    "followerCount": 4100000, // Number of followers
    "followingCount": 74, // Number of accounts followed
    "heart": 190400000, // Total hearts received (legacy or alternative field)
    "heartCount": 190400000, // Total hearts received
    "videoCount": 2017, // Number of videos posted
    "diggCount": 0, // Number of diggs (likes) given - may not always be populated
    "friendCount": 52 // Number of friends
  },
  "itemList": [] // List of recent items/videos, structure might vary or be empty
}
```

**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.

```json theme={null}
{
  "error": "'handle' parameter is required and must be a non-empty string."
}
```

Possible error messages:

* `Invalid JSON in request body`
* `'handle' parameter is required and must be a non-empty string.`
* `The profile service could not process the handle.`
* `The profile service reported an issue.`

#### 401 Unauthorized

API key is missing, invalid, or inactive.

```json theme={null}
{
  "error": "API key is invalid or missing."
}
```

#### 403 Forbidden

API key does not have enough credits.

```json theme={null}
{
  "error": "Insufficient credits. Please top up your account."
}
```

#### 404 Not Found

The requested TikTok profile could not be found.

```json theme={null}
{
  "error": "TikTok profile not found for handle: [handle]"
}
```

#### 500 Internal Server Error

An unexpected error occurred on the server.

```json theme={null}
{
  "error": "An unexpected server error occurred while fetching the TikTok profile: [specific error message]"
}
```

Possible error messages:

* `Service not configured. Please contact support.`
* `Service authentication failed. Please contact support.`
* `An unexpected server error occurred...` (for other internal issues)

#### 502 Bad Gateway

Indicates an issue with an upstream service.

```json theme={null}
{
  "error": "Received invalid data format from profile service."
}
```

Possible error messages:

* `The profile service is currently unavailable.`
* `Received invalid data format from profile service.`
* `Error fetching profile data from the upstream service.`

#### 503 Service Unavailable

Rate limit exceeded with an upstream service.

```json theme={null}
{
  "error": "Rate limit exceeded with the profile service. Please try again later."
}
```

## Example Request

### cURL

```bash theme={null}
curl -X POST \
  https://app.dumplingai.com/api/v1/get-tiktok-profile \
  -H 'Authorization: Bearer YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{ "handle": "stoolpresidente" }'
```

### Node.js (fetch)

```javascript theme={null}
async function getTikTokProfile(apiKey, handle) {
  const url = 'https://app.dumplingai.com/api/v1/get-tiktok-profile';
  const options = {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json',
      'Authorization': `Bearer ${apiKey}`
    },
    body: JSON.stringify({ handle })
  };

  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(data);
    return data;
  } catch (error) {
    console.error('Failed to fetch TikTok profile:', error);
    return null;
  }
}

// Example usage:
// getTikTokProfile('YOUR_API_KEY', 'stoolpresidente');
```

## Notes

* The `itemList` in the response may vary in content and structure depending on the profile and the data provided by the upstream service. It might be empty for some profiles.

## Credit Cost

This endpoint costs **10 credits** per successful request. For more details, see our [Credit Costs](/api-reference/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.


## OpenAPI

````yaml POST /api/v1/get-tiktok-profile
openapi: 3.0.3
info:
  title: DumplingAI API
  version: 1.0.0
  description: >
    REST API for DumplingAI's content intelligence and automation platform.

    All endpoints are grouped under `/api/v1`; most are secured via Bearer API
    keys unless an operation explicitly sets `security: []`.
servers:
  - url: https://app.dumplingai.com
    description: Production
security:
  - bearerAuth: []
tags:
  - name: YouTube
    description: Access metadata, search results, and transcripts from YouTube.
  - name: TikTok
    description: Retrieve TikTok profile, video, follower, and transcript data.
  - name: LinkedIn
    description: Programmatically fetch LinkedIn company and profile data.
  - name: Search
    description: Search-orientated endpoints spanning web, news, maps, and autocomplete.
  - name: Google
    description: Integrations with Google business listings and location data.
  - name: Scraping
    description: Webpage capture, crawling, and structured content extraction utilities.
  - name: Documents
    description: Document processing, conversion, and metadata utilities.
  - name: AI
    description: DumplingAI agent and knowledge base endpoints.
  - name: Developer Tools
    description: Utilities for executing sandboxed code via API.
paths:
  /api/v1/get-tiktok-profile:
    post:
      tags:
        - TikTok
      summary: Get TikTok profile
      description: Fetch public profile metadata and aggregated stats for a TikTok handle.
      operationId: getTikTokProfile
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TikTokProfileRequest'
            examples:
              default:
                summary: Lookup profile
                value:
                  handle: stoolpresidente
      responses:
        '200':
          description: TikTok profile retrieved.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TikTokProfileResponse'
        '400':
          description: Invalid request payload.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: Missing or invalid API key.
        '403':
          description: Insufficient credits to fulfill the request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '404':
          description: Profile not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '500':
          description: Unexpected server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '502':
          description: Upstream profile service returned an error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
components:
  schemas:
    TikTokProfileRequest:
      type: object
      required:
        - handle
      properties:
        handle:
          type: string
          description: TikTok username without the leading @.
        requestSource:
          $ref: '#/components/schemas/RequestSource'
    TikTokProfileResponse:
      type: object
      properties:
        user:
          type: object
          additionalProperties: true
        stats:
          type: object
          additionalProperties: true
        itemList:
          type: array
          items:
            type: object
            additionalProperties: true
      additionalProperties: true
    ErrorResponse:
      type: object
      properties:
        error:
          type: string
          description: Human-readable description of what went wrong.
      required:
        - error
    RequestSource:
      type: string
      description: Optional identifier describing where the API request originated.
      enum:
        - API
        - WEB
        - MAKE_DOT_COM
        - ZAPIER
        - N8N
        - PLAYGROUND
        - DEFAULT_AUTOMATION
        - AGENT_PREVIEW
        - AGENT_LIVE
        - AUTOPILOT
        - STUDIO
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: API Key

````