[← Back to tools]
tiktok.posts

Get public TikTok posts: pay per use, no API key

Use TikHub from Claude, Claude Code, Cursor, ChatGPT, and other agents through one Cralo balance.

Return a bounded page of public posts and engagement metrics for a TikTok user through TikHub.

Price and execution

Price
$0.001
Pricing model
Fixed price per successful call
Execution class
fast

Limits

No additional limits are published for this tool.

Parameters

Fields tiktok.posts accepts as JSON input.

  • sort"default" | "popular" | "oldest"Optional

    Ordering for returned posts: provider default, most popular, or oldest first.

  • limitintegerOptional

    Maximum number of records to return.

  • cursorintegerOptional

    Pagination cursor from a previous response; use 0 for the first page.

  • sec_uidstringRequired

    TikTok stable user identifier returned by `tiktok.profile`.

Raw input JSON Schema
{
  "type": "object",
  "required": [
    "sec_uid"
  ],
  "properties": {
    "sort": {
      "enum": [
        "default",
        "popular",
        "oldest"
      ],
      "type": "string",
      "default": "default",
      "description": "Ordering for returned posts: provider default, most popular, or oldest first."
    },
    "limit": {
      "type": "integer",
      "default": 10,
      "maximum": 30,
      "minimum": 1,
      "description": "Maximum number of records to return."
    },
    "cursor": {
      "type": "integer",
      "default": 0,
      "minimum": 0,
      "description": "Pagination cursor from a previous response; use 0 for the first page."
    },
    "sec_uid": {
      "type": "string",
      "maxLength": 255,
      "minLength": 1,
      "description": "TikTok stable user identifier returned by `tiktok.profile`."
    }
  },
  "additionalProperties": false
}

Returns

Fields a successful tiktok.posts call returns.

  • postsarray of objectRequired
    • idstringRequired
    • urlstring (uri)Required
    • cover_urlstring | nullRequired
    • created_atstring | nullRequired
    • like_countnumber | nullRequired
    • play_countnumber | nullRequired
    • descriptionstring | nullRequired
    • share_countnumber | nullRequired
    • comment_countnumber | nullRequired
    • author_usernamestring | nullRequired
    • duration_secondsnumber | nullRequired
  • cursornumber | nullRequired
  • has_morebooleanRequired
  • request_idstringRequired
  • retrieved_atstring (date-time)Required
Raw output JSON Schema
{
  "type": "object",
  "required": [
    "posts",
    "cursor",
    "has_more",
    "request_id",
    "retrieved_at"
  ],
  "properties": {
    "posts": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "id",
          "url",
          "description",
          "created_at",
          "duration_seconds",
          "play_count",
          "like_count",
          "comment_count",
          "share_count",
          "cover_url",
          "author_username"
        ],
        "properties": {
          "id": {
            "type": "string"
          },
          "url": {
            "type": "string",
            "format": "uri"
          },
          "cover_url": {
            "type": [
              "string",
              "null"
            ],
            "format": "uri"
          },
          "created_at": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          },
          "like_count": {
            "type": [
              "number",
              "null"
            ],
            "minimum": 0
          },
          "play_count": {
            "type": [
              "number",
              "null"
            ],
            "minimum": 0
          },
          "description": {
            "type": [
              "string",
              "null"
            ]
          },
          "share_count": {
            "type": [
              "number",
              "null"
            ],
            "minimum": 0
          },
          "comment_count": {
            "type": [
              "number",
              "null"
            ],
            "minimum": 0
          },
          "author_username": {
            "type": [
              "string",
              "null"
            ]
          },
          "duration_seconds": {
            "type": [
              "number",
              "null"
            ],
            "minimum": 0
          }
        },
        "additionalProperties": false
      },
      "maxItems": 30
    },
    "cursor": {
      "type": [
        "number",
        "null"
      ],
      "minimum": 0
    },
    "has_more": {
      "type": "boolean"
    },
    "request_id": {
      "type": "string"
    },
    "retrieved_at": {
      "type": "string",
      "format": "date-time"
    }
  },
  "additionalProperties": false
}

Run this tool

Copy this instruction to your agent to set up Cralo and call this tool with the example input.

Set up Cralo by following https://cralo.ai/SKILL.md, then call the tiktok.posts tool with this input: {"sec_uid":"MS4wLjABAAAAv7iSuuXDJGDvJkmH_vz1qkDZYo1apxgzaxdBSeIuPiM"}

Safety notes

Side Effect
read_only
Public Sources Only
Yes
Handles Personal Data
Yes
Authenticated Content
No

How this compares to using TikHub directly

You do not need a separate TikHub account or subscription for this call. Cralo uses one prepaid balance across all tools and shows the per-call price before you run the command.

Related tools

[Browse all tools]