Instagram Profile Picture API
Fetch the largest profile picture available for any public Instagram account. The response tells you whether it is full resolution, so you can decide whether to show it, store it or request a download link.
Request
GET /v1/profiles/{username}/picture ·
1 credit per successful call
curl "https://api.igramapi.com/v1/profiles/example_creator/picture" \
-H "Authorization: Bearer YOUR_API_KEY" import requests
response = requests.get(
"https://api.igramapi.com/v1/profiles/example_creator/picture",
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/picture", {
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/picture");
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
{
"username": "example_creator",
"user_id": "1234567890",
"url": "https://scontent.cdninstagram.com/v/example/avatar_hd.jpg",
"is_hd": true,
"cached": false
} All values above are made-up examples. Media links are temporary Instagram CDN addresses.
Parameters
| Name | In | Description |
|---|---|---|
usernamerequired | path | Instagram username. |
Response fields
| Field | Type | Description |
|---|---|---|
username / user_id | string | The account. |
url | string | null | Picture URL (temporary). |
is_hd | boolean | True for full-resolution pictures. |
Largest size available
Instead of the tiny avatar, you get the biggest version Instagram serves.
HD flag
is_hd is true when the picture is full resolution.
Tiny response
Only what you need: username, user id, URL and the flag.
Make it permanent
Send the URL to the Downloader API with type image to get a stable file link.
Why avatars need special care
Instagram profile picture URLs are temporary and change when the user updates their photo. Do not save the URL as a permanent reference. Store the downloaded file (or fetch fresh through the API) instead.
Where it helps
CRMs and influencer databases use it to show creator avatars, while content tools use it for profile cards and link previews.
Frequently asked questions
Is it really the full-size picture?
It is the largest version Instagram makes available for that account. `is_hd` tells you whether it reached full resolution.
Can I save the image permanently?
Use the Downloader API (type `image`) to get a downloadable file link, then store the file yourself.
Does it work for private accounts?
It is designed for public accounts. For private accounts the result depends on what Instagram exposes publicly, and you are not charged if nothing can be returned.
How is this different from the Profile API?
The Profile API returns the whole header. This endpoint returns only the picture, in a minimal response.
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 Picture API free
Create a key and make your first request in minutes. 100 free credits every month.