ti_get_collection
Browse and search threat-intelligence collection records with query, date-range, and pagination filters; use scroll mode to export result sets beyond 10,000 records.
Instructions
Common API — read records from a collection: GET /api/v2/{collection}. This is both the browse and the search call: add query to filter, df/dt to bound by date. The response carries count and items; records come back newest-first. Default paging is by offset: the first call returns the newest page, the next one passes offset += limit, until offset reaches count. The backend caps offset + limit at 10000, which is plenty for answering questions. Set scroll=true only to export a result set beyond 10000 records or to walk a whole collection: the response then carries resultId, which this tool remembers per collection+filter and passes back automatically on the next call (stop when items is empty; an id stays valid ~150 s after its last use, and on some collections a NEW scroll is allowed only once per 60 s). Use ti_get_updates instead when tracking a feed continuously.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| lang | No | Response language, e.g. "en" or "ru". | |
| limit | No | Integer. Records per request. Default 100; capped per collection. | |
| query | No | Optional q filter. Free text matches any attribute ("8.8.8.8", "GOFFEE") and is the safe default. Several terms without an operator are searched as one phrase: join them with AND / OR or quote a phrase: "Cobalt Strike". "attribute:value" matches one top-level field exactly ("domain:example.com", "name:GOFFEE"), but only where the collection supports that field: apt/threat and hi/threat accept nothing but id: and domain:. A 400 "invalid search field" means exactly that — repeat the value as free text. The collection's note (in every answer and in ti_describe_collections) says how to search it. | |
| offset | No | Integer. Skip this many records: 0 for the first page, then offset += limit. offset + limit must stay within 10000. Not used with scroll=true. | |
| scroll | No | true = iterate with resultId instead of offset, for sets beyond 10000 records or a full walk. Default false. | |
| date_to | No | dt — YYYY-MM-DD or YYYY-MM-DDTHH:MM:SSZ. | |
| restart | No | Only with scroll=true: ignore the remembered resultId and open a new scroll from the first page (on some collections allowed once per 60 s). | |
| date_from | No | df — YYYY-MM-DD or YYYY-MM-DDTHH:MM:SSZ. | |
| result_id | No | Only with scroll=true: resultId from the previous response. Normally omit it — the remembered one is used automatically. | |
| collection | Yes | Collection name without an endpoint suffix, e.g. "ioc/common" or "compromised/account_group". Known: apt/threat, apt/threat_actor, attacks/ddos, attacks/deface, attacks/phishing_group, attacks/phishing_kit, compromised/access, compromised/account_group, compromised/bank_card_group, compromised/breached, compromised/discord, compromised/masked_card, compromised/messenger, compromised/mule, compromised/reaper, compromised/suspicious_payment, hi/open_threats, hi/threat, hi/threat_actor, ioc/common, malware/cnc, malware/config, malware/malware, malware/phishing_kit, malware/signature, malware/yara, osi/git_repository, osi/public_leak, osi/vulnerability, suspicious_ip/open_proxy, suspicious_ip/scanner, suspicious_ip/socks_proxy, suspicious_ip/tor_node, suspicious_ip/vpn. Unknown names are passed through as-is; ti_list_collections shows what this account may actually read, ti_describe_collections what each one contains. | |
| extra_params | No | Any further query parameters, passed through verbatim — e.g. {"tags[filterSpam][]": 1} to drop spam from compromised/messenger, or {"has_exploit": 1} for osi/vulnerability. | |
| apply_hunting_rules | No | 0 or 1. Applies this account's hunting rules so only matching data comes back. Supported by: apt/threat, attacks/ddos, attacks/phishing_group, compromised/breached, compromised/messenger, compromised/reaper, hi/open_threats, hi/threat, osi/public_leak, osi/vulnerability, suspicious_ip/open_proxy, suspicious_ip/scanner, suspicious_ip/socks_proxy, suspicious_ip/tor_node, suspicious_ip/vpn. |