---
title: "Get the De-registered overview"
method: GET
path: "/v1/stats/deregistered"
tags: ["Participants"]
---

# Get the De-registered overview

`GET /v1/stats/deregistered`

## Request

- Base URL: `https://api.peppolstatus.com`
- URL: `https://api.peppolstatus.com/v1/stats/deregistered`
- Auth: none required

The participants that left the network. A De-registered ID is a participant that is not registered now AND has at least one closed registration row. An ID that was never observed registered (not scanned yet, or never in the SML) is not de-registered: it is counted apart in `never_registered` and is in no other number here. `leavers` is the sub-count of the De-registered IDs that left while a Provider served them.

`deregistered`, `share_pct` and `countries` are the stock of the daily rollup (`as_of`). `flow` and `weekly` are the leave flow from the network growth series of `/v1/network/stats`, to the last complete UTC day: `flow.d7` and `flow.d30` are the same counts as `leavers.last_7d` and `leavers.last_30d` there. A day with no completed change scan is a gap: its de-registrations are counted on the next scanned day, so a period sums all its days and `gap_days` only marks it. A period or a week of gap days only has `leavers: null` — a gap is never 0. Joiners do not depend on the change scan, so a gap day keeps them. `annualized_leave_rate_pct` is the Leaver rate (annualized), the same figure as `leavers.annualized_pct` of `/v1/network/stats`: the 30-day leavers as a percentage of the registered participants at the start of the period, × 365 / the days of the period. Leave dates are reliable from 2026-08-02 (`reliable_from`); a period that would open earlier is clamped to it, and the weekly trend starts there. The event date of a de-registration is about 3 days after the true leave (3 consecutive scans without the ID).

Free. The company breakdown of the same population is `/v1/stats/deregistered/companies` (Market).

## Response `200`

The De-registered overview.

- DeregisteredStats
  - `as_of` string, date, nullable, required: Day of the rollup run. null = no rollup run yet.
  - `refreshed_at` string, date-time, nullable, required
  - `known_ids` integer, required: All participants in the dataset, registered or not.
  - `deregistered` integer, required: De-registered IDs: not registered now, with at least one closed registration row.
  - `share_pct` number, nullable, required: 100 × `deregistered` / `known_ids`.
  - `leavers` integer, required: Sub-count of `deregistered`: the IDs that left while a Provider served them.
  - `never_registered` integer, required: IDs that are not registered and were never observed registered. Not part of `deregistered`.
  - `flow` object, required: Leavers and joiners of the last 7, 30 and 90 days.
    - `d7` DeregisteredFlowWindow, required: The leave flow over one trailing period.
      - `from` string, date, required
      - `to` string, date, required
      - `leavers` integer, nullable, required: Leavers of the network growth series over the period. null when every day is a gap day. Never read it as 0.
      - `joiners` integer, required
      - `gap_days` integer, required: Days in the period with no completed change scan. Their leavers land on the next scanned day.
    - `d30` DeregisteredFlowWindow, required: The leave flow over one trailing period.
      - `from` string, date, required
      - `to` string, date, required
      - `leavers` integer, nullable, required: Leavers of the network growth series over the period. null when every day is a gap day. Never read it as 0.
      - `joiners` integer, required
      - `gap_days` integer, required: Days in the period with no completed change scan. Their leavers land on the next scanned day.
    - `d90` DeregisteredFlowWindow, required: The leave flow over one trailing period.
      - `from` string, date, required
      - `to` string, date, required
      - `leavers` integer, nullable, required: Leavers of the network growth series over the period. null when every day is a gap day. Never read it as 0.
      - `joiners` integer, required
      - `gap_days` integer, required: Days in the period with no completed change scan. Their leavers land on the next scanned day.
  - `annualized_leave_rate_pct` number, nullable, required: Leaver rate (annualized): `flow.d30.leavers` as a percentage of the registered participants at the start of the period, × 365 / the days of the period. null when every day of the period is a gap day or there is no base.
  - `reliable_from` string, date, required: First day with reliable leave dates.
  - `weekly` object[], required: One point per week (Monday start, UTC) from `reliable_from`.
    - `week_start` string, date, required
    - `joiners` integer, required
    - `leavers` integer, nullable, required: null when every day of the week is a gap day. Never read it as 0.
    - `gap_days` integer, required
    - `days` integer, required: Days of the week that are in the series (7 except for the first and the current week).
  - `countries` object[], required: De-registered IDs per country, largest first. `ZZ` = no country on the business card and no national identifier scheme.
    - `country` string, required
    - `count` integer, required: De-registered IDs of the country.
    - `base` integer, required: Registered IDs of the country now.
    - `pct` number, nullable, required: 100 × `count` / (`count` + `base`). null when both are 0.

---

[API](https://skmtc.dev/peppolstatus/apis/peppolstatus-api.md) · [All operations](https://skmtc.dev/peppolstatus/apis/peppolstatus-api/llms.txt) · [OpenAPI document](https://skmtc.dev/peppolstatus/apis/peppolstatus-api/revisions/7e74fb32f23c?raw)
