All APIs

TikTok API

Available

Get public TikTok profiles, videos, comments, followers, search, hashtags, trends, live data, and more through one stable API.

$2.50 per 1,000 requests. Your first 100 are free, no card needed.

GET /v1/tiktok/profiles/{identifier}
curl "https://api.openhandle.dev/v1/tiktok/profiles/@pixel_orchard_tt_test" \
  -H "Authorization: Bearer $OPENHANDLE_TEST_KEY"
200 OK
{
  "platform": "tiktok",
  "resource": "profile",
  "capturedAt": "2026-09-29T14:06:45Z",
  "source": "live",
  "data": {
    "id": "920000000001",
    "secUid": "MS4wLjABAAAAd3eAbhETGLJaWjoI_ie0ajRYXo9kmwendjeABhEtGlJ",
    "handle": "pixel_orchard_tt_test",
    "displayName": "Pixel Orchard",
    "bio": "Synthetic motion studies from an imaginary orchard.\n💌 orchard@example.openhandle.dev\nig: northstar_forge_test",
    "extracted": {
      "emails": [
        "orchard@example.openhandle.dev"
      ],
      "phones": [],
      "links": [],
      "handles": [
        {
          "platform": "instagram",
          "handle": "northstar_forge_test"
        }
      ]
    },
    "url": "https://www.tiktok.com/@pixel_orchard_tt_test",
    "createdAt": null,
    "avatar": {
      "id": "iof-sliodg1-hnc-5814-tl/fc65k74qi411436018175n0d581e813z",
      "url": "https://media.openhandle.dev/A0zqohwKl8k8rIemri4v1B1r3GOJv-qAmwyF80VqMYgEd2SieHGiEAEkNe1N9dAFg2d0ITyTQqenSJG7uqPZf0UttojfmKNiReXKcJrYlEH0bvgwB7DXKIBIkMF7WgpL__MGUGO7aKmUcIbsPisvjUV_XtHAEIHNczFuGCeLb53MAyXciKwMgZHDRiEuhnnvJboOQWDz6x_MbkY",
      "width": null,
      "height": null,
      "size": null,
      "hash": null,
      "role": null,
      "label": null,
      "urls": null,
      "renditions": [
        {
          "id": null,
          "url": "https://media.openhandle.dev/A4Jv7Vq_R77cPNGWgrzHlu6QbQwq61NjapEjnxBDgT7L9VVXpIbbMNfb-iiszHSIDbrVV0MX7iRgSBOqLHmho6eYYnuZzV1jtsxJ4v3JHFSgAq2y4StCoU186YEfc1TlfuiUZuDxf8ieNxbmKjAvsoYsy3Qp5fReai4lpXBaMlg86-IzMy0KUZhu_2L4P1CiHecAr4_KSavN2SnZNahOVESR0bStG5A",
          "width": null,
          "height": null,
          "size": null,
          "hash": null,
          "role": null,
          "label": "Orchard",
          "urls": [
            "https://media.openhandle.dev/A0Ybns5sL6uPf7JctxakUI9ihxdl2ZMwJ39_I245xefR82QUqHos56BP46cXuK-I7YOlJCGaWpZaQTvuT0K7TFh4qem-kwxIY-ZIopqb95XMVL-k_0TyMWooxcY2UfR5cjQ3u_p4_nJG6KA_u1x4sXhxAdAKYP_o6VwOO6GuJjTUuAmXli3mes29VgbOjNvvVu1Tl7hPl9NaxNQFnwwfGuYyu3t2qak013LuQYQHvxFp",
            "https://media.openhandle.dev/A9ZCfXoCYmbO4je5F-0hq15pLsISAc2T3pEDE6UciDLQLBIOblG3qG9Y8-Mwy173Z9vyq6a3lE83lx10kY91FyGJ2RvVZCXhIWXuGskSdHdFRheCSRnHtcd2WXYLhCEH-CzvOBC3WKByveAR-DvJ4Mu8tcrsPkLsyzpDvWWcFKfHCUbds6SwBoPE9d0ZqPUZ-pOVFZ0aeMb5pVjt_57dzB-eLWW7IBrEk8749f4WtJkF",
            "https://media.openhandle.dev/A-_dba9Ui5cHNrp7hpKbWiokYHtX4zqUEc26xHRLGrVXk7ZVWfeBWHeytEA5FKx6jUr8hZRC0P5qjVjge6-4lmcHaic8Z1ebOsYVWefgoHhmZViPyyRKkQYCj42Kn4A4hAGqvMNImvm8b82w6jakopMLAzR_EG9KDalXOpjC4GwjBr66c3rgVROcU2zukCRzRCn3JDKZl8aXS4NuadfO6U-XDZf7QD4GtoaRq8rDMWdt"
          ],
          "renditions": null
        },
        {
          "id": null,
          "url": "https://media.openhandle.dev/A7vrOTgA7g5qAH05dJOkGIxzoFZS6h9iutENeQ4DNX1U8x4V1_nH5Z4rTYdUj_ohvQ_JV3OoVPtBCcVaJmby24wUaWkgm4RXA-OsvGwBLDaeQXKywCtaIk20UoTDtkYXe3dJJe2NT2_42ZLdjEK2QtMGfz9B3NkAc88yDQXDrD-91XAbCXcFVFP7Jh2_RLUD_beFeFJ4JjxYHgZLpbONpuPDCU4R7jg",
          "width": null,
          "height": null,
          "size": null,
          "hash": null,
          "role": null,
          "label": "300x300",
          "urls": [
            "https://media.openhandle.dev/AyLeAe62nKCHPPO9RaHvhK2mMy66751lLuqHsCfQul-LhpjSbiaSGudh3O6WLNcIfdN4gwLGNccvA-zsIdeoIPZBPycLESSwUav_FJxizVOydibXsxpoexOTT00ImZoBiuqf0n4hKIkRafMbvfR8V9TaGWTzgKAbjKFWM43B1OzaparXSX8nqQuQH7uktLNdToTO4bckjw4ZuekcfOLj9lWiFWTGFn9G7gAUuxGnmgt2",
            "https://media.openhandle.dev/A4Sq218F1BF2eIW8cjaPreJxbJJqpykpMow39-aSrG1aBlqyiF9fS0eevNV_ZIqrXRrpRuRy4K3yeQ9MdQUMnSYx06Zq93ZzD9-1Zx8idKwC7a2yJ6kdyYUSxCvhUH0n6h6dVA-YalDcseLw5JkPlRflRMcGZhTP3oAs_V2VdFd22SMWplYy3rSlFk1xNcuGYrFfhp2lCplGWXu5UFpH_rxFwRQoPesA1ihnU6efLlvU",
            "https://media.openhandle.dev/A1ylyH8SSi_ok1XWENorHQQA-QYqWuw5rQhIeh-ba0LAIndw9hyRhZlUNaPmQ43jyDrO78mm-VjoC4qRIcq9hcQzv7RCezTxTGe1xCJr6WQoprLw2ic1L0EUmqmt7WWrTgzymUztfayZkbhW2W-APi3krU4-99BcxV2QmBNEr1HLDssquN-Ye-FP5OSlqDNZLCxANCmWi4vjCWGtvAdOsI_kzqXWUAv0MKjK7sK039Fo",
            "https://media.openhandle.dev/A3i0Zel0qlBuwMZyCMMp-1_8g_RLQQ5eZwZ2v_5fg50nmshe3FGLE0o4eSrBthSVT6hOnx8MUE5718r2ruBkebYWtbYo7qHBcDpm_nktS8EqdPBh5I7bnksxsNa3vqhwoSeU-FXi0YJyuLaceKsLOEP7U-P6Yz_KvXVrIBtReGDnmRXX2gaoeV53XMT8PPK71ZuUU9KR2KhNgg1PFjfLXrbLtkP0TQd5RxFlKcWaWj_Y"
          ],
          "renditions": null
        },
        {
          "id": null,
          "url": "https://media.openhandle.dev/A_nAvbVQcR0vuieAexFIzqju4XICbcURI-Cvux12TilgleIpWLv_3_mcBE7T6wkhrrJy2ZSoqjaA7W8g0czSCXGcUIPtAETwsC4oI8YFssRzE6KqMtgKcK9fDWYirA8e6ZD1iMUux-X7jjW1Agiq4v34P6iBMtiWYQgMZ97hRSjlMWk4oBbwz3PurbWFNHzjpitIacq6n9DAdYEN2jL8quPYCIkbXCI",
          "width": null,
          "height": null,
          "size": null,
          "hash": null,
          "role": null,
          "label": "168x168",
          "urls": [
            "https://media.openhandle.dev/A065GLq5dh5B348tCDe4PnHyE8emlChTbF-OKgv420hxudz6-hAk5yq1ly-NCKHkFTo4Dgmmdj6cc7ifyaDODPDrVr7Cp0a4jbq6OUhS0Ti_QgDzNJbnpgznrGyyNBuRKgR5DXRrdkXOcziwx8wdkUAwiA5H-zFkSBo8fUJgn0Y3J0Hf7-CfujWnSFifZqP_scxrlNCfvPx_pc1bn5kzIJOMJxj9ShJxjvzXwk92v_sc",
            "https://media.openhandle.dev/Awduw_0wA6K9ftJoRIvfYOXP7R5Gx7nNPI4xK4iQVWT84C8l3pqEmlon92jJ1fISk8ZmKyo626EWxpCVytl-nDx8eXA61VeBhdngOTwJVn9tzDvKYhBn0lNVJmpS-TBLIyEtDeG-PVmL0Y-H-LobqrYZ2JjWuGhVphTainmZFzWz6t2fzFheaSBEszR8oYPt7qdFwyEAMEthG6YMk0ajXMNzcsZJISaP-GwKMxR0YvKM",
            "https://media.openhandle.dev/A3no9ZVKBM5Cqvv9AynwOKuqu1D0uOGKVl-gd3UZSMxEnQ7r67SqklDOV6YVILOTJZVtDHeaYaUkCZWgIqP3wpkp47GOWEeyTNvF52QKgMUEu06CUCxG0V6CvkSgUjlCcs6K7USa9D279np-WYstlFrN5D8wR0IBSl-OOgbYUY4Y8U07bOdLGWVcXCl5cf6XHRty_z3RzZ5UAmy9Ai3YEyLR0DPBy43_Ywa60L4nt3FS"
          ],
          "renditions": null
        },
        {
          "id": null,
          "url": "https://media.openhandle.dev/A9Dcpq-LxRfcGMVoKc056MXVQH4IoU-B2a0l1mNpzz-TaiX1JlOyQOAxIQrZ4NbZdmaoPzBOLnwYwxTMBIQXplx-jBANx_Ea2LdWceEFIXLvbPwP2m4d2fGKwMPdDOG1RR794gURhBoieOWgaZAd7JVtC4J1ooXHXolEXVjpEzh_Gad54rHIoJjTnpV6L_Exwe4GDHr3bxQ3GNHgz_nFUfiHqqptU24",
          "width": null,
          "height": null,
          "size": null,
          "hash": null,
          "role": null,
          "label": "Copper",
          "urls": [
            "https://media.openhandle.dev/A-F4ASzaxEppmeD2VyyA3AbIHGFxk6dUO_-_9BOJW4j5ZaL6n9nweUsjSyoMB-ro6qujfM_xLu4oXo_59Wm13KQECCYDTPoeaV0fTIhQaeLWTABL4_hhSgn12wuFQxzcds7M-sc8anzRGoCtIL4cTHq3gMnTZcD-BhMevf1URoYjhhd_fFhFMmDAMyqRI3kwgR1kdEPz627u02qSjoe18MESPb5CBbNgKyWqPS83k4HJ",
            "https://media.openhandle.dev/A8pZH-OPNFWYcEomyFsWFkXHQY_W7BDjj2EXHLuFzHpp2v4OVgCJ6QDHQVSWHVtHRvwQDBajGtGz6FQQIroRHnUWyyF24Z41ne7zYRu3x9lKOsRmKPoMIBepY69VYG42lFYAqViTLD-es-Uvz8FBEeUIyAfgF3PccoW-jrpnJFuZbEn2haFqQiJ1bgOO67EPRk6BfHZ4lLpzXugKRgnzR1bveZDWsf_Rvo0z0P1dq16V",
            "https://media.openhandle.dev/A383yPD5N_SgkBByNrQWLh5Qp-Tx4ZNNwbYdmWe1oZC_aAq6ouTqDWmW1BMXonlZMRk1LFXXQL8Pc9Sk9X-RY__gitFonrivB2Mw5CMU25Itw9s6ncZurgtdBPFB1i8ncpjfeF8S-7qxIINkfMKDk4ydfckFVg579ljZh5DlZ-kYn6svbXogvxhrtbW8wBav0qyf98UV6BvN1aI_2NB9r90qp4LF2wXb5cOhhEfRjYk_",
            "https://media.openhandle.dev/AyNQYGOsLB2l_JPAU61YxeSrpn5sIgB78ZEOVHhd3lOX39LWGzZkNlnBNMFypCQ6p_AHMnk3v_5riDgckPwlbLj4eQQdPmpkgv9PanQ4CJE1mh5F5eTHTKeiiS3urB00wUd65hfc4kcsKMngo-xVl2eVccZHRwTszbGcOqwyoe-YeQseg8yfgF24HUvb3w7Ek1Hb95TQmIMg-SP7iWqTemqnXYr1qSP1R8kE2z-w5FTq"
          ],
          "renditions": null
        },
        {
          "id": null,
          "url": "https://media.openhandle.dev/AybnhoWyCGnWnHxhvw2Wbo0RjxypKyvROyBigo-K7Q04SumLSR_8aqNNeMzT1MpSLJqD0cUCcdDgO99FEP3ykf8CpK72g4q-4krKuG90lLT83C5MeXZgR3Y8GpKwptBeS17B3xTZVZ946OahaPsE0hEZVqMwHDvAkz7x7tJqlCcQvfHALtXEvPHicfCt2WcKdHwl91ehQPr-0RjX1KtNprCm1qqlAzA",
          "width": null,
          "height": null,
          "size": null,
          "hash": null,
          "role": null,
          "label": "Harvest",
          "urls": [
            "https://media.openhandle.dev/AxRC9sHs23HA7h1eVDDmpPtNtEiCBh6f7B1omBT_82N8iLpOoCUWdKlmGFPiAsnc38RKTNofT4Z76PaXOn9WcdWlxKsXgeTB8wae4o_tTE6tUzeqvRsscPb-MVu7NtrfsPL4G2cd2t9WnsOtoxlQZooKIcWNj5-hylBDjEYj3cVXplP-MuGyWqLsyK9QH2AY5SocMvzRy6Av7uk_rMjV7OCcYEtetM-6dkpZPRipdb2T",
            "https://media.openhandle.dev/AyQhqoNiHhoJCMU0SIYmtYYHZCFTmgw7RPvq-zr79RubJQMfgpJP3Ufd9IJ8GACWqp9iUmXbXQm7_A2rleE2V45C_v61II_OQ7gY8urE0Dytv3fxi3BikAdg5rsTteJydo5SzVjkyFS5kUBx3DwW-PMoE4WPK5QnrN7CJSUjniN6hj0z4BTNA6nXp0t9jHmy8QRGotGxNBnbpS058HU8pfC6ERsOUxruF8RnS5dkRSYJ",
            "https://media.openhandle.dev/AzSFVXclaPy58fvTTZY8xwOj3EiX2OjtiZSDJwiAXKchQ67Zt6MaQShh_Iz9wm_B0VXxwpUpnHc0CRr1dPrC6Q3lMps0kawMWHuH0SohyGqGukRxR_ne7k9pKCBwgYySQmWwvaLTcrcbx6Ng4ouqSmpwQl7-Dpj2NFuYkiCF0oDYGrNiPFcRGDvtFgZRQAHeuujgq0U3WkV-C2pilQZqcM-2YqGGeS92QlZnHi34O72m",
            "https://media.openhandle.dev/AwCjuYTdkuLMExDYQbZqLXrSK5VjtD4reduA4OuHcvRNNSluytOXmo-ZmL3qy1krY6DrXD_0V92l8on0_aooL-QXlipbAVc_daePKDQ4eP_n2NP4iTHMx_wUNdA5e71Qw97gSP774QEX8UWRu0wu7AKxf0R2YoAV8nLkUYJy3vBhmYaujepgTH_ROw8IH8_fWbQ5SVXU7koxRa0rmzOBKvAbkgssdZMK9psRUfqRziFg"
          ],
          "renditions": null
        }
      ]
    },
    "isPrivate": false,
    "isVerified": true,
    "accountType": 0,
    "isEffectArtist": false,
    "isAdVirtual": false,
    "isStar": false,
    "storyStatus": 0,
    "isDisciplineMember": null,
    "isCanceled": null,
    "regionCode": "US",
    "language": null,
    "category": null,
    "verification": {
      "type": 1,
      "badgeType": 1,
      "label": "Synthetic creator",
      "customLabel": null
    },
    "metrics": {
      "followers": 75120,
      "following": 411,
      "posts": 4,
      "visiblePosts": null,
      "likes": 9814220,
      "likedPosts": null
    },
    "commerce": {
      "level": 2,
      "hasLiveCommerce": false,
      "hasNewProducts": false
    },
    "privacy": {
      "followingVisibility": 1
    },
    "music": {
      "metrics": {
        "tracks": 6,
        "uses": 0,
        "likes": 0
      },
      "newReleaseIds": null
    },
    "predictions": {
      "ageGroup": null
    },
    "searchContext": {
      "description": null,
      "name": null,
      "nameField": null
    },
    "socialLinks": null,
    "stories": {
      "items": null,
      "changedAt": null,
      "metrics": {
        "countsByPostType": null
      }
    }
  }
}

The real answer to this request with a free Test key. Test keys read a synthetic dataset, so your first call returns the same answer. Only the capture time and the signed media links differ.

Endpoints

Everything public on TikTok, 28 operations.

Profiles, posts, comments, and more, grouped by what they read. Each one is one call.

Profiles

7 operations
  • Get a profileGET /v1/tiktok/profiles/{identifier}
  • List profile videosGET /v1/tiktok/profiles/{identifier}/posts
  • List liked postsGET /v1/tiktok/profiles/{identifier}/liked-posts
  • List followersGET /v1/tiktok/profiles/{identifier}/followers
  • List followingGET /v1/tiktok/profiles/{identifier}/following
  • List profile musicGET /v1/tiktok/profiles/{identifier}/music
  • List playlist postsGET /v1/tiktok/profiles/{identifier}/playlists/{playlistId}/posts

Posts

3 operations
  • Get a videoGET /v1/tiktok/posts/{identifier}
  • List commentsGET /v1/tiktok/posts/{identifier}/comments
  • List replies to a commentGET /v1/tiktok/posts/{identifier}/comments/{commentId}/replies

Search

5 operations
  • Search profilesGET /v1/tiktok/search/profiles?q={query}
  • Search postsGET /v1/tiktok/search/posts?q={query}
  • Search hashtagsGET /v1/tiktok/search/hashtags?q={query}
  • Search locationsGET /v1/tiktok/search/locations?q={query}
  • Search musicGET /v1/tiktok/search/music?q={query}

Hashtags

2 operations
  • Get a hashtagGET /v1/tiktok/hashtags/{identifier}
  • List hashtag postsGET /v1/tiktok/hashtags/{identifier}/posts

Locations

2 operations
  • Get a locationGET /v1/tiktok/locations/{id}
  • List location postsGET /v1/tiktok/locations/{id}/posts

Music and audio

2 operations
  • Get musicGET /v1/tiktok/music/{id}
  • List music postsGET /v1/tiktok/music/{id}/posts

Effects

1 operation
  • List effect postsGET /v1/tiktok/effects/{id}/posts

Trending

3 operations
  • List trending categoriesGET /v1/tiktok/trending/categories
  • List trending musicGET /v1/tiktok/trending/music
  • List trending postsGET /v1/tiktok/trending/posts

The complete 28-operation surface also covers liked posts, playlists, and effects. Every operation has its own generated page in the API reference.

Popular TikTok data

Built for
  • Trend research
  • Creator intelligence
  • Campaign measurement
  • Content monitoring
Known boundaries
  • Public content only.
  • Regional and age restrictions can make otherwise public records unavailable.

FAQ

TikTok questions.

Can I use TikTok data commercially without the Research API?
Yes. Openhandle returns publicly visible TikTok data through its own API key, with no academic-access requirement.
Does the API return real zeros?
Yes. A measured zero stays zero; an unavailable metric is returned as null.
Can I use a username instead of an ID?
Yes. Put @username or the platform ID in any profile path, including /posts. Both forms return the same data.
Are cursors shared with the upstream provider?
No. Treat Openhandle cursors as opaque and pass them back unchanged.

Let your agent wire up TikTok.

Copy one prompt. It has the docs, the spec, and an example request. Your agent reads it and builds against your test key.

Send your agent ahead.

Paste the prompt into your agent and it sets everything up. Or come yourself, it takes five minutes.

For agents

100 free requests. No card needed.