Skip to content

Instagram ID/Username Profile Checker API: Bulk Profiles

Check Instagram accounts by username (ID) or profile URL and return a rehosted face profile photo cropped from the newest post that contains a face, full name, post count, follower and following counts, and whether the account is private or verified. Accounts that do not exist are returned as not activated; private accounts are returned as activated with their profile fields but without a photo. The task uses the standard asynchronous batch workflow.

Input format

Upload a text file with one Instagram username (ID) per line. username, @username and full instagram.com/<username> URLs are all accepted; values are matched case-insensitively.

cristiano
@zuck
https://www.instagram.com/natgeo/

Create a task

POST https://api.numberchecker.ai/v1/tasks

Terminal window
curl --location 'https://api.numberchecker.ai/v1/tasks' \
--header 'X-API-Key: YOUR_API_KEY' \
--form 'file=@"./input.txt"' \
--form 'task_type="instagram_profile"'

The API returns a task ID. Keep this ID and use it to poll the task status.

Upload response

{
"task_id": "d4g8o46p2jvh04o9uolg",
"status": "pending",
"total": 5000,
"estimated_amount": {
"amount": "1.250000",
"currency": "USD"
},
"message": "Task created successfully"
}

Check task status

POST https://api.numberchecker.ai/v1/gettasks

Terminal window
curl --location 'https://api.numberchecker.ai/v1/gettasks' \
--header 'X-API-Key: YOUR_API_KEY' \
--form 'task_id="d4g8o46p2jvh04o9uolg"'

Poll until status becomes exported. Do not treat pending or processing as a completed result.

Processing response

{
"task_id": "d4g8o46p2jvh04o9uolg",
"status": "processing",
"total": 5000,
"success": 2500,
"failure": 0
}

Exported response

{
"task_id": "d4g8o46p2jvh04o9uolg",
"status": "exported",
"total": 5000,
"success": 5000,
"failure": 0,
"result_url": "https://example-link-to-results.zip",
"actual_amount": {
"amount": "1.250000",
"currency": "USD"
}
}

Result Fields

FieldDescriptionExample
usernameInput username or profile URL exactly as submitted.cristiano
activatedWhether the account exists (no = no such username).yes
avatarPublic URL of the face photo cropped from the newest post with a face, rehosted on ins.waavatar.xyz (non-expiring); empty when no face was found or the account is private / has no posts.https://ins.waavatar.xyz/ins/ec966a0f864e4aba1fd2899dce2c3fed.jpg
full_nameDisplay name shown on the profile.Cristiano Ronaldo
postsPost count.4138
followersFollower count.679725371
followingFollowing count.636
privateWhether the account is private (yes/no).no
verifiedWhether the account has the verified badge (yes/no).yes
face_statusFace extraction outcome: ok (crop larger than 400 px), ok_small (smaller face kept as fallback), no_face, no_640_face (no post image of at least 640 px), private, empty (no posts), posts_missed.ok

Result file handling

Download the file from result_url only after the task is exported. Preserve the returned column names when processing the file downstream.

Response fields

FieldDescription
created_atTimestamp when the task was created.
updated_atTimestamp of the latest task status update.
task_idUnique task identifier.
statuspending, processing, exported, or failed.
totalTotal input values processed.
successValues processed successfully.
failureValues that failed processing.
result_urlDownload URL when the task is exported.
actual_amountFinal settled amount, when available.
estimated_amountEstimated amount returned when the task is created.

Status codes

StatusDescription
200Request successful.
202Task created successfully and estimated charge applied.
400Invalid file, unsupported task type, or too few valid entries.
401Missing or invalid API key.
402Insufficient account balance.
403Product not available for your account (discontinued or whitelist-only); contact support.
404Task not found.
413Uploaded file is too large.
500Internal server error; retry later.
503Product temporarily unavailable (paused for maintenance); nothing is charged, retry later.

Operational notes

  • The task is asynchronous; use the task ID for status polling.
  • Check product-specific input limits before uploading.
  • Failed rows are reported in the exported result and reflected in the task counters.
  • Photos are cropped from public posts at the resolution Instagram serves to logged-out visitors (640 px), so most crops are below 400 px and reported as ok_small.
  • The fields above are based on the current live sample and may change when the upstream export schema changes.