Skip to main content
Donate to the Python Software Foundation or Purchase a PyCharm License to Benefit the PSF! Donate Now

A Python wrapper for the WooCommerce REST API

Project description

A Python wrapper for the WooCommerce REST API. Easily interact with the WooCommerce REST API using this library.


pip install woocommerce

Getting started

Generate API credentials (Consumer Key & Consumer Secret) following this instructions

Check out the WooCommerce API endpoints and data that can be manipulated in


from woocommerce import API

wcapi = API(


Option Type Required Description
url string yes Your Store URL, example:
consumer_key string yes Your API consumer key
consumer_secret string yes Your API consumer secret
version string no API version, default is wc/v3
timeout integer no Connection timeout, default is 5
verify_ssl bool no Verify SSL when connect, use this option as False when need to test with self-signed certificates
query_string_auth bool no Force Basic Authentication as query string when True and using under HTTPS, default is False
oauth_timestamp integer no Custom timestamp for requests made with oAuth1.0a
wp_api bool no Set to False in order to use the legacy WooCommerce API (deprecated)


Params Type Description
endpoint string WooCommerce API endpoint, example: customers or order/12
data dictionary Data that will be converted to JSON
**kwargs dictionary Accepts params, also other Requests arguments


  • .get(endpoint, **kwargs)


  • .post(endpoint, data, **kwargs)


  • .put(endpoint, data), **kwargs


  • .delete(endpoint, **kwargs)


  • .options(endpoint, **kwargs)


All methods will return Response object.

Example of returned data:

>>> r = wcapi.get("products")
>>> r.status_code
>>> r.headers['content-type']
'application/json; charset=UTF-8'
>>> r.encoding
>>> r.text
u'{"products":[{"title":"Flying Ninja","id":70,...' // Json text
>>> r.json()
{u'products': [{u'sold_individually': False,... // Dictionary data


2.1.0 - 2019/01/15

  • Uses WP REST API by default, need to force wp_api as False to in order to use the legacy WooCommerce API.
  • Updated default REST API version to wc/v3.

2.0.0 - 2019/01/15

  • Updated “Requests” library to version 2.20.0.
  • Added support for custom timestamps in oAuth1.0a requests with oauth_timestamp.
  • Allow pass custom arguments to “Requests” library.

1.2.1 - 2016/12/14

  • Fixed WordPress 4.7 compatibility.

1.2.0 - 2016/06/22

  • Added option query_string_auth to allow Basic Auth as query strings.

1.1.1 - 2016/06/03

  • Fixed oAuth signature for WP REST API.

1.1.0 - 2016/05/09

  • Added support for WP REST API.
  • Added method to do HTTP OPTIONS requests.

1.0.5 - 2015/12/07

  • Fixed oAuth filters sorting.

1.0.4 - 2015/09/25

  • Implemented timeout argument for API class.

1.0.3 - 2015/08/07

  • Forced utf-8 encoding on API.__request() to avoid UnicodeDecodeError

1.0.2 - 2015/08/05

  • Fixed handler for query strings

1.0.1 - 2015/07/13

  • Fixed support for Python 2.6

1.0.1 - 2015/07/12

  • Initial version

Project details

Download files

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

Filename, size & hash SHA256 hash help File type Python version Upload date
WooCommerce-2.1.0-py2-none-any.whl (7.2 kB) Copy SHA256 hash SHA256 Wheel py2
WooCommerce-2.1.0.tar.gz (6.0 kB) Copy SHA256 hash SHA256 Source None

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