
TikTok Profile Scraper
Pricing
$4.00 / 1,000 videos

TikTok Profile Scraper
Extract data from TikTok profiles and videos they post. Get TikTok profile data, URLs, numbers of shares, followers, comments, hearts, video and music metadata. Export scraped data, run the scraper via API, schedule and monitor runs or integrate with other tools.
4.6 (8)
Pricing
$4.00 / 1,000 videos
431
Monthly users
804
Runs succeeded
>99%
Response time
2.5 days
Last modified
a day ago
Getting ApifyApiError: Insufficient permissions for the Actor.
Closed
I have been using the Instagram Scraper just fine, but when I try to create a run with this Actor, I get an error about not having permissions:
ApifyApiError: Insufficient permissions for the Actor. Make sure you're passing a correct API token and that it has the required permissions. clientMethod: ActorClient.start statusCode: 403 type: insufficient-permissions attempt: 1 httpMethod: post path: /v2/acts/0FXVyOXXEmdGcV88a/runs stack: at makeRequest (/Users/jonk/celebrate2/node_modules/apify-client/src/http_client.ts:176:30) at process.processTicksAndRejections (node:internal/process/task_queues:95:5) at ActorClient.start (/Users/jonk/celebrate2/node_modules/apify-client/src/resource_clients/actor.ts:104:26) at startTikTokScraper (/Users/jonk/celebrate2/lib/apify.ts:89:15) at main (/Users/jonk/celebrate2/scripts/apify-test.ts:21:7) data: undefined { clientMethod: 'ActorClient.start', statusCode: 403, type: 'insufficient-permissions', attempt: 1, httpMethod: 'post', path: '/v2/acts/0FXVyOXXEmdGcV88a/runs', originalStack: '\n' + ' at makeRequest (/Users/jonk/celebrate2/node_modules/apify-client/src/http_client.ts:176:30)\n' + ' at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n' + ' at ActorClient.start (/Users/jonk/celebrate2/node_modules/apify-client/src/resource_clients/actor.ts:104:26)\n' + ' at startTikTokScraper (/Users/jonk/celebrate2/lib/apify.ts:89:1... [trimmed]

Hi, thanks for opening this issue!
Can you please share your code? This looks like an issue with the token... Are you using the correct Personal API token from the https://console.apify.com/settings/integrations tab?
Thanks!
it-admin
Here is a function I am using that works (for another actor):
1export async function startInstagramScraper(input: InstagramScraperInput) { 2 const run = await client.actor("shu8hvrXbJbY3Eb9W").start(input) 3 return run 4}
and here is the function I am using for the TikTok scraper, which doesn't work:
1export async function startTikTokScraper(input: TikTokScraperInput) { 2 const run = await client.actor("0FXVyOXXEmdGcV88a").start(input) 3 return run 4}
And for reference, here is the shape of my input to the TikTok scraper:
1type TikTokScraperInput = { 2 profiles: string[] // e.g. [""cost_n_mayor"] 3 resultsPerPage?: number // e.g. 30 4 oldestPostDate?: string // e.g. "2024-05-01" 5}
The only thing different is the input and the ID of the Actor I am calling.
I assume the API token is fine, since it works for the Instagram actor.
Any ideas?

Your token is 99% to blame. Are you sure you are passing it in? When I test the client without any token, I get the same 403 error.
Can you share the whole code with, especially how you create the client
variable as well, please? Obviously, censor the token ;)
jonk-celebrate
Gah sure enough.
Here are my imports:
// these imports must be at the top of the file import { neonConfig } from "@neondatabase/serverless" import "dotenv/config" import ws from "ws" neonConfig.webSocketConstructor = ws
// these imports must be after the other imports import { startTikTokScraper } from "@/lib/apify"
That last import had gotten sorted above the "dotenv/config" import, so the environment variable wasn't loaded when the library was loaded.
So dumb....
Thank you for the help

Hmm, weird, it still shouldn't fail unless the startTikTokScraper
function is called before the "dotenv/config" import
.
But whatever, if it works, it works :D Happy scraping!
Pricing
Pricing model
Pay per resultThis Actor is paid per result. You are not charged for the Apify platform usage, but only a fixed price for each dataset of 1,000 items in the Actor outputs.
Price per 1,000 items
$4.00