{"id":26414112,"url":"https://github.com/woocommerce/woocommerce-rest-api-js-lib","last_synced_at":"2025-05-15T18:03:37.782Z","repository":{"id":37791042,"uuid":"198685925","full_name":"woocommerce/woocommerce-rest-api-js-lib","owner":"woocommerce","description":"New JavaScript library for WooCommerce REST API","archived":false,"fork":false,"pushed_at":"2025-05-06T16:54:52.000Z","size":71,"stargazers_count":292,"open_issues_count":76,"forks_count":78,"subscribers_count":93,"default_branch":"master","last_synced_at":"2025-05-15T18:03:06.867Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://www.npmjs.com/package/@woocommerce/woocommerce-rest-api","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/woocommerce.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2019-07-24T18:02:58.000Z","updated_at":"2025-05-03T13:13:38.000Z","dependencies_parsed_at":"2023-01-20T22:19:12.572Z","dependency_job_id":"c8e08fef-5a55-49fe-9ef3-eb46870d867a","html_url":"https://github.com/woocommerce/woocommerce-rest-api-js-lib","commit_stats":{"total_commits":64,"total_committers":5,"mean_commits":12.8,"dds":0.5,"last_synced_commit":"f5c05d29c2bff59deae9b78430ea8c85f26ec2da"},"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/woocommerce%2Fwoocommerce-rest-api-js-lib","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/woocommerce%2Fwoocommerce-rest-api-js-lib/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/woocommerce%2Fwoocommerce-rest-api-js-lib/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/woocommerce%2Fwoocommerce-rest-api-js-lib/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/woocommerce","download_url":"https://codeload.github.com/woocommerce/woocommerce-rest-api-js-lib/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254394719,"owners_count":22063984,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-03-17T23:57:54.471Z","updated_at":"2025-05-15T18:03:37.737Z","avatar_url":"https://github.com/woocommerce.png","language":"JavaScript","funding_links":[],"categories":["WooCommerce \u0026 WordPress"],"sub_categories":["APIs \u0026 SDKs"],"readme":"# WooCommerce REST API - JavaScript Library\n\nNew JavaScript library for WooCommerce REST API, supports CommonJS (CJS) and Embedded System Module (ESM).\n\nRequests are made with [Axios library](https://github.com/axios/axios) with [support to promises](https://github.com/axios/axios#promises).\n\n[![build status](https://secure.travis-ci.org/woocommerce/woocommerce-rest-api-js-lib.svg)](http://travis-ci.org/woocommerce/woocommerce-rest-api-js-lib)\n[![dependency status](https://david-dm.org/woocommerce/woocommerce-rest-api-js-lib.svg)](https://david-dm.org/woocommerce/woocommerce-rest-api-js-lib)\n[![npm version](https://img.shields.io/npm/v/@woocommerce/woocommerce-rest-api.svg)](https://www.npmjs.com/package/@woocommerce/woocommerce-rest-api)\n\n## Installation\n\n```\nnpm install --save @woocommerce/woocommerce-rest-api\n```\n\n## Getting started\n\nGenerate API credentials (Consumer Key \u0026 Consumer Secret) following this instructions \u003chttp://docs.woocommerce.com/document/woocommerce-rest-api/\u003e\n.\n\nCheck out the WooCommerce API endpoints and data that can be manipulated in \u003chttp://woocommerce.github.io/woocommerce-rest-api-docs/\u003e.\n\n## Setup\n\n### ESM example:\n\n```js\nimport WooCommerceRestApi from \"@woocommerce/woocommerce-rest-api\";\n\nconst api = new WooCommerceRestApi({\n  url: \"http://example.com\",\n  consumerKey: \"ck_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\",\n  consumerSecret: \"cs_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\",\n  version: \"wc/v3\"\n});\n```\n\n### CJS example:\n\n```js\nconst WooCommerceRestApi = require(\"@woocommerce/woocommerce-rest-api\").default;\n\nconst api = new WooCommerceRestApi({\n  url: \"http://example.com\",\n  consumerKey: \"ck_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\",\n  consumerSecret: \"cs_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\",\n  version: \"wc/v3\"\n});\n```\n\n### Options\n\n| Option            | Type      | Required | Description                                                                                                         |\n|-------------------|-----------|----------|---------------------------------------------------------------------------------------------------------------------|\n| `url`             | `String`  | yes      | Your Store URL, example: http://woo.dev/                                                                            |\n| `consumerKey`     | `String`  | yes      | Your API consumer key                                                                                               |\n| `consumerSecret`  | `String`  | yes      | Your API consumer secret                                                                                            |\n| `wpAPIPrefix`     | `String`  | no       | Custom WP REST API URL prefix, used to support custom prefixes created with the `rest_url_prefix` filter            |\n| `version`         | `String`  | no       | API version, default is `v3`                                                                                        |\n| `encoding`        | `String`  | no       | Encoding, default is 'utf-8'                                                                                        |\n| `queryStringAuth` | `Bool`    | no       | When `true` and using under HTTPS force Basic Authentication as query string, default is `false`                    |\n| `port`            | `string`  | no       | Provide support for URLs with ports, eg: `8080`                                                                     |\n| `timeout`         | `Integer` | no       | Define the request timeout                                                                                          |\n| `axiosConfig`     | `Object`  | no       | Define the custom [Axios config](https://github.com/axios/axios#request-config), also override this library options |\n\n## Methods\n\n### GET\n\n- `.get(endpoint)`\n- `.get(endpoint, params)`\n\n| Params     | Type     | Description                                                   |\n|------------|----------|---------------------------------------------------------------|\n| `endpoint` | `String` | WooCommerce API endpoint, example: `customers` or `orders/12` |\n| `params`   | `Object` | Query strings params, example: `{ per_page: 20 }`             |\n\n### POST\n\n- `.post(endpoint, data)`\n- `.post(endpoint, data, params)`\n\n| Params     | Type     | Description                                                 |\n|------------|----------|-------------------------------------------------------------|\n| `endpoint` | `String` | WooCommerce API endpoint, example: `customers` or `orders`  |\n| `data`     | `Object` | JS object to be converted into JSON and sent in the request |\n| `params`   | `Object` | Query strings params                                        |\n\n### PUT\n\n- `.put(endpoint, data)`\n- `.put(endpoint, data, params)`\n\n| Params     | Type     | Description                                                       |\n|------------|----------|-------------------------------------------------------------------|\n| `endpoint` | `String` | WooCommerce API endpoint, example: `customers/1` or `orders/1234` |\n| `data`     | `Object` | JS object to be converted into JSON and sent in the request       |\n| `params`   | `Object` | Query strings params                                              |\n\n### DELETE\n\n- `.delete(endpoint)`\n- `.delete(endpoint, params)`\n\n| Params     | Type     | Description                                                     |\n|------------|----------|-----------------------------------------------------------------|\n| `endpoint` | `String` | WooCommerce API endpoint, example: `customers/2` or `orders/12` |\n| `params`   | `Object` | Query strings params, example: `{ force: true }`                |\n\n### OPTIONS\n\n- `.options(endpoint)`\n- `.options(endpoint, params)`\n\n| Params     | Type     | Description                                                     |\n|------------|----------|-----------------------------------------------------------------|\n| `endpoint` | `String` | WooCommerce API endpoint, example: `customers/2` or `orders/12` |\n| `params`   | `Object` | Query strings params                                            |\n\n## Example of use\n\n```js\n// import WooCommerceRestApi from \"@woocommerce/woocommerce-rest-api\";\nconst WooCommerceRestApi = require(\"@woocommerce/woocommerce-rest-api\").default;\n\nconst api = new WooCommerceRestApi({\n  url: \"http://example.com\",\n  consumerKey: \"ck_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\",\n  consumerSecret: \"cs_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\",\n  version: \"wc/v3\"\n});\n\n// List products\napi.get(\"products\", {\n  per_page: 20, // 20 products per page\n})\n  .then((response) =\u003e {\n    // Successful request\n    console.log(\"Response Status:\", response.status);\n    console.log(\"Response Headers:\", response.headers);\n    console.log(\"Response Data:\", response.data);\n    console.log(\"Total of pages:\", response.headers['x-wp-totalpages']);\n    console.log(\"Total of items:\", response.headers['x-wp-total']);\n  })\n  .catch((error) =\u003e {\n    // Invalid request, for 4xx and 5xx statuses\n    console.log(\"Response Status:\", error.response.status);\n    console.log(\"Response Headers:\", error.response.headers);\n    console.log(\"Response Data:\", error.response.data);\n  })\n  .finally(() =\u003e {\n    // Always executed.\n  });\n\n// Create a product\napi.post(\"products\", {\n  name: \"Premium Quality\", // See more in https://woocommerce.github.io/woocommerce-rest-api-docs/#product-properties\n  type: \"simple\",\n  regular_price: \"21.99\",\n})\n  .then((response) =\u003e {\n    // Successful request\n    console.log(\"Response Status:\", response.status);\n    console.log(\"Response Headers:\", response.headers);\n    console.log(\"Response Data:\", response.data);\n  })\n  .catch((error) =\u003e {\n    // Invalid request, for 4xx and 5xx statuses\n    console.log(\"Response Status:\", error.response.status);\n    console.log(\"Response Headers:\", error.response.headers);\n    console.log(\"Response Data:\", error.response.data);\n  })\n  .finally(() =\u003e {\n    // Always executed.\n  });\n\n// Edit a product\napi.put(\"products/1\", {\n  sale_price: \"11.99\", // See more in https://woocommerce.github.io/woocommerce-rest-api-docs/#product-properties\n})\n  .then((response) =\u003e {\n    // Successful request\n    console.log(\"Response Status:\", response.status);\n    console.log(\"Response Headers:\", response.headers);\n    console.log(\"Response Data:\", response.data);\n  })\n  .catch((error) =\u003e {\n    // Invalid request, for 4xx and 5xx statuses\n    console.log(\"Response Status:\", error.response.status);\n    console.log(\"Response Headers:\", error.response.headers);\n    console.log(\"Response Data:\", error.response.data);\n  })\n  .finally(() =\u003e {\n    // Always executed.\n  });\n\n// Delete a product\napi.delete(\"products/1\", {\n  force: true, // Forces to delete instead of move to the Trash\n})\n  .then((response) =\u003e {\n    // Successful request\n    console.log(\"Response Status:\", response.status);\n    console.log(\"Response Headers:\", response.headers);\n    console.log(\"Response Data:\", response.data);\n  })\n  .catch((error) =\u003e {\n    // Invalid request, for 4xx and 5xx statuses\n    console.log(\"Response Status:\", error.response.status);\n    console.log(\"Response Headers:\", error.response.headers);\n    console.log(\"Response Data:\", error.response.data);\n  })\n  .finally(() =\u003e {\n    // Always executed.\n  });\n```\n\n## Changelog\n\n[See changelog for details](https://github.com/woocommerce/woocommerce-rest-api-js-lib/blob/master/CHANGELOG.md)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwoocommerce%2Fwoocommerce-rest-api-js-lib","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwoocommerce%2Fwoocommerce-rest-api-js-lib","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwoocommerce%2Fwoocommerce-rest-api-js-lib/lists"}