---
title: "Get a public provider profile"
method: GET
path: "/v1/providers/public/{slug}"
tags: ["Providers"]
---

# Get a public provider profile

`GET /v1/providers/public/{slug}`

## Request

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

The FREE, crawlable public subset for one curated provider (same shape as a `GET /v1/providers/public` item). Reachable with no API key.

## Path parameters

- `slug` string, required

## Response `200`

The public provider profile.

- PublicProviderView
  - `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.

## Other responses

- `404`: No such provider is known.

---

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