Skip to content
Documentation/OPEN API

Compliance detection

List detection rules, create and extend tasks, and retrieve progress and asset risk details.

Last updated

Getting started

Compliance detection is an add-on module and must be enabled for your team. Recommended flow: list rules → create a task → poll the task overview until completion → retrieve asset-level results.

  • Base URL:https://open.musedam.cc/api/muse
  • Authentication: send the header Authorization: Bearer your_api_key.
  • Request format: all endpoints use POST with a JSON body and Content-Type: application/json.
  • Response tables describe the business result. See Quick start for the response envelope.

List compliance detection rules

Description: List your team's rules with pagination. If omitted, releaseStatus defaults to published rules (2).

Path:/detection-rules

Method:POST

Request parameters:EnterpriseDetectionRuleListReq

FieldTypeRequiredDescription
pageIntegerNoPage number; default: 1
pageSizeIntegerNoPage size; default: 10
keywordStringNoRule name keyword
createTimeSortIntegerNoCreation time sort: 1 descending, 0 ascending
releaseStatusIntegerNoRelease status: 1 unpublished, 2 published; default: 2
idsList<Long>NoFilter by rule IDs

Response:EnterpriseDetectionRulePageDTO

FieldTypeDescription
totalLongTotal
rulesList<EnterpriseDetectionRuleDTO>Rule list

rules item fields:

FieldTypeDescription
idLongRule ID
ruleNameStringRule name
ruleTypeIntegerRule type: 1 general detection
ruleEventIdsStringDetection channels: sucai / ADLAW / REGIONAL_COMPLIANCE, comma-separated
regionalGreenServiceCodesStringRegional compliance content-safety service codes, comma-separated
releaseStatusInteger1 unpublished / 2 published
createTimeDateCreation time
needEnterpriseRuleIntegerWhether enterprise rules are required: 0 / 1

Request example:

bash
curl --location --request POST 'https://open.musedam.cc/api/muse/detection-rules' \
--header 'Authorization: Bearer your_api_key' \
--header 'Content-Type: application/json' \
--data-raw '{
"page": 1,
"pageSize": 20
}'

Create a compliance detection task

Description: Create a task and start detection automatically.

Path:/detection-task-create

Method:POST

Request parameters:EnterpriseDetectionTaskCreateReq

FieldTypeRequiredDescription
taskNameStringNoTask name
taskDescStringNoTask description
ruleIdLongYesDetection rule ID (a published rule is recommended)
assetIdsList<Long>ConditionalAsset materialId values returned by search or upload; may be combined with groupIds / folderId. The resulting asset list must not be empty
groupIdsList<Long>ConditionalGrouped asset IDs
folderIdLongNoWhen greater than 0, create a task for all assets in this folder (up to 3000 assets)

Response:Long (task ID)

Request example:

bash
curl --location --request POST 'https://open.musedam.cc/api/muse/detection-task-create' \
--header 'Authorization: Bearer your_api_key' \
--header 'Content-Type: application/json' \
--data-raw '{
"taskName": "Campaign asset compliance check",
"ruleId": 10001,
"assetIds": [20001, 20002]
}'

Notes:

  • Detection starts automatically after successful creation.
  • Pass materialId values returned by search or upload in assetIds.

Add assets to a detection task

Description: Append assets to an existing task and continue detection. Assets already in the task cannot be added again.

Path:/detection-task-add-assets

Method:POST

Request parameters:EnterpriseDetectionTaskAddAssetsReq

FieldTypeRequiredDescription
taskIdLongYesDetection task ID
assetIdsList<Long>ConditionalAsset materialId values; at least one valid source is required from assetIds and groupIds
groupIdsList<Long>ConditionalGrouped asset IDs

Response:Long (task ID)

Request example:

bash
curl --location --request POST 'https://open.musedam.cc/api/muse/detection-task-add-assets' \
--header 'Authorization: Bearer your_api_key' \
--header 'Content-Type: application/json' \
--data-raw '{
"taskId": 30001,
"assetIds": [20003, 20004]
}'

Notes:

  • As with task creation, pass materialId values in assetIds.

Get a compliance detection task overview

Description: Query task status and risk totals by task ID. After creation, poll this endpoint until taskStatus=4.

Path:/detection-task-get

Method:POST

Request parameters:EnterpriseDetectionTaskGetReq

FieldTypeRequiredDescription
taskIdLongYesDetection task ID

Response:EnterpriseDetectionTaskDTO

FieldTypeDescription
taskIdLongTask ID
taskNameStringTask name
taskStatusInteger1 queued / 2 running / 3 paused / 4 completed
ruleIdLongRule ID
ruleNameStringRule name
agentIdStringBrand compliance agent ID (nullable)
agentNameStringAgent name (nullable)
taskSourceInteger0 manual / 1 automatic
createTimeDateCreation time
assetDetectionStatusIntegerAggregate detection status: 0 not detected / 1 detecting / 2 completed / 3 failed
taskAssetIdAllCountIntegerTotal assets in the task
taskAssetIdCheckedCountIntegerDetected asset count
taskAssetIdPassCountIntegerPass count
taskAssetIdReviewCountIntegerReview count (manual review recommended)
taskAssetIdRiskCountIntegerRisk count (blocking recommended)

Request example:

bash
curl --location --request POST 'https://open.musedam.cc/api/muse/detection-task-get' \
--header 'Authorization: Bearer your_api_key' \
--header 'Content-Type: application/json' \
--data-raw '{
"taskId": 30001
}'

Get compliance detection task details

Description: List asset detection details with pagination, optionally filtered by materialId.

Path:/detection-task-details

Method:POST

Request parameters:EnterpriseDetectionTaskDetailsReq

FieldTypeRequiredDescription
taskIdLongYesDetection task ID
pageIntegerNoPage number; default: 1
pageSizeIntegerNoPage size; default: 20
materialIdLongNoPublic asset ID; return only this asset's details when provided

Response:EnterpriseDetectionTaskDetailsPageDTO

FieldTypeDescription
totalLongTotal
itemsList<EnterpriseDetectionTaskAssetDetailDTO>Detail list

items item fields:

FieldTypeDescription
materialIdLongPublic asset ID
materialNameStringAsset name
sizeLongFile size in bytes
widthIntegerWidth
heightIntegerHeight
durationLongVideo duration in milliseconds
extensionStringFile extension
batchIdStringBatch ID
bizTypeInteger1 existing asset / 2 pending import
detectionDetailsList<EnterpriseDetectionDetailDTO>Detection results by channel

detectionDetails item fields:

FieldTypeDescription
eventIdStringDetection channel
assetDetectionStatusInteger0 not detected / 1 detecting / 2 completed
messageStringMessage
codeIntegerRequest code
riskLevelPassCountIntegerPass count
riskLevelReviewCountIntegerReview count
riskLevelRejectCountIntegerReject count
finishTimeDateCompletion time
assetDetectionAllResultStringFull raw result

Request example:

bash
curl --location --request POST 'https://open.musedam.cc/api/muse/detection-task-details' \
--header 'Authorization: Bearer your_api_key' \
--header 'Content-Type: application/json' \
--data-raw '{
"taskId": 30001,
"page": 1,
"pageSize": 20,
"materialId": 20001
}'

Notes:

  • materialId must identify an existing asset in your team; otherwise a parameter error is returned.
  • Recommended flow: detection-task-create → poll detection-task-get until completion → retrieve results with detection-task-details.
MuseDAM Developer PlatformAPI · Integrations · MCP
    Compliance detection | MuseDAM Developers