Before I plan a Reel for a client, I look at what already gets views for their competitors. Scrolling through a profile tells me little: I see the views under each Reel, forget them by the next account, and I can't sort anything at all. So I pull the numbers into a table with a free token from Meta, and every Reel becomes one row: date, views, likes, comments, caption and a link.
This works through Meta's official Graph API, with your own app and your own token. You don't need a paid service, and you can read several competitors in one run instead of opening their profiles one by one.
What the table showed me
In September I pulled the last 100 posts from Lululemon and Vuori for a US clothing store I work with. Later I added about 140 Reels from brands in two niches close to the store. I sorted every brand by views and opened only the top Reels. For those, we added columns the API doesn't give you: the hook in the first second and the text on screen. Below I explain how we filled them in.
Three things stood out. In most of the top Reels, the brands said nothing about fabric, fit or price, and showed a person or a moment of the day instead. The one brand that showed the product head-on had the fewest views among the 15 Reels I took apart. The hooks were short unfinished phrases in the first second, like “People judge me for being late to work…”. And at Lululemon, the posts with a product and “Shop link in bio” were among the weakest of the 100.
That table helped us make a strong Reel for the store. We built it from the patterns above, and we didn't copy any single competitor.
What you need before you start
You need your own Instagram account switched to a professional account (Business or Creator) and connected to a Facebook Page. Requests go through this account, so the competitor never sees you. You also need an app in Meta for Developers. If you set one up for ad reports, use the same app: I describe it in Your Own Meta Ads Reports.
How I get the token
- Open the Graph API Explorer in Meta for Developers and pick your app under Meta App.
- Under User or Page, choose User Token.
- In Permissions, add five: pages_show_list, business_management, instagram_basic, instagram_manage_insights and pages_read_engagement.
- Click Generate Access Token and allow access to your Page and your Instagram account.
- Exchange the token for a long-lived one. The first token lasts a few hours, and the long-lived one lasts about 60 days. The exchange step is the same as for ad reports.
The request
First, find the ID of your own Instagram account: request me/accounts?fields=instagram_business_account and copy the ID next to your Page. Then ask for a competitor by their username:
{your-instagram-id}?fields=business_discovery.username(vuoriclothing){followers_count,media_count,media{timestamp,media_product_type,caption,like_count,comments_count,view_count,permalink}}
The answer lists the account's followers and its latest posts with the numbers for each one. Meta sends the posts in pages, so for 100 posts you ask for the next page a few times.
How we built the table
I gave Claude the list of competitor accounts, and it wrote a short script that did the work for each one:
- Pulled the last 100 posts with the request above and kept only the Reels.
- Sorted them by views and took the top 10 plus the 3 weakest, so I could compare what works with what doesn't.
- Downloaded those Reels, cut each one into frames every 0.75 seconds with the time on every frame, and turned the speech into text.
- Read the frames and the text and filled in three columns for every Reel: the hook in the first second, the text on screen and what the voice says.
Every Reel ended up as one row. I went through the top rows myself, opened the Reels whose hooks caught my eye, and we chose 15 that were closest to the store's style. Those 15 gave us the patterns I described above.
How to make one for your niche
You don't need to write code. Get the token as described above, open Claude or another AI assistant that can run code, and paste a request like this one, with your details in the brackets:
I have a Meta access token with instagram_basic, instagram_manage_insights and pages_read_engagement. My Instagram business account ID is [ID]. Using the business_discovery field of the Instagram Graph API, pull the last 100 posts for these accounts: [account 1], [account 2], [account 3]. Keep only Reels. For each Reel, give me the account, date, views, likes, comments, caption and link. Sort by views, save it as a file I can open in Google Sheets, and tell me which accounts hide likes or views.
When the table is ready, open the top 10 Reels of each brand and write down the first second: what's in the frame, what text is on screen and what the person says. If your assistant can process video, ask it to fill in that column for you, as Claude did for me. That column tells you what to film, and the view counts tell you which Reels deserve your time.
Your assistant needs the token to run the requests, but nobody else should see it. Anyone who has it can read data through your account, so don't post it anywhere or share it with other people.
What the token won't show
A personal account returns an error, because the token reads Business and Creator accounts only. Reach, saves and sales stay hidden too. A brand can also hide its counts. In my table one brand had likes hidden on its Reels, and Lululemon didn't return views at all, so for them I compared likes and comments against followers. The long-lived token expires after about 60 days and the requests stop working with no other warning, so I keep the date in my calendar.
My tip: I study competitors' Reels in a table and skip the scrolling. I sort by views, open only the top ones, and write down the hook from the first second. The views tell me which Reels to watch, and the hook tells me why people stayed.
The same app and token approach works for your Meta ad numbers, which I cover in Your Own Meta Ads Reports. If you'd like to go through your competitors' content and your ads together, book a consultation.