All use cases

UGC discovery with an API: find posts about your brand

November 8, 2026

Short answer

UGC discovery searches hashtags, keywords and branded sounds every day for posts by real customers, checks transcripts for spoken brand mentions, scores each post, and sends the best ones to a permission request. A daily routine on TikTok, Instagram and YouTube runs about 1,610 credits a month on ScrapeIO, about $3.03 on the $47 pack.

UGC discovery finds posts that real customers made about your brand, so you can thank them, reshare them with permission, license them for ads, or invite the creators into a program. Customers rarely tag the brand. They use a hashtag, say the name on camera, or use your sound. A good routine searches all three.

Who does this and why

  • Community and social teams reshare customer posts and reply to them.
  • Ecommerce and performance teams license customer videos as ads, which often feel more believable than studio work.
  • Creator program managers recruit fans who already make content about the product.

The data you need

StepPlatformEndpointCredits
1. Hashtag feedsTikTokTikTok hashtag search1 per page
1. Hashtag feedsInstagramInstagram hashtag1 per page
1. Hashtag feedsYouTubeYouTube hashtag search1 per page
2. Keyword searchTikTok, InstagramTikTok keyword search, Instagram reels search1 per page
3. Branded soundTikTok, InstagramTikTok sound videos, Instagram audio reels1 per page
4. Spoken mentionsTikTok, InstagramTikTok transcript (1), Instagram transcript (2)1 or 2
5. Shop reviews with mediaTikTok ShopTikTok Shop product reviews1
6. Contact the creatorCross-platformfind creator emails10

Worked example: a daily UGC sweep

  • 5 hashtags on TikTok, Instagram and YouTube, 2 pages each: 5 x 3 x 2 = 30 credits a day.
  • 3 keyword searches on TikTok and Instagram, 1 page each: 6 credits a day.
  • 1 branded TikTok sound, 1 page: 1 credit a day.
  • That is 37 a day, 1,110 credits a month.
  • Transcripts to confirm 10 candidates a day (TikTok, 1 credit): 300 a month.
  • Emails for the 20 creators you pick each month: 20 x 10 = 200 a month.

Total: 1,610 credits a month, about $3.03 on the $47 pack. One pack covers more than a year at this volume, and credits never expire.

Code: sweep hashtags and keep new posts

import requests, json, pathlib

KEY = "YOUR_KEY"
H = {"x-api-key": KEY}
B = "https://scrapeio.com"
seen = pathlib.Path("seen.txt")
done = set(seen.read_text().split()) if seen.exists() else set()
TAGS = ["acmecoffee", "acmecoldbrew"]

found = []
for tag in TAGS:
    for path in ["/v1/tiktok/search/hashtag", "/v1/instagram/hashtag"]:
        r = requests.get(B + path, params={"hashtag": tag}, headers=H, timeout=60).json()
        if not r.get("success"):
            continue
        for p in r["data"]["items"]:
            key = p["platform"] + ":" + p["id"]
            if key in done or p.get("is_ad"):
                continue
            done.add(key)
            found.append({"url": p["url"], "author": (p.get("author") or {}).get("handle"),
                          "plays": p.get("plays"), "likes": p.get("likes"),
                          "followers": (p.get("author") or {}).get("followers")})

seen.write_text("\n".join(done))
print(json.dumps(sorted(found, key=lambda x: -(x["plays"] or 0))[:20], indent=2))

Skipping posts marked as ads keeps paid partnerships out of the organic pile. Check the hashtag parameter name for each endpoint on its page; the Instagram and TikTok ones above both take hashtag.

Score what you find

Rank candidates so a person reviews 20 posts a day, not 300.

  • Relative performance = the post's plays / the author's median plays on recent posts. A post at 5x the creator's normal is resonating, whatever the absolute size.
  • Authenticity: no ad flag, no brand tag in a partnership label, author not on your paid roster.
  • Brand visibility: the product is named in the caption or the transcript, not just in a hashtag list.
  • Fit: on-brand, safe, and usable in your markets. A quick human look is still the best filter here.

A simple score: 2 x relative performance + 1 if spoken mention + 1 if caption mention, with any brand-safety flag dropping the post out.

Pitfalls

  • Permission first. A public post is not a license. Ask the creator in writing before you reshare outside the platform's own share features, and before any paid use. This is not legal advice; get your own terms reviewed.
  • Minors. Skip accounts that appear to belong to children, whatever the post.
  • Misspellings and nicknames. Customers write the brand name wrong. Add the common variants as keywords.
  • Hashtag feeds are ranked. They show what the platform surfaces, not every post. Keyword search and sounds catch some of the rest.
  • Private accounts are not visible and not charged. You will never see that content, so do not plan around it.

For finding contact details responsibly, see influencer email finders. For more on sounds as a discovery channel, see TikTok sound analytics.

Run it from an AI agent

With the MCP server in Claude Code or Cursor, a daily prompt:

Find TikTok and Instagram posts from the last 3 days that use
#acmecoffee or say "acme coffee" on camera. Skip ads and our own
account. Rank by plays relative to each creator's median and
give me the top 10 with links and a one-line reason each.

The agent uses tiktok_search_hashtag, instagram_hashtag, tiktok_search_keyword and tiktok_transcript. It can draft the permission message too; send it yourself.

Doing it with ScrapeIO

Hashtags, keyword search, sounds, transcripts and creator emails are all on one key, with the same post fields on TikTok, Instagram and YouTube. A daily sweep for one brand costs a few dollars a month.

100 free credits, no card. Credits never expire.

Get API key