Skip to main content
Add as_of to a single-IP lookup to get our answer for that IP on a past UTC day instead of today. Point-in-time lookups come with the Business and Enterprise plans; on any other plan the request gets 403.
The path form takes it too: GET /api/v1/ip/193.32.248.66?as_of=2026-10-01. Batch lookups don’t take as_of.

The archive

We keep each UTC day’s classification data, starting with 2026-07-31, and add a day each day. Write the day as YYYY-MM-DD. A day the archive doesn’t hold gets 400 as_of_outside_coverage, and the error gives the first and last days it does hold.

The answer

The body is IpAsOfResponse in the single-IP reference. It carries that day’s classification, provider and confidence, the sighting fields (first_seen, last_seen, observation_count, hits_days_pct, providers_num), the is_* flags and the registered network owner, under the same plan rules as a lookup for today. freshness_class is measured on that day, from archive.data_as_of: in the example, the address was last seen two hours before that day’s most recent observation, so it reads current. Fields that describe the present are left out: asn, asn_org, infra_type, risk_score, reasons, source, metadata and the enrichment objects. The archive block gives the archive’s first_day and last_day, the time of the most recent observation in that day’s data (data_as_of), and errata: known problems with that day’s data, in plain words. It is empty on most days.

Today’s rules, that day’s data

An answer is rebuilt from that day’s archived data under today’s data-handling and attribution rules. It is not a copy of what a lookup returned on that day, so a name or a label can differ from that day’s answer.

Credits and errors

A successful answer uses one lookup credit, like any single lookup; errors use none. On top of the errors any lookup can return: