Blog/Social data
12 min read

Oumomo Generates the Ad. TikTok Data Decides Which One.

An AI video tool makes whatever you ask. One TikTok search call returned twenty videos with a fifteenfold spread in likes, and that spread is the brief.

Oumomo Generates the Ad. TikTok Data Decides Which One.

An AI video tool will make whatever you ask it for. That is the useful part and it is also the trap. Oumomo turns a product link, a reference format or a short brief into a finished TikTok video, and it will do that just as cheerfully for a bad idea as for a good one. The generator is not the constraint any more. The brief is.

Somebody on r/ClaudeAI posted their first day on TikTok: four hundred likes and ninety saves on video one, built with Claude, the TikHub API and n8n. Read the stack rather than the result. Half of it is a video tool. The other half is a data call that told them what the video should be.

Fair disclosure before anything else. You are on the Monid blog, Monid is the data half described below, and Oumomo is a content partner of ours. Oumomo is not in the Monid catalogue and this article is not selling you a bundle. The two products sit on opposite sides of the same job, which is why the split is worth writing down.

Why does a good AI video generator still produce ads nobody watches?

Because generation and research fail in opposite directions, and only one of them is visibly broken.

A weak generator produces something you can see is wrong: a warped label, six fingers, a product that changes shape between shots. You catch it in review and regenerate. A weak brief produces something that looks completely fine. Correct product, clean lighting, readable text, sensible pacing. It just answers a question nobody was asking, and you find that out four days after publishing, from a flat view count that tells you nothing about which part to change.

The usual advice for this is right as far as it goes: no tool can promise a video will go viral, so make a small batch of controlled versions and change one variable at a time. Follow it and you immediately hit the gap. Controlled versions need a control. Something has to say which hook, which length, which use case is worth the first test, or version A and version B are both guesses and the comparison between them measures nothing.

That something is public and it is already on the platform. Every product category on TikTok has a few hundred videos that have already run the experiment.

One keyword goes out, one search call comes back, and four decisions fall out of the same response before any video is generated.
One keyword goes out, one search call comes back, and four decisions fall out of the same response before any video is generated.

What is the best API for TikTok data?

There is no official one for this job, which is the first thing to know. The TikTok Research API is gated to accredited academic use, and the Display API only reaches accounts that have authorised your app. Neither reads a keyword's public search results, which is the exact thing a creative brief needs.

So every answer here is a third party reading public pages, and the honest question is which one, at what billing shape, returning which fields. TikHub is the one used below, reachable through TikHub on Monid without a separate account or key.

Which endpoint does the job

tikhub /api/v1/tiktok/app/v3/fetch_video_search_result takes a keyword and returns ranked video results with full statistics attached. The parameters that matter for creative research are sort_type (relevance or most likes), publish_time (a rolling window in days), region, and count.

The v3 app endpoint is the one to use. There is an older web search endpoint in the same catalogue at the same price; it is thinner, and the app version is what returns the statistics block this whole exercise depends on.

For agents

Grab an API key at app.monid.ai, then paste this to your agent and hand it the key:

set up https://monid.ai/SKILL.md

It learns the discover, inspect and run workflow itself. More detail in the agent quickstart.

For humans

npm install -g @monid-ai/cli
monid keys add --label main --key <your-api-key>

More detail in the CLI quickstart.

The call

One keyword, one call, top twenty by likes, last thirty days:

monid run -p tikhub \
  -e /api/v1/tiktok/app/v3/fetch_video_search_result \
  --query '{"keyword":"portable blender","count":20,"sort_type":1,"publish_time":30,"region":"US"}' \
  -w -o tt.json

--query rather than -i, because this endpoint takes query parameters and not a body. Getting that backwards returns a schema error rather than a bill, which is the good failure mode.

What comes back

The videos arrive under search_item_list, each wrapped as aweme_info, with roughly a hundred and fifty fields per video. Four of them carry the brief:

  • statistics holds digg_count, play_count, comment_count, collect_count and share_count separately, so saves and shares can be read against likes rather than folded into one engagement number.
  • video.duration is in milliseconds, and it is the field most people forget to look at.
  • text_extra carries the hashtags as structured entries, and desc carries the caption the creator actually wrote.
  • region and desc_language sit on each video, which turns out to matter more than expected.

Nine of the twenty results carried commerce metadata, marking them as shoppable rather than organic. That flag is worth reading before you copy a format: an organic video and a shop video are optimised against different things.

TikTok tools compared: which one should you use?

The comparison that decides your bill is not feature lists, it is billing shape.

AxisTikHubApify TikTok actors
Billing shapePer call, flat, whatever the result countPer result
One keyword sweepOne charge for twenty videosTwenty charges for twenty videos
Deep history on one accountWeakerStronger
Field depth per videoHigh, statistics fully broken outHigh, shaped differently
Best fit hereWide, repeated, shallow readsDeep pulls on a known account

Creative research is wide and shallow and repeated, which is the per call quadrant. Auditing one competitor account's entire back catalogue is deep and one off, which is the per result quadrant. We priced the two against each other in more detail, and the cross-platform version of the same question lives in the social scraping guide.

What does the data actually tell you to put in the brief?

Four things fell out of that one response, and three of them contradict what a default brief would have said.

One search call, four independent signals, each of which changes a different line of the brief.
One search call, four independent signals, each of which changes a different line of the brief.

The spread tells you whether the category is winnable. Median likes across the twenty were 362. The top video had 5,550. That is a fifteenfold gap inside a single keyword's top results over thirty days, which means format is doing the work, not luck and not budget. A category where the top and the median sit close together is one where creative barely moves the outcome, and that is worth knowing before you commission a batch.

The duration contradicts the house style. Durations ran from fourteen seconds to a hundred and sixty eight. The default brief for a product video is fifteen seconds, and the two best performers in this sample were a hundred and sixty eight seconds and eighty nine seconds. The winner was an ASMR piece, "Foods Vs Portable Blender", not an ad. If you brief a fifteen second demo here because fifteen seconds is what short form means, you have ruled out the format that won, before writing a word.

Follower count is not the gate, and the data says so bluntly. One video in the sample pulled 196,496 plays from an account with seventy two followers. Another account with 217,396 followers managed 23,612 plays on its video. Whatever is being ranked, it is not audience size. That is the single most useful thing to tell a team that has been told to build a following first.

The region parameter is not the market filter you think it is. The call asked for region: US. The twenty results came back tagged PK, GB, US, ID, BR and NG, and the top performer was uploaded from Pakistan. Two of the twenty captions were in Spanish. The parameter shapes which feed the search runs against; it does not hand you a list of local creators. If you are localising for one market, as you should be, read region and desc_language on each result rather than trusting the request.

That is one keyword and twenty videos, and it is a sample, not a law. Run it on your own category before believing any of the specific numbers. The method survives; the figures are yours to re-measure.

From here the same catalogue answers the adjacent questions with the same key. Take the account behind the outlier and pull its full profile and video history, or go one step further into a full dataset. Read the comments on the winning video to find the objection the video did not answer, which is usually the next video. Then, if the product sells on a marketplace too, what buyers complain about in reviews and which keyword the listing actually competes on fill in the parts TikTok cannot see.

Give this to your agent

$Set up https://monid.ai/SKILL.md, and then use Monid to search TikTok for my product keyword, sorted by likes over the last 30 days, and tell me the duration, hashtags and region of the top five results.

How do you hand that brief to Oumomo?

This is where the split gets clean, because Oumomo is built around exactly the three inputs the research produces.

Viral Remake takes the reference. Oumomo's own framing is the right one: the reference should guide pacing and story order, not supply another creator's footage or wording. The research half tells you which reference to hand it. Without the search call, picking the reference is scrolling, and scrolling selects for what you happened to see rather than what actually outperformed.

Link to Video takes the product. Point it at a listing and the accurate product information comes across without rebuilding scenes by hand. What research adds here is the choice the tool cannot make for you: whether this video opens on the problem, the result, or the surprising use case.

The Viral Script Generator takes the angle. The measured findings above are script constraints. Length between eighty and a hundred and seventy seconds rather than fifteen. Test the ASMR format alongside the demo. Do not assume a US framing just because the search said US.

Oumomo also handles scheduling and publishing through TikTok's official API, which closes the loop back to where this started: publish, wait, then re-run the same search and see whether the format that won last month still wins. That loop is the actual product, and neither half of it works alone.

Localisation is the part this article has only touched, and it is where the generation side has more to say than the data side. A translated caption is not a localised video, because the setting, the casting, the units and the offer usually have to move with it. Their blog covers that half.

For the record on where the generation itself happens: Oumomo runs Seedance, Kling, Veo and Sora under the hood. Monid carries some of the same video models for teams that want to call them directly, and we have written up the difference between the video models and generating a clip straight from a prompt. If you want a workflow around the generation rather than an API call, that is Oumomo's job and not ours.

What does the research half cost to run?

Cheap enough that the cost is not the decision, which is the honest answer and the one the comparison threads never give.

The search endpoint bills per call, flat, at a small fraction of a cent, regardless of how many videos come back. Twenty results or two hundred, the charge is the same. Sweeping thirty keywords across a catalogue lands in small change, and running the same sweep weekly for a year still does not reach the price of one month of a creative research subscription.

That is the shape that matters, not the figure. Per call billing means the cost scales with how often you ask, not with how much comes back, so a wide sweep is cheap and a deep crawl of one account is where you should switch tools. Current numbers live on monid.ai/tools, because a number in an article goes stale silently. The broader argument for per call against a subscription is written up separately.

The real cost is the generation, not the research, which is the point. Research is the cheap half that decides how the expensive half gets spent.

When is this the wrong approach?

Three cases, and none of them is a token paragraph.

When you already know the format works. If you have run fifty videos in this category and the winning structure is settled, more search data is confirmation, not information. Spend the time on production quality instead.

When the product is genuinely new. Search results tell you what worked for products that already exist. For a category with no comparable, there is nothing to read and the first videos are honest exploration. Data helps on round two.

When you need one deep account audit rather than a wide read. Per call billing stops being the advantage the moment you want every video a single competitor has posted for two years. That is a per result job, and an Apify actor does it better. The companion piece walks through auditing a whole catalogue that way, on a real seller account. We resell both routes, so this is not a concession that costs us anything, which is exactly why you should weigh it lightly.

There is also a limit on the whole method. Search results are a ranked view, not a census. You are reading what the platform chose to surface for that query at that moment, which is closer to what a buyer would encounter than to a complete picture. Treat it as a strong sample and re-run it rather than as ground truth.

Conclusion

The best AI video workflow is the one where the generator is never the thing making the creative decision. Oumomo is good at turning a decided brief into a finished, publishable video. A single search call is good at deciding the brief, and it is good at it because the experiment has already been run in public by a few hundred people who did not know they were running it.

The rule worth keeping: before you generate a batch, read one keyword. If the spread between the top and the median is wide, format is winnable and the research pays for itself many times over. If it is narrow, save the money and go work on the product page instead.

FAQ

Is there an official TikTok API for this?

Not for keyword search results. The Research API is restricted to accredited academic and non profit researchers with an approved application, and the Display API only reaches accounts that have authorised your app. Neither reads what a public keyword search returns, so every product doing this reads public pages, whatever it calls itself.

Can I connect this to Claude or another assistant directly?

Yes, and that is the intended shape. Monid ships as an MCP server, so an agent discovers the endpoint, reads its schema and calls it inside a conversation. The prompt block above is a working example. The same setup covers the marketplace side if you also want Amazon keyword and competitor data in the same session.

Does the region parameter give me results from one country?

Not in the way the name suggests. It shapes which regional feed the search runs against, and the sample above returned videos tagged to six different countries under a single US request. Read the per video region and desc_language fields and filter on those if the market matters, which for a localised campaign it does.

How often should I re run the search?

Monthly for a stable category, weekly while a format is actively shifting. The endpoint takes a publish_time window, so a repeat run with a thirty day window naturally shows you what changed rather than the same back catalogue. Wiring it as a scheduled job is written up in tracking TikTok trends on a schedule.

Last updated August 2026.

tiktok data apiai video adstiktok shopcreative research