diff --git a/CHANGES.md b/CHANGES.md
index b9733b75..934aab42 100644
--- a/CHANGES.md
+++ b/CHANGES.md
@@ -13,6 +13,21 @@
 
 - [UPDATE] libwebrtc を 131.6778.4.0 に上げる
   - @miosakuma @zztkm
+- [UPDATE] OfferMessage に項目を追加する
+  - 追加した項目
+    - `version`
+    - `multistream`
+    - `simulcast_multicodec`
+    - `spotlight`
+    - `channel_id`
+    - `session_id`
+    - `audio`
+    - `audio_codec_type`
+    - `audio_bit_rate`
+    - `video`
+    - `video_codec_type`
+    - `video_bit_rate`
+  - @zztkm
 - [UPDATE] SoraForwardingFilterOption 型の引数を Sora での 2025 年 12 月の廃止に向けて非推奨にする
   - 今後はリスト形式の転送フィルター設定を利用してもらう
   - 非推奨になるクラス
diff --git a/sora-android-sdk/src/main/kotlin/jp/shiguredo/sora/sdk/channel/signaling/message/Catalog.kt b/sora-android-sdk/src/main/kotlin/jp/shiguredo/sora/sdk/channel/signaling/message/Catalog.kt
index 42639e75..067bcc6f 100644
--- a/sora-android-sdk/src/main/kotlin/jp/shiguredo/sora/sdk/channel/signaling/message/Catalog.kt
+++ b/sora-android-sdk/src/main/kotlin/jp/shiguredo/sora/sdk/channel/signaling/message/Catalog.kt
@@ -3,6 +3,8 @@ package jp.shiguredo.sora.sdk.channel.signaling.message
 import com.google.gson.annotations.SerializedName
 import jp.shiguredo.sora.sdk.util.SDKInfo
 
+// NOTE: 後方互換性を考慮して、項目を追加するときはオプショナルで定義するようにしてください。
+
 data class MessageCommonPart(
     @SerializedName("type") val type: String?
 )
@@ -111,15 +113,31 @@ data class RedirectMessage(
 data class OfferMessage(
     @SerializedName("type") val type: String = "offer",
     @SerializedName("sdp") val sdp: String,
+    @SerializedName("version") val version: String? = null,
+
+    @SerializedName("multistream") val multistream: Boolean? = null,
+    @SerializedName("simulcast") val simulcast: Boolean = false,
+    @SerializedName("simulcast_multicodec") val simulcastMulticodec: Boolean? = null,
+    @SerializedName("spotlight") val spotlight: Boolean? = null,
+
+    @SerializedName("channel_id") val channelId: String? = null,
     @SerializedName("client_id") val clientId: String,
     @SerializedName("bundle_id") val bundleId: String? = null,
     @SerializedName("connection_id") val connectionId: String,
-    @SerializedName("simulcast") val simulcast: Boolean = false,
+    @SerializedName("session_id") val sessionId: String? = null,
+
     @SerializedName("metadata") val metadata: Any?,
     @SerializedName("config") val config: OfferConfig? = null,
     @SerializedName("mid") val mid: Map<String, String>? = null,
     @SerializedName("encodings") val encodings: List<Encoding>?,
-    @SerializedName("data_channels") val dataChannels: List<Map<String, Any>>? = null
+    @SerializedName("data_channels") val dataChannels: List<Map<String, Any>>? = null,
+
+    @SerializedName("audio") val audio: Boolean? = null,
+    @SerializedName("audio_codec_type") val audioCodecType: String? = null,
+    @SerializedName("audio_bit_rate") val audioBitRate: Int? = null,
+    @SerializedName("video") val video: Boolean? = null,
+    @SerializedName("video_codec_type") val videoCodecType: String? = null,
+    @SerializedName("video_bit_rate") val videoBitRate: Int? = null,
 )
 
 data class SwitchedMessage(