{
  "ok": true,
  "app_id": "app.ninjavpn.android",
  "comparable": true,
  "comparison_status": "comparable",
  "regressed": false,
  "grade_delta": "A ← A",
  "score_delta": 0,
  "from": {
    "scan_id": "c34a0a2b-d8b6-4a79-ac85-2e4d1e0614ae",
    "version": "1.4.11",
    "analysis": {
      "issues": [],
      "stages": {
        "pii": "complete",
        "sbom": "complete",
        "signing": "certificate_parsed",
        "strings": "complete",
        "manifest": "complete"
      },
      "status": "complete",
      "grading": {
        "policy": "static-coverage-v1",
        "blockers": [],
        "eligible": true
      },
      "timings_ms": {
        "total": 7155.082,
        "harvest": 2187.5109999999995,
        "detectors": 4494.918000000001
      },
      "bytes_total": 46757291,
      "bytes_scanned": 46757291,
      "bytes_skipped": 0,
      "files_processed": 756,
      "coverage_version": 2,
      "string_encodings": [
        "ascii",
        "utf16le"
      ],
      "signature_validation": "not_performed"
    },
    "provenance": {
      "mode": "static",
      "artifacts": [
        {
          "name": "base.apk",
          "sha256": "d6a812aa714038d8bc44c9fd218c1c4eb86e5bfc0eaac5259e431975d72fbc27"
        },
        {
          "name": "config.arm64_v8a.apk",
          "sha256": "85165df4939a4edf809112d511a0533fe5d48634370b8609ce062677dd471908"
        },
        {
          "name": "config.en.apk",
          "sha256": "4cb5afe01f6f6f1ee6d28d03dfde5d52da75cc020252a9020acab29bb3a05ff1"
        },
        {
          "name": "config.xxhdpi.apk",
          "sha256": "da284e12c50903767bc8a250a0d6fa1f128c5cbbb103707ee635db4ead7ff7d0"
        }
      ],
      "ruleset_sha256": "3bb79cc3710b0fb021feaa322578f4cffe08396a97c51b34df092b5a05891d5e"
    },
    "grade": "A",
    "score": 98,
    "scanned_at": "2026-10-05T18:24:12.524Z"
  },
  "to": {
    "scan_id": "d320e4c3-f533-44ce-b533-1f9345f40a1e",
    "version": "1.4.12",
    "analysis": {
      "issues": [],
      "stages": {
        "pii": "complete",
        "sbom": "complete",
        "signing": "certificate_parsed",
        "strings": "complete",
        "manifest": "complete"
      },
      "status": "complete",
      "grading": {
        "policy": "static-coverage-v1",
        "blockers": [],
        "eligible": true
      },
      "timings_ms": {
        "total": 8206.91,
        "harvest": 2475.8069999999993,
        "detectors": 5286.667000000004
      },
      "bytes_total": 46768836,
      "bytes_scanned": 46768836,
      "bytes_skipped": 0,
      "files_processed": 760,
      "coverage_version": 2,
      "string_encodings": [
        "ascii",
        "utf16le"
      ],
      "signature_validation": "not_performed"
    },
    "provenance": {
      "mode": "static",
      "artifacts": [
        {
          "name": "base.apk",
          "sha256": "65ca42fcbdd84020fd6d7890ecd75ef70cefb2cf40fadb3157822178fbc6f7be"
        },
        {
          "name": "config.arm64_v8a.apk",
          "sha256": "d26f9ed7ab0e1f3144dd6d25dae0a0984dc8a8c76e07b24322242fc15323e2f5"
        },
        {
          "name": "config.en.apk",
          "sha256": "355749ab57e1c4263e9b253d223b8426e8fd7362274da1582fcdad9c3a6728dc"
        },
        {
          "name": "config.xxhdpi.apk",
          "sha256": "8099c39c50f3bf0b3747e126618528a0624fc4218dd114ae4b3ab9d8dd29f1a7"
        }
      ],
      "ruleset_sha256": "3bb79cc3710b0fb021feaa322578f4cffe08396a97c51b34df092b5a05891d5e"
    },
    "grade": "A",
    "score": 98,
    "scanned_at": "2026-10-12T18:36:49.407Z"
  },
  "findings": {
    "added": [],
    "removed": [],
    "persisting_count": 2,
    "added_by_sev": {
      "critical": 0,
      "high": 0,
      "medium": 0,
      "low": 0
    },
    "removed_by_sev": {
      "critical": 0,
      "high": 0,
      "medium": 0,
      "low": 0
    }
  },
  "trackers": {
    "added": [],
    "removed": []
  },
  "known_vulns": {
    "from": 0,
    "to": 0,
    "delta": 0,
    "from_recorded": true,
    "to_recorded": true
  }
}