CMO AI Pro Developers
記事LPエディタツール
記事LPの下書き、素材、表示設定、保存テンプレートを扱う12個のツールの仕様です。
最終更新日:2026年9月23日
記事LPの下書き、表示設定、ready素材、アップロード、素材ライブラリからの写し、再利用ウィジェットを扱う13個のツールです。Team・Agency・Enterpriseの契約中の組織(記事LPエディタを使える組織)のメンバーが使えます。Soloの組織では、これらのツールを呼ぶと conflict(本文「この操作は許可されていません。」)が返ります。無料トライアルの組織はMCPに接続できません。記事のZIP書き出し・削除、組織・課金設定は画面で行います(CMO AI Pro上での一般公開は準備中です)。Soloへの変更後や無料トライアル中も、画面では保存済みの記事LPを閲覧のみで開け、ZIPの書き出しと削除ができます。すべての変更要求はAPIキー、ツール名、128文字までの外部冪等性キー全体を名前空間付きハッシュへ変換した120文字以内のサービス要求IDを使います。記事LPの要求は対象記事と案件の所属関係も結合し、同じキーを別対象へ切り替えるとキャッシュを返しません。装飾パーツは新しいツールを追加せず、get_official_article の article.decorationContract でversion付きカタログとpatch例を取得します。
list_official_articles
案件に属する未アーカイブの記事LPを、更新日時の降順で取得します。cursorを使うkeyset paginationで続きへ進みます。
パラメータ
| パラメータ | 型 | 必須 | 既定値 | 制約 |
|---|---|---|---|---|
project_id | 文字列 | 必須 | — | UUID |
cursor | 文字列 | 任意 | — | サーバー発行値 |
limit | 整数 | 任意 | 20 | 1〜50 |
応答
| フィールド | 内容 |
|---|---|
articles[] | 記事LPの安全な概要 |
nextCursor | 次ページのcursor。末尾はnull |
create_official_article
案件に空の記事LPの下書きを作成します。
パラメータ
| パラメータ | 型 | 必須 | 既定値 | 制約 |
|---|---|---|---|---|
project_id | 文字列 | 必須 | — | UUID |
title | 文字列 | 必須 | — | 1〜200文字 |
idempotency_key | 文字列 | 必須 | — | 1〜128文字 |
応答
| フィールド | 内容 |
|---|---|
articleId | 作成または再利用された記事ID |
revision | 現在のrevision |
slug | 記事slug |
reused | 同じ要求を再利用したか |
get_official_article
現在のrevision、schema、順序、編集可能な操作を取得します。block_idsを指定した場合、blocksは選択投影であり、partial: true になります。
パラメータ
| パラメータ | 型 | 必須 | 既定値 | 制約 |
|---|---|---|---|---|
article_id | 文字列 | 必須 | — | UUID |
block_ids | 文字列の配列 | 任意 | — | UUID、最大100件 |
応答
| フィールド | 内容 |
|---|---|
article.revision | 現在のrevision |
article.schemaVersion | 文書schema |
article.blockIds | 完全な順序付きblock ID |
article.blocks | 全文または指定blockの投影 |
article.partial | blocksが選択投影か |
article.allowedOperations | insert / replace / move / updateSettings / replaceText |
| article.richTextContract | 本文(richText)の書き方の約束事(paragraphs / runs / marks の形、文字サイズ 6〜48px、色は #RRGGBB、段落内改行は )、そのまま保存できる記入例、replaceText の規則 | | article.decorationContract | version付き93 preset(89単体+4セット)、各presetの adjustments(動き・形・追加キーの許可表)、insert/replace例、画像/CTA/管理セクション向け blockMotion 許可表、survey・調整項目・文書上限の契約 |
decorationContract.catalogVersion は official-article-decoration-v9 です。decorationContract.blockMotion は schema の許可表から機械生成されます。asset は image / manga ブロックの payload.motion(bounce / pulse / sway / shine / fadeIn / shake / heartbeat / zoom / fadeUp / doubleJumpShine)、cta は cta ブロックの payload.motion(bounce / pulse / jump / shine / sway / fadeIn / shake / heartbeat / sparkle / fadeUp / arrowSlide)です。fadeIn / fadeUp は画面に入ったときに1回だけ現れる動き(fadeUp は下から)、zoom は画像をゆっくり拡大する動き、arrowSlide はボタンの矢印アイコンだけが右へ動く動きで、動きを減らす設定の端末ではすべて止まります。managedSection は legacySection で managedVersion が付いた管理セクション向けで、media slot と cta slot は slot.motion に置き、CTA slot の payload には motion を置きません。excluded.stickyCta は追従CTAが動きの対象外であることを示します(constraints.stickyCtaBlockMotion は「追従CTAは動きの対象外」)。動きなしのときは blockMotion.omitKeyWhenNone のとおり motion キーを省略します("none" は保存しません)。constraints.assetBlockMotion / ctaBlockMotion / managedSectionBlockMotion / stickyCtaBlockMotion に同内容の説明があります。presets の id はUIと共通の安定IDです。各presetには許可表から導かれた adjustments(motions、survey では variants と labelStyles、bubble / review / note / arrow などでは keys)が含まれます。単体presetには検証可能な payloadExample と insertExample が含まれます(例: button-01 の payloadExample には motion: "bounce" の例があります)。セットpresetは保存用の単一blockにせず、expandedBlocksExample と insertOperationsExample で複数の新規blockへ展開する形だけを返します。装飾を追加するときは、取得した例の形を使い、block.kind を decoration、payload.version を 1 として、payload.presetId を選んだpresetへ置き換えてください。motion は adjustments.motions に列挙された値だけを使い、動きなしのときは motion キーを省略します("none" は保存しません)。variant は各 preset の adjustments.variants にある値を使います。labelStyle は survey preset のみ(plain / tab)です。side は bubble / review / note のみ(left / right)。speaker は bubble / review のみで、assetId は同じ案件の ready な記事素材 ID(外部URL不可)、name は60字までで省略できます(省略または空のときは名前欄を表示しません)。note は review のみ。count は arrow で variant が block のときのみ(1〜3)。assetIds は gallery-01(写真ギャラリー。variant は grid2 / grid3)と slider-01(横スライダー)のみで、同じ案件の ready な記事素材 ID を順番どおりに並べた配列(重複不可。ギャラリーは最大9枚、スライダーは最大10枚。空の配列は保存せずキーを省略)です。キャプションは items(assetIds と同じ件数、text のみ各100字まで)で画像の下に表示され、2枚未満のときは公開前チェックに警告が出て公開ページには表示されません。公開マニフェストでは各画像を asset-1、asset-2… のslotIdで配置します。assetId は mediacard-01(画像+文章の左右。side で画像の位置、variant は plain / card)のみで、公開マニフェストのslotIdは media です。toc-01(目次)は title だけを保存し、公開ページで本文の見出しから自動生成します。readmore-01(続きを読む)は title(ボタン文言)と text(折りたたむ本文)を持ちます。tabs-01(タブ切替)は items が2〜4件で、text がタブ名(1〜20字)、body が本文です。装飾の文字はすべて HTML 本文で、画像の上に文字を重ねる部品はありません。記事のテーマ色 settings.decorationTheme(main / sub の #RRGGBB)は updateSettings で変更できます。get_official_article の settings に含まれ、装飾の色は payload.colors 未指定時にテーマ色→見本既定色の順で決まります。記事のrevisionを取得してから、通常の update_official_article の insert または replace として送ります。既存の認可、CAS revision、冪等性キーは装飾にも適用されます。
リンクと配置(v8): 本文リンク・CTA・画像・装飾ボタン・ボタングリッド(buttongrid-01)・ギャラリーの画像は、https:// のURLに加えて電話発信の tel:(数字とハイフン、例 tel:0120-123-456)と、同じ記事の中へのページ内リンク #目印の名前(#top はページ先頭)を使えます。目印はブロックの style.anchor に付けます。連続したブロックは style.sectionId と settings.articleSections で1つの区間(背景色・背景画像・内側の余白・角丸・枠線)にまとめられ、settings.backToTopEnabled で「TOPへ戻る」ボタンを出せます。フッターのリンクは1〜8本で mailto: も使えます。これらは保存先が対応しているときだけ decorationContract.capabilities.layoutLinks が true になり、対応していない保存先では契約から外れます。
{
"op": "insert",
"afterId": null,
"block": {
"id": "11111111-1111-4111-8111-111111111111",
"kind": "decoration",
"payload": {
"version": 1,
"presetId": "button-01",
"text": "ボタン文言",
"href": "https://example.com/lp"
}
}
}例の href はリンク先URLの書式を示すものです。実際に送るときは、ボタンのリンク先にする利用者自身のURLを指定してください。
アンケートpresetは display が all または step、質問形式が single / multiple / text です。回答はreader画面のメモリだけで扱い、canonical記事、URL、storage、networkへ保存しません。質問の assetId は対象記事の組織・案件で認可されたready素材を指定します。URLは http または https を指定でき、文書全体には既存の最大block数・最大サイズ・patch操作数の上限が適用されます。
decorationContract.capabilities.referenceWidgets は対象記事の保存先に対する読み取り専用の検証結果です。true のとき、画像の doubleJumpShine(2秒で2回跳ねる動き+独立した3秒の光)、arrow-01 の variant: "stream"(横3本×2組。motion: "flow" で流れる)、survey の variant: "outline"(太枠・全幅の選択肢)、本文の textStyle に backgroundColor と markerStyle: "reveal"(画面に入ると1秒で引くマーカー)を使えます。保存先が未対応または確認できないとき、該当する新しい動き・形を許可表から除きます。CTAには doubleJumpShine を指定できません。
decorationContract.capabilities.textDecorations も同じ読み取り専用の検証結果です。true のとき、richText の mark に underline(下線。任意の attrs.color)、emphasis(傍点。任意の attrs.color)、superscript(上付き文字。attrs なし)、段落に letterSpacing(-0.05 / 0.05 / 0.1 / 0.2 em)を使えます。口コミカード・吹き出し・囲み(review-01 / bubble-01 / box-01〜05 / box-07 / box-08)では、本文 text の一部だけを装飾する textRuns({ text, marks? } の配列。marks は bold / textStyle / underline)を送れます。textRuns の text をつなぐと text と完全一致させ、HTML 文字列は送りません。詳しくは decorationContract.constraints の textFormatting / letterSpacing / textRuns を読んでください。false の保存先では、これらは保存時に拒否されます。
decorationContract.capabilities.reproMiscWidgets も同じ読み取り専用の検証結果です。true のとき、countdown-01 の variant(stack=縦積み・既定 / band=タイトルと時分秒を1行に並べた帯)と showCentiseconds: true(閲覧画面で1/100秒まで表示。動きを減らす設定の端末では秒まで)、box-09(角飾り囲み。variant は slash=左上の斜線 / bracket=角の鉤形、影付き)、heading-01〜heading-07・heading-17 の icon(badgeIcons の内蔵アイコン名。見出し文字の前に表示)、すべての見出しの fontFamily と本文段落(richText の paragraph)の fontFamily("mincho" のみ。端末の明朝体で表示し、Webフォントは読み込みません)、画像・CTA・ボタンの動き jelly(縦横に交互に伸び縮みする弾み)を使えます。false のときは、これらを許可表から除きます。どれも省略時は従来の表示です。
decorationContract.capabilities.widgetsS2 も同じ読み取り専用の検証結果です。true のとき、画面に重ねて出す3つの部品と追従CTAの × を使えます。どれも本文の流れの中にブロックとして置き、閲覧画面では画面に重ねて表示します。motion は持ちません(出入りの動きは部品の一部で、動きを減らす設定の端末では止まって表示します)。
popup-01(ポップアップ):title=見出し、text=本文、assetId=画像(任意。同じ案件の ready な静止画。文字は画像の外に出します)、secondaryText=ボタンの文言、href=ボタンのリンク(CTA として計測)。variantはcard(中央カード・既定)/image(画像を大きく。画像そのものがリンク)/sheet(下からのシート)/coupon(クーポン風)。triggerは省略(開いてからdelaySec秒後)/scroll(scrollPercent% までスクロールしたら)/end(ページの末尾近く)。delaySecは 3〜60 の整数でtrigger省略のときだけ、scrollPercentは 10〜90 の整数でtrigger: "scroll"のときだけ送ります(既定の 5 秒・50% は保存しません)。どのきっかけでも開いてから3秒は出しません。topbar-01(固定帯):text=帯の文言、href=帯のリンク(button形はボタンのリンク)。variantはnotice(上部の案内帯・既定)/countdown(締切カウントダウン帯。countdown-01と同じdeadlineかdailyResetAtのどちらか一方が必須)/button(ボタン付き帯。secondaryText=ボタンの文言はこの形だけ)/marquee(文字が横に流れる)/side-right・side-left(画面の右端・左端の細い帯で、縦書きの文字が上へ流れる)。showOnScroll: trueでスクロール開始後に出します。titleとitemsは持ちません。toast-01(画面の通知):speaker(内蔵の顔アイコンiconか ready な画像assetId。nameは任意)、title=見出し、text=吹き出しの本文、href(任意)。variantはchat(チャット着信風・既定)/notice(お知らせ風)/badge(件数バッジ付き)。delaySecは 1〜60 の整数、position: "bottom"で下から出します(省略時は上から)。- 上限: 種類ごと(ポップアップ・上部の帯・端の帯・通知)に記事の最初の1個だけを表示します。ポップアップと通知は1回の訪問で1度だけ出し、ポップアップの表示中は通知を出しません。重なり順はポップアップ>通知>固定帯>追従CTA>TOPへ戻るボタンです。
settings.stickyCtaDismissible: true(updateSettings)で追従CTAに × を付けます。閉じるとその訪問では出しません。オフはキーを外します(unsetKeys)。
false のときは、3つの preset と stickyCtaDismissible を許可表と allowedSettingKeys から除きます。詳しくは decorationContract.constraints.overlays を読んでください。
decorationContract.capabilities.widgetsS4 も同じ読み取り専用の検証結果です。true のとき、richText の mark に underline の attrs.style(dotted / dashed / wavy / double。実線は省略)、textEffect(縁取り・影。attrs.effect は outline / shadow / outlineShadow / glow、任意の attrs.color)、ruby(ルビ。attrs.text はふりがな1〜30字・改行なし、任意の attrs.color)、textAnimation(本文の一部だけの動き。attrs.animation は blink / colorSwap。colorSwap は切り替え先の attrs.color が必須。公開ページだけで動き、動きを減らす設定の端末では止まります)を使えます。装飾の textRuns には使えません。部品は heading-13(両側線の中央見出し。variant は solid / double / dotted / fade)、heading-14(斜め帯。parallelogram / skew / arrow)、heading-15(括弧で挟む見出し。kagi / paren / sumi。括弧は描画で付くので title に含めません)、heading-16(大きな数字・英字の見出し。number / english / tab。大きな文字は secondaryText に12字まで)、vertical-01(縦書き。mincho / band / photo。title は60字まで・改行で次の列、text は400字まで、photo のときだけ任意の assetId と写真の位置 side。文字は写真の上に重なりません)、button-07(文字リンク。chevron=「>> 文言 <<」/ arrow=下線+右矢印 / small=小さな文字リンク。text は1行100字まで、href を持ち、動きは fadeIn / fadeUp / fadeLeft / fadeRight / blink)です。色は colors.accent(記号・線・帯)と colors.text(文字)で、省略時は記事のテーマ色です。詳しくは decorationContract.constraints の widgetsS4 / textEffects を読んでください。false のときは、これらを許可表から除きます。
decorationContract.capabilities.widgetsS5 も同じ読み取り専用の検証結果です。true のとき、box-10(題名タブ付きの箱。variant は tab-left / tab-center / ribbon / sticker / pin、title がタブ・札の文字、secondaryText が中の見出し、shadow: true で影)、box-11(大きな引用符の囲み。variant は corners / top / band)、囲み(box-01〜box-11)の pattern(stripe / stripe-frame / grid / dots)、divider-01 の vertical / triple / chevron / dots、review-01 の tab / quote / letter / badge と helpfulCount(「役に立った」の数)・badgeNumber(丸番号 1〜99)、stat-01 の circle / circle-outline、compare-01 の cards / cards-row(table の2列目と3列目を2枚のカードで対比。3列以上が必要)、bubble-01 の talk-curve / shout / talk-square、reviewlist-01(口コミ一覧パネル。items の text=短評、body=属性、rating=星)、talk-01(会話セット。items の text=セリフ、body=left / right、speaker=左の人、partner=右の人の名前と内蔵アイコン)を使えます。review-01 の items は属性の表(text=ラベル、body=値)として本文の下に表示されます。false のときは、これらを許可表から除きます。どれも省略時は従来の表示です。
decorationContract.capabilities.widgetsS6 も同じ読み取り専用の検証結果です(2026-10-18 追加)。true のとき、accordion-01(折りたたみ一覧。FAQ ではない汎用の開閉。title と items 1〜30件、items[].text が行の名前、items[].body が開いたときの内容。variant は plus=+/−・既定 / chevron=右端の矢印 / grouped=小見出しで分ける(body の無い項目が小見出し))、productcard-01(商品カード。title=名前、secondaryText=小ラベル、text=コメント、items=チェック付きの特徴(5件まで)、rating=点数、prefix=点数の見出し、assetId=画像、href=リンク、note=ボタン文言。variant は score=点数カード・既定 / simple / horizontal=左に写真・カード全体が1つのリンク / numbered=番号付き(value に 1〜99 の番号が必須))、readmore-01 の variant(toggle=押して開く・既定 / blur / fade / band。toggle 以外は text=先に見せる本文、secondaryText=ぼかして・薄くして見せる続き、note=誘導文、href=ボタンのリンク)、price-01 の installments(回数別の横並び。items[].text が回の名前、items[].body が「価格」と任意の「短文」を改行で区切った最大2行。text / secondaryText は持たない)、stock-01 の monthly(月別の受付状況。保存は status と同じ soldout / open)、step-01 の timeline(期間付きの2列表)、gallery-01 の captionStyle(band / note)、image ブロックの caption(写真の下の文字 1〜200字)と captionStyle を使えます。false のときは、これらを許可表から除きます。どれも省略時は従来の表示です。payment-01(支払い方法の説明。title=見出し、text=短文、secondaryText=下の帯の補足(任意・60字)、items 1〜6件が段または支払い方法(名前30字・説明200字)。variant は horizontal=横に並べた手順・既定 / vertical=縦に並べた手順 / cards=支払い方法のカード。href は持たず、決済サービスの名前は入れません)も同じ条件で使えます。商品カードの点数・番号と回数別の価格は、公開前チェックで根拠の確認を促します(公開は止めません)。
decorationContract.capabilities.widgetsS1 も同じ読み取り専用の検証結果です。true のとき、次を使えます。reveal-01(段階表示)は、このブロックより後ろのブロックを条件を満たすまで隠すゲートで、payload.reveal に trigger(survey=アンケートの回答完了後 / button=「続きを見る」を押したあと / delay=ページを開いて seconds 秒後 / video=動画が再生されて seconds 秒後)、任意の targetBlockId(survey / video の対象。省略時はゲートより上で一番近いアンケート・動画)、effect(fade / slide。省略でその場に出す)、blockCount(直後の N ブロックだけ。省略時は後ろのすべて)を置きます。variant はボタンの形(solid / outline / pill / arrow)、text はボタン文言、secondaryText は読者への案内です。隠す中身は HTML に含めたまま表示だけを切り替え、JavaScript が無いときや対象が見つからないときは隠さずに表示します。アンケートでは、survey.layout: "chat"(チャット形式。担当者の顔は装飾の speaker、吹き出しの形 chatBubble、背景 chatBackground)、survey.completion(回答完了パネル。variant は band / ticket / confetti / card、title / body / buttonText+buttonHref、画像は装飾の assetId)、progress の segments / dots / meter、設問の type: "slot"(予約日時。groups が日付のタブ、各 options に groupId と任意の remaining)を使えます。回答は単一選択と同じくページ内の状態だけで、保存・送信や予約システムとの連携はしません。詳しくは decorationContract.constraints の reveal / surveyWidgetsS1 を読んでください。false の保存先では、これらを許可表から除きます。
decorationContract.capabilities.widgetsS3 も同じ読み取り専用の検証結果です。true のとき、動き flash(キラッと光る。斜めの光が一瞬で全体に広がって消える。画像・CTA・ボタン)、ripple(波紋。ボタンと同じ形・色の輪が外へ広がる。CTA・ボタン)、press(押した瞬間だけ沈む。常時の動きはなく、ほかの動きとは併用しない。CTA・ボタン)、colorSwitch(アクセント色と文字色が交互に入れ替わる。見出し・マイクロコピー・バッジ・注釈)、textShine(文字の上を光が通る。帯の上に文字が無い見出し・microcopy-02/03・注釈)を使えます。marquee-01(流れる帯)は variant が text(文字の帯・既定)/ logo(ロゴの列)/ photo(写真の列。説明は写真の下)/ review(短い口コミカードの列)で、items・assetIds(logo / photo の ready な静止画、12枚まで)・speed(slow / fast)・direction(right)を持ちます。閲覧画面で横に流れ続け、指を乗せると止まり、動きを減らす設定の端末では止めて全部を折り返して表示します。bar-01(棒グラフ)は variant が horizontal(横棒・既定)/ vertical(縦棒)/ highlight(1件目だけ強調)で、items[].text が項目名、items[].body が値(数字だけの文字列。小数2桁まで)、suffix が単位、note が出典・注記です。棒の長さは最大値を100%にした比率で、画面に入ると伸び、公開前チェックで数値の根拠確認の警告が出ます。false のときは、これらを許可表から除きます。どれも省略時は従来の表示です。
太枠アンケートの display: "all" は選択だけを表示し、step は既存の次へ・完了操作を維持します。単一選択と複数選択は各質問の type に従い、複数アンケートの選択状態は独立します。記事への配置後も、利用者は同じ部品を画面で編集できます。エージェントが作った再利用ウィジェットは、末尾の保存テンプレート4ツールから取り込めます。UIと共通の部品形式に限定し、任意HTML/CSS/スクリプトは取り込みません。
update_official_article
期待revisionを検証し、記事へinsert、replace、move、updateSettings、replaceTextを適用します。updateSettingsは記事の表示設定だけを保存します。削除、公開、契約設定、計測コードの変更はできません。
replaceText({ op: "replaceText", blockId, paragraphIndex?, slotId?, find, replace })は、段落の平文で find がちょうど1か所に一致したときだけ replace に置き換えます。置き換えた文字は find の先頭の文字の書式を引き継ぎ、前後の書式は保ちます。対象は richText と、見出しを含む本文(legacySection。slotId でスロットを指定)です。期待revisionの本文から通常の replace 操作を組み立てて保存するため、revisionが進んでいれば conflict を返します。0か所・2か所以上のときは何も変えずに validation_error を返します。
検証に落ちたときは validation_error の error.details に、元の理由 reason、日本語の説明 description、分かる範囲で operationIndex・blockId・slotId・paragraphIndex・runIndex が入ります。
パラメータ
| パラメータ | 型 | 必須 | 既定値 | 制約 |
|---|---|---|---|---|
article_id | 文字列 | 必須 | — | UUID |
expected_revision | 整数 | 必須 | — | 0以上 |
operations | 配列 | 必須 | — | 1〜50件。insert / replace / move / updateSettings / replaceText |
idempotency_key | 文字列 | 必須 | — | 1〜128文字 |
応答
| フィールド | 内容 |
|---|---|
articleId | 更新対象の記事ID |
revision | 更新後revision |
document | 更新後の安全な文書 |
list_official_article_assets
現在の記事に属するready素材をkeyset paginationで取得します。ほかの記事の素材は公開で使えないため含めません。内部storage pathは返しません。案件の素材ライブラリにある画像は list_reference_images、動画は list_article_video_assets で探し、import_material_library_item_to_official_article で記事の素材へ写してから使います。
パラメータ
| パラメータ | 型 | 必須 | 既定値 | 制約 |
|---|---|---|---|---|
article_id | 文字列 | 必須 | — | UUID |
kind | 文字列 | 任意 | — | article_creative / manga_creative / upload |
cursor | 文字列 | 任意 | — | サーバー発行値 |
応答
| フィールド | 内容 |
|---|---|
items[] | ready素材の安全なmetadata |
nextCursor | 次ページのcursor。末尾はnull |
register_official_article_asset
成功済みのarticle creativeまたはmanga creativeを、指定IDの版のままimmutableな記事LPの素材として登録します。元creativeの採用状態は変更しません。
パラメータ
| パラメータ | 型 | 必須 | 既定値 | 制約 |
|---|---|---|---|---|
article_id | 文字列 | 必須 | — | UUID |
source_type | 文字列 | 必須 | — | article_creative / manga_creative |
source_id | 文字列 | 必須 | — | 実creative行のUUID |
idempotency_key | 文字列 | 必須 | — | 1〜128文字 |
応答
| フィールド | 内容 |
|---|---|
assetId | 登録された素材ID |
mimeType / byteSize / sha256 | 実体metadata |
source | sourceType、sourceId、versionId、isSelected |
reused | 同じ要求を再利用したか |
prepare_official_article_asset_upload
認可済みの記事へ限定された一時アップロード先を準備します。byte_sizeは12MiB以下です。MP4(video/mp4)は、H.264(avc1)の映像トラックが1本、moovがmdatより前(faststart)、長さ60秒以内、長辺4096px以内のものだけ確定できます。本文では無音・ループ・インラインで自動再生され、公開ページでは公開判定の後に期限付きURLへ転送して配信します。現在のupload、asset、validation状態を同じactor、記事、要求IDで先に読み、状態に応じた判別済み応答を返します。readyは既存ready素材、processingは回復待ち、expiredは未使用期限切れ、transferableだけが署名URLを返します。処理中・readyへ再転送せず、期限切れ未使用へ新しい要求を暗黙発行しません。署名URLは永続キャッシュされず、応答や監査へstorage pathを出しません。
パラメータ
| パラメータ | 型 | 必須 | 既定値 | 制約 |
|---|---|---|---|---|
article_id | 文字列 | 必須 | — | UUID |
mime_type | 文字列 | 必須 | — | image/png / image/jpeg / image/webp / image/gif / video/mp4 |
byte_size | 整数 | 必須 | — | 正の整数 |
sha256 | 文字列 | 必須 | — | 64桁の小文字hex |
idempotency_key | 文字列 | 必須 | — | 1〜128文字 |
応答
| フィールド | 内容 |
|---|---|
state | transferable / ready / processing / expired / failed |
uploadId | 対象upload ID。全stateで返る |
expiresAt | seal可能なticketの期限。transferableではURLの有効期限と別に返る |
uploadUrl | transferableだけに返る期限付きアップロードURL |
expiresInSeconds | transferableで返るURLの有効秒数。ticket期限とは別 |
requiredHeaders | transferableで返るアップロード時に必要な安全なheader |
asset | readyで返る既存ready素材。それ以外はnull |
errorCode | failedで返る安全な検証エラーコード |
reused | transferableで同じ要求を再利用したか |
応答のstateはtransferable、ready、processing、expired、failedのいずれかです。transferableでは返されたURLへ一度だけアップロードし、expiresAtまでにcompleteを呼びます。readyではcompleteを呼ばず素材を利用します。processingでは同じuploadIdを状態取得して待ち、expiredでは新しい明示的な冪等性キーで再要求します。failedは終端状態で、同じuploadへ再転送せず、入力または素材を確認して新しい明示的要求を作成します。processing、ready、expired、failedでは署名URLを返しません。
complete_official_article_asset_upload
指定uploadを検証し、実体metadataを確認してready immutable素材へ確定します。既定では、画像と30秒までの動画を案件の素材ライブラリ(画像は参考画像、動画は記事LP動画の素材)にも入れ、ほかの記事や制作でも使えるようにします。GIF・動くWebP・素材ライブラリの上限を超えるものは記事にだけ入り、material_library に入らなかった理由を返します。素材ライブラリへの追加に失敗しても、記事の素材は確定します。
パラメータ
| パラメータ | 型 | 必須 | 既定値 | 制約 |
|---|---|---|---|---|
article_id | 文字列 | 必須 | — | UUID |
upload_id | 文字列 | 必須 | — | UUID |
add_to_material_library | 真偽値 | 任意 | — | 省略時は true。false で記事にだけ入れる |
title | 文字列 | 任意 | — | 1〜200文字。素材ライブラリでの名前 |
idempotency_key | 文字列 | 必須 | — | 1〜128文字 |
応答
| フィールド | 内容 |
|---|---|
assetId | 確定した素材ID |
mimeType / byteSize / sha256 | 検証済みmetadata |
source | uploadのsource情報 |
reused | 同じ要求を再利用したか |
material_library | 素材ライブラリに入れたときだけ返る。status(added / existing / skipped / failed)、入らなかった理由 reason(unsupported_in_library / too_large / too_long / video_disabled / capacity など)、入った素材の referenceImageId または videoAssetId |
動画(MP4)は確定時の検査に時間がかかり、retryable: true のエラーが返ることがあります。少し待ってから同じ upload_id で呼び直してください(実体の送り直しは不要です)。別の記事・案件から素材を写す手順は代表ワークフローの「記事LPを組み立てる・別の記事を写す(MCP)」を参照してください。
import_material_library_item_to_official_article
案件の素材ライブラリの画像(source=reference_image。list_reference_images の id)、記事LP動画の素材(source=video_asset。list_article_video_assets の id。kind が clip で ready のもの)、または記事LP動画の画面で作った完成動画(source=article_video。list_article_videos の id。status が ready のもの)を item_id に指定して、この記事のready素材へ写して返します。同じ記事に同じ中身の素材があれば、それを返します。記事の動画の上限(大きさ・長さ・H.264)を超えるものは写せません。写した素材は素材ライブラリへは戻しません。本文への配置は update_official_article で行います。この操作の冪等性キーは対象記事にも結び付きます。同じキーで別の記事を指定すると、結果を使い回さず入力不一致になります。別の記事へ写すときは新しいキーを使ってください。
パラメータ
| パラメータ | 型 | 必須 | 既定値 | 制約 |
|---|---|---|---|---|
article_id | 文字列 | 必須 | — | UUID |
source | 文字列 | 必須 | — | reference_image / video_asset / article_video |
item_id | 文字列 | 必須 | — | 素材ライブラリの画像、素材の動画、または完成動画のUUID |
idempotency_key | 文字列 | 必須 | — | 1〜128文字 |
応答
| フィールド | 内容 |
|---|---|
assetId | 記事の素材ID |
mimeType / byteSize / sha256 | 検証済みmetadata |
source | 記事の素材のsource情報 |
reused | 同じ記事の既存素材を返したか |
記事LPを指定して記事画像を生成する
start_article_creative_generation に official_article_id と任意の initial_placement_intent を指定すると、記事LPと同じ案件の生成台帳へ登録します。生成要求IDはAPIキーと冪等キーから決まり、応答喪失時は同じキーで回収します。
get_article_creative_results は official_article_id と generation_request_id を組で指定すると、その要求の結果だけを返します。記事LPを指定した場合は limit は無視され、案件の新着結果へフォールバックしません。従来の案件一覧modeは引数を追加しなければそのまま使えます。
表示設定と追加装飾(2026-10-15)
updateSettings の settings は get_official_article の allowedSettingKeys にある項目だけを受け付けます。基本は metadataTitleVisible、stickyCtaEnabled、stickyCtaAfterBlockId、articlePresentation、decorationTheme、articleLayout で、保存先が対応していれば backToTopEnabled、articleSections、stickyCtaDismissible、stickyCtaSize、追従ボタンの見せ方と動き(stickyCtaLayout・stickyCtaMotion)、位置と消す条件(stickyCtaPosition・stickyCtaHideBlockId・stickyCtaHideOnInline)も加わります。値と意味は get_official_article の article.stickyCtaSizeContract に、保存先が受け付けるものだけが書かれています。本文の文字のCTA(cta ブロック)の見た目(形・立体・塗り・幅・2行目・左右のアイコン・拡張・添える文字)は、payload に直接置くキーとして article.ctaDesignContract に一覧があります。画像のCTAには付けられません。unsetKeys も同じ許可項目だけです。各設定は既存UIと同じ検査・素材認可・revision・冪等性を通ります。生成を伴わない保存にクレジット消費はありません。
articleLayout は既存の値を取得してから必要箇所を変更し、オブジェクト全体を渡します。背景画像のIDは同じ案件でreadyな素材に限定されます。get_official_article の decorationContract.capabilities.reviewDecorations がtrueの場合、見出し03は tint / solid / circle-arrow、対応する部品の動きは fadeLeft / fadeRight を追加で使えます。背景色は colors.background。左右からの登場は画面内に入った時に一度だけ動き、reduced-motionでは静止表示です。保存先が未対応なら取得した許可表にない値を送らないでください。
保存テンプレートをMCPとUIで共有する
ウィジェットは format: "cmo-article-widget"、version: 1、name、blocks を持つJSONです。blocks は通常の記事と同じ編集可能な部品(最大50件、全体256KiB)です。エージェントは装飾・アンケート・本文・画像を組み合わせて保存し、画面の「装飾 → 保存テンプレート」から利用できます。任意HTML/CSS/JavaScriptの実行形式は受け付けません。
組織内で共有され、更新ごとに新しい版を作ります。挿入時は指定版をコピーします。公開済みの記事や既に配置した部品は自動更新されません。テンプレートを更新する操作は元の案件で行います。別案件に挿入する場合は、getで返るassetIdsを、その案件へ登録したready素材へasset_bindingsで割り当てます。別組織のテンプレートや素材は利用できません。
保存・取得・挿入そのもののクレジット消費はありません。画像・動画を新規生成する場合は通常の生成ツールの料金が適用されます。削除は画面から行ってください。
list_official_article_widgets
認可済み記事と同じ組織の保存テンプレートを最大50件ずつ取得します。
パラメータ
| パラメータ | 型 | 必須 | 既定値 | 制約 |
|---|---|---|---|---|
article_id | 文字列 | 必須 | — | UUID |
cursor | 文字列 | 任意 | — | 前ページのnextCursor(UUID) |
応答
templates[]にid・name・projectId・revision・updatedAt、nextCursorに次ページ位置を返します。末尾はnullです。
get_official_article_widget
指定版を取得します。version省略時は取得時点の最新版です。挿入には返されたrevisionを明示指定します。
パラメータ
| パラメータ | 型 | 必須 | 既定値 | 制約 |
|---|---|---|---|---|
article_id | 文字列 | 必須 | — | UUID |
template_id | 文字列 | 必須 | — | UUID |
version | 整数 | 任意 | — | 1以上 |
応答
templateに概要・指定版のbundle・assetIdsを返します。素材URLや内部保存先は含みません。
save_official_article_widget
新規作成は呼出側で新しいtemplate_idを作り、expected_version=0で保存します。更新はgetで確認した現在版を指定します。同一要求の再送には同じidempotency_keyを使い、入力を変えないでください。
パラメータ
| パラメータ | 型 | 必須 | 既定値 | 制約 |
|---|---|---|---|---|
article_id | 文字列 | 必須 | — | UUID。保存元の認可済み記事 |
template_id | 文字列 | 必須 | — | UUID |
expected_version | 整数 | 必須 | — | 0以上。新規0・更新は現在版 |
bundle | オブジェクト | 必須 | — | format/version/name/blocks。名前1〜100字、最大50部品・256KiB |
idempotency_key | 文字列 | 必須 | — | 1〜128文字 |
応答
templateId、新しいrevision、reusedを返します。競合時は現在版を取得してから更新内容を確認してください。本文や公開状態は変更しません。
import_official_article_widget
指定版の部品を新しいIDで記事に挿入します。内部の部品参照・リストのグループIDも分離し、元テンプレートを変えません。
パラメータ
| パラメータ | 型 | 必須 | 既定値 | 制約 |
|---|---|---|---|---|
article_id | 文字列 | 必須 | — | UUID。挿入先の認可済み記事 |
template_id | 文字列 | 必須 | — | UUID |
version | 整数 | 必須 | — | 1以上。取り込む版を固定 |
expected_revision | 整数 | 必須 | — | 0以上。挿入先記事の現在revision |
after_id | 文字列またはnull | 必須 | — | 直前のブロックUUID。nullは先頭 |
asset_bindings | オブジェクト | 任意 | — | 元素材UUID→挿入先案件のready素材UUID |
idempotency_key | 文字列 | 必須 | — | 1〜128文字 |
応答
通常のupdateと同じrevision・document・appliedBlockIdsを返します。挿入後はUIから本文・画像・色などを再編集できます。