Provided by ScrapeCreators
Find ads in the TikTok Ad Library with ScrapeCreators
Ad library search from TikTok via ScrapeCreators. One request per call; the vendor bills the request whether or not data comes back, and a not-found answer is reported as no result.
How to run it
Step 1Set up
Once: paste this into your agent's chat. The Skill installs the CLI and logs in by itself. For an agent that cannot use a shell, connect it over MCP instead.
set up https://glasser.ai/SKILL.md
Show me how to use the ScrapeCreators endpoint /v1/tiktok/ad-library/search on Glasser.glasser run -p scrapecreators -e '/v1/tiktok/ad-library/search' -i '{"query":"The Creator Loop"}' --endpoint-version 4Uses endpoint version 4. Inspect the current price before running. Install and log in first on Get Started.
Once per Run:
IDEMPOTENCY_KEY=$(uuidgen)Run it, and copy this same block to send it again:
curl -X POST https://api.glasser.ai/v1/runs \
-H "Authorization: Bearer gl_..." \
-H "Idempotency-Key: $IDEMPOTENCY_KEY" \
-H "Content-Type: application/json" \
-d '{"provider":"scrapecreators","endpoint":"/v1/tiktok/ad-library/search","input":{"query":"The Creator Loop"},"endpoint_version":4}'Reuse the same Idempotency-Key to send it again: the second send is a read of the first Run. A new key is a new Run and a new Charge. Uses endpoint version 4; inspect the current price before running.
Step 2Try a specific example task
When you need to plan campaign messaging, you might research relevant ads to find angles worth considering for your creative brief.
Copy this prompt into your agent to research messaging angles for your campaign.
Use scrapecreators:/v1/tiktok/ad-library/search on Glasser.
Find messaging angles in the returned ad data that relate to my campaign topic.Endpoint structure
{
"anyOf": [
{
"type": "object",
"required": [
"query"
],
"properties": {
"query": {
"type": "string",
"maxLength": 2048,
"minLength": 1,
"description": "General ad search text. Send either query or advertiser_name, never both; to list one advertiser's ads use advertiser_name instead."
},
"cursor": {
"type": "string",
"maxLength": 2048,
"minLength": 1,
"description": "Opaque cursor from the previous response; omit on page one."
}
},
"additionalProperties": false
},
{
"type": "object",
"required": [
"advertiser_name"
],
"properties": {
"cursor": {
"type": "string",
"maxLength": 2048,
"minLength": 1,
"description": "Opaque cursor from the previous response; omit on page one."
},
"adv_biz_ids": {
"type": "string",
"pattern": "^\\d{1,32}$",
"description": "TikTok advertiser business ID from a \"See all ads\" link, e.g. \"7078923208527618049\". Only together with advertiser_name; pins the exact advertiser."
},
"advertiser_name": {
"type": "string",
"maxLength": 2048,
"minLength": 1,
"description": "Advertiser name, e.g. \"Gymshark\". Send either advertiser_name or query, never both."
}
},
"additionalProperties": false
}
],
"$schema": "http://json-schema.org/draft-07/schema#"
}{
"query": "The Creator Loop"
}This Endpoint publishes no output schema. You get the Provider's own response body, unchanged — we do not warrant a shape we cannot guarantee.
How pricing works
| Data returned or no match | The same price with or without matching data. | $0.00188 |
|---|---|---|
| Provider error | The Provider failed to answer. | $0.00 |
| Timed out | The Run exceeded its time limit. | $0.00 |
| Internal failure | An internal error prevented completion. | $0.00 |