All questionsInstagram

Can I get data from a private Instagram account?

No. A private Instagram account shows nothing to anyone who does not follow it, and Openhandle reads only what a logged-out visitor can see. The API returns a PROFILE_PRIVATE error with no profile data, no posts, and no follower count.

Any service that promises private account data either uses fake follower accounts, which breaks Instagram's terms and gets banned, or makes numbers up. We do neither.

Checked September 2026 · request and response run against the API · no affiliate links

GET /v1/instagram/profiles/@username
curl "https://api.openhandle.dev/v1/instagram/profiles/@quiet_harbor_test" \
  -H "Authorization: Bearer $OPENHANDLE_API_KEY"
TypeScript SDK
import { OpenHandle } from '@openhandle/sdk';

const openhandle = new OpenHandle({ apiKey: process.env.OPENHANDLE_API_KEY! });

try {
    await openhandle.instagram.profile('quiet_harbor_test').get();
} catch (error) {
    console.log(error.code); // PROFILE_PRIVATE
}
403 Forbidden
{
  "error": {
    "code": "PROFILE_PRIVATE",
    "message": "This profile is private.",
    "requestId": "req_01j8…",
    "retryable": false
  }
}

This is the whole response. No partial profile, no cached numbers from before the account went private. The example account is a Test fixture, so you can see the error on a free Test key.

What you can still do

  • Store the answer. A private answer is a result, not a failure. Store it with the time. Re-check on your own schedule. Accounts flip public again more often than you would think.
  • Keep the ID. If you read the account while it was public, you have its id. Look up by ID later. A renamed account still resolves. A deleted one returns PROFILE_NOT_FOUND.
  • Ask the owner. If the account owner wants to share their data with you, the Instagram Graph API is the right tool. They authorize your app, and you read their own account with their consent.

What we never do

Openhandle never logs in, never follows, and never sends a follow request. We do not read direct messages, close-friends posts, or stories from private accounts. Account owners can ask us to block their profile even when it is public. The public data notice lists every limit.

When this does not work

The three answers a profile lookup can give, and what each one means.

SituationStatusCode
The account is private403PROFILE_PRIVATE
The account is deleted, banned, or never existed404PROFILE_NOT_FOUND
The account is public200profile data
404 Not Found
{
  "error": {
    "code": "PROFILE_NOT_FOUND",
    "message": "This profile was not found.",
    "requestId": "req_01j8…",
    "retryable": false
  }
}

Private and not-found answers bill like any answered request, because the API did the work to find out. Provider errors and our errors are never billed. Branch on code, never on message.

Read next

More Instagram questions

Send your agent ahead.

Paste the prompt into your agent and it sets everything up. Or come yourself, it takes five minutes.

For agents