Caching and freshness
We keep each answer for a while, so asking twice is quick. Every answer says how old it is, and you can always ask for a fresh one.
How old an answer is
Every response carries meta.cached, true when the answer came from our cache, and meta.fetched_at, when the data was actually read from the platform. A cached answer is never presented as new: its fetched_at is the original time.
A cached answer costs the same credits as a fetched 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.
How long each answer is kept
The same call with the same parameters is answered from the cache until its window ends. After that the answer is deleted, not just refreshed: we don’t keep what you asked for beyond it (see Privacy).
| Endpoint | Kept for |
|---|---|
| Google Maps · Search places | 24 hours |
| Google Maps · Place details | 24 hours |
| Google Maps · Reviews | 6 hours |
| Google Maps · Photos | 24 hours |
| LinkedIn · Profile | 12 hours |
| LinkedIn · Company page | 24 hours |
| LinkedIn · Posts | 3 hours |
| LinkedIn · Search jobs | 3 hours |
| Instagram · Profile | 12 hours |
| Instagram · Posts | 3 hours |
| Instagram · One post | 3 hours |
| Instagram · Comments | 1 hour |
| Instagram · Hashtag feed | 1 hour |
| TikTok · Profile | 12 hours |
| TikTok · Videos | 3 hours |
| TikTok · One video | 3 hours |
| TikTok · Comments | 1 hour |
| TikTok · Search | 1 hour |
Forcing a fresh fetch
Add fresh=true to skip the cache and read the platform now. It costs the endpoint’s usual credits, and the new answer replaces the cached one for everyone after you.
curl "https://api.scrapefield.com/v1/instagram/profile?username=nasa&fresh=true" \
-H "Authorization: Bearer $SCRAPEFIELD_KEY"| Code | HTTP | When, and what to do |
|---|---|---|
fresh_not_available | 403 | `fresh=true` on an account that has never bought credits. Trial credits are cache-first. Buy any amount of credits to bypass the cache. |