Portal Community
7-day hashtag limit: Instagram limits each user to searching 30 unique hashtags per 7 days. Unique means distinct hashtag names — searching the same hashtag again counts only once. Cache hashtagId values in your database to avoid re-querying. Do not search the same hashtag in multiple workflows without caching.

When to Use

Configuration

Connection

FieldRequiredDescription
accessTokenRequiredLong-lived Instagram access token stored in BizFirst Credentials Manager.
igUserIdRequiredYour Instagram Business/Creator account ID. Required by the Graph API for hashtag search context.

Operation

FieldRequiredDescription
resourceRequiredMust be ig-hashtag.
operationRequiredMust be search.
queryRequiredHashtag name to search (without the # symbol, e.g. fashion not #fashion). Case-insensitive.

Sample Configuration JSON

{
  "resource": "ig-hashtag",
  "operation": "search",
  "accessToken": "{{ $credential.instagram.accessToken }}",
  "igUserId": "17841400000000000",
  "query": "sustainablefashion"
}

Validation Errors

ErrorCause
accessToken is requiredaccessToken field is missing or empty.
igUserId is requiredigUserId field is missing or empty.
query is requiredquery field is missing or empty.
Graph API error 2207013Weekly unique hashtag search limit (30) exceeded.

Output

Success Port

FieldTypeDescription
statusstring"success"
hashtagIdstringStable Graph API hashtag ID. Pass to hashtag/getRecentMedia or hashtag/getTopMedia.
namestringConfirmed hashtag name as stored in Graph API.
payloadstringRaw JSON response from the Graph API.

Error Port

FieldTypeDescription
statusstring"error"
errorCodestringGraph API error code.
errorMessagestringError description.
payloadstringRaw error response.

Sample Output JSON

{
  "status": "success",
  "hashtagId": "17843819102081146",
  "name": "sustainablefashion",
  "payload": "{\"data\":[{\"id\":\"17843819102081146\"}]}"
}

Expression Reference

ExpressionValue
{{ $output.instagram.hashtagId }}Hashtag ID for getRecentMedia / getTopMedia
{{ $output.instagram.name }}Confirmed hashtag name string

Node Policies & GuardRails

Examples

Campaign hashtag setup with caching

// Step 1: Check cache (database lookup node)
// If not cached:
{
  "resource": "ig-hashtag",
  "operation": "search",
  "accessToken": "{{ $credential.instagram.accessToken }}",
  "igUserId": "17841400000000000",
  "query": "{{ $input.hashtagName }}"
}
// Step 2: Store hashtagId in DB for future use

Monitor three campaign hashtags

[
  { "query": "yourbrandname" },
  { "query": "summercollection2025" },
  { "query": "sustainablefashion" }
]

Run each through hashtag/get once at campaign start, store the three hashtagId values, then use them in the daily monitoring workflow with hashtag/getRecentMedia without re-resolving the names.