Regulatory assistant
Regulatory data endpoints for the DPP Assistant — required fields by category, regulatory changes, registry guidance, and the company compliance profile.
/api/v1/regulatory/required-fieldsGet required fields
Returns the required and anticipated fields for a passport of the given category, with the EU regulation article each field rests on, its access tier (public / restricted / authority), and — for batteries — whether the data is usually held by the maker, a supplier, or the operator. Without `group`, the endpoint returns a summary: total counts broken down per group and per access tier, plus `requiredByHolder` (battery only) grouping required fields by data source. With `group`, it returns the full field list for that group.
/api/v1/regulatory/changesGet regulatory changes
Returns curated regulatory change entries for the requested categories, filtered to those dated on or after `since`. Each entry carries a `kind` (`adopted`, `amended`, `date_moved`, `standard_published`, `standard_cited`, `applies_from`, …), the EU instrument or standard it concerns, the affected categories, a plain-language summary (in the response locale), and a primary source URL. The `data.upcoming` array lists dated DPP obligations and planned acts in the next 90 days for the given categories; planned entries are labelled 'Planned, not law yet' and never worded as a deadline.
/api/v1/regulatory/registry-guidanceGet registry guidance
Returns curated guidance points for the requested topic. Each point carries a `point` (a plain-language statement), a `detail` (fuller explanation), a `source` with a URL and kind (`commission` / `standard` / `law` / `our_finding`), and a `sourceDate`. Commission guidance points are labelled 'Commission guidance, not law'; TracePass research points are labelled 'TracePass research, not law'. `stillMoving` is true while the Commission has not finalised the registry procedure — treat all points with corresponding caution.
/api/v1/company/compliance-profileGet compliance profile
Returns the company's stored compliance profile and its `updatedAt` timestamp. The profile holds company facts that the DPP Assistant tools use as defaults — `role`, `ownBrand`, `categories`, `markets`, `products`, `sizeBand`, `salesChannels`, and `dataSystems`. When the profile has not been set, the response is `{ "complianceProfile": {} }`. The profile holds company facts only: it never stores personal data about individual users.
/api/v1/company/compliance-profileUpdate compliance profile
Merges the provided fields into the stored compliance profile and returns the updated profile with `updatedAt`. Fields not included in the request are left unchanged. Set a field to `null` to remove it. Validated fields: `role` (`manufacturer`, `importer`, `distributor`, `authorised_representative`, `fulfilment_service_provider`), `ownBrand` (boolean), `categories` (array of template category keys), `markets` (array of ISO-3166-1 alpha-2 codes or `EU`), `products` (array of `{name, category, facts}`, at most 50), `sizeBand` (`sme` or `large`), `salesChannels` (array of `own_shop`, `marketplace`, `retail`, `b2b`, `fulfilment`), `dataSystems` (string, at most 200 chars). An invalid value returns 400 `invalid_input`.
/api/v1/company/compliance-profileDelete compliance profile
Removes the entire `complianceProfile` sub-document from the company record, including all stored facts (role, categories, markets, products, and all learned values). Returns `{ "deleted": true }` on success. After deletion, `GET /api/v1/company/compliance-profile` returns an empty profile (`{ "complianceProfile": {} }`). The DPP Assistant tools will then have no saved defaults and will ask for the relevant facts fresh on the next question.