Open Food Facts Search API Version 2: Difference between revisions

From Open Food Facts wiki
(→‎Features: add links to API to demonstrate the features)
(→‎Conditions on nutrients: added links to API examples)
Line 52: Line 52:


* Per 100g or per serving
* Per 100g or per serving
** energy-kj_100g < 200
** [https://world.openfoodfacts.org/api/v2/search?categories_tags=en:sodas&energy-kj_100g%3C200&fields=code,product_name,energy-kj_100g energy-kj_100g < 200]
** sugars_serving > 10
** [https://world.openfoodfacts.org/api/v2/search?categories_tags=en:sodas&sugars_serving%3E10g&fields=code,product_name,sugars_serving sugars_serving > 10]
* Per the product as sold, or prepared
* Per the product as sold, or prepared
** saturated-fat_100g (as sold)
** [https://world.openfoodfacts.org/api/v2/search?categories_tags=en:sodas&saturated-fat_100g=1&fields=code,product_name,saturated-fat_100g saturated-fat_100g=1 (as sold)]
** salt_prepared_serving (prepared, per serving)
** [https://world.openfoodfacts.org/api/v2/search?categories_tags=en:meals&salt_prepared_100g=1&fields=code,product_name,salt_prepared_100g salt_prepared_serving (prepared, per serving)]


== Development and deployment ==
== Development and deployment ==

Revision as of 14:11, 13 October 2020

Open Food Facts Search API Version 2

Introduction

Version 1 of the Open Food Facts search API is outdated and hacky (it was built on top of the OFF web site search form and is unnecessarily convoluted) and does not support some of the requirements for the Project:Personalized_Search (in particular being able to retrieve a given set of products using their barcodes).

We have thus created a new Open Food Facts Search API Version 2 that is simpler but also more powerful.

  • Version 1 of the API will continue to be supported for the years to come, as there are many apps that are using it.
  • Version 2 of the API was launched in production in September 2020. It has not been widely publicized yet as we may change it based on the feedback of the first users.

Examples

Products from the chocolate category, with both the organic label and the fair trade label:

Features

New /api/v2/search (JSON) and /search (OFF web site) endpoints

V1 of the search API is a hack on the web site search form and is accessed by adding &json=1 to the /cgi/search.pl web form.

The new search API introduces 2 new endpoints that mimick the product page endpoints (/product/[barcode] for the Web, and /api/v0/product/[barcode] for the API with JSON results):

  • /search will replace /cgi/search.pl as the url of search results
  • /api/v2/search will return JSON results, with the exact same parameters as the /search endpoint

Simplified parameters specification

Tags fields are now specified directly:

For AND queries, use comma separated values:

For negative queries, prefix tag with -

OR tags fields queries

For OR queries, use | to separate values

Conditions on nutrients

Development and deployment

The new Search API V2 has been developed and deployed incrementally in August and September 2020. The new V2 API co-exists with the existing Search API V1.

V1 of the API will be supported for the years to come as many apps are using it.

Related issues

Related PRs