Checking the local register…
Notified body status, scope, and changes, as JSON.
A free API and Atom feeds over NANDO, the EU register of notified bodies. Check a body under any act in NANDO in one call, and follow suspensions and withdrawals without an account.
Reading the local register…
This service is unofficial and not affiliated with the European Commission. It serves the data as published in NANDO, with the sync time on every answer.
curl ''
Show the JSON answer
{}
Endpoints
Every JSON answer carries as_of, the stale flag, the source, the CC BY 4.0 attribution, and the unofficial notice. You do not need a key or an account.
| Call | Answers |
|---|---|
GET /v1/check?body=0123&legislation=2017/745 | Notified or not, the status, end date, and which scope entries match a procedure or product. |
POST /v1/check/batch | Up to 500 checks in one call, for supplier and certificate lists. |
GET /v1/bodies?country=&legislation=&status=&q= | Search and filter bodies. |
GET /v1/bodies/0123 | One body with its notifications per act and status. |
GET /v1/bodies/0123/notifications | All current notifications of a body, with scope on request. |
GET /v1/notifications/{id} | One notification with its scope and version history. |
GET /v1/legislation | Every act in NANDO, with the number of current notifications, by the same rule as the check. |
GET /v1/legislation/2017/745/bodies | Bodies notified under one act. By default only the current notifications, by the same rule as the check. |
GET /v1/changes | The change feed, paged, with the same filters as the Atom feed. |
GET /v1/changes.atom | The same changes as an Atom feed. |
GET /v1/exports | Daily snapshot files in JSONL and CSV. |
GET /v1/status | Last sync, record counts, source health, and whether the data is stale. |
Full schema: interactive docs or openapi.json.
Alerts without an account
Pick what to follow and paste the feed URL into any feed reader. It updates when the register changes: suspensions, withdrawals, restorations, scope and end-date changes, new notifications.
/v1/changes.atom
Latest entries
Daily exports
There are two files per day, one in JSONL and one in CSV. Each has every current notification, joined with its body and act. Anyone can download them for free.
- Reading the list…
Source and limits
Where the data comes from
European Commission, NANDO, via the Single Market Compliance Space. This service reuses the data under the Commission's reuse policy, Commission Decision 2011/833/EU. The Commission adopted CC BY 4.0 as the open licence for that policy (Commission Decision C(2019) 1655 of 22 February 2019), and applies it to Commission content unless otherwise indicated; see the Commission's legal notice. This service is unofficial and not affiliated with or endorsed by the European Commission.
A notification counts as notified when its status id is 1 or 3 and its end date is empty or has not passed (UTC). The check then gives notified: true, and the status shows as "Active". When the end date has passed, the status shows as "Expired", and the check gives notified: false with the reason end_date_passed. Status ids 2, 4, 5, and 6 never count as notified.
This follows the Active and Expired lists of the NANDO site, which use the end date as well as the status id. NANDO keeps many current notifications with status id 3 ("Expired") and a future end date, and lists them under Active. When the end date decides the status shown, the answer keeps the raw status_id and adds a short status_basis note. Two cases differ from the NANDO site (checked 2026-11-06): NANDO lists a status 1 notification with a past end date under neither list, and it lists a suspended notification with a future end date under Active. This service shows the first as "Expired" and the second as "Suspended", not notified.
This service asks NANDO for new and changed records about every 15 minutes, and reads the full register once a day, shortly after 02:00 UTC. Every JSON answer gives the time of the last successful sync in as_of, and sets stale to true when that sync is more than 6 hours old.
Changes made: this service restructures the records into JSON and CSV, removes personal contact fields (email, phone, fax), converts update times from Brussels time to UTC, adds status names, and works out change events by comparing versions.
Copied from NANDO
- Body numbers, names, addresses, websites
- Notification ids, versions, status ids, dates
- Status names for status ids 2, 4, and 5, as the NANDO site labels them
- Scope: procedures, products, standards, annexes
- The acts, with their codes and names
Worked out by this service
notifiedin the check, from the status id and the end date- The status names "Active" and "Expired" for status ids 1 and 3, from the end date, with
status_basiswhen they differ from the NANDO label - The status name "Unknown (6)" for status id 6, which the NANDO site does not label
- The status "Removed from source" in the check, for a notification that NANDO no longer lists
- Change events, from content hashes between syncs
since, from the versions this service has stored, or the start of the day after the end date when the end date makes the status Expired (always a UTC timestamp)- UTC times
The service comes with no warranty. Check NANDO itself before you rely on a result for a legal or commercial decision. Terms.