Get a weekly Instagram analytics report: views, reach, followers and top posts

Every Tuesday: last week's Instagram views, reach, engagement and follower change, with the three posts or reels that did the most.

Runs
Tuesdays at 9:00
Posts
Report card

From your apps to your board

How the skill works: your agent reads account totals for the week from Instagram; instagram account from What you tell it, tuesdays at 9:00, and gives you report card and the report in the chat.

Reads

  • InstagramAccount totals for the week
  • What you tell itInstagram account
reads
Your agentClaude Code, Codex, Cursor or GeminiTuesdays at 9:00
posts

You get

  • Report cardOn your board, updated in place every run
  • The report in the chatEvery run, with or without Briefkin

What you get

  • Views, reach, accounts engaged and interactions for last week, each against the week before.
  • Followers: the count and the change.
  • Top 3 posts or reels by views, with reach, saves, shares and a link.
  • Reels share of the week's views.
  • One line on what the best post did differently.

The card on the right is a sample. Yours shows your own numbers and updates in place every run.

What lands on your board

AcmeInstagram weekly analytics report · Claude Code

Views up 18%, three reels carried the week

182,400 views (+18%) and 64,300 accounts reached. Followers grew by 212 to 12,840. Reels made 71% of the week's views.

Views182.4k+18% vs previous period, better
Reach64.3k+9.0% vs previous period
Interactions5,930+12% vs previous period
Followers12,840+1.7% vs previous period, better
PostTypeViewsReachShares
3 mistakes on your first invoiceReel48,20031,600412
Behind the scenes: packing dayReel39,70025,100188
Client asked for net 60, here is what I saidReel22,80015,900301
Done
An example with made-up numbers. Your agent posts your real ones.

What it does

Instagram's own insights screen is built for scrolling on a phone, one post at a time, with a date range that resets. Creators and social managers who report weekly end up screenshotting it into a doc or copying numbers into a sheet.

This skill reads the same numbers through the Instagram API: account views, reach and interactions for last week, the follower count against the week before, and every post and reel published that week ranked by views. It runs on Tuesday because Instagram can take up to two days to finish a day's figures.

How it works

  1. 1Read account totals for the week

    GET /<ig-user-id>/insights?metric=views,reach,accounts_engaged,total_interactions,profile_links_taps&period=day&metric_type=total_value&since=<Monday>&until=<Sunday> (Unix timestamps). Run it again for the week before. impressions is deprecated; views replaced it in 2025.

  2. 2Get the follower count

    GET /<ig-user-id>?fields=followers_count,media_count, and compare with the count the skill saved last week. On the first run, use the follows_and_unfollows metric for the week instead.

  3. 3Score last week's posts and reels

    List GET /<ig-user-id>/media?fields=id,caption,media_product_type,timestamp,permalink until timestamp is older than last Monday. For each, GET /<media-id>/insights?metric=views,reach,saved,shares,total_interactions (add profile_visits for feed posts).

  4. 4

    4Rank and compare

    Each account metric with its change on the week before, the top 3 posts by views with reach, saves and shares, and the share of views that came from reels. Name what the top post had in common with last week's best, if anything.

  5. Post it to the board

    With BRIEFKIN_TOKEN set, the agent sends the result as one card that updates in place every run. Without it, you get the report in the chat.

Install and run it

Pick your agent, where the data comes from and how to schedule it; the commands below follow.

Agent
Data
Schedule
  1. Install the skill

    One command. It puts the SKILL.md in ~/.claude/skills and in ~/.agents/skills, which Codex, Cursor, Gemini CLI, Copilot CLI and OpenCode read too.

    shellcurl -fsSL https://briefkin.dev/skills/instagram-weekly-analytics-report/install | sh
  2. Run it

    Ask Claude Code:

    promptRun the instagram-weekly-analytics-report skill

    Or paste the prompt instead of installing:

    promptUsing the Instagram API for my professional account, report last week (Monday to Sunday) against the week before. Get account views, reach, accounts_engaged, total_interactions and profile_links_taps with metric_type=total_value, and the follower count from followers_count (compare with last week's count, or use follows_and_unfollows on the first run). Then list every post and reel published last week with views, reach, saved, shares and total_interactions from the media insights endpoint. Show each account metric with its change, the follower change, the top 3 posts by views with a link, and the share of views from reels. End with one line on what the best post did differently.
  3. Put it on a schedule

    Tuesdays at 9:00, from cron on any machine where Claude Code is signed in:

    crontab0 9 * * 2 claude -p "Run the instagram-weekly-analytics-report skill"

    Add it with crontab -e. A laptop asleep at that time runs it when it wakes if you use launchd or Task Scheduler instead; GitHub Actions works for the API route.

  4. Send it to your board

    Connect Briefkin once with curl -fsSL https://briefkin.dev/install | sh and every run lands on your board as a report card. How setup works

View the SKILL.mdRaw file
SKILL.md---
name: instagram-weekly-analytics-report
description: "Every Tuesday: last week's Instagram views, reach, engagement and follower change, with the three posts or reels that did the most. Use when the user asks for this, or when it runs on a schedule."
---

# Instagram weekly analytics report

Every Tuesday: last week's Instagram views, reach, engagement and follower change, with the three posts or reels that did the most.

Instagram's own insights screen is built for scrolling on a phone, one post at a time, with a date range that resets. Creators and social managers who report weekly end up screenshotting it into a doc or copying numbers into a sheet.

This skill reads the same numbers through the Instagram API: account views, reach and interactions for last week, the follower count against the week before, and every post and reel published that week ranked by views. It runs on Tuesday because Instagram can take up to two days to finish a day's figures.

## Two ways to get the data

Use the API or MCP route when you have an MCP server, a CLI or an API token for the app. Otherwise, if you can drive a browser the user is signed in to (Claude in Chrome, a Playwright or Chrome DevTools MCP server), use the browser route. Say which one you used.

## Route A: API or MCP server

### What you need

- An Instagram professional account (Business or Creator); personal accounts have no insights API.
- A Meta app with Instagram Login (`instagram_business_basic`, `instagram_business_manage_insights`) or Facebook Login (`instagram_basic`, `instagram_manage_insights`, `pages_read_engagement`); its long-lived token in `INSTAGRAM_ACCESS_TOKEN` and the account ID in `INSTAGRAM_USER_ID`.

If something is missing, say what and stop; do not invent numbers.

### Steps

1. **Read account totals for the week** (Instagram): `GET /<ig-user-id>/insights?metric=views,reach,accounts_engaged,total_interactions,profile_links_taps&period=day&metric_type=total_value&since=<Monday>&until=<Sunday>` (Unix timestamps). Run it again for the week before. `impressions` is deprecated; `views` replaced it in 2025.
2. **Get the follower count** (Instagram): `GET /<ig-user-id>?fields=followers_count,media_count`, and compare with the count the skill saved last week. On the first run, use the `follows_and_unfollows` metric for the week instead.
3. **Score last week's posts and reels** (Instagram): List `GET /<ig-user-id>/media?fields=id,caption,media_product_type,timestamp,permalink` until `timestamp` is older than last Monday. For each, `GET /<media-id>/insights?metric=views,reach,saved,shares,total_interactions` (add `profile_visits` for feed posts).
4. **Rank and compare**: Each account metric with its change on the week before, the top 3 posts by views with reach, saves and shares, and the share of views that came from reels. Name what the top post had in common with last week's best, if anything.

## Route B: the browser

### What you need

- Signed in to Facebook with a user that has access to the Business portfolio and the Instagram professional account in Meta Business Suite (an Instagram account connected to a Facebook Page).

If something is missing, say what and stop; do not invent numbers.

### Steps

Start at https://business.facebook.com/latest/insights/overview. The user is signed in already; never type passwords or codes, and ask if a sign-in page appears.

1. **Open Insights in Meta Business Suite**: Instagram's own insights live in the phone app, so the desktop route is Meta Business Suite. Open **Insights**, pick the Business portfolio and the Instagram account at the top left, and on **Overview** set the date range to last Monday through Sunday with the comparison to the previous period on. Read `Views`, `Reach` and `Content interactions` with their changes.
2. **Read followers**: Open the **Audience** tab (Instagram) for the follower count and the change over the same 7 days, or read the `Follows` card on **Results**.
3. **Rank the week's posts**: Open the **Content** tab, filter to **Instagram** and **Published: last 7 days**, and sort by `Views`. Read the top 3 with reach, saves and shares, and note which are reels. If the list is long, use **Export** and read the file.
4. **Compare and write**: Each account metric with its change on the week before, the follower change, the top 3 posts with links, and the share of views from reels, plus one line on what the best post did differently.

Note: Business Suite shows the same insights as the API, with the same delay of up to 48 hours, so run it on Tuesday. Accounts without a connected Facebook Page see insights only in the Instagram app; the Instagram website shows a Professional dashboard with totals but no post table.

## The report

- **Views, reach, accounts engaged and interactions** for last week, each against the week before.
- **Followers**: the count and the change.
- **Top 3 posts or reels** by views, with reach, saves, shares and a link.
- **Reels share** of the week's views.
- One line on what the best post did differently.

## Post it to Briefkin

When `BRIEFKIN_TOKEN` is set, or `~/.config/briefkin/env` exists (the installer from https://briefkin.dev/docs writes it), also send the result to the user's Briefkin board as one card. Keep the `item_key` the same on every run so the card updates in place, use a new `event_id` per run, and put today's real numbers in place of the example ones. If the request fails, say so once and carry on.

```bash
[ -n "${BRIEFKIN_TOKEN:-}" ] || . ~/.config/briefkin/env
curl -sS -X POST "${BRIEFKIN_URL:-https://briefkin.dev}/v1/events" \
  -H "authorization: Bearer $BRIEFKIN_TOKEN" \
  -H "content-type: application/json" \
  -d @- <<'JSON'
{
  "v": 1,
  "event_id": "instagram-weekly-analytics-report/<date of this run, e.g. 2026-10-16>",
  "item_key": "instagram-weekly-analytics-report",
  "project": "Acme",
  "source": "Instagram weekly analytics report skill",
  "kind": "update",
  "title": "Views up 18%, three reels carried the week",
  "summary": "**182,400 views** (+18%) and **64,300** accounts reached. Followers grew by **212** to 12,840. Reels made 71% of the week's views.",
  "widget": [
    {
      "type": "Grid",
      "props": {
        "columns": 4
      },
      "children": [
        {
          "type": "Stat",
          "props": {
            "label": "Views",
            "value": "182.4k",
            "delta": 18
          }
        },
        {
          "type": "Stat",
          "props": {
            "label": "Reach",
            "value": "64.3k",
            "delta": 9
          }
        },
        {
          "type": "Stat",
          "props": {
            "label": "Interactions",
            "value": 5930,
            "delta": 12
          }
        },
        {
          "type": "Stat",
          "props": {
            "label": "Followers",
            "value": 12840,
            "delta": 1.7
          }
        }
      ]
    },
    {
      "type": "Table",
      "props": {
        "columns": [
          "Post",
          "Type",
          "Views",
          "Reach",
          "Shares"
        ],
        "align": [
          "left",
          "left",
          "right",
          "right",
          "right"
        ],
        "rows": [
          [
            "3 mistakes on your first invoice",
            "Reel",
            48200,
            31600,
            412
          ],
          [
            "Behind the scenes: packing day",
            "Reel",
            39700,
            25100,
            188
          ],
          [
            "Client asked for net 60, here is what I said",
            "Reel",
            22800,
            15900,
            301
          ]
        ]
      }
    }
  ]
}
JSON
```

Widgets come from the Briefkin catalog (https://briefkin.dev/v1/catalog). Without a token, just give the user the report.

## Run it on a schedule

Suggested: Tuesdays at 9:00 (`0 9 * * 2`). From cron, with the agent signed in on that machine:

```bash
0 9 * * 2 claude -p "Run the instagram-weekly-analytics-report skill"
# Codex: codex exec, Gemini CLI: gemini -p, Copilot CLI: copilot -p, OpenCode: opencode run
```

Or use the agent's own scheduler (Claude Code routines, Codex automations, Claude or ChatGPT scheduled tasks): https://briefkin.dev/skills/instagram-weekly-analytics-report#schedule

Source: https://briefkin.dev/skills/instagram-weekly-analytics-report

What your agent needs

  • An Instagram professional account (Business or Creator); personal accounts have no insights API.

  • A Meta app with Instagram Login (instagram_business_basic, instagram_business_manage_insights) or Facebook Login (instagram_basic, instagram_manage_insights, pages_read_engagement); its long-lived token in INSTAGRAM_ACCESS_TOKEN and the account ID in INSTAGRAM_USER_ID.

Connecting Instagram

  1. MCP server. Instagram has no official MCP server for account insights as of October 2026. Community servers exist and use the same access token; check whether one can publish or delete posts before you connect it.
  2. Instagram API with Instagram Login. Create a Meta app with the Instagram product, add your professional account, and request instagram_business_basic and instagram_business_manage_insights. Calls go to https://graph.instagram.com, and the skill reads INSTAGRAM_ACCESS_TOKEN and INSTAGRAM_USER_ID. Long-lived tokens last 60 days and can be refreshed before they expire.
  3. Instagram API with Facebook Login, for accounts linked to a Facebook Page: request instagram_basic, instagram_manage_insights and pages_read_engagement, and call https://graph.facebook.com.

Request only the basic and insights permissions; without instagram_business_content_publish or instagram_business_manage_comments, the token can read numbers but can't post or reply.

Questions

Why Tuesday and not Monday?

Instagram says insights can be delayed by up to 48 hours. On Monday morning, Sunday's numbers are often incomplete, which makes every week look a little worse than it was. Tuesday gives the whole week time to settle.

Where are profile visits?

As of October 2026, the account insights endpoint lists no profile visits metric. The report uses profile_links_taps (taps on your website, email and call buttons) at account level, and adds up profile_visits from the week's feed posts, which the media endpoint still reports.

Do I need Briefkin to use the Instagram weekly analytics report skill?

No. The skill runs with your own agent and gives you the report in the chat. With a Briefkin token set, each run also posts it to your board as a report card, so you can glance at it instead of asking again.

Which agents can run it?

Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot CLI, OpenCode, Windsurf and Amp all read SKILL.md files. The install command puts it in ~/.claude/skills and ~/.agents/skills, where they look. ChatGPT, the Claude app and Grok take the prompt instead. Pick your agent under "Install and run it" and the commands change to match.

Can it work without an API or MCP server, from my browser?

Yes. Switch the data source to "Your browser" and the steps change to the Instagram pages themselves: the agent opens business.facebook.com/latest/insights/overview in a browser you are signed in to and reads the numbers off the page. Claude Code, Codex, Cursor, Claude app and ChatGPT can drive a browser out of the box; Gemini CLI, Copilot CLI and OpenCode need a Playwright or Chrome DevTools MCP server first. It is slower than the API and needs you signed in, so it suits a report you run by hand or from a scheduler on your own computer.

Read this report on your board, not in a chat log

Skills are free to use with any agent. Briefkin is where their results land: one board for every report, number and question your agents send, with a ping when something needs you.

Free during the open beta. No card.