> ## Documentation Index
> Fetch the complete documentation index at: https://help.polygon-one.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Get Packaging Component by ID

> Retrieve one packaging component as stored. A component of another company, a soft-deleted component and an `id` that is not a UUID all answer `404` — never `403`. Requires `packaging:read` (a `packaging:write` key satisfies it); customer workspace with the PPWR module enabled.



## OpenAPI

````yaml GET /api/ppwr/components/{id}
openapi: 3.1.0
info:
  title: Polygon One Compliance API
  description: >-
    API for integrating ERP systems with the Polygon One EUDR Compliance
    Platform. Allows management of Articles, Suppliers, Orders, and Due
    Diligence Statements (DDS). PPWR packaging master data, the SKU quantity
    feed and Mengenmeldung reports are covered by the PPWR groups.
  version: 1.0.0
servers:
  - url: https://app.polygon-one.com
    description: Production Server
security:
  - bearerAuth: []
paths:
  /api/ppwr/components/{id}:
    get:
      summary: Get Packaging Component by ID
      description: >-
        Retrieve one packaging component as stored. A component of another
        company, a soft-deleted component and an `id` that is not a UUID all
        answer `404` — never `403`. Requires `packaging:read` (a
        `packaging:write` key satisfies it); customer workspace with the PPWR
        module enabled.
      operationId: getPpwrComponent
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: string
            format: uuid
      responses:
        '200':
          description: Packaging component details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PpwrComponent'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/InternalError'
components:
  schemas:
    PpwrComponent:
      type: object
      description: >-
        One packaging component as stored — the shape both `GET
        /api/ppwr/components` and `GET /api/ppwr/components/{id}` return.
        Numeric values are decimal strings. Provenance and evidence fields are
        read-only: the intake API never writes them.
      required:
        - id
        - companyId
        - code
        - name
        - materials
        - contactSensitive
        - foodContact
        - heavyMetalsValueKind
        - heavyMetalsRecycledGlassDerogation
        - pfasTotalFluorineValueKind
        - pfasSumValueKind
        - createdAt
        - updatedAt
      properties:
        id:
          type: string
          format: uuid
        companyId:
          type: string
          format: uuid
        createdByUserId:
          type:
            - string
            - 'null'
          format: uuid
        updatedByUserId:
          type:
            - string
            - 'null'
          format: uuid
          description: >-
            The last human editor; `null` when no human write path has stamped
            it.
        code:
          type: string
          description: >-
            Your component code — half of the upsert key of `POST
            /api/ppwr/components` (the other half is the resolved supplier).
        name:
          type: string
        supplierId:
          type:
            - string
            - 'null'
          format: uuid
          description: '`null` for a component of your own catalogue.'
        materials:
          type: array
          items:
            type: string
            enum:
              - plastic
              - paper_board
              - glass
              - metal
              - wood
              - composite
              - other
        polymer:
          type:
            - string
            - 'null'
          enum:
            - pet
            - hdpe
            - ldpe
            - pp
            - ps
            - pvc
            - other
            - null
        massGrams:
          type:
            - string
            - 'null'
          description: Mass of one piece, in grams.
        recycledContentPct:
          type:
            - string
            - 'null'
        recycledContentSource:
          type:
            - string
            - 'null'
          enum:
            - pcr
            - pir
            - null
        recycledContentMethod:
          type:
            - string
            - 'null'
          enum:
            - physical
            - mass_balance
            - null
        contactSensitive:
          type: boolean
        foodContact:
          type: boolean
        heavyMetalsMgPerKg:
          type:
            - string
            - 'null'
        heavyMetalsValueKind:
          type: string
          enum:
            - measured
            - declared_within_limit
          description: Whether the heavy-metals value is a measurement or a declared bound.
        heavyMetalsBasis:
          type:
            - string
            - 'null'
          enum:
            - test_report
            - supplier_declaration
            - not_substantiated
            - null
        heavyMetalsMethod:
          type:
            - string
            - 'null'
        heavyMetalsRecycledGlassDerogation:
          type: boolean
          description: >-
            The recycled-glass attestation for the Art. 5(4) sum. Set in the app
            only; no import or API write touches it.
        heavyMetalsEvidenceId:
          type:
            - string
            - 'null'
          format: uuid
          description: >-
            The evidence document backing the heavy-metals value, when one is
            attached.
        pfasCompliant:
          type:
            - boolean
            - 'null'
          description: 'Tri-state: `null` = unknown.'
        pfasBasis:
          type:
            - string
            - 'null'
          enum:
            - test_report
            - supplier_declaration
            - not_substantiated
            - null
        pfasMethod:
          type:
            - string
            - 'null'
        pfasTotalFluorineMgPerKg:
          type:
            - string
            - 'null'
        pfasTotalFluorineValueKind:
          type: string
          enum:
            - measured
            - declared_within_limit
        pfasSumPpb:
          type:
            - string
            - 'null'
        pfasSumValueKind:
          type: string
          enum:
            - measured
            - declared_within_limit
        pfasEvidenceId:
          type:
            - string
            - 'null'
          format: uuid
        lastProvidedBySupplierId:
          type:
            - string
            - 'null'
          format: uuid
          description: >-
            The supplier who last supplied this component's data through a data
            request.
        lastProvidedAt:
          type:
            - string
            - 'null'
          format: date-time
        notes:
          type:
            - string
            - 'null'
        deletedAt:
          type:
            - string
            - 'null'
          format: date-time
          description: >-
            Always `null` here — these routes never return a soft-deleted
            component.
        retentionUntil:
          type:
            - string
            - 'null'
          format: date-time
          description: Set only on a deleted component, so always `null` here.
        createdAt:
          type: string
          format: date-time
        updatedAt:
          type: string
          format: date-time
    ErrorResponse:
      type: object
      properties:
        error:
          type: string
        details:
          description: Additional error details (e.g. validation issues)
      required:
        - error
  responses:
    Unauthorized:
      description: Invalid or missing API key
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    Forbidden:
      description: Insufficient permissions for this resource
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    NotFound:
      description: Resource not found
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    InternalError:
      description: Internal server error
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: API Key
      description: >-
        API key generated in Settings > API Keys. Include as `Authorization:
        Bearer <key>`.

````