# What reading Instagram posts costs: a quote before, a charge per post after

Instagram post data through RouterGrowth has no plan or seat. inspect shows the exact rate before you run, the run reserves that quote, and the charge follows the posts actually returned. This page shows one real run on the Brooklinen account and what it was billed.

HTML page: https://www.routergrowth.com/tools/instagram/api-costs
Part of: [Instagram tools](https://www.routergrowth.com/tools/instagram.md)

## The call

[`social.posts`](https://www.routergrowth.com/catalog/social.posts): Recent public posts for a social handle.

Price on this network: $0.004025 per post, $0.002 minimum a call. The exact quote is shown before every run.

## What a real run returned

Run on 2026-10-19: 5 records in 10.7 s for $0.020125. Personal fields are masked. Five recent Brooklinen posts, billed as five results. The run's charge is the cost shown on this page.

| created_at | text | likes | replies | views |
|---|---|---|---|---|
| 2026-10-15 | There’s fluff, and then there’s Super-Fluff. Our latest blanket is ultra-soft and as cuddly as a cloud (or a samoyed named Boo) | 180 | 24 | 1070 |
| 2026-10-18 | “Are you coming out tonight?” I’m not even coming out from under the covers tonight, thanks! | 118 | 2 | None |

## How to do it

1. **Check the rate.** routergrowth inspect -c social.posts, or the inspect tool over MCP, prints the Instagram rate per post. Nothing is charged for inspect.
2. **Set a ceiling.** Pass max_cost with the run. A quote above it is refused before anything bills, and it also limits which fallback providers may run.
3. **Run with a small limit.** The limit is the number of posts you pay for at most. Start at five, look at the rows, then raise it.
4. **Read billing in the response.** Every run returns billing.quoted and billing.charged, and the run list keeps them for later audit.

## Ask it like this

- Before you run anything, tell me what 20 posts from each of these 15 Instagram brands would cost, then run it under a $1 cap. (`social.posts`)
- Get the latest five posts from each competitor on this list and tell me what the whole job was charged. (`social.posts`)

## Connect

MCP server: `https://api.routergrowth.com/mcp`

```bash
claude mcp add --transport http routergrowth https://api.routergrowth.com/mcp
```

```bash
npm install -g routergrowth && routergrowth setup
routergrowth run -c social.posts -i '{"platform": "instagram", "handle": "brooklinen", "limit": 5}'
```

```bash
curl -X POST https://api.routergrowth.com/v1/run \
  -H "Authorization: Bearer $ROUTERGROWTH_API_KEY" \
  -d '{"capability": "social.posts", "input": {"platform": "instagram", "handle": "brooklinen", "limit": 5}}'
```

## Worth knowing

- **Per result, not per month.** social.posts is billed per post returned. There is no subscription and no minimum.
- **Misses are free.** The catalog marks social.posts as not billed on no match: a handle that returns no posts costs nothing.
- **The quote is the price.** The run reserves the quoted amount, then settles on what came back. It never charges above the quote.

## Questions

### Is there a monthly fee for Instagram data?

No. You prepay a wallet and each run draws from it, priced per post returned.

### Do I pay for a failed run?

No. A run that fails, or a handle that returns no posts, is not charged.

### How do I know the cost before running?

inspect returns the rate per post for Instagram, and every run takes a max_cost so the call stops if the quote is higher.

### Is this cheaper than the official Instagram API?

They are different things. RouterGrowth is independent of Meta and bills per post for public data; it does not resell Meta's API.

### Can I see what each run cost later?

Yes. routergrowth runs lists past runs with their charge, and each run_id returns its billing block.

## Related

- [Scrape the posts under an Instagram hashtag without running a scraper](https://www.routergrowth.com/tools/instagram/scraper.md)
- [Scrape a brand's Instagram profile into one clean record](https://www.routergrowth.com/tools/instagram/profile-scraper.md)
- [Scrape a brand's Instagram posts with captions and engagement, no setup](https://www.routergrowth.com/tools/instagram/posts-scraper.md)
- [Scrape the comments under a brand's Instagram post](https://www.routergrowth.com/tools/instagram/comment-scraper.md)
- [Call Instagram post data from a Python script with requests](https://www.routergrowth.com/tools/instagram/api-python.md)
- [Read any public Instagram brand feed through one REST or MCP call](https://www.routergrowth.com/tools/instagram/api.md)
