Skip to main content

Metadata management API

Last updated 10/03/2026

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

We recommend that you first read the metadata management section of the AE user guide to learn about the related features: Data management - events and properties

1. Event management​

1. Query a custom event​

Endpoint URL

/open/get-virtual-event-by-name?token=xxx&projectId=377&eventName=ta@test222

Request method

GET

Content-Type

application/json

Request query parameters

Parameter nameExample valueParameter typeRequiredDescription
tokenxxxStringYesQuery key
projectId377IntegerYesProject ID
eventNameta@test222StringYesEvent name

Success response example

{
"data": {
"eventDesc": "Test custom event",
"eventName": "ta@teset",
"remark": "",
"rule": {
"events": [
{
"eventDesc": "Obtain coins",
"eventName": "obtain_coin",
"filter": {
"filterType": "COMPOUND",
"filts": [],
"relation": "and"
}
}
],
"filter": {
"filterType": "COMPOUND",
"filts": [],
"relation": "and"
}
}
},
"return_code": 0,
"return_message": "success"
}
$$Parameter nameExample valueParameter typeDescription
data-ObjectReturned data
data.eventDescTest custom eventStringEvent display name
data.eventNameta@tesetStringEvent name
data.remark-StringEvent remarks
data.rule-ObjectCustom event rule
data.rule.events-ListEvent list
data.rule.events.eventDescObtain coinsStringEvent display name
data.rule.events.eventNameobtain_coinStringEvent name
data.rule.events.filter-ObjectProperty filter
data.rule.events.filter.filterTypeCOMPOUNDString

Filter:

  • COMPOUND: compound type
  • SIMPLE: simple type
data.rule.events.filter filts[]ListList of filter values
data.rule.events.filter relationandStringLogical relationship of the filter
data.rule.filter-ObjectProperty filter
data.rule.filter.filterTypeCOMPOUNDString

Filter:

  • COMPOUND: compound type
  • SIMPLE: simple type
data.rule.filter.filts[]ListList of filter values
data.rule.filter.relationandStringLogical relationship of the filter
return_code0IntegerReturn code
return_messagesuccessStringReturn message

2. Event metadata list​

Endpoint URL

/open/list-event-meta?token=xxx&projectId=377

Request method

GET

Content-Type

application/json

Request query parameters

Parameter nameExample valueParameter typeRequiredDescription
tokenxxxStringYesQuery key
projectId377IntegerYesProject ID

propName

-

String

No

Property name. Use this parameter to query the events related to the property. If it isn't passed, all physical events and custom events are returned

Success response example

{
"data": {
"events": [
{
"eventDesc": "Join activity",
"eventName": "activity_attend",
"eventType": "event",
"isHide": false,
"remark": "Join activity 321"
}
]
},
"return_code": 0,
"return_message": "success"
}
$$Parameter nameExample valueParameter typeDescription
data-ObjectReturned data
data.events-ListEvent list
data.events.eventDescJoin activityStringEvent description
data.events.eventNameactivity_attendStringEvent name
data.events.eventTypeeventString

Event type

  • event: physical event
  • event_v: custom event
data.events.isHidefalseBooleanWhether hidden
data.events.remarkJoin activity 321StringEvent remarks
return_code0IntegerReturn code
return_messagesuccessStringReturn message

3. Create a custom event​

Endpoint URL

/open/create-virtual-event?token=xxx&projectId=0&override=false

Request method

POST

Content-Type

application/json

Request query parameters

Parameter nameExample valueParameter typeRequiredDescription
tokenxxxStringYesQuery key
projectId0IntegerYesProject ID
overridefalseStringYesIf a custom event with the same name already exists, an error is returned when override=false, and the custom event definition is updated when override=true.

Request body parameters

{
"eventName": "ta@test_vevent",
"eventDesc": "Test custom event",
"remark": "",
"rule": {
"events": [
{
"eventDesc": "Join activity",
"eventName": "activity_attend",
"filter": {
"relation": "and",
"filts": [
{
"comparator": "equal",
"columnDesc": "Network type",
"columnName": "network",
"ftv": [
"4G"
],
"selectType": "string",
"tableType": "event"
}
]
}
}
]
}
}
$$Parameter nameExample valueParameter typeRequiredDescription
eventNameta@test_veventStringYesEvent name
eventDescTest custom eventStringNoEvent display name
remarkStringNoEvent remarks
rule-ObjectYesRule
rule.events-ListYesEvent list
rule.events.eventNameactivity_attendStringYesEvent name
rule.events.eventDescJoin activityStringNoEvent display name
rule.events.filter-ObjectNoProperty filter
rule.events.filter.filterTypeSIMPLEStringNo

Filter

  • COMPOUND: compound type
  • SIMPLE: simple type
rule.events.filter.filts-ListNoList of filter objects
rule.events.filter.filts.comparatorequalStringNoComparison type
rule.events.filter.filts.columnDescNetwork TypeStringNoField display name
rule.events.filter.filts.columnNamenetworkStringYesField name
rule.events.filter.filts.ftv["4G"]ListNoList of filter values
rule.events.filter.filts.selectTypestringStringNoFilter value input type
rule.events.filter.filts.tableTypeeventStringNoevent: event property, user: user property
rule.events.filter.filts.filterTypeSIMPLEStringNo

Filter:

  • COMPOUND: compound type
  • SIMPLE: simple type
rule.events.filter.relationandStringNoLogical relationship of the filter

Success response example

{
"return_code": 0,
"return_message": "success"
}
Parameter nameExample valueParameter typeDescription
return_code0IntegerReturn code
return_messagesuccessStringReturn message

Error response example

{
"return_code": -1008,
"return_message": "eventName cannot be empty, rule cannot be null"
}
Parameter nameExample valueParameter typeDescription
return_code-1008IntegerReturn code
return_messageeventName cannot be empty, rule cannot be nullStringReturn message

4. Modify the event display name and remarks​

Note
  • The event display name can be up to 60 characters. Any excess is truncated automatically
  • The event display name can't contain emojis
  • The display name of a custom event can't be the same as the display name or event name of another custom event
  • The display name of a physical event can't be the same as the display name or event name of another physical event

Endpoint URL

/open/update-event-info?token=xxx&projectId=0

Request method

POST

Content-Type

application/json

Request query parameters

Parameter nameExample valueParameter typeRequiredDescription
tokenxxxStringYesQuery key
projectId0IntegerYesProject ID

Request body parameters

{
"eventName": "test007",
"eventDesc": "testDesc",
"eventRemark": "testRemark"
}
Parameter nameExample valueParameter typeRequiredDescription
eventNametestStringYesEvent name
eventDesctestDescStringYesEvent display name
eventRemarktestRemarkStringNoEvent remarks

Success response example

{
"return_code": 0,
"return_message": "success"
}
Parameter nameExample valueParameter typeDescription
return_code0IntegerReturn code
return_messagesuccessStringReturn message

Error response example

{
"return_code": -1008,
"return_message": "Event test007 has been hidden or deleted. Reset the conditions"
}
Parameter nameExample valueParameter typeDescription
return_code-1008IntegerReturn code
return_messageEvent test007 has been hidden or deleted. Reset the conditionsStringReturn message

5. Delete a custom event​

Endpoint URL

/open/delete-virtual-event-by-name?token=xxx&projectId=0&eventName=test

Request method

POST

Content-Type

application/json

Request query parameters

Parameter nameExample valueParameter typeRequiredDescription
tokenxxxStringYesQuery key
projectId0IntegerYesProject ID
eventNametestStringYesEvent name

Success response example

{
"return_code": 0,
"return_message": "success"
}
Parameter nameExample valueParameter typeDescription
return_code0IntegerReturn code
return_messagesuccessStringReturn message

Error response example

{
"return_code": -1008,
"return_message": "Event test has been hidden or deleted. Reset the conditions"
}
Parameter nameExample valueParameter typeDescription
return_code-1008StringReturn code
return_messageEvent test has been hidden or deleted. Reset the conditionsStringReturn message

2. Property management​

1. Query a custom property​

Endpoint URL

/open/get-sql-prop-by-name?token=xxx&projectId=0&propName=%23vp@location&tableType=event

Request method

GET

Content-Type

application/json

Request query parameters

Parameter nameExample valueParameter typeRequiredDescription
tokenxxxStringYesQuery key
projectId0IntegerYesProject ID
propName#vp@locationStringYesProperty name
tableTypeeventStringYesevent: event property, user: user property

Success response example

{
"data": {
"relatedEvents": [
{
"eventName": "Event name",
"eventDesc": "Event display name"
}
],
"sqlEventRelationType": "relation_default",
"sqlExpression": "concat(\"#country\",'-',\"#province\",'-',\"#city\")",
"vProp": {
"property": {
"columnDesc": "Geolocation information",
"columnName": "#vp@location",
"selectType": "string",
"tableType": "event"
}
}
},
"return_code": 0,
"return_message": "success"
}
$$Parameter nameExample valueParameter typeDescription
data-ObjectReturned data
data.relatedEvents-ListAssociated event list
data.relatedEvents.eventNameEvent nameStringEvent name
data.relatedEvents.eventDescEvent display nameStringEvent display name
data.sqlEventRelationTyperelation_defaultString
  • relation_default: automatically parse associated events
  • relation_always: all events are associated events
  • relation_by_setting: associated events are in relatedEvents
data.sqlExpressionconcat("#country",'-',"#province",'-',"#city")StringSQL expression
data.vProp-ObjectCustom property list
data.vProp.property-ObjectCustom property
data.vProp.property.columnDescGeolocation informationStringField display name
data.vProp.property.columnName#vp@locationStringField name
data.vProp.property.selectTypestringStringFilter value input type
data.vProp.property.tableTypeeventString

Property type

  • event: event property
  • user: user property
return_code0IntegerReturn code
return_messagesuccessStringReturn message

Error response example

{
"return_code": -1008,
"return_message": "User property test007 has been hidden or deleted. Reset the conditions"
}
Parameter nameExample valueParameter typeDescription
return_code-1008IntegerReturn code
return_messageUser property test007 has been hidden or deleted. Reset the conditionsStringReturn message

2. Property list​

Endpoint URL

/open/list-props?token=xxx&projectId=0&tableType=event&eventName=xxx

Request method

GET

Content-Type

application/json

Request query parameters

Parameter nameExample valueParameter typeRequiredDescription
tokenxxxStringYesQuery key
projectId0IntegerYesProject ID
tableTypeeventStringYes

Property type

  • event: event property
  • user: user property
eventName-StringNoValid when tableType is event. The name of a physical event or custom event. Use this parameter to query the properties related to the event. If it isn't passed, all physical properties and custom properties are returned

Success response example

{
"data": {
"properties": [
{
"canCreateDict": true,
"columnDesc": "Activity item def:123123123123123123",
"columnName": "activity_item_operation",
"columnRemark": "",
"dictProps": [
{
"canCreateDict": false,
"columnDesc": "",
"columnName": "activity_item_operation@channel_name",
"columnRemark": "",
"isHide": false,
"propType": "vprop_dict",
"selectType": "string",
"tableType": "event"
}
],
"isHide": false,
"propType": "prop_unpreset",
"selectType": "string",
"tableType": "event"
}
]
},
"return_code": 0,
"return_message": "success"
}
$$Parameter nameExample valueParameter typeDescription
data-ObjectReturned data
data.properties-List
data.properties.canCreateDicttrueBooleanWhether a dimension table can be created
data.properties.columnDescActivity item def:123123123123123123StringField display name
data.properties.columnNameactivity_item_operationStringField name
data.properties.columnRemark-StringField description
data.properties.dictProps-ListAssociated dimension fields
data.properties.dictProps.canCreateDictfalseStringWhether a dimension table can be created
data.properties.dictProps.columnDesc-StringField display name
data.properties.dictProps.columnNameactivity_item_operation@channel_nameStringField name
data.properties.dictProps.columnRemark-StringField description
data.properties.dictProps.isHidefalseBooleanWhether hidden
data.properties.dictProps.propTypevprop_dictStringProperty type
data.properties.dictProps.selectTypestringStringFilter value input type
data.properties.dictProps.tableTypeeventStringTable type of the field
data.properties.isHidefalseBooleanWhether hidden
data.properties.propTypeprop_unpresetString

Property type

  • prop_preset: preset physical property
  • prop_unpreset: non-preset physical property
  • vprop_dict: dimension table property based on a physical property
  • vprop_sql: custom property based on a physical property
  • vprop_dict_v: dimension table property based on a custom property
  • vprop_sql_v: custom property based on a dimension table property
data.properties.selectTypestringStringFilter value input type
data.properties.tableTypeeventStringTable type of the field
return_code0IntegerReturn code
return_messagesuccessStringReturn message

3. Modify the property display name​

Note
  1. The property display name can be up to 60 characters. Any excess is truncated automatically. It can't contain emojis. The display name of a custom property can't be the same as the display name or property name of another custom property, and the display name of a physical property can't be the same as the display name or property name of another physical property
  2. The property description can be up to 200 characters. Any excess is truncated automatically
  3. If a custom property with the same name already exists, the custom property definition is updated

Endpoint URL

/open/update-prop-info?token=xxx&projectId=0

Request method

POST

Content-Type

application/json

Request query parameters

Parameter nameExample valueParameter typeRequiredDescription
tokenxxxStringYesQuery key
projectId0IntegerYesProject ID

Request body parameters

{
"columnName": "test",
"columnDesc": "testDesc",
"columnRemark": "testRemark",
"tableType": "event"
}
Parameter nameExample valueParameter typeRequiredDescription
columnNametestStringYesField name
columnDesctestDescStringYesField display name
columnRemarktestRemarkStringNoField description
tableTypetestTypeStringYes

Property type

  • event: event property
  • user: user property

Success response example

{
"return_code": 0,
"return_message": "success"
}
Parameter nameExample valueParameter typeDescription
return_code0IntegerReturn code
return_messagesuccessStringReturn message

Error response example

{
"return_code": -1023,
"return_message": "event property(test) does not exist"
}
Parameter nameExample valueParameter typeDescription
return_code-1023IntegerReturn code
return_messageevent property(test) does not existStringReturn message

4. Validate and create a dimension dictionary​

Note

Create a dimension dictionary by uploading a file. The file size limit is 200M

Endpoint URL

/open/dict-create?token=xxx&projectId=0&createParam=test

Request method

POST

Content-Type

text/csv

Request query parameters

Parameter nameExample valueParameter typeRequiredDescription
tokenxxxStringYesQuery key
projectId0IntegerYesProject ID
createParamtestStringYes-

Success response example

{
"data": {
"totalLineNum": 4,
"successLineNum": 1,
"duplcatedMainKeyLineNum": 1,
"duplcatedMainKeyColumns": ["city@test"],
"mainKeyErrorLineNum": 1,
"mainKeyErrorColumns": ["brand@quantity"],
"typeErrorLineNum": 1,
"typeErrorColumns": ["iswin@num"],
"repeatWithConlumnName": [{
"columnName": "channel@channel_name",
"columnDesc": "Channel type"
}],
"repeatWithConlumnDesc": [{
"columnName": "channel@channel_name",
"columnDesc": "Channel type"
}]
},
"return_code": 0,
"return_message": "success"
}
$$Parameter nameExample valueParameter typeDescription
return_code0StringReturn code
return_messagesuccessStringReturn message
data-ObjectReturned data
data.totalLineNum4IntegerTotal number of parsed rows
data.successLineNum1IntegerNumber of rows imported successfully
data.duplcatedMainKeyLineNum1IntegerNumber of rows with duplicate primary keys
data.duplcatedMainKeyColumns["city@test"]ListList of rows with duplicate primary keys
data.mainKeyErrorLineNum1IntegerNumber of rows with an incorrect primary key type
data.mainKeyErrorColumns["brand@quantity"]ListList of rows with an incorrect primary key type
data.typeErrorLineNum1IntegerNumber of rows with type errors in other columns
data.typeErrorColumns["iswin@num"]ListList of rows with type errors in other columns
data.repeatWithConlumnName-ListList of display names that duplicate property names
data.repeatWithConlumnName.columnNamechannel@channel_nameStringProperty field name
data.repeatWithConlumnName.columnDescChannel typeStringProperty display name
data.repeatWithConlumnDesc-ListList of display names that duplicate other display names
data.repeatWithConlumnDesc.columnNamechannel@channel_nameStringProperty field name
data.repeatWithConlumnDesc.columnDescChannel typeStringProperty display name

Error response example

{
"return_code": -3004,
"return_message": "Invalid project"
}
Parameter nameExample valueParameter typeDescription
return_code-3004StringReturn code
return_messageInvalid projectStringReturn message

5. Create a custom property​

Note

If a custom property with the same name already exists, the custom property definition is updated

Endpoint URL

/open/create-sql-prop?token=xxx&projectId=110

Request method

POST

Content-Type

application/json

Request query parameters

Parameter nameExample valueParameter typeRequiredDescription
tokenxxxStringYesQuery key
projectId110IntegerYesProject ID

Request body parameters

{
"sqlExpression": "get_ip_location(\"#ip\")",
"vProp" : {
"property" : {
"columnDesc": "Geolocation parsed from the IP address",
"columnName": "#vp@location_array_from_ip",
"tableType": "event",
"selectType":"array"
}
},
"sqlEventRelationType" : "relation_default"
}
$$Parameter nameExample valueParameter typeRequiredDescription
sqlExpressionget_ip_location(\"#ip\")StringYesSQL expression
vProp-ObjectYesCustom property information
vProp.property-ObjectYesCustom property information

vProp.property.columnDesc

Geolocation parsed from the IP address

String

NoField name
vProp.property.columnName#vp@location_array_from_ipStringYes

Field display name

vProp.property.tableTypeeventStringYes

Table type

  • event: event property
  • user: user property
vProp.property.selectTypearrayStringYesFilter value input type
sqlEventRelationTyperelation_defaultStringNo

Parsing type. Default: relation_default

  • relation_default: automatically parse associated events
  • relation_always: all events are associated events
  • relation_by_setting: associated events are in relatedEvents

Success response example

{
"return_code": 0,
"return_message": "success"
}
Parameter nameExample valueParameter typeDescription
return_code0StringReturn code
return_messagesuccessStringReturn message

Error response example

{
"return_code": -3004,
"return_message": "Invalid project"
}
Parameter nameExample valueParameter typeDescription
return_code-3004StringReturn code
return_messageInvalid projectStringReturn message

6. Delete a dimension property​

Endpoint URL

/open/delete-dict-props?token=xxx&projectId=0&tableType=event&mainColumnName=test

Request method

POST

Content-Type

application/json

Request query parameters

Parameter nameExample valueParameter typeRequiredDescription
tokenxxxStringYesQuery key
projectId0IntegerYesProject ID
tableTypeeventStringYes

Property type

  • event: event property
  • user: user property
mainColumnNametestStringYesName of the main property that the dimension table is associated with

Success response example

{
"return_code": 0,
"return_message": "success"
}
Parameter nameExample valueParameter typeDescription
return_code0IntegerReturn code
return_messagesuccessStringReturn message

Error response example

{
"return_code": -1008,
"return_message": "Event property test has been hidden or deleted. Reset the conditions"
}
Parameter nameExample valueParameter typeDescription
return_code-1008IntegerReturn code
return_messageEvent property test has been hidden or deleted. Reset the conditionsStringReturn message

7. Delete a SQL custom property​

Endpoint URL

/open/delete-sql-prop-by-name?token=xxx&projectId=0&tableType=event&propName=test

Request method

POST

Content-Type

application/json

Request query parameters

Parameter nameExample valueParameter typeRequiredDescription
tokenxxxStringYesQuery key
projectId0IntegerYesProject ID
tableTypeeventStringYes

Property type

  • event: event
  • user: user
propNametestStringYesProperty name

Success response example

{
"return_code": 0,
"return_message": "success"
}
Parameter nameExample valueParameter typeDescription
return_code0IntegerReturn code
return_messagesuccessStringReturn message

Error response example

{
"return_code": -1023,
"return_message": "virtual event prop test does not exist"
}
Parameter nameExample valueParameter typeDescription
return_code-1023IntegerReturn code
return_messagevirtual event prop test does not existStringReturn message

Was this page helpful?