Skip to main content
Stealer Export takes one system_id and returns every stealer log attached to it, packed into a single .zip archive.
This is the only endpoint that answers with a file on success. Errors still use the JSON envelope, so branch on the status code before reading the body. It is not a search module: /api/v1/search/stealer-export returns 400 not_a_search_module.

What you need

string
required
The System ID of the record — a UUID, 8-4-4-4-12 hexadecimal characters. On intelx.io, open the record and unfold Expert Information; it is the first identifier listed.
Nothing else. Unknown fields are rejected with 422 invalid_input, so a typo such as systemId is reported instead of ignored.

Plans and cost

A 403 module_locked on Free or Starter costs nothing and never reaches the export service.

Call it

--fail-with-body matters: without it, curl happily writes a JSON error into a file named .zip.

Reading the response

On success you get the archive and the usual quota headers: On failure you get JSON:

Errors worth handling

Archives hold credentials taken from infected machines. Treat every file inside as untrusted input: never execute it, escape it before displaying it, and store it somewhere you would be comfortable defending. Find.ly streams the archive through and keeps nothing.