Linked ADEME

Welcome to the experimental Linked Data wrapper for the French extended producer responsibility (REP) data published by ADEME — the SYDEREP producer register, the collection points, and Base Carbone®.

Three questions, three routes. The register says who is answerable for a product once it becomes waste. The collection points say where it physically goes. Base Carbone® says what treating it costs in greenhouse gas. ADEME publishes all three, in datasets that share no keys and no conventions; joining them is what this wrapper is for.

Whoever first places a product on the French market is responsible for what happens to it at the end of its life. They register with ADEME once per waste stream — batteries, electricals, furniture, tyres, textiles and fourteen others — and receive an identifiant unique (IDU), which a seller must be able to quote on request as proof that the product's producer is enrolled. There are some 311 000 such registrations, held by around 248 000 companies. Each one dereferences here — including the 90 957 that have ended, because a registration that was withdrawn and an identifier that never existed are otherwise the same answer.

The data is open: ADEME publishes the producer register under the Licence Ouverte. This wrapper is nonetheless a live view that queries data.ademe.fr on request and caches for at most 24 hours, because the register is rebuilt daily upstream and a stale copy would name producers who have since been removed. The figures are declared by the producers themselves; ADEME does not verify them. Each served document carries the licence of the dataset it came from rather than inheriting one from this page — across the 41 REP datasets, 16 are Licence Ouverte v1, 19 are v2, and six declare none at all.

Examples

Each of these shows something different about the register, and most of them are the reason some part of this wrapper exists:

producer/FR007383_05IZGH
Panasonic's registration for electrical and electronic equipment — the ordinary case. Eleven agreement categories, household and professional, each a SKOS concept.
company/FR027278
The same company, seen whole: three registrations across electricals, batteries and household packaging. This is the join point, and the reason companies get their own URI rather than being a property of a registration.
producer/FR033684_06AT5G
A Chinese battery producer, and two traps in one record. Its IDU begins FR033684 but the company is FR227655 — the prefix is usually the company number and here it is not, so nothing may parse a company out of an IDU. And its company number is a Chinese unified social-credit code, not a SIRET.
producer/FR529459_06XDQK
ONE BATT, registered for BAT_VE — electric-vehicle batteries, one of eleven such registrations in the whole country. ADEME's own published code table has no row for that category, or for any of the five BAT_* ones: it still says PA_PORT. The label here is the wrapper's, and the concept says so.
cl/filieres
The twenty REP waste streams as a SKOS scheme. Fifteen labels are ADEME's; five — BAT, EMPAP, EPRO, TSUU and VEHICULE — are missing from the official table and carry a note saying the label was written here.
cl/categories
The forty-five agreement categories. Upstream they arrive slash-separated in a single cell, so a producer enrolled for eleven of them has one string that has to be split, not one code.
factor/34659 — mixed batteries
What a tonne of collected batteries costs in greenhouse gas, from Base Carbone®. This is where the register meets the rest: the producer side says who is answerable for the batteries, the collection points say where they go, and this says what treating them costs. Published at −803 and +360 kgCO2e/tonne depending on the route — a negative factor is an avoided burden from recycling, not an error, so a consumer that assumed values were positive would read a credit as an emission.
factor/27030 — a camera, decomposed
24.4 kgCO2e per unit, split by life-cycle stage: raw materials 22.9, supply 0.404, forming 0.195, assembly 0.179, distribution 0.747. Raw materials dominate, which is the interesting part. It is as close to a bill of materials as any open source here gets, and still is not one — it names stages, never components.
factor/34052 — an archived Caesar salad
Kept as an example precisely because it is ugly. ADEME has archived this factor, so it still resolves — an older study may cite it and its identifier should keep working — but the document says plainly that it is not a current value. Its name also carries stray quotation marks and a literal tab character, which is the kind of thing that quietly breaks a serializer; here it round-trips through Turtle intact.

How to ask

Content negotiation
Every resource is available as Turtle, N-Triples, RDF/XML, JSON-LD and HTML. Add a suffix (.ttl, .nt, .rdf, .jsonld, .html) or send an Accept header; the suffix wins. Registrations and companies are also available as the raw upstream .json.
Identity
A document lives at producer/FR007383_05IZGH; the registration it describes is producer/FR007383_05IZGH#it. The two are different things, and the document says which topic it is primarily about.
routes
A machine-readable manifest of everything this deployment serves, including the identifier rules in full.
index and vocab
The dataset self-description, and the handful of terms coined here for what SKOS, ORG, schema.org, PROV and Dublin Core do not cover.

Three identifiers, and only one of them names a company

Every row of the register carries three, and telling them apart is most of the modelling:

Identifiant_unique — the IDU
Per (company, waste stream). A company selling batteries and electricals has two. This is what producer/{id} is built from.
Immatriculation
Per company: FR plus six digits, in every row sampled. ADEME's own number, and what company/{id} is built from.
Identifiant_societe
The company's number in somebody else's register. The plan for this wrapper originally called it “the SIRET” and minted company URIs from it. Measuring 1 000 randomly sampled registrations killed that: only 33.2% are 14-digit SIRETs, 49.6% are other national identifiers — mostly Chinese unified social-credit codes — and 7.3% are intra-community VAT numbers. It is served as a literal with its scheme named where the form and the country settle it, and never as a URI.

The same things, seen from the other wrappers

These few things — four products and a company — are used as examples across the whole linked-* family, so one thing can be followed from register to register. Nothing appears in all of them: each entry below is an overlap between two or three, and the gaps are as informative as the matches.

A Samsung TV — TQ75LS03FWUXXC
durabilité: 15 declared spare parts · EPREL: the energy label
Only matches EPREL once the UXXC regional suffix is truncated — the two registers designate the same television differently, which is the single biggest obstacle to joining them.
A Haier washing machine — GTIN 6921081531228
durabilité: parts and scores · ADEME: who answers for it at end of life
Joined by an exact key: the durability index declares the SYDEREP identifier, which dereferences straight into the REP register. No EPREL match at all.
A Fairphone 5
EPREL: battery endurance, repairability class · iFixit: teardown score and guides
The Fairphone 4 is deliberately not used: iFixit has it, EPREL cannot, because the smartphone energy-label duty only began on 20 June 2025.
A Samsung Galaxy S25 Ultra — SM-S938B
EPREL: 4855 mAh rated, repairability class C · iFixit: 5000 mAh, 12 guides
The two capacities are not a contradiction and must not be reconciled: EPREL carries the rated figure declared to the register, iFixit the typical one written by its community. Keeping both, with their provenance, is the point.
A company — Fairphone
EPREL: FairPhone B.V. · ADEME: FAIRPHONE B.V. — electricals · ADEME: the same company — batteries and packaging
The only exemplar that is not a product, and a deliberately lucky one: both registers name the same legal person. That works because Fairphone sells into France directly, with no French subsidiary — ADEME records the company with country NL. It is the exception. For the large manufacturers the two registers name different legal persons entirely: EPREL lists AB Electrolux (SE), Samsung Electronics (UK) Limited, Haier Iberia, SLU (ES) and Candy Hoover Group SRL (IT), while the French registers name the arm that places goods on the French market. The two record different roles — who filed the energy label, versus who carries the French end-of-life obligation — so companies must not be joined by name. Even here there is a wrinkle worth seeing: one company holds two Immatriculations, and the battery stream sits on the second, so reading the first alone would suggest Fairphone has no battery obligation.

These are links between landing pages only. The RDF each wrapper serves asserts no cross-wrapper statement: a join between two registers is a claim that needs evidence, and it belongs to whoever makes it, not to the data.

What this is not

It is not a product register. SYDEREP records that a company is enrolled for a category of products, never which models. It is not a compliance check either: an IDU shows enrolment on the day the register was built, and ADEME publishes a separate list of producers who have ceased to be in conformity. And it is not a mirror — if you want the register in bulk, take it from ADEME directly rather than crawling this.

Source

github.com/aharth/linked-ademe, AGPL-3.0. One of a family of linked-* wrappers.