System identity and compliance stats API reference
Read organization-wide identity, claim, trusted-issuer, and topic-scheme statistics through the DALP Platform API, including current snapshots, trailing-window series, and claim coverage gaps.
A compliance officer reporting to a regulator needs to answer plain questions with current numbers: how many identities are registered and active, the live versus revoked verification claims, which trusted issuers are still authorized, and where claim coverage has gaps. The system identity and compliance stats API answers each one. These endpoints report the organization-wide state of the identity and compliance layer, both as current snapshots and as trailing-window series for charts.
Every endpoint here is read-only. They report state the platform has already indexed. They do not register identities, issue or revoke claims, or change any trusted-issuer registry. For authentication and base URL setup, see Getting started. For the total value and transfer activity of the same organization, see System value and transaction stats.
Endpoints
| Endpoint | Use it for |
|---|---|
GET /api/v2/system/stats/identity-count | Current created, active, and pending-registration identity counts. |
GET /api/v2/system/stats/identity-stat-timeseries | Active identity count over a custom date range. |
GET /api/v2/system/stats/identity-stat-timeseries/presets/{preset} | Active identity count over a predefined trailing window. |
GET /api/v2/system/stats/claim-stat-snapshots/current | Current issued, active, removed, and revoked claim counts. |
GET /api/v2/system/stats/claim-stat-ranges | Claim counts over a custom date range, returned as a timestamped series. |
GET /api/v2/system/stats/claim-stat-range-presets/{preset} | Claim counts over a predefined trailing window. |
GET /api/v2/system/stats/trusted-issuer-stat-snapshots/current | Current added, active, and removed trusted-issuer counts. |
GET /api/v2/system/stats/trusted-issuer-stat-ranges | Trusted-issuer counts over a custom date range. |
GET /api/v2/system/stats/trusted-issuer-stat-range-presets/{preset} | Trusted-issuer counts over a predefined trailing window. |
GET /api/v2/system/stats/topic-scheme-stat-snapshots/current | Current registered, active, and removed topic-scheme counts. |
GET /api/v2/system/stats/topic-scheme-stat-ranges | Topic-scheme counts over a custom date range. |
GET /api/v2/system/stats/topic-scheme-stat-range-presets/{preset} | Topic-scheme counts over a predefined trailing window. |
GET /api/v2/system/stats/topic-scheme-claims-coverage | Active topic schemes that hold no active claims, so you can find coverage gaps. |
GET /api/v2/system/stats/country-asset-count | Asset distribution by issuer country. |
Each endpoint returns the single-resource envelope with data and links.self. The active organization and system context bound every read, and the figures cover that whole organization rather than the caller's own wallets. The conventions are the same across the Platform API, as described in Organization and system scope.
Choose a snapshot, a custom range, or a preset
The identity, claim, trusted-issuer, and topic-scheme surfaces each offer up to three shapes of the same data.
A snapshot endpoint, ending in /snapshots/current, returns the latest totals as a single object. Use it for headline numbers on a dashboard.
A range endpoint accepts a custom window through three query parameters: interval is hour or day, and from and to are timestamps. The platform rejects a request where from is after to. Use a custom range when the reader picks the dates.
A preset endpoint takes a preset path parameter of trailing24Hours or trailing7Days. The trailing24Hours preset resolves to an hourly window over the last day; trailing7Days resolves to a daily window over the last week. Use a preset for the common "last 24 hours" or "last 7 days" toggle without computing dates yourself.
Range and preset responses both carry a resolved range object so you can confirm exactly which window the platform used.
Identity statistics
GET /api/v2/system/stats/identity-count returns the current count of identities the identity factory has created, how many are active, and how many are awaiting registration.
{
"data": {
"userIdentitiesCreatedCount": 1842,
"activeUserIdentitiesCount": 1790,
"pendingRegistrationsCount": 52
},
"links": {
"self": "/v2/system/stats/identity-count"
}
}| Field | Type | Description |
|---|---|---|
userIdentitiesCreatedCount | number | Identities the identity factory has created. |
activeUserIdentitiesCount | number | Identities that are currently active. |
pendingRegistrationsCount | number | Identities created but not yet registered. |
GET /api/v2/system/stats/identity-stat-timeseries and its preset variant return the active identity count over time, ready to plot.
{
"data": {
"range": {
"interval": "day",
"from": "2026-06-14T00:00:00.000Z",
"to": "2026-06-21T00:00:00.000Z",
"isPreset": true
},
"identityStats": [
{ "timestamp": "2026-06-20T00:00:00.000Z", "activeUserIdentitiesCount": 1785 },
{ "timestamp": "2026-06-21T00:00:00.000Z", "activeUserIdentitiesCount": 1790 }
]
},
"links": {
"self": "/v2/system/stats/identity-stat-timeseries/presets/trailing7Days"
}
}| Field | Type | Description |
|---|---|---|
range | object | The resolved window: interval, from, to, and isPreset. |
identityStats | array | The active-identity series. |
identityStats[].timestamp | string | The bucket timestamp. |
identityStats[].activeUserIdentitiesCount | number | The active identity count at that point. |
Claim statistics
GET /api/v2/system/stats/claim-stat-snapshots/current returns the current state of verification claims across the organization.
{
"data": {
"totalIssuedClaims": 4120,
"totalActiveClaims": 3905,
"totalRemovedClaims": 130,
"totalRevokedClaims": 85
},
"links": {
"self": "/v2/system/stats/claim-stat-snapshots/current"
}
}| Field | Type | Description |
|---|---|---|
totalIssuedClaims | number | Claims ever issued. |
totalActiveClaims | number | Claims currently active. |
totalRemovedClaims | number | Claims that have been removed. |
totalRevokedClaims | number | Claims that have been revoked. |
GET /api/v2/system/stats/claim-stat-ranges and its preset variant return the same four counters over time. Each point captures the issued, active, removed, and revoked totals as they stood at that timestamp, so you can chart how the claim base shifts across the window.
{
"data": {
"range": {
"interval": "day",
"from": "2026-06-14T00:00:00.000Z",
"to": "2026-06-21T00:00:00.000Z",
"isPreset": true
},
"data": [
{
"timestamp": "2026-06-21T00:00:00.000Z",
"totalIssuedClaims": 4120,
"totalActiveClaims": 3905,
"totalRemovedClaims": 130,
"totalRevokedClaims": 85
}
]
},
"links": {
"self": "/v2/system/stats/claim-stat-range-presets/trailing7Days"
}
}Each point in data carries a timestamp and the four claim counters described above.
Trusted-issuer statistics
A trusted issuer is an authority the registry permits to sign claims for one or more topics. GET /api/v2/system/stats/trusted-issuer-stat-snapshots/current returns how many such issuers have been added, how many remain active, and how many have been removed.
{
"data": {
"totalAddedTrustedIssuers": 14,
"totalActiveTrustedIssuers": 12,
"totalRemovedTrustedIssuers": 2
},
"links": {
"self": "/v2/system/stats/trusted-issuer-stat-snapshots/current"
}
}| Field | Type | Description |
|---|---|---|
totalAddedTrustedIssuers | number | Trusted issuers ever added. |
totalActiveTrustedIssuers | number | Trusted issuers currently active. |
totalRemovedTrustedIssuers | number | Trusted issuers that have been removed. |
GET /api/v2/system/stats/trusted-issuer-stat-ranges and its preset variant return the same three counters over time, with each point carrying a timestamp.
Topic-scheme statistics and coverage
A topic scheme defines a claim topic in the registry. GET /api/v2/system/stats/topic-scheme-stat-snapshots/current returns the registered, active, and removed scheme counts.
{
"data": {
"totalRegisteredTopicSchemes": 9,
"totalActiveTopicSchemes": 8,
"totalRemovedTopicSchemes": 1
},
"links": {
"self": "/v2/system/stats/topic-scheme-stat-snapshots/current"
}
}| Field | Type | Description |
|---|---|---|
totalRegisteredTopicSchemes | number | Topic schemes ever registered. |
totalActiveTopicSchemes | number | Topic schemes currently active. |
totalRemovedTopicSchemes | number | Topic schemes that have been removed. |
GET /api/v2/system/stats/topic-scheme-stat-ranges and its preset variant return the same three counters over time, with each point carrying a timestamp.
GET /api/v2/system/stats/topic-scheme-claims-coverage answers a sharper question: which active topic schemes hold no active claims. A scheme appears in missingTopics in two cases. The scheme has never had a claim issued, or every claim it once held has since been removed or revoked. Use this response to find verification topics that the organization defines but does not yet cover.
Because the underlying projection counts active claims by chain and topic ID, not by registry address, a topic scheme can be omitted from missingTopics when another registry on the same chain holds an active claim for the same topic. In environments with multiple registries that reuse topic IDs, a compliance dashboard should supplement this endpoint with registry-scoped checks rather than relying on it alone.
{
"data": {
"totalActiveTopicSchemes": 8,
"missingTopics": [
{
"id": "0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef",
"topicId": "100",
"name": "Accredited Investor",
"signature": "(string)",
"isGlobal": false
}
]
},
"links": {
"self": "/v2/system/stats/topic-scheme-claims-coverage"
}
}| Field | Type | Description |
|---|---|---|
totalActiveTopicSchemes | number | Active topic schemes in the registry. Use it to compute a coverage percentage. |
missingTopics | array | Active topic schemes with zero active claims. |
missingTopics[].id | string | The scheme identifier (bytes32). |
missingTopics[].topicId | string | The numeric topic ID as a string. |
missingTopics[].name | string | The human-readable topic name, such as Know Your Customer. |
missingTopics[].signature | string | The claim data ABI types used for verification, such as (string). |
missingTopics[].isGlobal | boolean | Whether the scheme comes from a parent (global) registry rather than the system one. |
Asset distribution by country
GET /api/v2/system/stats/country-asset-count reports how indexed assets are distributed across issuer countries. Each key in totalsByCountry is an ISO 3166-1 numeric country code as a string.
{
"data": {
"totalsByCountry": {
"056": 12,
"528": 7,
"840": 3
},
"totalCountries": 3,
"totalAssets": 22
},
"links": {
"self": "/v2/system/stats/country-asset-count"
}
}| Field | Type | Description |
|---|---|---|
totalsByCountry | object | Asset count keyed by ISO 3166-1 numeric country code. |
totalCountries | number | Distinct issuer countries represented. |
totalAssets | number | Total assets counted across all countries. |
Use these endpoints to
- Report current registered, active, and pending identity counts on a compliance dashboard.
- Track active claims against issued, removed, and revoked claims over a trailing window.
- Confirm which trusted issuers remain authorized as the registry changes.
- Surface verification topics that hold no active claims, so coverage gaps get attention.
- Break down asset issuance by country for regulatory reporting.
For the conventions every read endpoint shares, see Organization and system scope. For value and transfer activity across the same organization, see System value and transaction stats.
System value and transaction stats API
Read the organization-wide total value of indexed assets and the transfer activity for your wallet set through the DALP Platform API, including trailing-window and custom-range time series.
Integration patterns
Answer common integration questions about DALP event access, token discovery, upgrade operations, operational monitoring, and self-hosted deployment responsibilities.