NAV

Store information

Using the endpoints below you can get and update basic Ecwid store information like store name, merchant’s email, company address, logos and more.

Get store profile

Get basic information about an Ecwid store: settings, store location, email, etc. This request is available with any access token.

Request example

GET /api/v3/4870020/profile?token=123abcd HTTP/1.1
Host: app.ecwid.com
Cache-Control: no-cache

GET https://app.ecwid.com/api/v3/{storeId}/profile?token={token}

NameTypeDescription
storeIdnumberEcwid store ID
tokenstringoAuth token

Response

Response example (JSON)

{
    "generalInfo": {
        "storeId": 4870020,
        "storeUrl": "http://www.example.com",
        "starterSite": {
            "ecwidSubdomain": "mysuperstore",
            "generatedUrl": "http://mysuperstore.ecwid.com/"
        }
    },
    "account": {
        "accountName": "John Smith",
        "accountNickName": "JSmith",
        "accountEmail": "example@example.com"
    },
    "settings": {
        "closed": false,
        "storeName": "My Super Store",
        "invoiceLogoUrl": "https://dpbfm6h358sh7.cloudfront.net/images/4870020/253584290.jpg",
        "emailLogoUrl": "https://dpbfm6h358sh7.cloudfront.net/images/4870020/298177033.jpg",
        "googleRemarketingEnabled": true,
        "googleAnalyticsId": "UA-123456-1",
        "orderCommentsEnabled": false,
        "orderCommentsCaption": "Order comments",
        "orderCommentsRequired": false,
        "hideOutOfStockProductsInStorefront": true
    },
    "mailNotifications": {
        "adminNotificationEmails": [
            "john@example.com",
            "steve@example.com",
        ],
        "customerNotificationFromEmail": "john@example.com"
    },
    "company": {
        "companyName": "My Super Store",
        "email": "example@example.com",
        "street": "W 3d st",
        "city": "New York",
        "countryCode": "US",
        "postalCode": "10001",
        "stateOrProvinceCode": "NY",
        "phone": "234324234"
    },
    "formatsAndUnits": {
        "currency": "USD",
        "currencyPrefix": "$",
        "currencySuffix": "",
        "currencyGroupSeparator": " ",
        "currencyDecimalSeparator": ".",
        "currencyTruncateZeroFractional": false,
        "currencyPrecision": 2,
        "currencyRate": 1,
        "weightUnit": "KILOGRAM",
        "weightGroupSeparator": " ",
        "weightDecimalSeparator": ".",
        "weightTruncateZeroFractional": false,
        "timeFormat": "hh:mm a",
        "dateFormat": "MMM d, yyyy",
        "timezone": "Europe/Moscow",
        "dimensionsUnit": "CM",
        "orderNumberPrefix": "00001",
        "orderNumberSuffix": "5000"
    },
    "languages": {
        "enabledLanguages": [
            "en",
            "es",
            "pt"
        ],
        "facebookPreferredLocale": "en_US"
    },
    "shipping": {
        "handlingFee": {
            "name": "Handling Fee",
            "value": 5,
            "description": "Silk paper wrapping"
        }
    },
    "zones": [
        {
            "id": "1",
            "name": "United States",
            "countryCodes": [
                "US",
                "UM",
                "VI"
            ]
        },
        {
            "id": "2",
            "name": "US & Canada",
            "countryCodes": [
                "CA",
                "US",
                "UM",
                "VI"
            ]
        },
        {
            "id": "3",
            "name": "Europe (EC)",
            "countryCodes": [
                "AT",
                "BE",
                "BG",
                "CY",
                "CZ",
                "DK",
                "EE",
                "FI",
                "FR",
                "DE",
                "GR",
                "HU",
                "IE",
                "IT",
                "LV",
                "LT",
                "LU",
                "MT",
                "NL",
                "PL",
                "PT",
                "RO",
                "SK",
                "SI",
                "ES",
                "SE",
                "GB"
            ]
        },
    ],
    "taxSettings": {
        "automaticTaxEnabled": true,
        "taxes": [
            {
                "id": 1485869949,
                "name": "Tax X",
                "enabled": true,
                "includeInPrice": false,
                "useShippingAddress": true,
                "taxShipping": false,
                "appliedByDefault": true,
                "defaultTax": 7,
                "rules": [
                    {
                        "zoneId": "3",
                        "tax": 8
                    },
                    {
                        "zoneId": "2",
                        "tax": 5
                    }
                ]
            }
        ]
    },
    "businessRegistrationID": {
        "name": "VAT Reg No",
        "value": "GB999 9999 73"
    }
}

Public token request example

GET /api/v3/4870020/profile?token=public_123abcd HTTP/1.1
Host: app.ecwid.com
Cache-Control: no-cache
{
  "generalInfo": {
    "storeId": 5035009,
    "storeUrl": "https://example.com",
    "starterSite": {
      "ecwidSubdomain": "demo",
      "generatedUrl": "https://demo.ecwid.com"
    }
  },
  "settings": {
    "closed": false,
    "storeName": "Awesome store",
    "googleAnalyticsId": ""
  },
  "mailNotifications": {
    "customerNotificationFromEmail": "info@example.com"
  },
  "company": {
    "companyName": "Cool slippers for dogs",
    "email": "info@example.com",
    "street": "W 3d st",
    "city": "New York",
    "countryCode": "US",
    "postalCode": "10002",
    "stateOrProvinceCode": "NY",
    "phone": ""
  },
  "formatsAndUnits": {
    "currency": "USD",
    "currencyPrefix": "$",
    "currencySuffix": "",
    "currencyGroupSeparator": " ",
    "currencyDecimalSeparator": ".",
    "currencyPrecision": 2,
    "currencyTruncateZeroFractional": false,
    "currencyRate": 1,
    "weightUnit": "KILOGRAM",
    "weightGroupSeparator": " ",
    "weightDecimalSeparator": ".",
    "weightTruncateZeroFractional": false,
    "timeFormat": "hh:mm a",
    "dateFormat": "EEE, MMM d, ''yy",
    "timezone": "Europe/Samara",
    "dimensionsUnit": "CM"
  },
  "languages": {
    "enabledLanguages": [
      "en",
      "ar",
      "be",
      "bg",
      "ca",
      "cs",
      "cy",
      "da",
      "de",
      "el",
      "es",
      "es_419",
      "et",
      "eu",
      "fi",
      "fa",
      "fr",
      "id",
      "is",
      "it",
      "ja",
      "he",
      "hr",
      "hu",
      "hy",
      "ka",
      "ko",
      "lt",
      "lv",
      "mk",
      "mr",
      "ms",
      "nl",
      "no",
      "pl",
      "pt",
      "pt_BR",
      "ro",
      "ru",
      "sk",
      "sl",
      "sr",
      "sv",
      "sq",
      "th",
      "tr",
      "uk",
      "vi",
      "zh",
      "zh_TW"
    ],
    "facebookPreferredLocale": "en_US"
  }
}

A JSON object of type ‘Profile’ with the following fields:

Profile

FieldTypeDescription
generalInfo<GeneralInfo>Store basic data
account<Account>Store owner’s account data
settings<Settings>Store general settings
mailNotifications<MailNotifications>Mail notifications settings
company<Company>Company info
formatsAndUnits<FormatsAndUnits>Store formats/untis settings
languages<Languages>Store language settings
shipping<Shipping>Store shipping settings (only handling fee is included at the moment)
taxSettings<TaxSettings>Store taxes settings
zonesArray<Zone>Store destination zones
businessRegistrationID<BusinessRegistrationID>Company registration ID, e.g. VAT reg number or company ID, which is set under Settings / Invoice in Control panel.

GeneralInfo

FieldTypeDescription
storeIdnumberEcwid Store ID
storeUrlstringStorefront URL
starterSite<StarterSiteInfo>Details of Ecwid starter site for account. Learn more about Starter site

Account

FieldTypeDescription
accountNamestringFull store owner name
accountNickNamestringStore owner nickname on the Ecwid forums
accountEmailstringStore owner email
availableFeaturesArray<string>A list of the premium features available on the store’s pricing plan

Settings

FieldTypeDescription
closedbooleantrue if the store is closed for maintenance, false otherwise
storeNamestringThe store name displayed in Starter Site
invoiceLogoUrlstringCompany logo displayed on the invoice
emailLogoUrlstringCompany logo displayed in the store email notifications
googleRemarketingEnabledbooleantrue if Remarketing with Google Analytics is enabled, false otherwise
googleAnalyticsIdstringGoogle Analytics ID connected to a store
orderCommentsEnabledbooleantrue if order comments feature is enabled, false otherwise
orderCommentsCaptionstringCaption for order comments field in storefront
orderCommentsRequiredbooleantrue if order comments are required to be filled, false otherwise
hideOutOfStockProductsInStorefrontbooleantrue if out of stock products are hidden in storefront, false otherwise. This setting is located in Ecwid Control Panel > Settings > General > Cart

MailNotifications

FieldTypeDescription
adminNotificationEmailsArray<string>Email addresses, which the store admin notifications are sent to
customerNotificationFromEmailstringThe email address used as the 'reply-to’ field in the notifications to customers

Company

System Settings → General → Store Profile

FieldTypeDescription
companyNamestringThe company name displayed on the invoice
emailstringCompany (store administrator) email
streetstringCompany address. 1 or 2 lines separated by a new line character
citystringCompany city
countryCodestringA two-letter ISO code of the country
postalCodestringPostal code or ZIP code
stateOrProvinceCodestringState code (e.g. NY) or a region name
phonestringCompany phone number

FormatsAndUnits

System settings → General → Formats & Units.

FieldTypeDescription
currencystring3-letters code of the store currency (ISO 4217). Examples: USD, CAD
currencyPrefixstringCurrency prefix (e.g. $)
currencySuffixstringCurrency suffix
currencyPrecisionnumberNumbers of digits after decimal point in the store prices. E.g. 2 ($2.99) or 0 (¥500).
currencyGroupSeparatorstringPrice thousands separator. Supported values: space , dot ., comma , or empty value “.
currencyDecimalSeparatorstringPrice decimal separator. Possible values: . or ,
currencyTruncateZeroFractionalbooleanHide zero fractional part of the prices in storefront. true or false .
currencyRatenumberCurrency rate in U.S. dollars, as set in the merchant control panel
weightUnitstringWeight unit. Supported values: CARAT, GRAM, OUNCE, POUND, KILOGRAM
weightPrecisionnumberNumbers of digits after decimal point in weights displayed in the store
weightGroupSeparatorstringWeight thousands separator. Supported values: space , dot ., comma , or empty value ”
weightDecimalSeparatorstringWeight decimal separator. Possible values: . or ,
weightTruncateZeroFractionalbooleanHide zero fractional part of the weight values in storefront. true or false .
dateFormatstringDate format, e.g. MMM d, yyyy
timeFormatstringTime format, e.g. hh:mm a
timezonestringStore timezone, e.g. Europe/Moscow
dimensionsUnitstringProduct dimensions units
orderNumberPrefixstringOrder number prefix in a store
orderNumberSuffixstringOrder number suffix in a store

Languages

System Settings → General → Languages

FieldTypeDescription
enabledLanguagesArray<string>A list of enabled languages in the storefront. First language code is the default language for the store.
facebookPreferredLocalestringLanguage automatically chosen be default in Facebook storefront (if any)

Shipping

System Settings → Shipping

FieldTypeDescription
handlingFee<HandlingFee>Handling fee settings

HandlingFee

System Settings → Shipping → Handling Fee

FieldTypeDescription
namestringHandling fee name set by store admin. E.g. Wrapping
valuenumberHndling fee value
descriptionstringHandling fee description for customer

TaxSettings

System Settings → Taxes

FieldTypeDescription
automaticTaxEnabledbooleantrue if taxes are calculated automatically, else otherwise
taxesArray<Taxes>Manual tax settings for a store

Taxes

FieldTypeDescription
idnumberUnique internal ID of the tax
namestringDisplayed tax name
enabledbooleanWhether tax is enabled true / false
includeInPricebooleantrue if the tax rate is included in product prices. More details: Taxes in Ecwid
useShippingAddressbooleantrue if the tax is calculated based on shipping address, false if billing address is used
taxShippingbooleantrue is the tax applies to subtotal+shipping cost . false if the tax is applied to subtotal only
appliedByDefaultbooleantrue if the tax is applied to all products. false is the tax is only applied to thos product that have this tax enabled
defaultTaxnumberTax value, in %, when none of the destination zones match
rulesArray<TaxRule>Tax rates

TaxRule

FieldTypeDescription
zoneIdstringDestination zone ID
taxnumberTax rate for this zone in %

Zone

System Settings → Zones

FieldTypeDescription
idstringUnique internal zone ID
namestringZone displayed name
countryCodesArray<string>Country codes this zone includes .
stateOrProvinceCodesArray<string>State or province codes the zone includes
postCodesArray<string>Postcode (or zipcode) templates this zone includes. More details: Destination zones in Ecwid

BusinessRegistrationID

FieldTypeDescription
namestringID name, e.g. Vat ID, P.IVA, ABN
valuestringID value

StarterSiteInfo

System Settings → General → Starter site

FieldTypeDescription
ecwidSubdomainstringStore subdomain on ecwid.com domain, e.g. mysuperstore.ecwid.com
customDomainstringCustom Starter site domain, e.g. www.mysuperstore.com
generatedUrlstringStarter Site generated URL, e.g. http://mysuperstore.ecwid.com/
storeLogoUrlstringStarter Site logo URL

Errors

Error response example

HTTP/1.1 500 Server Error
Content-Type application/json; charset=utf-8

In case of error, Ecwid responds with an error HTTP status code

HTTP codes

HTTP StatusMeaning
400Request parameters are malformed
402The request is not available on the merchant plan. To use Ecwid API, store must be on a paid plan
415Unsupported content-type: expected application/json or text/json
500Cannot retrieve the coupon info because of an error on the server

Update store profile

Update basic store information in an Ecwid store: settings, store location, email, etc.

Request example – update general info

PUT /api/v3/4870020/profile?token=123abcd HTTP/1.1
Host: app.ecwid.com
Cache-Control: no-cache

{
    generalInfo: {
        storeUrl: "http://www.example.com/store/"
    },
    settings: {
        closed: false,
        storeName: "My Cool Store",
        "googleRemarketingEnabled": false,
        "googleAnalyticsId": "UA-654321-1",
        "hideOutOfStockProductsInStorefront": false
    },
    company: {
      companyName: "My Company, Inc",
      email: "store@example.com",
      street: "144 West D Street",
      city: "Encinitas",
      countryCode: "US",
      postalCode: "92024",
      stateOrProvinceCode: "CA",
      phone: "1(800)5555555"
    }
}

Request example – create destination zones

PUT /api/v3/4870020/profile?token=123abcd HTTP/1.1
Host: app.ecwid.com
Cache-Control: no-cache

{
    "zones": [
        {
            "name": "United States - California",
            "countryCodes": [
                "US"
            ],
            "stateOrProvinceCodes": [
                "US-CA"
            ]      
        }
    ]
}

PUT https://app.ecwid.com/api/v3/{storeId}/profile?token={token}

NameTypeDescription
storeIdnumberEcwid store ID
tokenstringoAuth token

Request body

A JSON object of type 'Profile’ with the following fields:

Profile

FieldTypeDescription
generalInfo<GeneralInfo>Store basic data
account<Account>Store owner’s account data
settings<Settings>Store general settings
mailNotifications<MailNotifications>Mail notifications settings
company<Company>Company info
formatsAndUnits<FormatsAndUnits>Store formats/untis settings
languages<Languages>Store language settings
shipping<Shipping>Store shipping settings (only handling fee is included at the moment)
taxSettings<TaxSettings>Store taxes settings
zonesArray<Zone>Store destination zones
businessRegistrationID<BusinessRegistrationID>Company registration ID, e.g. VAT reg number or company ID, which is set under Settings / Invoice in Control panel.

GeneralInfo

FieldTypeDescription
storeUrlstringStorefront URL. If this field is empty in the store settings and omitted in the request, it will be automatically copied from the current Starter Site URL. When updating, make sure to add protocol to the URL (http:// or https://).
starterSite<StarterSiteInfo>Starter Site settings

Account

FieldTypeDescription
accountNamestringFull store owner name
accountNickNamestringStore owner nickname on the Ecwid forums
accountEmailstringStore owner email

Settings

FieldTypeDescription
closedstringtrue if the store is closed for maintenance, false otherwise
storeNamestringThe store name displayed in Starter Site
googleRemarketingEnabledbooleantrue if Remarketing with Google Analytics is enabled, false otherwise
googleAnalyticsIdstringGoogle Analytics ID connected to a store
orderCommentsEnabledbooleanUse true to enable order comments feature, false otherwise
orderCommentsCaptionstringCaption for order comments field in storefront. If the value is empty, the default 'Order comments’ caption will be used
orderCommentsRequiredbooleanUse true to require order comments to be filled, false otherwise
hideOutOfStockProductsInStorefrontbooleantrue if out of stock products are hidden in storefront, false otherwise. This setting is located in Ecwid Control Panel > Settings > General > Cart

MailNotifications

FieldTypeDescription
adminNotificationEmailsArray<string>Email addresses, which the store admin notifications are sent to
customerNotificationFromEmailstringThe email address used as the 'reply-to’ field in the notifications to customers

Company

System Settings → General → Store Profile

FieldTypeDescription
companyNamestringThe company name displayed on the invoice
emailstringCompany (store administrator) email
streetstringCompany address. 1 or 2 lines separated by a new line character
citystringCompany city
countryCodestringA two-letter ISO code of the country
postalCodestringPostal code or ZIP code
stateOrProvinceCodestringState code (e.g. NY) or a region name
phonestringCompany phone number

FormatsAndUnits

System settings → General → Formats & Units.

FieldTypeDescription
currencystring3-letters code of the store currency (ISO 4217). Examples: USD, CAD
currencyPrefixstringCurrency prefix (e.g. $)
currencySuffixstringCurrency suffix
currencyGroupSeparatorstringPrice thousands separator. Supported values: space , dot ., comma , or empty value “.
currencyDecimalSeparatorstringPrice decimal separator. Possible values: . or ,
currencyTruncateZeroFractionalbooleanHide zero fractional part of the prices in storefront. true or false .
currencyRatenumberCurrency rate in U.S. dollars, as set in the merchant control panel
weightUnitstringWeight unit. Supported values: CARAT, GRAM, OUNCE, POUND, KILOGRAM
weightPrecisionnumberNumbers of digits after decimal point in weights displayed in the store
weightGroupSeparatorstringWeight thousands separator. Supported values: space , dot ., comma , or empty value ”
weightDecimalSeparatorstringWeight decimal separator. Possible values: . or ,
weightTruncateZeroFractionalbooleanHide zero fractional part of the weight values in storefront. true or false .
dateFormatstringDate format, e.g. MMM d, yyyy
timeFormatstringTime format, e.g. hh:mm a
timezonestringStore timezone, e.g. Europe/Moscow
dimensionsUnitstringProduct dimensions units. Possible values: IN,CM,MM,YD
orderNumberPrefixstringOrder number prefix in a store
orderNumberSuffixstringOrder number suffix in a store

Languages

System Settings → General → Languages

FieldTypeDescription
enabledLanguagesArray<string>A list of enabled languages in the storefront. Use first item to set default storefront language

Shipping

System Settings → Shipping

FieldTypeDescription
handlingFee<HandlingFee>Handling fee settings

HandlingFee

System Settings → Shipping → Handling Fee

FieldTypeDescription
namestringHandling fee name set by store admin. E.g. Wrapping
valuenumberHandling fee value. If handling fee is 0 then it’s disabled.
descriptionstringHandling fee description for customer

TaxSettings

System Settings → Taxes

FieldTypeDescription
automaticTaxEnabledbooleantrue if taxes are calculated automatically, else otherwise
taxesArray<Taxes>Manual tax settings for a store

Taxes

FieldTypeDescription
idnumberUnique internal ID of the tax
namestringDisplayed tax name
enabledbooleanWhether tax is enabled true / false
includeInPricebooleantrue if the tax rate is included in product prices. More details: Taxes in Ecwid
useShippingAddressbooleantrue if the tax is calculated based on shipping address, false if billing address is used
taxShippingbooleantrue is the tax applies to subtotal+shipping cost . false if the tax is applied to subtotal only
appliedByDefaultbooleantrue if the tax is applied to all products. false is the tax is only applied to thos product that have this tax enabled
defaultTaxnumberTax value, in %, when none of the destination zones match
rulesArray<TaxRule>Tax rates

TaxRule

FieldTypeDescription
zoneIdstringDestination zone ID
taxnumberTax rate for this zone in %

Zone

System Settings → Zones

FieldTypeDescription
idstringUnique internal zone ID
namestringZone displayed name
countryCodesArray<string>Country codes this zone includes
stateOrProvinceCodesArray<string>State or province codes the zone includes
postCodesArray<string>Postcode (or zipcode) templates this zone includes. More details: Destination zones in Ecwid

BusinessRegistrationID

FieldTypeDescription
namestringID name, e.g. Vat ID, P.IVA, ABN
valuestringID value

StarterSiteInfo

System Settings → General → Starter site

FieldTypeDescription
ecwidSubdomainstringStore subdomain on ecwid.com domain, e.g. mysuperstore.ecwid.com
customDomainstringCustom Starter site domain, e.g. www.mysuperstore.com

Response

Response example (JSON)

{
    "updateCount": 1,
    "success": true
}

A JSON object of type 'UpdateStatus’ with the following fields:

UpdateStatus

FieldTypeDescription
updateCountnumberThe number of updated entities (1 or 0 depending on whether the update was successful)
successbooleantrue if the coupon has been updated, false otherwise

Errors

Error response example

HTTP/1.1 409 Conflict
Content-Type application/json; charset=utf-8

In case of error, Ecwid responds with an error HTTP status code

HTTP codes

HTTP StatusMeaning
400Request parameters are malformed
402Cannot update settings because the limit of number of zones or taxes is reached
409Cannot update profile because such nickname or email is already registered in the system
415Unsupported content-type: expected application/json or text/json
500Cannot retrieve the coupon info because of an error on the server

Upload store logo displayed on Starter Site. The logo itself is to be placed in the request body. Maximum allowed file size is 20Mb.

Request example

POST /api/v3/4870020/profile/logo?token=123456789abcd HTTP/1.1
Host: app.ecwid.com
Content-Type: image/jpeg
Cache-Control: no-cache

binary data

PHP Example

$file = file_get_contents('image.jpg');
$url = 'https://app.ecwid.com/api/v3/1003/profile/logo?token=abcdefg123456';

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_POST,1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $file);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: image/jpeg;'));

$result = curl_exec($ch);
curl_close ($ch);

Python Example

import requests

request_url = "https://app.ecwid.com/api/v3/1003/profile/logo?token=abcdefg123456"

image_file_data = open('image.jpg', 'rb').read()

result = requests.post(request_url,data=image_file_data)

print(result.status_code)

POST https://app.ecwid.com/api/v3/{storeId}/profile/logo?token={token}&externalUrl={externalUrl}

NameTypeDescription
storeIdnumberEcwid store ID
tokenstringoAuth token
externalUrlstringExternal file URL available for public download. If specified, Ecwid will ignore any binary file data sent in a request

When uploading a store logo, the image itself needs to be sent in the body of your request in a form of binary data. The file that you wish to upload needs to be prepared for that format and then sent to Ecwid API endpoint.

Alternatively, you can specify an externalURL to your file as a request parameter and Ecwid will download it from there.

Response

Response example

{
    "id": 240198557
}

A JSON object of type 'UploadStatus’ with the following fields:

UploadStatus

FieldTypeDescription
idnumberInternal image ID

Errors

Error response example

HTTP/1.1 500 Server Error
Content-Type application/json; charset=utf-8

In case of error, Ecwid responds with an error HTTP status code and, optionally, JSON-formatted body containing error description

HTTP codes

HTTP StatusDescription
400Request parameters are malformed
413The image file is too large (Maximum allowed file size is 20Mb)
415Unsupported content-type: expected application/octet-stream
422The uploaded file is not an image
500Uploading of the image file failed or there was an internal server error while processing a file

Error response body (optional)

FieldTypeDescription
errorMessagestringError message

Remove store logo, which is displayed on Starter site

Request example

DELETE /api/v3/4870020/profile/logo?token=123456789abcd HTTP/1.1
Host: app.ecwid.com
Content-Type: application/json

DELETE https://app.ecwid.com/api/v3/{storeId}/profile/logo?token={token}

NameTypeDescription
storeIdnumberEcwid store ID
tokenstringoAuth token

Response

Response example

{
    "deleteCount": 1,
    "success": true
}

A JSON object of type 'DeleteStatus’ with the following fields:

DeleteStatus

FieldTypeDescription
deleteCountnumberThe number of deleted images (1 or 0 depending on whether the request was successful)
successbooleantrue if the image has been deleted, false otherwise

Errors

Error response example

HTTP/1.1 500 Server Error
Content-Type application/json; charset=utf-8

In case of error, Ecwid responds with an error HTTP status code and, optionally, JSON-formatted body containing error description

HTTP codes

HTTP StatusDescription
400Request parameters are malformed
500Uploading of the image file failed or there was an internal server error while processing a file

Error response body (optional)

FieldTypeDescription
errorMessagestringError message

Upload store logo displayed on order invoices. The logo itself is to be placed in the request body. Maximum allowed file size is 20Mb.

Request example

POST /api/v3/4870020/profile/invoicelogo?token=123456789abcd HTTP/1.1
Host: app.ecwid.com
Content-Type: image/jpeg
Cache-Control: no-cache

binary data

PHP Example

$file = file_get_contents('image.jpg');
$url = 'https://app.ecwid.com/api/v3/1003/profile/invoicelogo?token=abcdefg123456';

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_POST,1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $file);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: image/jpeg;'));

$result = curl_exec($ch);
curl_close ($ch);

Python Example

import requests

request_url = "https://app.ecwid.com/api/v3/1003/profile/invoicelogo?token=abcdefg123456"

image_file_data = open('image.jpg', 'rb').read()

result = requests.post(request_url,data=image_file_data)

print(result.status_code)

POST https://app.ecwid.com/api/v3/{storeId}/profile/invoicelogo?token={token}&externalUrl={externalUrl}

NameTypeDescription
storeIdnumberEcwid store ID
tokenstringoAuth token
externalUrlstringExternal file URL available for public download. If specified, Ecwid will ignore any binary file data sent in a request

When uploading an invoice logo, the image itself needs to be sent in the body of your request in a form of binary data. The file that you wish to upload needs to be prepared for that format and then sent to Ecwid API endpoint.

Alternatively, you can specify an externalURL to your file as a request parameter and Ecwid will download it from there.

Response

Response example

{
    "id": 240198557
}

A JSON object of type 'UploadStatus’ with the following fields:

UploadStatus

FieldTypeDescription
idnumberInternal image ID

Errors

Error response example

HTTP/1.1 500 Server Error
Content-Type application/json; charset=utf-8

In case of error, Ecwid responds with an error HTTP status code and, optionally, JSON-formatted body containing error description

HTTP codes

HTTP StatusDescription
400Request parameters are malformed
415Unsupported content-type: expected application/octet-stream
422The uploaded file is not an image
413The image file is too large. Maximum allowed file size is 20Mb.
500Uploading of the image file failed or there was an internal server error while processing a file

Error response body (optional)

FieldTypeDescription
errorMessagestringError message

Remove store logo, which is displayed on order invoices

Request example

DELETE /api/v3/4870020/profile/invoicelogo?token=123456789abcd HTTP/1.1
Host: app.ecwid.com
Content-Type: application/json

DELETE https://app.ecwid.com/api/v3/{storeId}/profile/invoicelogo?token={token}

NameTypeDescription
storeIdnumberEcwid store ID
tokenstringoAuth token

Response

Response example

{
    "deleteCount": 1,
    "success": true
}

A JSON object of type 'DeleteStatus’ with the following fields:

DeleteStatus

FieldTypeDescription
deleteCountnumberThe number of deleted images (1 or 0 depending on whether the request was successful)
successbooleantrue if the image has been deleted, false otherwise

Errors

Error response example

HTTP/1.1 500 Server Error
Content-Type application/json; charset=utf-8

In case of error, Ecwid responds with an error HTTP status code and, optionally, JSON-formatted body containing error description

HTTP codes

HTTP StatusDescription
400Request parameters are malformed
500Uploading of the image file failed or there was an internal server error while processing a file

Error response body (optional)

FieldTypeDescription
errorMessagestringError message

Get store update statistics

This method provides simple 'Latest updates’ statistics about store profile, products, orders, categories and discount coupons. Use it to check whether something was changed in an Ecwid store. This could be helpful to keep data in your application up-to-date and avoid abusing API to get and parse large amounts of data to check its state.

Also, you can consider using webhooks to get a notificaiton when changes are made to orders and catalog items. For example, you can get a webhook when a new order is placed in a store and send order details to a warehouse right away.

Request example

GET /api/v3/4870020/latest-stats?token=123abcd HTTP/1.1
Host: app.ecwid.com
Cache-Control: no-cache

GET https://app.ecwid.com/api/v3/{storeId}/latest-stats?token={token}

NameTypeDescription
storeIdnumberEcwid store ID
tokenstringoAuth token

Response

Response example (JSON)

{
    "productsUpdated": "2014-10-19 18:56:21 +0400",
    "ordersUpdated": "2014-10-15 16:54:11 +0400",
    "profileUpdated": "2014-10-19 18:55:35 +0400",
    "categoriesUpdated": "2014-10-19 12:23:12 +0400",
    "discountCouponsUpdated": "2017-02-10 08:03:43 +0000",
    "abandonedSalesUpdated": "2017-02-10 08:03:43 +0000",
    "customersUpdated": "2017-02-10 08:03:43 +0000"
}

A JSON object containing the update dates statistics

UpdateStats

FieldTypeDescription
productsUpdatedstringDate of the latest changes in store catalog (products, categories), e.g. 2014-10-15 16:54:11 +0400
ordersUpdatedstringDate of the latest changes in store orders, e.g. 2014-10-15 16:54:11 +0400
profileUpdatedstringDate of the latest changes in store information, e.g. 2014-10-15 16:54:11 +0400
categoriesUpdatedstringDate of the latest changes in store categories, e.g. 2014-10-19 12:23:12 +0400
discountCouponsUpdatedstringDate of the latest changes in store discount coupons, e.g. 2014-10-19 12:23:12 +0400
abandonedSalesUpdatedstringDate of the latest changes to abandoned carts in a store, e.g. 2014-10-19 12:23:12 +0400
customersUpdatedstringDate of the latest changes to customers in a store, e.g. 2014-10-19 12:23:12 +0400

Errors

Error response example

HTTP/1.1 500 Server Error
Content-Type application/json; charset=utf-8

In case of error, Ecwid responds with an error HTTP status code and, optionally, JSON-formatted body containing error description

HTTP codes

HTTP StatusDescription
400Request parameters are malformed
415Unsupported content-type: expected application/json or text/json
500There was an internal server error while processing the request

Error response body (optional)

FieldTypeDescription
errorMessagestringError message

Get deleted items statistics

Using this group of API methods, you can get a list of products, orders, customers and coupons that have been deleted from the store. In combination with the update statistics, you can use these endpoints to check whether something was changed in an Ecwid store and keep data in your application synchronized with the Ecwid store you’re working with.

Also, you can consider using webhooks to get a notificaiton when orders and catalog items are deleted. For example, you can get a webhook right after a product is deleted from an Ecwid store and adjust your custom product list in external system.

Get deleted products stats

GET /api/v3/4870020/products/deleted?token=123abcd HTTP/1.1
Host: app.ecwid.com
Cache-Control: no-cache

Get deleted orders stats

GET /api/v3/4870020/orders/deleted?token=123abcd HTTP/1.1
Host: app.ecwid.com
Cache-Control: no-cache

Get deleted customers stats

GET /api/v3/4870020/customers/deleted?token=123abcd HTTP/1.1
Host: app.ecwid.com
Cache-Control: no-cache

Get deleted coupons stats

GET /api/v3/4870020/discount_coupons/deleted?token=123abcd HTTP/1.1
Host: app.ecwid.com
Cache-Control: no-cache

There are 4 endpoints: deleted products, orders, customers, coupons.

  • GET https://app.ecwid.com/api/v3/{storeId}/products/deleted?from_date={from_date}&to_date={to_date}&offset={offset}&limit={limit}&token={token}
  • GET https://app.ecwid.com/api/v3/{storeId}/orders/deleted?from_date={from_date}&to_date={to_date}&offset={offset}&limit={limit}&token={token}
  • GET https://app.ecwid.com/api/v3/{storeId}/customers/deleted?from_date={from_date}&to_date={to_date}&offset={offset}&limit={limit}&token={token}
  • GET https://app.ecwid.com/api/v3/{storeId}/discount_coupons/deleted?from_date={from_date}&to_date={to_date}&offset={offset}&limit={limit}&token={token}
NameTypeDescription
storeIdnumberEcwid store ID
tokenstringoAuth token
from_datestringItem deletion date lower bound. Supported formats:
  • UNIX timestamp
  • yyyy-MM-dd HH:mm:ss Z
  • yyyy-MM-dd HH:mm:ss
  • yyyy-MM-dd
Examples:
  • 1447804800
  • 2015-04-22 18:48:38 -0500
  • 2015-04-22 (this is 2015-04-22 00:00:00 UTC)
to_datestringItem deletion date upper bound. Supported formats:
  • UNIX timestamp
  • yyyy-MM-dd HH:mm:ss Z
  • yyyy-MM-dd HH:mm:ss
  • yyyy-MM-dd
offsetnumberOffset from the beginning of the returned items list (for paging)
limitnumberMaximum number of returned items. Default value: 100

Response

Response example (JSON). Removed order stats

{
    "total": 1,
    "count": 1,
    "offset": 0,
    "limit": 100,
    "items": [
        {
            "id": 9,
            "date": "2014-10-20 18:07:24 +0400"
        }
    ]
}

Response example (JSON). Removed coupons stats

{
    "total": 2,
    "count": 2,
    "offset": 0,
    "limit": 100,
    "items": [
        {
            "id": 34256365236,
            "date": "2014-10-20 18:00:54 +0400"
        },
        {
            "id": 123123213213,
            "date": "2014-10-20 18:00:57 +0400"
        }
    ]
}

Each endpoint returns the information about the batch, the removed items IDs and the deletion dates in JSON object of type DeletedItemsStats

DeletedItemsStats

FieldTypeDescription
totalnumberThe total number of found items (might be more than the number of returned items)
countnumberThe total number of the items returned in this batch
offsetnumberOffset from the beginning of the returned items list (for paging)
limitnumberMaximum number of returned items. Maximum allowed value: 100. Default value: 10
itemsArray<RemovedItem>The removed items list with IDs and dates

Removed item

FieldTypeDescription
idnumberItem ID. Depending on the request, that is products ID, customer ID, order number or coupon ID.
datestringItem deletion date

Errors

Error response example

HTTP/1.1 500 Server Error
Content-Type application/json; charset=utf-8

In case of error, Ecwid responds with an error HTTP status code and, optionally, JSON-formatted body containing error description

HTTP codes

HTTP StatusDescription
400Request parameters are malformed
415Unsupported content-type: expected application/json or text/json
500There was an internal server error while processing the request

Error response body (optional)

FieldTypeDescription
errorMessagestringError message