Open Standard · v0.1

Footprint
Protocol

An open standard for embedding carbon footprint metadata in any webpage.
Like OpenGraph, but for sustainability.

Introduction

What is the Footprint Protocol?

The Footprint Protocol is an open metadata standard that lets any product webpage declare its carbon footprint using HTML <meta> tags. It works like the OpenGraph Protocol: add a few lines to your page's <head> and any tool, scraper, or search engine can read your product's environmental data without any API contract.

The fp: namespace covers the essentials (CO2e value, unit, scope, and lifecycle breakdown) while staying minimal enough to embed in five lines. No special server, no registry, no vendor lock-in. Just HTML.

Whether you're a manufacturer publishing an LCA, a retailer adding sustainability data to product pages, or a browser extension surfacing carbon info to shoppers, the Footprint Protocol gives you a single, unambiguous format to read and write.

11
Properties
3 required · 5 recommended · 3 optional
fp:
Namespace
Property prefix for all meta tags
HTML
Standard
No framework, no runtime, no API
Protocol Specification

Basic Metadata

Three properties are required. Every Footprint Protocol implementation must include all three.

Property Type Description
fp:product string The name of the product whose footprint is described.
fp:co2e float CO₂ equivalent value. Must be a valid decimal number.
fp:co2e:unit enum Unit of the CO₂e value. One of: kg, g, t.
html
<html>
<head>
  <!-- Footprint Protocol: Required -->
  <meta property="fp:product"   content="Fairphone 5" />
  <meta property="fp:co2e"      content="23.6" />
  <meta property="fp:co2e:unit" content="kg" />
</head>
</html>

Recommended Metadata

These properties are optional but strongly encouraged. They provide the context tools need to compare footprints fairly and trace claims back to their source.

Property Type Description
fp:scope enum Lifecycle scope. One of: lifecycle, production, use, disposal.
fp:per string Functional unit. e.g. unit, year, km, kWh.
fp:methodology string Standard used. e.g. ISO 14067, GHG Protocol.
fp:certifier url URL of the certifying or auditing body.
fp:verified:date date ISO 8601 date of the last verification.
html
<!-- Recommended metadata -->
<meta property="fp:scope"         content="lifecycle" />
<meta property="fp:per"           content="unit" />
<meta property="fp:methodology"   content="ISO 14067" />
<meta property="fp:certifier"     content="https://certifier.example.org/cert/12345" />
<meta property="fp:verified:date" content="2025-01-15" />

Lifecycle Breakdown

When you have granular lifecycle assessment data, publish the individual phase contributions. All values are in the same unit as fp:co2e:unit.

Property Type Description
fp:materials float Raw material extraction and processing.
fp:manufacturing float Manufacturing and assembly.
fp:transport float Transport and distribution.
fp:use float Use phase (energy consumption, consumables).
fp:disposal float End-of-life treatment and disposal.
html
<!-- Optional lifecycle breakdown (GHG Protocol phases) -->
<meta property="fp:materials"     content="8.2" />
<meta property="fp:manufacturing" content="4.1" />
<meta property="fp:transport"     content="2.8" />
<meta property="fp:use"           content="6.9" />
<meta property="fp:disposal"      content="1.6" />

Complete Example

A full-page implementation with all recommended and optional properties. Based on the Fairphone 5 lifecycle assessment.

html
<html>
<head>
  <title>Fairphone 5: Sustainable Smartphone</title>

  <!-- Footprint Protocol v0.1 -->

  <!-- Required -->
  <meta property="fp:product"   content="Fairphone 5" />
  <meta property="fp:co2e"      content="23.6" />
  <meta property="fp:co2e:unit" content="kg" />

  <!-- Recommended -->
  <meta property="fp:scope"         content="lifecycle" />
  <meta property="fp:per"           content="unit" />
  <meta property="fp:methodology"   content="ISO 14067" />
  <meta property="fp:certifier"     content="https://tco-certified.org/cert/fp5-2025" />
  <meta property="fp:verified:date" content="2025-03-01" />

  <!-- Lifecycle breakdown -->
  <meta property="fp:materials"     content="8.2" />
  <meta property="fp:manufacturing" content="4.1" />
  <meta property="fp:transport"     content="2.8" />
  <meta property="fp:use"           content="6.9" />
  <meta property="fp:disposal"      content="1.6" />
</head>
<body>
  <!-- product page content -->
</body>
</html>
Implementations

Parse it in your language

Official and community parsers for reading fp: metadata from HTML.

Official Rust

footprint-parser

Parse Footprint Protocol meta tags from any HTML string. Returns a typed FootprintData struct with validation. Available as a library and a CLI tool.

Quick start
rust
use footprint_parser::parse;

let html = r#"
  <meta property="fp:product"   content="Fairphone 5" />
  <meta property="fp:co2e"      content="23.6" />
  <meta property="fp:co2e:unit" content="kg" />
"#;

let data = parse(html)?;
println!("{}: {} {:?}", data.product, data.co2e, data.co2e_unit);
// Fairphone 5: 23.6 Kg
Install: cargo add footprint-parser
CLI: footprint product.html

Built a parser in another language?

Open a GitHub issue to get listed here