---
title: "List public provider profiles"
method: GET
path: "/v1/providers/public"
tags: ["Providers"]
---

# List public provider profiles

`GET /v1/providers/public`

## Request

- Base URL: `https://api.peppolstatus.com`
- URL: `https://api.peppolstatus.com/v1/providers/public`
- Auth: none required

The FREE, crawlable public subset for each curated provider, busiest first: identity + role flags, the seat-directory columns (legal entity, commercial name, website, infra provider, hosting), mapped hostnames, participant count, roster country mix, the 30d/90d uptime headline, a cert-health summary and an `as_of` freshness stamp. Reachable with no API key. `limit` clamps to [1, 500] (default 100). Not paginated (the envelope's `next_cursor` is always null).

## Query parameters

- `limit` integer

## Response `200`

The public provider profiles.

- PublicProviderPage: The public provider profiles (never paginated; next_cursor null).
  - `items` PublicProviderView[], required
    - `slug` string, required
    - `name` string, required
    - `country` string, nullable, required
    - `flags` object, required
      - `peppol_authority` boolean, required
      - `ap` boolean, required
      - `smp` boolean, required
      - `end_user` boolean, required
      - `observer` boolean, required
    - `verified` boolean, required: The provider's seat→provider mapping is curated/verified.
    - `certified` object, nullable, required: OpenPeppol certified-SP status from the daily-synced certified-SP list, or null when the provider has no live certified-SP link. `ap`/`smp` mirror that list's AP/SMP certification flags.
      - `ap` boolean, required
      - `smp` boolean, required
    - `hostnames` string[], required
    - `directory` object, required: Seat-directory identity columns (all nullable).
      - `legal_entity` string, nullable, required
      - `commercial_name` string, nullable, required
      - `website` string, nullable, required
      - `infra_provider` string, nullable, required
      - `hosting` string, nullable, required
    - `participant_count` integer, required
    - `country_mix` ApMixBucket[], required
      - `value` string, required
      - `count` integer, required
      - `label` string: Display label of `value`, on the buckets of a `size_mix` and a `region_mix` only: the English size band label (21 → "50–99 employees") and the region name in the local language (84 → "Auvergne-Rhône-Alpes"). Equal to `value` when the code is unknown. Filter on `value`.
    - `uptime` object[], required: The 30d and 90d uptime headline, one entry per trailing window.
      - `period` '30d' | '90d', required
      - `uptime_pct` number, nullable, required
      - `incident_count` integer, required
      - `worst_hostname` string, nullable, required
    - `live_status` 'operational' | 'degraded' | 'outage' | 'null', nullable, required: Live host status derived from the CURRENT `host_verdict` rows of this provider's monitored hosts — the honest signal shown when no 30-day uptime window exists yet. any host down → `outage`; else any degraded → `degraded`; else at least one verdict → `operational`; else null. Additive to `uptime`, never a replacement.
    - `hosts_down` string[], required: The monitored hostnames whose current verdict is `down` (sorted, deduped); [] otherwise.
    - `cert_health` object, required
      - `cert_count` integer, required
      - `soonest_not_after` string, date-time, nullable, required
      - `expiring_30d_count` integer, required
    - `global_rank` integer, nullable, required: 1-based rank by participants served across the whole AP universe (curated + exact-identity provider rows); null when the provider serves no participants.
    - `global_total` integer, required: Size of that ranking universe — the denominator behind `global_rank`.
    - `country_rank` integer, nullable, required: 1-based rank within `rank_country` (providers whose primary served country matches this one); null when the provider serves no participants or has no country.
    - `country_total` integer, required: How many ranked providers share `rank_country`.
    - `rank_country` string, nullable, required: The primary served country (ISO alpha-2) the country rank is measured within — this provider's top `country_mix` entry.
    - `country_ranks` object[], required: The other countries (ISO alpha-2) where this provider ranks in the top 10 by participants served in that country — its international breadth. Excludes `rank_country`, sorted by rank asc then count desc then country asc, capped at 12.
      - `country` string, required
      - `rank` integer, required: 1-based rank by participants served in this country.
      - `total` integer, required: How many providers serve this country at all.
      - `count` integer, required: This provider's participants served in this country.
    - `as_of` string, date-time, nullable, required: Latest rollup-refresh instant for this provider, or null when none.
  - `next_cursor` string, nullable, required: Opaque cursor for the next page, or null on the last page.

---

[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)
