# TikTok Hashtag Scraper (`clockworks/tiktok-hashtag-scraper`) Actor

Scrape TikTok hashtag data. Just add one or more hashtags and extract TikTok videos with that hashtag: URLs, likes, country of creation, video and music metadata, TikTok creator data. Export scraped data, run the scraper via API, schedule and monitor runs or integrate with other tools.

- **URL**: https://apify.com/clockworks/tiktok-hashtag-scraper.md
- **Developed by:** [Clockworks](https://apify.com/clockworks) (Apify)
- **Categories:** Social media, Videos
- **Features:** Limited permissions
- **Stats:** 21,238 total users, 2,137 monthly users, 100.0% runs succeeded, 177 bookmarks
- **User rating**: 4.92 out of 5 stars

## Pricing

from $1.00 / 1,000 videos

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/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
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.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## 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.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

### What is TikTok Hashtag Scraper?

TikTok Hashtag Scraper is a powerful and easy-to-use tool that allows you to **extract data from TikTok videos that use a particular hashtag.** Using this tool, you will be able to scrape:

- **All TikToks posted** with chosen hashtags: caption, video URL, number of plays, hearts, comments, shares, country of creation, timestamp, paid or non-paid status, **video- and music-related metadata.**
- **Basic creator info from TikToks posted** with chosen hashtags: name, ID, avatar, bio, account status, total followers/following numbers, given/received likes count, etc.
- **Total number of views** for a chosen hashtag
- Export all your data in multiple formats: **JSON, CSV, Excel, or HTML**
- Export via SDKs (Python & Node.js), use **API Endpoints**, **webhooks**, or integrate with workflows

### What kind of data does TikTok Hashtag Scraper collect?

<table>
<tr>
<td>👤 Author metadata</td>
<td>❤️ Likes</td>
<td>🔁 Shares</td>
</tr>
<tr>
<td>📜 Location metadata</td>
<td>👥 Followers / Following count</td>
<td>📋 Followers / Following list</td>
</tr>
<tr>
<td>🕛 Time of creation </td>
<td>📍 Location of creation</td>
<td>🎵 Music metadata</td>
</tr>
</table>

### How to scrape TikTok with TikTok Hashtag Scraper?

TikTok Hashtag Scraper is designed to be user-friendly, even for those who have never extracted data from the web before! Here’s how you can use TikTok Hashtag Scraper to extract hashtag data:

1. [Create](https://console.apify.com/actors/f1ZeP0K58iwlqG2pY/) a free Apify account using your email.
2. Open [TikTok Hashtag Scraper.](https://apify.com/clockworks/tiktok-hashtag-scraper)
3. Add one or more TikTok hashtags to scrape data.
4. Click the “Start” button and wait for the data to be extracted.
5. Download your data in JSON, XML, CSV, Excel, or HTML.

For a more detailed tutorial, check out our video:

https://www.youtube.com/watch?v=zv61HJfhJxg

### ⬇️ Input

The input for TikTok Hashtag Scraper should be a **TikTok hashtag** (with or without the `#` symbol) and a **number of videos.** If you add more than one hashtag, the results will be split evenly. For instance, if you have 3 hashtags and set the total number of videos to 99, you'll get 33 results per each hashtag.

<a href="https://console.apify.com/actors/f1ZeP0K58iwlqG2pY/">
<img src="https://github.com/apify-projects/actor-readme-images/blob/master/tiktok-hashtag-scraper-input.png?raw=true" alt="TikTok Hashtag Scraper input" style="width:70%;">
</a>

And how it looks in JSON:

```json
{
    "hashtags": ["webscraping"],
    "resultsPerPage": 20,
    "shouldDownloadCovers": false,
    "shouldDownloadSlideshowImages": false,
    "shouldDownloadSubtitles": false,
    "shouldDownloadVideos": false
}
```

### ⬆️ Output

The results will be wrapped into a dataset which you can always find in the Storage tab. Here's an excerpt from the data you'd get:

<a href="https://console.apify.com/actors/f1ZeP0K58iwlqG2pY/">
<img src="https://github.com/apify-projects/actor-readme-images/blob/master/tiktok-hashtag-scraper-output.png?raw=true" alt="TikTok Hashtag Scraper output" style="width:70%;">
</a>

Here is the same data but in JSON. You can choose to download your TikTok hashtag data in JSON, JSONL, Excel spreadsheet, HTML table, CSV, or XML.

```json
 {
    "id": "7204347705928191259",
    "text": "Scraping website dari nol menggunakan nodejs untuk pemula #programmer #nodejs #pemula #tutorial #webscraping #fyp #mudah #belajarprogramming #javascript ",
    "createTime": 1677392919,
    "createTimeISO": "2023-02-26T06:28:39.000Z",
    "isAd": false,
    "isMuted": false,
    "authorMeta": {
      "id": "6964254822141297665",
      "name": "mshbljrngoding",
      "nickName": "Masih Belajar Ngoding",
      "verified": false,
      "signature": "(APBD) Apakah Programmer Banyak Duit?",
      "bioLink": null,
      "avatar": "<https://p16-sign-va.tiktokcdn.com/tos-maliva-avt-0068/1925cbec11425784b6eb43710a7b7179~c5_720x720.jpeg?lk3s=a5d48078&nonce=41821&refresh_token=d39029bffc0e34b061c7797c8cdc227d&x-expires=1723226400&x-signature=xQ%2FPJB2DNsvOP9sPJhhcivu1tj8%3D&shp=a5d48078&shcp=b59d6b55>",
      "privateAccount": false,
      "ttSeller": true,
      "following": 1,
      "fans": 1849,
      "heart": 13000,
      "video": 33,
      "digg": 37
    },
    "musicMeta": {
      "musicName": "LoFi(860862)",
      "musicAuthor": "skollbeats",
      "musicOriginal": false,
      "musicAlbum": "",
      "playUrl": "",
      "coverMediumUrl": "<https://p16-sign-va.tiktokcdn.com/tos-useast2a-v-2774/6e11e2db7ce84eeea68c550d31c0a04c~c5_200x200.jpeg?lk3s=08d74b56&x-expires=1723077571&x-signature=yurHaQQq4nz2E9Z%2BkWAiTbOnt2Y%3D>",
      "musicId": "6873526724840130562"
    },
    "webVideoUrl": "<https://www.tiktok.com/@mshbljrngoding/video/7204347705928191259>",
    "mediaUrls": [
      "<https://v16-webapp-prime.tiktok.com/video/tos/useast2a/tos-useast2a-pve-0037-aiso/osPeeQUon3CqvEfRgDbFAEg7keOwKHGE1J2rJ1/?a=1988&bti=NDU3ZjAwOg%3D%3D&ch=0&cr=3&dr=0&lr=all&cd=0%7C0%7C0%7C&cv=1&br=542&bt=271&cs=0&ds=6&ft=4fUEKMMD8Zmo0T6b0-4jV7k4ZpWrKsd.&mime_type=video_mp4&qs=0&rc=N2dpNjo5aWc3PGhmaWY1M0BpajtpcDc6ZjhpaTMzZjgzM0BeNV8wLjYxNmMxMmNeLWItYSNxMTBncjQwaXFgLS1kL2Nzcw%3D%3D&btag=e00090000&expire=1723228936&l=20240807183929DAB47193301FC57F3994&ply_type=2&policy=2&signature=cc15279875748c6836c8720042b906ce&tk=tt_chain_token>"
    ],
    "videoMeta": {
      "height": 944,
      "width": 576,
      "duration": 164,
      "coverUrl": "<https://p16-sign-useast2a.tiktokcdn.com/tos-useast2a-p-0037-aiso/8911252b9a134cdcb38440ab14e0948d_1677392932~tplv-dmt-logom:tos-useast2a-pv-0037-aiso/38550d5eaff94fe98678e313f6066549.image?lk3s=b59d6b55&nonce=36818&refresh_token=3b5c06d382b4d87f842c5da06d20248a&x-expires=1723226400&x-signature=%2BNkXA%2BaccW5QghnCTR6wKnuypQk%3D&shp=b59d6b55&shcp=->",
      "originalCoverUrl": "<https://p16-sign-useast2a.tiktokcdn.com/tos-useast2a-p-0037-aiso/8911252b9a134cdcb38440ab14e0948d_1677392932~tplv-dmt-logom:tos-useast2a-pv-0037-aiso/38550d5eaff94fe98678e313f6066549.image?lk3s=b59d6b55&nonce=36818&refresh_token=3b5c06d382b4d87f842c5da06d20248a&x-expires=1723226400&x-signature=%2BNkXA%2BaccW5QghnCTR6wKnuypQk%3D&shp=b59d6b55&shcp=->",
      "definition": "540p",
      "format": "mp4",
      "originalDownloadAddr": "<https://v16-webapp-prime.tiktok.com/video/tos/useast2a/tos-useast2a-pve-0037-aiso/osPeeQUon3CqvEfRgDbFAEg7keOwKHGE1J2rJ1/?a=1988&bti=NDU3ZjAwOg%3D%3D&ch=0&cr=3&dr=0&lr=all&cd=0%7C0%7C0%7C&cv=1&br=542&bt=271&cs=0&ds=6&ft=4fUEKMMD8Zmo0T6b0-4jV7k4ZpWrKsd.&mime_type=video_mp4&qs=0&rc=N2dpNjo5aWc3PGhmaWY1M0BpajtpcDc6ZjhpaTMzZjgzM0BeNV8wLjYxNmMxMmNeLWItYSNxMTBncjQwaXFgLS1kL2Nzcw%3D%3D&btag=e00090000&expire=1723228936&l=20240807183929DAB47193301FC57F3994&ply_type=2&policy=2&signature=cc15279875748c6836c8720042b906ce&tk=tt_chain_token>",
      "downloadAddr": "<https://v16-webapp-prime.tiktok.com/video/tos/useast2a/tos-useast2a-pve-0037-aiso/osPeeQUon3CqvEfRgDbFAEg7keOwKHGE1J2rJ1/?a=1988&bti=NDU3ZjAwOg%3D%3D&ch=0&cr=3&dr=0&lr=all&cd=0%7C0%7C0%7C&cv=1&br=542&bt=271&cs=0&ds=6&ft=4fUEKMMD8Zmo0T6b0-4jV7k4ZpWrKsd.&mime_type=video_mp4&qs=0&rc=N2dpNjo5aWc3PGhmaWY1M0BpajtpcDc6ZjhpaTMzZjgzM0BeNV8wLjYxNmMxMmNeLWItYSNxMTBncjQwaXFgLS1kL2Nzcw%3D%3D&btag=e00090000&expire=1723228936&l=20240807183929DAB47193301FC57F3994&ply_type=2&policy=2&signature=cc15279875748c6836c8720042b906ce&tk=tt_chain_token>"
    },
    "diggCount": 517,
    "shareCount": 17,
    "playCount": 12600,
    "collectCount": 115,
    "commentCount": 27,
    "mentions": [],
    "hashtags": [
      {

```

### How can I use the data extracted from TikTok Hashtag Scraper?

The data extracted from TikTok Hashtags extractor can be used for a variety of purposes, including:

✨ Conducting sentiment analysis and finding **authentic product reviews**

👩‍🔬 Obtaining data for research and **social listening experiments**

🦠 **Analyzing trends** and viral campaigns

🥸 **Identifying unverified content** and inaccurate information with high public value

📚 Preparing for or analyzing a **TikTok marketing campaign**

### Scrape any TikTok data you need with dedicated scrapers

Use dedicated Actors if you want to **scrape specific TikTok data**.

<table>
<tr>
<td>🎵 <a href="https://apify.com/clockworks/tiktok-scraper">TikTok Scraper</a></td>
<td>💬 <a href="https://apify.com/clockworks/tiktok-comments-scraper">TikTok Comments Scraper</a></td>
<td>📝 <a href="https://apify.com/clockworks/tiktok-transcript-extractor">TikTok Transcript Extractor</a></td>
</tr>
<tr>
<td>🗣 <a href="https://apify.com/clockworks/tiktok-profile-scraper">TikTok Profile Scraper</a></td>
<td>🎸 <a href="https://apify.com/clockworks/tiktok-sound-scraper">TikTok Sound Scraper</a></td>
<td>🔍 <a href="https://apify.com/clockworks/tiktok-discover-scraper">TikTok Discover Scraper</a></td>
</tr>
<tr>
<td>🕵️ <a href="https://apify.com/clockworks/tiktok-user-search-scraper">TikTok User Search Scraper</a></td>
<td>🛒 <a href="https://apify.com/clockworks/tiktok-shop-scraper">TikTok Shop Scraper</a></td>
<td>👥 <a href="https://apify.com/clockworks/tiktok-followers-scraper">TikTok Followers Scraper</a></td>
</tr>
<tr>
<td>🧭 <a href="https://apify.com/clockworks/tiktok-explore-scraper">TikTok Explore Scraper</a></td>
<td>📊 <a href="https://apify.com/clockworks/tiktok-ads-scraper">TikTok Hashtag Analytics</a></td>
<td>📈 <a href="https://apify.com/clockworks/tiktok-trends-scraper">TikTok Trends Scraper</a></td>
</tr>
<tr>
<td>📥 <a href="https://apify.com/clockworks/free-tiktok-scraper">TikTok Data Extractor</a></td>
<td>📹 <a href="https://apify.com/clockworks/tiktok-video-scraper">TikTok Video Scraper</a></td>
<td></td>
</tr>
</table>

We also have put together a few AI agents that will help you extract data from social media and turn it into actionable information:

- [Comments Analyzer Agent](https://apify.com/apify/comments-analyzer-agent)
- [Influencer Discovery Agent](https://apify.com/apify/influencer-discovery-agent)

### Frequently asked questions

#### How many results can I scrape with TikTok Hashtag Scraper?

TikTok Hashtag scraper can return up to 400 to 800 results per hashtag on average. This is a hard limit set by the TikTok website.

However, you have to keep in mind that scraping [tiktok.com](http://tiktok.com/) has many variables to it and may cause the results to fluctuate case by case. The best way to know for sure for your particular use case is to do a test run yourself.

#### How much does it cost to use TikTok Hashtag Scraper?

TikTok Hashtag Scraper uses the pay-per-result (PPR) pricing model, so your costs can be easily calculated: it will cost you **$5 to scrape 1,000 results**, so $0.005 per item. Apify provides you with $5 free usage credits every month on the [Apify free plan](https://apify.com/pricing), so you can **get 1,000 results from TikTok Hashtag Scraper for free**.

If you need to extract data regularly, we recommend that you get an Apify subscription. Not only do you get a greater amount of prepaid credits, you get a discount on your usage costs, as well. Check out the [pricing tab](https://apify.com/clockworks/tiktok-hashtag-scraper/pricing) for more details.

#### Can I use integrations with TikTok Hashtag Scraper?

You can integrate TikTok Hashtag Scraper with almost any cloud service or web app. We offer integrations with **Make, Zapier, Slack, Airbyte, GitHub, Google Sheets, Google Drive**, [and plenty more](https://docs.apify.com/integrations).

Alternatively, you could use [webhooks](https://docs.apify.com/integrations/webhooks) to carry out an action whenever an event occurs, such as getting a notification whenever TikTok Hashtag Scraper successfully finishes a run.

#### Can I use TikTok Hashtag Scraper with the Apify API?

The Apify API gives you programmatic access to the Apify platform. The API is organized around RESTful HTTP endpoints that enable you to manage, schedule, and run Apify Actors. The API also lets you access any datasets, monitor Actor performance, fetch results, create and update versions, and more.

To access the API using Node.js, use the `apify-client` [NPM package](https://apify.com/clockworks/tiktok-hashtag-scraper/api/javascript). To access the API using Python, use the `apify-client` [PyPI package](https://apify.com/clockworks/tiktok-hashtag-scraper/api/python).

Click on the [API tab](https://apify.com/clockworks/tiktok-hashtag-scraper/api/python) for code examples, or check out the [Apify API reference](https://docs.apify.com/api/v2) docs for all the details.

#### Can I use TikTok Hashtag Scraper through an MCP Server?

With Apify API, you can use almost any Actor in conjunction with an MCP server. You can connect to the MCP server using clients like ClaudeDesktop and LibreChat, or even build your own. Read all about how you can [set up Apify Actors with MCP](https://blog.apify.com/how-to-use-mcp/).

For TikTok Hashtag Scraper, go to the [MCP tab](https://apify.com/clockworks/tiktok-hashtag-scraper/api/mcp) and then go through the following steps:

1. Start a Server-Sent Events (SSE) session to receive a `sessionId`
2. Send API messages using that `sessionId` to trigger the scraper
3. The message starts the TikTok Hashtag Scraper with the provided input
4. The response should be: `Accepted`

#### Is it legal to scrape TikTok?

Our TikTok scrapers do not extract any private user data, such as email addresses, gender, or location. They only extract what the user has chosen to share publicly. You should not scrape personal data unless you have a legitimate reason to do so. If you're unsure whether your reason is legitimate, consult your lawyers. You can also read our blog post on the [legality of web scraping](https://blog.apify.com/is-web-scraping-legal/).

### Your feedback

We’re always working on improving the performance of our Actors. If you’ve got any technical feedback for TikTok Hashtag scraper or simply found a bug, please create an issue on the Actor’s [Issues tab](https://console.apify.com/actors/f1ZeP0K58iwlqG2pY/issues) in Apify Console.

### Error items

When the scraper cannot retrieve data for a given input — for example a profile is private or a post has been deleted — it pushes an **error item** to the dataset instead of silently skipping it. Normal output items are never affected; you can tell them apart by the presence of an `errorCode` field.

#### Error item structure

```json
{
    "url": "https://www.tiktok.com/@someuser",
    "input": "someuser",
    "error": "Profile is private",
    "errorCode": "PROFILE_PRIVATE"
}
```

#### Error codes reference

| `errorCode`                      | Meaning                                                        |
| -------------------------------- | -------------------------------------------------------------- |
| `NOT_FOUND`                      | Profile or hashtag does not exist                              |
| `POST_NOT_FOUND_OR_PRIVATE`      | Post URL is gone or private                                    |
| `POST_SENSITIVE`                 | Post is flagged as sensitive content                           |
| `NO_TRENDING_FOR_HASHTAG`        | No ads found for this hashtag                                  |
| `MUSIC_NOT_FOUND`                | No videos found for the music tag                              |
| `SEARCH_QUERY_NOT_FOUND`         | No videos found for the search query                           |
| `SEARCH_QUERY_PROFILE_NOT_FOUND` | No profiles found for the search query                         |
| `FILTER_NO_PASS`                 | Videos exist but none match the active date/popularity filters |
| `PROFILE_EMPTY`                  | Profile has no videos (or is behind a login wall)              |
| `PROFILE_REPOSTS_EMPTY`          | Profile has no reposts (or is behind a login wall)             |
| `PROFILE_VIDEOS_UNAVAILABLE`     | Profile has videos, but TikTok returned none (login wall)      |
| `PROFILE_FOLLOWING_EMPTY`        | Profile is not following anyone                                |
| `PROFILE_FOLLOWERS_EMPTY`        | Profile has no followers                                       |
| `PROFILE_PRIVATE`                | Profile is private                                             |
| `GOOGLE_RUN_NO_RESULTS`          | Google-assisted run returned no results                        |
| `TRENDING_EMPTY`                 | Trending page returned no results                              |
| `INVALID_INPUT`                  | Actor failed due to bad configuration (run is also terminated) |
| `INVALID_URLS`                   | One or more start URLs were malformed                          |

# Changelog

This Actor's version history is a separate document: https://apify.com/clockworks/tiktok-hashtag-scraper/changelog.md

# Actor input Schema

## `hashtags` (type: `array`):

Just add TikTok hashtags and the scraper will collect information about users, followers, likes, and more.

## `resultsPerPage` (type: `integer`):

Maximum number of posts that will be scraped from every hashtag.

## `shouldDownloadVideos` (type: `boolean`):

This is a charged add-on. Tick to download TikTok videos.

## `shouldDownloadCovers` (type: `boolean`):

Tick to download TikTok video cover images (thumbnails). Note that this will increase time and costs needed to extract the data.

## `downloadSubtitlesOptions` (type: `string`):

Choose how to handle subtitles and audio transcription for input videos. Subtitles are provided by TikTok for some videos, and transcription means that this Actor will use speech-to-text AI to generate video transcript. Transcripts are charged as an extra event according to your plan.

## `shouldDownloadSlideshowImages` (type: `boolean`):

Tick to download TikTok slideshow images. Note that this will increase costs and time required for scraping.

## `videoKvStoreIdOrName` (type: `string`):

Name (or ID) of the Key Value Store where the videos and other media like thumbnails will be stored. Omit to store in the default one. Using this option will provide a named Key-Value store can help bypass data retention and store the content forever until the store is manually deleted.<br><br>The Key-Value store's name can consist of a versatile combination of uppercase letters, lowercase letters, digits, or hyphens, all without any spaces.

## Actor input object example

```json
{
  "hashtags": [
    "followforfollowback"
  ],
  "resultsPerPage": 100,
  "shouldDownloadVideos": false,
  "shouldDownloadCovers": false,
  "downloadSubtitlesOptions": "NEVER_DOWNLOAD_SUBTITLES",
  "shouldDownloadSlideshowImages": false,
  "videoKvStoreIdOrName": "tiktok-videos"
}
```

# Actor output Schema

## `dataset` (type: `string`):

Dataset containing all scraped data

# 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 = {
    "hashtags": [
        "followforfollowback"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("clockworks/tiktok-hashtag-scraper").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 = { "hashtags": ["followforfollowback"] }

# Run the Actor and wait for it to finish
run = client.actor("clockworks/tiktok-hashtag-scraper").call(run_input=run_input)

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

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

```

## CLI example

```bash
echo '{
  "hashtags": [
    "followforfollowback"
  ]
}' |
apify call clockworks/tiktok-hashtag-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,clockworks/tiktok-hashtag-scraper"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/f1ZeP0K58iwlqG2pY/builds/2ppLsidB8UbasVkIZ/openapi.json
