Layers
Partner APIAPI referenceApp media

DELETE /v1/projects/:projectId/app-media/:mediaId

Soft-delete a partner-managed app-media asset.

View as Markdown
DELETE/v1/projects/:projectId/app-media/:mediaId
stableidempotent
Auth
Bearer
Scope
projects:write

Soft-deletes the row. The R2 object is reaped by a background sweep; the asset disappears from GET /app-media and from content-generation queries immediately.

Scoped to the four partner-managed kinds (logo, screenshot, demo-video, end-card). Attempts to delete system-managed rows (auto-generated end-cards with metadata.source = 'end-card-generator', internal-only kinds) return 404 to avoid leaking row existence across role boundaries.

Response

200Deleted
{
  "id": "med_01HZ...",
  "deleted": true
}

Errors

StatusCodeWhen
422VALIDATION:mediaId is not a valid med_<uuid> id.
401UNAUTHENTICATEDMissing or invalid key.
403FORBIDDEN_SCOPEKey lacks projects:write.
404NOT_FOUNDThe media row doesn't exist, is already deleted, isn't in this project, or isn't a partner-managed kind.

Notes

  • Logo replacement is automatic. Uploading a new logo via POST /app-media soft-deletes any prior logo on the project. You don't need to DELETE the old one first.
  • Screenshots and demo videos are independently deletable. Each is a separate row.

On this page