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.