Original metadata research
Nikon Shutter Count Research: Results From 273 NEF Files
We examined the existing Nikon NEF subset of our public-file corpus, kept the exact model labels, and counted what the reader actually found. Here are the positive results, the missing counters, and the fields that disagree.
By ShutterActuations · Published September 15, 2026 · Cached extraction run: September 5, 2026
DETECTED ≠ VERIFIED. These are observations from files, not independently verified lifetime mechanical shutter totals or a universal Nikon compatibility list.
What the 273 files represent
All 273 tested NEF files parsed. 264 exposed at least one strongly named counter candidate, covering 74 exact model labels. The complete subset contains 82 labels, not 74: the other eight labels account for nine files without strong or possible counters.
Two of those labels are Nikon COOLSCAN IV ED and Nikon COOLSCAN V ED. These scanner-labeled records belong to the NEF-format inventory, but should not be presented as camera shutter tests. We retain them in the original 273-file denominator rather than quietly changing the published scope. Excluding those two records leaves 271 files across 80 labels, with the same 264 strong detections.
We selected existing NEF records marked parser_tested in our inventory and joined them to cached results by SHA-256. No samples were newly downloaded for this report. Files are distinct by fingerprint, but that does not mean they came from distinct physical bodies. Labels such as NIKON Z6_3 remain exactly as reported by the engine; they are not silently merged or renamed.
The subset comes from raw.pixls.us, with each selected source recorded as CC0-1.0. It is part of our 1,870-file RAW compatibility study. The public collection was not sampled randomly: 30 of the 82 labels have only one file here.
Results for every observed model label
Each of the 74 positive labels has a strong candidate in every tested file for that label; no label mixes positive and counter-free samples in this subset. That is a property of this small collection, not proof that every original from those models works. Nine negative files are retained below.
How to read the table: “Strong” counts files, not tags. “Without strong” is not a shutter value of zero. Tag numbers in parentheses count files exposing that exact field. All rows parsed successfully. On narrow screens, scroll the table sideways.
| Model label | Files | Strong | Without strong | Observed fields (files) | Notes |
|---|---|---|---|---|---|
| COOLPIX A | 1 | 1 | 0 | Nikon:ShutterCount (1) | DETECTED only. One sample only. |
| E5700 | 1 | 0 | 1 | None | No strong or possible counter. One sample only. |
| E8400 | 1 | 0 | 1 | None | No strong or possible counter. One sample only. |
| E8800 | 1 | 0 | 1 | None | No strong or possible counter. One sample only. |
| NIKON 1 AW1 | 1 | 1 | 0 | Nikon:ShutterCount (1) | DETECTED only. One sample only. |
| NIKON 1 J1 | 3 | 3 | 0 | Nikon:ShutterCount (3) | DETECTED only. |
| NIKON 1 J2 | 1 | 1 | 0 | Nikon:ShutterCount (1) | DETECTED only. One sample only. |
| NIKON 1 J3 | 1 | 1 | 0 | Nikon:MechanicalShutterCount (1)Nikon:ShutterCount (1) | DETECTED only. 1 unequal shutter-counter pair(s). 1 mechanical field(s) recorded zero. One sample only. |
| NIKON 1 J4 | 1 | 1 | 0 | Nikon:ShutterCount (1) | DETECTED only. One sample only. |
| NIKON 1 J5 | 2 | 2 | 0 | Nikon:ShutterCount (2) | DETECTED only. |
| NIKON 1 S1 | 1 | 1 | 0 | Nikon:MechanicalShutterCount (1)Nikon:ShutterCount (1) | DETECTED only. 1 unequal shutter-counter pair(s). 1 mechanical field(s) recorded zero. One sample only. |
| NIKON 1 V1 | 2 | 2 | 0 | Nikon:MechanicalShutterCount (2)Nikon:ShutterCount (2) | DETECTED only. 2 unequal shutter-counter pair(s). |
| NIKON 1 V2 | 1 | 1 | 0 | Nikon:MechanicalShutterCount (1)Nikon:ShutterCount (1) | DETECTED only. 1 unequal shutter-counter pair(s). One sample only. |
| NIKON 1 V3 | 1 | 1 | 0 | Nikon:MechanicalShutterCount (1)Nikon:ShutterCount (1) | DETECTED only. 1 unequal shutter-counter pair(s). One sample only. |
| Nikon COOLSCAN IV ED | 1 | 0 | 1 | None | No strong or possible counter. Scanner-labeled source. One sample only. |
| Nikon COOLSCAN V ED | 1 | 0 | 1 | None | No strong or possible counter. Scanner-labeled source. One sample only. |
| NIKON D1H | 1 | 0 | 1 | None | No strong or possible counter. One sample only. |
| NIKON D1X | 2 | 0 | 2 | None | No strong or possible counter. |
| NIKON D2H | 2 | 2 | 0 | Nikon:ImageCount (2)Nikon:DeletedImageCount (2)Nikon:ShutterCount (2) | DETECTED only. |
| NIKON D2Hs | 1 | 1 | 0 | Nikon:ImageCount (1)Nikon:DeletedImageCount (1)Nikon:ShutterCount (1) | DETECTED only. One sample only. |
| NIKON D2X | 2 | 2 | 0 | Nikon:ImageCount (2)Nikon:DeletedImageCount (2)Nikon:ShutterCount (2) | DETECTED only. |
| NIKON D2Xs | 2 | 2 | 0 | Nikon:ImageCount (2)Nikon:DeletedImageCount (2)Nikon:ShutterCount (2) | DETECTED only. |
| NIKON D3 | 6 | 6 | 0 | Nikon:ShutterCount (6) | DETECTED only. |
| NIKON D3S | 6 | 6 | 0 | Nikon:ShutterCount (6) | DETECTED only. |
| NIKON D3X | 1 | 1 | 0 | Nikon:ShutterCount (1) | DETECTED only. One sample only. |
| NIKON D4 | 6 | 6 | 0 | Nikon:ShutterCount (6) | DETECTED only. |
| NIKON D4S | 7 | 7 | 0 | Nikon:ShutterCount (7) | DETECTED only. |
| NIKON D5 | 2 | 2 | 0 | Nikon:ShutterCount (2) | DETECTED only. |
| NIKON D6 | 8 | 8 | 0 | Nikon:MechanicalShutterCount (8)Nikon:ShutterCount (8) | DETECTED only. |
| NIKON D40 | 1 | 1 | 0 | Nikon:ShutterCount (1) | DETECTED only. One sample only. |
| NIKON D40X | 1 | 1 | 0 | Nikon:ShutterCount (1) | DETECTED only. One sample only. |
| NIKON D50 | 1 | 1 | 0 | Nikon:ShutterCount (1) | DETECTED only. One sample only. |
| NIKON D60 | 1 | 1 | 0 | Nikon:ShutterCount (1) | DETECTED only. One sample only. |
| NIKON D70 | 1 | 1 | 0 | Nikon:ShutterCount (1) | DETECTED only. One sample only. |
| NIKON D70s | 1 | 1 | 0 | Nikon:ShutterCount (1) | DETECTED only. One sample only. |
| NIKON D80 | 1 | 1 | 0 | Nikon:ShutterCount (1) | DETECTED only. One sample only. |
| NIKON D90 | 1 | 1 | 0 | Nikon:ShutterCount (1) | DETECTED only. One sample only. |
| NIKON D100 | 1 | 0 | 1 | None | No strong or possible counter. One sample only. |
| NIKON D200 | 2 | 2 | 0 | Nikon:ImageCount (2)Nikon:DeletedImageCount (2)Nikon:ShutterCount (2) | DETECTED only. |
| NIKON D300 | 6 | 6 | 0 | Nikon:ShutterCount (6) | DETECTED only. |
| NIKON D300S | 6 | 6 | 0 | Nikon:ShutterCount (6) | DETECTED only. |
| NIKON D500 | 8 | 8 | 0 | Nikon:ShutterCount (8) | DETECTED only. |
| NIKON D600 | 4 | 4 | 0 | Nikon:ShutterCount (4) | DETECTED only. |
| NIKON D610 | 4 | 4 | 0 | Nikon:ShutterCount (4) | DETECTED only. |
| NIKON D700 | 6 | 6 | 0 | Nikon:ShutterCount (6) | DETECTED only. |
| NIKON D750 | 4 | 4 | 0 | Nikon:ShutterCount (4) | DETECTED only. |
| NIKON D780 | 4 | 4 | 0 | Nikon:MechanicalShutterCount (4)Nikon:ShutterCount (4) | DETECTED only. |
| NIKON D800 | 6 | 6 | 0 | Nikon:ShutterCount (6) | DETECTED only. |
| NIKON D800E | 2 | 2 | 0 | Nikon:ShutterCount (2) | DETECTED only. |
| NIKON D810 | 7 | 7 | 0 | Nikon:ShutterCount (7) | DETECTED only. |
| NIKON D850 | 8 | 8 | 0 | Nikon:MechanicalShutterCount (8)Nikon:ShutterCount (8) | DETECTED only. |
| NIKON D3000 | 1 | 1 | 0 | Nikon:ShutterCount (1) | DETECTED only. One sample only. |
| NIKON D3100 | 1 | 1 | 0 | Nikon:ShutterCount (1) | DETECTED only. One sample only. |
| NIKON D3200 | 1 | 1 | 0 | Nikon:ShutterCount (1) | DETECTED only. One sample only. |
| NIKON D3300 | 1 | 1 | 0 | Nikon:ShutterCount (1) | DETECTED only. One sample only. |
| NIKON D3400 | 2 | 2 | 0 | Nikon:ShutterCount (2) | DETECTED only. |
| NIKON D3500 | 1 | 1 | 0 | Nikon:ShutterCount (1) | DETECTED only. One sample only. |
| NIKON D5000 | 2 | 2 | 0 | Nikon:ShutterCount (2) | DETECTED only. |
| NIKON D5100 | 3 | 3 | 0 | Nikon:ShutterCount (3) | DETECTED only. |
| NIKON D5200 | 2 | 2 | 0 | Nikon:ShutterCount (2) | DETECTED only. |
| NIKON D5300 | 2 | 2 | 0 | Nikon:ShutterCount (2) | DETECTED only. |
| NIKON D5500 | 3 | 3 | 0 | Nikon:ShutterCount (3) | DETECTED only. |
| NIKON D5600 | 4 | 4 | 0 | Nikon:ShutterCount (4) | DETECTED only. |
| NIKON D7000 | 5 | 5 | 0 | Nikon:ShutterCount (5) | DETECTED only. |
| NIKON D7100 | 4 | 4 | 0 | Nikon:ShutterCount (4) | DETECTED only. |
| NIKON D7200 | 4 | 4 | 0 | Nikon:ShutterCount (4) | DETECTED only. |
| NIKON D7500 | 4 | 4 | 0 | Nikon:ShutterCount (4) | DETECTED only. |
| NIKON Df | 6 | 6 | 0 | Nikon:ShutterCount (6) | DETECTED only. |
| NIKON Z 5 | 4 | 4 | 0 | Nikon:MechanicalShutterCount (4)Nikon:ShutterCount (4) | DETECTED only. 4 unequal shutter-counter pair(s). |
| NIKON Z 6 | 8 | 8 | 0 | Nikon:MechanicalShutterCount (8)Nikon:ShutterCount (8) | DETECTED only. 8 unequal shutter-counter pair(s). |
| NIKON Z 6_2 | 6 | 6 | 0 | Nikon:MechanicalShutterCount (6)Nikon:ShutterCount (6) | DETECTED only. 6 unequal shutter-counter pair(s). |
| NIKON Z 7 | 8 | 8 | 0 | Nikon:MechanicalShutterCount (8)Nikon:ShutterCount (8) | DETECTED only. 8 unequal shutter-counter pair(s). |
| NIKON Z 7_2 | 6 | 6 | 0 | Nikon:MechanicalShutterCount (6)Nikon:ShutterCount (6) | DETECTED only. |
| NIKON Z 8 | 3 | 3 | 0 | Nikon:MechanicalShutterCount (3)Nikon:ShutterCount (3) | DETECTED only. 3 unequal shutter-counter pair(s). 3 mechanical field(s) recorded zero. |
| NIKON Z 9 | 3 | 3 | 0 | Nikon:MechanicalShutterCount (3)Nikon:ShutterCount (3) | DETECTED only. 3 unequal shutter-counter pair(s). 3 mechanical field(s) recorded zero. |
| NIKON Z 30 | 4 | 4 | 0 | Nikon:MechanicalShutterCount (4)Nikon:ShutterCount (4) | DETECTED only. 2 unequal shutter-counter pair(s). |
| NIKON Z 50 | 2 | 2 | 0 | Nikon:MechanicalShutterCount (2)Nikon:ShutterCount (2) | DETECTED only. |
| NIKON Z f | 3 | 3 | 0 | Nikon:MechanicalShutterCount (3)Nikon:ShutterCount (3) | DETECTED only. |
| NIKON Z fc | 6 | 6 | 0 | Nikon:MechanicalShutterCount (6)Nikon:ShutterCount (6) | DETECTED only. 5 unequal shutter-counter pair(s). |
| NIKON Z5_2 | 11 | 11 | 0 | Nikon:MechanicalShutterCount (11)Nikon:ShutterCount (11) | DETECTED only. |
| NIKON Z6_3 | 12 | 12 | 0 | Nikon:MechanicalShutterCount (12)Nikon:ShutterCount (12) | DETECTED only. 12 unequal shutter-counter pair(s). |
| NIKON Z50_2 | 9 | 9 | 0 | Nikon:MechanicalShutterCount (9)Nikon:ShutterCount (9) | DETECTED only. 9 unequal shutter-counter pair(s). |
Download all 273 sanitized records and the model summary (JSON). Use source IDs and fingerprints to trace rows to files. This is research evidence, not an application support allowlist.
Two shutter fields are not interchangeable
Nikon:ShutterCount appears in 264 files. A separate Nikon:MechanicalShutterCount appears alongside it in 111 files across 22 labels. The pair has equal values in 45 files and different values in 66. The mechanical-named value is lower in all 66 unequal pairs; none is higher in this subset.
All tested D6 (8), D780 (4) and D850 (8) files expose both fields with equal values. By contrast, all tested Z 6 (8), Z 6_2 (6), Z 7 (8), Z 5 (4), Z6_3 (12) and Z50_2 (9) files expose different values. Equality or inequality alone does not explain a camera’s mode history or establish what each field counts.
Eight files contain a mechanical-named value of zero while ShutterCount is positive: three Z 8 files, three Z 9 files, one Nikon 1 J3 and one Nikon 1 S1. For example, source record 6616 reports Z 8 values of 2,567 and 0 respectively. Zero is an actual extracted value here, unlike an absent field. It is not proof that the camera was unused.
These comparisons are why the checker must not silently relabel every ShutterCount as a mechanical lifetime total. Controlled, mode-specific capture experiments and independent baselines are still needed; this report does not change the checker’s field-selection rules.
A useful positive example: the Nikon D2H
The D2H case study documents source record 5227: Nikon:ShutterCount = 4350, Nikon:ImageCount = 2488, and Nikon:DeletedImageCount = 1862. The latter two happen to sum to 4,350 in that specific file.
We found both image-related fields in nine files across five labels: D200, D2H, D2Hs, D2X and D2Xs. The same arithmetic equality holds in those nine records. This repeated observation is still not a general Nikon shutter-count formula, nor independent ground truth. We do not calculate missing shutter counts from those fields.
The case study provides an original download, exact fingerprint and browser steps. Its archived file cannot verify a current seller’s possession, a physical body serial match or the camera’s condition.
What the missing counters tell us
The nine counter-free files have these labels: E5700 (1), E8400 (1), E8800 (1), Nikon COOLSCAN IV ED (1), Nikon COOLSCAN V ED (1), NIKON D1H (1), NIKON D1X (2), NIKON D100 (1). None has a possible-only counter in the recorded scan, either. Parsing succeeded, so these are not parser-failure cases.
The Nikon D100 example is source record 2996, already documented in our selected sample evidence. Its metadata parsed, but the scan found no strong or possible shutter counter. That means the recorded reader did not find one in this file—not that the camera made zero exposures, that every D100 file behaves identically, or that another independent diagnostic method cannot exist.
Counter-free files set an honest limit on what photo-based checking can establish. If yours behaves this way, see why a shutter count may not appear rather than guessing from the filename or replacing a missing value with zero.
Reproduce or audit the findings
- Download the sanitized JSON. Its
samplesarray has 273 records; group by the exactmodelstring and countstrong: true. The summary is generated from this same array. - Count tag presence separately from tag value. Compare the two named shutter values only where both exist. Do not count a missing field as zero or count two fields as two files.
- To repeat a file extraction, follow its external source link, verify its byte length and SHA-256, and use the documented D2H browser procedure. Record the current application version; a later reader can produce different results.
- Our recorded extraction used
@uswriting/exiftool 1.0.9with-json -G1 -a -s -n, at application commitade8deab1cd63cf3201059330a3835c2d590f30c. The version is the wrapper package version, not an independently identified embedded ExifTool release.
For maintainers with the existing local corpus, node scripts/extract-nikon-research.mjs --check rebuilds the sanitized snapshot from cached results and compares it to the committed data. It does not download or reprocess photographs. The JSON includes inventory and cache-set fingerprints to identify the inputs. These fingerprints establish reproducibility of the extract, not physical-camera truth.
See testing methods and evidence levels for the controlled experiments needed to move beyond detection.
Limitations, privacy and corrections
Firmware and shutter mode are not controlled across the collection. Several files may come from one body, and a single sample can dominate a model’s apparent result. The cache does not provide an authoritative service baseline, repair history or independent physical-body identity. These findings establish neither true lifetime mechanical actuations, remaining shutter life, ownership, seller honesty nor universal compatibility.
The public extract includes only model labels, source references, file fingerprints, byte lengths, test times, detection flags and four selected numeric fields. It omits camera serials, GPS, owner details and local paths. The external originals may still contain sensitive metadata. Selecting a file in our checker remains local-only; emailing a research sample is a separate transfer requiring a deliberate sharing decision.
Report a correction to contact@shutteractuations.com, including the source ID, exact tag and disputed claim. Start with text, not a private original. No new RAW extensions or speculative counter fields are enabled by this publication.