Instagram Post Likes Without the Insights Permission

We wrote "Instagram: blocked, no numbers available" into two separate reviews. Both times it went in as a fact. Nobody argued with it.
It was wrong. We had been able to measure Instagram the whole time, and it took one request to find out.
The mistake is easy to make and it is expensive, because a channel you cannot measure is a channel you quietly stop investing in. So here is exactly what Meta's insights permission gates, what it does not, and how to get real engagement numbers out of Instagram today without applying for anything.
Table of Contents
- What actually blocked us
- The two fields that work anyway
- Why that distinction matters more than it sounds
- What we found once we looked
- The mistake underneath the mistake
- What to do today
What actually blocked us
The Instagram Graph API has a permission called instagram_manage_insights. It is the one you need for the metrics everyone quotes: views, reach, impressions, saves, profile visits. Getting it means an app review with a screencast, a privacy policy, and a wait.
We had not done that review. So the insights call returned a permission error, somebody wrote "IG is blocked" in a review doc, and that sentence got copied forward twice.
Here is the part nobody checked: the error was about one endpoint, not about Instagram.

The two fields that work anyway
Query the media object itself, not the insights edge, and ask for like_count and comments_count:
That returns numbers with the basic permissions you already have from connecting the account. No insights review. No screencast. No waiting.
The split is worth memorising:
| What you want | Endpoint | Needs instagram_manage_insights |
|---|---|---|
| Likes, comments | media object, like_count / comments_count | No |
| Views, reach, saves, shares | /insights edge | Yes |
| Follower count | account fields | No |
So the honest rule is not "Instagram is blocked". It is "reach is blocked, engagement is not."

Why that distinction matters more than it sounds
Views tell you how far the platform pushed a post. Likes tell you whether anyone who saw it cared. If you are deciding what to make next, the second one is the more useful signal anyway.
A post with 4,000 views and 2 likes is a failure the algorithm was generous to. A post with 200 views and 30 likes is something worth making again. You can tell those apart with the fields you already have access to.
You lose the denominator, which is annoying. You do not lose the verdict.

What we found once we looked
Our first ever Instagram numbers, from 18 reels posted by our own automation: 3 likes. Total.
That is not a typo and we are not going to dress it up. Eighteen posts, three likes, two followers.
It is a bad number and it is a useful bad number, because it is the first one we have ever had. For weeks the honest status of that channel was "unknown", and unknown is the worst state a channel can be in: you cannot fix it, cannot cut it, cannot argue about it. Now it is a floor. Anything we change from here has something to move.
Compare that to the channel we still cannot see: 24 videos went to TikTok's inbox since 18 July and zero of them are confirmed public, because passing TikTok's App Review is not the same as passing its Content Posting audit and an unaudited client can only post to private accounts. There is no field to query there. That one is genuinely blocked.

The mistake underneath the mistake
"Blocked" is a conclusion, and we filed it as an observation.
One call failed. The failure got summarised into a claim about a whole platform, the claim got written down, and then it got cited by the next review instead of retested. Two review cycles ran on a false constraint. The cost was not the missing metric, it was the weeks of not asking.
If you run any kind of automated posting, go check your own equivalent of this right now:
- List every platform you have marked as "no data" or "blocked".
- For each, name the exact field or endpoint that failed, not the platform.
- Ask what else that same API returns that you never tried.
Most "blocked" entries are one endpoint wide. Ours was.

What to do today
If you are automating Instagram posts and flying blind:
- Pull
like_countandcomments_counton every media id you have posted. That is your baseline, and you can have it this afternoon. - Store it with the post, not in a dashboard you will never open. A number you have to go looking for is a number you will not use.
- Apply for
instagram_manage_insightsif reach matters to you, but do not wait on it to start measuring. - Re-test anything you have written down as impossible. Permissions change, and so do the notes people took in a hurry.
The point of measuring is not the chart. It is that you stop guessing which posts were worth making, and three likes on eighteen reels answers that question fast.
If you would rather not wire any of this up yourself, measuring what went out is part of what we are building.

Your accounts could be running themselves.
Give ItJustPosts your URL and watch it make the first post.
Start free trial