Skip to content
Wallabag api client
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.
.gitignore some organizing, wip beginnings cli client Nov 29, 2018
Cargo.toml convert api to async/await Oct 22, 2019
LICENSE-MIT dual license under MIT and Apache Dec 13, 2018

Wallabag client API

wallabag-api wallabag-api

Provides types and functions for interacting with a Wallabag server API.


See the documentation for usage information.

supported API endpoints:

All API endpoints are implemented except for the /api/*/list{,s}. I don't plan on implementing support for those unless there is a good reason to.

  • DELETE /api/annotations/{annotation}.{_format} Removes an annotation.
  • PUT /api/annotations/{annotation}.{_format} Updates an annotation.
  • GET /api/annotations/{entry}.{_format} Retrieve annotations for an entry.
  • POST /api/annotations/{entry}.{_format} Creates a new annotation.
  • GET /api/entries.{_format} Retrieve all entries. It could be filtered by many options.
  • POST /api/entries.{_format} Create an entry.
  • GET /api/entries/exists.{_format} Check if an entry exist by url.
  • DELETE /api/entries/list.{_format} Handles an entries list and delete URL.
  • POST /api/entries/lists.{_format} Handles an entries list and create URL.
  • DELETE /api/entries/tags/list.{_format} Handles an entries list delete tags from them.
  • POST /api/entries/tags/lists.{_format} Handles an entries list and add tags to them.
  • DELETE /api/entries/{entry}.{_format} Delete permanently an entry.
  • GET /api/entries/{entry}.{_format} Retrieve a single entry.
  • PATCH /api/entries/{entry}.{_format} Change several properties of an entry.
  • GET /api/entries/{entry}/export.{_format} Retrieve a single entry as a predefined format.
  • PATCH /api/entries/{entry}/reload.{_format} Reload an entry.
  • GET /api/entries/{entry}/tags.{_format} Retrieve all tags for an entry.
  • POST /api/entries/{entry}/tags.{_format} Add one or more tags to an entry.
  • DELETE /api/entries/{entry}/tags/{tag}.{_format} Permanently remove one tag for an entry.
  • DELETE /api/tag/label.{_format} Permanently remove one tag from every entry by passing the Tag label.
  • GET /api/tags.{_format} Retrieve all tags.
  • DELETE /api/tags/label.{_format} Permanently remove some tags from every entry.
  • DELETE /api/tags/{tag}.{_format} Permanently remove one tag from every entry by passing the Tag ID.
  • GET /api/user.{_format} Retrieve current logged in user informations.
  • PUT /api/user.{_format} Register an user and create a client.
  • GET /api/version.{_format} Retrieve version number.


A few small examples are provided. To use these, the following environment variables must be set (for authentication). For example:

export WALLABAG_CLIENT_ID="client_id"
export WALLABAG_CLIENT_SECRET="client_secret"
export WALLABAG_USERNAME="username"
export WALLABAG_PASSWORD="password"
export WALLABAG_URL="" # must not end with trailing slash

The examples include:

  • check_exists: check if there is an entry corresponding to the url provided.
  • example_sandbox: a bunch of (mostly) commented out small examples, used for manual testing... have fun experimenting!
  • get_entries: simply retrieve and debug print all entries. See the source code for filtering options.
  • save_url: save a url to the server, printing the created entry on success.


Licensed under either of

at your option.


Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

You can’t perform that action at this time.