Skip to content
ScrapeField

Get an Instagram profile

Fetch an Instagram account: username, name, biography, bio_links, followers_count, follows_count, media_count, is_verified, is_private, is_business_account, category and the business contact buttons — named as in Instagram's Graph API. Use this for creator discovery and audience sizing.

3 credits
GEThttps://api.scrapefield.com/v1/instagram/profile
Try itno key needed3 credits on a real call · 0 here
https://api.scrapefield.com/v1/instagram/profile?username=ferrari

In your code

const params = new URLSearchParams({
  "username": "nasa"
});

const res = await fetch(`https://api.scrapefield.com/v1/instagram/profile?${params}`, {
  headers: { Authorization: `Bearer ${process.env.SCRAPEFIELD_KEY}` },
});

const { data, meta } = await res.json();
console.log(data, meta.credits_charged);

Parameters

Parameters
ParameterWhat it does
username
string · one of the profile ids
The username. A leading @ is fine.
url
string · one of the profile ids
The profile URL.
fresh
boolean
Skip the cache and fetch now. Charged normally. Not available on trial credits — buy any pack to unlock it.
default false

Response

Returns one instagram_profile. This is the demo’s answer, the one the playground above returns, in full rather than abbreviated — including the fields that come back null, because a field is null when the platform does not show it and you should know which ones those are before you build on them. A call with your key returns the account you ask for.

{
  "data": {
    "id": "2627686870",
    "username": "blue.door.coffee",
    "name": "Blue Door Coffee",
    "biography": "Building things for the web. Occasionally outdoors.",
    "website": "https://bluedoorcoffee.example",
    "bio_links": [],
    "profile_picture_url": "https://cdn.example/ig/jZqnI-JOdpbA.jpg",
    "followers_count": 1145217,
    "follows_count": 467,
    "media_count": 3301,
    "is_verified": true,
    "is_private": false,
    "is_business_account": true,
    "category": "Bakery",
    "business_email": "hello@bluedoorcoffee.example",
    "business_phone_number": null,
    "highlight_reel_count": 0
  },
  "meta": {
    "request_id": "req_7f3ac1e94b2d40f8a1c6e5d2",
    "credits_charged": 3,
    "credits_remaining": 74218,
    "cached": false,
    "fetched_at": "2026-09-20T09:12:03Z",
    "next_cursor": null
  }
}

Fields of instagram_profile

An Instagram account. Named after Instagram's Graph API.

Fields
FieldWhat it is
id
string
Instagram's numeric id for the account.
username
string
Without the @.
name
string · or null
The display name.
biography
string · or null
The bio.
website
URL · or null
The link in the bio.
bio_links
array of objects
Every link in the bio.
bio_links[].title
string · or null
The link's label, where it has one.
bio_links[].url
URL
Where the link leads.
profile_picture_url
URL · or null
The profile picture. On Instagram's CDN. Instagram signs the link, and it stops working within a few days, so fetch the file soon. We do not rehost media.
followers_count
integer · or null
null when the source does not give it.
follows_count
integer · or null
null when the source does not give it.
media_count
integer · or null
Posts on the grid.
is_verified
boolean
Whether the account has the verified badge.
is_private
boolean
A private account shows its counts and nothing else.
is_business_account
boolean · or null
A business or creator account.
category
string · or null
The label under the name, e.g. "Bakery" or "Public figure".
business_email
string · or null
Behind the Email button, where a business account shows one.
business_phone_number
string · or null
Behind the Call button.
highlight_reel_count
integer · or null
Story highlights on the profile.

What it costs

3 credits per successful call, whether we fetch it or serve it from cache — you pay for the answer, not for how we produced it. Responses are cached for 12 hours and a cached one tells you when the data was actually fetched. A call we fail costs 0 and is refunded automatically.

On the smallest pack that is $2.34 per 1,000 calls; on the largest, $1.32. The full table.

What people build with it

Questions

How much does the Instagram profile API cost?

3 credits a call: $2.34 per 1,000 calls on the smallest pack and $1.32 on the largest. A call that fails costs nothing, and the refund is automatic. A cached answer costs the same as a fresh one. Credits are bought in packs and never expire; there is no plan.

Do I need a Instagram account, a login or cookies?

No. You need a key from us and nothing from Instagram. We never take a customer's login, cookies or session, at any price, and no account of yours is ever at risk.

Can I try it without signing up?

Yes. Add demo=true and leave the key out, or press Send request in the playground on this page. The demo answers with a real answer about Ferrari, captured once a week, in exactly the shape a live call returns, whatever you ask, and charges nothing.

How fresh is the data?

An answer is kept for up to 12 hours, and a cached one says when it was fetched, in meta.fetched_at. Add fresh=true to fetch it again now, at the same price; it needs any purchase, not the trial.

What does it return?

One instagram_profile object. Its fields are named after Instagram's Graph API. A field is null when Instagram does not show it, never missing. Every field is described on this page.

Can an AI agent call it?

Yes: it is the MCP tool get_instagram_profile on our MCP server, with the same parameters, answer and price. Without a key, the tool answers from the demo.