Portal Community
10-result maximum: The Instagram Graph API limits hashtag media results to a maximum of 10 per page. You can paginate using the after cursor, but the total available results are also limited per API design. For high-volume monitoring, use multiple hashtags to broaden coverage.

When to Use

Configuration

Connection

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

Operation

FieldRequiredDescription
resourceRequiredMust be ig-hashtag.
operationRequiredMust be get-recent-media.
hashtagIdRequiredHashtag ID from hashtag/get.
limitOptionalItems per page. Default 25. Clamped to max 100 by BizFirst (Instagram returns at most 10 results regardless).
afterOptionalCursor for pagination from previous page's paging.after.

Sample Configuration JSON

{
  "resource": "ig-hashtag",
  "operation": "get-recent-media",
  "accessToken": "{{ $credential.instagram.accessToken }}",
  "igUserId": "17841400000000000",
  "hashtagId": "{{ $db.hashtagCache.where(name='sustainablefashion').hashtagId }}"
}

Validation Errors

ErrorCause
accessToken is requiredaccessToken field is missing or empty.
igUserId is requiredigUserId field is missing or empty.
hashtagId is requiredhashtagId field is missing or empty. Call hashtag/get first.

Output

Success Port

FieldTypeDescription
statusstring"success"
hashtagIdstringThe hashtag ID that was queried.
mediaarrayArray of recent media objects tagged with the hashtag. Max 10 items per page.
paging.beforestringCursor for the previous page.
paging.afterstringCursor for the next page. Empty on last page.
paging.nextUrlstringFull Graph API URL for the next page.
payloadstringRaw JSON response.

Error Port

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

Sample Output JSON

{
  "status": "success",
  "hashtagId": "17843819102081146",
  "media": [
    {
      "id": "17855590000000020",
      "caption": "Loving my new eco-friendly outfit! #sustainablefashion",
      "media_type": "IMAGE",
      "permalink": "https://www.instagram.com/p/ABCD1234/"
    }
  ],
  "paging": {
    "before": "",
    "after": "QVFIUm...",
    "nextUrl": "https://graph.facebook.com/v18.0/..."
  }
}

Expression Reference

ExpressionValue
{{ $output.instagram.media }}Array of recent media items
{{ $output.instagram.media[0].id }}First media item's ID
{{ $output.instagram.media[0].caption }}First media item's caption
{{ $output.instagram.paging.after }}Next-page cursor
{{ $output.instagram.hashtagId }}Queried hashtag ID

Node Policies & GuardRails

Examples

Hourly brand hashtag UGC monitor

{
  "resource": "ig-hashtag",
  "operation": "get-recent-media",
  "accessToken": "{{ $credential.instagram.accessToken }}",
  "igUserId": "{{ $env.IG_USER_ID }}",
  "hashtagId": "{{ $env.BRAND_HASHTAG_ID }}"
}

Runs hourly via a scheduled trigger. Retrieves the latest 10 posts using your brand hashtag. New posts (compared to the previous run) are queued for community manager review and potential engagement.

Campaign participation counter

{
  "resource": "ig-hashtag",
  "operation": "get-recent-media",
  "accessToken": "{{ $credential.instagram.accessToken }}",
  "igUserId": "17841400000000000",
  "hashtagId": "{{ $db.campaigns.where(id=$input.campaignId).hashtagId }}",
  "after": "{{ $loopState.afterCursor }}"
}

Paginated through multiple calls, counting total media items returned across pages to estimate campaign hashtag participation volume.