Changes

Jump to navigation Jump to search
3,528 bytes removed ,  14:04, 5 September 2023
no edit summary
Line 1: Line 1: −
[[Category:Developer]]
+
__NOINDEX__
[[Category:API]]
+
[[Category:Developer]] [[Category:API]]
== Status ==
+
The API (Application Programming Interface) is the way an application can enter in dialogue with Open Food Facts application server.
Currently the API is mainly used internally for [[Project:Mobile_Apps|Cordova application]], but does not follow good practices in API design.
  −
It is also used by several application and while not yet stable, doesn't change much.
  −
You can ask for help on using the API in this [[https://openfoodfacts.slack.com/messages/api/|Slack channel]]. You can have a look at the source code of the app (https://github.com/openfoodfacts/cordova-app/blob/master/www/off.js and https://github.com/openfoodfacts/cordova-app/blob/master/www/index.html)
     −
== Testing ==
+
All information about the API can be found [https://openfoodfacts.github.io/openfoodfacts-server/api/ in the documentation].
* You should do all your test edits on http://world.openfoodfacts.net (ask for the password on Slack)
  −
* Do not hesitate to create a global account for your app if you don't want to implement Open Food Facts user creation in your app right now.
  −
 
  −
== API Basic Documentation ==
  −
=== Countries ===
  −
You can either use the global (world) for locales (fr, en…)
  −
 
  −
=== Reading a product ===
  −
See http://fr.openfoodfacts.org/data or http://en.openfoodfacts.org/data
  −
The requested subdomain will be the locale fetched.
  −
 
  −
=== Searching for products ===
  −
 
  −
You can add &jqm=1 to search results pages on the web site to get results in a jquerymobile format.
  −
 
  −
Also:
  −
* sort_by=unique_scans_n
  −
* page_size=50 (20 by default, 1000 at most)
  −
* page=2
  −
Example: <sup>(remember to do tests on .net)</sup>
  −
<pre>
  −
http://world.openfoodfacts.org/cgi/search.pl?search_terms=coke&search_simple=1&jqm=1
  −
</pre>
  −
====Search results====
  −
* http://world.openfoodfacts.org/cgi/search.pl?search_terms=banania&search_simple=1&action=process&json=1
  −
====Labels====
  −
=====List of labels=====
  −
* http://world.openfoodfacts.org/labels.json
  −
* http://world.openfoodfacts.org/labels.xml
  −
=====Individual label=====
  −
* http://world.openfoodfacts.org/label/utz-certified.json
  −
* http://world.openfoodfacts.org/label/utz-certified.xml
  −
====Categories====
  −
=====List of categories=====
  −
* http://world.openfoodfacts.org/categories.json
  −
* http://world.openfoodfacts.org/categories.xml
  −
=====Individual category=====
  −
* http://world.openfoodfacts.org/category/baby-foods.json
  −
* http://world.openfoodfacts.org/category/baby-foods.xml
  −
====Status of products====
  −
=====List of States =====
  −
* http://world.openfoodfacts.org/states.json
  −
* http://world.openfoodfacts.org/states.xml
  −
=====Individual Status =====
  −
* http://world.openfoodfacts.org/state/complete.json
  −
* http://world.openfoodfacts.org/state/complete.xml
  −
 
  −
=== Posting photos ===
  −
* Photos post on /cgi/product_image_upload.pl
  −
** code: the barcode
  −
** imagefield: "front"
  −
** imgupload_front : your image file
  −
 
  −
Example: <sup>(remember to do tests on .net)</sup>
  −
<pre>
  −
http://world.openfoodfacts.org/cgi/product_image_upload.pl
  −
</pre>
  −
 
  −
=== Posting a new product ===
  −
* Product post to http://world.openfoodfacts.org/cgi/product_jqm2.pl <sup>(remember to do tests on .net)</sup>
  −
** var foodfact = { barcode : '3073780969000', name : 'KIRI GOUTER 280G 8 PORTIONS', energy: 500, energy_unit: "kJ", weight: 282 };
  −
** var postData = {
  −
** code        : foodfact.barcode,
  −
** user_id      : "mesinfosnutritionelles",
  −
** password    : "****",
  −
** product_name : foodfact.name?foodfact.name:foodfact.shop_label,
  −
** quantity    : foodfact.weight?""+foodfact.weight+" g":undefined,
  −
** stores      : "Intermarché",
  −
** nutriment_energy      :foodfact.energy,
  −
** nutriment_energy_unit :foodfact.energy_unit,
  −
** nutrition_data_per    :"serving"
  −
** {"status_verbose":"fields saved","status":1}
  −
 
  −
<br>Example: <sup>(remember to do tests on .net)</sup><br>
  −
<pre>http://world.openfoodfacts.org/cgi/product_jqm2.pl?code=3073780969000&user_id=usernameexample&password=*****&product_name=KIRI%20GOUTER%20280G%208%20PORTIONS&quantity=282%20g&stores=Intermarch%C3%A9&nutriment_energy=500&nutriment_energy_unit=kJ&nutrition_data_per=serving</pre>
  −
 
  −
== Roadmap ==
  −
[[API/Roadmap]]
 

Navigation menu