Skip to main content

Flows Analysis model API

Last updated 10/05/2026

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

To learn about use cases, see Flows Analysis in the user guide.

1. Flows Analysis query​

Endpoint URL

/open/path-analyze?token=xxx

Request method

POST

Content-Type

application/json

Request query parameters

Parameter nameExample valueParameter typeRequiredDescription
tokenxxxStringYesQuery key

Request body parameters​

{
"eventView": {
"col_limit": 10,
"from_date": "2021-10-01 00:00:00",
"recent_day": "",
"session_interval": 30,
"session_type": "minute",
"to_date": "2021-10-02 23:59:59"
},
"events": {
"by_fields": [
{
"event_name": "login",
"field": "browser",
"range": "",
"table_type": "event"
}],
"event_names": [
"logout",
"login"],
"source_event": {
"event_name": "login",
"filter": {
"filterType": "COMPOUND"
}
},
"source_type": "initial_event",
"user_filter": {
"filterType": "COMPOUND",
"filts": [
{
"columnDesc": "City",
"columnName": "city",
"comparator": "equal",
"filterType": "SIMPLE",
"ftv": [
"Beijing",
"Shanghai",
"Guangzhou",
"Shenzhen"],
"specifiedClusterDate": "2022-01-24",
"tableType": "user"
}],
"relation": "and"
}
},
"projectId": 377,
"timeoutSeconds": 10,
"useCache": true,
"zoneOffset": 10
}

Request parameters​

$$Parameter nameExample valueParameter typeRequiredDescription
eventView-ObjectYesCommon properties of the metrics
eventView.col_limit10IntegerYesColumn limit, between 0 and 20
eventView.from_date2021-10-01 00:00:00StringNoStart time yyyy-MM-dd HH:mm:ss
eventView.recent_dayStringNoRelative time
eventView.session_interval30IntegerYesSession interval
eventView.session_typeminuteStringYesSession interval unit: second, minute, hour
eventView.to_date2021-10-02 23:59:59StringNoEnd time yyyy-MM-dd HH:mm:ss
events-ListYesList of event metrics
events.by_fields-ListListBreakdown by event property
events.by_fields.event_nameloginStringYesEvent name
events.by_fields.fieldbrowserStringYesBreakdown field
events.by_fields.range_type-StringNo

Interval type

  • discrete: discrete values
  • def: default intervals
  • user_defined: user-defined
events.by_fields.range-StringNoRange
events.by_fields.table_typeeventStringYesTable type. event: event table, user: user table
events.event_names["logout","login"]StringYesEvent name. In particular, you can use anyEvent to represent any event
events.source_event-ObjectYesSource event
events.source_event.event_nameloginStringYesEvent name
events.source_event.filter-ObjectNoSource event filter
events.source_event.filter.filterTypeCOMPOUNDStringNoFilter mode. SIMPLE: simple, COMPOUND: compound
events.source_typeinitial_eventStringYesEvent type. initial_event, termination_event
events.user_filter-ObjectNoUser table filter
events.user_filter.filterTypeCOMPOUNDStringNoFilter mode. SIMPLE: simple, COMPOUND: compound
events.user_filter.filts-ListNoList of conditions
events.user_filter.filts.columnDescapp_versionStringNoField display name
events.user_filter.filts.columnNameapp_versionStringYesField name
events.user_filter.filts.comparatorequalStringYesReference: filter expressions of the model query API
events.user_filter.filts.filterTypeSIMPLEStringNoFilter mode. SIMPLE: simple, COMPOUND: compound
events.user_filter.filts.ftv["V1.0"]ListNoLiteral constants used as boundaries for property comparison
events.user_filter.filts.specifiedClusterDate2022-01-26StringNoUses the historical version of the tag for the specified date
events.user_filter.filts.tableTypeeventStringYesTable type. event: event table, user: user table
events.user_filter.relationandStringNoLogical relation. and: logical AND, or: logical OR
projectId377IntegerYesProject ID
timeoutSeconds10IntegerNoRequest timeout. The query task is canceled when it times out
useCachetrueBooleanYestrue means the cache is used
zoneOffset10IntegerNoTime zone

Success response example​

{
"data": {
"event_name_desc_map": {
"anyEvent": "Any Event",
"login": "Login",
"logout": "User logout"
},
"links": [
[
{
"source": "0_Chrome^_^login",
"target": "1_logout",
"times": 1716
},
{
"source": "0_Safari^_^login",
"target": "1_logout",
"times": 765
},
{
"source": "0_Firefox^_^login",
"target": "1_logout",
"times": 582
},
{
"source": "0_WeChat built-in browser^_^login",
"target": "1_logout",
"times": 403
},
{
"is_wastage": true,
"source": "0_Chrome^_^login",
"target": "1_wastage",
"times": 380
},
{
"is_wastage": true,
"source": "0_Safari^_^login",
"target": "1_wastage",
"times": 195
},
{
"is_wastage": true,
"source": "0_Firefox^_^login",
"target": "1_wastage",
"times": 148
},
{
"is_wastage": true,
"source": "0_WeChat built-in browser^_^login",
"target": "1_wastage",
"times": 89
}
]
],
"nodes": [
[
{
"by_value": "Chrome",
"event_name": "login",
"id": "0_Chrome^_^login",
"times": 2096
},
{
"by_value": "Safari",
"event_name": "login",
"id": "0_Safari^_^login",
"times": 960
},
{
"by_value": "Firefox",
"event_name": "login",
"id": "0_Firefox^_^login",
"times": 730
},
{
"by_value": "WeChat built-in browser",
"event_name": "login",
"id": "0_WeChat built-in browser^_^login",
"times": 492
}
],
[
{
"event_name": "logout",
"id": "1_logout",
"times": 3466
}
]
],
"result_generate_time": "2022-01-27 13:44:38"
},
"return_code": 0,
"return_message": "success"
}

Response parameters​

$$Parameter nameExample valueParameter typeDescription
return_code0IntegerReturn code
return_messagesuccessStringReturn message
data-ObjectReturned data
data.event_name_desc_map-MapMapping between event names and event descriptions
data.links-List<List>Relationship matrix
data.links.source0_Chrome^_^loginStringStart node of the relationship
data.links.target1_level_upStringEnd node of the relationship
data.links.times5106IntegerTimes
data.nodes-List<List>Node matrix
data.nodes.id0_Chrome^_^loginStringNode ID
data.nodes.event_nameloginStringNode event name
data.nodes.by_valueChromeStringNode value
data.nodes.times30301IntegerTimes
data.result_generate_time2022-01-24 18:53:26StringQuery result generation time

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. Flows Analysis user list​

Endpoint URL

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

Request method

POST

Content-Type

application/json

Request query parameters

Parameter nameExample valueParameter typeRequiredDescription
tokenxxxStringYesQuery key

Request body parameters​

{
"projectId": 0,
"eventView": {
"col_limit": 10,
"from_date": "2019-11-20 00:00:00",
"to_date": "2019-11-26 00:00:00",
"recent_day": "1-7",
"session_interval": 22,
"session_type": "minute"
},
"events": {
"event_names": [
"obtain_item",
"consume_item",
"obtain_coin"
],
"source_event": {
"event_name": "consume_item",
"filter": {
"filts": [
{
"columnName": "#os",
"comparator": "equal",
"ftv": [
"ios"
],
"tableType": "event"
}
],
"relation": "and"
}
},
"source_type": "initial_event",
"user_filter": {
"filts": [
{
"columnName": "user_level",
"comparator": "equal",
"ftv": [
"6"
],
"tableType": "user"
}
],
"relation": "and"
}
},
"next_slice_event_by_values": [
{
"slice_event_name": "obtain_coin"
}
],
"session_level": 2,
"slice_type": "with_next_specific",
"slice_event_by_values": [
{
"slice_event_name": "obtain_item"
}
],
"timeoutSeconds": 10,
"zoneOffset": 10
}

Request parameters​

$$Parameter nameExample valueParameter typeRequiredDescription
projectId0StringYesDescription
eventView-ObjectYesThe parameters are the same as those of the Flows Analysis query API
eventsListYesList of event metrics
next_slice_event_by_values-ListNo

Subsequent events of the node

Required when slice_type=with_next_specific

next_slice_event_by_values.slice_event_nameobtain_coinStringNoEvent name
session_level2IntegerYesPath level of the node (counting from 0)
slice_typewith_next_specificStringYes

Subsequent event status of the node

  • total: Total
  • with_next: Has subsequent nodes
  • without_next: No subsequent nodes
  • with_next_specific: Has a subsequent node of a specific event
slice_event_by_values-ListNoNode event
slice_event_by_values.slice_event_nameobtain_itemStringNoEvent name
timeoutSeconds10IntegerNoRequest timeout. The query task is canceled when it times out
zoneOffset10IntegerNoTime zone

Success response example​

{
"data": {
"datalist": [
{
"#account_id": "j77444535",
"#distinct_id": "j143825535",
"user_level": 6,
"register_time": "2019-11-22 17:07:12",
"diamond_num": 1270,
"latest_login_time": "2019-11-22 18:23:19",
"channel": "app store",
"#user_id": 33190535
}
],
"total_num": 1,
"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
Was this page helpful?