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
- Influencer content analysis: Fetch the recent media feed of an influencer partner to analyse their content mix (image vs video vs reel ratio), caption style, and posting frequency before finalising a collaboration brief.
- Competitive content audit: Periodically retrieve a competitor's public media feed (via Business Discovery) to track their content strategy, hashtag use, and engagement patterns.
- Account takeover onboarding: When managing a client's account, retrieve their existing media feed to understand their content history before planning new posts.
- Multi-account reporting: In an agency context, iterate over multiple managed accounts and retrieve each account's recent media for a consolidated engagement report.
- Content calendar gap analysis: Retrieve recent posts to identify posting frequency gaps and feed the results into an AI node that suggests optimal posting times.
Configuration
Connection
| Field | Required | Description |
accessToken | Required | Long-lived Instagram access token stored in BizFirst Credentials Manager. |
igUserId | Required | Instagram Business/Creator account ID whose media to retrieve. |
Operation
| Field | Required | Description |
resource | Required | Must be ig-user. |
operation | Required | Must be get-media. |
limit | Optional | Items per page. Default 25. Max 100. Clamped automatically. |
after | Optional | Cursor from previous page's paging.after for forward pagination. |
fields | Optional | Comma-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
| Error | Cause |
accessToken is required | accessToken field is missing or empty. |
igUserId is required | igUserId field is missing or empty. |
| Graph API error 10 | Business Discovery permission not granted for accessing another account's media. |
Output
Success Port
| Field | Type | Description |
status | string | "success" |
media | array | Array of media item objects with requested fields. |
paging.before | string | Cursor for the previous page. |
paging.after | string | Cursor for the next page. Empty on last page. |
paging.nextUrl | string | Full Graph API URL for the next page. |
paging.previousUrl | string | Full Graph API URL for the previous page. |
payload | string | Raw JSON response. |
Error Port
| Field | Type | Description |
status | string | "error" |
errorCode | string | Graph API error code. |
errorMessage | string | Error description. |
payload | string | Raw 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
| Expression | Value |
{{ $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
- Business Discovery: Accessing another user's media requires that user to have a Business or Creator account and requires
instagram_manage_insights permission.
- Rate limit: 200 calls per user per hour. Business Discovery calls count toward this limit.
- Media URL expiry:
media_url values are temporary CDN URLs. Store id and permalink as durable references.
- GDPR: Media content and captions may contain personal data. Apply appropriate data minimisation and retention policies when storing retrieved media records for third-party users.
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.