> ## Documentation Index
> Fetch the complete documentation index at: https://docs.variable.global/llms.txt
> Use this file to discover all available pages before exploring further.

# PACT v3 footprints

> List your footprints on PACT v3.

This serves locked PCF declarations shared to the API, as PACT v3 product footprints. A footprint's `id` is its PCF's
id. A PCF that a newer locked version replaced reads `status: "Deprecated"`; the newer footprint lists it in
`precedingPfIds`.

### Filters

The query parameters are the PACT v3 filters. Repeat a parameter to match any of its values; different parameters must
all match. An empty parameter filters nothing.

A footprint is valid from its declared validity start, or else the end of its reference period, until its declared
validity end, or else three years after the reference period ends.

### Paging

Pass `limit` for the page size. A page holds at most 100 footprints, whatever the `limit`, and can hold fewer than the
`limit` when a footprint fails the PACT v3 schema and is left out. **Follow the `Link` header, not the page size:** its
`next` URL carries your filters, so request it until there is none.


## OpenAPI

````yaml GET /pact/3/footprints
openapi: 3.0.1
info:
  title: Variable API
  description: This is the Variable API
  version: 1.1.0
servers:
  - url: https://app.variable.global/api
security:
  - basicAuth: []
  - bearerAuth: []
  - oAuthNoScopes: []
paths:
  /pact/3/footprints:
    servers:
      - url: https://{subdomain}.variable.global/api
        description: Your company's PACT API
        variables:
          subdomain:
            default: your_subdomain
            description: Your Variable subdomain, set in company settings
    get:
      summary: List PACT v3 footprints
      parameters:
        - name: productId
          in: query
          description: >-
            A product's id, as `urn:uuid:<id>` or the bare id. Matches the PCFs
            of that product.
          schema:
            type: array
            items:
              type: string
          example:
            - urn:uuid:6f8d6c41-6a3c-4c3e-9a51-0b5c4f1e2d7a
        - name: companyId
          in: query
          description: >
            Your company's id, as `urn:uuid:<id>` or the bare id. Only the
            subdomain chooses the company, so any other company's id matches
            nothing.
          schema:
            type: array
            items:
              type: string
        - name: geography
          in: query
          description: An ISO 3166-1 alpha-2 country code. Matches the product's country.
          schema:
            type: array
            items:
              type: string
          example:
            - 'NO'
        - name: classification
          in: query
          description: A CPC code as a URN. Other classification schemes match nothing.
          schema:
            type: array
            items:
              type: string
          example:
            - urn:cpc:4299
        - name: status
          in: query
          schema:
            type: array
            items:
              type: string
              enum:
                - Active
                - Deprecated
        - name: validOn
          in: query
          description: >-
            An ISO 8601 date. Matches footprints valid on that date. At most 10
            values.
          schema:
            type: array
            maxItems: 10
            items:
              type: string
              format: date
        - name: validAfter
          in: query
          description: >-
            An ISO 8601 date. Matches footprints whose validity starts after it.
            At most 10 values.
          schema:
            type: array
            maxItems: 10
            items:
              type: string
              format: date
        - name: validBefore
          in: query
          description: >-
            An ISO 8601 date. Matches footprints whose validity ends before it.
            At most 10 values.
          schema:
            type: array
            maxItems: 10
            items:
              type: string
              format: date
        - name: limit
          in: query
          description: The page size, at most 100.
          schema:
            type: integer
            maximum: 100
        - name: offset
          in: query
          description: >-
            Where the page starts. Take it from the `Link` header's `next` URL
            rather than computing it.
          schema:
            type: integer
      responses:
        '200':
          description: A page of PACT v3 product footprints
          headers:
            Link:
              description: >-
                The next page's URL, as `<url>; rel="next"`. Absent on the last
                page.
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PactListResponseV3'
        '400':
          description: >-
            A date filter has more than 10 values, or a value that isn't an ISO
            8601 date
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PactErrorResponse'
        '401':
          description: The token expired, or lacks the `pact:read` permission
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PactErrorResponse'
      security:
        - bearerAuth: []
components:
  schemas:
    PactListResponseV3:
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/PactProductFootprintV3'
    PactErrorResponse:
      type: object
      properties:
        message:
          type: string
          example: token expired
        code:
          type: string
          enum:
            - BadRequest
            - NotFound
            - TokenExpired
            - Unauthorized
          example: TokenExpired
    PactProductFootprintV3:
      type: object
      required:
        - id
        - specVersion
        - status
        - companyName
        - companyIds
        - productIds
        - productNameCompany
        - productDescription
        - pcf
        - created
      properties:
        id:
          type: string
          description: The PCF's id.
          example: 3f2b8c1e-5d4a-4f6b-9c2e-7a1d0e8b4c55
        specVersion:
          type: string
          example: 3.0.0
        precedingPfIds:
          type: array
          description: The ids of the footprints this one replaced.
          items:
            type: string
        status:
          type: string
          enum:
            - Active
            - Deprecated
        validityPeriodStart:
          $ref: '#/components/schemas/UTC_ISO_8601'
        validityPeriodEnd:
          $ref: '#/components/schemas/UTC_ISO_8601'
        companyName:
          type: string
          example: Acme Corp
        companyIds:
          type: array
          items:
            type: string
          example:
            - urn:uuid:9b1c2d3e-4f5a-4b6c-8d7e-0f1a2b3c4d5e
        productIds:
          type: array
          items:
            type: string
          example:
            - urn:uuid:6f8d6c41-6a3c-4c3e-9a51-0b5c4f1e2d7a
        productClassifications:
          type: array
          items:
            type: string
          example:
            - urn:cpc:4299
        productNameCompany:
          type: string
          example: Green Widget
        productDescription:
          type: string
          example: A sustainable widget made from recycled materials
        comment:
          type: string
        pcf:
          $ref: '#/components/schemas/PactCarbonFootprintV3'
        extensions:
          type: array
          items:
            $ref: '#/components/schemas/PactDataModelExtension'
        created:
          $ref: '#/components/schemas/UTC_ISO_8601'
        updated:
          $ref: '#/components/schemas/UTC_ISO_8601'
    UTC_ISO_8601:
      type: string
      format: date-time
      example: '2025-01-01T00:00:00.000Z'
    PactCarbonFootprintV3:
      type: object
      required:
        - declaredUnitOfMeasurement
        - declaredUnitAmount
        - productMassPerDeclaredUnit
        - pcfExcludingBiogenicUptake
        - pcfIncludingBiogenicUptake
        - fossilGhgEmissions
        - fossilCarbonContent
        - packagingEmissionsIncluded
        - ipccCharacterizationFactors
        - crossSectoralStandards
        - referencePeriodStart
        - referencePeriodEnd
        - exemptedEmissionsPercent
        - primaryDataShare
      properties:
        declaredUnitOfMeasurement:
          type: string
          enum:
            - liter
            - kilogram
            - cubic meter
            - kilowatt hour
            - megajoule
            - ton kilometer
            - square meter
            - piece
            - hour
            - megabit second
        declaredUnitAmount:
          $ref: '#/components/schemas/PactDecimal'
        productMassPerDeclaredUnit:
          $ref: '#/components/schemas/PactDecimal'
        pcfExcludingBiogenicUptake:
          $ref: '#/components/schemas/PactDecimal'
        pcfIncludingBiogenicUptake:
          $ref: '#/components/schemas/PactDecimal'
        fossilGhgEmissions:
          $ref: '#/components/schemas/PactDecimal'
        fossilCarbonContent:
          $ref: '#/components/schemas/PactDecimal'
        biogenicCarbonContent:
          $ref: '#/components/schemas/PactDecimal'
        recycledCarbonContent:
          $ref: '#/components/schemas/PactDecimal'
        landUseChangeGhgEmissions:
          $ref: '#/components/schemas/PactDecimal'
        landManagementFossilGhgEmissions:
          $ref: '#/components/schemas/PactDecimal'
        landManagementBiogenicCO2Emissions:
          $ref: '#/components/schemas/PactDecimal'
        landManagementBiogenicCO2Removals:
          $ref: '#/components/schemas/PactDecimal'
        biogenicCO2Uptake:
          $ref: '#/components/schemas/PactDecimal'
        biogenicNonCO2Emissions:
          $ref: '#/components/schemas/PactDecimal'
        landAreaOccupation:
          $ref: '#/components/schemas/PactDecimal'
        aircraftGhgEmissions:
          $ref: '#/components/schemas/PactDecimal'
        packagingEmissionsIncluded:
          type: boolean
        packagingGhgEmissions:
          $ref: '#/components/schemas/PactDecimal'
        packagingBiogenicCarbonContent:
          $ref: '#/components/schemas/PactDecimal'
        outboundLogisticsGhgEmissions:
          $ref: '#/components/schemas/PactDecimal'
        ccsTechnologicalCO2CaptureIncluded:
          type: boolean
        ccsTechnologicalCO2Capture:
          $ref: '#/components/schemas/PactDecimal'
        technologicalCO2CaptureOrigin:
          type: string
        technologicalCO2Removals:
          $ref: '#/components/schemas/PactDecimal'
        ccuCarbonContent:
          $ref: '#/components/schemas/PactDecimal'
        ccuCalculationApproach:
          type: string
          enum:
            - Cut-off
            - Credit
        ccuCreditCertification:
          type: string
        ipccCharacterizationFactors:
          type: array
          items:
            type: string
          example:
            - AR6
        crossSectoralStandards:
          type: array
          items:
            type: string
            enum:
              - ISO14067
              - ISO14083
              - ISO14040-44
              - GHGP-Product
              - PEF
              - PACT-1.0
              - PACT-2.0
              - PACT-3.0
              - PAS2050
        productOrSectorSpecificRules:
          $ref: '#/components/schemas/ProductOrSectorSpecificRule'
        boundaryProcessesDescription:
          type: string
        referencePeriodStart:
          $ref: '#/components/schemas/UTC_ISO_8601'
        referencePeriodEnd:
          $ref: '#/components/schemas/UTC_ISO_8601'
        geographyCountrySubdivision:
          $ref: '#/components/schemas/ISO_3166_2_Subdivision_Code'
        geographyCountry:
          $ref: '#/components/schemas/ISO_3166_CC'
        geographyRegionOrSubregion:
          type: string
          example: Europe
        secondaryEmissionFactorSources:
          $ref: '#/components/schemas/SecondaryEmissionFactorSources'
        exemptedEmissionsPercent:
          $ref: '#/components/schemas/PactDecimal'
        exemptedEmissionsDescription:
          type: string
        allocationRulesDescription:
          type: string
        primaryDataShare:
          $ref: '#/components/schemas/PactDecimal'
        dqi:
          $ref: '#/components/schemas/PactDataQualityIndicatorsV3'
        verification:
          $ref: '#/components/schemas/PactVerification'
    PactDataModelExtension:
      type: object
      description: >-
        The product's image (`@variable/images`) or its attached documents
        (`@variable/attachments`).
      properties:
        specVersion:
          type: string
        dataSchema:
          type: string
          description: The URL of the extension's JSON schema.
        documentation:
          type: string
        data:
          type: object
    PactDecimal:
      type: string
      description: A decimal number, as a string.
      example: '1234.5678'
    ProductOrSectorSpecificRule:
      type: array
      items:
        type: object
        properties:
          operator:
            type: string
            example: PEF
          ruleNames:
            type: array
            items:
              type: string
            example:
              - EN 15804+A2
    ISO_3166_2_Subdivision_Code:
      type: string
      example: US-PA
    ISO_3166_CC:
      type: string
      example: 'NO'
    SecondaryEmissionFactorSources:
      type: array
      items:
        type: object
        properties:
          name:
            type: string
            example: ecoinvent
          version:
            type: string
            example: 3.9.1
    PactDataQualityIndicatorsV3:
      type: object
      required:
        - technologicalDQR
        - temporalDQR
        - geographicalDQR
      properties:
        technologicalDQR:
          $ref: '#/components/schemas/PactDecimal'
        temporalDQR:
          $ref: '#/components/schemas/PactDecimal'
        geographicalDQR:
          $ref: '#/components/schemas/PactDecimal'
    PactVerification:
      type: object
      required:
        - coverage
      properties:
        coverage:
          type: string
          enum:
            - PCF calculation model
            - PCF program
            - product level
        providerName:
          type: string
        completedAt:
          $ref: '#/components/schemas/UTC_ISO_8601'
        standardName:
          type: string
        comments:
          type: string
  securitySchemes:
    basicAuth:
      type: http
      scheme: basic
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
    oAuthNoScopes:
      type: oauth2
      flows:
        clientCredentials:
          tokenUrl: /auth/token
          scopes: {}

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.