Stream every IP address matching a GNQL query as a single JSON
document: {"ips": [...], "request_metadata": {...}}. Unlike
GET /v3/gnql, this endpoint returns IP addresses only — no metadata,
tags, or raw data — and is not paginated: the full result set is
streamed in one response, so no scroll token is involved.
IPs are ordered most recently seen first (by last_seen descending,
ties broken by ascending IP address). A client that reads only the
beginning of the stream therefore receives the most recently observed
IPs rather than an arbitrary slice of the match set.
Because a large export can take a while to produce its first bytes,
the response is kept alive with whitespace between chunks. Whitespace
between JSON tokens is insignificant, so any standard JSON parser
handles it; a parser reading the body incrementally should expect it.
Entitlement, data-reach, and restricted-field handling match the
search endpoint. When plan limitations rewrite the query, the response
is a 206 if nothing has been written yet; on an export that has
already begun streaming the status is committed as 200, so treat a
non-empty request_metadata.adjusted_query as the authoritative
signal that the query was modified.
