# Customer/Products

## Add Optional Products

> version=0.0.1\
> bizType=customer.app.CustomerOptionalWebApiService.add\
> Accessible after login

```json
{"openapi":"3.0.1","info":{"title":"Default module","version":"1.0.0"},"tags":[{"name":"Customer/Products"}],"servers":[{"url":"https://prewppc-3.cmfbl.com/api","description":"PRE测试公司439"}],"security":[],"paths":{"/global/customer.app.CustomerOptionalWebApiService.add":{"post":{"summary":"Add Optional Products","deprecated":false,"description":"version=0.0.1\nbizType=customer.app.CustomerOptionalWebApiService.add\nAccessible after login","operationId":"add","tags":["Customer/Products"],"parameters":[{"name":"companyId","in":"header","description":"","required":false,"schema":{"type":"string"}},{"name":"token","in":"header","description":"","required":false,"schema":{"type":"string"}},{"name":"lang","in":"header","description":"","required":false,"schema":{"type":"string"}},{"name":"trace","in":"header","description":"","required":false,"schema":{"type":"string"}},{"name":"version","in":"header","description":"","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"symbolList":{"type":"array","description":"Product ID Collection","items":{"type":"integer","format":"int64"},"maxItems":2147483647,"minItems":1},"tradeType":{"type":"integer","format":"int64","description":"Game ID, 1-CFD Full Position 2-CFD Isolated Position 3-Leveraged Full Position 5-Spot Game","minimum":1}},"required":["tradeType","symbolList"]}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResult1"}}},"headers":{}}}}}},"components":{"schemas":{"BaseResult1":{"type":"object","properties":{"bizCode":{"type":"string","description":"Module identifier code"},"code":{"type":"string","description":"Status return code"},"msg":{"type":"string","description":"Status description"},"tm":{"type":"integer","format":"int64","description":"Processing time (milliseconds)"},"trace":{"type":"string","description":"Tracking code"},"msgParams":{"type":"string","description":"Placeholder parameter string in return description, multiple parameters separated by commas"},"data":{"type":"object","description":"Data Body","properties":{}},"ok":{"type":"boolean"},"fail":{"type":"boolean"}}}}}}
```

## Delete selected products

> version=0.0.1\
> bizType=customer.app.CustomerOptionalWebApiService.delete\
> Access after login

```json
{"openapi":"3.0.1","info":{"title":"Default module","version":"1.0.0"},"tags":[{"name":"Customer/Products"}],"servers":[{"url":"https://prewppc-3.cmfbl.com/api","description":"PRE测试公司439"}],"security":[],"paths":{"/global/customer.app.CustomerOptionalWebApiService.delete":{"post":{"summary":"Delete selected products","deprecated":false,"description":"version=0.0.1\nbizType=customer.app.CustomerOptionalWebApiService.delete\nAccess after login","operationId":"delete","tags":["Customer/Products"],"parameters":[{"name":"companyId","in":"header","description":"","required":false,"schema":{"type":"string"}},{"name":"token","in":"header","description":"","required":false,"schema":{"type":"string"}},{"name":"lang","in":"header","description":"","required":false,"schema":{"type":"string"}},{"name":"trace","in":"header","description":"","required":false,"schema":{"type":"string"}},{"name":"version","in":"header","description":"","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"symbolList":{"type":"array","description":"Product Ids","items":{"type":"integer","format":"int64"},"maxItems":2147483647,"minItems":1},"tradeType":{"type":"integer","format":"int64","description":"1-CFD Full Position 2-CFD Cross Position 3-Leveraged Full Position 5-Spot Play","minimum":1}},"required":["tradeType"]}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResult1"}}},"headers":{}}}}}},"components":{"schemas":{"BaseResult1":{"type":"object","properties":{"bizCode":{"type":"string","description":"Module identifier code"},"code":{"type":"string","description":"Status return code"},"msg":{"type":"string","description":"Status description"},"tm":{"type":"integer","format":"int64","description":"Processing time (milliseconds)"},"trace":{"type":"string","description":"Tracking code"},"msgParams":{"type":"string","description":"Placeholder parameter string in return description, multiple parameters separated by commas"},"data":{"type":"object","description":"Data Body","properties":{}},"ok":{"type":"boolean"},"fail":{"type":"boolean"}}}}}}
```

## Customized List

> version=0.0.1\
> bizType=customer.app.CustomerOptionalWebApiService.optionalList\
> Accessible after login

```json
{"openapi":"3.0.1","info":{"title":"Default module","version":"1.0.0"},"tags":[{"name":"Customer/Products"}],"servers":[{"url":"https://prewppc-3.cmfbl.com/api","description":"PRE测试公司439"}],"security":[],"paths":{"/global/customer.app.CustomerOptionalWebApiService.optionalList":{"post":{"summary":"Customized List","deprecated":false,"description":"version=0.0.1\nbizType=customer.app.CustomerOptionalWebApiService.optionalList\nAccessible after login","operationId":"optionalList","tags":["Customer/Products"],"parameters":[{"name":"companyId","in":"header","description":"","required":false,"schema":{"type":"string"}},{"name":"token","in":"header","description":"","required":false,"schema":{"type":"string"}},{"name":"lang","in":"header","description":"","required":false,"schema":{"type":"string"}},{"name":"trace","in":"header","description":"","required":false,"schema":{"type":"string"}},{"name":"version","in":"header","description":"","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"tradeTypeList":{"type":"array","description":"Game ID collection, 1-CFD full position 2-CFD margin position 3-Leveraged full position 5-Spot game","items":{"type":"integer","format":"int64"},"maxItems":2147483647,"minItems":1}},"required":["tradeTypeList"]}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResultMapLongListCustomerOptionalVO"}}},"headers":{}}}}}},"components":{"schemas":{"BaseResultMapLongListCustomerOptionalVO":{"type":"object","properties":{"bizCode":{"type":"string","description":"Module identifier code"},"code":{"type":"string","description":"Status return code"},"msg":{"type":"string","description":"Status description"},"tm":{"type":"integer","format":"int64","description":"Processing time (milliseconds)"},"trace":{"type":"string","description":"Tracking code"},"msgParams":{"type":"string","description":"Placeholder parameter string in return description, multiple parameters separated by commas"},"data":{"type":"object","description":"Data Body","additionalProperties":{"type":"array","items":{"$ref":"#/components/schemas/CustomerOptionalVO"}},"properties":{}},"ok":{"type":"boolean"},"fail":{"type":"boolean"}}},"CustomerOptionalVO":{"type":"object","properties":{"askSpread":{"type":"number","description":"ASK Spread"},"bidSpread":{"type":"number","description":"BID Spread"},"pointRatio":{"type":"integer","format":"int32","description":"Bigger Point Ratio"},"symbolDigits":{"type":"integer","format":"int32","description":"Product decimal places"},"symbolCode":{"type":"string","description":"Product Code"},"symbolName":{"type":"string","description":"Product name"},"symbolId":{"type":"integer","format":"int64","description":"Product Id"}}}}}}
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.multimarkets.org/client-api/more.../customer-products.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
