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 working
  • expired - Access token has expired, needs reconnection
  • token_invalid - Token became invalid, needs reconnection
  • disconnected - 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