Get started with REST API

Ecwid REST API grants access to the store data including products, orders, customers, discounts and many more. Everything you can find in the store Control Panel is available through the code with REST API: reading customers data, creating new products, order status updates, etc.

Sign up with Ecwid

To start working with Ecwid API, you need a store on any paid plan. Sign up with Ecwid.

We will provide you with a free test store with API access if you:

  • Work on a customization for one of our clients
  • Want to develop a customization for your working store in a safe environment
  • Develop a public application for our App Market

Email us to get a test store.

Set up an application

API access requires a platform where you can configure permissions and generate tokens. In Ecwid we refer to this platform as an application. A private application that gives you access to your store data through API is referred to as a custom application.

Set up a custom application in your Ecwid Control Panel, it only takes a few seconds: #develop-apps
Application grants you control over API access which is defined by the following settings you'll see on the Details page:

  • Access scopes - list of app permissions for making different requests. For example, read_orders scope is required for the "Get orders" request, update_customers is required for "Update customer", etc. Find the full list of available access scopes below.
  • Access token - authorization key for REST API requests. Access tokens don't expire and contain a list of scopes inside. There are two token types: secret_token and public_token.
    • public_token is used to get publically available data with GET requests: public profile details and enabled products/categories data. It is safe to use on the storefront.
    • secret_token allows making all requests. Do not use it in publically available code to keep store data safe.
  • Endpoint - external URL where Ecwid sends requests for some APIs. For example, webhooks, payment and shipping requests.

Start making requests

Any REST API request needs at least store ID and token for authorization.
You already have the app with access tokens. Copy your access token, then scroll Control Panel page to the bottom and find your store ID in the footer.

To make a simple "Get orders" request, add store ID to the request URL path and a token to the header, then execute it.

Request example:

curl --location 'https://app.ecwid.com/api/v3/STOREID/orders' \
--header 'Authorization: Bearer SECRET_TOKEN'

You'll receive a response with JSON object in the body:

{
  "total": 1,
  "items": [
    {
      "id": "EBJFT",
      "total": 600,
      "email": "[email protected]",
      "discount": 0,
      "items": [ ... ]
    }
  ]
}

Features availability

Ecwid API is available on any paid plan. With API you can access all features active on the current store plan. See: Plans and features

Rate limits

You can make up to 600 requests per minute with one application token which becomes temporarily blocked if you exceed the limit. API responds with error 429 to all requests at that time.

In case a token is no longer valid, the limits are:

  • 20 requests per minute per token
  • 600 requests per IP

Ecwid will permanently block the token and IP pair if you exceed them.

Access scopes

Access scopes define app permissions for making different REST API requests and accessing different APIs like Payment API. One application can have any set of scopes that allows apps to be multifunctional.

In the documentation, all features and endpoints have a block with access scope requirements. Here you can check all access scopes available in Ecwid API. If you want to add new scopes to your custom application, please email us with your application name and a list of required scopes. We'll update your app shortly.

Access scopeNotes
read_store_profileGet store name and general settings, get store admin email, get updated statistics, etc. Requested in all cases even if not specified
update_store_profileSet taxes, update invoice logo, change Starter Site domain, close store for maintenance, etc.
read_store_limitsGet store limits and restrictions, e.g. maximum number of available products.
read_catalogSearch products, get product options/variations etc. Also allows receiving push updates (webhooks) about changes in-store products.
update_catalogUpdate product prices, upload images, and e-goods, modify product attributes, delete products and categories, etc.
create_catalogCreate new products
read_ordersGet sales for a given period, retrieve order details, etc. Also allows receiving push updates (webhooks) about changes in-store orders.
update_ordersChange order totals, switch order status, cancel orders, delete orders, etc. Requires read_orders scope to function
create_ordersPlace a new order in the store
read_customersSearch customers or retrieve some particular customer data
update_customersChange customer profile data, add items to the customer address book, delete customers, etc.
create_customersAdd a new customer to the store's Customers list
read_discount_couponsGet the list of discount coupons or retrieve some particular coupon details
update_discount_couponsChange the coupon expiration date or limit its number of use, update coupon code, delete coupon codes, etc.
create_discount_couponsAdd a new discount coupon
customize_storefrontAttach a custom JS/CSS to the storefront on the fly to modify its look and feel (see Customize appearance)
add_to_cpAdd a new tab to merchant control panel (see Embedding apps)
add_shipping_methodAdd a new shipping method to the store (see Add shipping method)
add_payment_methodAdd a new payment method to the store (see Add payment method)
public_storefrontGet public store details with the public access token
customize_cart_calculationApply custom discounts to orders in real-time (See Add custom discount)
read_invoicesGet the invoices. Allows receiving push updates (webhooks) about creating and deleting store invoices.
chargeCharge through Ecwid billing. Required for the Charge requests via an app.
read_store_statsGet a store's statistic information
read_staffGet information about staff accounts in a store
invite_staffSend and resend staff account invites
delete_staffRevoke sent invitation and delete staff account
read_subscriptionsAllows to get information about subscriptions
update_subscriptionsAllows update the details of subscriptions
read_brandsAllows to search product brands