Rate Limits & Caching
DataForSEO has two constraints you should understand: concurrent requests and credit balance. Neither maps to the classic "N requests per minute" rate limit you see on most APIs — they're closer to fair-use guardrails.
SEODesktop layers local caching on top of the API so you rarely hit these limits in normal use.
DataForSEO's limits
- Concurrent tasks per account: up to 2,000. Batches in SEODesktop auto-pipeline well under this.
- Payload size: up to 2,000 items per task-post request.
- Result history:
standardendpoints keep results on the DataForSEO side for 7 days.liveendpoints return results immediately. - Hard rate limit: none published, but excessive burst traffic (thousands of live calls in a few seconds) may be throttled at the network level. SEODesktop's batch scheduler spaces requests automatically.
How SEODesktop caches
Every response from DataForSEO is stored in a local SQLite cache, keyed by the full request parameters. Running the same query twice within the cache TTL returns the cached response without hitting the API.
Default TTLs:
| Endpoint class | Cache TTL |
|---|---|
| Live SERP | 15 minutes |
| Standard SERP | 24 hours |
| Keyword volume | 24 hours |
| Keyword ideas | 6 hours |
| Backlinks | 6 hours |
| On-page audits | 1 hour |
| AI analyses | 1 hour |
TTLs can be adjusted in Settings → Cache. Lower values = more API spend but fresher data; higher values = cheaper but staler.
Seeing cache hits
When a result comes from cache, the result header shows a small Cached badge with the timestamp of the original fetch. Click the badge to force a refresh and hit the API again.
Clearing the cache
- Settings → Cache → Clear all drops everything.
- Per-endpoint clearing is available on the same screen.
Clearing the cache doesn't invalidate your exports or saved result files — those are separate.