Mascots

Start, edit, review, archive or restore a mascot listing

Customer publication is separate from CDN hosting. GET state is null until action:start. state.visibility (unpublished/published/archived) is independent of state.changes_status (draft/pending/approved/rejected). save_draft requires the current draft_id and accepts incomplete listing details. Preview and submit require an editable draft; all submissions, including admin submissions, enter pending review. The project workspace owns the seller identity. GET includes seller with exactly one of user_id or organization_id and can_publish (whether this viewer may manage publication). Team owners/admins manage publishing; submission also retains the existing creator eligibility requirement. A team listing uses the team profile and credits earnings to the team wallet. The submitting member is recorded separately. Marketplace submissions require a handle on the selling workspace profile. Approval and restore enforce this rule, and a creator cannot make their profile private or unlisted while a library is published. Pending changes leave approved media, price and description unchanged. Approval atomically replaces the selected content; rejection preserves the draft and approved version. archive stops new acquisition; restore republishes only the approved version. Archiving during review prevents approval from making the listing visible. Submitting while archived requests publication after approval. remove stages a draft change and never modifies the live listing directly. Existing buyers retain acquired content. Preview returns plan_id, valid for ten minutes. Submit requires that plan and fails with 409 if source context or dependencies changed. Review uses the frozen submission. Removing discovery preserves retained uses. Marketplace offers require at least one generated image on the mascot and a selection containing at least one image and five animations. Optional offer.cover_asset_id selects an included gallery image as the listing thumbnail; videos and exports are rejected. If omitted, an included generated image is preferred automatically, otherwise the first included image. Include at least one image. The mascot name is frozen at submission and changes publicly only after approval; display names need not be unique. Delivery formats are grouped under gallery assets; GET includes signed transparent_url, webm_url and hevc_url when available, plus has_generated_image. Mac version: selection.player_canvas_id names a canvas of this mascot that plays on Masko for Mac. Preview and submit freeze its graph into snapshot.player (canvas_id, name, graph, graph_hash) and include every image and animation it uses as selected content. The graph must validate and its animations must be generated source clips. Without player_canvas_id, the approved Mac version carries forward; removing any of its media returns 409. A mascot's first Marketplace offer requires a Mac version (409 otherwise). GET includes player (approved Mac version, whether one is required, and the mascot's canvases with counts and any blocking issue), and listing_preview.player.

post/v1/mascots/{id}/publication

Request

  • Base URL: https://api.masko.ai
  • URL: https://api.masko.ai/v1/mascots/{id}/publication
  • Auth: HTTP bearer

Path parameters

idstring uuid required

Headers

Idempotency-Keystring

Account-scoped key (1 to 255 characters, ideally a UUID). Retries must preserve the credential workspace, effective API version, URL, content type and exact body bytes, including multipart boundaries; different inputs return 409 idempotency_key_reused. Completed responses, including 500 errors, replay for 24 hours after completion with current resource access checked again. Running or unconfirmed executions return 409 idempotency_request_in_progress and do not expire automatically. A receipt persistence failure returns 503 idempotency_persistence_failed: retry only with the same key and inspect the operation outcome before starting a new request.

Request body

OR
OR
OR
OR
OR
OR
OR
OR

Response

Successful response

dataobject required

Changes

No recorded changes to this operation across all 1 revision of this API.