Skip to main content

PPWR Tools

Query PPWR (Packaging and Packaging Waste Regulation) compliance data — packaging units, bill of materials, substance declarations, recyclability, gap analysis, and compliance evaluations. These tools support EU packaging regulation workflows.
PPWR tools cover the packaging compliance pillar. All endpoints use API v2 (/v2/ppwr/). Use list_projects first to find the project ID containing your packaging data.

list_packaging_units

List packaging units for a PPWR project. Each unit represents a distinct packaging product being assessed for compliance. Parameters:
ParameterTypeRequiredDefaultDescription
project_idstringYesProject UUID
organization_idstringNodefault orgOrganization UUID
Example response:
[
  {
    "id": "a1b2c3d4-...",
    "name": "Premium Wine Box",
    "packaging_type": "primary",
    "weight_grams": 450.0,
    "volume_ml": 750.0,
    "status": "in_progress",
    "target_markets": ["ES", "FR", "DE"],
    "is_food_contact": true,
    "ean_code": "8412345678901",
    "project_id": "proj-uuid-...",
    "organization_id": "org-uuid-..."
  }
]
Key response fields:
FieldDescription
packaging_typeType: primary, secondary, tertiary, or transport
weight_gramsTotal packaging weight in grams
statusAssessment status: draft, in_progress, compliant, non_compliant
target_marketsISO 3166-1 alpha-2 country codes for target markets
is_food_contactWhether packaging is intended for food contact (Reg. EC 1935/2004)
Example prompts:
"List all packaging units in this project"
"Which packaging units target the French market?"
"Show packaging units that are still in draft status"

get_packaging_unit

Get full detail for a packaging unit — including bill of materials (BOM), substance declarations, and recyclability assessment. Parameters:
ParameterTypeRequiredDefaultDescription
packaging_unit_idstringYesPackaging unit UUID
Example response:
{
  "id": "a1b2c3d4-...",
  "name": "Premium Wine Box",
  "packaging_type": "primary",
  "weight_grams": 450.0,
  "volume_ml": 750.0,
  "status": "in_progress",
  "target_markets": ["ES", "FR", "DE"],
  "is_food_contact": true,
  "bom_items": [
    {
      "id": "b2c3d4e5-...",
      "component_name": "Outer carton",
      "material_type": "paper_cardboard",
      "weight_grams": 320.0,
      "recycled_percentage": 85.0
    }
  ],
  "substances": [
    {
      "id": "c3d4e5f6-...",
      "substance_name": "lead",
      "concentration_ppm": 5.0,
      "compliant": true
    }
  ],
  "recyclability": {
    "grade": "B",
    "assessed_by": "user-uuid-..."
  }
}
Example prompts:
"Show the full detail for packaging unit X"
"What materials are in this packaging unit's BOM?"
"What substances have been declared?"

get_packaging_compliance

Evaluate PPWR compliance for a single packaging unit. Returns pass/fail checks against specific PPWR articles, a timeline of upcoming deadlines, and overall compliance status. Parameters:
ParameterTypeRequiredDefaultDescription
packaging_unit_idstringYesPackaging unit UUID
Example response:
{
  "packaging_unit_id": "a1b2c3d4-...",
  "packaging_unit_name": "Premium Wine Box",
  "overall_status": "partial",
  "checks": [
    {
      "code": "RECYCLED_CONTENT_MIN",
      "requirement": "Minimum recycled content percentage",
      "article": "Art. 7(1)",
      "status": "pass",
      "current_value": "85%",
      "threshold": "65%",
      "deadline": "2030-01-01"
    },
    {
      "code": "HEAVY_METALS_LIMIT",
      "requirement": "Sum of lead, cadmium, mercury, chromium VI below 100 ppm",
      "article": "Art. 5(1)",
      "status": "fail",
      "current_value": "120 ppm",
      "threshold": "100 ppm"
    }
  ],
  "timeline": [
    {
      "deadline": "2030-01-01",
      "requirement": "Recycled content targets for paper packaging",
      "status": "on_track",
      "action": "Maintain current recycled content above 65%"
    }
  ],
  "compliant_count": 4,
  "failed_count": 1,
  "insufficient_count": 1
}
Key response fields:
FieldDescription
overall_statuscompliant, non_compliant, partial, or insufficient_data
checks[].statusPer-check result: pass, fail, or insufficient_data
checks[].articlePPWR article reference (e.g. “Art. 5(1)“)
timeline[].statusDeadline tracking: on_track, at_risk, or non_compliant
Example prompts:
"Is this packaging unit PPWR compliant?"
"Which compliance checks are failing?"
"What are the upcoming PPWR deadlines for this unit?"

get_project_compliance

Evaluate PPWR compliance for all packaging units in a project. Returns a project-level summary with per-unit evaluations. Parameters:
ParameterTypeRequiredDefaultDescription
project_idstringYesProject UUID
organization_idstringNodefault orgOrganization UUID
Example response:
{
  "project_id": "proj-uuid-...",
  "total_units": 8,
  "compliant_units": 5,
  "non_compliant_units": 1,
  "partial_units": 1,
  "insufficient_data_units": 1,
  "unit_evaluations": [
    {
      "packaging_unit_id": "a1b2c3d4-...",
      "packaging_unit_name": "Premium Wine Box",
      "overall_status": "compliant",
      "compliant_count": 6,
      "failed_count": 0,
      "insufficient_count": 0
    }
  ]
}
Example prompts:
"How many packaging units are PPWR compliant?"
"Show the compliance status of all units in this project"
"Which units are non-compliant?"

get_packaging_gaps

Analyze compliance gaps for a packaging unit using a traffic-light severity system. Each gap identifies a specific PPWR requirement that is not met, with the affected BOM components and required actions. Parameters:
ParameterTypeRequiredDefaultDescription
packaging_unit_idstringYesPackaging unit UUID
Example response:
{
  "packaging_unit_id": "a1b2c3d4-...",
  "packaging_unit_name": "Premium Wine Box",
  "overall_risk": "yellow",
  "gaps": [
    {
      "code": "PFAS_NO_DECLARATION",
      "severity": "red",
      "category": "substances",
      "article": "Art. 5(4)",
      "description": "No PFAS declaration for food-contact packaging",
      "deadline": "2026-12-31",
      "action_required": "Obtain PFAS test certificate from supplier",
      "affected_components": ["Inner liner"]
    },
    {
      "code": "RECYCLED_CONTENT_MISSING",
      "severity": "yellow",
      "category": "recycled_content",
      "article": "Art. 7(1)",
      "description": "Recycled content not declared for 2 BOM items",
      "action_required": "Request recycled content data from suppliers",
      "affected_components": ["Outer carton", "Closure"]
    }
  ],
  "total_red": 1,
  "total_yellow": 1,
  "total_green": 0
}
Key response fields:
FieldDescription
overall_riskWorst-case severity across all gaps: red > yellow > green
gaps[].severityTraffic-light risk: red (blocking), yellow (at risk), green (minor)
gaps[].categoryGap area: substances, recycled_content, recyclability, material, labeling
gaps[].affected_componentsBOM item names affected by this gap
Example prompts:
"What compliance gaps does this packaging unit have?"
"Are there any red-severity gaps?"
"What actions are required to close the gaps?"

get_ppwr_dashboard

Get PPWR compliance dashboard metrics for a project — a high-level overview of packaging compliance health including substance safety, recycled content, recyclability grades, and supplier survey progress. Parameters:
ParameterTypeRequiredDefaultDescription
project_idstringYesProject UUID
organization_idstringNodefault orgOrganization UUID
Example response:
{
  "total_units": 12,
  "avg_recycled_content": 72.5,
  "substances_total": 24,
  "substances_compliant": 20,
  "units_by_status": {
    "draft": 2,
    "in_progress": 3,
    "compliant": 5,
    "non_compliant": 2
  },
  "grade_distribution": {
    "A": 3,
    "B": 4,
    "C": 3,
    "D": 2
  },
  "supplier_progress": {
    "invited": 8,
    "submitted": 5,
    "validated": 3
  }
}
Key response fields:
FieldDescription
avg_recycled_contentAverage recycled content percentage across all units
substances_compliantCount of substance declarations that pass limits
units_by_statusCount of units by assessment status
grade_distributionCount of units by recyclability grade (A–E)
supplier_progressSupplier data collection funnel
Example prompts:
"Show the PPWR dashboard for this project"
"What's the average recycled content across our packaging?"
"How many supplier surveys have been validated?"

Workflow

  1. Find your projectlist_projects to find the project containing packaging data
  2. List packaging unitslist_packaging_units to see all units in the project
  3. Check dashboardget_ppwr_dashboard for a high-level compliance overview
  4. Dive into a unitget_packaging_unit for full detail (BOM, substances, recyclability)
  5. Check complianceget_packaging_compliance for pass/fail checks and deadlines
  6. Identify gapsget_packaging_gaps for traffic-light gap analysis with required actions
  7. Project-wide viewget_project_compliance for a summary across all units

Projects

Find project IDs containing packaging data

CSRD

CSRD/ESRS compliance and double materiality

Emissions

GHG emissions for environmental impact

Organizations

Organization hierarchy for group-level views