Instagram Profile API
Look up any public Instagram profile by username and get the details your product needs as clean JSON: name, bio, link, follower and following counts, post count, verification status and the profile picture.
Request
GET /v1/profiles/{username} ·
1 credit per successful call
curl "https://api.igramapi.com/v1/profiles/example_creator" \
-H "Authorization: Bearer YOUR_API_KEY" import requests
response = requests.get(
"https://api.igramapi.com/v1/profiles/example_creator",
headers={"Authorization": "Bearer YOUR_API_KEY"},
timeout=30,
)
response.raise_for_status()
print(response.json()) const response = await fetch("https://api.igramapi.com/v1/profiles/example_creator", {
method: "GET",
headers: {
Authorization: "Bearer YOUR_API_KEY",
},
});
if (!response.ok) throw new Error((await response.json()).error.message);
console.log(await response.json()); <?php
$ch = curl_init("https://api.igramapi.com/v1/profiles/example_creator");
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer YOUR_API_KEY",
],
]);
$data = json_decode(curl_exec($ch), true);
print_r($data); Response
{
"profile": {
"user_id": "1234567890",
"username": "example_creator",
"full_name": "Example Creator",
"biography": "Photographer. Travel and street stories.",
"external_url": "https://example.com",
"profile_picture_url": "https://scontent.cdninstagram.com/v/example/avatar.jpg",
"is_hd_picture": true,
"is_private": false,
"is_verified": true,
"followers": 182400,
"following": 311,
"posts_count": 742
},
"cached": false
} All values above are made-up examples. Media links are temporary Instagram CDN addresses.
Parameters
| Name | In | Description |
|---|---|---|
usernamerequired | path | Instagram username. A leading @ or a profile URL is accepted. |
Response fields
| Field | Type | Description |
|---|---|---|
profile.user_id | string | Numeric Instagram user id. |
profile.username | string | Current username, lowercase. |
profile.full_name | string | null | Display name. |
profile.biography | string | null | Bio text. |
profile.external_url | string | null | Link in bio. |
profile.profile_picture_url | string | null | Largest picture available (temporary CDN link). |
profile.is_hd_picture | boolean | True when the picture is full resolution. |
profile.is_private | boolean | Private accounts expose header details only. |
profile.is_verified | boolean | Verified badge. |
profile.followers / following / posts_count | integer | Current counts. |
cached | boolean | True when served from the short-lived cache. |
Everything on the profile header
Name, biography, external link, counts and verification in a single, flat object.
Numbers you can use
Followers, following and posts are integers, not strings like '1.2M'. Sort, compare and chart them directly.
Stable user id
Each profile includes the numeric user id, so you can keep a record even if a username changes.
1 credit per lookup
Failed lookups are free, and popular profiles are answered from a short-lived cache for speed.
What the Instagram profile endpoint returns
The response wraps one profile object and a cached flag. Counts are plain integers, is_verified and is_private are booleans, and profile_picture_url points to the largest picture available. When the picture is full resolution, is_hd_picture is true.
Private accounts still return their public header details, with is_private set to true. Their posts, reels and other content are not available through any endpoint.
Typical uses
Teams call the profile endpoint to verify an influencer's audience size before outreach, to enrich a CRM record from a username, to show a profile card inside an app, and to track follower growth by storing a snapshot each day.
Combine it with the posts and reels endpoints to build a complete creator report from one username.
Frequently asked questions
Does the Instagram profile API need the user's login?
No. You send your IGramAPI key and a username. The person you look up never has to authorize anything, because only public profile information is returned.
Can I look up private accounts?
You get the public header (name, picture, private flag). Posts, reels, stories and comments of private accounts are not available.
How fresh are the follower counts?
Counts come from Instagram at request time. Popular profiles may be served from a short cache to keep responses fast; the `cached` field tells you when that happened.
What happens if the username does not exist?
The API returns HTTP 404 with the error code `profile_not_found`, and the request costs no credits.
Errors cost nothing. Any response with a status of 400 or above is refunded, and every error has the same shape. See error handling and credits and rate limits.
Try the Profile API free
Create a key and make your first request in minutes. 100 free credits every month.