API documentation ================= Thanks to this documentation, we'll see how to interact with the wallabag API. Requirements ------------ * wallabag freshly (or not) installed on http://localhost:8000 * ``httpie`` installed on your computer (`see project website `__). Note that you can also adapt the commands using curl or wget. * all the API methods are documented here http://localhost:8000/api/doc Creating a new API client ------------------------- In your wallabag account, you can create a new API client at this URL http://localhost:8000/developer/client/create. Just give the redirect URL of your application and create your client. If your application is a desktop one, put whatever URL suits you the most. You get information like this: :: Client ID: 1_3o53gl30vhgk0c8ks4cocww08o84448osgo40wgw4gwkoo8skc Client secret: 636ocbqo978ckw0gsw4gcwwocg8044sco0w8w84cws48ggogs4 Obtaining a refresh token ------------------------- For each API call, you'll need a token. Let's create it with this command (replace ``client_id``, ``client_secret``, ``username`` and ``password`` with their values): :: http POST http://localhost:8000/oauth/v2/token \ grant_type=password \ client_id=1_3o53gl30vhgk0c8ks4cocww08o84448osgo40wgw4gwkoo8skc \ client_secret=636ocbqo978ckw0gsw4gcwwocg8044sco0w8w84cws48ggogs4 \ username=wallabag \ password=wallabag You'll have this in return: :: HTTP/1.1 200 OK Cache-Control: no-store, private Connection: close Content-Type: application/json Date: Tue, 05 Apr 2016 08:44:33 GMT Host: localhost:8000 Pragma: no-cache X-Debug-Token: 19c8e0 X-Debug-Token-Link: /_profiler/19c8e0 X-Powered-By: PHP/7.0.4 { "access_token": "ZGJmNTA2MDdmYTdmNWFiZjcxOWY3MWYyYzkyZDdlNWIzOTU4NWY3NTU1MDFjOTdhMTk2MGI3YjY1ZmI2NzM5MA", "expires_in": 3600, "refresh_token": "OTNlZGE5OTJjNWQwYzc2NDI5ZGE5MDg3ZTNjNmNkYTY0ZWZhZDVhNDBkZTc1ZTNiMmQ0MjQ0OThlNTFjNTQyMQ", "scope": null, "token_type": "bearer" } We'll work with the ``access_token`` value in our next calls. cURL example: :: curl -s "https://localhost:8000/oauth/v2/token?grant_type=password&client_id=1_3o53gl30vhgk0c8ks4cocww08o84448osgo40wgw4gwkoo8skc&client_secret=636ocbqo978ckw0gsw4gcwwocg8044sco0w8w84cws48ggogs4&username=wallabag&password=wallabag" Getting existing entries ------------------------ Documentation for this method: http://localhost:8000/api/doc#get--api-entries.{_format} As we work on a fresh wallabag installation, we'll have no result with this command: :: http GET http://localhost:8000/api/entries.json \ "Authorization:Bearer ZGJmNTA2MDdmYTdmNWFiZjcxOWY3MWYyYzkyZDdlNWIzOTU4NWY3NTU1MDFjOTdhMTk2MGI3YjY1ZmI2NzM5MA" returns: :: HTTP/1.1 200 OK 0: application/json Cache-Control: no-cache Connection: close Content-Type: application/json Date: Tue, 05 Apr 2016 08:51:32 GMT Host: localhost:8000 Set-Cookie: PHPSESSID=nrogm748md610ovhu6j70c3q63; path=/; HttpOnly X-Debug-Token: 4fbbc4 X-Debug-Token-Link: /_profiler/4fbbc4 X-Powered-By: PHP/7.0.4 { "_embedded": { "items": [] }, "_links": { "first": { "href": "http://localhost:8000/api/entries?page=1&perPage=30" }, "last": { "href": "http://localhost:8000/api/entries?page=1&perPage=30" }, "self": { "href": "http://localhost:8000/api/entries?page=1&perPage=30" } }, "limit": 30, "page": 1, "pages": 1, "total": 0 } The ``items`` array is empty. cURL example: :: curl --get "https://localhost:8000/api/entries.html?access_token=ZGJmNTA2MDdmYTdmNWFiZjcxOWY3MWYyYzkyZDdlNWIzOTU4NWY3NTU1MDFjOTdhMTk2MGI3YjY1ZmI2NzM5MA" Adding your first entry ----------------------- Documentation for this method: http://localhost:8000/api/doc#post--api-entries.{_format} :: http POST http://localhost:8000/api/entries.json \ "Authorization:Bearer ZGJmNTA2MDdmYTdmNWFiZjcxOWY3MWYyYzkyZDdlNWIzOTU4NWY3NTU1MDFjOTdhMTk2MGI3YjY1ZmI2NzM5MA" \ url="http://www.numerama.com/tech/160115-le-pocket-libre-wallabag-fait-le-plein-de-fonctionnalites.html" returns :: HTTP/1.1 200 OK 0: application/json Cache-Control: no-cache Connection: close Content-Type: application/json Date: Tue, 05 Apr 2016 09:07:54 GMT Host: localhost:8000 Set-Cookie: PHPSESSID=bjie40ck72kp2pst3i71gf43a4; path=/; HttpOnly X-Debug-Token: e01c51 X-Debug-Token-Link: /_profiler/e01c51 X-Powered-By: PHP/7.0.4 { "_links": { "self": { "href": "/api/entries/1" } }, "content": "

Fonctionnant sur le même principe que Pocket, Instapaper ou Readability, le logiciel Wallabag permet de mémoriser des articles pour les lire plus tard. Sa nouvelle version apporte une multitude de nouvelles fonctionnalités.

Si vous utilisez Firefox comme navigateur web, vous avez peut-être constaté l’arrivée d’une fonctionnalité intitulée Pocket. Disponible autrefois sous la forme d’un module complémentaire, et sous un autre nom (Read it Later), elle est depuis le mois de juin 2015 directement incluse au sein de Firefox.

\n

Concrètement, Pocket sert à garder en mémoire des contenus que vous croisez au fil de la navigation, comme des articles de presse ou des vidéos, afin de pouvoir les consulter plus tard. Pocket fonctionne un peu comme un système de favoris, mais en bien plus élaboré grâce à ses options supplémentaires.

\n

Mais Pocket fait polémique, car il s’agit d’un projet propriétaire qui est intégré dans un logiciel libre. C’est pour cette raison que des utilisateurs ont choisi de se tourner vers d’autres solutions, comme Wallabag, qui est l’équivalent libre de Pocket et d’autres systèmes du même genre, comme Instapaper et Readability.

\n

Et justement, Wallabag évolue. C’est ce dimanche que la version 2.0.0 du logiciel a été publiée par l’équipe en  charge de son développement et celle-ci contient de nombreux changements par rapport aux moutures précédentes (la documentation est traduite en français), lui permettant d’apparaître comme une alternative à Pocket, Instapaper et Readability.

\n

\"homepage\"

\n

Parmi les principaux changements que l’on peut retenir avec cette nouvelle version, notons la possibilité d’écrire des annotations dans les articles mémorisés, de filtrer les contenus selon divers critères (temps de lecture, nom de domaine, date de création, statut…), d’assigner des mots-clés aux entrées, de modifier le titre des articles, le support des flux RSS ou encore le support de plusieurs langues dont le français.

\n

D’autres options sont également à signaler, comme l’aperçu d’un article mémorisé (si l’option est disponible), un guide de démarrage rapide pour les débutants, un outil d’export dans divers formats (PDF, JSON, EPUB, MOBI, XML, CSV et TXT) et, surtout, la possibilité de migrer vers Wallabag depuis Pocket, afin de convaincre les usagers de se lancer.

\n \n \n

Articles liés

\n
\n
\n", "created_at": "2016-04-05T09:07:54+0000", "domain_name": "www.numerama.com", "id": 1, "is_archived": 0, "is_starred": 0, "language": "fr-FR", "mimetype": "text/html", "preview_picture": "http://www.numerama.com/content/uploads/2016/04/post-it.jpg", "reading_time": 2, "tags": [], "title": "Le Pocket libre Wallabag fait le plein de fonctionnalités - Tech - Numerama", "updated_at": "2016-04-05T09:07:54+0000", "url": "http://www.numerama.com/tech/160115-le-pocket-libre-wallabag-fait-le-plein-de-fonctionnalites.html", "user_email": "", "user_id": 1, "user_name": "wallabag" } Now, if you execute the previous command (see **Get existing entries**), you'll have data. cURL example: :: curl "https://localhost:8000/api/entries.html?access_token=ZGJmNTA2MDdmYTdmNWFiZjcxOWY3MWYyYzkyZDdlNWIzOTU4NWY3NTU1MDFjOTdhMTk2MGI3YjY1ZmI2NzM5MA&url=http://www.numerama.com/tech/160115-le-pocket-libre-wallabag-fait-le-plein-de-fonctionnalites.html" Deleting an entry ----------------- Documentation for this method: http://localhost:8000/api/doc#delete--api-entries-{entry}.{_format} :: http DELETE http://localhost:8000/api/entries/1.json \ "Authorization:Bearer ZGJmNTA2MDdmYTdmNWFiZjcxOWY3MWYyYzkyZDdlNWIzOTU4NWY3NTU1MDFjOTdhMTk2MGI3YjY1ZmI2NzM5MA" returns :: HTTP/1.1 200 OK 0: application/json Cache-Control: no-cache Connection: close Content-Type: application/json Date: Tue, 05 Apr 2016 09:19:07 GMT Host: localhost:8000 Set-Cookie: PHPSESSID=jopgnfvmuc9a62b27sqm6iulr6; path=/; HttpOnly X-Debug-Token: 887cef X-Debug-Token-Link: /_profiler/887cef X-Powered-By: PHP/7.0.4 { "_links": { "self": { "href": "/api/entries/" } }, "annotations": [], "content": "

Fonctionnant sur le même principe que Pocket, Instapaper ou Readability, le logiciel Wallabag permet de mémoriser des articles pour les lire plus tard. Sa nouvelle version apporte une multitude de nouvelles fonctionnalités.

Si vous utilisez Firefox comme navigateur web, vous avez peut-être constaté l’arrivée d’une fonctionnalité intitulée Pocket. Disponible autrefois sous la forme d’un module complémentaire, et sous un autre nom (Read it Later), elle est depuis le mois de juin 2015 directement incluse au sein de Firefox.

\n

Concrètement, Pocket sert à garder en mémoire des contenus que vous croisez au fil de la navigation, comme des articles de presse ou des vidéos, afin de pouvoir les consulter plus tard. Pocket fonctionne un peu comme un système de favoris, mais en bien plus élaboré grâce à ses options supplémentaires.

\n

Mais Pocket fait polémique, car il s’agit d’un projet propriétaire qui est intégré dans un logiciel libre. C’est pour cette raison que des utilisateurs ont choisi de se tourner vers d’autres solutions, comme Wallabag, qui est l’équivalent libre de Pocket et d’autres systèmes du même genre, comme Instapaper et Readability.

\n

Et justement, Wallabag évolue. C’est ce dimanche que la version 2.0.0 du logiciel a été publiée par l’équipe en  charge de son développement et celle-ci contient de nombreux changements par rapport aux moutures précédentes (la documentation est traduite en français), lui permettant d’apparaître comme une alternative à Pocket, Instapaper et Readability.

\n

\"homepage\"

\n

Parmi les principaux changements que l’on peut retenir avec cette nouvelle version, notons la possibilité d’écrire des annotations dans les articles mémorisés, de filtrer les contenus selon divers critères (temps de lecture, nom de domaine, date de création, statut…), d’assigner des mots-clés aux entrées, de modifier le titre des articles, le support des flux RSS ou encore le support de plusieurs langues dont le français.

\n

D’autres options sont également à signaler, comme l’aperçu d’un article mémorisé (si l’option est disponible), un guide de démarrage rapide pour les débutants, un outil d’export dans divers formats (PDF, JSON, EPUB, MOBI, XML, CSV et TXT) et, surtout, la possibilité de migrer vers Wallabag depuis Pocket, afin de convaincre les usagers de se lancer.

\n \n \n

Articles liés

\n
\n
\n", "created_at": "2016-04-05T09:07:54+0000", "domain_name": "www.numerama.com", "is_archived": 0, "is_starred": 0, "language": "fr-FR", "mimetype": "text/html", "preview_picture": "http://www.numerama.com/content/uploads/2016/04/post-it.jpg", "reading_time": 2, "tags": [], "title": "Le Pocket libre Wallabag fait le plein de fonctionnalités - Tech - Numerama", "updated_at": "2016-04-05T09:07:54+0000", "url": "http://www.numerama.com/tech/160115-le-pocket-libre-wallabag-fait-le-plein-de-fonctionnalites.html", "user_email": "", "user_id": 1, "user_name": "wallabag" } And if you want to list the existing entries (see **Get existing entries**), the array is empty. cURL example: :: curl --request DELETE "https://localhost:8000/api/entries/1.html?access_token=ZGJmNTA2MDdmYTdmNWFiZjcxOWY3MWYyYzkyZDdlNWIzOTU4NWY3NTU1MDFjOTdhMTk2MGI3YjY1ZmI2NzM5MA" Other methods ------------- We won't write samples for each API method. Have a look on the listing here: http://localhost:8000/api/doc to know each method. Third party resources --------------- Some applications or libraries use our API. Here is a non-exhaustive list of them: - `Java wrapper for the wallabag API `_ by Strubbl. - `.NET library for the wallabag v2 API `_ by Julian Oster. - `Python API for wallabag `_ by FoxMaSk, for his project `Trigger Happy `_. - `A plugin `_ designed for `Tiny Tiny RSS `_ that makes use of the wallabag v2 API. By Josh Panter.