API Documentation REST API for Product Data

Access Digital Product Passport data programmatically. Our REST API delivers structured JSON data.

Overview

Base URL

https://openproductdata.org/api/v1

Format

JSON (UTF-8)

Authentication

Not required (Public API)

Rate Limits

The API is limited to 60 requests per minute per IP address.

When exceeded, you will receive a 429 Too Many Requests response with a Retry-After header.

GET

/api/v1/public/products/{slug}

Returns all data of a published product, including materials, certificates, sustainability and origin.

Example Request
curl https://openproductdata.org/api/v1/public/products/example-product
Example Response (200 OK)
{
  "product": {
    "name": "Bio-Baumwoll T-Shirt",
    "slug": "bio-baumwoll-t-shirt",
    "brand": "EcoWear",
    "model": "Classic",
    "sku": "EW-TS-001",
    "gtin": "4012345678901",
    "description": "Nachhaltiges T-Shirt aus 100% Bio-Baumwolle",
    "category": "Textilien",
    "image": "https://openproductdata.org/uploads/1/products/abc123.jpg",
    "manufacturer": "EcoWear GmbH",
    "url": "https://openproductdata.org/p/bio-baumwoll-t-shirt",
    "materials": [
      {
        "name": "Bio-Baumwolle",
        "percentage": "95.00",
        "recyclable": 1,
        "recycled_content": "0.00",
        "origin_country": "IN",
        "certification": "GOTS"
      }
    ],
    "certificates": [...],
    "sustainability": {
      "carbon_footprint_kg": "3.20",
      "energy_rating": "A",
      "recyclability_percentage": "85.00",
      "repair_score": 6
    },
    "origin": {
      "manufactured_in": "PT",
      "manufacturer_name": "EcoWear GmbH"
    }
  }
}

Error Responses

404 Not Found

Product not found or not published.

429 Too Many Requests

Rate limit exceeded.

GET

/api/v1/public/search

Searches published products by name, brand or category.

Query Parameters

Parameter Type Description
q string Search term (min. 2 characters, required)
Example Request
curl "https://openproductdata.org/api/v1/public/search?q=baumwolle"
Example Response (200 OK)
{
  "products": [
    {
      "slug": "bio-baumwoll-t-shirt",
      "name": "Bio-Baumwoll T-Shirt",
      "brand": "EcoWear",
      "category": "Textilien",
      "image_path": "/uploads/1/products/abc123.jpg",
      "org_name": "EcoWear GmbH"
    }
  ],
  "count": 1
}
GET

/p/{slug}/json

Simplified endpoint for machine-readable product data. Ideal for integration into other systems.

Example Request
curl https://openproductdata.org/p/bio-baumwoll-t-shirt/json

CORS & Integration

All API endpoints send the header Access-Control-Allow-Origin: *, allowing requests from any domain.

Responses are delivered as application/json; charset=utf-8.