Skip to main content

Library for verifying Yubikey One Time Passwords (OTPs)

Project description

Yubico Python Client

Python class for verifying Yubico One Time Passwords (OTPs) based on the validation protocol version 2.0.

For more information and usage examples, please see the. documentation.


Documentation is available at


$ pip install yubico-client

Note: Package has been recently renamed from yubico to yubico-client and the main module has been renamed from yubico to yubico_client. This was done to avoid naming conflicts and make creation of distribution specific packages easier.

Supported Python Versions

  • Python 2.7
  • Python 3.4
  • Python 3.5
  • Python 3.6
  • Python 3.7
  • PyPy 2
  • PyPy 3

Running Tests

To run the tests use the tox command. This will automatically run the tests on all the supported Python versions.

$ tox


Yubico Client is distributed under the 3-Clause BSD License.


1.11.0 - 2019-07-06

  • Drop support for Python 2.6. #28
  • Test the code and verify it works with the following Python versions: * Python 3.3 * Python 3.4 * Python 3.5 * Python 3.6 * Python 3.7 * PyPy 2 * PyPy 3 #28

1.10.0 - 2015-10-02

  • Fix compatibility issue with Python versions >= 3.0 <= 3.3 #22

  • Pin requests dependency to the latest version (2.7) #25 #27

    Contribution by Wouter van Bommel, Vianney Carel.

  • Make sure the query parameters are unquoted when parsing them from the response. #23

    Contribution by Tamás Gulácsi.

1.9.1 - 2014-02-05

  • Fix Python 3 compatibility issue. #21

1.9.0 - 2014-01-16

  • To discourage bad practices, remove use_https argument from the Yubico class constructor all together. Also update DEFAULT_API_URLS variable to contain full URLs with a scheme (e.g.

    If a user wants to use a custom non-https URL or URLs, they can still do that by passing api_urls argument with custom non-https URLs to the constructor.

  • Replace CA_CERTS_BUNDLE_PATH module level variable with a ca_certs_bundle_path argument which can be passed to the Yubico class constructor.

  • Update requests dependency from 1.2 to 2.2.

1.8.0 - 2013-11-09

  • Modify verify_multi method to throw if otp_list argument contains less than two items

  • Modify max_time_window argument in the verify_multi method to be in seconds (#19)

  • Modify verify_multi method to throw if delta between the first and last OTP timestamp is smaller than zero

  • Allow user to pass api_urls argument to the Yubico class constructor. This argument can contain a list of API urls which are used to validate the token.

    Contributed by Dain Nilsson

  • Depend on newer version (1.2.3) of the requests library.

  • Update code and tests so they also work under Python 3.3

1.7.0 - 2013-04-06

  • Change PyPi package name from yubico to yubico-client.

    This was done to prevent naming collisions and make creation of distribution specific packages (e.g. debian packages) easier.

1.6.2 - 2013-04-02

  • If there are multiple interpretations for a given OTP, first try to find the one which matches the input OTP. If the one is found, use the input OTP, otherwise use random interpretation. -

    Reported by Klas Lindfors

1.6.1 - 2013-03-19

1.6.0 - 2013-01-24

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for yubico-client, version 1.11.0
Filename, size File type Python version Upload date Hashes
Filename, size yubico_client-1.11.0-py2.py3-none-any.whl (16.7 kB) File type Wheel Python version py2.py3 Upload date Hashes View hashes
Filename, size yubico-client-1.11.0.tar.gz (20.5 kB) File type Source Python version None Upload date Hashes View hashes

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN SignalFx SignalFx Supporter DigiCert DigiCert EV certificate StatusPage StatusPage Status page