IGユーザーメディア

IGユーザーIGメディアオブジェクトのコレクションを表します。

On July 9, 2025, we added support for the existing user_tags field for image and video stories on the /<IG_ID>/media endpoint. You can mention users in a story and optionally specify x, y coordinates to tag them at a particular coordinate in the media.

On March 24, 2025, we introduced the new alt_text field for image posts on the /<INSTAGRAM_PROFESSIONAL_ACCOUNT_ID>/media endpoint. Reels and stories are not supported.

作成

POST /<YOUR_APP_USERS_INSTAGRAM_USER_ID>/media

  • 投稿を公開するプロセスで使う画像、カルーセル、ストーリーズ、またはリールのIGコンテナを作成します。公開の全手順は、コンテンツ公開ガイドをご覧ください。

メディアオブジェクトを公開する手順には、以下が含まれます。

  1. コンテナを作成する
  2. コンテナにメディアをアップロードする
  3. コンテナを公開する

制限

一般的な制限

  • コンテナは24時間後に期限切れになります。
  • Instagramアカウントは24時間以内に400個のコンテナしか作成できません。
  • ターゲットのInstagramプロアカウントにリンクされているページページ公開認証(PPA)が求められる場合は、PPAを完了する必要があります。そうしないとリクエストが失敗します。
  • ターゲットのInstagramプロアカウントにリンクされているページで二段階認証が必要な場合、Facebookユーザーも二段階認証を実行する必要があります。そうしないとリクエストは失敗します。
  • URL、US ASCII文字のみを含むURL、URL、HTTP IETF標準文字セットを強くおすすめします。そうしないとリクエストが失敗します。

リールの制限

  • リールはカルーセルに表示できません。
  • 公開の際にはアカウントプライバシー設定が適用されます。例えば、リミックス許可が有効になっている場合、公開されるリールでは公開時にリミックスが有効になります。公開済みのリールのリミックスは、Instagramアプリから手動で無効にすることができます。
  • 音楽のタグ付けはオリジナル音源にのみ利用できます。

ストーリーズの制限事項

  • ストーリーズは24時間後に期限切れになります。
  • 動画のURLまたはリールのURLのどちらか一方のみサポートし、両方同時にサポートすることはありません。
  • スタンプ(リンク、アンケート、場所など)の公開はサポートされていませんが、スタンプなしのユーザーについて言及することはサポートされています。

要件

説明

アクセストークン

ユーザー

ビジネスの役割

商品タグのコンテナを作成するアプリユーザーは、IGユーザーのInstagramショップを所有しているビジネスマネージャで管理者の役割を持っていなければなりません。

アクセス許可

instagram_basic
instagram_content_publish
pages_read_engagement ビジネスマネージャを介してアプリユーザーにページに対する権限が付与されている場合は、以下のいずれかも必要です。

ads_management
ads_read

商品タグ付けのためのコンテナを作成する場合、次のものも必要です。

catalog_management
instagram_shopping_tag_products

タスク

アプリユーザーは、InstagramプロフェッショナルアカウントにリンクされたページでMANAGEまたはCREATE_CONTENTタスクを実行できなければなりません。

画像の仕様

  • フォーマット: JPEG
  • ファイルサイズ: 最大8 MB。
  • アスペクト比: 4:5から1.91:1までの範囲内
  • 最小幅: 320 (必要な場合、この最小幅まで拡大されます)
  • 最大幅: 1440 (必要な場合、この最大幅まで縮小されます)
  • 高さ: 幅とアスペクト比に応じて可変
  • カラースペース: sRGB。画像で他の色空間を使用している場合、sRGBに変換されます。

リールの仕様

リールの仕様は次のとおりです。

  • コンテナ: MOVまたはMP4 (MPEG-4 Part 14)、エディットリストなし、ファイルの先頭にmoov atom。
  • 音声コーデック: AAC、最大サンプルレート48kHz、1または2チャンネル(モノラルまたはステレオ)。
  • 動画コーデック: HEVCまたはH264、プログレッシブスキャン、クローズドGOP、クロマサブサンプリング4:2:0。
  • フレームレート: 23-60 FPS。
  • 写真サイズ
    • 最大カラム(水平ピクセル数): 1920
    • 必要なアスペクト比は0.01:1~10:1ですが、トリミングや余白を避けるため9:16にすることをおすすめします。
  • 動画のビットレート: VBR、最大25Mbps
  • 音声のビットレート: 128kbps
  • 長さ: 最大15分、最小3秒
  • ファイルサイズ: 最大300MB

リールのカバー写真の仕様は以下のとおりです。

  • フォーマット: JPEG
  • ファイルサイズ: 最大8 MB
  • カラースペース: sRGB。画像で他の色空間を使っている場合、sRGBに変換されます。
  • アスペクト比: トリミングや余白を避けるため9:16にすることをおすすめします。元の画像のアスペクト比が9:16でない場合、画像がトリミングされて、真ん中の9:16長方形がリールのカバー写真として使われます。リールをフィードにシェアした場合、画像はトリミングされ、真ん中の1:1正方形がフィード投稿のカバー写真として使われます。

ストーリーズ画像の仕様

  • フォーマット: JPEG
  • ファイルサイズ: 最大8 MB。
  • アスペクト比: トリミングや余白を避けるため9:16にすることをおすすめしていました
  • カラースペース: sRGB。画像で他の色空間を使用している場合、sRGBに変換されます

ストーリーズ動画の仕様

  • コンテナ: MOVまたはMP4 (MPEG-4 Part 14)、エディットリストなし、ファイルの先頭にmoov atom。
  • 音声コーデック: AAC、最大サンプルレート48kHz、1または2チャンネル(モノラルまたはステレオ)。
  • 動画コーデック: HEVCまたはH264、プログレッシブスキャン、クローズドGOP、クロマサブサンプリング4:2:0。
  • フレームレート: 23-60 FPS。
  • 写真サイズ
    • 最大カラム(水平ピクセル数): 1920
    • 必要なアスペクト比は0.1:1~10:1ですが、トリミングや余白を避けるため9:16にすることをおすすめします
  • 動画のビットレート: VBR、最大25Mbps
  • 音声のビットレート: 128kbps
  • 長さ: 最大60秒、最小3秒
  • ファイルサイズ: 最大100MB

リクエストの構文

画像コンテナ

POST https://graph.facebook.com/v25.0/<YOUR_APP_USERS_IG_USER_ID>/media ?image_url=<IMAGE_URL> &is_carousel_item=<TRUE_OR_FALSE> &alt_text=<IMAGE_ALTERNATIVE_TEXT> &caption=<IMAGE_CAPTION> &location_id=<LOCATION_PAGE_ID> &user_tags=<ARRAY_OF_USERS_FOR_TAGGING>> &product_tags=<ARRAY_OF_PRODUCTS_FOR_TAGGING> &access_token=<USER_ACCESS_TOKEN>

リールコンテナ

標準アップロード
POST https://graph.facebook.com/v25.0/<YOUR_APP_USERS_INSTAGRAM_USER_ID>/media ?media_type=REELS &video_url=<REEL_URL> &caption=<IMAGE_CAPTION> &share_to_feed=<TRUE_OR_FALSE> &collaborators=<COLLABORATOR_USERNAMES> &cover_url=<COVER_URL> &audio_name=<AUDIO_NAME> &user_tags=<ARRAY_OF_USERS_FOR_TAGGING>> &location_id=<LOCATION_PAGE_ID> &thumb_offset=<THUMB_OFFSET> &share_to_feed=<TRUE_OR_FALSE> &trial_params=<TRIAL_PARAM> &access_token=<USER_ACCESS_TOKEN>
再開可能なアップロードセッション
POST https://graph.facebook.com/v25.0/<YOUR_APP_USERS_INSTAGRAM_USER_ID>/media ?media_type=REELS &upload_type=resumable &caption=<IMAGE_CAPTION> &collaborators=<COLLABORATOR_USERNAMES> &cover_url=<COVER_URL> &audio_name=<AUDIO_NAME> &user_tags=<ARRAY_OF_USERS_FOR_TAGGING>> &location_id=<LOCATION_PAGE_ID> &thumb_offset=<THUMB_OFFSET> &access_token=<USER_ACCESS_TOKEN>

成功した場合、応答でig-container-iduriが返されます。これらは後続のステップで次のように使われます。

{
  "id": "<IG_CONTAINER_ID>",
  "uri": "https://rupload.facebook.com/ig-api-upload/v25.0/<IG_CONTAINER_ID>"
}

カルーセルコンテナ

カルーセルコンテナのみ。カルーセルアイテムのコンテナを作成する場合、代わりに画像コンテナか動画コンテナを作成してください(リールはサポートされていません)。詳しい公開手順については、カルーセル投稿をご覧ください。

標準アップロード
POST https://graph.facebook.com/v25.0/<YOUR_APP_USERS_INSTAGRAM_USER_ID>/media ?media_type=CAROUSEL &caption=<IMAGE_CAPTION> &share_to_feed=<TRUE_OR_FALSE> &collaborators=<COLLABORATOR_USERNAMES> &location_id=<LOCATION_PAGE_ID> &product_tags=<ARRAY_OF_PRODUCTS_FOR_TAGGING> &children=<ARRAY_OF_CAROUSEL_CONTAINTER_IDS> &access_token=<USER_ACCESS_TOKEN>
再開可能なアップロードセッション
POST https://graph.facebook.com/v25.0/<YOUR_APP_USERS_INSTAGRAM_USER_ID>/media ?media_type=VIDEO &is_carousel_item=true &upload_type=resumable &access_token=<USER_ACCESS_TOKEN>

成功した場合、応答でig-container-iduriが返されます。これらは後続のステップで次のように使用されます。

画像ストーリーズコンテナ

POST https://graph.facebook.com/v25.0/<YOUR_APP_USERS_INSTAGRAM_USER_ID>/media ?image_url=<IMAGE_URL> &media_type=STORIES &user_tags=<ARRAY_OF_USERS_FOR_TAGGING> &access_token=<USER_ACCESS_TOKEN>

動画ストーリーズコンテナ

標準アップロード
POST https://graph.facebook.com/v25.0/<YOUR_APP_USERS_INSTAGRAM_USER_ID>/media ?video_url=<VIDEO_URL> &media_type=STORIES &user_tags=<ARRAY_OF_USERS_FOR_TAGGING> &access_token=<USER_ACCESS_TOKEN>
再開可能なアップロードセッション
POST https://graph.facebook.com/v25.0/<YOUR_APP_USERS_INSTAGRAM_USER_ID>/media ?media_type=STORIES &upload_type=resumable &access_token=<USER_ACCESS_TOKEN>

成功すると、応答でInstagramコンテナIDとURIが返されます。これらは後続のステップで使用されます。

再開可能なアップロードプロトコルを介して動画をアップロードする

InstagramコンテナIDが再開可能なアップロードセッション呼び出しから返されたら、POSTリクエストをhttps://rupload.facebook.com/ig-api-upload/に送信します。

v25.0

/<IG_CONTAINER_ID>エンドポイント。

  • すべてのmedia_typeは、同じフローを共有して動画をアップロードします。
  • ig-container-idは、上記の再開可能なリール、カルーセル、動画コンテナのアップロードセッション例のIDです。
  • access-tokenは、他のステップで使われているものと同じです。
  • offsetは、アップロードされる最初のバイトに設定され、通常は0です。
  • file_sizeは、バイト単位でファイルのサイズに設定されます。
  • Your_file_local_pathは、ローカルファイルのファイルパスに設定されます。例えば、macOSでDownloadsフォルダーからファイルをアップロードする場合、パスは@Downloads/example.movです。
curl -X POST "https://rupload.facebook.com/ig-api-upload/v25.0/<IG_CONTAINER_ID>" \
     -H "Authorization: OAuth <USER_ACCESS_TOKEN>" \
     -H "offset: 0" \
     -H "file_size: Your_file_size_in_bytes" \
     --data-binary "@Your_local_file_path.extension"

成功した場合、次の例のような応答が表示されます。

{
  "success":true,
  "message":"Upload successful. ..."
}  

ホストされたURLから動画をアップロードする

このサービスは、ホストされたURLからの動画アップロードもサポートできます。

curl -X POST "https://rupload.facebook.com/ig-api-upload/v25.0/<IG_CONTAINER_ID>" \
     -H "Authorization: OAuth <USER_ACCESS_TOKEN>" \
     -H "file_url: <VIDEO_URL>"

パスパラメーター

プレースホルダー

<LATEST_API_VERSION>

最新のAPIバージョン:

v25.0

APIのバージョン

<YOUR_APP_USERS_INSTAGRAM_USER_ID>
必須

アプリユーザーのapp-scoped user ID。

クエリ文字列パラメーター

キープレースホルダー説明

access_token

<USER_ACCESS_TOKEN>

必須。アプリユーザーのユーザーアクセストークン。

alt_text

<IMAGE_ALTERNATIVE_TEXT>

画像投稿のみ対象。画像の代替テキスト (最大1000文字)。単一の画像またはカルーセル内の画像メディアのみ対応。

リールおよびストーリーズには対応していません。

audio_name

<AUDIO_NAME>

リールのみ。リールメディアの音声の名前。リールの作成中か、作成後に音源ページから、1回のみ名前を変更できます。

caption

<IMAGE_CAPTION>

画像、動画、カルーセルのキャプション。ハッシュタグ(#crazywildebeestなど)やInstagramユーザーのユーザーネーム(@natgeoなど)を含めることができます。@メンションされたInstagramユーザーは、コンテナが公開されると通知を受け取ります。上限は、2,200文字、ハッシュタグ30個、@タグ20個です。


カルーセル内の画像や動画ではサポートされません

collaborators

<LIST_OF_COLLABORATORS>

フィード画像、リールとカルーセルのみ。IGメディアのコラボレーターの最大3人のInstagramユーザーネームのリスト。


ストーリーズではサポートされていません。

children

<ARRAY_OF_CAROUSEL_CONTAINTER_IDS

カルーセルでは必須。カルーセルにのみ適用。公開されるカルーセルに表示する画像と動画それぞれ最大10個のコンテナIDの配列。カルーセルには、画像、動画、またはそれらのミックスが最大10個可能です。

cover_url

<COVER_URL>

リールのみ。リールタブのカバー画像として使う画像のパス。指定するURLはcURLに変換されるため、画像は公開サーバー上になければなりません。cover_urlthumb_offsetの両方を指定した場合、cover_urlが使われ、thumb_offsetは無視されます。画像は、リールカバー写真の仕様に準拠していなければなりません。

image_url

<IMAGE_URL>

画像専用。画像の場合に必須。画像へのパス。指定するURLはcURLに変換されるため、画像は公開サーバー上になければなりません。

is_carousel_item

<TRUE_OR_FALSE>

画像と動画にのみ適用trueに設定します。画像または動画がカルーセル内に表示されることを示します。

location_id

<LOCATION_PAGE_ID>

画像または動画にタグ付けする所在地に関連付けられているページのID。


ページ検索APIを使用して、検索文字列に一致する名前のページを検索し、結果を解析し、特定の場所に関連して作成されたページを特定します。クエリにlocationフィールドを含め、使用するページに位置情報データがあることを確認します。位置情報データがないページを使ってコンテナを作成しようとすると、コード化された例外INSTAGRAM_PLATFORM_API__INVALID_LOCATION_IDが発生して失敗します。


カルーセル内の画像や動画ではサポートされません。

media_type

<MEDIA_TYPE>

カルーセル、ストーリーズ、リールで必須。コンテナの中身がカルーセル、ストーリーズ、リールのいずれかであることを示します。値は次のいずれかです。

  • CAROUSEL
  • REELS
  • STORIES

product_tags

<ARRAY_OF_PRODUCTS_FOR_TAGGING>

商品タグで必須。画像と動画にのみ適用。画像または動画にどの商品タグを付けるかを指定するオブジェクトの配列(最大5。タグと商品IDは一意でなければなりません)。オブジェクトごとに以下の情報が必要です。


  • product_id必須。商品ID。
  • x画像のみ。(任意)公開メディア画像の左境界からの距離をパーセントで示す浮動小数点数。値は、0.0以上1.0以下の範囲でなければなりません。
  • y画像のみ。(任意)公開メディア画像の上境界からの距離をパーセントで示す浮動小数点数。値は、0.0以上1.0以下の範囲でなければなりません。

以下はその例です。


[{product_id:'3231775643511089',x: 0.5,y: 0.8}]

share_to_feed

<TRUE_OR_FALSE>

リールのみ。trueの場合、リールは[フィード]タブと[リール]タブの両方に表示されます。falseの場合、リールは[リール]タブだけに表示されます。

これらの値はどちらも、リールが実際に[リール]タブに表示されるかどうかを決定するものではありません。リールが利用条件を満たしていない場合や、当社のアルゴリズムで選択されない場合があるからです。利用要件については、リール仕様をご覧ください。

thumb_offset

<THUMB_OFFSET>

動画およびリール用。カバーサムネイル画像として使用する動画またはリール動画のフレームの位置(ミリ秒)。デフォルト値は0であり、これは動画またはリールの最初のフレームを表します。リールについては、cover_urlthumb_offsetの両方を指定した場合、cover_urlが使われて、thumb_offsetは無視されます。

upload_type

<UPLOAD_TYPE>

アップロードプロトコルを通じて動画をアップロードしたいユーザー向けの任意のパラメーター。値は、小文字の文字列値resumableに設定できます。

user_tags

<ARRAY_OF_USERS_FOR_TAGGING>>

画像、ビデオ、ストーリーズでのユーザーのタグ付けでは必須。カルーセル内の動画はサポートされていません。画像にタグ付けする公開Instagramユーザーの、公開ユーザーネームとx/y座標系の配列。配列内のオブジェクトごとに以下の情報が必要です。

  • username必須。ユーザーネーム。
  • x画像では必須。ストーリーズではオプション。画像とストーリーズにのみ適用。公開メディア画像の左境界からの距離をパーセントで示す浮動小数点数。値は、0.0以上1.0以下の範囲でなければなりません。
  • y画像では必須。ストーリーズではオプション。画像とストーリーズにのみ適用。公開メディア画像の上境界からの距離をパーセントで示す浮動小数点数。値は、0.0以上1.0以下の範囲でなければなりません。

video_url

<VIDEO_URL>

動画とリール動画で必須。動画とリール動画にのみ適用。動画へのパス。URLで渡されたものを使用して動画にcURLを付けるので、このパスは公開サーバー上になければなりません。

trial_params

<TRIAL_PARAM>

トライアルリール動画を公開するためのオプションパラメーター。このパラメーターがリクエストに含まれている場合、media_typeREELSでなければなりません。オブジェクトごとに以下の情報が必要です。

  • graduation_strategy - 必須。本公開戦略は、リール動画の本公開(トライアルリール動画をリール動画に変換し、フォロワーにシェアする)の条件を指定します。値はMANUALSS_PERFORMANCEのいずれかになります。MANUALの場合、トライアルリール動画をネイティブアプリで手動で本公開できます。SS_PERFORMANCEの場合、トライアルリール動画のパフォーマンスが良好な場合に、トライアルリール動画が自動的に本公開されます。

branded_content_sponsor_ids

<BRANDED_CONTENT_SPONSOR_IDS>

パートナーシップ広告ラベルでパートナーとしてタグ付けするブランドのInstagramユーザーIDの配列。最大2個のID。ブランドのIDをユーザーネームで検索するには、ビジネスディスカバリーAPIを使用します。instagram_branded_content_creatorまたはinstagram_basicのアクセス許可が必要です。


リミックスされたメディアや親しい友達のみを対象とした投稿ではサポートされません

is_paid_partnership

<TRUE_OR_FALSE>

公開される投稿の「タイアップ投稿」ラベルを有効にします。branded_content_sponsor_idsが指定されている場合、自動的にtrueに設定されます。ラベルのみの投稿の場合はbranded_content_sponsor_idsなしで使用します。詳しくは、パートナーシップ広告ラベルをご覧ください。

応答

コンテナを公開するのに使用できるIGコンテナIDを含むJSON形式のオブジェクト。

動画アップロードは非同期処理なので、コンテナIDを受け取ったとしても、アップロードが成功したとは限りません。動画がアップロードされたことを確認するには、IGコンテナのstatus_codeフィールドをリクエストします。その値がFINISHEDであれば、動画は正常にアップロードされています。

{
  "id":"<IG_CONTAINER_ID>"
}

リクエストの例

POST graph.facebook.com/17841400008460056/media
  ?image_url=curls//www.example.com/images/bronzed-fonzes.jpg
  &caption=#BronzedFonzes!
  &collaborators= [‘username1’,’username2’]
  &user_tags=[
    {
      username:'kevinhart4real',
      x: 0.5,
      y: 0.8
    },
    {
      username:'therock',
      x: 0.3,
      y: 0.2
    }
  ]

応答の例

{
  "id": "17889455560051444"
}

読み取り

GET /<YOUR_APP_USERS_INSTAGRAM_USER_ID>/media

IGユーザーIGメディアをすべて取得します。

制限

  • 直近で作成されたメディアの最大10Kを返します。
  • ストーリーズIGメディアはサポートされていません。代わりにGET /<YOUR_APP_USERS_INSTAGRAM_USER_ID>/storiesエンドポイントを使ってください。

要件

説明

アクセストークン

ユーザー

アクセス許可

instagram_basic
pages_read_engagementまたはpages_show_list

ビジネスマネージャを介してアプリユーザーにページに対する権限が付与されている場合は、次のどちらか1つも必要です。

ads_management
business_management

時間ベースのページネーション

このエンドポイントでは、時間ベースのページネーションがサポートされています。時間範囲を定義するため、Unixタイムスタンプまたはstrtotimeデータ値を指定した、クエリ文字列パラメーターsinceuntilを含めます。

リクエストの例

GET graph.facebook.com/v25.0/17841405822304914/media

応答の例

{
  "data": [
    {
      "id": "17895695668004550"
    },
    {
      "id": "17899305451014820"
    },
    {
      "id": "17896450804038745"
    },
    {
      "id": "17881042411086627"
    },
    {
      "id": "17869102915168123"
    }
  ]
}

更新

この操作はサポートされていません。

削除

この操作はサポートされていません。

参考情報