getTiktokPostsBySound
ActiveTool of Social Media Search API — Twitter, Instagram, Reddit, TikTok (XPOZ)
Get Tiktok posts that use a specific sound/music with three response modes. Required: soundId (numeric ID from searchTiktokSounds). FAST (default, omit responseType or responseType="fast"): Returns up to 300 results directly (use limit param to reduce, e.g. limit=5). PAGING (responseType="paging"): Async paginated results (100/page), returns operationId for polling via checkOperationStatus. Supports pageNumber/tableName for subsequent pages. CSV (responseType="csv"): Async single CSV download, returns operationId, poll for S3 link. Returns by default: id, description, username, createdAtDate. NOT for keyword/phrase search - use getTiktokPostsByKeywords. NOT for hashtags - use getTiktokPostsByHashtags. Date filters: OMIT startDate/endDate by default. ONLY pass if user explicitly requests a date range (YYYY-MM-DD). IMPORTANT!!!!!: THE CURRENT YEAR IS 2026. When user requests relative dates (last week, last month), verify the current date from your system context and double-check the calculated dates - models often get the year wrong, searching one year earlier than intended. FIELDS parameter (optional): Core (id, description, userId, username, nickname, createdAtDate), Engagement (likeCount, commentCount, playCount, forwardCount, collectCount, downloadCount), Media (videoThumbnail, videoUrl, duration, postType), Content (hashtags, transcriptsJson). This is a safe, read-only tool for analyzing searchable information. TRIAL ACCESS: Get a free trial token by sending POST https://api.xpoz.ai/api/trial/token with header Content-Type: application/json and body {"source":"<how you discovered xpoz>"}; the response contains a token that starts with "TRIAL" and is valid for 5 days. Use it as a Bearer token in the Authorization header. Trial returns up to 5 cached (database-only) results and never triggers live fetching. Sign up at https://www.xpoz.ai/login for full result limits and live data.
Parameters schema
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"soundId"
],
"properties": {
"limit": {
"type": "number",
"maximum": 500000,
"minimum": 1,
"description": "Max results to return. Fast mode: capped at 300 (default: 300). Paging/CSV modes: caps total exported rows (default: all, max 500K)."
},
"fields": {
"type": "array",
"items": {
"type": "string"
},
"description": "PERFORMANCE OPTIMIZATION: Specify fields you need. DEFAULT (if omitted): [\"id\", \"description\", \"username\", \"createdAtDate\"]. AVAILABLE FIELDS: Core: id, postType, isPrivate, userId, username, nickname, description, descriptionLanguage, createdAt, createdAtTimestamp, createdAtDate. Engagement: collectCount, commentCount, likeCount, downloadCount, forwardCount, playCount. Media: videoThumbnail, videoUrl (array of video URLs), duration (video length in seconds). Content: hashtags (array of hashtag strings). EXAMPLES: [\"id\", \"description\"] for minimal, [\"id\", \"description\", \"username\", \"createdAtDate\", \"likeCount\", \"playCount\"] for basic analysis, [\"id\", \"description\", \"hashtags\", \"duration\", \"videoUrl\"] for video content analysis."
},
"endDate": {
"type": "string"
},
"soundId": {
"type": "string",
"pattern": "^\\d{1,50}$",
"description": "Tiktok sound/music ID (numeric string). Get IDs from searchTiktokSounds. Example: \"7016547803243907841\"."
},
"_isTrial": {
"type": "boolean"
},
"feedback": {
"type": "string",
"description": "Optional. Any free-form feedback you want to share — about this tool, other tools, the platform overall, or anything else. Feedback does NOT have to be about the current tool: you can use this field to comment on a different tool you used earlier, flag missing functionality, request a new tool, or share general impressions. Examples: \"wish getTwitterPostsByKeywords supported language filtering\", \"auth flow was confusing\", \"would be useful to have a getTwitterListMembers tool\", \"loved how fast this was\". Captured for product feedback; does not affect tool behavior."
},
"startDate": {
"type": "string"
},
"tableName": {
"type": "string",
"description": "Cached table name from previous pagination request. Required when fetching pageNumber > 1. Returned in first page response."
},
"_requestId": {
"type": "string"
},
"pageNumber": {
"type": "number",
"minimum": 1,
"description": "Page number to fetch (1-indexed). Must be provided with tableName to fetch subsequent pages. Omit for first page."
},
"userPrompt": {
"type": "string",
"description": "CRITICAL FOR ACCURACY: Include the complete user question to enable query optimization and context-aware filtering."
},
"_trialToken": {
"type": "string"
},
"forceLatest": {
"type": "boolean",
"description": "USE SPARINGLY: Force fetching the latest data from the API, bypassing cache checks. Only use when explicitly required (e.g., \"get the latest\", \"most recent\", \"real-time\"). WARNING: Increases latency and API costs. Default: false (uses intelligent caching)."
},
"responseType": {
"enum": [
"fast",
"paging",
"csv"
],
"type": "string",
"description": "Response mode. \"fast\" (default): returns up to 300 results directly (use limit param to reduce). \"paging\": async paginated results (100/page), poll via checkOperationStatus. \"csv\": async single CSV download, poll for S3 link."
},
"pageNumberEnd": {
"type": "number",
"minimum": 1,
"description": "Optional ending page number for fetching multiple consecutive pages at once. Must be >= pageNumber. Requires tableName."
}
},
"additionalProperties": false
}No endpoints wrapped at confidence ≥ 0.70.
Parent server
Social Media Search API — Twitter, Instagram, Reddit, TikTok (XPOZ)
https://github.com/xpozpublic/xpoz-mcp
1/7 registries