The WooCommerce REST API makes it possible to read and write data programmatically. Products, orders, customers, coupons, shipping methods. Everything available as JSON endpoints. It's the foundation for connecting WooCommerce to other systems.
Authentication
Under WooCommerce → Settings → Advanced → REST API: create API keys with Consumer Key and Consumer Secret. Choose permission level: read, write, or read/write. Only grant the permissions actually needed.
Common integrations
ERP systems: sync orders from WooCommerce to Fortnox, Visma, or Dynamics. Warehouse systems: update stock levels from central warehouse to WooCommerce. Marketing: sync customers and orders to CRM or email tools.
Webhooks
Instead of polling the API regularly, configure webhooks. WooCommerce sends an HTTP POST to your URL on specific events: new order, updated order, new customer. Under WooCommerce → Settings → Advanced → Webhooks. Faster and more efficient than polling.
Pagination and rate limiting
The API returns max 100 results per call (default 10). Use per_page and page parameters to iterate. There's no official rate limit, but be careful: thousands of calls per minute strain the server. Cache results locally and sync incrementally.
WooCommerce CLI
WP-CLI with WooCommerce extensions gives you API access directly in the terminal. wp wc product list --user=1 lists products. wp wc order list --status=processing shows orders awaiting processing. Practical for scripted imports and exports.
The API is well-formed and supports most CRUD operations. Documentation at woocommerce.github.io/woocommerce-rest-api-docs is good. Start there.