Why Instagram Graph API is so complicated
A brief history of IG API by an ex-insider. Read time: 1.5 minutes
“Why the heck is this so darn complicated?” — That was me, pulling my hair out, when I first started working with the Graph API.
Ever wonder why there are so many different endpoints & variants of IG Media in the Meta API world?
Here's the thing: software architecture often mirrors the structure of the organization that creates it. Conway's law. The Meta API is a perfect example of it. Meta is a behemoth with a gazillion managers, directors, VPs, and whatnot, spread across FB, IG, Central Infrastructure teams, and more. Constant shifting and reshuffling result in software scopes that are nothing short of mud, with overlaps, duplicates, and rewrites for the simplest concepts.
Fast forward to today, and there are IG Media, Instagram Media, and Media in the Instagram API. All of them mean the same thing: An Instagram post. A few years back, before the Instagram Legacy API (non-Graph) was deprecated, there was even a fourth endpoint for IG media (web archive). Crazy, right?
The reason behind all this is Instagram's transformation from a tiny startup to a mega org with thousands of engineers, all under the umbrella of an extra-mega corporation, following FB’s IG acquisition in 2012. During this change:"
Team A wanted to piggyback on FB’s existing ads infrastructure for IG and introduced an IG media wrapper on the Graph Marketing API.
Team B wanted to make life easier for IG’s business users managing posts on their profiles via API, so they introduced another IG media wrapper on the Graph Platform API.
Team C stumbled upon this pre-acquisition API on IG’s own backend in Python. They decided to deprecate it to avoid maintaining a ton of API variants. But for that, they had to add another set of API for the regular consumer users since Team A & B only had business users in mind. So, guess what? Another API was introduced: Instagram Basic Display API.
So, with this whirlwind of changes, it's no surprise the API is so complicated. I seriously doubt the authors of the official document understand it fully.
So, what's tripping you up in your Meta API application development journey? Drop a comment below and I'll see if I can help.
omg too many questions spring to mind.. let's start with this one:
On Instagram public metrics (likes and comments on business_discovery) and standard metrics with access permissions are organic, while public metrics in the app/browser are total (organic+paid). That already is hard to explain to customers. But to make it even worse, Facebooks public metrics are total. So this is an unsolvable mess when trying to have cross network metrics.
I see how this very specificly relates to the "different system" explanation, overlaying Instagram with the Facebook system. But it is so bad I still wonder that nobody has solved this.
This explains why my life has been so complicated. Thanks for the background. I have 2 questions for you, if you can answer (because FB developer support was not helpful).
1. If a business account uses my app, can I get ‘views’ count of REELS they were tagged/mentioned in?
2. Can I enable a brand (user of our app) to DM a creator account if I have the creator’s message id? Is there a way that message can land in primary inbox and not ‘Other’ inbox