Skip to content

Query media assets ​

media assets query is used to read the media assets list, media assets details and media assets status. When re-use media assets in task generation, it is recommended that media assets be confirmed as available.

Query media assets List ​

http
GET /v1/assets
bash
curl "https://moonnexai.com/v1/assets?type=image&page=1&page_size=20" \
  -H "Authorization: Bearer <MOONNEXAI_API_KEY>"

If media assets is in the self-constructed group, group_id:

bash
curl "https://moonnexai.com/v1/assets?group_id=group_xxx&type=image&page=1&page_size=20" \
  -H "Authorization: Bearer <MOONNEXAI_API_KEY>"

List query parameters ​

ParametersTypeshall fillAnnotations
group_idstringNoAsset group ID. When supplied, return only that group's assets; otherwise query the default group.
typestringYesmedia assets type. Common values are image, audio, video, file.
statusstringYesmedia assets status. Common values are created, syncing, ready, failed, disabled.
domainstringYesmedia assets domain. Common values are media.
pageintegerYesPage number, default 1.
page_sizeintegerYesNumber of pages per page, default 20.

List response fields ​

fieldTypeAnnotations
objectstringFixed to list.
dataarrayArray of assets; see Asset fields below for each entry.
countintegerThe current page returns the number.
totalintegerTotal number of media assets eligible.
pageintegerCurrent page number.
page_sizeintegerNumber of pages per page.
request_idstringrequest ID.
trace_idstringTrack ID.

Search for media assets details ​

http
GET /v1/assets/{asset_id}
bash
curl https://moonnexai.com/v1/assets/asset_xxx \
  -H "Authorization: Bearer <MOONNEXAI_API_KEY>"

If you need to verify whether media assets belongs to a group, you can upload group_id in the details query. If media assets is not in that group, returns unrecovered.

bash
curl "https://moonnexai.com/v1/assets/asset_xxx?group_id=group_xxx" \
  -H "Authorization: Bearer <MOONNEXAI_API_KEY>"

Compatible entry:

http
GET /api/asset/get

Details query parameters ​

ParametersTypeshall fillAnnotations
group_idstringYesFor verifying whether media assets is in the specified group. media assets returns unrecovered when it is not in that group.

Asset fields ​

fieldAnnotations
objectobject type, usually asset.
idmedia assets ID, formatted as asset_xxx.
asset_idmedia assets ID, and id equivalent.
group_idGroup ID of media assets.
domainmedia assets domain. Common values are media.
type / asset_typemedia assets type, common values image, audio, video, file.
nameName of media assets.
descriptionmedia assets note.
source_urlYou create the original public network URL that you enter when media assets is in.
urlURL available to the user. Usually equals source_url for mode=asset; for mode=oss or mode=both, usually a MoonNexAI OSS URL intended for testing.
oss_urlMoonNexAI OSS test URL. Only mode=oss or mode=both are usually of value and are not guaranteed for long periods.
reference / asset_refmedia assets references, formatted Asset://asset_xxx, that can be used to generate API in part.
content_typeFile mimetype.
sizeFile size, bytes in units.
durationAudio or video duration in seconds.
statusmedia assets is recorded. Common values are shown in the below status table.
sync_statusmedia assets reference readiness.
preparation_statusPreparation status before generation.
generation_readyWhether to recommend immediate use for generating request.
review_statusmedia assets audit/availability results. Common values are succeeded, pending, failed, unknown.
review_passedWhether or not media assets audit/availability check has been performed.
visibilityVisibility. Usually private.
created_atCreated.
updated_atUpdate time.
request_idrequest ID.
trace_idTrack ID.

Status fields ​

fieldCommon ValuesAnnotations
statuscreated, syncing, ready, failed, disabledmedia assets record state.
sync_statuscreated, syncing, ready, failedmedia assets reference readiness.
preparation_statuscreated, syncing, ready, failed, disabledAre you ready to use to generate task?
generation_readytrue / falseWhether to immediately insert it into the generated request.
review_statussucceeded, pending, failed, unknownmedia assets audit results. succeeded indicates that the media assets audit has been approved, but is not equal to the completion of the pre-generation synchronous.
review_passedtrue / falseWhether or not media assets audit/availability check has been performed.
sync_errorstringReason for asset synchronization failure; usually populated only on failure.

Before video generation, it is recommended that the following be confirmed:

text
status = ready
preparation_status = ready
generation_ready = true
review_status = succeeded
review_passed = true

If preparation_status=syncing or generation_ready=false, wait a little while to re-examine the same asset_id. Do not create a new media assets repeatedly for the wait for ready. If preparation_status=failed, look at sync_error, replace media assets or check if media assets URLs are publicly accessible.

Some media assets services return to "media assets has passed" and fail when synchronous goes to the generator. For example, when a photo hits a copyright or content policy, it may occur:

json
{
  "status": "failed",
  "preparation_status": "failed",
  "generation_ready": false,
  "review_status": "succeeded",
  "review_passed": true,
  "sync_error": "InputImageSensitiveContentDetected.PolicyViolation: The request failed because the input image may be related to copyright restrictions."
}

This means that the media assets audit was passed but could not be used for generation; please judge whether generation_ready and preparation_status are generated.

Example response ​

json
{
  "id": "asset_xxx",
  "asset_id": "asset_xxx",
  "object": "asset",
  "type": "image",
  "asset_type": "image",
  "group_id": "group_xxx",
  "domain": "media",
  "name": "reference.png",
  "description": "",
  "source_url": "https://example.com/reference.png",
  "url": "https://example.com/reference.png",
  "oss_url": "",
  "reference": "Asset://asset_xxx",
  "asset_ref": "Asset://asset_xxx",
  "content_type": "image/png",
  "size": 245678,
  "duration": 0,
  "status": "ready",
  "sync_status": "ready",
  "preparation_status": "ready",
  "generation_ready": true,
  "visibility": "private",
  "created_at": 1710000000,
  "updated_at": 1710000000,
  "request_id": "2026060301010100000000000000000000",
  "trace_id": "2026060301010100000000000000000000"
}

Blocked ​

group_id is the client side custom group ID. Once media assets is uploaded into group_id, it is also suggested that the list and detailed query should be accompanied by the same group_id.

sceneResult
List Query Transfer group_id=group_xxxreturns media assets only under this group.
Detailed query is correct group_idReturns normal media assets details.
Details Query Error group_idReturns unrecovered, which can be used to verify the side save relationship.
Do Not Pass group_idUse the default group.

Use recommendations ​

  • Confirm generation_ready=true before generating task.
  • If the newly created Asset://asset_xxx cannot be used for video generation for the time being, wait for a short time to retry with the same media assets reference.
  • Maintain media assets ID, group ID, use, user or project correspondence in the business system.
  • If media assets is not ready, save asset_id, trace_id and API original response.

Asset groups ​

http
GET /v1/asset-groups
POST /v1/asset-groups
GET /v1/asset-groups/{group_id}
PATCH /v1/asset-groups/{group_id}

Creates examples of groups:

bash
curl https://moonnexai.com/v1/asset-groups \
  -H "Authorization: Bearer <MOONNEXAI_API_KEY>" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "project-a",
    "description": "Project A materials"
  }'

Relevant Pages ​