1. EveLabinsight - Basic data API interface
EvelabInsight
  • Skin Analysis API for All Ethnicities
    • Obtain access_token
      GET
    • Facial attribute analysis
      POST
    • Facial pose analysis
      POST
    • Skin analysis
      POST
  • EveLabinsight - Basic data API interface
    • Basic Data API (Universal Edition) v1.6
  • Skin analysis report data API pull related instructions
    GET
  1. EveLabinsight - Basic data API interface

Basic Data API (Universal Edition) v1.6

(20260228) Meitu Eve - Basic Data API Interface (Universal Version) v1.6#


I. API Overview#

1.1 Domain#

Mainland China: https://api-eve.meitu.com
Overseas: https://gapi.evelabinsight.com

1.2 Response Format#

All interfaces return data in the following format:
{
    "meta": {
        "code": 0,
        "msg": "",
        "error": "",
        "request_uri": "/open_api/common/xxx"
    },
    "response": {}
}
NameTypeRequiredNotes
metaobjectRequiredmeta
├─ codenumberRequiredStatus code
├─ msgstringRequiredException message corresponding to the status code
├─ errorstringRequiredReserved field
├─ request_uristringRequiredInterface path
responseobjectRequiredResponse data

1.3 Three Types of Code Explanations#

1.3.1 HTTP Code#

codeDescriptionDetail
200successsuccess
400Request parameter errorRequest parameter does not exist or format is incorrect.
404Interface does not existInterface does not exist
405Invalid requestThis interface does not support requests using this method
500System errorInternal server error, please contact us to resolve.

1.3.2 Code Inside meta#

When http_code is not 200, the meta will output a non-zero code and msg to explain the cause of the error, in the following format:
{
    "meta": {
        "code": 40067,
        "msg": "Product number does not exist.",
        "error": "",
        "request_uri": "/open_api/merchant/products"
    },
    "response": {}
}
Common meta codes:
codeDescriptionDetail
0successRequest successful
400Parameter missing or incorrectParameter missing or incorrect
500System errorSystem error, please contact developer
40057Interface call timeoutInterface call timeout
40058Too much data, please call the interface in batches.Too much data, please call the interface in batches
40069Operation failed!Operation failed or partially failed

1.3.3 err_code (Special Error Codes)#

When performing batch operations (add, update, delete) on data, if some data operations succeed and some fail, in addition to returning a non-200 http_code and non-zero meta code (generally 40069), the detailed reason for each failed item will be returned in response['err_list']. Reference data:
{
    "meta": {
        "code": 40069,
        "msg": "Operation failed!",
        "error": "",
        "request_uri": "/open_api/merchant/products"
    },
    "response": {
        "err_list": [
            {
                "custom_id": "1s21",
                "err_code": 40048,
                "err_msg": "The subtitle is too long."
            },
            {
                "custom_id": "121",
                "err_code": 40048,
                "err_msg": "The subtitle is too long."
            }
        ]
    }
}

1.4 Product Category ID Explanation#

Product Category IDProduct Category (Chinese)Product Category (English)
1TonerToner
2Emulsion/LotionEmulsion/Lotion
3SerumSerum
4CreamCream
5Eye ContourEye contour
6CleanserCleanser
7SunscreenSunscreen
8OthersOthers
9SetSet
10MaskMask

1.5 Price Unit Identifier Explanation#

Price Unit Identifier IDSymbolCurrency CodeCurrency Name
0¥CNYChina - Renminbi
1¥JPYJapan - Yen
2$USDUnited States - Dollar
3€EUREurozone - Euro
4£GBPUnited Kingdom - Pound
5₩KRWSouth Korea - Won
6HK$HKDHong Kong - Dollar
7MOP$MOPMacao - Pataca
8NT$TWDTaiwan - New Dollar
9฿THBThailand - Baht
10₫VNDVietnam - Dong
11$SGDSingapore - Dollar
12RMMYRMalaysia - Ringgit
13៛KHRCambodia - Riel
14₭LAKLaos - New Kip
15KMMKMyanmar - Kyat
16$BNDBrunei - Dollar
17RpIDRIndonesia - Rupiah
18₱PHPPhilippines - Peso
19₹INRIndia - Rupee
20৳BDTBangladesh - Taka
21$AUDAustralia - Dollar
22FrCHFSwitzerland - Franc
23$CADCanada - Dollar
24$MXNMexico - Peso
25$NZDNew Zealand - Dollar
26₤TRYTurkey - Lira
27krDKKDenmark - Krone
28krSEKSweden - Krona
29krNOKNorway - Krone
30krISKIceland - Krona
31KREEKEstonia - Kroon
32р.RUBRussia - Ruble
33د.إAEDUAE - Dirham
34₣FRFFrance - Franc
35B.PABPanama - Balboa
36R$BRLBrazil - Real
37$CLPChile - Peso
38$COPColombia - Peso
39QR.QARQatar - Riyal
40LeiRONRomania - Leu
41Rs.LKRSri Lanka - Rupee
42Rs.MVRMaldives - Rufiyaa
43Rs.PRKPakistan - Rupee
44Rs.NPRNepal - Rupee
45Af.AFAAfghanistan - Afghani
46RI.IRRIran - Rial
47ID.IQDIraq - Dinar
48£SYPSyria - Pound
49£LBPLebanon - Pound
50Dr.JODJordan - Dinar
51R.SARSaudi Arabia - Riyal
52D.KWDKuwait - Dinar
53D.BHDBahrain - Dinar
54RO.OMROman - Rial
55YRL.YERYemen - Rial
56YD.YDDYemen - Dinar
57£TRLTurkey - Pound
58$FJDFiji - Dollar
59$SBDSolomon Islands - Dollar
60ZL.PLZPoland - Zloty
61Kr.CSKCzech Republic - Koruna
62FT.HUFHungary - Forint
63Dr.YUDYugoslavia - New Dinar
64Lev.BGLBulgaria - Lev
65Af.ALLAlbania - Lek
66Q.GTQGuatemala - Quetzal
67¢SVCEl Salvador - Colon
68L.HNLHonduras - Lempira
69CS.NICNicaragua - Cordoba
70¢CRCCosta Rica - Colon
71Pes.CUPCuba - Peso
72$BSDBahamas - Dollar
73$JMDJamaica - Dollar
74G.HTGHaiti - Gourde
75$DOPDominican Republic - Peso
76$TTDTrinidad and Tobago - Dollar
77$BBDBarbados - Dollar
78B.VEBVenezuela - Bolivar
79$GYDGuyana - Dollar
80Fl.SRGSuriname - Guilder
81S/.PESPeru - New Sol
82S/.ECSEcuador - Sucre
83P.BOPBolivia - Peso
84P.ARPArgentina - Peso
85Guars.PYGParaguay - Guarani
86$UYPUruguay - New Peso
87£EGPEgypt - Pound
88LD.LYDLibya - Dinar
89£SDPSudan - Pound
90TD.TNDTunisia - Dinar
91AD.DZDAlgeria - Dinar
92DH.MADMorocco - Dirham
93UM.MROMauritania - Ouguiya
94F.XOFWAEMU - Franc
95D.G.GMDGambia - Dalasi
96PG.GWPGuinea-Bissau - Peso
97GS.GNSGuinea - Syli
98Le.SLLSierra Leone - Leone
99$LRDLiberia - Dollar
100¢GHCGhana - Cedi
101N.NGNNigeria - Naira
102CFAF.XAFCentral African CFA Franc
103EK.GQEEquatorial Guinea - Ekwele
104R.ZARSouth Africa - Rand
105F.DJFDjibouti - Franc
106So.SOSSomalia - Shilling
107Sh.KESKenya - Shilling
108Sh.UGSUganda - Shilling
109Sh.TZSTanzania - Shilling
110RF.RWFRwanda - Franc
111F.BIFBurundi - Franc
112Z.ZRZZaire
113K.ZMKZambia - Kwacha
114F.MCFMadagascar - Franc
115RP.SCRSeychelles - Rupee
116Rp.MURMauritius - Rupee
117$ZWDZimbabwe - Dollar
118F.KMFComoros - Franc

1.6 System and Custom Dimensions#

1.6.1 Dimension Names#

Dimension IDDimension Name (Chinese)Dimension Name (English)
porePoresPores
blackheadBlackheadsBlackheads
speckleSpotsSpots
wrinkleWrinklesWrinkles
acneAcneAcne
sensitiveSensitivitySensitive skin
black_rim_of_eyeDark CirclesDark circles
waterMoistureMoisture
oilOilOil
skin_vitalitySkin VitalitySkin Vitality
glowRadianceRadiance
skin_smoothnessSmoothnessSmoothness
firmnessFirmnessFirmness
vitality_eye_contourEye Contour VitalityEye Contour Vitality
skin_glowRadianceRadiance
eye_bagsEye BagsEye Bags
eye_saggingEyelid LaxityEyelids Laxity
plump_cheeksCheek VolumeMedial Malar
low_cheekJowlJowl
mandible_edgeJawlineJaw Line
crows_feetCrow's FeetCrow's Feet
under_eye_wrinklePeriocular Fine LinesPeriocular Fine Lines
forehead_wrinkleForehead WrinklesForehead Wrinkles
nasolabial_foldsNasolabial FoldsNasolabial Fold (NLF)
narionette_linesMarionette LinesMarionette Lines
frown_wrinkleGlabellar WrinklesGlabellar Wrinkles
lacrimal_grooveTear TroughsTear Troughs
neck_linesNeck LinesNeck Lines

1.6.2 Dimension Severity Names#

Dimension IDSeverity (Chinese)Severity (English)
pore"1":"Fine","2":"Medium","3":"Coarse""1":"Fine","2":"Medium","3":"Coarse"
blackhead"1":"None","2":"Mild","3":"Moderate","4":"Severe""1":"None","2":"Mild","3":"Moderate","4":"Severe"
speckle"1":"None","2":"Mild","3":"Moderate","4":"Severe""1":"None","2":"Mild","3":"Moderate","4":"Severe"
wrinkle"1":"None","2":"Mild","3":"Moderate","4":"Severe""1":"None","2":"Mild","3":"Moderate","4":"Severe"
acne"0":"None","1":"Level Ⅰ","2":"Level Ⅱ","3":"Level Ⅲ","4":"Level Ⅳ""0":"None","1":"Level Ⅰ","2":"Level Ⅱ","3":"Level Ⅲ","4":"Level Ⅳ"
sensitive"1":"High skin tolerance","2":"Medium skin tolerance","3":"Mild sensitive skin","4":"Sensitive skin""1":"High skin tolerance","2":"Medium skin tolerance","3":"Mild sensitive skin","4":"Sensitive skin"
black_rim_of_eye"1":"None","2":"Mild","3":"Moderate","4":"Severe""1":"None","2":"Mild","3":"Moderate","4":"Severe"
water"2":"Healthy","3":"Moderate","4":"Severe""2":"Healthy","3":"Moderate","4":"Severe"
oil"2":"Healthy","3":"Moderate","4":"Severe""2":"Healthy","3":"Moderate","4":"Severe"
skin_vitality"1":"Very Good","2":"Fairly Good","3":"Moderate","4":"Low""1":"Very Good","2":"Fairly Good","3":"Moderate","4":"Low"
glow"1":"Very Good","2":"Fairly Good","3":"Moderate","4":"Low""1":"Very Good","2":"Fairly Good","3":"Moderate","4":"Low"
skin_smoothness"1":"Very Good","2":"Fairly Good","3":"Moderate","4":"Low""1":"Very Good","2":"Fairly Good","3":"Moderate","4":"Low"
firmness"1":"Very Good","2":"Fairly Good","3":"Moderate","4":"Low""1":"Very Good","2":"Fairly Good","3":"Moderate","4":"Low"
vitality_eye_contour"1":"Very Good","2":"Fairly Good","3":"Moderate","4":"Low""1":"Very Good","2":"Fairly Good","3":"Moderate","4":"Low"
skin_glow"1":"Very Good","2":"Good","3":"Medium","4":"Poor""1":"Very Good","2":"Good","3":"Medium","4":"Poor"
eye_bags"0":"Level 0","1":"Level 1","2":"Level 2","3":"Level 3","4":"Level 4","5":"Level 5","6":"Level 6""0":"Level 0","1":"Level 1","2":"Level 2","3":"Level 3","4":"Level 4","5":"Level 5","6":"Level 6"
eye_sagging"0":"Level 0","1":"Level 1","2":"Level 2","3":"Level 3","4":"Level 4","5":"Level 5","6":"Level 6","7":"Level 7","8":"Level 8""0":"Level 0","1":"Level 1","2":"Level 2","3":"Level 3","4":"Level 4","5":"Level 5","6":"Level 6","7":"Level 7","8":"Level 8"
plump_cheeks"0": "None""0": "None"
low_cheek"0": "None""0": "None"
mandible_edge"0": "None""0": "None"
crows_feet"0":"Level 0","1":"Level 1","2":"Level 2","3":"Level 3","4":"Level 4","5":"Level 5","6":"Level 6","7":"Level 7""0":"Level 0","1":"Level 1","2":"Level 2","3":"Level 3","4":"Level 4","5":"Level 5","6":"Level 6","7":"Level 7"
under_eye_wrinkle"0":"Level 0","1":"Level 1","2":"Level 2","3":"Level 3","4":"Level 4","5":"Level 5","6":"Level 6","7":"Level 7","8":"Level 8""0":"Level 0","1":"Level 1","2":"Level 2","3":"Level 3","4":"Level 4","5":"Level 5","6":"Level 6","7":"Level 7","8":"Level 8"
forehead_wrinkle"0":"Level 0","1":"Level 1","2":"Level 2","3":"Level 3","4":"Level 4","5":"Level 5","6":"Level 6","7":"Level 7","8":"Level 8""0":"Level 0","1":"Level 1","2":"Level 2","3":"Level 3","4":"Level 4","5":"Level 5","6":"Level 6","7":"Level 7","8":"Level 8"
nasolabial_folds"0":"Level 0","1":"Level 1","2":"Level 2","3":"Level 3","4":"Level 4","5":"Level 5","6":"Level 6","7":"Level 7""0":"Level 0","1":"Level 1","2":"Level 2","3":"Level 3","4":"Level 4","5":"Level 5","6":"Level 6","7":"Level 7"
narionette_lines"0":"Level 0","1":"Level 1","2":"Level 2","3":"Level 3","4":"Level 4","5":"Level 5","6":"Level 6","7":"Level 7""0":"Level 0","1":"Level 1","2":"Level 2","3":"Level 3","4":"Level 4","5":"Level 5","6":"Level 6","7":"Level 7"
frown_wrinkle"0":"Level 0","1":"Level 1","2":"Level 2","3":"Level 3","4":"Level 4","5":"Level 5","6":"Level 6","7":"Level 7","8":"Level 8""0":"Level 0","1":"Level 1","2":"Level 2","3":"Level 3","4":"Level 4","5":"Level 5","6":"Level 6","7":"Level 7","8":"Level 8"
lacrimal_groove"0":"Level 0","1":"Level 1","2":"Level 2","3":"Level 3","4":"Level 4","5":"Level 5","6":"Level 6""0":"Level 0","1":"Level 1","2":"Level 2","3":"Level 3","4":"Level 4","5":"Level 5","6":"Level 6"
neck_lines"0":"Level 0","1":"Level 1","2":"Level 2","3":"Level 3","4":"Level 4","5":"Level 5","6":"Level 6","7":"Level 7","8":"Level 8""0":"Level 0","1":"Level 1","2":"Level 2","3":"Level 3","4":"Level 4","5":"Level 5","6":"Level 6","7":"Level 7","8":"Level 8"

1.7 Product/Treatment Target Problem Field (problem) Explanation#

Field parameter structure: problem:{"blackhead":[1,2],"speckle":[3,4]}
Data description (combined with section 1.6 system and custom dimension data):
{
     "blackhead": [ // Dimension ID
            1, // Severity value
            2
     ],
     "speckle": [
         "1",
         "2",
         "3",
         "4"
     ]
}

1.8 Multi-language Code Explanation#

Language CodeDescription
enEnglish
zh-HansSimplified Chinese
jaJapanese
koKorean
thThai
zh-HantTraditional Chinese (Taiwan)
zh-Hant-HKTraditional Chinese (Hong Kong)
viVietnamese
frFrench
trTurkish
arArabic
nlDutch
es-PASpanish (CUPFSA)
es-MXSpanish (MEX)
ptPortuguese

1.9 Care Stage Field Explanation#

Care Stage ID (Nursing stage)Description (Nursing stage)
1Basic care (Essential)
2Advanced care (Complementary)

Common Scenarios - Which API to Call?#

Scenario: New store opening#

Step 1: POST /api/v1.6/stores → store_id
Step 2: POST /api/v1.6/employees (multiple times) → employee_ids
Step 3: GET /merchants/{id}/languages → configure languages
Step 4: GET /brands → load available brands
Step 5: GET /product-categories → load product categories
Result: Store is ready to operate ✓

Scenario: Employee change-of-status#

Situation: Employee calls in sick
Action: PATCH /employees/{id}/status {"status": "disabled"}
Effect: This employee won't receive customer assignments
Result: Customer traffic redistributed to other staff

Scenario: Customer arrives for consultation#

Step 1: POST /customers/{id}/skin-analysis → analysis_id
Step 2: GET /skincare-plans?analysis_id=xxx → [3 recommendations]
Step 3: GET /stores/{id}/inventory?products=xxx → stock levels
Step 4: Show recommendations + availability + pricing to customer
Step 5: If customer agrees: POST /customers/{id}/skincare-enrollment
Result: Customer enrolled in care plan ✓

Scenario: Daily inventory reconciliation#

Time: 9:00 AM daily
Action: PATCH /stores/{id}/inventory (for each product with stock changes)
Data source: Physical count or ERP system
Sync frequency: Hourly or real-time
Validation: Next query should match updates

Scenario: Weekly management report#

Time: Every Monday 10:00 AM
Process:
  1. GET /merchants/list
  2. For each merchant:
     - GET /stores/list
     - GET /employees/list
     - GET /stores/{id}/sales-report
  3. Aggregate all data
  4. Generate pivot tables & charts
  5. Send to leadership

II. Common Interfaces#

2.1 Get Token#

Basic Information
Path: /open_api/common/access_token
Method: GET
Interface Description:
Only one token is allowed to be in use at the same time. When a new token is generated, the old token is automatically invalidated.
Meta code:
Error CodeDescriptionDetail
1001invalid access_tokenToken exception
Request Parameters
Query
Parameter NameRequiredExampleNotes
app_idYesGroup/merchant app_id
app_secretYesGroup/merchant app_secret
Response Data
NameTypeRequiredNotesOther Info
metaobjectRequired
├─ codenumberRequired
├─ msgstringRequired
├─ errorstringRequired
├─ request_uristringRequired
responseobjectRequired
├─ access_tokenstringRequiredaccess_token
├─ expirenumberRequiredToken validity period, 7200 seconds

2.2 Get Merchant List Under Group#

Basic Information
Path: /open_api/merchant/merchants
Method: GET
Request Parameters
Headers
Parameter NameValueRequiredExampleNotes
access-tokenYesGroup token, generated using the group backend's app_id and app_secret.
Response Data
NameTypeRequiredNotesOther Info
metaobjectRequired
├─ codenumberRequired
├─ msgstringRequired
├─ errorstringRequired
├─ request_uristringRequired
responseobjectRequired
├─ listobject []RequiredMerchant listitem type: object
├─ merchant_idstringRequiredMerchant ID
├─ namestringRequiredMerchant name
├─ areastringRequiredCountry/region of merchant. Example: China Hong Kong Macao Korea Japan Taiwan Thailand

2.3 Get Store Information Under Merchant#

Basic Information
Path: /open_api/merchant/stores
Method: GET
Request Parameters
Headers
Parameter NameValueRequiredExampleNotes
access-tokenYesMerchant/group token
merchant-idNoMerchant ID, required when access-token is a group-type token
Query
Parameter NameRequiredExampleNotes
pageNoPage number
countNoItems per page, default 20, max 100
Response Data
NameTypeRequiredNotesOther Info
metaobjectRequired
├─ codenumberRequired
├─ msgstringRequired
├─ errorstringRequired
├─ request_uristringRequired
responseobjectRequired
├─ listobject []RequiredStore listitem type: object
├─ idstringRequired
├─ namestringRequiredStore name
├─ provincestringRequiredProvince
├─ citystringRequiredCity
├─ addressstringRequiredAddress
├─ statusnumberRequiredStatus: 1-Normal, -1-Disabled
├─ store_business_typenumberRequiredCurrent version: 0-None, 1-Basic, 2-Advanced
├─ store_custom_idstringRequiredStore number
├─ totalstringRequiredTotal count

2.4 Get Staff List#

Basic Information
Path: /open_api/merchant/employees
Method: GET
Request Parameters
Headers
Parameter NameValueRequiredExampleNotes
access-tokenYesGroup/merchant token
merchant-idNoMerchant ID, required when access-token is a group-type token
Query
Parameter NameRequiredExampleNotes
pageNoPage number, default page 1
countNoItems per page, default 20, max 100
store_custom_idNoStore number
Response Data
NameTypeRequiredNotesOther Info
metaobjectRequired
├─ codenumberRequired
├─ msgstringRequired
├─ errorstringRequired
├─ request_uristringRequired
responseobjectRequired
├─ listobject []RequiredStaff listitem type: object
├─ idstringRequiredStaff ID
├─ store_idstringRequiredStore ID
├─ store_custom_idstringRequiredStore number
├─ status_statusintegerRequiredStore status: 1-Enabled, -1-Disabled
├─ account_numstringRequiredEmployee number
├─ last_namestringRequiredLast name
├─ real_namestringRequiredFull name
├─ phone_ccstringRequiredPhone area code
├─ phone_numberstringRequiredPhone number
├─ emailstringRequiredEmail
├─ sso_accountstringRequiredSSO bound account
├─ statusnumberRequiredStatus: 1-Enabled, -1-Disabled
├─ store_custom_idstringRequiredStore number
├─ totalstringRequiredTotal count

2.5 Get Languages Enabled by Merchant#

Basic Information
Path: /open_api/merchant/langs
Method: GET
Request Parameters
Headers
Parameter NameValueRequiredExampleNotes
access-tokenYesGroup/merchant token
merchant-idNoMerchant ID, required when access-token is a group-type token
Response Data
NameTypeRequiredNotesOther Info
metaobjectRequired
├─ codenumberRequired
├─ msgstringRequired
├─ errorstringRequired
├─ request_uristringRequired
responseobjectRequired
├─ default_langstringRequiredDefault language
├─ lang_liststring []RequiredMulti-language list. Array element description: zh-Hans - Simplified Chinese, zh-Hant - Traditional Chinese (Taiwan), zh-Hant-HK - Traditional Chinese (Hong Kong), en - English, ja - Japanese, ko - Korean, th - Thaiitem type: string. If no multi-language is enabled, an empty array is returned

2.6 Get Detection Dimension Information#

Basic Information
Path: /open_api/merchant/dimensions
Method: GET
Interface Description:
For dimension and severity explanations, refer to the wiki.
Request Parameters
Headers
Parameter NameValueRequiredExampleNotes
access-tokenYesGroup/merchant token
merchant-idNoMerchant ID, required when access-token is a group-type token
Query
Parameter NameRequiredExampleNotes
langNoLanguage to use for returned data. If not specified, defaults to English
Response Data
NameTypeRequiredNotesOther Info
metaobjectRequired
├─ codenumberRequired
├─ msgstringRequired
├─ errorstringRequired
├─ request_uristringRequired
responseobjectRequired
├─ listobject []Requireditem type: object
├─ idstringRequiredDimension ID
├─ namestringRequiredDimension name
├─ statusnumberRequiredStatus: 1-Enabled, 0-Disabled
├─ divisions_countnumberRequiredNumber of severity levels
├─ divisionsobject []RequiredSeverity level listitem type: object
├─ idnumber,stringRequiredSeverity level ID
├─ namestringRequiredSeverity level name

2.7 Get Product Category List Information#

Basic Information
Path: /open_api/merchant/categories
Method: GET
Request Parameters
Headers
Parameter NameValueRequiredExampleNotes
access-tokenYesGroup/merchant token
merchant-idNoMerchant ID, required when access-token is a group-type token
Query
Parameter NameRequiredExampleNotes
langNoLanguage to use for returned data. If not specified, defaults to English
Response Data
NameTypeRequiredNotesOther Info
metaobjectRequired
├─ codenumberRequired
├─ msgstringRequired
├─ errorstringRequired
├─ request_uristringRequired
responseobjectRequired
├─ listobject []Requireditem type: object
├─ category_idint64RequiredCategory ID
├─ namestringRequiredCategory name
├─ statusintRequiredStatus: 1-Enabled, -1-Disabled

2.8 Add Store#

Basic Information
Path: /open_api/merchant/stores
Method: POST
Error Codes:
Error CodeDescriptionDetail
11035%s cannot be emptyCorresponding key not filled
11034%s input errorCorresponding key input is incorrect
11000Store name too longname max 100 characters
11001Store name already existsname field cannot be duplicated
11029Store number input errorcustom_id supports letters and numbers, max 20 characters, no duplicates
11028Store number already existscustom_id field cannot be duplicated
11033Region does not exist or is filled in incorrectlyarea_id field content does not exist or is filled in incorrectly
11004Store address too longaddress field max 100 characters
11008Account name is empty or format is incorrectusername field supports 3~50 letters, numbers, @, underscores, hyphens
10008Store account already existsusername field cannot be duplicated
11007Employee number already in useaccount_num field cannot be duplicated
11010Password is empty or format is incorrectpassword field 8~20 characters, must contain numbers, letters, and special symbols
11027Password is too simple or too similar to account, please resetpassword field 8~20 characters, must contain numbers, letters, and special symbols
400Parameter errorSpecific information returned
Request Parameters
Headers
Parameter NameValueRequiredExampleNotes
access-tokenRequiredGroup/merchant token
merchant-idNot requiredMerchant ID, required when access-token is a group-type token
REQUEST BODY SCHEMA: application/json
NameTypeRequiredDefaultNotesOther Info
├─ namestringRequiredStore name max 100 characters, cannot be duplicated. Title accepts max 75 characters
├─ custom_idstringRequiredStore number, supports letters and numbers, max 20 characters, no duplicates
├─ telephonestringRequiredStore phone
├─ area_idnumberNot requiredStore region, enter region ID. Region ID can be obtained via API. If not filled, defaults to the first region.
├─ province_codestringRequiredProvince where the store is located. Enter province code. Province codes available in Country Detailed List.
├─ city_codestringNot requiredCity where the store is located. Enter city code. City codes available in Country Detailed List. If not filled, defaults to the first city in the province in the system.
├─ addressstringRequiredStore detailed address, max 100 characters
├─ usernamestringRequiredStore manager account. Supports 3~50 letters, numbers, @, underscores, hyphens
├─ passwordstringRequiredPassword for the store manager account. 8~20 characters, must contain numbers, letters, and special symbols
├─ real_namestringRequiredStore manager name, max 18 characters
├─ last_namestringNot requiredStore manager last name, max 18 characters
├─ account_numstringNot requiredEmployee number, max 20 characters
├─ phone_ccintegerNot requiredPhone area code, numeric
├─ phone_numberintegerNot requiredStore manager mobile number, numeric
├─ emailstringNot requiredStore manager email
Response Data
NameTypeRequiredNotesOther Info
metaobjectRequired
├─ codeintegerRequired
├─ msgstringRequired
├─ errorstringRequired
├─ request_uristringRequired
responseobjectRequired

2.9 Modify Store#

Basic Information
Path: /open_api/merchant/stores
Method: PATCH
Error Codes:
Error CodeDescriptionDetail
11035%s cannot be emptyCorresponding key not filled
11034%s input errorCorresponding key input is incorrect
11000Store name too longname max 100 characters
11001Store name already existsname field cannot be duplicated
11029Store number input errorcustom_id supports letters and numbers, max 20 characters, no duplicates
11028Store number already existscustom_id field cannot be duplicated
11033Region does not exist or is filled in incorrectlyarea_id field content does not exist or is filled in incorrectly
11004Store address too longaddress field max 100 characters
11008Account name is empty or format is incorrectusername field supports 3~50 letters, numbers, @, underscores, hyphens
10008Store account already existsusername field cannot be duplicated
11010Password is empty or format is incorrectpassword field 8~20 characters, must contain numbers, letters, and special symbols
11027Password is too simple or too similar to account, please resetpassword field 8~20 characters, must contain numbers, letters, and special symbols
400Parameter errorSpecific information returned
Request Parameters
Headers
Parameter NameValueRequiredExampleNotes
access-tokenRequiredGroup/merchant token
merchant-idNot requiredMerchant ID, required when access-token is a group-type token
REQUEST BODY SCHEMA: application/json
NameTypeRequiredDefaultNotesOther Info
├─ namestringNot requiredStore name max 100 characters, cannot be duplicated. Title accepts max 75 characters
├─ custom_idstringRequiredStore number, supports letters and numbers, max 20 characters, no duplicates
├─ new_custom_idstringNot requiredNew store number, supports letters and numbers, max 20 characters, no duplicates
├─ telephonestringNot requiredStore phone
├─ area_idnumberNot requiredStore region, enter region ID. Region ID can be obtained via API. If not filled, defaults to the first region.
├─ province_codestringNot requiredProvince where the store is located. Province codes available in Country Detailed List.
├─ city_codestringNot requiredCity where the store is located. City codes available in Country Detailed List. If not filled, defaults to the first city in the province.
├─ addressstringNot requiredStore detailed address, max 100 characters
Response Data
NameTypeRequiredNotesOther Info
metaobjectRequired
├─ codeintegerRequired
├─ msgstringRequired
├─ errorstringRequired
├─ request_uristringRequired
responseobjectRequired

2.10 Add Staff#

Basic Information
Path: /open_api/merchant/employees
Method: POST
Error Codes:
Error CodeDescriptionDetail
11035%s cannot be emptyCorresponding key not filled
11034%s input errorCorresponding key input is incorrect
11029Store number input errorcustom_id supports letters and numbers, max 20 characters, no duplicates
17002Multi-account feature not enabled, please contact administratorStaff management permission not enabled
11008Account name is empty or format is incorrectusername field supports 3~50 letters, numbers, @, underscores, hyphens
11009The account name you entered already existsusername field cannot be duplicated
11010Password is empty or format is incorrectpassword field 8~20 characters, must contain numbers, letters, and special symbols
11027Password is too simple or too similar to account, please resetpassword field 8~20 characters, must contain numbers, letters, and special symbols
11007Employee number already in useaccount_num field cannot be duplicated
10010Invalid phone numberphone_num field filled in incorrectly
400Parameter errorSpecific information returned
Request Parameters
Headers
Parameter NameValueRequiredExampleNotes
access-tokenRequiredGroup/merchant token
merchant-idNot requiredMerchant ID, required when access-token is a group-type token
REQUEST BODY SCHEMA: application/json
NameTypeRequiredDefaultNotesOther Info
├─ custom_idstringRequiredStore number, supports letters and numbers, max 20 characters, no duplicates
├─ usernamestringRequiredEmployee account
├─ passwordstringRequiredPassword for the store employee account. 8~20 characters, must contain numbers, letters, and special symbols
├─ real_namestringRequiredEmployee name, max 18 characters
├─ last_namestringNot requiredEmployee last name, max 18 characters
├─ account_numstringNot requiredEmployee number, max 20 characters
├─ phone_ccintegerNot requiredPhone area code, numeric
├─ phone_numberintegerNot requiredEmployee mobile number, numeric
├─ emailstringNot requiredEmployee email
Response Data
NameTypeRequiredNotesOther Info
metaobjectRequired
├─ codeintegerRequired
├─ msgstringRequired
├─ errorstringRequired
├─ request_uristringRequired
responseobjectRequired

2.11 Modify Account#

Basic Information
Path: /open_api/merchant/account
Method: PATCH
Error Codes:
Error CodeDescriptionDetail
11035%s cannot be emptyCorresponding key not filled
11034%s input errorCorresponding key input is incorrect
11008Account name is empty or format is incorrectusername field supports 3~50 letters, numbers, @, underscores, hyphens
11009The account name you entered already existsusername field cannot be duplicated
11010Password is empty or format is incorrectpassword field 8~20 characters, must contain numbers, letters, and special symbols
11027Password is too simple or too similar to account, please resetpassword field 8~20 characters, must contain numbers, letters, and special symbols
11007Employee number already in useaccount_num field cannot be duplicated
10010Invalid phone numberphone_num field filled in incorrectly
11013New and old passwords cannot be the samepassword field new and old passwords cannot be the same
400Parameter errorSpecific information returned
Request Parameters
Headers
Parameter NameValueRequiredExampleNotes
access-tokenRequiredGroup/merchant token
merchant-idNot requiredMerchant ID, required when access-token is a group-type token
REQUEST BODY SCHEMA: application/json
NameTypeRequiredDefaultNotesOther Info
├─ usernamestringRequiredEmployee account
├─ new_usernamestringNot requiredNew employee account. Account for logging into the APP; cannot be duplicated. Supports 3~50 letters, numbers, @, underscores, hyphens
├─ passwordstringNot requiredPassword for the store employee account. 8~20 characters, must contain numbers, letters, and special symbols
├─ real_namestringNot requiredEmployee name, max 18 characters
├─ last_namestringNot requiredEmployee last name, max 18 characters
├─ account_numstringNot requiredEmployee number, max 20 characters
├─ phone_ccintegerNot requiredPhone area code, numeric
├─ phone_numberintegerNot requiredEmployee mobile number, numeric
├─ emailstringNot requiredEmployee email
Response Data
NameTypeRequiredNotesOther Info
metaobjectRequired
├─ codeintegerRequired
├─ msgstringRequired
├─ errorstringRequired
├─ request_uristringRequired
responseobjectRequired

2.12 Enable/Disable Account#

Basic Information
Path: /open_api/merchant/account_status/{status}
Method: PATCH
Error Codes:
Error CodeDescriptionDetail
11035%s cannot be emptyCorresponding key not filled
11034%s input errorCorresponding key input is incorrect
11028Account does not existAccount does not exist
11026The store has been disabled, you need to enable the store before enabling the corresponding staff account
11011The employee number/account is already in use, please change and retry!
Request Parameters
Headers
Parameter NameValueRequiredExampleNotes
access-tokenYesGroup/merchant token
merchant-idNoMerchant ID, required when access-token is a group-type token
Content-Typeapplication/jsonYes
Path Parameters
Parameter NameExampleNotes
status11-Enable, -1-Disable
REQUEST BODY SCHEMA: application/json
NameTypeRequiredDefaultNotesOther Info
usernamestringRequiredAccount
Response Data
NameTypeRequiredNotesOther Info
metaobjectRequired
├─ codenumberRequired
├─ msgstringRequired
├─ errorstringRequired
├─ request_uristringRequired
responseobjectRequired

2.13 Get Region List#

Basic Information
Path: /open_api/merchant/area
Method: GET
Request Parameters
Headers
Parameter NameValueRequiredExampleNotes
access-tokenYesGroup/merchant token
merchant-idNoMerchant ID, required when access-token is a group-type token
Query
Parameter NameRequiredExampleNotes
pageNoPage number, default page 1
countNoItems per page, default 20, max 100
Response Data
NameTypeRequiredNotesOther Info
metaobjectRequired
├─ codenumberRequired
├─ msgstringRequired
├─ errorstringRequired
├─ request_uristringRequired
responseobjectRequired
├─ listobject []RequiredStaff listitem type: object
├─ idstringRequiredRegion ID
├─ namestringRequiredRegion name
├─ remarkstringRequiredRemarks
├─ totalstringRequiredTotal count

III. Product-Related Interfaces#

3.1 Batch Add Products#

Basic Information
Path: /open_api/merchant/products
Method: POST
Interface Description:
When meta code is 40069, special error codes returned in response.err_list[].err_code:
Error CodeDescriptionDetail
40015Please fill in the category.category_id not filled
40016The category is out of range.category_id not within acceptable values
40017Please fill in the product name.name field not filled
40018The product name is too long.name field max 150 characters
40020The currency is out of range.price_unit field value is incorrect
40021Please enter the priceprice field not filled
40022Wrong format! Please enter numbers and make sure there are no more than 7 numbers before the decimal point and no more than 2 numbers after the decimal point.price field format is incorrect
40025The image format is wrong.pic field is empty or format is incorrect or string length exceeds 255
40028The target problems are out of range.problem field is incorrect
40030The skin types are out of range.skin_type field filled in incorrectly
40031Please fill in applicable age.min_age, max_age fields not filled
40032Applicable age is out of range.age_limit field not filled or value is illegal
40033Limited range is empty or the format is wrong.min_age, max_age values are illegal
40034The product label is too long.label field supports max 4 tags
40035The format of the product link is wrong.link field format is incorrect
40038The product label is too long.Each label max 10 characters
40048The subtitle is too long.sub_title field max 300 characters
40049Nursing stage is wrong.nurse_stage field filled in incorrectly (pending deletion)
40050Customer's level is wrong.user_level field filled in incorrectly
40055Wrong product serial number.custom_id field is empty or input is incorrect
40067Product number does not exist.Product number does not exist
40070The set product number is incorrect.Product number in suit_custom_id is incorrect
40072No image foundpic field is empty
40077Product instructions should not exceed 2,000 charactersProduct instructions cannot exceed 2000 characters
Request Parameters
Headers
Parameter NameValueRequiredExampleNotes
access-tokenRequiredGroup/merchant token
merchant-idNot requiredMerchant ID, required when access-token is a group-type token
REQUEST BODY SCHEMA: application/json
NameTypeRequiredDefaultNotesOther Info
product_listobject []RequiredProduct list, max 100 itemsitem type: object
├─ category_idintegerRequiredCategory ID, see "Product Category ID Explanation"
├─ namestringRequiredTitle, max 75 characters
├─ sub_titlestringNot requiredSubtitle, max 150 characters
├─ custom_idstringRequiredProduct number
├─ price_unitintegerNot requiredPrice unitSee section 1.5
├─ pricenumberNot requiredPrice: max 7 digits before decimal; max 2 digits after decimal (if not filled, defaults to -1, meaning no price)
├─ picstringRequiredImage URL, max 255 characters
├─ suit_custom_idobject []Not requiredRequired when category_id is set to Setitem type: object
├─ custom_idstringRequiredSet product number
├─ quantityintegerRequiredSet product quantity
├─ problemobjectNot requiredTarget problems, see section 1.7. Reference format: {acne:[1,2,],pore:[1,2]}
├─ skin_typestring []Not requiredApplicable skin types. Array element values: 1-Dry skin, 2-Normal skin, 3-Oily skin, 4-Combination skin. Reference format: [1, 2, 3, 4]
├─ age_limitintegerRequiredWhether age is restricted: 0-No restriction, 1-Restricted
├─ min_ageintegerNot requiredMinimum age, required when age_limit is restricted
├─ max_ageintegerNot requiredMaximum age, required when age_limit is restricted, range 0~120
├─ nurse_stageintegerNot requiredCare stage: 1-Basic care, 2-Advanced carePending deletion
├─ user_levelstringNot requiredCustomer level values, multiple levels separated by English commas
├─ labelstringNot requiredLabels: max 4 labels, each label max 10 characters, multiple labels separated by English commas
├─ linkstringNot requiredProduct URL
├─ instructionstringNot requiredProduct description
├─ lang_dataobjectNot requiredMulti-language data. Reference format: {"zh-Hans":{"name":"XXX","sub_title":"xx","label":"xx","instruction":"xxx"},"en":{"name":"XXX","sub_title":"xx","label":"xx","instruction":"xxx"}}
├─ zh-HansobjectNot requiredMulti-language setting key (see "Get Merchant Languages API")
├─ namestringNot requiredMulti-language product title
├─ sub_titlestringNot requiredMulti-language product subtitle
├─ labelstringNot requiredMulti-language product labels
├─ instructionstringNot requiredMulti-language product description
├─ goods_attributes_codestringNot requiredProduct attribute codes, separated by English commas
Response Data
NameTypeRequiredNotesOther Info
metaobjectRequired
├─ codeintegerRequired
├─ msgstringRequired
├─ errorstringRequired
├─ request_uristringRequired
responseobjectRequired
├─ err_listobject []Not requiredFailed product dataitem type: object
├─ custom_idstringRequiredError product number
├─ err_codestringRequiredError code, see notes
├─ err_msgstringRequiredError message

3.2 Batch Modify Products#

Basic Information
Path: /open_api/merchant/products
Method: PATCH
Interface Description:
When meta code is 40069, special error codes returned in response.err_list[].err_code:
Error CodeDescriptionDetail
40007Failed to edit. The product has been applied to xxx set and set type cannot be changed.Products already referenced by a set cannot be changed to a set
40016The category is out of range.category_id not within acceptable values
40017Please fill in the product name.name field not filled
40018The product name is too long.name field max 150 characters
40020The currency is out of range.price_unit field value is incorrect
40021Please enter the priceprice field not filled
40022Wrong format! Please enter numbers and make sure there are no more than 7 numbers before the decimal point and no more than 2 numbers after the decimal point.price field format is incorrect
40025The image format is wrong.pic field is empty or format is incorrect or string length exceeds 255
40028The target problems are out of range.problem field is incorrect
40030The skin types are out of range.skin_type field filled in incorrectly
40031Please fill in applicable age.min_age, max_age fields not filled
40032Applicable age is out of range.age_limit field not filled or value is illegal
40033Limited range is empty or the format is wrong.min_age, max_age values are illegal
40034The product label is too long.label field supports max 4 tags
40035The format of the product link is wrong.link field format is incorrect
40038The product label is too long.Each label max 10 characters
40048The subtitle is too long.sub_title field max 300 characters
40049Nursing stage is wrong.nurse_stage field filled in incorrectly (pending deletion)
40050Customer's level is wrong.user_level field filled in incorrectly
40055Wrong product serial number.custom_id field is empty or input is incorrect
40067Product number does not exist.Product number does not exist
40070The set product number is incorrect.Product number in suit_custom_id is incorrect
40071No update data foundNo fields to update were filled in
40076Sets of products are not allowed to change to other typesSet products cannot be changed to non-set products
40077Product instructions should not exceed 2,000 charactersProduct instructions cannot exceed 2000 characters
Request Parameters
Headers
Parameter NameValueRequiredExampleNotes
access-tokenYesGroup/merchant token
merchant-idNoMerchant ID, required when access-token is a group-type token
Content-Typeapplication/jsonYes
REQUEST BODY SCHEMA: application/json
NameTypeRequiredDefaultNotesOther Info
product_listobject []Not requiredProduct list, max 100 itemsitem type: object
├─ category_idintegerNot requiredCategory ID, see "Product Category ID Explanation"
├─ namestringNot requiredTitle, max 75 characters
├─ sub_titlestringNot requiredSubtitle, max 150 characters
├─ custom_idstringRequiredProduct number, supports numbers and letters, max 50 characters
├─ price_unitintegerNot requiredPrice unit: 0-¥(CNY), 1-¥(JPY), 2-,3−€,4−£,5−₩,6−HK, 7-MOP,8−NT, 9-฿
├─ pricenumberNot requiredPrice, max 7 digits before decimal; max 2 digits after decimal (defaults to -1 if not filled)
├─ picstringNot requiredImage URL, max 255 characters
├─ suit_custom_idobject []Not requiredRequired when category_id is set to Setitem type: object
├─ custom_idstringNot requiredSet product number
├─ quantityintegerNot requiredSet product quantity
├─ problemobjectNot requiredTarget problems, see section 1.7. Reference format: {acne:[1,2,],pore:[1,2]}
├─ skin_typestring []Not requiredApplicable skin types. Array element values: 1-Dry skin, 2-Normal skin, 3-Oily skin, 4-Combination skin. Reference format: [1, 2, 3, 4]
├─ age_limitintegerNot requiredWhether age is restricted: 0-No restriction, 1-Restricted
├─ min_ageintegerNot requiredMinimum age, required when age_limit is restricted
├─ max_ageintegerNot requiredMaximum age, required when age_limit is restricted, range 0~120
├─ nurse_stageintegerNot requiredCare stage: 1-Basic care, 2-Advanced care(Pending deletion)
├─ user_levelstringNot requiredCustomer level values, multiple levels separated by English commas
├─ labelstringNot requiredLabels: max 4 labels, each label max 10 characters, multiple labels separated by English commas
├─ linkstringNot requiredProduct URL
├─ instructionstringNot requiredProduct description
├─ lang_dataobjectNot requiredMulti-language data. Reference format: {"zh-Hans":{"name":"XXX","sub_title":"xx","label":"xx","instruction":"xxx"},"en":{"name":"XXX","sub_title":"xx","label":"xx","instruction":"xxx"}}
├─ zh-HansobjectNot requiredMulti-language setting key (see "Get Merchant Languages API")
├─ namestringNot requiredMulti-language product title
├─ sub_titlestringNot requiredMulti-language product subtitle
├─ labelstringNot requiredMulti-language product labels
├─ instructionstringNot requiredMulti-language product description
├─ goods_attributes_codestringNot requiredProduct attribute codes, separated by English commas
Response Data
NameTypeRequiredNotesOther Info
metaobjectRequired
├─ codeintegerRequired
├─ msgstringRequired
├─ errorstringRequired
├─ request_uristringRequired
responseobjectRequired
├─ err_listobject []Not requiredList of failed product updatesitem type: object
├─ custom_idstringRequiredProduct number
├─ err_codestringRequiredError code, see notes
├─ err_msgstringRequiredError message

3.3 Batch Delete Products#

Basic Information
Path: /open_api/merchant/products
Method: DELETE
Interface Description:
meta code:
Error CodeDescriptionDetail
40067Product number does not exist.Product number does not exist
When meta code is 40069, special error codes returned in response.err_list[].err_code:
Error CodeDescriptionDetail
40000This product does not existProduct under custom_id does not exist
40001This product belongs to another merchant.Product under custom_id does not belong to the current merchant
40008The selected product has been applied to XXX set and cannot be deleted.Product under custom_id is a sub-product of another set product and cannot be deleted
40067Product number does not exist.Product number does not exist
40073This product can not be deletedProduct is not a merchant-created product and cannot be deleted
Request Parameters
Headers
Parameter NameValueRequiredExampleNotes
access-tokenYesGroup/merchant token
merchant-idNoMerchant ID, required when access-token is a group-type token
Content-Typeapplication/jsonYes
REQUEST BODY SCHEMA: application/json
NameTypeRequiredDefaultNotesOther Info
custom_idsstring []RequiredProduct number array, max 100item type: string
Response Data
NameTypeRequiredNotesOther Info
metaobjectRequired
├─ codenumberRequired
├─ msgstringRequired
├─ errorstringRequired
├─ request_uristringRequired
responseobjectRequired
├─ err_listobject []Not requiredFailed product deletion dataitem type: object
├─ custom_idstringRequiredProduct number
├─ err_codestringRequiredError code, see notes
├─ err_msgstringRequiredError message

3.4 Batch Enable/Disable Products#

Basic Information
Path: /open_api/product/status/{status}
Method: PATCH
Interface Description:
When meta code is 40069, special error codes returned in response.err_list[].err_code:
Error CodeDescriptionDetail
40067Product number does not exist.Product number does not exist
Request Parameters
Headers
Parameter NameValueRequiredExampleNotes
access-tokenYesGroup/merchant token
merchant-idNoMerchant ID, required when access-token is a group-type token
Content-Typeapplication/jsonYes
Path Parameters
Parameter NameExampleNotes
status11-Enable, -1-Disable
REQUEST BODY SCHEMA: application/json
NameTypeRequiredDefaultNotesOther Info
custom_idsstring []RequiredProduct number array, max 100 product numbersitem type: string
Response Data
NameTypeRequiredNotesOther Info
metaobjectRequired
├─ codenumberRequired
├─ msgstringRequired
├─ errorstringRequired
├─ request_uristringRequired
responseobjectRequired
├─ err_listobject []Not requiredFailed product dataitem type: object
├─ custom_idstringRequiredProduct number
├─ err_codestringRequiredError code, see notes
├─ err_msgstringRequiredError message

3.5 Set Product Available Stores#

Basic Information
Path: /open_api/product/sale_stores
Method: PATCH
Request Parameters
Headers
Parameter NameValueRequiredExampleNotes
access-tokenYesGroup/merchant token
merchant-idNoMerchant ID, required when access-token is a group-type token
Content-Typeapplication/jsonYes
REQUEST BODY SCHEMA: application/json
NameTypeRequiredDefaultNotesOther Info
custom_idstringRequiredProduct number
sell_typenumberRequiredAvailable stores: 1-All stores, 2-Specific stores
store_liststring []Not requiredStore number array, required when sell_type is 2item type: string
Response Data
NameTypeRequiredNotesOther Info
metaobjectRequired
├─ codenumberRequired
├─ msgstringRequired
├─ errorstringRequired
├─ request_uristringRequired
responseobjectRequired

3.6 Set Store Product Link#

Basic Information
Path: /open_api/product/links
Method: PATCH
Interface Description:
meta code:
Error CodeDescriptionDetail
40066Product not available for sale.The product corresponding to the filled product number is not available for sale at this store
40068The store is not a Premium Version store.The filled store is not an advanced store; only advanced stores support setting links
Request Parameters
Headers
Parameter NameValueRequiredExampleNotes
access-tokenYesGroup/merchant token
merchant-idNoMerchant ID, required when access-token is a group-type token
Content-Typeapplication/jsonYes
REQUEST BODY SCHEMA: application/json
NameTypeRequiredDefaultNotesOther Info
custom_idstringRequiredProduct number
link_listobject []RequiredLink list, max 100 itemsitem type: object
├─ store_custom_idstringRequiredStore number
├─ link_typeintegerRequiredLink type: 0-Same as headquarters, 1-Store independent setting
├─ linkstringNot requiredStore product link, required when link_type is 1
Response Data
NameTypeRequiredNotesOther Info
metaobjectRequired
├─ codenumberRequired
├─ msgstringRequired
├─ errorstringRequired
├─ request_uristringRequired
responseobjectRequired

3.7 Get Merchant Product List#

Basic Information
Path: /open_api/merchant/products
Method: GET
Request Parameters
Headers
Parameter NameValueRequiredExampleNotes
access-tokenYesGroup/merchant token
merchant-idNoMerchant ID, required when access-token is a group-type token
Query
Parameter NameRequiredExampleNotes
pageNoPage number, defaults to 1
countNoItems per page, defaults to 20, max 100
Response Data
NameTypeRequiredNotesOther Info
metaobjectRequired
├─ codeintegerRequired
├─ msgstringRequired
├─ errorstringRequired
├─ request_uristringRequired
responseobjectRequired
├─ totalintegerRequiredTotal count
├─ listobject []RequiredProduct listitem type: object
├─ idstringRequiredProduct ID
├─ category_idintegerRequiredProduct category ID (see notes)
├─ picstringRequiredProduct image URL
├─ namestringRequiredDefault language product name
├─ problemobjectRequiredTarget problems, see section 1.6. Reference format: {acne:[1,2,],pore:[1,2]}
├─ skin_typestring[]RequiredApplicable skin types. Array element values: 1-Dry, 2-Normal, 3-Oily, 4-Combination. Reference format: [1, 2, 3, 4]
├─ labelstringRequiredDefault language labels, multiple labels separated by English commas
├─ price_unitintegerRequiredPrice unit
├─ pricenumberRequiredPrice
├─ price_symbolstringRequiredPrice symbol
├─ linkstringRequiredLink
├─ sourceintegerRequiredSource: 1-Created by store, 2-Created by merchant
├─ statusintegerRequiredStatus: -1-Disabled, 1-Normal
├─ age_limitintegerRequiredAge restriction: 0-No restriction, 1-Restricted range
├─ min_ageintegerRequiredMinimum applicable age
├─ max_ageintegerRequiredMaximum applicable age
├─ sub_titlestringRequiredDefault language subtitle
├─ user_level_limitnumberRequiredCustomer level restriction: 0-No restriction, 1-Restricted level
├─ user_levelstringRequiredRestricted levels, multiple levels separated by English commas
├─ nurse_stageintegerRequiredCare stage: 0-Not set, 1-Basic care, 2-Advanced carePending deletion
├─ instructionstringRequiredDefault language product instructions
├─ lang_dataobjectNot requiredOther language data. Reference format: {"zh-Hans":{"name":"XXX","sub_title":"xx","label":"xx","instruction":"xxx"},"en":{"name":"XXX","sub_title":"xx","label":"xx","instruction":"xxx"}}
├─ zh-HansobjectRequiredLanguage identifier key
├─ namestringRequiredProduct name
├─ sub_titlestringRequiredSubtitle
├─ labelstringRequiredLabels, multiple labels separated by English commas
├─ instructionstringRequiredInstructions
├─ goods_attributes_limitstringRequiredWhether product attributes are restricted: 0-No, 1-Yes
├─ goods_attributes_codestringNot requiredProduct attribute codes, separated by English commas

3.8 Get Store Product List#

Basic Information
Path: /open_api/store/products
Method: GET
Request Parameters
Headers
Parameter NameValueRequiredExampleNotes
access-tokenYesGroup/merchant token
merchant-idNoMerchant ID, required when access-token is a group-type token
Query
Parameter NameRequiredExampleNotes
store_custom_idYesStore number
pageNoPage number, defaults to 1
countNoItems per page, defaults to 20, max 100
Response Data
NameTypeRequiredNotesOther Info
metaobjectRequired
├─ codeintegerRequired
├─ msgstringRequired
├─ errorstringRequired
├─ request_uristringRequired
responseobjectRequired
├─ totalintegerRequiredTotal count
├─ listobject []RequiredProduct listitem type: object
├─ idstringRequiredProduct ID
├─ category_idintegerRequiredProduct category ID
├─ picstringRequiredProduct image URL
├─ namestringRequiredDefault language product name
├─ problemobjectRequiredTarget problems. Reference format: {acne:[1,2,],pore:[1,2]} (see notes)
├─ skin_typestring[]RequiredApplicable skin types. Array element values: 1-Dry, 2-Normal, 3-Oily, 4-Combination. Reference format: [1, 2, 3, 4]
├─ labelstringRequiredDefault language labels, multiple labels separated by English commas
├─ price_unitintegerRequiredPrice unit
├─ pricenumberRequiredPrice
├─ price_symbolstringRequiredPrice symbol
├─ linkstringRequiredMerchant product link
├─ store_linkstringRequiredStore product link
├─ sourceintegerRequiredSource: 1-Created by store, 2-Created by merchant
├─ statusintegerRequiredStatus: -1-Disabled, 1-Normal
├─ age_limitintegerRequiredAge restriction: 0-No restriction, 1-Restricted range
├─ min_ageintegerRequiredMinimum applicable age
├─ max_ageintegerRequiredMaximum applicable age
├─ sub_titlestringRequiredDefault language subtitle
├─ user_level_limitnumberRequiredCustomer level restriction: 0-No restriction, 1-Restricted level
├─ user_levelstringRequiredRestricted levels, multiple levels separated by English commas
├─ nurse_stageintegerRequiredCare stage: 0-Not set, 1-Basic care, 2-Advanced carePending deletion
├─ instructionstringRequiredDefault language product instructions
├─ lang_dataobjectNot requiredOther language data. Reference format: {"zh-Hans":{"name":"XXX","sub_title":"xx","label":"xx","instruction":"xxx"},"en":{"name":"XXX","sub_title":"xx","label":"xx","instruction":"xxx"}}
├─ zh-HansobjectRequiredLanguage identifier key
├─ namestringRequiredProduct name
├─ sub_titlestringRequiredSubtitle
├─ labelstringRequiredLabels, multiple labels separated by English commas
├─ instructionstringRequiredInstructions
├─ goods_attributes_limitstringRequiredWhether product attributes are restricted: 0-No, 1-Yes
├─ goods_attributes_codestringNot requiredProduct attribute codes, separated by English commas

IV. Treatment-Related Interfaces#

4.1 Batch Add Treatments#

Basic Information
Path: /open_api/merchant/treatments
Method: POST
Interface Description:
When meta code is 40069, special error codes returned in response.err_list[].err_code:
Error CodeDescriptionDetail
40017Please fill in the product name.name field not filled
40018The product name is too long.name field max 150 characters
40020The currency is out of range.price_unit field value is incorrect
40021Please enter the priceprice field not filled
40022Wrong format! Please enter numbers and make sure there are no more than 7 numbers before the decimal point and no more than 2 numbers after the decimal point.price field format is incorrect
40025The image format is wrong.pic field is empty or format is incorrect or string length exceeds 255
40028The target problems are out of range.problem field is incorrect
40030The skin types are out of range.skin_type field filled in incorrectly
40031Please fill in applicable age.min_age, max_age fields not filled
40032Applicable age is out of range.age_limit field not filled or value is illegal
40033Limited range is empty or the format is wrong.min_age, max_age values are illegal
40034The product label is too long.label field supports max 4 tags
40035The format of the product link is wrong.link field format is incorrect
40038The product label is too long.Each label max 10 characters
40048The subtitle is too long.sub_title field max 300 characters
40049Nursing stage is wrong.nurse_stage field filled in incorrectly (pending deletion)
40050Customer's level is wrong.user_level field filled in incorrectly
40055Wrong product serial number.custom_id field is empty or input is incorrect
40075Treatment number does not exist.Treatment number does not exist
40072No image foundpic field is empty
40077Product instructions should not exceed 2,000 charactersProduct instructions cannot exceed 2000 characters
Request Parameters
Headers
Parameter NameValueRequiredExampleNotes
access-tokenYesGroup/merchant token
merchant-idNoMerchant ID, required when access-token is a group-type token
Content-Typeapplication/jsonYes
REQUEST BODY SCHEMA: application/json
NameTypeRequiredDefaultNotesOther Info
treatments_listobject []RequiredTreatment data list, max 100 itemsitem type: object
├─ namestringRequiredTitle, max 75 characters
├─ sub_titlestringNot requiredSubtitle, max 150 characters
├─ custom_idstringRequiredTreatment number, supports numbers and letters, max 50 characters
├─ price_unitintegerNot requiredPrice unit: 0-¥(CNY), 1-¥(JPY), 2-,3−€,4−£,5−₩,6−HK, 7-MOP,8−NT, 9-฿
├─ pricenumberNot requiredPrice, max 7 digits before decimal; max 2 digits after decimal (defaults to -1 if not filled)
├─ picstringRequiredImage URL, max 255 characters
├─ problemobjectNot requiredTarget problems, see section 1.7. Reference format: {acne:[1,2,],pore:[1,2]}
├─ age_limitintegerRequiredWhether age is restricted: 0-No restriction, 1-Restricted
├─ min_ageintegerNot requiredMinimum age, required when age_limit is restricted
├─ max_ageintegerNot requiredMaximum age, required when age_limit is restricted, range 0~120
├─ user_levelstringNot requiredCustomer level values, multiple levels separated by English commas
├─ labelstringNot requiredLabels: max 4 labels, each label max 10 characters, multiple labels separated by English commas
├─ linkstringNot requiredTreatment URL
├─ instructionstringNot requiredTreatment description
├─ lang_dataobjectNot requiredMulti-language parameter list. Reference format: {"zh-Hans":{"name":"XXX","sub_title":"xx","label":"xx"},"en":{"name":"XXX","sub_title":"xx","label":"xx"}}
├─ zh-HansobjectNot requiredMulti-language identifier (see notes)
├─ namestringNot requiredCorresponding multi-language title
├─ sub_titlestringNot requiredCorresponding multi-language subtitle
├─ labelstringNot requiredCorresponding multi-language labels
├─ goods_attributes_codestringNot requiredProduct attribute codes, separated by English commas
Response Data
NameTypeRequiredNotesOther Info
metaobjectRequired
├─ codeintegerRequired
├─ msgstringRequired
├─ errorstringRequired
├─ request_uristringRequired
responseobjectRequired
├─ err_listobject []Not requiredList of failed treatments
├─ custom_idstringRequiredTreatment number
├─ err_codestringRequiredError code, see notes
├─ err_msgstringRequiredError message

4.2 Batch Modify Treatments#

Basic Information
Path: /open_api/merchant/treatments
Method: PATCH
Interface Description:
When meta code is 40069, special error codes returned in response.err_list[].err_code:
Error CodeDescriptionDetail
40017Please fill in the product name.name field not filled
40018The product name is too long.name field max 150 characters
40020The currency is out of range.price_unit field value is incorrect
40021Please enter the priceprice field not filled
40022Wrong format! Please enter numbers and make sure there are no more than 7 numbers before the decimal point and no more than 2 numbers after the decimal point.price field format is incorrect
40025The image format is wrong.pic field is empty or format is incorrect or string length exceeds 255
40028The target problems are out of range.problem field is incorrect
40030The skin types are out of range.skin_type field filled in incorrectly
40031Please fill in applicable age.min_age, max_age fields not filled
40032Applicable age is out of range.age_limit field not filled or value is illegal
40033Limited range is empty or the format is wrong.min_age, max_age values are illegal
40034The product label is too long.label field supports max 4 tags
40035The format of the product link is wrong.link field format is incorrect
40038The product label is too long.Each label max 10 characters
40048The subtitle is too long.sub_title field max 300 characters
40049Nursing stage is wrong.nurse_stage field filled in incorrectly (pending deletion)
40050Customer's level is wrong.user_level field filled in incorrectly
40055Wrong product serial number.custom_id field is empty or input is incorrect
40067Product number does not exist.Product number does not exist
40070The set product number is incorrect.Product number in suit_custom_id is incorrect
40071No update data foundNo fields to update were filled in
40077Product instructions should not exceed 2,000 charactersProduct instructions cannot exceed 2000 characters
Request Parameters
Headers
Parameter NameValueRequiredExampleNotes
access-tokenYesGroup/merchant token
merchant-idNoMerchant ID, required when access-token is a group-type token
Content-Typeapplication/jsonYes
REQUEST BODY SCHEMA: application/json
NameTypeRequiredDefaultNotesOther Info
treatments_listobject []RequiredTreatment data list, max 100 itemsitem type: object
├─ namestringNot requiredTitle, max 75 characters
├─ sub_titlestringNot requiredSubtitle, max 150 characters
├─ custom_idstringRequiredTreatment number, supports numbers and letters, max 50 characters
├─ price_unitintegerNot requiredPrice unit: 0-¥(CNY), 1-¥(JPY), 2-,3−€,4−£,5−₩,6−HK, 7-MOP,8−NT, 9-฿
├─ pricenumberNot requiredPrice, max 7 digits before decimal; max 2 digits after decimal (defaults to -1 if not filled)
├─ picstringNot requiredImage URL, max 255 characters
├─ problemobjectNot requiredTarget problems, see section 1.7. Reference format: {acne:[1,2,],pore:[1,2]}
├─ age_limitintegerNot requiredWhether age is restricted: 0-No restriction, 1-Restricted
├─ min_ageintegerNot requiredMinimum age, required when age_limit is restricted
├─ max_ageintegerNot requiredMaximum age, required when age_limit is restricted, range 0~120
├─ user_levelstringNot requiredCustomer level values, multiple levels separated by English commas
├─ labelstringNot requiredLabels: max 4 labels, each label max 10 characters, multiple labels separated by English commas
├─ linkstringNot requiredTreatment URL
├─ instructionstringNot requiredTreatment description
├─ lang_dataobjectNot requiredMulti-language parameter list. Reference format: {"zh-Hans":{"name":"XXX","sub_title":"xx","label":"xx"},"en":{"name":"XXX","sub_title":"xx","label":"xx"}}
├─ zh-HansobjectNot requiredMulti-language identifier (see notes)
├─ namestringNot requiredCorresponding multi-language title
├─ sub_titlestringNot requiredCorresponding multi-language subtitle
├─ labelstringNot requiredCorresponding multi-language labels
├─ goods_attributes_codestringNot requiredProduct attribute codes, separated by English commas
Response Data
NameTypeRequiredNotesOther Info
metaobjectRequired
├─ codeintegerRequired
├─ msgstringRequired
├─ errorstringRequired
├─ request_uristringRequired
responseobjectRequired
├─ err_listobject []Not requiredException data listitem type: object
├─ custom_idstringRequiredTreatment number
├─ err_codestringRequiredError code, see notes
├─ err_msgstringRequiredError message

4.3 Batch Delete Treatments#

Basic Information
Path: /open_api/merchant/treatments
Method: DELETE
Interface Description:
meta code:
Error CodeDescriptionDetail
40075Treatment number does not exist.custom_id value is incorrect
When meta code is non-zero, special error codes returned in response.err_list[].err_code:
Error CodeDescriptionDetail
40074This treatment can not be deletedTreatment is not merchant-created and cannot be deleted
40075Treatment number does not exist.custom_id value is incorrect
Request Parameters
Headers
Parameter NameValueRequiredExampleNotes
access-tokenYesGroup/merchant token
merchant-idYesMerchant ID, required when access-token is a group-type token
Content-Typeapplication/jsonYes
REQUEST BODY SCHEMA: application/json
NameTypeRequiredDefaultNotesOther Info
custom_idsstring []RequiredProduct number array listitem type: string
Response Data
NameTypeRequiredNotesOther Info
metaobjectNot required
├─ codenumberNot required
├─ msgstringNot required
├─ errorstringNot required
├─ request_uristringNot required
responseobjectNot required
├─ err_listobject []Not requiredFailed treatment deletion dataitem type: object
├─ custom_idstringRequiredTreatment number
├─ err_codestringRequiredError code, see notes
├─ err_msgstringRequiredError message

4.4 Batch Enable/Disable Treatments#

Basic Information
Path: /open_api/treatment/status/{status}
Method: PATCH
Interface Description:
When meta code is non-zero, special error codes returned in response.err_list[].err_code:
Error CodeDescriptionDetail
40075Treatment number does not exist.Treatment number does not exist
Request Parameters
Headers
Parameter NameValueRequiredExampleNotes
access-tokenYesGroup/merchant token
merchant-idNoMerchant ID, required when access-token is a group-type token
Content-Typeapplication/jsonYes
Path Parameters
Parameter NameExampleNotes
status11-Enable, -1-Disable
REQUEST BODY SCHEMA: application/json
NameTypeRequiredDefaultNotesOther Info
custom_idsstring []RequiredTreatment number array, max 100 treatment numbersitem type: string
Response Data
NameTypeRequiredNotesOther Info
metaobjectRequired
├─ codenumberRequired
├─ msgstringRequired
├─ errorstringRequired
├─ request_uristringRequired
responseobjectRequired

4.5 Set Treatment Available Stores#

Basic Information
Path: /open_api/treatment/sale_stores
Method: PATCH
Request Parameters
Headers
Parameter NameValueRequiredExampleNotes
access-tokenYesGroup/merchant token
merchant-idNoMerchant ID, required when access-token is a group-type token
Content-Typeapplication/jsonYes
REQUEST BODY SCHEMA: application/json
NameTypeRequiredDefaultNotesOther Info
custom_idstringRequiredTreatment number
sell_typenumberRequiredAvailable stores: 1-All stores, 2-Specific stores
store_liststring []Not requiredStore number array list, required when sell_type is 2item type: string
Response Data
NameTypeRequiredNotesOther Info
metaobjectRequired
├─ codenumberRequired
├─ msgstringRequired
├─ errorstringRequired
├─ request_uristringRequired
responseobjectRequired

4.6 Get Merchant Treatment List#

Basic Information
Path: /open_api/merchant/treatments
Method: GET
Request Parameters
Headers
Parameter NameValueRequiredExampleNotes
access-tokenYesGroup/merchant token
merchant-idNoMerchant ID, required when access-token is a group-type token
Query
Parameter NameRequiredExampleNotes
pageNoPage number, defaults to 1
countNoItems per page, defaults to 20, max 100
Response Data
NameTypeRequiredNotesOther Info
metaobjectRequired
├─ codeintegerRequired
├─ msgstringRequired
├─ errorstringRequired
├─ request_uristringRequired
responseobjectRequired
├─ totalintegerRequiredTotal count
├─ listobject []RequiredProduct listitem type: object
├─ idstringRequiredTreatment ID
├─ custom_idstringRequiredTreatment number
├─ picstringRequiredImage URL
├─ namestringRequiredDefault language product name
├─ problemobjectRequiredTarget problems, see section 1.7. Reference format: {acne:[1,2,],pore:[1,2]}
├─ labelstringRequiredDefault language labels, multiple labels separated by English commas
├─ price_unitintegerRequiredPrice unit
├─ pricenumberRequiredPrice
├─ price_symbolstringRequiredPrice symbol
├─ linkstringRequiredLink
├─ sourceintegerRequiredSource: 1-Created by store, 2-Created by merchant
├─ statusintegerRequiredStatus: -1-Disabled, 1-Normal
├─ age_limitintegerRequiredAge restriction: 0-No restriction, 1-Restricted range
├─ min_ageintegerRequiredMinimum applicable age
├─ max_ageintegerRequiredMaximum applicable age
├─ sub_titlestringRequiredDefault language subtitle
├─ user_level_limitnumberRequiredCustomer level restriction: 0-No restriction, 1-Restricted level
├─ user_levelstringRequiredRestricted levels, multiple levels separated by English commas
├─ instructionstringRequiredDefault language treatment instructions
├─ lang_dataobjectNot requiredOther language data. Reference format: {"zh-Hans":{"name":"XXX","sub_title":"xx","label":"xx","instruction":"xx"},"en":{"name":"XXX","sub_title":"xx","label":"xx","instruction":"xx"}}
├─ zh-HansobjectRequiredLanguage identifier key (using Simplified Chinese as example)
├─ namestringRequiredTreatment name
├─ sub_titlestringRequiredSubtitle
├─ labelstringRequiredLabels, multiple labels separated by English commas
├─ instructionstringRequiredInstructions
├─ goods_attributes_limitstringRequiredWhether product attributes are restricted: 0-No, 1-Yes
├─ goods_attributes_codestringNot requiredProduct attribute codes, separated by English commas

4.7 Get Store Treatment List#

Basic Information
Path: /open_api/store/treatments
Method: GET
Request Parameters
Headers
Parameter NameValueRequiredExampleNotes
access-tokenYesGroup/merchant token
merchant-idNoMerchant ID, required when access-token is a group-type token
Query
Parameter NameRequiredExampleNotes
store_custom_idYes2442Store number
pageNoPage number, defaults to 1
countNoItems per page, defaults to 20, max 100
Response Data
NameTypeRequiredNotesOther Info
metaobjectRequired
├─ codeintegerRequired
├─ msgstringRequired
├─ errorstringRequired
├─ request_uristringRequired
responseobjectRequired
├─ totalintegerRequiredTotal count
├─ listobject []RequiredProduct listitem type: object
├─ idstringRequiredTreatment ID
├─ custom_idstringRequiredTreatment number
├─ picstringRequiredImage URL
├─ namestringRequiredDefault language product name
├─ problemobjectRequiredTarget problems. Reference format: {acne:[1,2,],pore:[1,2]}
├─ labelstringRequiredDefault language labels, multiple labels separated by English commas
├─ price_unitintegerRequiredPrice unit
├─ pricenumberRequiredPrice
├─ price_symbolstringRequiredPrice symbol
├─ linkstringRequiredMerchant product link
├─ sourceintegerRequiredSource: 1-Created by store, 2-Created by merchant
├─ statusintegerRequiredStatus: -1-Disabled, 1-Normal
├─ age_limitintegerRequiredAge restriction: 0-No restriction, 1-Restricted range
├─ min_ageintegerRequiredMinimum applicable age
├─ max_ageintegerRequiredMaximum applicable age
├─ sub_titlestringRequiredDefault language subtitle
├─ user_level_limitnumberRequiredCustomer level restriction: 0-No restriction, 1-Restricted level
├─ user_levelstringRequiredRestricted levels, multiple levels separated by English commas
├─ instructionstringRequiredDefault language product instructions
├─ lang_dataobjectNot requiredOther language data
├─ zh-HansobjectRequiredLanguage identifier key
├─ namestringRequiredTreatment name
├─ sub_titlestringRequiredSubtitle
├─ labelstringRequiredLabels, multiple labels separated by English commas
├─ instructionstringRequiredInstructions
├─ goods_attributes_limitstringRequiredWhether product attributes are restricted: 0-No, 1-Yes
├─ goods_attributes_codestringNot requiredProduct attribute codes, separated by English commas

4.8 Set Store Treatment Link#

Basic Information
Path: /open_api/treatment/links
Method: PATCH
Interface Description:
meta code:
Error CodeDescriptionDetail
40068The store is not a Premium Version store.The filled store is not an advanced store; only advanced stores support setting links
40089Treatment unavailable for purchase.The treatment corresponding to the filled treatment number is not available for sale at this store
Request Parameters
Headers
Parameter NameValueRequiredExampleNotes
access-tokenYesGroup/merchant token
merchant-idNoMerchant ID, required when access-token is a group-type token
Content-Typeapplication/jsonYes
REQUEST BODY SCHEMA: application/json
NameTypeRequiredDefaultNotesOther Info
custom_idstringRequiredTreatment number
link_listobject []RequiredLink list, max 100 itemsitem type: object
├─ store_custom_idstringRequiredStore number
├─ link_typeintegerRequiredLink type: 0-Same as headquarters, 1-Store independent setting
├─ linkstringNot requiredStore treatment link, required when link_type is 1
Response Data
NameTypeRequiredNotesOther Info
metaobjectRequired
├─ codenumberRequired
├─ msgstringRequired
├─ errorstringRequired
├─ request_uristringRequired
responseobjectRequired
Previous
Skin analysis
Next
Skin analysis report data API pull related instructions
Built with