Skip to main content

Composition Analysis model API

Last updated 10/03/2026

For how to call the API, see the calling method described in the Open API document.

To learn about use cases, read Composition Analysis in the user guide.

1. Composition Analysis query​

Endpoint URL

/open/user-prop-analyze?token=xxx

Request method

POST

Content-Type

application/json

Request query parameters

Parameter nameExample valueParameter typeRequiredDescription
tokenxxxStringYesQuery key

Request body parameters​

{
"eventView": {
"userCrowds": [
{
"crowdName": "Female",
"filts": [
{
"columnDesc": "Gender",
"columnName": "gender",
"comparator": "equal",
"filterType": "SIMPLE",
"ftv": [
"Female"],
"specifiedClusterDate": "2022-01-27",
"tableType": "user",
"timeUnit": ""
}],
"relation": "and"
},
{
"crowdName": "Male",
"filts": [
{
"columnDesc": "Gender",
"columnName": "gender",
"comparator": "equal",
"filterType": "SIMPLE",
"ftv": [
"Male"],
"specifiedClusterDate": "2022-01-27",
"tableType": "user",
"timeUnit": ""
}],
"relation": "and"
},
{
"crowdName": "Gender Unknown",
"filts": [
{
"columnDesc": "Gender",
"columnName": "gender",
"comparator": "equal",
"filterType": "SIMPLE",
"ftv": [
"Unknown"],
"specifiedClusterDate": "2022-01-27",
"tableType": "user",
"timeUnit": ""
}],
"relation": "and"
}]
},
"events": [
{
"analysis": "SUM",
"analysisDesc": "Sum",
"eventNameDisplay": "Total Balance",
"filts": [
{
"columnDesc": "Balance",
"columnName": "accountbalance",
"comparator": "greater",
"filterType": "SIMPLE",
"ftv": [
"1"],
"specifiedClusterDate": "2022-01-27",
"tableType": "user",
"timeUnit": ""
}],
"quota": "accountbalance",
"relation": "and",
"tableType": "user"
}],
"projectId": 377,
"limit": 10,
"timeoutSeconds": 10,
"useCache": true
}

Request parameters​

$$Parameter nameExample valueParameter typeRequiredDescription
eventView-ObjectYesGroup-by properties
eventView.userCrowds-ObjectNoUser groups
eventView.userCrowds.crowdNameFemaleStringYesUser group name
eventView.userCrowds.filts-ListYesFilter objects
eventView.userCrowds.filts.columnDescGenderStringNoField display name
eventView.userCrowds.filts.columnNamegenderStringYesField name
eventView.userCrowds.filts.comparatorequalStringYesSee Filter expressions in the Query API
eventView.userCrowds.filts.filterTypeSIMPLEStringNoFilter mode. SIMPLE: simple, COMPOUND: compound
eventView.userCrowds.filts.ftv["Female"]ListNoLiteral constants used as boundaries for property comparison
eventView.userCrowds.filts.specifiedClusterDate2022-01-27StringNoUses the historical version of the tag for the specified date
eventView.userCrowds.filts.tableTypeuserStringYesTable type enum values
eventView.userCrowds.filts.timeUnitStringNoTime unit of the filter
eventView.userCrowds.relationandStringYesLogical relation. and: logical AND, or: logical OR
events-ListYesList of event metrics
events.analysisSUMStringYesAnalysis type
events.analysisDescSumStringNoDescription of the analysis type (display name)
events.eventNameDisplayTotal BalanceStringNoEvent display name
events.filts-ListNoList of conditions
events.filts.columnDescBalanceStringNoField display name
events.filts.columnNameaccountbalanceStringYesField name
events.filts.comparatorgreaterStringYesSee Filter expressions in the Query API
events.filts.filterTypeSIMPLEStringNoFilter mode. SIMPLE: simple, COMPOUND: compound
events.filts.ftv["1"]ListNoLiteral constants used as boundaries for property comparison
events.filts.specifiedClusterDate2022-01-27StringNoUses the historical version of the tag for the specified date
events.filts.tableTypeuserStringYesTable type enum values
events.filts.timeUnitStringNoTime unit of the filter
events.quotaaccountbalanceStringNoLogical relation. and: logical AND, or: logical OR
events.relationandStringNoLogical relation. and: logical AND, or: logical OR
events.tableTypeuserStringYesTable type enum values
projectId377IntegerYesProject ID
limit10IntegerNoMaximum number of groups per analysis object. Optional. Defaults to 1000, with a maximum of 10000
timeoutSeconds10IntegerNoRequest timeout. The query task is canceled when it times out
useCachetrueBooleanYestrue means the cache is used

Success response example​

{
"data": {
"data_list": [
{
"group_cols": [
"Female"
],
"values": 1140523491
},
{
"group_cols": [
"Male"
],
"values": 1141720850
},
{
"group_cols": [
"Gender Unknown"
],
"values": 227565607
}
],
"group_cols_sorted": [
[
"Female",
"Male",
"Gender Unknown"
]
],
"group_num": 0,
"result_generate_time": "2022-01-27 15:01:51",
"unit": ""
},
"return_code": 0,
"return_message": "success"
}

Response parameters​

$$Parameter nameExample valueParameter typeDescription
return_code0IntegerReturn code
return_messagesuccessStringReturn message
data-ObjectReturned result
data.data_list-ListData list
data.data_list.group_cols["Female"]ListList of groups or user groups
data.data_list.values1140523491IntegerNumber of users
data.group_cols_sorted["Female"]ListOrdered list of all groups or user groups
data.group_num0IntegerNumber of groups
data.result_generate_time2022-01-27 15:01:51StringResult generation time
data.unitStringUnit of the numeric property

Error response example

{
"return_code": -1008,
"return_message": "Parameter (token) is empty"
}
Parameter nameExample valueParameter typeDescription
return_code-1008IntegerReturn code
return_messageParameter (token) is emptyStringReturn message

2. Composition Analysis full download​

Endpoint URL

/open/streaming-download/user-prop-analyze?token=xxx

Request method

POST

Content-Type

application/json

Request query parameters

Parameter nameExample valueParameter typeRequiredDescription
tokenxxxStringYesQuery key

Request body parameters​

{
"eventView": {
"groupBy": [{
"columnDesc": "Channel",
"columnName": "channel",
"propertyRange": "",
"specifiedClusterDate": "2022-03-10",
"tableType": "user"
}],
"userCrowds": []
},
"events": [{
"analysis": "TRIG_USER_NUM",
"analysisDesc": "User Number",
"eventNameDisplay": "",
"filts": [{
"columnDesc": "Account ID",
"columnName": "#account_id",
"comparator": "notNull",
"filterType": "SIMPLE",
"ftv": [],
"specifiedClusterDate": "2022-03-10",
"tableType": "user",
"timeUnit": ""
}],
"quota": "",
"relation": "and",
"tableType": "user"
}],
"projectId": 390
}

Request parameters​

$$Parameter nameExample valueParameter typeRequiredDescription
eventView-ObjectYesSame as the parameters of the Composition Analysis query API
events-ListYesSame as the parameters of the Composition Analysis query API
projectId377IntegerYesProject ID

Response​

Same as the Composition Analysis full download in AE

3. Composition Analysis user list​

Endpoint URL

/open/user-prop-user-list?token=xxx

Request method

POST

Content-Type

application/json

Request query parameters

Parameter nameExample valueParameter typeRequiredDescription
tokenxxxStringYesQuery key
projectId0IntegerYesProject ID

Request body parameters​

{
"projectId": 0,
"events": [{
"analysis": "AVG",
"filts": [
{
"columnName": "latest_login_time",
"comparator": "relativeCurrentBetween",
"ftv": [
"7",
"1"
],
"tableType": "user"
}
],
"quota": "diamond_num",
"relation": "and",
"tableType": "user"
}],
"eventView": {
"groupBy": [
{
"columnName": "user_level",
"tableType": "user"
},
{
"columnName": "channel",
"tableType": "user"
}
]
},
"sliceGroupVal": [
"31",
"app store"
],
"timeoutSeconds": 10
}

Request parameters​

$$Parameter nameExample valueParameter typeRequiredDescription
projectId0IntegerYesProject ID
events-ListYesSame as the parameters of the Composition Analysis query API
eventView-ObjectYesSame as the parameters of the Composition Analysis query API
sliceGroupVal["31","app store"]ListNoGroup to drill down into
eventIndex0IntegerYesIndex of the user group in group comparison, starting from 0
timeoutSeconds10IntegerNoRequest timeout. The query task is canceled when it times out

Success response example​

{
"data": {
"datalist": [
{
"#account_id": "b6909071",
"#distinct_id": "b12831131",
"user_level": 31,
"register_time": "2019-09-23 09:33:31",
"diamond_num": 1250,
"first_recharge_time": "2019-11-18 08:50:33",
"latest_login_time": "2019-11-26 18:15:51",
"channel": "app store",
"#user_id": 2961031
},
{
"#account_id": "a6013000",
"#distinct_id": "a11167000",
"user_level": 31,
"register_time": "2019-09-02 19:15:08",
"diamond_num": 72,
"first_recharge_time": "2019-09-02 19:18:36",
"latest_login_time": "2019-11-24 10:02:38",
"channel": "app store",
"#user_id": 2577000
},
{
"#account_id": "j2614535",
"#distinct_id": "j4855535",
"user_level": 31,
"register_time": "2019-08-24 20:40:19",
"diamond_num": 820,
"latest_login_time": "2019-11-21 14:16:42",
"channel": "app store",
"#user_id": 1120535
}
],
"columMeta": {
"#account_id": "Account ID",
"#distinct_id": "Distinct ID",
"user_level": "User Level",
"register_time": "Registration Time",
"diamond_num": "Current Diamonds",
"first_recharge_time": "First Top-up Time",
"latest_login_time": "Last Login Time",
"channel": "Channel"
}
},
"return_code": 0,
"return_message": "success"
}

Response parameters​

$$Parameter nameExample valueParameter typeDescription
return_code0IntegerReturn code
return_messagesuccessStringReturn message
data-ObjectReturned result
data.datalist-List<Map>User information
data.columMeta-MapMapping of field meanings

Error response example

{
"return_code": -1008,
"return_message": "Parameter (token) is empty"
}
Parameter nameExample valueParameter typeDescription
return_code-1008IntegerReturn code
return_messageParameter (token) is emptyStringReturn message

4. Composition Analysis user list download​

Endpoint URL

/open/streaming-download/user-prop-user-list?token=xxx

Request method

POST

Content-Type

application/json

Request query parameters

Parameter nameExample valueParameter typeRequiredDescription
tokenxxxStringYesQuery key
projectId0IntegerYesProject ID

Request body parameters​

{
"eventView": {
"endTime": "2022-03-08 16:14:02",
"groupBy": [],
"recentDay": "",
"startTime": "2022-03-08 16:14:02",
"userCrowds": [{
"crowdName": "Group 1",
"filts": [],
"relation": "and"
}, {
"crowdName": "Group 2",
"filts": [],
"relation": "and"
}]
},
"events": [{
"analysis": "TRIG_USER_NUM",
"analysisDesc": "User Number",
"eventNameDisplay": "",
"filts": [{
"columnDesc": "Account ID",
"columnName": "#account_id",
"comparator": "notNull",
"filterType": "SIMPLE",
"ftv": [],
"specifiedClusterDate": "2022-03-08",
"tableType": "user",
"timeUnit": ""
}],
"quota": "",
"relation": "and",
"tableType": "user"
}],
"projectId": 319,
"sliceGroupVal": ["Group 2"],
"eventIndex": 0,
"selectedColumns": ["#account_id", "#distinct_id", "accountid"]
}

Request parameters​

$$Parameter nameExample valueParameter typeRequiredDescription
projectId0IntegerYesProject ID
events-ListYesSame as the parameters of the Composition Analysis query API
eventView-ObjectYesSame as the parameters of the Composition Analysis query API
sliceGroupVal["31","app store"]ListNoGroup to drill down into
eventIndex0IntegerYesIndex of the user group in group comparison, starting from 0
selectedColumns["#account_id"]arrayYesColumns to download

Response​

Same as the Composition Analysis user list download in AE

5. User event list query​

Endpoint URL

/open/user-event-list?token=xxx

Request method

POST

Content-Type

application/json

Request query parameters

Parameter nameExample valueParameter typeRequiredDescription
tokenxxxStringYesQuery key

Request body parameters​

{
"eventNames": [
"payment",
"level_up",
"activity_attend",
"draw_card",
"register",
"logout",
"login",
"gold_get",
"gold_consume"
],
"pagerHeader": {
"pageNum": 1,
"pageSize": 2
},
"projectId": 377,
"startDateTime": ["2021-11-04 00:00:00"],
"dateFormat": "week",
"firstDayOfWeek": 1,
"userId": 795687603434164226,
"timeoutSeconds": 10,
"useCache": true,
"zoneOffset": 8
}

Request parameters​

$$Parameter nameExample valueParameter typeRequiredDescription
eventNames["payment"]ListYesList of included events
pagerHeader-ObjectYesCommon pagination request header
pagerHeader.pageNum1LongNoStart page
pagerHeader.pageSize2LongNoItems per page
projectId377IntegerYesProject ID
startDateTime["2021-11-04 00:00:00"]ListNoList of start times, yyyy-MM-dd HH:mm:ss
dateFormat

week

StringYes

Time dimension unit

  • day: daily
  • week: weekly
  • month: monthly
  • total: total
firstDayOfWeek1IntegerNoFirst day of the week
userId795687603434164226LongYesUser ID of the analysis target
timeoutSeconds10IntegerNoRequest timeout. The query task is canceled when it times out
useCachetrueBooleanYestrue means the cache is used
zoneOffset10IntegerNoTime zone

Success response example​

{
"data": {
"columnDescMeta": {
"network": "Network Type",
"ip": "IP",
"browser": "Browser",
"browser_version": "Browser Version",
"manufacturer": "Manufacturer",
"#lib": "SDK Type",
"channel": "Source Channel",
"platform": "Platform",
"serverid": "Server ID",
"device_type": "Device Type",
"#lib_version": "SDK Version",
"os_version": "OS Version",
"app_version": "App Version",
"os": "OS",
"lib": "Runtime Library",
"level": "User Level",
"model": "Device Model",
"screen_height": "Screen Height",
"carrier_name": "Carrier",
"vip_level": "VIP Level",
"brand": "Brand",
"currency_type": "Currency",
"pay_amount": "Revenue",
"diamond_get_amount": "Diamonds Obtained",
"payment_name": "Bundle Name",
"is_first_pay": "First Payment",
"#country_code": "Country/Region Code",
"#ip": "Client IP",
"#city": "City",
"#province": "Province",
"#country": "Country/Region",
"screen_width": "Screen Width",
"device_id": "Device ID",
"#zone_offset": "Time Zone Offset"
},
"eventNameDescMeta": {
"anyEvent": "Any Event",
"activity_attend": "Attend Activity",
"draw_card": "Gacha",
"gold_consume": "Gold Consumption",
"gold_get": "Get Gold",
"level_up": "Level Up",
"login": "Login",
"logout": "User Logout",
"payment": "Payment Event",
"register": "Register"
},
"resultGenerateTime": "2022-01-27 15:46:08",
"userEventSeqList": [
{
"event_name": "login",
"properties": {
"#event_time": "2021-11-04 15:59:39.179",
"network": "WIFI",
"ip": "27.17.30.245",
"browser": "Safari",
"browser_version": "Safari 11.0.3",
"manufacturer": "Apple",
"#lib": "easydata",
"channel": "Baidu",
"platform": "WeGame Platform",
"serverid": "10",
"device_type": "desktop",
"#lib_version": "1.0",
"os_version": "iOS 11.4",
"app_version": "V1.0",
"os": "iOS",
"lib": "JS",
"level": "93",
"model": "iPhone X",
"screen_height": "681",
"carrier_name": "China Unicom",
"vip_level": "1",
"brand": "Apple",
"#country_code": "",
"#ip": "localhost",
"#city": "Unknown",
"#province": "Unknown",
"#country": "Unknown",
"screen_width": "360",
"device_id": "47BjM",
"#zone_offset": "-5"
},
"time": "2021-11-04 15:59:39.179"
},
{
"event_name": "payment",
"properties": {
"#event_time": "2021-11-04 15:59:46.179",
"network": "WIFI",
"ip": "27.17.30.245",
"browser": "Safari",
"browser_version": "Safari 11.0.3",
"manufacturer": "Apple",
"#lib": "easydata",
"channel": "Baidu",
"platform": "WeGame Platform",
"serverid": "10",
"device_type": "desktop",
"#lib_version": "1.0",
"os_version": "iOS 11.4",
"app_version": "V1.0",
"os": "iOS",
"lib": "JS",
"level": "93",
"model": "iPhone X",
"screen_height": "681",
"carrier_name": "China Unicom",
"vip_level": "1",
"brand": "Apple",
"currency_type": "Points",
"pay_amount": "536",
"diamond_get_amount": "7485",
"payment_name": "Earth Lord Bundle",
"is_first_pay": false,
"#country_code": "",
"#ip": "localhost",
"#city": "Unknown",
"#province": "Unknown",
"#country": "Unknown",
"screen_width": "360",
"device_id": "47BjM",
"#zone_offset": "-5"
},
"time": "2021-11-04 15:59:46.179"
}
]
},
"return_code": 0,
"return_message": "success"
}

Response parameters​

$$Parameter nameExample valueParameter typeDescription
return_code0IntegerReturn code
return_messagesuccessStringReturn message
data-ObjectReturned result
data.columnDescMeta-MapProperty name mapping
data.eventNameDescMeta-MapEvent name
data.resultGenerateTime2022-01-27 15:46:08StringResult generation time
data.userEventSeqList-ListUser sequence list
data.userEventSeqList.event_nameloginStringEvent name
data.userEventSeqList.properties-MapEvent property details
data.userEventSeqList.time2021-11-04 15:59:46.179StringTime

Error response example

{
"return_code": -1008,
"return_message": "Parameter (token) is empty"
}
Parameter nameExample valueParameter typeDescription
return_code-1008IntegerReturn code
return_messageParameter (token) is emptyStringReturn message

Composition Analysis common enums​

Composition Analysis aggregation type enum values​

ValueDescriptionRequires property
TRIG_USER_NUMUniquesNo
SUMSumYes
AVGAverageYes
MAXMaximumYes
MINMinimumYes
DISTINCTDeduplicationYes
TRUETrue totalsYes
FALSEFalse totalsYes
IS_NOT_EMPTYNot null totalsYes
IS_EMPTYNull totalsYes
ARRAY_DISTINCTDeduplication of arrayYes
ARRAY_SET_DISTINCTDeduplication of setYes
ARRAY_ITEM_DISTINCTDeduplication of elementYes
MEDIANMedianYes
PERCENTILEPercentileYes
Was this page helpful?