Quickstart
Your first call in under a minute, and your first authenticated call once you have a token.
1. Read reference data
No key, no signup. These files are generated when the site builds, so they never drift from what the site says.
Every plan and price
curl -s https://eprfrancerep.com/api/v1/pricing.json
const p = await fetch("https://eprfrancerep.com/api/v1/pricing.json").then(r => r.json());
for (const plan of p.plans)
console.log(plan.name, plan.annual_eur, plan.streams);import requests
p = requests.get("https://eprfrancerep.com/api/v1/pricing.json").json()
for plan in p["plans"]:
print(plan["name"], plan["annual_eur"], plan["streams"])2. Get a token
Client endpoints need a token. Ask us and we issue one against your dashboard account; it is shown once and stored only as a hash on our side.
3. Call as yourself
Who am I
curl -s https://dash.eprfrancerep.com/api/v1/me \ -H "authorization: Bearer $EPR_TOKEN"
const me = await fetch("https://dash.eprfrancerep.com/api/v1/me", {
headers: { authorization: `Bearer ${process.env.EPR_TOKEN}` }
}).then(r => r.json());import os, requests
me = requests.get("https://dash.eprfrancerep.com/api/v1/me",
headers={"authorization": "Bearer " + os.environ["EPR_TOKEN"]}).json()4. Send your quantities
Declare a period
curl -s -X POST https://dash.eprfrancerep.com/api/v1/declarations \
-H "authorization: Bearer $EPR_TOKEN" \
-H "content-type: application/json" \
-d '{"period":"2026-S2","lines":[
{"stream":"household-packaging","material":"Paper & cardboard","unit":"kg","quantity":50},
{"stream":"household-packaging","material":"Flexible PE film","unit":"kg","quantity":2}
]}'await fetch("https://dash.eprfrancerep.com/api/v1/declarations", {
method: "POST",
headers: {
authorization: `Bearer ${process.env.EPR_TOKEN}`,
"content-type": "application/json",
},
body: JSON.stringify({
period: "2026-S2",
lines: [
{ stream: "household-packaging", material: "Paper & cardboard", unit: "kg", quantity: 50 },
{ stream: "household-packaging", material: "Flexible PE film", unit: "kg", quantity: 2 },
],
}),
});requests.post("https://dash.eprfrancerep.com/api/v1/declarations",
headers={"authorization": "Bearer " + os.environ["EPR_TOKEN"]},
json={"period": "2026-S2", "lines": [
{"stream": "household-packaging", "material": "Paper & cardboard", "unit": "kg", "quantity": 50},
{"stream": "household-packaging", "material": "Flexible PE film", "unit": "kg", "quantity": 2},
]})