Portal Community
Equivalent to media/getMany: This operation and media/getMany call the same underlying Graph API endpoint (/{ig-user-id}/media). Use user/getMedia when you want to explicitly emphasise that you are fetching a specific user's media, including via Business Discovery for another account.

When to Use

Configuration

Connection

FieldRequiredDescription
accessTokenRequiredLong-lived Instagram access token stored in BizFirst Credentials Manager.
igUserIdRequiredInstagram Business/Creator account ID whose media to retrieve.

Operation

FieldRequiredDescription
resourceRequiredMust be ig-user.
operationRequiredMust be get-media.
limitOptionalItems per page. Default 25. Max 100. Clamped automatically.
afterOptionalCursor from previous page's paging.after for forward pagination.
fieldsOptionalComma-separated fields per media item: id,caption,media_type,media_url,like_count,comments_count,permalink,timestamp.

Sample Configuration JSON

{
  "resource": "ig-user",
  "operation": "get-media",
  "accessToken": "{{ $credential.instagram.accessToken }}",
  "igUserId": "{{ $input.targetIgUserId }}",
  "limit": 25,
  "fields": "id,caption,media_type,like_count,comments_count,timestamp,permalink"
}

Validation Errors

ErrorCause
accessToken is requiredaccessToken field is missing or empty.
igUserId is requiredigUserId field is missing or empty.
Graph API error 10Business Discovery permission not granted for accessing another account's media.

Output

Success Port

FieldTypeDescription
statusstring"success"
mediaarrayArray of media item objects with requested fields.
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.
paging.previousUrlstringFull Graph API URL for the previous page.
payloadstringRaw JSON response.

Error Port

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

Sample Output JSON

{
  "status": "success",
  "media": [
    {
      "id": "17855590000000010",
      "caption": "New collection drop! #fashion",
      "media_type": "IMAGE",
      "like_count": 1203,
      "comments_count": 48,
      "timestamp": "2025-06-14T09:00:00+0000",
      "permalink": "https://www.instagram.com/p/XYZ789/"
    }
  ],
  "paging": {
    "before": "QVFIUm...",
    "after": "QVFIUm2...",
    "nextUrl": "https://graph.facebook.com/v18.0/...",
    "previousUrl": ""
  }
}

Expression Reference

ExpressionValue
{{ $output.instagram.media }}Full media array
{{ $output.instagram.media[0].id }}First media item's ID
{{ $output.instagram.media[0].likeCount }}First media item's like count
{{ $output.instagram.paging.after }}Next-page cursor for pagination

Node Policies & GuardRails

Examples

Influencer content mix analysis

{
  "resource": "ig-user",
  "operation": "get-media",
  "accessToken": "{{ $credential.instagram.accessToken }}",
  "igUserId": "{{ $input.influencerIgId }}",
  "limit": 50,
  "fields": "id,media_type,like_count,comments_count,timestamp"
}

Retrieves the last 50 posts. The next node calculates the ratio of IMAGE, VIDEO, and CAROUSEL_ALBUM types and average engagement per type to inform campaign format decisions.

Multi-account agency report

{
  "resource": "ig-user",
  "operation": "get-media",
  "accessToken": "{{ $credential.instagram.accessToken }}",
  "igUserId": "{{ $loop.current.clientIgId }}",
  "limit": 12,
  "fields": "id,media_type,like_count,comments_count,permalink,timestamp"
}

Used in a loop over client account IDs. Retrieves the last 12 posts per client for a weekly engagement summary report sent to each client automatically.