---
title: "Providers serving a country"
method: GET
path: "/v1/stats/countries/{code}/providers"
tags: ["Participants"]
---

# Providers serving a country

`GET /v1/stats/countries/{code}/providers`

## Request

- Base URL: `https://api.peppolstatus.com`
- URL: `https://api.peppolstatus.com/v1/stats/countries/{code}/providers`
- Auth: one of:
  - HTTP bearer
  - API key in header `X-API-Key`

The Access Points serving one country, ranked two ways from the hourly rollup: `providers` by participant (Peppol-ID) count, and `providers_by_company` by the number of DISTINCT organizations (real businesses) each serves (issue #467). Each row's `key` is the `/v1/aps/{key}` handle and `share` is that provider's fraction of the country's AP-served total for its metric. `company_coverage` (0..1) is how much ID→organization dedup the market shows — ~0 (and `providers_by_company` empty) for markets without register enrichment, meaningfully positive for BE/FR. A valid but unknown country returns empty lists. Keyless-cacheable.

## Path parameters

- `code` string, required

## Response `200`

The country's top serving Access Points, by IDs and by companies.

- object
  - `country` string, required: The normalized (uppercase) country code.
  - `company_coverage` number, nullable: 0..1 signal of ID→organization dedup in the market (1 − orgs/participants); null when no company data exists. Clients hide the company overview near 0.
  - `providers` object[], required: Top Access Points by participant (Peppol-ID) count, busiest first.
    - `key` string, required: The Access Point's `/v1/aps/{key}` handle.
    - `name` string, required: The Provider's display name.
    - `verified` boolean, required: Whether the Provider identity is curated/verified.
    - `participants` integer, required: Participants this Provider serves in the country.
    - `share` number, required: Fraction (0..1) of the country's AP-served participants.
  - `providers_by_company` object[], required: Top Access Points by DISTINCT organizations served (issue #467), most companies first. Empty for markets without company coverage.
    - `key` string, required: The Access Point's `/v1/aps/{key}` handle.
    - `name` string, required: The Provider's display name.
    - `verified` boolean, required: Whether the Provider identity is curated/verified.
    - `organizations` integer, required: Distinct organizations (count(distinct company_key)) this Provider serves in the country; an upper bound for a multi-seat Provider.
    - `share` number, required: This Provider's fraction (0..1) of the summed per-provider organization counts — a relative magnitude, not a market fraction that sums to 1 (the denominator can double-count an organization served by several providers).

## Other responses

- `400`: An invalid `code`.

---

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