26.3.0 26.2.0 26.1.0 25.4.0 25.3.0
26.3.0 26.2.0 26.1.0 25.4.0 25.3.0

Statistics API

You can use the Statistics API to see how much content your archive holds, how much storage it uses, and how many packages received a submission over the last month. Most figures come from a usage snapshot. The archive takes it once a day, and measuredAt tells you when.

Every call needs the headers in Common headers. None of the calls take parameters. You need archive manager rights to call them, which come with the archive-content-manager role. Without them, you get a 403 with PERMISSION_DENIED.

Get content statistics

Returns the number of packages and submissions, their total size, and which file formats they hold.

GET /v2/archive/statistics/content

Required role: none, but you need archive manager rights.

Response: 200 OK with a StatisticsContent.

JSON
{
  "totalPackages": 15230,
  "totalSize": 2748779069440,
  "measuredAt": "2026-10-05T02:00:14Z",
  "effectiveStorageTb": 2.5,
  "formatDistribution": [
    { "format": "fmt/354", "count": 9120 },
    { "format": "fmt/40", "count": 2874 }
  ],
  "packageTypeDistribution": [
    { "type": "AIP", "count": 7480 },
    { "type": "SIP", "count": 7750 }
  ]
}

Before the first daily snapshot, the response only holds formatDistribution.

Get the submission history

Returns the number of packages that received a submission on each of the last 30 days and today. Days without submissions are left out.

GET /v2/archive/statistics/history

Required role: none, but you need archive manager rights.

Response: 200 OK with a StatisticsHistory.

JSON
{
  "entries": [
    { "date": "2026-10-01T00:00:00Z", "count": 42 },
    { "date": "2026-10-02T00:00:00Z", "count": 17 }
  ]
}

Get the storage usage

Returns your tenant's storage usage from the daily snapshot: the raw figures, and the factors that the effective storage is calculated from.

GET /v2/archive/statistics/storage

Required role: none, but you need archive manager rights.

Response: 200 OK with a StatisticsStorage.

JSON
{
  "measuredAt": "2026-10-05T02:00:14Z",
  "measurementStatus": "OK",
  "rawStorageBytes": 2748779069440,
  "objects": 412000,
  "averageObjectSizeBytes": 6671793,
  "objectsPerTb": 164800.0,
  "complexity": { "tier": "STANDARD", "factor": 1.0 },
  "conversion": { "tier": "NONE", "factor": 1.0 },
  "effectiveStorageTb": 2.5,
  "billedTb": 3
}

What you get depends on the snapshot:

  • Before the first snapshot, the body is an empty object.

  • If the archive couldn't measure the storage or the objects, the body only holds measuredAt and measurementStatus. The other fields are left out.

Schemas

In these schemas, 1 TB is 1,024 GB.

StatisticsContent

Field

Type

Description

totalPackages

integer

The number of packages plus the number of submissions (SIPs).

totalSize

integer

The size of the packages and the submissions, in bytes. Left out if the archive couldn't measure the storage.

measuredAt

string (date-time)

When the snapshot was taken.

effectiveStorageTb

number

The effective storage in TB. See StatisticsStorage. Left out if the archive couldn't measure the storage or the objects.

formatDistribution

array of objects

The file formats in the archive, measured live. Each item has format, a PRONOM PUID, and count, the number of packages that hold that format. Up to 100 formats, most frequent first.

packageTypeDistribution

array of objects

Two items, with type set to AIP (packages) and SIP (submissions), and their count.

StatisticsHistory

Field

Type

Description

entries

array of objects

One item per day, with date, the start of the day in UTC, and count, the number of packages that received a submission that day.

StatisticsStorage

Field

Type

Description

measuredAt

string (date-time)

When the snapshot was taken.

measurementStatus

string

OK, STORAGE_UNAVAILABLE, OBJECT_COUNT_UNAVAILABLE, or STORAGE_AND_OBJECT_COUNT_UNAVAILABLE.

rawStorageBytes

integer

The storage of the packages and the submissions, in bytes.

objects

integer

The number of files in the packages, plus one for each stored submission.

averageObjectSizeBytes

integer

rawStorageBytes divided by objects, in bytes. 0 if there are no objects.

objectsPerTb

number

The number of objects per TB of raw storage. It decides the complexity tier.

complexity

StorageFactor

The complexity tier, from the number of objects per TB: STANDARD, ENHANCED, HIGH, or EXTREME.

conversion

StorageFactor

The conversion tier that's set for your tenant: NONE, STANDARD, or ADVANCED.

effectiveStorageTb

number

The raw storage in TB, multiplied by both factors, and rounded to two decimals.

billedTb

integer

The effective storage rounded up to whole TB, and at least 1 TB if your tenant stores anything.

StorageFactor

Field

Type

Description

tier

string

The tier.

factor

number

The multiplier of the tier.