FastSocial API

Instagram API

Instagram data as clean JSON.

Follower counts, profiles, posts, reels, stories and engagement rate for any public account. One request, one key, simple credits.

Free plan: 50 credits a month, no card.

GEThttps://data.fastsocial.co/v1/profile?username=nasa
{
  "ok": true,
  "data": {
    "username": "nasa",
    "full_name": "NASA",
    "followers": 97000000,
    "following": 80,
    "posts_count": 4300,
    "is_verified": true,
    "category": "Government organization"
  },
  "meta": {
    "cache": "hit",
    "credits": 1
  }
}
200 OK1 credit

Your first call in a minute

  1. Pick a plan and get a key
  2. Send it as X-API-Key
  3. Read data from the response
curl "https://data.fastsocial.co/v1/profile?username=nasa" \
  -H "X-API-Key: $FASTSOCIAL_API_KEY"
import os
import requests

r = requests.get(
    "https://data.fastsocial.co/v1/profile",
    params={"username": "nasa"},
    headers={"X-API-Key": os.environ["FASTSOCIAL_API_KEY"]},
    timeout=30,
)
r.raise_for_status()
print(r.json()["data"])
const url = new URL("https://data.fastsocial.co/v1/profile");
url.search = new URLSearchParams({ username: "nasa" });

const res = await fetch(url, { headers: { "X-API-Key": API_KEY } });
const body = await res.json();
if (!body.ok) throw new Error(body.error.code);
console.log(body.data);
// Call from your server or a worker, never from a public web page: the key must stay secret.
// Node 18+ (built-in fetch). Run as an ES module: node app.mjs
const url = new URL("https://data.fastsocial.co/v1/profile");
url.search = new URLSearchParams({ username: "nasa" });

const res = await fetch(url, { headers: { "X-API-Key": process.env.FASTSOCIAL_API_KEY } });
const { ok, data, error } = await res.json();
if (!ok) throw new Error(error.code);
console.log(data);
<?php
$url = "https://data.fastsocial.co/v1/profile?" . http_build_query(['username' => "nasa"]);

$ch = curl_init($url);
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HTTPHEADER => ["X-API-Key: " . getenv("FASTSOCIAL_API_KEY")],
    CURLOPT_TIMEOUT => 30,
]);
$body = json_decode(curl_exec($ch), true);
curl_close($ch);
print_r($body["data"]);
package main

import (
	"fmt"
	"io"
	"net/http"
	"net/url"
	"os"
)

func main() {
	q := url.Values{}
	q.Set("username", "nasa")
	req, _ := http.NewRequest("GET", "https://data.fastsocial.co/v1/profile?"+q.Encode(), nil)
	req.Header.Set("X-API-Key", os.Getenv("FASTSOCIAL_API_KEY"))

	res, err := http.DefaultClient.Do(req)
	if err != nil {
		panic(err)
	}
	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)
	fmt.Println(string(body))
}
require "net/http"
require "json"

uri = URI("https://data.fastsocial.co/v1/profile")
uri.query = URI.encode_www_form({"username" => "nasa"})

req = Net::HTTP::Get.new(uri)
req["X-API-Key"] = ENV["FASTSOCIAL_API_KEY"]
res = Net::HTTP.start(uri.host, uri.port, use_ssl: true) { |http| http.request(req) }
puts JSON.parse(res.body)["data"]

What people build with it

Anything that needs Instagram numbers without a login or a scraper to babysit.

Vet creators before you pay them

Follower count, engagement rate and posting rhythm for any public account, so a 200K account with 0.1% engagement is obvious before the contract.

Show live follower counts

Put an account's current followers on a dashboard, a portfolio or a client report. Refresh as often as your plan allows.

Check handles at signup

Ask whether a handle exists and is public before you save it. Exact matches only, so a typo never resolves to a stranger.

Research content

Recent posts and reels with likes, comments, views, captions and formats. Enough to spot what works in a niche.

Endpoints

Public accounts only. Full parameters, examples and errors are in the docs.

/v1/profileGet an Instagram profile. Follower, following and post counts, bio, links, category, verification and the HD profile picture of any public account. 1 credit /v1/user-idInstagram username to user id. The numeric user id for a handle. Every endpoint also accepts either one directly, so you rarely need this. 1 credit /v1/usernameInstagram user id to username. The current handle for a numeric user id, which still works after the account renames itself. 3 credits /v1/checkCheck if an Instagram handle exists and is public. Does this handle exist, and is it public? States: ok, not_found, private, deactivated, memorialized, age_restricted, restricted_minor. Exact match only, so a typo never resolves to someone else. 1 credit /v1/postsGet recent Instagram posts. 12 posts per page, newest first, with likes, comments, views, caption and media URLs. Page with cursor. 1 credit /v1/reelsGet an account's Instagram reels. The reels tab of a public account: play counts, likes, comments, captions and video URLs. Page with cursor. 1 credit /v1/taggedGet posts an account is tagged in. Public posts by other accounts that tag this account. Useful for UGC, brand mentions and influencer tracking. 1 credit /v1/postGet one Instagram post or reel. Likes, comments, views, caption, owner and media URLs for a single post, reel or IGTV video. 1 credit /v1/mediaDownload URLs for a post, reel or carousel. Direct image and video file URLs for every slide of a post, in the best quality available. URLs are signed Instagram CDN links that expire after a few hours. 1 credit /v1/commentsGet comments on an Instagram post. The top comments on a post with author, text, time, likes and reply count, plus the total comment count. 3 credits /v1/comment-repliesGet replies to an Instagram comment. Replies under one comment. Page with cursor. 3 credits /v1/likersGet accounts that liked an Instagram post. A sample of accounts that liked a post, plus the total like count. 3 credits /v1/insightsInstagram engagement rate calculator. Engagement rate (mean and median), posting cadence, format mix, best posting hours (UTC) and a percentile against the Instagram Benchmarks report, from the latest 12 posts. Pinned posts are excluded. 2 credits /v1/followersGet an account's followers. Public follower list of a public account, with the total follower count. Page with cursor where available. 3 credits /v1/followingGet accounts an account follows. Who a public account follows, with the total. Page with cursor. 3 credits /v1/similarFind similar Instagram accounts. Accounts Instagram considers related to this one. Handy for competitor research and influencer discovery. 1 credit /v1/storiesView Instagram stories anonymously. Stories posted in the last 24 hours by a public account, with image and video URLs. Signed CDN links that expire after a few hours. 3 credits /v1/highlightsGet Instagram story highlights. Title, cover image and item count for each highlight. Pass an id to /v1/highlight for its items. 3 credits /v1/highlightGet the items in one highlight. Every photo and video inside one highlight, with signed CDN URLs. 3 credits /v1/searchSearch Instagram accounts, hashtags and places. One search box, three result types: matching accounts, hashtags (with post counts) and places (with location ids). 1 credit /v1/hashtagGet posts for an Instagram hashtag. Recent posts under a hashtag and its total post count. Page with cursor. 1 credit /v1/placeGet an Instagram location. Name, category, address, city, phone, website and post count of a location page. Find ids with /v1/search. 3 credits /v1/place-postsGet posts tagged at an Instagram location. Recent posts geotagged at a location. Page with cursor. 1 credit /v1/audioGet an Instagram audio track and the reels using it. Title, artist, duration and a preview URL for an original sound or song, plus reels that use it. Audio ids come from reels. 1 credit /v1/audio-searchSearch Instagram music and sounds. Find songs and sounds by title or artist, with ids you can pass to /v1/audio. 3 credits /v1/reels-searchSearch Instagram reels by keyword. Reels matching a keyword. Page with cursor. 3 credits /v1/usageYour usage this month. Credits used and left this month. Free

Why developers pick it

Clean JSON

The same shape on every call. Missing numbers come back as null, never a guess.

Cached and fast

Popular accounts answer from cache. Every response says how old its data is, and if Instagram is slow you get the last good copy instead of an error.

Simple credits

Most calls cost 1 credit. Insights cost 2. Stories, highlights, comments, likes and followers cost 3. Failed calls cost nothing.

Buy direct

Pay us, get a key, start calling. No marketplace account and no middleman in between.

Pricing

Every plan includes every endpoint. Credits reset each month.

Free

$0 / month

Try every endpoint on real accounts

  • 50 credits per month
  • 10 requests per minute
  • All 26 data endpoints
Get your free key
Most picked

Pro

$9.90 / month

Side projects, dashboards, small tools

  • 5,000 credits per month
  • 60 requests per minute
  • All 26 data endpoints
Get Pro

Ultra

$29.90 / month

Apps with steady daily traffic

  • 25,000 credits per month
  • 120 requests per minute
  • All 26 data endpoints
Get Ultra

No overage billing. When your credits run out, calls stop until the monthly reset or until you upgrade. Most calls cost 1 credit. Insights cost 2. Stories, highlights, comments, likes, followers and audio or reel search cost 3. Failed calls cost nothing.

Questions

Is this an Instagram scraper API?

It gives you what people use a scraper for, public profile and post data as JSON, without running or maintaining a scraper yourself. We handle the fetching, caching and retries.

Can I get an account's follower count?

Yes. The profile endpoint returns followers, following and post count, plus bio, links, category and whether the account is verified. It costs 1 credit.

Does it work on private accounts?

No. Only public data. A private account returns a clear private_account error.

Can I get someone's follower list or who liked a post?

No, and we don't plan to. Lists of people are exactly the kind of data that gets misused.

What happens when I run out of credits?

Calls return quota_exceeded until your credits reset next month, or until you upgrade. There's no overage bill.

Is there a free plan?

Yes. 50 credits a month, every endpoint included, no card.

Start with 50 free credits

Get your free key