v2 - Launches

Create Launch

Create a new multi-platform launch.

This endpoint allows publishing content to multiple platforms at once. If scheduled_for is provided, the launch will be scheduled for that time. Otherwise, it will execute immediately.

Request body:

  • content_id: ID of the content to publish
  • platform_config_ids: List of PlatformConfig IDs to publish to
  • scheduled_for: (optional) When to publish
  • timezone: (optional) Timezone for scheduled_for

Access: Must have PUBLISH_EXECUTE permission on the content's workspace. Agents: Require publish:execute scope.

post/v2/launches

Request

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

Headers

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

Request body

content_idstring required

ID of the content to publish

platform_config_idsstring[] required

List of PlatformConfig IDs to publish to

titlestring nullable

Title for THIS launch, as typed in the Publish dialog. Stored on the launch and used wherever the launch is displayed. When absent, the content's own title is used. Never written back to the content — publishing does not rename the piece.

first_commentstring nullable

General first comment for this launch: posted as a comment on the new post on every selected YouTube, LinkedIn and Farcaster platform, and Facebook and Instagram where the workspace's meta_engagement_enabled is true, that has no first comment of its own (a platform's own, in platform_overrides or its config, wins). Refused with 422 when it is over a selected platform's limit; never truncated.

scheduled_forstring date-time nullable

When to publish. If None, publishes immediately.

timezonestring nullable

Timezone for scheduled_for (e.g., 'America/Sao_Paulo')

idempotency_keystring nullable

Client-provided key to prevent duplicate launches

platform_schedulesobject nullable

Per-platform schedule overrides keyed by PlatformConfig ID. When set, that platform publishes at the given time instead of scheduled_for. Each timestamp must be in the future.

platform_overridesobject nullable

Per-platform settings overrides keyed by PlatformConfig ID. Each value is merged on top of PlatformConfig.settings (override wins) at publish time. Use to set per-publish YouTube category, Vimeo privacy, TikTok duet flags, etc.

Example request

{
  "content_id": "cnt_abc123",
  "platform_config_ids": [
    "cfg_instagram_001",
    "cfg_youtube_002"
  ],
  "platform_overrides": {
    "cfg_youtube_002": {
      "category_name": "Entertainment",
      "made_for_kids": false
    }
  },
  "platform_schedules": {
    "cfg_youtube_002": "2024-01-20T16:00:00Z"
  },
  "scheduled_for": "2024-01-20T15:00:00Z",
  "timezone": "America/Sao_Paulo"
}

Response

Successful Response

launch_idstring required

Unique launch identifier

content_idstring required

ID of the content being published

content_titlestring nullable

Title of the content

content_thumbnail_urlstring nullable

Thumbnail URL of the content

workspace_idstring required

Workspace ID

created_bystring nullable

Creator's profile ID: only the caller's own (or for a platform admin)

created_by_youboolean

Whether the caller created this launch

statusstring required

Overall status: pending, awaiting_approval, scheduled, in_progress, completed, partial_failure, failed, cancelled, handed_over (sent to the creator's own editor to post; JubJub published nothing), unknown (stored value unrecognised; never executed)

error_codestring nullable

Why the launch as a whole is waiting or stopped: AWAITING_OWNER_APPROVAL (a shared account's owner must approve), AWAITING_WORKSPACE_APPROVAL (the workspace owner must release it), APPROVAL_REJECTED, MEMBER_REMOVED (cancelled: its launcher left the team), or the one code every failed platform shares. Null otherwise.

scheduled_forstring date-time nullable

Scheduled publish time

timezonestring nullable

Timezone for scheduled_for

platform_schedulesobject nullable

Per-platform schedule overrides keyed by config_id

platform_overridesobject nullable

Per-platform settings overrides keyed by config_id

first_commentstring nullable

General first comment for this launch (per-platform ones win)

first_comment_noticestring nullable

Where the general first comment is NOT being posted, and why, in one line (e.g. 'Instagram first comments are coming soon, so this one was not posted on Instagram.'). Null when it goes everywhere it was sent. Tell the user: the launch still publishes, only the comment stops.

created_atstring date-time required

When launch was created

updated_atstring date-time nullable

Last update time

completed_atstring date-time nullable

When launch completed

sent_to_ad_library_countinteger

Legs sent to a Meta ad account's media library (not published; not in successful_count)

noticesstring[]

Plain sentences about this request, e.g. that Meta Ads campaign settings were ignored

total_platformsinteger required

Total number of platforms

successful_countinteger required

Number of successful platforms

failed_countinteger required

Number of failed platforms

sent_nowboolean

Example response

{
  "completed_at": "2024-01-17T10:02:00Z",
  "content_id": "cnt_xyz789",
  "created_at": "2024-01-17T10:00:00Z",
  "created_by_you": true,
  "creator": {
    "display_name": "Ada",
    "handle": "ada",
    "is_you": true
  },
  "failed_count": 1,
  "launch_id": "lch_abc123",
  "platforms": [
    {
      "completed_at": "2024-01-17T10:02:00Z",
      "config_id": "cfg_001",
      "platform": "instagram",
      "published_id": "123456789",
      "published_url": "https://instagram.com/reel/abc123",
      "started_at": "2024-01-17T10:00:00Z",
      "status": "success"
    },
    {
      "completed_at": "2024-01-17T10:00:05Z",
      "config_id": "cfg_002",
      "error": "Invalid credentials",
      "platform": "youtube",
      "started_at": "2024-01-17T10:00:00Z",
      "status": "failed"
    }
  ],
  "status": "partial_failure",
  "successful_count": 1,
  "total_platforms": 2,
  "workspace_id": "ws_def456"
}

Changes

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