v2 - Contents

Create Content

Create a new content. With an Idempotency-Key (the MCP client sends one with contents_create), a retry with the same key answers with the piece the first call made: no second piece, no second reviewer notice (Tom, 2026-10-18; infrastructure/persistence/content_create_keys.py). The key is claimed only after the caller is seen to be allowed to create here.

ONE FILE, ONE PIECE (2026-10-26). A create that sends no key is claimed under its video instead (_video_create_key), and _create_content answers with the piece already on that file. One MP4 in ws_c35a1f5ccba0 became two pieces: the dashboard filed the finished upload from two places (the page hook and GlobalUploadProvider), and both creates went through.

post/v2/contents

Request

  • Base URL
    https://api.jubjubapp.com (the document declares no server; this is the origin it was published from)
  • Auth
    HTTP bearer

Headers

Idempotency-Keystring nullable
Authorizationstring
X-JubJub-Service-Keystring
X-JubJub-Agent-Keystring
X-JubJub-Platform-Keystring
Originstring
Refererstring
X-JubJub-Trial-Tokenstring

Request body

workspace_idstring required

Workspace that owns this content

titlestring required
descriptionstring nullable
tagsstring[] nullable
video_idstring required

Reference to uploaded Media (video)

thumbnail_idstring nullable

Reference to Media (thumbnail)

subtitle_idsstring[] nullable

References to subtitle Media

languagestring nullable

Primary language code (ISO 639-1)

is_made_for_kidsboolean
folder_idstring nullable
created_bystring nullable

Profile ID of creator

Response

Successful Response

content_idstring required
workspace_idstring nullable
folder_idstring nullable required
titlestring required
descriptionstring nullable required
tagsstring[] nullable required
video_idstring required
thumbnail_idstring nullable required
thumbnail_urlstring nullable
subtitle_idsstring[] nullable required
current_versioninteger
version_countinteger
approval_statusstring
languagestring nullable required
is_made_for_kidsboolean required
statusstring required
created_atstring date-time required
updated_atstring date-time nullable required
created_bystring nullable required
created_by_youboolean
ownership_contract_addressstring nullable
token_idstring nullable
on_chain_tx_hashstring nullable
on_chain_confirmedboolean
ownership_statusstring
ownership_stepstring nullable
ownership_reasonstring nullable
media_kindstring nullable
catalogue_contract_addressstring nullable
discoverableboolean
provenance_tierstring nullable
provenance_scoreinteger nullable
transcript_availableboolean
content_typestring nullable
topicsstring[] nullable
sentimentstring nullable
production_tierstring nullable
settingstring nullable
duration_secondsnumber nullable
questions_answeredstring[] nullable
training_captionstring nullable
cinematographicobject nullable
provenance_signalsobject nullable
entities_peoplestring[] nullable
entities_brandsstring[] nullable
entities_locationsstring[] nullable
chapter_markersobject[] nullable
target_audienceobject nullable
expertise_levelstring nullable
transcript_fullstring nullable
payment_verifiedboolean
is_ownerboolean
sourcestring nullable
published_atstring nullable
registered_atstring nullable
platformstring nullable
platformsstring[] nullable

List of configured platforms (populated separately)

Changes

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