At a glance
- Availability: Experimental (how to enable).
- Auth: Basic auth.
- Connection: HTTP Basic auth with
WOOCOMMERCE_CONSUMER_KEYas the username andWOOCOMMERCE_CONSUMER_SECRETas the password. - Docs: https://woocommerce.github.io/woocommerce-rest-api-docs/#authentication
Credentials
Set these per environment. See Connect an integration.| Variable | Required | Description |
|---|---|---|
WOOCOMMERCE_CONSUMER_KEY | Yes | WooCommerce REST API consumer key (starts with ck_), used as the HTTP Basic username Docs. |
WOOCOMMERCE_CONSUMER_SECRET | Yes | WooCommerce REST API consumer secret (starts with cs_), used as the HTTP Basic password Docs. |
WOOCOMMERCE_STORE_DOMAIN | Yes | Domain of the WordPress site hosting your WooCommerce store (e.g. shop.example.com); the REST API lives at https://<domain>/wp-json/wc/v3 |
Setup
- Get a WooCommerce store: You need a WordPress site with the WooCommerce plugin active and HTTPS enabled. For testing, spin up a free local site with WordPress Studio or a hosted trial (e.g. WooExpress) and install WooCommerce from Plugins > Add New.
- Open the REST API key screen: In the WordPress admin, go to WooCommerce > Settings > Advanced > REST API and click Add key.
- Generate the key pair: Enter a description, pick the owning user, and choose the permission level: Read for read-only access, or Read/Write if the agent should update orders and create products. Click Generate API key.
- Copy the credentials: Copy the Consumer key (ck_…) into WOOCOMMERCE_CONSUMER_KEY and the Consumer secret (cs_…) into WOOCOMMERCE_CONSUMER_SECRET. The secret is shown only once. Set WOOCOMMERCE_STORE_DOMAIN to your store’s domain, e.g. shop.example.com.
- The REST API is served from your own store domain at https://<store-domain>/wp-json/wc/v3; every tool takes the store domain as the storeDomain parameter.
- Keys generated with Read permission will receive 401 errors on write tools like update_order_status and create_product.
- Credentials are sent via HTTP Basic auth, so the store must be served over HTTPS.
- If your site uses non-pretty permalinks, the wp-json route may be unavailable; enable pretty permalinks under Settings > Permalinks.
Tools
| Tool | Access | Description |
|---|---|---|
| List Orders | Read | List orders in the store with optional status, search, and date filters |
| Get Order | Read | Retrieve full details of a specific order, including line items, totals, and shipping |
| Update Order Status | Write | Update an order’s status (e.g. mark as completed) and optionally add a customer note |
| List Products | Read | List products in the catalog with optional search, status, and SKU filters |
| Create Product | Write | Create a new product in the store catalog |
| Get Product | Read | Retrieve full details of a specific product, including price, stock, and categories |
| Update Product | Write | Update an existing product’s price, stock, status, or descriptions |
| Get Sales Report | Read | Get a sales report with totals for revenue, orders, items, and customers over a period or date range |
| List Customers | Read | List store customers with optional email, role, and search filters |
Example prompts
- Show me the most recent orders in my WooCommerce store and flag any that are still pending or on hold.
- Find an order by its number in my WooCommerce store and mark it as completed.
- Give me an overview of my WooCommerce product catalog, including drafts that are not yet published.