Benchmark competitor content and engagement on Instagram
Get recent Instagram posts from competitor profiles as JSON, with caption, likes, comments and follower counts, to benchmark engagement and content.
You post three times a week and have no idea whether a competitor with twice your followers gets twice your response. Comparing accounts by hand means opening each profile and copying numbers into a sheet. Lovely Router returns them in one pass. Send profile URLs, get one JSON object per post, pay per post from a prepaid balance. Call it from a weekly report, a script or an AI agent with one API key.
Hand it to your AI agent
Copy this prompt into Claude Code, Cursor, Codex or any coding agent. It tells the agent where the docs are and how to use your API key.
Benchmark competitor content and engagement on Instagram. Use the Lovely Router data tools: each returns JSON and is billed per result.
- Docs (read first): https://lovelyrouter.com/docs/tools/find.md and https://lovelyrouter.com/docs/tools/run.md
- Plan first: POST https://lovelyrouter.com/v1/tools/suggest with `{"task": "<my task in plain words>"}` (free). It returns the tools to run in order, each with an example `input`, the `input_required` fields, an estimated cost and a ready-made `run` request. Replace the example values with my task's; if a field is unclear, read the tool with GET https://lovelyrouter.com/v1/tools/<id>. To browse instead, POST https://lovelyrouter.com/v1/tools/discover searches the catalog.
- Show me the plan and its estimated cost (`total_est_cost_usd`) before running anything large.
- Run: POST https://lovelyrouter.com/v1/tools/<id>/run with `{"input": {...}, "max_results": N}`. A 200 has the finished run with `items`; a 202 means it is still running, so poll the `poll` path until `status` is `succeeded`, `failed`, `timed_out` or `stopped`.
- Only delivered results are billed. Keep max_results small on the first run, check the output, then scale up.
- If you support MCP, connect https://lovelyrouter.com/mcp instead (Streamable HTTP, same key; https://lovelyrouter.com/docs/tools/mcp.md) and use suggest_tools, get_tool and run_tool.
- Auth: read my API key from the LOVELY_API_KEY environment variable and send it as `Authorization: Bearer $LOVELY_API_KEY`. Never print or commit the key. If it is not set, ask me to create one at https://lovelyrouter.com/app/keys.
- Billing is prepaid: every call is charged to my balance, so test with a small request before running anything large.
- Every docs page is plain Markdown; the full index is https://lovelyrouter.com/llms.txt.
My task: <the inputs (links, keywords or accounts) and how many results you need>How it works
List the accounts
Your own profile plus three to ten competitors.
Run the tool with a cap
Send the profile URLs in
startUrlstoPOST /v1/tools/instagram-posts/run.maxItemsininputcounts across all profiles, anduntilkeeps posts newer than a date.Compare engagement per follower
Divide likes plus comments by the owner's follower count for each post, then average per account and compare.
Get recent posts with one request
Get Instagram posts takes profile URLs or usernames in startUrls. Because maxItems counts across all of them, set it to the number of accounts times the posts you want from each:
curl https://lovelyrouter.com/v1/tools/instagram-posts/run \
-H "Authorization: Bearer $LOVELY_API_KEY" \
-H "content-type: application/json" \
-d '{
"input": {
"startUrls": [
"https://www.instagram.com/natgeo/"
],
"until": "2026-09-27",
"maxItems": 30
},
"max_results": 30
}'Each post carries its caption, likes, comments count, media, the owner with follower counts, and the date. A run still going after 60 seconds returns 202; Run a tool shows how to poll.
What each post holds
| Field group | What you get |
|---|---|
| Content | Caption and media |
| Engagement | Likes and comments count |
| Owner | The posting account, with follower counts |
| Timing | Date |
Recipes
Run 10 competitor profiles with until set to a week ago, compute engagement per follower, and post the ranking in your team channel.
Split a competitor's posts by media type and compare likes and comments.
Group dates by weekday for an account and see when its posts get the most likes.
Send the top 20 captions to a model and ask what they have in common: length, questions, calls to action.
Run daily and flag a competitor post that gets several times that account's average likes.
Prefer plain words? Connect the MCP server and tell Claude Code or Cursor: "Get the last 20 Instagram posts from each of these four profiles, compute likes plus comments per follower, and rank the accounts. Set maxItems and max_results to 80."
Pair it with reels and profile data
Posts are one format. Add the rest of the account:
Recent posts from Instagram profiles: caption, likes, comments count, media, owner with follower counts, date.
Reels from Instagram profiles: caption, views, likes, comments, video URL, date.
Instagram profile details by username: bio, followers, posts count, recent posts.
Comments on Instagram posts or reels by URL: text, likes, replies count, author, date.
A TikTok account's videos with the author's follower and like counts.
instagram-reelsadds views, likes and comments for the short videos.instagram-profilegives the bio, followers and posts count at the account level.instagram-commentsreads what followers say under a post that stands out.tiktok-profilebenchmarks the same competitors on TikTok.
For competitor ad creative outside organic posts, see ad intelligence.
What you pay
You pay per post: starting a run holds its maximum cost, the per-call fee plus the per-post fee times max_results, and the run settles to what it returned. The rest of the hold goes back to your balance. A run that fails or times out pays only for the posts it delivered, and a run refused at the start costs nothing.
Benchmarking 10 competitors with 20 posts each is billed as 200 posts. There is no subscription and no monthly minimum: top up from $5, and one balance pays for tools and models. The card above shows today's price; pricing lists every tool.
Frequently asked questions
Can I use usernames instead of URLs?+
Yes. startUrls takes profile URLs, and usernames work too.
Do I get follower counts?+
Yes. Each post includes the owner with follower counts.
How many posts can one run return?+
Up to 200, set with maxItems, which counts across all profiles in the run.
Can I get only recent posts?+
Yes. until takes a date in YYYY-MM-DD and returns only newer posts.
Do I need a subscription?+
No. You add credit to a prepaid balance and each run draws it down. Failed runs pay only for the results they delivered, and nothing renews automatically.
Looking at more than organic posts? See ad intelligence, social listening and the tool catalog.