ScrapeField
Ask for the same Instagram profile twice in a minute, and the second answer comes from our cache. Many data APIs keep answers for a while, because reading the platform is the slow and costly part of a call. The useful question is not whether an API caches. It is whether the answer tells you how old it is.
How to tell
Every response says it, in meta:
{
"data": { … },
"meta": {
"cached": true,
"fetched_at": "2026-10-04T08:12:31.000Z",
"credits_charged": 3,
…
}
}cached is true when the answer came from our cache. fetched_at is when the data was read from the platform, not when you asked. A cached answer keeps its first time, so a profile read at 08:12 still says 08:12 at noon. If your product shows the data, show that time with it.
How long, and why it differs
We keep each kind of answer for about as long as it usually stays true. A business’s address changes once in years; a comment thread changes by the minute:
- Comments, hashtag feeds and TikTok searches: 1 hour.
- An account’s posts and videos, and LinkedIn job searches: 3 hours.
- Google Maps reviews: 6 hours.
- Profiles on LinkedIn, Instagram and TikTok: 12 hours.
- Google Maps places and photos, and LinkedIn company pages: 24 hours.
When the window ends, the answer is deleted, not refreshed in the background, and the next call reads the platform again. The full table is in caching and freshness.
What it costs
A cached answer costs the same credits as a fresh one. You pay for the answer, not for how we produced it, so the price of a call never depends on who asked before you. Why we chose that is its own post: a cached answer costs the same as a fresh one.
When you want a fresh one
Add fresh=true, and we read the platform now. It costs the endpoint’s usual credits, and the new answer replaces the cached one for everyone after you. Use it when an old answer would be wrong for you:
- a check that runs more often than the window, such as new reviews every hour;
- right after you know something changed, such as a company page you have just been told is updated;
- to rule out the cache when an answer surprises you.
It needs a purchase of any size. On trial credits it is refused with fresh_not_available, and costs nothing.
Pages of one list
A cursor belongs to the answer it came with, so it lasts as long as that answer is cached. Past that, it is refused with invalid_cursor, nothing is charged, and you start again from the first page: read a long list in one go. A row the platform repeats from the page before is dropped, so you do not get it twice.
A question to ask any data API
Some data APIs answer from a database built in advance, sometimes weeks before, and an answer does not always say when its data was read. That can be the right trade for a large historical dataset. For data that changes, ask one question before you build on an API: does every answer say when its data was read from the source? Ours does, in every response, including the cached ones.