/brand/retrieve lands on a warm cache:
/brand/prefetchif you have a domain./brand/prefetch-by-emailif you have a work email.
/brand/retrieve returns instantly.
0 Credits on both. No rate limit. Subscriber-only.
How the cache works
- Cache TTL is up to 3 months. After that, the next call triggers a refresh in the background.
- The cache is shared across the account. A prefetch from a backend job warms the cache for a user-facing call seconds later.
- Prefetch is fire-and-forget. Both endpoints return immediately after queuing the work. You do not wait for the prefetch before calling
/brand/retrieve. - Prefetch by email skips known free/disposable providers. Calls against
gmail.com,yahoo.com,outlook.com, and the 10,000+ disposable services return an error you can safely ignore.
Latency
| Pattern | p50 | p90 | p99 |
|---|---|---|---|
Cold /brand/retrieve (no prefetch) | 7s | 18s | ~1 min |
Cached /brand/retrieve (after prefetch or prior hit) | <1s | <1s | <1s |
What prefetch does not do
- It does not speed up scraping endpoints.
/web/scrape/*,/web/crawl,/web/screenshot, and/brand/ai/*are not affected by the brand cache. Each call fetches the target URL. - It does not preempt rate limits. Prefetch itself is rate-limit-free, but the eventual
/brand/retrievecall still counts against your plan’s per-minute rate limit. - It does not return brand data. The endpoint queues the work and returns
{ status, message, domain }. To read the brand, call/brand/retrieveseparately.
Related resources
Rate limits
How the per-plan per-minute limits interact with cached and prefetched
calls.
Best practices
Where prefetching fits in the broader integration pattern.
Troubleshooting
Cold-hit timeouts and how to handle them.
Get brand data
The endpoint prefetching warms.