Extract Instagram data with the Anysite Instagram node for n8n workflows
The Anysite Instagram node enables Instagram data extraction within your n8n workflows. Get user profiles, analyze posts, track hashtags, and monitor engagement metrics for social media analysis.
Select your Anysite API credentials from the dropdown or create new ones.
Extract detailed Instagram user profile information.
Parameters:
Example Output:
{
"user": {
"id": "instagram123",
"username": "travel_blogger",
"displayName": "Sarah's Adventures",
"bio": "Travel enthusiast ✈️ | 50+ countries | Photography tips 📸",
"followers": 125000,
"following": 800,
"posts": 1250,
"isVerified": false,
"isPrivate": false,
"profileImageUrl": "https://instagram.com/profiles/...",
"website": "https://sarahtravels.com",
"category": "Travel"
}
}
Extract posts from a specific Instagram user.
Parameters:
Example Output:
{
"posts": [
{
"id": "post456",
"shortcode": "ABC123def",
"caption": "Amazing sunset in Bali! 🌅 #sunset #bali #travel",
"mediaType": "photo",
"mediaUrl": "https://instagram.com/images/...",
"timestamp": "2024-08-26T18:30:00Z",
"likes": 2800,
"comments": 145,
"hashtags": ["#sunset", "#bali", "#travel"],
"mentions": ["@bali_tourism"],
"location": {
"name": "Tanah Lot, Bali",
"id": "location789"
}
}
]
}
Search for Instagram users by username or bio keywords.
Parameters:
Example Output:
{
"users": [
{
"id": "user789",
"username": "food_critic_nyc",
"displayName": "NYC Food Reviews",
"followers": 85000,
"isVerified": true,
"category": "Food & Drink",
"bio": "NYC's best restaurants 🍽️ | Food critic | DM for collabs"
}
]
}
Get detailed analytics for a specific Instagram post.
Parameters:
Example Output:
{
"post": {
"id": "post123",
"engagement": {
"likes": 3200,
"comments": 189,
"saves": 245,
"shares": 67,
"engagementRate": 4.2
},
"audience": {
"topCountries": ["US", "UK", "Canada"],
"ageGroups": {
"18-24": 35,
"25-34": 45,
"35-44": 20
}
},
"performance": {
"reach": 85000,
"impressions": 125000,
"profileVisits": 450
}
}
}
Search for Instagram users in your niche with high engagement rates.
Get detailed profile information including follower count, engagement, and content themes.
Analyze recent posts to ensure brand alignment and authentic engagement.
Build a database of qualified influencers with contact information and collaboration notes.
Example Workflow:
{
"nodes": [
{
"name": "Search Fashion Influencers",
"type": "@horizondatawave/n8n-nodes-anysite.Instagram",
"operation": "searchUsers",
"parameters": {
"query": "fashion blogger style influencer",
"category": "Fashion",
"limit": 50
}
},
{
"name": "Filter by Followers",
"type": "n8n-nodes-base.filter",
"parameters": {
"conditions": [
{
"field": "followers",
"operation": "greaterThan",
"value": 10000
},
{
"field": "followers",
"operation": "lessThan",
"value": 500000
}
]
}
},
{
"name": "Get Recent Posts",
"type": "@horizondatawave/n8n-nodes-anysite.Instagram",
"operation": "getUserPosts",
"parameters": {
"username": "={{ $json.username }}",
"postCount": 12,
"mediaType": "all"
}
},
{
"name": "Calculate Engagement",
"type": "n8n-nodes-base.function",
"parameters": {
"functionCode": `
const avgLikes = items[0].json.posts.reduce((sum, post) => sum + post.likes, 0) / items[0].json.posts.length;
const engagementRate = (avgLikes / items[0].json.followers) * 100;
return [{
json: {
...items[0].json,
avgLikes,
engagementRate
}
}];
`
}
}
]
}
Track mentions of your brand across Instagram:
Optimize your content strategy based on competitor analysis:
Calculate detailed engagement metrics:
// Comprehensive engagement calculation
{
"engagementMetrics": {
"rate": "={{ (($json.likes + $json.comments) / $json.followers * 100).toFixed(2) }}%",
"likesToCommentsRatio": "={{ ($json.likes / Math.max($json.comments, 1)).toFixed(1) }}",
"avgLikesPerPost": "={{ ($json.totalLikes / $json.postCount).toFixed(0) }}",
"viralityScore": "={{ ($json.likes > ($json.followers * 0.05) ? 'High' : 'Normal') }}"
}
}
Analyze which content types perform best:
{
"name": "Analyze Content Types",
"type": "n8n-nodes-base.function",
"parameters": {
"functionCode": `
const posts = items.map(item => item.json);
const byType = posts.reduce((acc, post) => {
acc[post.mediaType] = acc[post.mediaType] || [];
acc[post.mediaType].push(post);
return acc;
}, {});
const analysis = Object.entries(byType).map(([type, typePosts]) => ({
type,
count: typePosts.length,
avgLikes: typePosts.reduce((sum, p) => sum + p.likes, 0) / typePosts.length,
avgComments: typePosts.reduce((sum, p) => sum + p.comments, 0) / typePosts.length
}));
return [{ json: { contentAnalysis: analysis } }];
`
}
}
Find trending hashtags in your niche:
{
"name": "Extract Hashtags",
"type": "n8n-nodes-base.function",
"parameters": {
"functionCode": `
const allHashtags = items.flatMap(item =>
item.json.posts ? item.json.posts.flatMap(post => post.hashtags || []) : []
);
const hashtagCount = allHashtags.reduce((acc, tag) => {
acc[tag] = (acc[tag] || 0) + 1;
return acc;
}, {});
const trending = Object.entries(hashtagCount)
.sort(([,a], [,b]) => b - a)
.slice(0, 20)
.map(([hashtag, count]) => ({ hashtag, count }));
return [{ json: { trendingHashtags: trending } }];
`
}
}
Analyze hashtag effectiveness:
// Hashtag performance metrics
{
"hashtagAnalysis": {
"totalHashtags": "={{ $json.hashtags.length }}",
"avgEngagement": "={{ ($json.likes + $json.comments) / Math.max($json.hashtags.length, 1) }}",
"topHashtag": "={{ $json.hashtags[0] }}",
"nicheTags": "={{ $json.hashtags.filter(tag => tag.includes('fashion') || tag.includes('style')).length }}"
}
}
Error: 403 - Account is private
Solution:
Error: 404 - User not found
Solution:
Error: 429 - Too many requests
Solution:
{
"name": "Instagram with Retry",
"type": "@horizondatawave/n8n-nodes-anysite.Instagram",
"continueOnFail": true,
"retryOnFail": true,
"maxTries": 3,
"waitBetweenTries": 4000,
"parameters": {
"operation": "getUserProfile",
"username": "{{ $json.username }}"
}
}
Score influencer profiles based on multiple factors:
// Influencer scoring algorithm
{
"influencerScore": {
"followersScore": "={{ Math.min($json.followers / 10000, 10) }}",
"engagementScore": "={{ ($json.engagementRate > 3 ? 10 : $json.engagementRate * 3.33) }}",
"contentScore": "={{ ($json.posts.length > 100 ? 10 : $json.posts.length / 10) }}",
"verificationBonus": "={{ $json.isVerified ? 2 : 0 }}",
"totalScore": "={{ ($json.followersScore + $json.engagementScore + $json.contentScore + $json.verificationBonus) / 3.2 }}"
}
}
Analyze follower demographics and interests:
{
"name": "Analyze Audience",
"type": "n8n-nodes-base.openAi",
"parameters": {
"operation": "analyze",
"prompt": "Based on this Instagram profile bio and recent posts, what audience demographics and interests would this account attract? Bio: {{ $json.bio }}, Recent posts: {{ $json.recentPosts.map(p => p.caption).join(' | ') }}"
}
}
Add qualified influencers to your CRM:
{
"name": "Add to CRM",
"type": "n8n-nodes-base.hubspot",
"parameters": {
"operation": "create",
"resource": "contact",
"data": {
"firstname": "={{ $json.displayName.split(' ')[0] }}",
"lastname": "={{ $json.displayName.split(' ').slice(1).join(' ') }}",
"instagram_handle": "={{ $json.username }}",
"follower_count": "={{ $json.followers }}",
"engagement_rate": "={{ $json.engagementRate }}",
"category": "={{ $json.category }}"
}
}
}
Build content calendar based on competitor analysis:
{
"name": "Generate Content Ideas",
"type": "n8n-nodes-base.openAi",
"parameters": {
"operation": "generate",
"prompt": "Based on these high-performing Instagram posts, generate 5 content ideas for our brand: {{ JSON.stringify($json.topPosts) }}"
}
}
Create Instagram analytics reports:
{
"name": "Generate Report",
"type": "n8n-nodes-base.googleDocs",
"parameters": {
"operation": "create",
"title": "Instagram Analysis Report - {{ new Date().toLocaleDateString() }}",
"content": `
# Instagram Analysis Report
## Top Performers
{{ $json.topInfluencers.map(inf => \`- \${inf.username}: \${inf.followers} followers, \${inf.engagementRate}% engagement\`).join('\\n') }}
## Trending Hashtags
{{ $json.trendingHashtags.map(tag => \`- \${tag.hashtag} (\${tag.count} uses)\`).join('\\n') }}
## Recommendations
{{ $json.recommendations }}
`
}
}
Process multiple accounts efficiently:
{
"name": "Batch Process Users",
"type": "n8n-nodes-base.splitInBatches",
"parameters": {
"batchSize": 10,
"options": {
"reset": false
}
}
}
Cache profile data to reduce API calls:
// Simple caching mechanism
{
"name": "Cache Profile Data",
"type": "n8n-nodes-base.function",
"parameters": {
"functionCode": `
const cacheKey = \`profile_\${items[0].json.username}\`;
const cached = $('Cache').last()?.json?.[cacheKey];
if (cached && Date.now() - cached.timestamp < 3600000) { // 1 hour cache
return [{ json: cached.data }];
}
// Store in cache for next time
const cacheData = {
[cacheKey]: {
data: items[0].json,
timestamp: Date.now()
}
};
return [
{ json: items[0].json },
{ json: cacheData, pairedItem: { item: 0, input: 0 } }
];
`
}
}