Instagram Accounts API
Overview
The Instagram Accounts API endpoint allows you to retrieve profile information for your connected Instagram accounts, including biography, follower counts, profile pictures, and more.
Endpoint
GET /api/v1/accounts
Authentication
Include your API key as a query parameter:
?api_key=YOUR_API_KEY
Response Format
The API returns a JSON:API compliant response with the following structure:
Success Response (200 OK)
{
"data": [
{
"type": "instagram-accounts",
"id": "1",
"attributes": {
"instagramUserId": "9703719383064401",
"username": "your_username",
"name": "Your Display Name",
"biography": "Your Instagram bio \ud83d\ude80",
"website": "https://yourwebsite.com",
"profilePictureUrl": "https://scontent.cdninstagram.com/...",
"followersCount": 1234,
"followsCount": 567,
"mediaCount": 89,
"status": "active",
"profileLastUpdatedAt": "2025-10-04T08:45:34+00:00",
"lastFetchAt": "2025-10-04T08:45:34+00:00"
}
}
],
"meta": {
"total": 1
}
}
Response Fields
| Field | Type | Description |
|---|---|---|
instagramUserId |
string | Instagram's unique ID for this account |
username |
string | Instagram username (handle) |
name |
string | Display name on Instagram |
biography |
string|null | Instagram bio text |
website |
string|null | Website URL from Instagram profile |
profilePictureUrl |
string|null | URL to profile picture image |
followersCount |
integer|null | Number of followers |
followsCount |
integer|null | Number of accounts following |
mediaCount |
integer|null | Total media items on Instagram |
status |
string | Account status: active, expired, token_invalid, disconnected |
profileLastUpdatedAt |
string|null | ISO 8601 timestamp of last profile data update |
lastFetchAt |
string|null | ISO 8601 timestamp of last post fetch |
Profile Data Updates
Profile data (biography, follower counts, etc.) is automatically updated once per day when posts are fetched. The profileLastUpdatedAt timestamp shows when profile data was last refreshed.
Account Status Values
active- Account is connected and workingexpired- Access token has expired, needs reconnectiontoken_invalid- Token became invalid, needs reconnectiondisconnected- Account was manually disconnected
Example Requests
cURL
curl 'https://feedframer.com/api/v1/accounts?api_key=YOUR_API_KEY'
JavaScript (Fetch)
const apiKey = 'YOUR_API_KEY';
fetch(`https://feedframer.com/api/v1/accounts?api_key=${apiKey}`)
.then(response => response.json())
.then(data => {
console.log('Instagram Accounts:', data.data);
});
PHP
<?php
$apiKey = 'YOUR_API_KEY';
$url = "https://feedframer.com/api/v1/accounts?api_key={$apiKey}";
$response = file_get_contents($url);
$data = json_decode($response, true);
foreach ($data['data'] as $account) {
echo $account['attributes']['username'] . "\n";
}
Python
import requests
api_key = 'YOUR_API_KEY'
url = f'https://feedframer.com/api/v1/accounts?api_key={api_key}'
response = requests.get(url)
accounts = response.json()['data']
for account in accounts:
print(account['attributes']['username'])
Use Cases
Display Instagram Profile Header
Use account data to show Instagram profile information on your website:
fetch(`https://feedframer.com/api/v1/accounts?api_key=${apiKey}`)
.then(res => res.json())
.then(data => {
const account = data.data[0].attributes;
document.querySelector('.profile-pic').src = account.profilePictureUrl;
document.querySelector('.username').textContent = '@' + account.username;
document.querySelector('.bio').textContent = account.biography;
document.querySelector('.followers').textContent = account.followersCount;
});
Show Social Proof
Display follower counts as social proof:
<div class="social-stats">
<span id="followers">0</span> followers
</div>
<script>
fetch(`https://feedframer.com/api/v1/accounts?api_key=${apiKey}`)
.then(res => res.json())
.then(data => {
const followers = data.data[0].attributes.followersCount;
document.getElementById('followers').textContent = followers.toLocaleString();
});
</script>
Multiple Accounts
If you have multiple Instagram accounts connected (Premium tier), loop through them:
fetch(`https://feedframer.com/api/v1/accounts?api_key=${apiKey}`)
.then(res => res.json())
.then(data => {
data.data.forEach(account => {
const attrs = account.attributes;
console.log(`${attrs.name} (@${attrs.username})`);
console.log(`Followers: ${attrs.followersCount}`);
console.log(`Bio: ${attrs.biography}`);
});
});
Error Responses
401 Unauthorized - Missing API Key
{
"errors": [
{
"status": "401",
"code": "MISSING_API_KEY",
"title": "Authentication Required",
"detail": "API key is required. Include it as a query parameter: ?api_key=YOUR_KEY"
}
]
}
401 Unauthorized - Invalid API Key
{
"errors": [
{
"status": "401",
"code": "INVALID_API_KEY",
"title": "Authentication Failed",
"detail": "The provided API key is invalid."
}
]
}
429 Too Many Requests
{
"errors": [
{
"status": "429",
"code": "RATE_LIMIT_EXCEEDED",
"title": "Rate Limit Exceeded",
"detail": "Too many requests. Please try again later."
}
]
}
Rate Limits
There are no rate limits! Both free and premium tiers include unlimited API requests. You can make as many requests as you need.
Combining with Posts API
Fetch both account info and posts together:
const apiKey = 'YOUR_API_KEY';
// Get account info
const accountResponse = await fetch(
`https://feedframer.com/api/v1/accounts?api_key=${apiKey}`
);
const accounts = await accountResponse.json();
// Get posts
const postsResponse = await fetch(
`https://feedframer.com/api/v1/me?api_key=${apiKey}&page[size]=12`
);
const postsData = await postsResponse.json();
// Render profile header with account info
renderProfile(accounts.data[0].attributes);
// Render Instagram feed with posts
renderFeed(postsData.posts);
Next Steps
- REST API Reference - Complete posts API documentation
- GraphQL API - GraphQL endpoint (coming soon)
- Code Examples - Framework-specific integration guides