Skip to Content
Data Export

Data Export

Classifyre lets you take your findings and assets out of the app and into the tools your team already lives in — Excel, Google Sheets, Power BI, or any spreadsheet. There are two ways to do it:

  • Download a CSV — a one-time snapshot of exactly what you’re looking at right now. Best for sharing, archiving, or a quick pivot table.
  • Connect a live feed — a link your spreadsheet refreshes on demand, so the numbers update themselves. Best for recurring reports and dashboards.

Both honor the same search and filters you’ve set on screen, so you only export the rows you actually want.


Download a CSV

Every major table has a Download CSV button:

  • Findings — one row per finding (category, asset, source, severity, status, confidence, matched content, detection dates, and metadata).
  • Assets — one row per asset-with-finding, so an asset that triggered five findings appears as five rows. Great for slicing findings by asset attributes.
  • Scan assets (inside a scan run) — one row per processed asset, with its status, finding totals, and any error.

Narrow down to what you want

Use the search box and filters above the table — severity, status, source, detector, and so on. Whatever is currently shown is what gets exported.

Click Download CSV

A dialog tells you how many rows will be exported, so there are no surprises.

Confirm

The file downloads straight to your computer and opens in Excel, Google Sheets, or Numbers. Even very large exports download smoothly — Classifyre streams the file rather than building it all in memory first.

The CSV is a snapshot. It reflects the data at the moment you clicked Download. To get fresh numbers later, download again — or set up a live connection below.


Connect a live feed (auto-refresh)

If you build the same report every week, a live connection saves you the repeat work. Your spreadsheet holds a link to Classifyre; you click Refresh and the latest data flows in.

Classifyre exposes a query link for each dataset that returns data in pages. Your spreadsheet walks through the pages automatically, so even large datasets come through in full.

DatasetLink
Findingshttps://<your-classifyre-host>/api/search/findings/query
Assets (with findings)https://<your-classifyre-host>/api/search/assets/query
Scan assetshttps://<your-classifyre-host>/api/search/runner-assets/query

Your administrator can give you the exact host name (the part shown as <your-classifyre-host>) and tell you whether a sign-in or access token is required for connections from outside the app.

Choosing what comes through

Add filters to the link exactly like the on-screen filters. A few examples:

  • High and critical findings only: …/search/findings/query?severity=HIGH&severity=CRITICAL
  • Open PII findings for one source: …/search/findings/query?detectorType=PII&status=OPEN&sourceId=<source-id>
  • Critical findings grouped by asset: …/search/assets/query?finding_severity=CRITICAL

Repeat a parameter to select several values (e.g. severity=HIGH&severity=CRITICAL). You can also set limit (rows per page, up to 10,000; default 1,000).

All available filters

Findings (/search/findings/query) search, sourceId, detectorType, customDetectorKey, findingType, category, severity, status, includeResolved

Assets (/search/assets/query) asset_search, asset_sourceId, asset_status, asset_sourceType, finding_detectorType, finding_severity, finding_status, finding_includeResolved, excludeFindings, includeAssetsWithoutFindings

Scan assets (/search/runner-assets/query) runnerId (required), search, status

Common values — Severity: INFO, LOW, MEDIUM, HIGH, CRITICAL · Finding status: OPEN, FALSE_POSITIVE, IGNORED, RESOLVED · Detector: SECRETS, PII, YARA, BROKEN_LINKS, CUSTOM.

Set it up

Excel’s Power Query can read the feed and page through it for you.

Open the query editor

In Excel: Data → Get Data → From Other Sources → Blank Query, then Advanced Editor.

Paste this, editing the host and filters

let
    BaseUrl = "https://<your-classifyre-host>/api/search/findings/query",
    Query   = "limit=5000&severity=HIGH&severity=CRITICAL",

    // Fetch one page; cursor = null for the first page
    GetPage = (cursor as nullable text) =>
        let
            Url  = BaseUrl & "?" & Query &
                   (if cursor <> null then "&cursor=" & cursor else ""),
            Resp = Json.Document(Web.Contents(Url))
        in
            Resp,

    // Keep fetching while the response hands back a nextCursor
    Pages = List.Generate(
        () => GetPage(null),
        each _ <> null,
        each if [nextCursor] <> null then GetPage([nextCursor]) else null
    ),

    Rows  = List.Combine(List.Transform(Pages, each [items])),
    Result = Table.FromRecords(Rows)
in
    Result

Load and refresh

Click Done, then Close & Load. Whenever you want fresh data, hit Refresh (or set an automatic refresh schedule in Excel).

How paging works

Each response looks like this:

{
  "items": [ /* up to `limit` rows */ ],
  "nextCursor": "eyJ..."   // null when you've reached the last page
}

Keep requesting with ?cursor=<nextCursor> until nextCursor is null. The order stays stable between pages, so you never miss or double-count a row — sort and filter inside your spreadsheet once everything has loaded.

The live feed returns data in a fixed, stable order built for reliable paging — it is not sorted by severity or date. Apply your preferred sort in Excel, Sheets, or your BI tool after the data lands.


Which should I use?

Download CSVLive feed
Best forSharing, archiving, one-off analysisRecurring reports, dashboards
FreshnessSnapshot at download timeRefreshes on demand
SetupOne clickOne-time connection in your tool
ToolsExcel, Sheets, NumbersExcel (Power Query), Sheets, Power BI, BI tools

Both always reflect the filters you choose — so whichever you pick, you’re working with exactly the slice of findings or assets you care about.

Last updated on