DC 5.7 Setting metadata on an asset

This explains how BatchUpdate is used for setting metadata on an asset. 

Notice

Please consider the DC 5.6 (New) Update metadata on asset instead. This specific documentation is here because of backwards compatibility and works perfectly fine. 


URL : /BatchUpdateService.js

Method : POST

Auth required : Yes

Required parameters

NameExampleDescription
accessKeyeb774621-1c2f-467b-b006-a8efa67094a7accessKey that grants access to the API

The updateXML and values is send as forms data and it looks like this:

updateXML

<r>
	<asset fieldId="MetaDataUpdate">
		<metafield fieldId="MetaFieldLabelid_50723" labelId="50723"/>
		<metafield fieldId="MetaFieldLabelid_51867" labelId="51867"/>
		<metafield fieldId="MetaFieldLabelid_51876" labelId="51876"/>
	</asset>
</r>

values

[{
	"Id": "MetaDataUpdate",
	"FieldId": "MetaDataUpdate",
	"ContainerType": 7,
	"RowId": 1,
	"Values": [{
		"FieldId": "MetaFieldLabelid_50723",
		"Type": 1,
		"Values": ["Desert title 2"]
	},
	{
		"FieldId": "MetaFieldLabelid_51867",
		"Type": 6,
		"Values": [51603]
	},
	{
		"FieldId": "MetaFieldLabelid_51876",
		"Type": 17,
		"Values": ["test 1"]
	}],
	"ItemIds": ["10313"]
}]


*types

public enum ValueType
    {
        String = 1,
        Bool = 2,
        Int = 3,
        DateTime = 4,
        Float = 5,
        IntList = 6,
        Folder = 7,
        AssetType = 8,
        StringRow = 9,
        BoolRow = 10,
        IntRow = 11,
        DateTimeRow = 12,
        FloatRow = 13,
        IntListRow = 14,
        Delete = 15,
        ValueExtraValue = 16,
        StringList = 17,
        StringListRow = 18
    }

cUrl data example

curl -X POST \
'/dmm3bwsv3/BatchUpdateService.js?accesskey=eb774621-1c2f-467b-b006-a8efa67094a7' \
-H 'Cache-Control: no-cache' \
-H 'Content-Type: application/json' \
-H 'Postman-Token: 2fc4dd60-8895-0341-5fed-46b57912981d' \
-H 'content-type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW' \
-F 'updateXML=<r><asset fieldId="MetaDataUpdate"><metafield fieldId="MetaFieldLabelid_50723" labelId="50723"/><metafield fieldId="MetaFieldLabelid_51867" labelId="51867"/><metafield fieldId="MetaFieldLabelid_51876" labelId="51876"/></asset></r>' \
-F 'values=[{"Id":"MetaDataUpdate","FieldId":"MetaDataUpdate","ContainerType":7,"RowId":1,"Values":[{"FieldId":"MetaFieldLabelid_50723","Type":1,"Values":["Desert title 2"]},{"FieldId":"MetaFieldLabelid_51867","Type":6,"Values":[51603]},{"FieldId":"MetaFieldLabelid_51876","Type":17,"Values":["test 1"]}],"ItemIds":["10313"]}]'

Success Response

Code : 200 OK

Content example

{
	"success": true,
	"total": 0,
	"error": "",
	"items": [{
		"Id": "MetaDataUpdate",
		"FieldId": "MetaDataUpdate",
		"ItemId": 10313,
		"BaseId": 113,
		"TestFase": false,
		"VersionId": null,
		"ChangesetId": 0,
		"Warnings": []
	}],
	"warnings": []
}

Error Response

Code : 200 OK

Content  example

{
	"success": false,
	"total": 0,
	"error": "A critical exception occurred while we were executing the search(Access denied, login first).\r\n",
	"items": null,
	"warnings": [{
		"Severity": 150,
		"Code": 420,
		"Description": "A critical exception occurred while we were executing the search(Access denied, login first)."
	}]
}