API Description

TikTok Post API — Collect TikTok post details and available author, media and comment data.

Authenticate with your Pangolinfo API Key to receive structured JSON data.

Request URL

POST https://scrapeapi.pangolinfo.com/api/v1/social/tiktok-post

Request Headers

ParametersParameter valueTypeDescription
Content-Typeapplication/jsonstringData format
AuthorizationBearer xxxstringAuthorization Token

Collection takes up to approximately 75 seconds. Set your client timeout to 90 seconds.

Request Parameters

ParameterRequiredTypeDescription
targetYesstringTarget URL, supported ID or search keyword for this operation.

Only the request parameters listed on this page are used; other fields are ignored. Pass pagination cursors back unchanged, without encoding, decoding or conversion.

Included comments are limited to one page. Use the corresponding comments operation for more.

Response Fields

FieldTypeDescription
codeintegerStatus code; 0 indicates success.
messagestringResponse message; ok on success.
pointCostnumberPoints charged for this request.
dataobjectCollected data, with fields described below.
metaobjectRequest identifier and duration in milliseconds.
billingobjectCharged units, unit price and billing rule version.

data Fields

FieldTypeDescription
typestringResult type.
posterobjectPoster
postobjectPost, video or business details.
commentsobject[]Root comments in comment mode.
paginationobjectContinuation cursor and whether more results are available.

data.poster Fields

FieldTypeDescription
nicknamestring | nullAuthor display name.
usernamestring | nullUsername
namestring | nullName
avatarstring | nullAvatar URL.
profileUrlstring | nullAuthor profile URL.
signaturestring | nullSignature
idstring | nullRecord identifier.
secUidstring | nullsecUid from the profile; supplying it skips the profile lookup.
verifiedbooleanVerified
privateAccountbooleanPrivate account

data.post Fields

FieldTypeDescription
likenumberLike
commentCountnumberComment count
favoritenumberFavorite
sharenumberShare
playCountnumberPlay count
repostCountnumberRepost count
publishedAtobject | nullPublication time.
captionTextobjectCaption text
relatedTagsobject[]Related tags
durationSecnumber | nullDuration sec
videoIdstringVideo id
urlstringContent URL.
challengesobject[]Challenges
mentionsobject[]Mentions
hashtagsobject[]Hashtags
videoobjectVideo
imagesobject[]Images
musicobject | nullMusic
poiobject | nullPoi
locationCreatedstring | nullLocation created
textLanguagestring | nullText language
categoryTypenumber | nullCategory type
diversificationLabelsstring[]Diversification labels
suggestedWordsstring[]Suggested words
aigcDescriptionstring | nullAigc description
isAdbooleanIs ad
isPinnedbooleanIs pinned
privateItembooleanPrivate item
duetEnabledbooleanDuet enabled
stitchEnabledbooleanStitch enabled
shareEnabledbooleanShare enabled

data.post.publishedAt Fields

FieldTypeDescription
textstring | nullText value.
valuenumber | nullParsed value.

data.post.captionText Fields

FieldTypeDescription
descstringDesc

data.post.relatedTags[] Fields

FieldTypeDescription
textstring | nullText value.
hrefstring | nullHref

data.post.challenges[] Fields

FieldTypeDescription
idstring | nullRecord identifier.
titlestring | nullTitle
descstring | nullDesc
coverstring | nullCover

data.post.mentions[] Fields

FieldTypeDescription
typestringResult type.
textstring | nullText value.
hashtagIdstring | nullHashtag id
userIdstring | nullUser id
userUniqueIdstring | nullUser unique id
startnumber | nullStart
endnumber | nullEnd

data.post.hashtags[] Fields

FieldTypeDescription
typestringResult type.
textstring | nullText value.
hashtagIdstring | nullHashtag id
userIdstring | nullUser id
userUniqueIdstring | nullUser unique id
startnumber | nullStart
endnumber | nullEnd

data.post.video Fields

FieldTypeDescription
widthnumber | nullWidth
heightnumber | nullHeight
ratiostring | nullRatio
formatstring | nullFormat
bitratenumber | nullBitrate
definitionstring | nullDefinition
coverstring | nullCover
originCoverstring | nullOrigin cover
dynamicCoverstring | nullDynamic cover
playAddrstring | nullPlay addr
downloadAddrstring | nullDownload addr

data.post.images[] Fields

FieldTypeDescription
urlstringContent URL.
widthnumber | nullWidth
heightnumber | nullHeight

data.post.music Fields

FieldTypeDescription
idstring | nullRecord identifier.
titlestring | nullTitle
authorNamestring | nullAuthor name
albumstring | nullAlbum
originalbooleanOriginal
durationSecnumber | nullDuration sec
playUrlstring | nullPlay url
coverstring | nullCover

data.post.poi Fields

FieldTypeDescription
idstring | nullRecord identifier.
namestring | nullName
addressstring | nullAddress
citystring | nullCity
countrystring | nullCountry

data.comments[] Fields

FieldTypeDescription
timeTextobject | nullTime text
contentstring | nullContent text; may be null for records without text.
likesnumberLike count.
avatarstring | nullAvatar URL.
nicknamestring | nullAuthor display name.
nativeIdstringNative id
replyCountnumberPlatform-reported reply count.
profileUrlstring | nullAuthor profile URL.
parentIdstring | nullParent post or comment identifier.
replyToReplyIdstring | nullReply to reply id
usernamestring | nullUsername
userIdstring | nullUser id
secUidstring | nullsecUid from the profile; supplying it skips the profile lookup.
verifiedbooleanVerified
languagestring | nullSelected subtitle language.
isAuthorDiggedbooleanIs author digged
isPinnedbooleanIs pinned
imagesstring[]Images
labelsany[]Labels
replysobject[]Nested replies.

data.comments[].timeText Fields

FieldTypeDescription
textstring | nullText value.
valuenumber | nullParsed value.

data.comments[].replys[] Fields

FieldTypeDescription
timeTextobject | nullTime text
contentstring | nullContent text; may be null for records without text.
likesnumberLike count.
avatarstring | nullAvatar URL.
nicknamestring | nullAuthor display name.
nativeIdstringNative id
replyCountnumberPlatform-reported reply count.
profileUrlstring | nullAuthor profile URL.
parentIdstring | nullParent post or comment identifier.
replyToReplyIdstring | nullReply to reply id
usernamestring | nullUsername
userIdstring | nullUser id
secUidstring | nullsecUid from the profile; supplying it skips the profile lookup.
verifiedbooleanVerified
languagestring | nullSelected subtitle language.
isAuthorDiggedbooleanIs author digged
isPinnedbooleanIs pinned
imagesstring[]Images
labelsany[]Labels
replysany[]Nested replies.

data.pagination Fields

FieldTypeDescription
commentsobjectRoot comments in comment mode.

data.pagination.comments Fields

FieldTypeDescription
cursorstring | nullContinuation cursor from the previous response. Pass the value unchanged.
hasMorebooleanWhether more results are available.

Request Example

curl --request POST \
  --url https://scrapeapi.pangolinfo.com/api/v1/social/tiktok-post \
  --header 'Authorization: Bearer YOUR_PANGOLINFO_API_KEY' \
  --header 'Content-Type: application/json' \
  --data '{
  "target": "https://www.tiktok.com/@scout2015/video/6718335390845095173"
}'

Response Example

This excerpt shows the first item of each list. Long text and URLs are shortened; pointCost is the charge for the complete response. The playground contains the full schema.

{
  "code": 0,
  "message": "ok",
  "pointCost": 0.8,
  "data": {
    "type": "post",
    "poster": {
      "nickname": "Scout, Suki & Stella",
      "username": "scout2015",
      "name": "scout2015",
      "avatar": "https://p19-common-sign.tiktokcdn-us.com/tos-useast8-avt-0068-tx2/4cbe05e194623e3f19aef975d9fdf26c~tplv-tiktokx-cropcenter:1080:1080.jpeg?dr=9640&refresh_tok...",
      "profileUrl": "https://www.tiktok.com/@scout2015",
      "signature": "🐾Click follow to join the PAWsitive Pack🐾\nMore👇💞",
      "id": "53279706535428096",
      "secUid": "MS4wLjABAAAAPZWNdkF_cmVSPCvV0Y6MCsH29mlAOlMOX3ikzGvlfMm3K6OMZv-JrRImpEHxdIMI",
      "verified": true,
      "privateAccount": false
    },
    "post": {
      "like": 35200,
      "commentCount": 5713,
      "favorite": 651,
      "share": 1522,
      "playCount": 160000,
      "repostCount": 0,
      "publishedAt": {
        "text": "2019-07-27T13:32:38.000Z",
        "value": 1564234358000
      },
      "captionText": {
        "desc": "Scramble up ur name & I’ll try to guess it😍❤️ #foryoupage #petsoftiktok #aesthetic"
      },
      "relatedTags": [
        {
          "text": "#foryoupage",
          "href": "https://www.tiktok.com/tag/foryoupage"
        }
      ],
      "durationSec": 10,
      "videoId": "6718335390845095173",
      "url": "https://www.tiktok.com/@scout2015/video/6718335390845095173",
      "challenges": [
        {
          "id": "88764338",
          "title": "foryoupage",
          "desc": null,
          "cover": null
        }
      ],
      "mentions": [],
      "hashtags": [
        {
          "type": "hashtag",
          "text": "foryoupage",
          "hashtagId": "88764338",
          "userId": null,
          "userUniqueId": null,
          "start": 47,
          "end": 58
        }
      ],
      "video": {
        "width": 576,
        "height": 1024,
        "ratio": "540p",
        "format": "mp4",
        "bitrate": 2240963,
        "definition": "540p",
        "cover": "https://p16-common-sign.tiktokcdn-us.com/tos-maliva-p-0068/2367c7d45cf54a1397abd0e72bf22eac~tplv-tiktokx-origin.image?dr=9636&x-expires=1794124800&x-signatur...",
        "originCover": "https://p16-common-sign.tiktokcdn-us.com/tos-maliva-p-0068/8ac0190d8ad54535bf823ed5f3202b6b~tplv-tiktokx-origin.image?dr=9636&x-expires=1794124800&x-signatur...",
        "dynamicCover": "https://p16-common-sign.tiktokcdn-us.com/tos-maliva-p-0068/dc1c2b319b174c7eabd57ba4b191cc93~tplv-tiktokx-origin.image?dr=9636&x-expires=1794124800&x-signatur...",
        "playAddr": "https://v16-webapp-prime.us.tiktok.com/video/tos/useast5/tos-useast5-pve-0068-tx/a9d18e19b850455597ce9421ea84a228/?a=1988&bti=ODszNWYuMDE6&&bt=2188&ft=4KJMyM...",
        "downloadAddr": null
      },
      "images": [],
      "music": {
        "id": "6689804660171082501",
        "title": "original sound",
        "authorName": "tiff",
        "album": null,
        "original": true,
        "durationSec": 10,
        "playUrl": "https://v16m.tiktokcdn-us.com/6fa261a4e8c63dba2f4616ed2ea374b5/6aede682/video/tos/useast5/tos-useast5-v-27dcd7-tx/fdec9588d6684e7d97da29739b9d0abf/?a=1233&bt...",
        "cover": "https://p19-common-sign.tiktokcdn-us.com/tos-maliva-avt-0068/62c59c8c91226b51c36d2338519eb63e~tplv-tiktokx-cropcenter:1080:1080.jpeg?dr=9640&refresh_token=35..."
      },
      "poi": null,
      "locationCreated": null,
      "textLanguage": "en",
      "categoryType": 120,
      "diversificationLabels": [],
      "suggestedWords": [
        "name"
      ],
      "aigcDescription": null,
      "isAd": false,
      "isPinned": false,
      "privateItem": false,
      "duetEnabled": true,
      "stitchEnabled": true,
      "shareEnabled": true
    },
    "comments": [
      {
        "timeText": {
          "text": "2019-07-27T13:35:22.000Z",
          "value": 1564234522000
        },
        "content": "Well it’s pretty easy...and obvious 😂 hlysa",
        "likes": 340,
        "avatar": "https://p16-common-sign.tiktokcdn-eu.com/tos-maliva-avt-0068/7328085019259748357~tplv-tiktokx-cropcenter:100:100.jpg?dr=10399&refresh_token=c6869378&x-expire...",
        "nickname": "Quit",
        "nativeId": "6718336105873702917",
        "replyCount": 50,
        "profileUrl": "https://www.tiktok.com/@pretzelsticks0",
        "replys": [],
        "parentId": null,
        "replyToReplyId": null,
        "username": "pretzelsticks0",
        "userId": "6627564337508761605",
        "secUid": "MS4wLjABAAAABCmZv8sEMzxVXCLVjoVUMYM465WA0BMplKB9c7y5WWXDpV0OykgbTV3qOf0Jbleg",
        "verified": false,
        "language": "un",
        "isAuthorDigged": true,
        "isPinned": false,
        "images": [],
        "labels": [
          "Liked by creator"
        ]
      }
    ],
    "pagination": {
      "comments": {
        "cursor": "0",
        "hasMore": true
      }
    }
  },
  "meta": {
    "requestId": "pg-audit-r1-tiktok-post-1793954324984942600",
    "durationMs": 6417
  },
  "billing": {
    "unitPrice": 0.8,
    "ruleVersion": "social-primary-v2",
    "billedCount": 1,
    "pointCost": 0.8
  }
}

Points Usage

0.8 points per post, video or business. Included comments, replies and author details are free.

Empty results and failed requests are not charged. Duplicate IDs are counted once within a response. Separate calls and pages are billed separately. See Social Media Reviews API billing.

Try it