Instagram hashtag posts, billed only for the rows you actually get
Give it a hashtag and a session cookie for an Instagram account you control. It writes posts to your dataset, newest first, and charges $0.0005 per delivered post — and for nothing else.
What "delivered" means, exactly
A post is billable only once it has been written to your dataset. Everything that does not reach it is free, and the run still tells you it happened:
- A run that returns nothing costs nothing.
- Duplicate posts are dropped and not charged — deduplicated across the whole run, not just within a page.
- Posts outside the date window you asked for are not charged.
- Posts past your result limit are not charged. The limit is exact, whatever a feed page happens to contain.
- A post the actor could not read is not charged.
- A run that cannot reach Instagram at all charges nothing, and fails rather than reporting success.
Apify meters and bills this, and the platform usage the run consumes — compute and storage — is included in that price. There is no separate platform charge added to your bill.
What a run costs
| What you run | Delivered posts | You pay |
|---|---|---|
| A first test run | 10 | $0.005 |
| A day's check on one hashtag | 200 | $0.10 |
| A week of a busy hashtag | 1,000 | $0.50 |
| A month of a busy hashtag | 10,000 | $5.00 |
A poll with onlyPostsNewerThan where nothing is newer | 0 | $0.00 |
The last row is the point: there is no per-run fee, no per-hashtag fee and no charge for starting, so polling a hashtag on a schedule and getting nothing back costs nothing at all.
Deduplication is within a run, not across runs. Two runs over the same hashtag deliver — and charge for — the same posts twice. onlyPostsNewerThan is what makes repeated polling cheap.
A date filter that stops the run
onlyPostsNewerThan takes a date, a datetime, or a relative window like 7 days. It is not a post-filter over everything the actor already fetched — the run stops when the feed reaches that date, so a week of a hashtag costs a week of rows.
Every run says why it stopped
The status message names one of 11 end states, so you can act on it without reading the log — the result limit, the date cutoff, the feed running out, the page budget, the run budget, a session Instagram refused, a rate limit, a hashtag that does not exist, a failed request, a run started above the memory ceiling, or a response shape we could not read.
The ones that could not reach Instagram exit the run as failed, never as a success with an empty dataset. All 11, with what to do about each.
Try it on your hashtag
A hashtag and a session cookie are all it asks for.