EUlabel
SDK

Python SDK

Install and use the eulabel Python package.

Installation

pip install eulabel

Initialization

from eulabel import EUlabel

client = EUlabel(api_key="sk_live_...")

Products

Create a product

product = client.products.create(
    name="Quinta do Crasto Douro Red 2021",
    category="wine",
    brand="Quinta do Crasto",
    gtin="5601234567890",
)

print(product.product_id)
print(product.qr_code_url)

List products

result = client.products.list()

for product in result.products:
    print(product.name, product.gtin)

Passports

Create a passport

passport = client.passports.create(
    product_id="a1b2c3d4-...",
    data={
        "product_type": "wine",
        "colour": "red",
        "vintage": 2021,
        "ingredients": ["Grapes (Touriga Nacional)", "Sulphur Dioxide"],
        "nutrition": {
            "energy_kj": 351,
            "energy_kcal": 84,
            "fat_g": 0,
            "saturated_fat_g": 0,
            "carbohydrates_g": 0.6,
            "sugars_g": 0.3,
            "protein_g": 0.1,
            "salt_g": 0,
            "alcohol_g": 13.5,
        },
        "allergens": {
            "contains_sulphites": True,
            "contains_egg": False,
            "contains_fish": False,
            "contains_milk": False,
        },
        "origin": {"country": "PT", "region": "Douro", "designation": "Douro DOC"},
        "producers": [{"name": "Quinta do Crasto", "role": "producer", "country": "PT"}],
    },
)

Retrieve a passport

passport = client.products.get_passport("a1b2c3d4-...")

Analytics

analytics = client.analytics.get_product(
    "a1b2c3d4-...",
    start="2026-01-01",
    end="2026-03-14",
)

print(f"Total scans: {analytics.total_scans}")
print(f"Countries: {analytics.unique_countries}")

Error handling

from eulabel import EUlabel, EUlabelError

try:
    client.products.create(name="Test", category="wine", brand="Test", gtin="invalid")
except EUlabelError as e:
    print(e.type)     # "validation_error"
    print(e.message)  # "Invalid GTIN check digit"
    print(e.param)    # "gtin"

On this page