API v1

Cleanup Media Asset

Conditionally deletes an uploaded media asset and its processing jobs. This API ensures active or successful processing jobs are never accidentally removed.

DELETE/api/client/v1/processing-assets/<upload_id>/cleanup

What this API does

  • Validates ownership of the uploaded media asset
  • Checks the status of all processing jobs for the asset
  • Deletes only failed jobs when active jobs still exist
  • Deletes the entire asset when all jobs have failed
  • Removes associated files from cloud storage (GCS)
  • Ensures active or completed jobs are never deleted

Authentication

Headers
X-Client-ID: <YOUR_CLIENT_ID>
X-Client-Secret: <YOUR_CLIENT_SECRET>

Path Parameter

ParameterTypeRequiredDescription
upload_idintegerYesUnique identifier of the uploaded media asset. This value can be obtained from the List Jobs and Job Detail API responses as the upload_id field.
Example Request
DELETE /processing-assets/981/cleanup

Deletion Rules

ScenarioResult
All processing jobs are failedMedia asset is deleted along with all processing jobs and associated files
Mixed job states (failed + active/completed)Only failed jobs are deleted. Asset and active jobs are preserved
No failed jobsNothing is deleted
Active job existsAsset deletion is blocked

Response

200 OK – Asset Deleted
{
  "success": true,
  "action": "avatar_deleted",
  "message": "All jobs failed. Media asset permanently deleted."
}
200 OK – Partial Cleanup
{
  "success": true,
  "action": "partial_cleanup",
  "message": "Failed jobs deleted. Active jobs preserved."
}

Possible Errors

StatusReason
400No failed jobs available for deletion
403Invalid API credentials or unauthorized asset access
404Media asset not found
500Internal server error
  • This operation is irreversible
  • Active or completed jobs are never deleted
  • File deletion is performed atomically with database cleanup
  • Cloud storage cleanup is idempotent and safe

👉 Next: Retry Processing Job – retry failed processing jobs.