Skip to main content
All CollectionsModash API
Discovery API Search Optimization

Discovery API Search Optimization

Use hashtags, topics & bio keywords to build a search UI that mirrors how the Modash Discovery API works.

Niklas Hisinger avatar
Written by Niklas Hisinger
Updated over a week ago


Visualize Best Practices with the Modash Platform

We recommend the developer and implementation team sign up for a trial account on the Modash platform using a different email from the API email.

This allows your team to visually explore best practices for building the Discovery & Search UI leveraging our API. Since our team dogfoods our own API, we've implemented and demonstrated optimal search patterns and performance techniques directly on our platform.


Using Topics for Relevance Filtering

The topics filter is vector-based and shows creators who consistently post about a subject. It’s the closest equivalent to Instagram’s interests filter on other platforms.

TikTok and Instagram

  • Topic clusters are built from hashtag and caption patterns.

  • Use /tiktok/topics to explore related tags before searching.

  • Combine with bio and hashtags for tighter targeting.

YouTube

  • Topics are extracted from metadata (titles, descriptions, keywords).

  • Avoid relying on YouTube hashtags; they’re often generic or copy-pasted.

Example Query

{
"page": 0,
"sort": {
"field": "followers",
"direction": "desc"
},
"filter": {
"influencer": {
"relevance": [
"#food",
"@jamieoliver"
],
"bio": "chef",
"textTags": [
{
"type": "hashtag",
"value": "recipes"
},
{
"type": "hashtag",
"value": "cooking"
}
]
}
}
}

Returns creators whose content aligns with the food topic cluster, mention “chef” in their bio, and use food-related hashtags.


Searching Influencers Using Bio

Use the bio filter to identify creators based on how they describe themselves.

⚠️ Important:

  • Bio matches are exact word matches only — "makeup""makeupartist"

  • Bio filter also checks username and full name, not just bio text

Best Practices:

  • Add multiple Bio variants: "makeup artist", "MUA", "beauty expert"

  • Combine with location, followers_min/max, and engagement_rate_min

Example Query

{
"page": 0,
"sort": {
"field": "followers",
"direction": "desc"
},
"filter": {
"influencer": {
"bio": "makeup artist",
"location": [148838],
"followers": {
"min": 10000,
"max": 100000
},
"engagementRate": 0.02
}
}
}

🔹 Returns US-based makeup artists with 10k–100k followers and 2%+ engagement.


Searching Influencers Using Hashtags

Use the hashtags filter to find influencers who have used specific tags in their post captions.

⚠️ Limitations:

  • Matches exact hashtag usage in captions only

  • ❌ Does not search comments, video metadata, or detect related hashtags

  • ❌ No semantic expansion (e.g., #fitness#fitlife)

Best Practices:

  • Use trending or niche-specific hashtags

  • Combine 2–5 related tags for broader reach

  • Always apply location and follower range to reduce noise

Example Query

{
"page": 0,
"sort": {
"field": "followers",
"direction": "desc"
},
"filter": {
"influencer": {
"textTags": [
{
"type": "hashtag",
"value": "fitness"
},
{
"type": "hashtag",
"value": "gym"
}
],
"location": [148838],
"followers": {
"min": 5000,
"max": 50000
}
}
}
}

🔹 Finds fitness creators in the US with 5k–50k followers who use these hashtags in captions.


Expanding Search Results Using Lookalikes

Use the lookalike filter to find influencers with similar content patterns to a known creator.

⚠️ Note: Lookalikes are based on content similarity (topics, captions, hashtags) — not on audience overlap or interests.

Best Use Cases:

  • Expand results from narrow or niche filters

  • Discover similar creators, but don’t use obvious keywords or hashtags

Example Query

{
"page": 0,
"sort": {
"field": "followers",
"direction": "desc"
},
"filter": {
"influencer": {
"relevance": [
"@@top_chef_influencer"
]
}
}
}

🔹 Returns creators who post content similar to @top_chef_influencer.

You can also search with multiple handles:

{ "filters": { "relevance": ["@influencer1", "@influencer2"] } }

UI-Based Optimization for Search Performance

To save credits and improve search UX, implement these UI behaviors:

Debounce Input Before Calling API

let timeout; document.getElementById('searchInput').addEventListener('input', function(event) { clearTimeout(timeout); const query = event.target.value; if (query.length >= 4) { timeout = setTimeout(() => { fetchInfluencerSearch(query); }, 500); } });

Use Pagination

{ "limit": 15, "offset": 30 }
  • Start with limit: 15 (one page)

  • Use offset for loading more

Credit-Saving Tips

  • Avoid sending API calls with <4 character queries

  • Cache recent searches by keyword or handle

  • Use batch fetching for /report endpoint (1 credit per profile)

ℹ️ If no sort is applied, results default to descending follower count

When to Leverage RAW API for Fresh Data

While Discovery API is optimized for search and initial discovery workflows, there are specific use cases where fresh, real-time data is critical.

For example, when a user clicks on an influencer profile to access detailed reports within the Modash UI, we trigger a RAW API request in real-time to fetch the latest follower count and metrics. This ensures that users always interact with the most recent and accurate influencer data.


Summary & Best Practices

✅ Use topics to find creators aligned with long-term interests
✅ Use bio for exact-match keyword targeting
✅ Use hashtags to capture specific campaign or niche terms
✅ Combine filters: bio + hashtags + location + followers + ER
✅ Use lookalike to uncover hidden creators and expand reach
✅ Debounce input, paginate results, and cache data to save credits

📘 For full technical details and filters, visit the Modash API Documentation


Step-by-Step Filtering Strategy (Avoid Over-Filtering)

Combining bio, topics, hashtags, and mentions too early can lead to zero results, especially for niche use cases. Instead, build filters gradually to help users discover relevant creators step by step.

🔹 Step 1: Start Broad — Topic-Based Filtering

{
"page": 0,
"limit": 15,
"sort": {
"field": "followers",
"direction": "desc"
},
"filter": {
"influencer": {
"relevance": [
"#food"
]
}
}
}

🔹 Step 2: Add a Bio Keyword

{
"page": 0,
"limit": 15,
"sort": {
"field": "followers",
"direction": "desc"
},
"filter": {
"influencer": {
"relevance": [
"#food"
],
"bio": "chef"
}
}
}

🔹 Step 3: Layer in One Hashtag

{
"page": 0,
"limit": 15,
"sort": {
"field": "followers",
"direction": "desc"
},
"filter": {
"influencer": {
"relevance": [
"#food"
],
"bio": "chef",
"textTags": [
{
"type": "hashtag",
"value": "recipes"
}
]
}
}
}

🔹 Step 4: Expand with Location or Engagement Filters

{
"page": 0,
"limit": 15,
"sort": {
"field": "followers",
"direction": "desc"
},
"filter": {
"influencer": {
"relevance": [
"#food"
],
"bio": "chef",
"textTags": [
{
"type": "hashtag",
"value": "recipes"
}
],
"location": [148838],
"engagementRate": 0.02
}
}
}

Best Practice Reminder:

  • Build your UI to apply filters incrementally, not all at once.

  • Highlight how each filter affects result volume.

  • Let users easily remove filters if no results are returned.

  • Always include limit, page, and sort objects in search calls to control pagination and output relevance.


📩 Need Help?

Email us at hello+api@modash.io or explore full documentation at docs.modash.io

Did this answer your question?