List participants
The participant set, keyset-paginated. Default sort is first-seen newest-first. Comma-array filters (country, scheme, smp, ap, doctype, transport_profile, host, provenance, and the company-register cuts entity_type, sector, size, region, postcode), the single-valued sub_provider cut, registered + vat_liable booleans, and a smart q (a full Peppol ID or a bare identifier number matches the ID; other text is a name search on the business-card name or the company-register name — see q). First-page meta carries estimated totals and rollup facets; meta.filter_count is a bounded exact count that degrades to null (never an error) if it exceeds the query timeout. A name search that exceeds the query timeout returns an empty first page with meta.search_degraded, and a 503 on a later page. Discovered participants carry no name/card fields (privacy).
Request
- Base URL: https://api.peppolstatus.com
- URL: https://api.peppolstatus.com/v1/participants
- Auth: one of:
- HTTP bearer
- API key in header X-API-Key
Query parameters
Sort + keyset key. registered, entity_type (the Type column) and sector (the Activity / NACE-division column) order over (<col>, first_seen_at, id); the entity_type/sector views show only enriched (non-null) participants. The name sort lists only participants that have a business-card name: a participant with only a company-register name is NOT in a name-sorted list (and not in its meta.filter_count), although q can find it under the other sorts. The country sort lists only participants with a country. It is IGNORED when doctype/transport_profile/host is set WITHOUT any other narrowing filter, and when sub_provider is set without q or one of those endpoint filters — those results are driven from the matching index and ordered by identifier (scheme, value), the only ordering that stays inside the query timeout. Otherwise (an endpoint filter combined with country/smp/ap/registered/provenance/q, or sub_provider with q) the normal sort applies.
Comma-array of ISO country codes (BE,NL).
Comma-array of Peppol identifier schemes.
Comma-array of current SMP hostnames (smp1.example,smp2.example).
Comma-array of serving Access Point SeatIDs (PBE000123,PNO000456).
Comma-array of Peppol document type ids. Matches a participant if ANY of its current endpoints declares one of the given doctypes. Used ALONE (no other filter) results are ordered by identifier and sort is ignored; combined with another filter the requested sort applies.
Comma-array of transport profile ids (peppol-transport-as4-v2_0). Matches a participant if ANY of its current endpoints uses one of the given profiles. Used ALONE (no other filter) results are ordered by identifier and sort is ignored; combined with another filter the requested sort applies.
Comma-array of endpoint-URL hostnames (ap.example.com). Matches a participant if ANY of its current endpoints publishes an endpoint URL on one of the given hosts — the exact participant set an Access Point host serves. Case-insensitive. Used ALONE (no other filter) results are ordered by identifier and sort is ignored; combined with another filter the requested sort applies.
ONE curated sub-provider (reseller) slug (codabox) — the same slugs GET /v1/aps/{key} reports in sub_providers[].sub_provider. Matches a participant the daily rollup fingerprinted to that brand on ANY of its current endpoints, from three signals: the SMP ServiceDescription, the SMP technical-contact domain, and the endpoint host. Only curated names resolve, so the free-text long tail is not addressable here. Unlike the other filters this one takes a single value: a comma list, or a value that is not a slug (lowercase alphanumerics, dash-separated), is a 400. The sub-provider is an ADDITIVE annotation — the ap seat stays the operator of record. Results are ordered by identifier (scheme, value) and sort is ignored, EXCEPT alongside q or doctype/transport_profile/host, where the requested sort applies. Combining it with any other filter (country, scheme, smp, ap, registered, provenance, entity_type, sector, size, region, postcode, vat_liable) evaluates that filter against the rollup's DAILY SNAPSHOT of those participant columns, not the live row — a participant changing SMP or country is reflected here on the next rollup. Those combinations report an exact meta.filter_count (filter_count_source: "exact"); adding q or an endpoint filter falls back to the bounded count.
Filter by current SML registration state.
Comma-array of provenance values.
Comma-array of company legal-form families (company,natural_person,association,public), from the company-register enrichment denormalized onto the participant.
Comma-array of 2-digit NACE Rev. 2.1 divisions (47,62).
Comma-array of company size band codes, as stored (12,21): the INSEE trancheEffectifs codes for FR (NN = unknown), and for NO the same code set plus 1-4.
Comma-array of company seat region codes (BE-BRU,BE-VLG).
Comma-array of company seat postcodes.
Filter by company VAT-liable / mandate-scope flag.
Comma-array of country codes (NO,SE) to EXCLUDE. Rows with no value are KEPT — excluding a value never drops the un-enriched remainder. Combines with its include twin: ?region=NO-03¬_region=NO-32 applies both.
Comma-array of SMP hostnames to EXCLUDE. Rows with no value are KEPT — excluding a value never drops the un-enriched remainder. Combines with its include twin: ?region=NO-03¬_region=NO-32 applies both.
Comma-array of company legal-form families (company,natural_person,association,public) to EXCLUDE. Rows with no value are KEPT — excluding a value never drops the un-enriched remainder. Combines with its include twin: ?region=NO-03¬_region=NO-32 applies both.
Comma-array of 2-digit NACE Rev. 2.1 divisions (47,62) to EXCLUDE. Rows with no value are KEPT — excluding a value never drops the un-enriched remainder. Combines with its include twin: ?region=NO-03¬_region=NO-32 applies both.
Comma-array of company size band codes (as stored: 21,NN; FR and NO only) to EXCLUDE. Rows with no value are KEPT — excluding a value never drops the un-enriched remainder. Combines with its include twin: ?region=NO-03¬_region=NO-32 applies both.
Comma-array of company seat region codes (NO-32,BE-BRU) to EXCLUDE. Rows with no value are KEPT — excluding a value never drops the un-enriched remainder. Combines with its include twin: ?region=NO-03¬_region=NO-32 applies both.
Smart search. A full Peppol ID (scheme::value, or a bare icd:value) matches that ID exactly. A bare identifier number (digits only, 4 or more) matches the participants whose ID is that number under any ICD prefix, and also names that contain it. Any other text is a name search: it matches the business-card name or the company-register name. The words can be in any order. All words must match (at most 8 words are used). Case, accents and punctuation are ignored. The search needs at least one word of 3 or more characters, else 400. A name that the response withholds is not searchable: the card name of a discovered participant and the register name of a natural person. If a name search exceeds the query timeout, the first page is returned empty with meta.search_degraded: true; a later page (with cursor) returns 503. Neither is cacheable. Use a narrower term.
Page size, clamped to [1, 200]. Defaults to 50.
Opaque pagination cursor returned as next_cursor by the previous page.
Response
A page of participants.
Changes
No recorded changes to this operation across all 1 revision of this API.