
Scrape the TikTok ad library by keyword
From Apify, through Joshu Data Bodega.
Part of TikTok Ads library search.
- Price
- $0.0033 per call$3.30 per 1,000 calls
No calls measured in the last 30 days.
Prices include the router's 10% markup and are paid from the usage wallet. Checked on November 11, 2026.
Inputs
sortstring, optionalad_idstring, optionalfetch one specific ad
limitinteger, optionalresults to return; pair it with maxTotalChargeUsd
offsetinteger, optionalregionstring, optionalISO country code or 'all' (the default). TikTok's library is a DSA transparency database, so coverage is EU/EEA/UK-centric — and per the actor's own input schema it REJECTS region=US; pass 'all' to include US ads
searchstring, requiredkeyword or advertiser name to search the ad library for
timeoutinteger, optionaltreg's key requires 1-90 so the run and its rows arrive before any wait gives up (a larger pull needs your own key)
end_datestring, optionalYYYY-MM-DD
maxItemsinteger, optionaloptional row cap; pay-per-event actors that take the row count from their own input ignore it, so maxTotalChargeUsd is the spend limit
query_typestring, optionalwhich field `search` is matched against: '1' = advertiser name (the actor's DEFAULT), '0' = keyword. A keyword passed without query_type:'0' is matched as an advertiser name and finds nothing
start_datestring, optionalYYYY-MM-DD
adv_biz_idsstring, optionaladvertiser business id, to pin the search to one advertiser instead of a keyword
maxTotalChargeUsdnumber, optionalthe spend cap Apify enforces on every event this run bills, in dollars. treg's key requires it, above 0 and at most 1, and holds it for the call
Call it
curl https://hello.joshu.me/api/router/call \
-H "Authorization: Bearer $JOSHU_ROUTER_KEY" \
-H "Content-Type: application/json" \
-d '{
"endpoint": "apify.tiktok-ads.library.search",
"params": {
"limit": 1,
"offset": 0,
"region": "all",
"search": "nike",
"timeout": 90,
"maxItems": 1,
"query_type": "1",
"maxTotalChargeUsd": 0.05
}
}'