Barcode lookup

GET /v1/label/barcode · $0.001 a call

Look up a packaged food or drink by its barcode. The product record is scored with the same rules as a label photo: values per 100 g, the Nutri-Score with the official 2023 algorithm, the NOVA processing group, additives with EFSA risk levels and the 14 EU allergens. No model is involved, so it is fast and cheap. When a barcode is not found, scan the label with POST /v1/label.

For barcode scanners, grocery and allergy apps.

Request

Send these fields as query parameters on GET /v1/label/barcode. No photo is needed.

FieldTypeDescription
codestring, up to 14 characters, requiredThe barcode digits: EAN-13, EAN-8, UPC-A or GTIN-14.

Photo tips. No photo. Send the digits under the barcode; the check digit is verified.

curl "https://truelens.keronlabs.com/v1/label/barcode?code=3017620422003" \
  -H "Authorization: Bearer $TRUELENS_KEY"

Response

FieldDescription
summaryOne line, e.g. "Nutri-Score E, NOVA 4, 1 additive".
barcodeThe barcode you sent.
product, nutrition, nutri_score, nova, additives, allergens, ingredientsThe same fields as POST /v1/label.
warningsGaps in the product record, such as a missing nutrition table or ingredient list.

Example

Output of this API’s own code on the sample request above.

{
  "metadata": {
    "id": "req_9cf4da08fe7f40dab71a",
    "engine": "label/barcode",
    "status": "success",
    "cached": false,
    "credits_used": 0.1,
    "created_at": "2026-10-19T09:30:00.000Z",
    "processing_ms": 40
  },
  "summary": "Nutella: Nutri-Score E, NOVA 4, 1 additive",
  "product": {
    "type": "food",
    "name": "Nutella",
    "brand": "Nutella",
    "language": "fr"
  },
  "legibility": "clear",
  "nutrition": {
    "basis_printed": "per_100g",
    "serving_size": null,
    "unit": "g",
    "per_100": {
      "energy_kj": 2252,
      "energy_kcal": 539,
      "fat_g": 30.9,
      "saturated_fat_g": 10.6,
      "carbohydrates_g": 57.5,
      "sugars_g": 56.3,
      "fiber_g": 0,
      "protein_g": 6.3,
      "salt_g": 0.11
    },
    "checks": []
  },
  "nutri_score": {
    "grade": "E",
    "score": 31,
    "category": "general",
    "negative_points": 31,
    "positive_points": 0,
    "components": {
      "negative": [
        {
          "id": "energy",
          "value": 2252,
          "points": 6,
          "points_max": 10
        },
        {
          "id": "sugars",
          "value": 56.3,
          "points": 15,
          "points_max": 15
        },
        {
          "id": "saturated_fat",
          "value": 10.6,
          "points": 10,
          "points_max": 10
        },
        {
          "id": "salt",
          "value": 0.11,
          "points": 0,
          "points_max": 20
        }
      ],
      "positive": [
        {
          "id": "fiber",
          "value": 0,
          "points": 0,
          "points_max": 5
        },
        {
          "id": "fruits_vegetables_legumes",
          "value": 0,
          "points": 0,
          "points_max": 5
        }
      ]
    },
    "proteins_counted": false,
    "algorithm": "2023",
    "notes": []
  },
  "nova": {
    "group": 4,
    "markers": [
      {
        "ingredient": "LACTOSERUM en poudre",
        "marker": "whey",
        "group": 4
      },
      {
        "ingredient": "E322 Lecithin‚ hydroxylated",
        "marker": "lecithin‚ hydroxylated",
        "group": 4
      },
      {
        "ingredient": "Sucre",
        "marker": "sugar",
        "group": 3
      }
    ],
    "basis": "Contains ingredients or additives typical of ultra-processed foods."
  },
  "additives": [
    {
      "e_number": "E322",
      "name": "Lecithin‚ hydroxylated",
      "classes": [],
      "efsa_overexposure_risk": null,
      "note": null
    }
  ],
  "allergens": {
    "contains": [
      "soybeans",
      "milk",
      "nuts"
    ],
    "may_contain": []
  },
  "ingredients": [
    {
      "name": "Sucre",
      "percent": null,
      "e_number": null
    },
    {
      "name": "huile de palme",
      "percent": null,
      "e_number": null
    },
    {
      "name": "NOISETTES",
      "percent": 13,
      "e_number": null
    },
    {
      "name": "cacao maigre",
      "percent": 7.4,
      "e_number": null
    },
    {
      "name": "LAIT écrémé en poudre",
      "percent": 6.6,
      "e_number": null
    },
    {
      "name": "LACTOSERUM en poudre",
      "percent": null,
      "e_number": null
    },
    {
      "name": "lécithines",
      "percent": null,
      "e_number": "E322"
    },
    {
      "name": "vanilline",
      "percent": null,
      "e_number": null
    }
  ],
  "ingredients_text": "Sugar, vegetable fat (palm), hazelnuts (13%), skimmed milk powder (8.7%), fat-reduced cocoa powder (7.4%), emulsifier: lecithins (soya), flavouring (vanillin).",
  "cosmetic": null,
  "warnings": [],
  "barcode": "3017620422003"
}