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.
Numeric Instagram IDs (pk) are accepted too and resolved to the username.
cristiano@zuckhttps://www.instagram.com/natgeo/1367088262Create a task
POST https://api.checknumber.ai/v1/tasks
curl --location 'https://api.checknumber.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.checknumber.ai/v1/gettasks
curl --location 'https://api.checknumber.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
| Field | Description | Example |
|---|---|---|
username | Input username or profile URL exactly as submitted. | cristiano |
activated | Whether the account exists (no = no such username). | yes |
avatar | Public 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 |
ig_username | Resolved Instagram username (also filled when the submitted value was a numeric ID); empty for non-existent accounts. | villavicenciopaul |
full_name | Display name shown on the profile. | Cristiano Ronaldo |
posts | Post count. | 4138 |
followers | Follower count. | 679725371 |
following | Following count. | 636 |
private | Whether the account is private (yes/no). | no |
verified | Whether the account has the verified badge (yes/no). | yes |
face_status | Face 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
| Field | Description |
|---|---|
created_at | Timestamp when the task was created. |
updated_at | Timestamp of the latest task status update. |
task_id | Unique task identifier. |
status | pending, processing, exported, or failed. |
total | Total input values processed. |
success | Values processed successfully. |
failure | Values that failed processing. |
result_url | Download URL when the task is exported. |
actual_amount | Final settled amount, when available. |
estimated_amount | Estimated amount returned when the task is created. |
Status codes
| Status | Description |
|---|---|
200 | Request successful. |
202 | Task created successfully and estimated charge applied. |
400 | Invalid file, unsupported task type, or too few valid entries. |
401 | Missing or invalid API key. |
402 | Insufficient account balance. |
403 | Product not available for your account (discontinued or whitelist-only); contact support. |
404 | Task not found. |
413 | Uploaded file is too large. |
500 | Internal server error; retry later. |
503 | Product 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.