beefe047a7
The endpoints grid already answers with reply.total_count — the number of endpoints matching the filters, independent of the page asked for — so endpoint_count asks for a one-record page and reads it, where get-endpoints has to walk the estate 100 records at a time to arrive at the same figure, and only filters on four fields. Filters cover the twelve list fields the API accepts (hostname, alias, endpoint id, internal and public IP, group, platform, distribution, status, isolation, scan status, username), add first_seen/last_seen bounds taking ISO8601 or epoch ms, and keep a raw JSON `filters` escape hatch for anything else. Filters are ANDed; the API has no OR. The estate `total` comes back next to `count` so the figure reads as a proportion, and a filter too broad to mean anything shows as matching everything rather than passing for an answer. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>