# ✅ TikTok Post Detail Extractor (`datamagnet/post-details`) Actor

Retrieve full TikTok post details from one or more post IDs in a single run. Paste a single ID or a list of IDs to get raw post metadata, engagement stats, author info, and media details for easy review, reporting, or archiving.

- **URL**: https://apify.com/datamagnet/post-details.md
- **Developed by:** [Datamagnet](https://apify.com/datamagnet) (community)
- **Categories:** Social media, Videos, Automation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $4.00 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js/docs.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python/docs.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

## Post Detail Fetcher scraper, extractor, and data collector

Post Detail Fetcher is a simple TikTok post detail scraper built for anyone who needs full post information without digging through technical tools. Paste one or more TikTok post IDs and get the raw post detail data back in a ready-to-use format. It is ideal for marketers, researchers, agencies, and creators who want to collect TikTok post metadata, captions, author details, engagement stats, and media information in one place. If you need a fast TikTok data extractor for post lookup and content analysis, this actor makes the process straightforward.

### Key Features
- **Extract** full TikTok post details from one or many post IDs in a single run.
- **Collect** rich post metadata, including caption text, publish time, author info, music details, and engagement stats.
- **Retrieve** media information such as cover images, video formats, playback links, and quality variants.
- **Save** time by looking up specific posts directly instead of searching manually.
- **Support** batch workflows when you need details for multiple posts at once.
- **Deliver** raw source data exactly as returned, making it easy to review or reuse downstream.
- **Enable** content analysis, reporting, and archiving with structured post-level records.

### Use Cases

#### Social Media Research
Researchers and analysts use this actor to study individual TikTok posts in depth. The returned fields like `desc`, `createTime`, `stats`, `author`, `music`, and `diversificationLabels` help them understand what kind of content performed well, when it was posted, and how audiences responded.

#### Influencer and Creator Analysis
Agencies and brand teams can inspect a creator’s post details before outreach or campaign planning. Fields such as `authorStats`, `verified`, `followerCount`, `diggCount`, and `shareCount` help them evaluate creator reach and engagement around specific posts.

#### Content Performance Reporting
Marketing teams often need a clean way to document how a post performed over time. With `playCount`, `commentCount`, `shareCount`, `collectCount`, and `video.duration`, they can build reports that compare content formats, topics, and engagement patterns.

#### Brand Monitoring
Brands can use this actor to review posts that mention campaigns, products, or public announcements. The `contents`, `textLanguage`, `suggestedWords`, and `item_control` fields help teams understand the message, language, and interaction settings around each post.

#### Media Archiving
Teams that need to preserve post records for internal reference can store the returned details as-is. Media fields like `video.cover`, `video.playAddr`, `video.downloadAddr`, and `music.playUrl` make it easier to keep a complete snapshot of the post’s creative assets and playback information.

#### Competitive Benchmarking
Businesses comparing their own content to competitors can use this actor to review post structure and engagement. By looking at `statsV2`, `authorStatsV2`, `challenges`, `channelTags`, and `locationCreated`, they can spot patterns in content style, audience response, and publishing behavior.

### Input

| Field | Type | Required | Description | Example |
|---|---|---:|---|---|
| videoId | string | Yes | Enter one TikTok post ID to fetch its details. You can paste a single ID or a list of IDs, one per line. | 7306132438047116586 |

### Output

| Field | Type | Description |
|---|---|---|
| id | string | The unique ID of the TikTok post you looked up. |
| desc | string | The main caption or description attached to the post. |
| createTime | string | When the post was created, shown as a timestamp. |
| scheduleTime | number | Any scheduled publish time associated with the post. |
| video | object | Video details such as size, duration, cover images, playback links, and quality information. |
| author | object | Information about the creator who posted the video, including profile name and verification status. |
| music | object | Details about the sound used in the post, including title, duration, and audio link. |
| challenges | array | Any hashtags or challenges connected to the post. |
| stats | object | Engagement totals such as likes, comments, shares, plays, and saves. |
| statsV2 | object | A second version of the engagement totals, including repost count. |
| warnInfo | array | Any warnings or notices attached to the post. |
| originalItem | boolean | Shows whether the post is marked as original content. |
| officalItem | boolean | Shows whether the post is marked as official content. |
| textExtra | array | Extra text-related metadata attached to the caption. |
| secret | boolean | Indicates whether the post is private or hidden. |
| forFriend | boolean | Indicates whether the post is shared only with friends. |
| digged | boolean | Shows whether the current viewer has liked the post. |
| itemCommentStatus | number | The comment status for the post. |
| takeDown | number | Indicates whether the post has been removed or restricted. |
| effectStickers | array | Any stickers or effects used in the post. |
| authorStats | object | Creator totals such as followers, following, hearts, and video count. |
| privateItem | boolean | Indicates whether the post is private. |
| duetEnabled | boolean | Shows whether duet is allowed for the post. |
| stitchEnabled | boolean | Shows whether stitch is allowed for the post. |
| stickersOnItem | array | Stickers attached to the post. |
| isAd | boolean | Indicates whether the post is an advertisement. |
| shareEnabled | boolean | Shows whether the post can be shared. |
| comments | array | Comment data returned with the post. |
| duetDisplay | number | Duet display setting for the post. |
| stitchDisplay | number | Stitch display setting for the post. |
| indexEnabled | boolean | Shows whether the post can be indexed or discovered. |
| diversificationLabels | array | Topic labels that describe the post’s content category. |
| locationCreated | string | The country where the post was created. |
| suggestedWords | array | Suggested search terms related to the post. |
| contents | array | The main content text and related text metadata. |
| diversificationId | number | A category identifier for the post. |
| collected | boolean | Indicates whether the post has been collected or saved. |
| channelTags | array | Channel or topic tags attached to the post. |
| item_control | object | Controls for sharing, commenting, reposting, and related actions. |
| IsAigc | boolean | Indicates whether the post was generated with AI tools. |
| AIGCDescription | string | A description related to AI-generated content, if present. |
| ShowAIGC | boolean | Shows whether AI-generated content labeling is visible. |
| backendSourceEventTracking | string | Internal tracking information returned with the post. |
| CategoryType | number | The post category type. |
| textLanguage | string | The language used in the post caption. |
| textTranslatable | boolean | Shows whether the caption can be translated. |
| authorStatsV2 | object | A second version of the creator totals. |
| isReviewing | boolean | Indicates whether the post is under review. |
| creatorAIComment | object | Information about AI-related creator comment eligibility. |

### Sample Output

```json
{
  "id": "7306132438047116586",
  "desc": "Hi! Well, so, basically I have a birthday coming up and I was thinking a fun way to celebrate the year we’ve had together would be to make The Eras Tour Concert Film available for you to watch at home! Very happy to be able to tell you that the extended version of the film including “Wildest Dreams,...",
  "createTime": "1701091554",
  "scheduleTime": 0,
  "video": {
    "id": "7306132438047116586",
    "height": 1024,
    "width": 576,
    "duration": 59,
    "ratio": "540p",
    "cover": "https://p19-common-sign.tiktokcdn-us.com/tos-useast5-p-0068-tx/3334e9d54705479d95c404e673e8cc00_1701091645~tplv-tiktokx-origin.image?...",
    "playAddr": "https://v16-webapp-prime.us.tiktok.com/video/tos/useast5/tos-useast5-ve-0068c001-tx/o0EpmZiEkvmyIJASWgY4BbUmIQWSEPbUiBiEP/?a=1988...",
    "downloadAddr": "https://v16-webapp-prime.us.tiktok.com/video/tos/useast5/tos-useast5-ve-0068c001-tx/oYgPmYBbpkBEE4UEEKBvSiOybQQWmiIZASEoD/?a=1988...",
    "videoID": "v12044gd0000cli9hf7og65idkgii4dg",
    "size": "9013351",
    "VQScore": "57.28"
  },
  "author": {
    "id": "6881290705605477381",
    "uniqueId": "taylorswift",
    "nickname": "Taylor Swift",
    "verified": true,
    "signature": "This is pretty much just a cat account"
  },
  "music": {
    "id": "7306132624873917226",
    "title": "original sound",
    "authorName": "Taylor Swift",
    "duration": 59,
    "playUrl": "https://v19.tiktokcdn-us.com/2758dc3676f39eac6c3a9849d4b8254c/..."
  },
  "stats": {
    "diggCount": 5700000,
    "shareCount": 102100,
    "commentCount": 55800,
    "playCount": 51200000,
    "collectCount": "310462"
  },
  "authorStats": {
    "followerCount": 33500000,
    "followingCount": 0,
    "heart": 275000000,
    "videoCount": 83
  },
  "diversificationLabels": [
    "Music",
    "Entertainment Culture",
    "Entertainment"
  ],
  "locationCreated": "US",
  "suggestedWords": [
    "taylor swift",
    "taylornation",
    "wildest dreams eras tour"
  ]
}
````

### How It Works

1. You paste one TikTok post ID or a list of post IDs into the input field.
2. The actor looks up each post automatically and gathers the full detail record.
3. It returns the raw post information exactly as provided by the source.
4. You review the results in a clean dataset that is easy to export and reuse.
5. If you provided multiple IDs, each post is processed separately in the same run.

### Getting Started

Getting started is easy and does not require coding. Click **Try for free**, paste your TikTok post ID or list of IDs into the input field, and click **Run**. In a short time, your results will be ready to review and download. You can export the output as JSON, CSV, or Excel depending on how you want to use the data.

### Frequently Asked Questions

#### Do I need technical skills?

No. This actor is designed for non-technical users who simply want TikTok post details. You only need to paste one or more post IDs and run it.

#### How fast does it run?

It usually runs quickly because it looks up specific posts directly instead of searching through large datasets. The exact time depends on how many post IDs you provide and how quickly the source responds.

#### What format is the output?

The results are available in JSON, CSV, or Excel. That makes it easy to review the data in a spreadsheet, share it with your team, or import it into your own workflow.

#### Is this legal to use?

You should always use the data in a way that follows applicable laws, platform rules, and your organization’s policies. This actor is intended for legitimate research, analysis, and business workflows.

#### Can I schedule it to run automatically?

Yes, you can set it up to run on a schedule if you want regular updates for specific post IDs. That is useful for ongoing monitoring, reporting, or archiving workflows.

# Actor input Schema

## `videoId` (type: `array`):

Enter the post video ID to retrieve its details.

## Actor input object example

```json
{
  "videoId": [
    "7306132438047116586"
  ]
}
```

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "videoId": [
        "7306132438047116586"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("datamagnet/post-details").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = { "videoId": ["7306132438047116586"] }

# Run the Actor and wait for it to finish
run = client.actor("datamagnet/post-details").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "videoId": [
    "7306132438047116586"
  ]
}' |
apify call datamagnet/post-details --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=datamagnet/post-details",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "✅ TikTok Post Detail Extractor",
        "description": "Retrieve full TikTok post details from one or more post IDs in a single run. Paste a single ID or a list of IDs to get raw post metadata, engagement stats, author info, and media details for easy review, reporting, or archiving.",
        "version": "0.0",
        "x-build-id": "azqZYjGDhFHAKidfs"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/datamagnet~post-details/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-datamagnet-post-details",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/datamagnet~post-details/runs": {
            "post": {
                "operationId": "runs-sync-datamagnet-post-details",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/datamagnet~post-details/run-sync": {
            "post": {
                "operationId": "run-sync-datamagnet-post-details",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "required": [
                    "videoId"
                ],
                "properties": {
                    "videoId": {
                        "title": "Video ID",
                        "type": "array",
                        "description": "Enter the post video ID to retrieve its details.",
                        "items": {
                            "type": "string"
                        }
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
