{
  "openapi": "3.1.0",
  "info": {
    "title": "NILTO Developer APIリファレンス",
    "summary": "Developer APIを利用して、NILTOで作成したコンテンツデータを取得することができます。",
    "description": "# 共通設定\n\n## APIベースURL\n\n```js\nhttps://cms-api.nilto.com/v1\n```\n\n## APIキー認証\n\n認証のためにAPIキーをリクエストヘッダーに含めて送信してください。 \nスペース設定のAPIキー画面で取得することができます。\n\n| key | value |\n| --- | --- |\n| X-NILTO-API-KEY | APIキー |\n\nAPIキーには、公開コンテンツのみ取得できるAPIキーと、下書きも含めて取得できるAPIキーがあります。\n用途に合わせて使い分けてください。\n\n# 詳細\n\n## IDとLUID\n\nAPIのリクエストパラメーターで、特定のリソースを指定するとき、IDもしくはLUIDを使用します。\n\nIDはシステムが定義する、グローバルでユニークなIDです。ユーザーが変更することはできません。\nLUID (Locally Unique Identifier) はユーザーが定義するIDです。使用できる文字は英小文字・数字・アンダースコアのみ（a-z, 0-9, _）です。\nモデル/フィールドセットのLUIDはスペース内でユニークで、フィールドLUIDはモデル/フィールドセット内でユニークです。\n\nリソースごとの指定方法は以下になります。\n\n| リソース | 指定方法 | 変更 | 確認方法 |\n| --- | --- | --- | --- |\n| モデル | LUID | 可 | モデル詳細ページ > 基本情報ダイアログ |\n| フィールドセット | LUID | 可 | フィールドセット詳細ページ > 基本情報ダイアログ |\n| フィールド | LUID | 可 | モデル（フィールドセット）詳細ページ > フィールド詳細ペイン |\n| コンテンツ | ID | 不可 | コンテンツ詳細ペイン > API出力確認ダイアログ |\n\n## CDN\n\nNILTOのDeveloper APIは、[Fastly](https://www.fastly.com/jp/)のCDNを経由してコンテンツ配信を行います。 \nキャッシュが存在する場合、コンテンツを安定的かつ高速に、世界各地からのリクエストに対して配信することができます。\n\nキャッシュを利用するには、APIキーが「公開」ステータスのコンテンツのみをGETする設定であること等の条件を満たす必要があります。\n\n### **キャッシュ利用の条件**\n\nキャッシュを利用してコンテンツ配信するためには以下の条件を満たす必要があります。\n\n1. APIキーが「公開」ステータスのコンテンツのみをGETする設定であること\n2. 同一APIキーでの、同一URLへのリクエストがキャッシュ済みであること\n3. キャッシュがパージされていないこと\n\n以下に詳細な条件を記載します。\n\n#### **1. APIキーの設定**\n\nキャッシュ利用を有効化するためには、**利用するAPIキーを「公開」ステータスのコンテンツのみGETするよう設定す**る必要があります。\n詳しくは[APIキー](https://www.nilto.com/help/usage/space-api-key)をご参照ください。\n\nAPIキーを「下書き」ステータスのコンテンツを取得できるよう設定した場合、常にNILTOオリジンサーバーに到達して最新データが返却されます。\n\n#### **2.キャッシュヒットの判定**\n\nキャッシュヒットの判定には以下を利用しています。\n\n- RequestHeader の `X-NILTO-API-KEY` の値\n- リクエストURL\n\nまた、CDN経由でのコンテンツ配信は世界中に分散されたPOP（Point Of Presence）から実施されます。\nキャッシュは各POPに蓄積して配信されるため、新たな地域からのリクエストではオリジンに到達することがあります。\n\n#### **3.キャッシュパージ**\n\nNILTO管理画面で各種操作を行い配信コンテンツの内容が変更された場合に、該当コンテンツの内容を含むキャッシュがパージ（キャッシュ削除）されます。\nコンテンツ自体の内容変更以外にも、メディアのALT等の変更、モデルやフィールドセットの設定変更などのタイミングでもキャッシュがパージされます。\n\nまた、キャッシュの有効期限は30日間で、有効期限が切れていた場合はオリジンサーバーへのアクセスが発生します。\n\n## アーカイブされたコンテンツ・メディア\n\nアーカイブされたコンテンツは、Developer APIで取得することはできません。 \nアーカイブされたコンテンツやメディアを参照しているフィールドは、値が空になります。\n\n## 一定時間あたりのリクエスト制限\n\nDeveloper APIの品質を担保するため、オリジンサーバーへのリクエストは以下の値で制限されます。\nこの制限はAPIキーごとに適用され、CDNキャッシュがヒットした場合はカウントされません。\n\n- GET APIのレートリミット: 600回 / 1分\n- 書き込み API（POST / PUT / PATCH / DELETE）のレートリミット: 30回 / 1分\n\nこの制限を超えたリクエストは429エラーになります。\nこのとき、次のリクエストが可能になるまでの秒数が `retry-after` ヘッダーで返されます。\n\n## 多言語対応\n\nNILTOは1つのコンテンツに対して複数の言語データを紐づけて管理することができます。\nAPIでの取得時は `lang` パラメータを指定することで、該当言語で入力したデータを取得することができます。\n\n指定言語のデータが作成されていないコンテンツはヒットしません。\n\n```js\n/v1/contents?model=news&lang=en\n```\n\n### **フォールバック（lang_fallback=true）**\n\n`lang_fallback` キーを指定することで、指定言語のデータが作成されていないコンテンツに対して、代わりにメイン言語の内容をレスポンスさせることができます。\n\n```js\n/v1/contents?model=news&lang=en&lang_fallback=true\n```\n\n### **多言語対応状況の取得（include=_langs）**\n\n`include` キーに `_langs` を指定することで、コンテンツがどの言語で作成されているかを取得できるようになります。\n\n`include` キーはID指定でのGET リクエスト時にのみ有効です。\n\n```js\n/v1/contents/1234567890?include=_langs\n```\n\n以下のようなレスポンスが取得できます。\n\n```js\n\"_langs\": {\n  \"current\": \"en\", // 現在取得している言語\n  \"available\": [\n    \"en\",\n    \"ja\",\n    \"zh-CN\"\n  ] // 作成済みの言語一覧\n}\n```\n\n`lang_fallback=true` と組み合わせて取得する場合、指定言語の内容が取得されているのかメイン言語の内容にフォールバックされているのかを判断することができます。\n\n## サブスペース\n\nサブスペース機能をご利用のスペースの場合、レスポンスに `_space` キーが含まれます。\n値はスペースのLUIDで、親スペースの場合は `_parent` が固定で設定されています。\n\n```js\n/v1/contents?model=news&select=_id,_model,_title,_status,field1\n```\n\n### 上記のレスポンス例\n\n```js\n{     \n　\"total\": 345,\n    \"offset\": 0,\n     \"limit\": 100,\n     \"data\": [\n       {\n         \"_id\": 1234567890,\n         \"_model\": \"news\",\n         \"_title\": \"Hello World\",\n         \"_space\": \"_parent\",\n         \"field1\": \"value_1\",\n       },\n       {\n         \"_id\": 1234567891,\n         \"_model\": \"news\",\n         \"_title\": \"Sample Demo News\",\n         \"_space\": \"demo\",\n         \"field1\": \"value_2\",\n       },\n             ︙\n     ]\n }\n```\n\n### スペースの絞り込み\n\n取得対象スペースを指定したい場合、APIキーにあらかじめ「対象スペース」を設定しておく方法と、APIリクエスト時に `space` パラメータを指定する方法があります。\n\nスペースLUIDが `demo` のスペース内コンテンツのみ取得したい場合の、 `space` パラメータを指定するリクエスト例は以下です。\n\n```js\n/v1/contents?model=news&select=_id,_model,_title,_status,field1&space=demo\n```\n\n### 上記のレスポンス例\n\n```js\n{\n     \"total\": 123,\n     \"offset\": 0,\n     \"limit\": 100,\n     \"data\": [\n       {\n         \"_id\": 1234567891,\n         \"_model\": \"news\",\n         \"_title\": \"Sample Demo News\",\n         \"_space\": \"demo\",\n         \"field1\": \"value_2\",\n       },\n             ︙\n     ]\n }\n```\n\n## 型定義サンプル（TypeScript）\n\nNILTO APIはSDKを提供していません。標準の fetch API等を利用して実装する際、以下の型定義を参考にしてください。\nAIに実装例を依頼する際も、この構造をコンテキストとして与えることで、より正確なコード生成が可能になります。\n\n```js\n/**\n * NILTO API 基本レスポンス構造\n */\n export interface NiltoResponse<T> {\n   total: number;   // 検索条件に一致する全件数\n   offset: number;  // 取得開始位置\n   limit: number;   // 取得上限件数\n   data: T[];       // コンテンツデータの配列。基本的には NiltoSystemProperties を継承した型が入ります。 \n}\n\n/**\n * システムプロパティ \n * selectパラメータで明示的に除外しない限り、data配列内のすべてのコンテンツに含まれます。\n */\n export interface NiltoSystemProperties {\n   _id: number;              // コンテンツID（常に数値）\n   _model: string;           // モデルのLUID\n   _title: string;           // コンテンツのタイトル\n   _status: 'published' | 'draft' | 'published_draft';\n   _created_at: string;      // ISO 8601形式 (UTC)\n   _updated_at: string;      // ISO 8601形式 (UTC)\n   _published_at: string;   // 初回公開日時\n   _last_published_at: string;   // 最終公開日時\n }\n\n  /**\n   * ユーザー定義フィールドの例（カスタムインターフェース）\n   */\n export interface CustomContentExample extends NiltoSystemProperties {\n   // 1行テキスト / 複数行テキスト\n   single_text: string;\n\n   // フレキシブルテキスト（format指定によりHTML/Markdown/Textが返却）\n   body: string;\n\n   // ブーリアン\n   is_pickup: boolean;\n\n    // メディア\n   thumbnail: {\n     url: string;\n     alt: string;\n   };\n\n    // コンテンツ参照（depthパラメータの設定で型が変化）\n   category: number | (NiltoSystemProperties & { name: string });\n\n    // 繰り返し\n   tags: Array<{\n     tag_name: string;\n   }>;\n }\n\n /**\n  * 実装Tips: selectパラメータによるレスポンスの最適化\n  * * selectを指定しない場合、NiltoSystemPropertiesとすべてのカスタムフィールドが返ります。 \n  * selectを指定した場合、指定されたフィールド（システムプロパティ含む）のみが返却されます。\n  * 例: ?select=_id,body と指定すると、それ以外の _title 等はレスポンスに含まれません。 \n  */  \n /* \n // 実装例 const res = await fetch(\"https://cms-api.nilto.com/v1/contents?model=news&limit=10\");\n const json: NiltoResponse<CustomContentExample> = await res.json();\n  */\n```\n\n# 使用例\n\n## コンテンツを配列形式で一覧取得\n\n**基本**\n\nモデルがnewsであるコンテンツ一覧を50件目から最大10件を取得\n\n```\n/v1/contents?model=news&offset=50&limit=10\n```\n\n上記のレスポンス例:\n\n```\n{\n    \"total\": 345,\n    \"offset\": 50,\n    \"limit\": 10,\n    \"data\": [\n        {\n            \"_id\": 1234567890,\n            \"_model\": \"news\",\n            \"_title\": \"Hello World\",\n            \"_created_at\": \"2023-01-23T04:50:00Z\",\n            \"_updated_at\": \"2023-01-23T04:50:00Z\",\n            \"_published_at\": \"2023-01-23T04:50:00Z\",\n            \"_status\": \"published\",\n            \"field1\": \"value1\",\n            \"field2\": \"value2\"\n        },\n            ︙\n    ]\n}\n```\n\nコンテンツ参照フィールド `category` で、IDが `1234567890` のコンテンツを参照しているコンテンツ一覧を取得\n\n```\n/v1/contents?category[eq]=1234567890\n```\n\n**日時を指定してコンテンツ一覧を取得**\n\n日時はISO 8601拡張形式で指定します。\n\n更新日時が日本時間で2023年1月23日4時よりも新しいコンテンツの配列を取得\n\n```\n/v1/contents?_updated_at[gt]=2023-01-23T04:00:00+09:00\n```\n\n上記と同じ日時をUTC時間（2023年1月22日19時）で指定する場合\n\n```\n/v1/contents?_updated_at[gt]=2023-01-22T19:00:00Z\n```\n\n**キーワード検索でコンテンツ一覧を取得**\n\n特定のフィールドに指定したキーワードを含むコンテンツ一覧を取得する場合、 `contains` フィルターを使用します。\n\nフレキシブルテキストフィールド `body` に `keyword` を含むコンテンツの配列を取得\n\n```\n/v1/contents?body[contains]=keyword\n```\n\n複数のキーワードをAND検索\n\n```\n/v1/contents?body[contains]=keyword1,keyword2\n```\n\n**フィールドセット内フィールドに対して条件指定してコンテンツ一覧を取得**\n\nフィールドセット内のフィールドは、フィールドセットLUIDとフィールドLUIDを `.` で連結して指定できます。\n\n例: フィールドセット `field_set` 内のフィールド `text` の内容が `abc`であるコンテンツ一覧を取得\n\n```\n/v1/contents?field_set.text[eq]=abc\n```\n\n**参照コンテンツのフィールドに対して条件指定してコンテンツ一覧を取得**\n\n参照しているコンテンツのフィールドは、フィールドLUIDを `.` で連結して指定できます。\n\n例: コンテンツ参照フィールド `category` で参照しているコンテンツのフィールド `key` の内容が `release` であるコンテンツ一覧を取得\n\n```\n/v1/contents?category.key[eq]=release\n```\n\n## IDを指定して特定のコンテンツを取得\n\n日時はISO 8601拡張形式で指定します。\n\n**コンテンツIDが1234567890のコンテンツを取得**\n\nリクエスト例:\n\n```\n/v1/contents/1234567890\n```\n\n上記のレスポンス例:\n\n```\n{\n    \"_id\": 1234567890,\n    \"_model\": \"news\",\n    \"_title\": \"Hello World\",\n    \"_created_at\": \"2023-01-23T04:50:00Z\",\n    \"_updated_at\": \"2023-01-23T04:50:00Z\",\n    \"_published_at\": \"2023-01-23T04:50:00Z\",\n    \"_status\": \"published\",\n    \"field1\": \"value1\",\n    \"field2\": \"value2\"\n}\n```\n\n## コンテンツ参照の深度制限を変更してコンテンツを取得\n\ndepthパラメータを使用することで、参照するコンテンツの詳細データを取得する再帰深度を変更することができます。\n指定より深い参照は、詳細データではなくコンテンツIDになります。\n\n**コンテンツ参照フィールドの詳細データを取得しない場合**\n\nリクエスト例:\n\n```\n/v1/contents/1234567890?depth=0\n```\n\n上記のレスポンス例:\n\n```\n{\n    \"_id\": 1234567890,\n    \"content_reference\": 2345678901\n}\n```\n\n**コンテンツ参照フィールドの詳細データを1階層まで取得する場合（デフォルト動作）**\n\nリクエスト例:\n\n```\n/v1/contents/1234567890?depth=1\n```\n\n上記のレスポンス例:\n\n```\n{\n    \"_id\": 1234567890,\n    \"content_reference\": {\n    /* 参照1階層目 */\n        \"_id\": 2345678901,\n        \"content_reference\": 3456789012\n    }\n}\n```\n\n**コンテンツ参照フィールドの詳細データを3階層まで取得する場合**\n\nリクエスト例:\n\n```\n/v1/contents/1234567890?depth=3\n```\n\n上記のレスポンス例:\n\n```\n{\n    \"_id\": 1234567890,\n    \"content_reference\": {\n        /* 参照1階層目 */\n        \"_id\": 2345678901,\n        \"content_reference\": {\n            /* 参照2階層目 */\n            \"_id\": 3456789012,\n            \"content_reference\": {\n                /* 参照3階層目 */\n                \"_id\": 4567890123,\n                \"content_reference\": 5678901234\n            }\n        }\n    }\n}\n```\n\n## 取得対象のプロパティを指定\n\nselectパラメータを指定することで、利用したいプロパティのみ取得することができます。 \nこのパラメータは一覧取得時もID指定時も指定可能です。\n\n以下のようなコンテンツデータが存在する場合の利用例を紹介します。\n\n**selectパラメータ未指定時（デフォルト動作）**\n\nリクエスト例:\n\n```\n/v1/contents/1234567890\n```\n\n上記のレスポンス例:\n\n```\n{\n  \"_id\": \"1234567890\",\n  \"_model\": \"news\",\n  \"_title\": \"Hello World\",\n  \"_created_at\": \"2023-01-23T04:50:00Z\",\n  \"_updated_at\": \"2023-01-23T04:50:00Z\",\n  \"_published_at\": \"2023-01-23T04:50:00Z\",\n  \"_last_published_at\": \"2023-01-23T04:50:00Z\",\n  \"_status\": \"published\",\n  \"flexibletext_field\": \"<div><h2>abcedf</h2><p>abcedf</p><ul><li>abcedf</li></ul></div>\",\n  \"singleline_field\": \"foobar\",\n  \"repeat_field\": [\n    {\n      \"singleline_field\": \"foobar\",\n      \"boolean_field\": true\n    },\n    {\n      \"singleline_field\": \"foobarbaz\",\n      \"boolean_field\": false\n    }\n  ],\n  \"reference_field\": {\n    \"_id\": \"2345678901\",\n    \"_model\": \"referenced\",\n    \"_title\": \"Hello World2\",\n    \"_created_at\": \"2023-01-23T04:50:00Z\",\n    \"_updated_at\": \"2023-01-23T04:50:00Z\",\n    \"_published_at\": \"2023-01-23T04:50:00Z\",\n    \"_status\": \"draft\",\n    \"singleline_field\": \"foobar\",\n  },\n  \"field_set\": {\n    \"singleline_field\": \"foobar\",\n    \"boolean_field\": true\n  }\n}\n```\n\n**_idとflexibletext_field、reference_fieldのみ取得する場合**\n\nリクエスト例:\n\n```\n/v1/contents/1234567890?select=_id,flexibletext_field,reference_field\n```\n\n上記のレスポンス例:\n\n```\n{\n  \"_id\": \"1234567890\",\n  \"flexibletext_field\": \"<div><h2>abcedf</h2><p>abcedf</p><ul><li>abcedf</li></ul></div>\",\n  \"reference_field\": {\n    \"_id\": \"2345678901\",\n    \"_model\": \"referenced\",\n    \"_title\": \"Hello World2\",\n    \"_created_at\": \"2023-01-23T04:50:00Z\",\n    \"_updated_at\": \"2023-01-23T04:50:00Z\",\n    \"_published_at\": \"2023-01-23T04:50:00Z\",\n    \"_status\": \"draft\",\n    \"singleline_field\": \"foobar\",\n  }\n}\n```\n\nコンテンツ参照フィールド、繰り返しフィールド、フィールドセットフィールドのような階層化されたデータは、ドット記法を用いて細かく指定することができます。\n※組み合わせフィールドでは利用できません。\n\n**reference_field内の_idとsingleline_fieldのみ取得する場合**\n\nリクエスト例:\n\n```\n/v1/contents/1234567890?select=reference_field._id,reference_field.singleline_field\n```\n\n上記のレスポンス例:\n\n```\n{\n  \"_id\": \"1234567890\",\n  \"_model\": \"news\",\n  \"_title\": \"Hello World\",\n  \"_created_at\": \"2023-01-23T04:50:00Z\",\n  \"_updated_at\": \"2023-01-23T04:50:00Z\",\n  \"_published_at\": \"2023-01-23T04:50:00Z\",\n  \"_last_published_at\": \"2023-01-23T04:50:00Z\",\n  \"_status\": \"published\",\n  \"flexibletext_field\": \"<div><h2>abcedf</h2><p>abcedf</p><ul><li>abcedf</li></ul></div>\",\n  \"singleline_field\": \"foobar\",\n  \"repeat_field\": [\n    {\n      \"singleline_field\": \"foobar\",\n      \"boolean_field\": true\n    },\n    {\n      \"singleline_field\": \"foobarbaz\",\n      \"boolean_field\": false\n    }\n  ],\n  \"reference_field\": {\n    \"_id\": \"2345678901\",\n    \"singleline_field\": \"foobar\",\n  },\n  \"field_set\": {\n    \"singleline_field\": \"foobar\",\n    \"boolean_field\": true\n  }\n}\n```\n\n**さらに、repeat_field内はsingleline_fieldのみ、field_set内はboolean_fieldのみ取得する場合**\n\nリクエスト例:\n\n```\n/v1/contents/1234567890?select=reference_field._id,reference_field.singleline_field,repeat_field.singleline_field,field_set.boolean_field\n```\n\n上記のレスポンス例:\n\n```\n{\n  \"_id\": \"1234567890\",\n  \"_model\": \"news\",\n  \"_title\": \"Hello World\",\n  \"_created_at\": \"2023-01-23T04:50:00Z\",\n  \"_updated_at\": \"2023-01-23T04:50:00Z\",\n  \"_published_at\": \"2023-01-23T04:50:00Z\",\n  \"_last_published_at\": \"2023-01-23T04:50:00Z\",\n  \"_status\": \"published\",\n  \"flexibletext_field\": \"<div><h2>abcedf</h2><p>abcedf</p><ul><li>abcedf</li></ul></div>\",\n  \"singleline_field\": \"foobar\",\n  \"repeat_field\": [\n    {\n      \"singleline_field\": \"foobar\"\n    },\n    {\n      \"singleline_field\": \"foobarbaz\"\n    }\n  ],\n  \"reference_field\": {\n    \"_id\": \"2345678901\",\n    \"singleline_field\": \"foobar\",\n  },\n  \"field_set\": {\n    \"boolean_field\": true\n  }\n}\n```\n\n**さらに、_idとflexibletext_field以外は取得対象外にする場合**\n\nリクエスト例:\n\n```\n/v1/contents/1234567890?select=_id,flexibletext_field,reference_field._id,reference_field.singleline_field,repeat_field.singleline_field,field_set.boolean_field\n```\n\n上記のレスポンス例:\n\n```\n{\n  \"_id\": \"1234567890\",\n  \"flexibletext_field\": \"<div><h2>abcedf</h2><p>abcedf</p><ul><li>abcedf</li></ul></div>\",\n  \"repeat_field\": [\n    {\n      \"singleline_field\": \"foobar\"\n    },\n    {\n      \"singleline_field\": \"foobarbaz\"\n    }\n  ],\n  \"reference_field\": {\n    \"_id\": \"2345678901\",\n    \"singleline_field\": \"foobar\",\n  },\n  \"field_set\": {\n    \"boolean_field\": true\n  }\n}\n```\n\n# Contents 取得(GET) API 共通仕様\n\n## リクエスト仕様\n\n演算子を用いて、コンテンツを特定の条件で絞り込むことができます。\n\n### フィールド種類ごとのフィルター\n\nユーザーが独自に定義したフィールドに対して、フィールドの種類によって利用できる演算子が異なります。\n\n| フィールド種類 | [eq] | [in] | [lt] | [lte] | [gt] | [gte] | [contains] | [has] |\n| --- | --- | --- | --- | --- | --- | --- | --- | --- |\n| フレキシブルテキスト | - | - | - | - | - | - | 文字列 | - |\n| 1行テキスト | 文字列 | 文字列 | - | - | - | - | 文字列 | - |\n| 複数行テキスト | 文字列 | 文字列 | - | - | - | - | 文字列 | - |\n| ブーリアン | true/false | - | - | - | - | - | - | - |\n| 単一選択 | 文字列 | 文字列 | - | - | - | - | - | - |\n| 複数選択 | - | - | - | - | - | - | - | 文字列 |\n| 日時 | - | - | 日時 | 日時 | 日時 | 日時 | - | - |\n| メディア | - | - | - | - | - | - | - | - |\n| コンテンツ参照 ※ | コンテンツID | コンテンツID | - | - | - | - | - | - |\n| 繰り返し ※ | - | - | - | - | - | - | - | - |\n| 組み合わせ | - | - | - | - | - | - | - | - |\n| フィールドセット ※ | - | - | - | - | - | - | - | - |\n\n※ 下記の「高度なフィルター指定」も参照ください\n\n### 高度なフィルター指定\n\n**コンテンツ参照フィールドに対する条件設定**\n\n参照しているコンテンツのフィールドに対して条件設定する場合、 `.` に続けて参照先コンテンツのフィールドを指定することができます。\n\n例1: 参照しているコンテンツ内の1行テキストフィールドに対して完全一致条件を指定\n\n```\n/v1/contents/?content_reference.singleline_field[eq]=foobar\n```\n\n例2: 参照しているコンテンツ内の日時テキストフィールドに対して条件指定\n\n```\n/v1/contents/?content_reference.datetime_field[gt]=2023-01-23T04:00:00+09:00\n```\n\n**フィールドセットに対する条件設定**\n\nフィールドセット内部のフィールドに対して条件設定する場合、 `.` に続けてフィールドを指定することができます。\n\n例1: フィールドセット内の1行テキストフィールドに対して完全一致条件を指定\n\n```\n/v1/contents/?field_set.singleline_field[eq]=foobar\n```\n\n例2: フィールドセット内の日時テキストフィールドに対して条件指定\n\n```\n/v1/contents/?field_set.datetime_field[gt]=2023-01-23T04:00:00+09:00\n```\n\n**繰り返しフィールドに対する条件設定**\n\n繰り返しフィールドに対して、繰り返し内で条件に合致するフィールドを1件以上含んでいるか否かを条件指定し、絞り込むことができます。\n条件設定する場合、 `.` に続けてフィールドを指定します。\n繰り返しフィールドに対する条件設定は `[eq]` フィルターのみ対応しています。\n\n例1: 繰り返しフィールド内の1行テキストフィールドに対して完全一致条件を指定\n\n```\n/v1/contents/?repeat.singleline_field[eq]=foobar\n```\n\n例2: 繰り返しフィールド内のコンテンツ参照フィールドに対してコンテンツIDを指定\n\n```\n/v1/contents/?repeat.content_reference[eq]=1234567890\n```\n\n※ 参照コンテンツ内のフィールドを条件指定することはできません\n\n## レスポンス仕様\n\nNILTO DeveloperAPI が返すレスポンスデータは、システムで自動設定されるシステムプロパティとユーザーが独自に定義したフィールドプロパティにより構成されます。\n\n```js\n{\n    \"_id\": 1234567890,\n    \"_model\": \"news\",\n    \"_title\": \"Hello World\",\n    \"_created_at\": \"2023-01-23T04:50:00Z\",\n    \"_updated_at\": \"2023-01-23T04:50:00Z\",\n    \"_published_at\": \"2023-01-23T04:50:00Z\",\n    \"_last_published_at\": \"2023-01-23T04:50:00Z\",\n    \"_status\": \"published\",\n    \"_space\": \"_parent\",\n    \"flexibletext_field\": \"<div><h2>abcedf</h2><p>abcedf</p><ul><li>abcedf</li></ul></div>\",\n    \"singleline_field\": \"foobar\",\n    \"boolean_field\": true\n}\n```\n\n### システムプロパティ\n\nAPIレスポンスに共通で含まれる、システム管理のプロパティです。\nこれらのプロパティは _ (アンダースコア) から始まります。\n\n| プロパティ名 | 説明 |\n| --- | --- |\n| _id | コンテンツを一位に識別するための一意なID。 |\n| _model | コンテンツが属するモデルのLUID。 |\n| _title | コンテンツのタイトル。モデルに設定された「タイトル用フィールド」の値が自動的に反映されます。 |\n| _created_at | コンテンツが作成された日時。日時は ISO 8601 形式のUTC（協定世界時）で表現されます。 |\n| _updated_at | コンテンツが最後に更新された日時。日時は ISO 8601 形式のUTCで表現されます。 |\n| _published_at | コンテンツがはじめて公開された日時。下書き状態の場合は null になることがあります。日時は ISO 8601 形式のUTCで表現されます。<br>一度公開されたことがあるコンテンツは、その後いかなる操作をしても _published_at の値が変わることはありません。 |\n| _last_published_at | コンテンツが最後に公開された日時。下書き状態の場合は null になることがあります。日時は ISO 8601 形式のUTCで表現されます。<br>2025年6月25日以前に最後に公開されたコンテンツは _published_at と同内容がレスポンスされます。 |\n| _status | コンテンツの公開状態を示します。<br>draft: 下書きデータのみ<br>published: 公開データのみ<br>published_draft: 公開中かつ下書きデータもある |\n| _space | サブスペース機能が有効な場合に、コンテンツが所属するスペースのLUIDを示します。 |\n| _prev | `include` パラメータを指定してレスポンスを拡張した場合に表示します。<br>ID指定時にのみ有効で、指定コンテンツの「前」に該当するコンテンツ情報を取得します。<br><br><br>詳細は**レスポンスの拡張**を参照してください。 |\n| _next | includeパラメータを指定してレスポンスを拡張した場合に表示します。<br>ID指定時にのみ有効で、指定コンテンツの「後」に該当するコンテンツ情報を取得します。<br><br>詳細は**レスポンスの拡張**を参照してください。 |\n| _langs | includeパラメータを指定してレスポンスを拡張した場合に表示します。<br>ID指定時にのみ有効で、コンテンツにどの言語データが作成されているかを取得します。<br><br>詳細は**レスポンスの拡張**を参照してください。 |\n\n### フィールドプロパティ\n\nユーザーが独自に定義したフィールドのデータです。\nキーには各フィールドのLUID (Locally Unique Identifier) が、値にはユーザーが管理画面で入力した内容がレスポンスされます。\n\nフィールド種類ごとのレスポンスデータを例示します。\n\n**フレキシブルテキスト**\n\nflexibletext_field[format]=htmlを指定した場合（デフォルト動作）\n\n```\n\"flexibletext_field\": \"<h2>abcdef</h2><p>abcdef</p><ul><li>abcdef</li></ul>\"\n```\n\nflexibletext_field[format]=textを指定した場合\n\n```\n\"flexibletext_field\": \"abcdef abcdef abcdef\"\n```\n\nflexibletext_field[format]=markdownを指定した場合\n\n```\n\"flexibletext_field\": \"## abcdef\\n\\nabcdef\\n\\n* abcdef\"\n```\n\nflexibletext_field[format]=portable_htmlを指定した場合\n\n```\n\"flexibletext_field\": \"<h2 data-nilto-ftelm='123123123'>abcdef</h2><p data-nilto-ftelm='456456456'>abcdef</p><ul data-nilto-ftelm='789789789'><li>abcdef</li></ul>\"\n```\n\n※ポータブルHTML（portable_html）\n書き込みAPIでのフレキシブルテキストフィールドへのデータ登録に適した独自HTMLフォーマットです。\nアドオン要素が適用された状態でフレキシブルテキストフィールドにデータ登録することができます。\n\n**1行テキスト**\n\n```\n\"singleline_field\": \"foobar\"\n```\n\n**複数行テキスト**\n\n```\n\"multiline_field\": \"foobar\\r\\nfoobar\"\n```\n\n**ブーリアン**\n\n```\n\"boolean_field\": true\n```\n\n**単一選択**\n\n```\n\"singleselect_field\": \"value\"\n```\n\n**複数選択**\n\n```\n\"multiselect_field\": [\n    \"value1\",\n    \"value2\",\n    \"value3\"\n]\n```\n\n**日時**\n\n```\n\"datetime_field\": \"2023-01-23T04:50:00Z\"\n```\n\n日時は ISO 8601 形式のUTC（協定世界時）で表現されます。\n\n**メディア**\n\n```\n\"media_field\": {\n    \"url\": \"https://cms-assets.nilto.com/spaces/1234567890/media/2345678901/_/abc.png\",\n    \"alt\": \"alternative text\"\n}\n```\n\nNILTO のメディアは **Fastly Image Optimizer** に対応しています。\nURLの末尾にクエリパラメータを付与することで、画像のリサイズやフォーマット変換が可能です。\n\n**代表的なパラメータ:**\n\n- `?width=800` : 幅を指定\n- `?height=600` : 高さを指定\n- `?format=webp` : WebPに変換\n- `?fit=bounds` : アスペクト比を維持して収める\n\n詳細は [Fastory IO 仕様](https://www.fastly.com/documentation/reference/io/) を参照してください。\n\n**コンテンツ参照**\n\n```\n\"reference_field\": {\n    \"_id\": 2345678901,\n    \"_model\": \"referenced\",\n    \"_title\": \"Hello World2\",\n    \"_created_at\": \"2023-01-23T04:50:00Z\",\n    \"_updated_at\": \"2023-01-23T04:50:00Z\",\n    \"_published_at\": \"2023-01-23T04:50:00Z\",\n    \"_status\": \"published\",\n    \"singleline_field\": \"foobar\"\n}\n```\n\n**繰り返し**\n\n繰り返しは、フィールドの集合であるオブジェクトの配列で表現されます。\n\n```\n\"repeat_field\": [\n    {\n        \"singleline_field\": \"foo\",\n        \"boolean_field\": true\n    },\n    {\n        \"singleline_field\": \"foobar\",\n        \"boolean_field\": false\n    },\n    {\n        \"singleline_field\": \"foobarbaz\",\n        \"boolean_field\": true\n    }\n]\n```\n\n**組み合わせ**\n\n組み合わせは、フィールドセットのデータであるオブジェクトの配列で表現されます。 フィールドセット内の`luid`は指定したLUIDです。`fields`はフィールドセット内フィールドです。\n\n```\n\"combination_field\": [\n    {\n        \"luid\": \"field_set_a\",\n        \"fields\": {\n            \"singleline_field\": \"foo\",\n            \"boolean_field\": true\n        }\n    },\n    {\n        \"luid\": \"field_set_b\",\n        \"fields\": {\n            \"datetime_field\": \"2023-01-23T04:50:00Z\",\n            \"singleselect_field\": \"value\"\n        }\n    },\n    {\n        \"luid\": \"field_set_a\",\n        \"fields\": {\n            \"singleline_field\": \"foobar\",\n            \"boolean_field\": false\n        }\n    }\n]\n```\n\n**フィールドセット（モデルに直接組み込んだ場合）**\n\n```\n\"field_set\": {\n    \"singleline\": \"foobar\",\n    \"boolean\": true\n}\n```\n\n### レスポンスの拡張\n\n`include` パラメータを指定することで、レスポンスを拡張することができます。\n\n**_prev**\n\nID指定でのコンテンツ取得時に有効。\nコンテンツを一覧取得した際の、指定コンテンツの「前」に該当するコンテンツ情報を`_prev` プロパティキーで取得。\n\nコンテンツの「前後」は一覧取得用のクエリパラメータ（ `order` キーや各種フィルター条件）を元に判定します。\n\n同一条件でヒットするコンテンツが1,000件を超える場合、_prevデータを正しく取得できない可能性があります。\nフィルター条件を調整してください。\n\n**リクエスト例**\n\n```\n/v1/contents/1234567890/?include=_prev\n```\n\n**レスポンス例**\n\n```\n{\n    \"_id\": 1234567890,\n    \"_model\": \"news\",\n    \"_title\": \"Current Content\",\n    \"_created_at\": \"2023-01-23T04:50:00Z\",\n    \"_updated_at\": \"2023-01-23T04:50:00Z\",\n    \"_published_at\": \"2023-01-23T04:50:00Z\",\n    \"_last_published_at\": \"2023-01-23T04:50:00Z\",\n    \"_status\": \"published\",\n    \"_space\": \"_parent\",\n    \"_prev\": {\n        \"_id\": 1111111111,\n        \"_model\": \"news\",\n        \"_title\": \"Previous Content\",\n        \"_created_at\": \"2023-02-01T04:50:00Z\",\n        \"_updated_at\": \"2023-02-01T04:50:00Z\",\n        \"_published_at\": \"2023-02-01T04:50:00Z\",\n        \"_last_published_at\": \"2023-02-01T04:50:00Z\",\n        \"_status\": \"published\",\n        \"_space\": \"_parent\",\n        \"flexibletext_field\": \"<div><h2>Previous Content H2</h2><p>abcedf</p></div>\",\n        \"singleline_field\": \"previous\",\n        \"boolean_field\": true\n    },\n    \"flexibletext_field\": \"<div><h2>Current Content H2</h2><p>abcedf</p></div>\",\n    \"singleline_field\": \"foobar\",\n    \"boolean_field\": true\n}\n```\n\n**_next**\n\nID指定でのコンテンツ取得時に有効。\nコンテンツを一覧取得した際の、指定コンテンツの「後」に該当するコンテンツ情報を`_next` プロパティキーで取得。\n\nコンテンツの「前後」は一覧取得用のクエリパラメータ（ `order` キーや各種フィルター条件）を元に判定します。\n\n同一条件でヒットするコンテンツが2,000件を超える場合、_nextデータを正しく取得できない可能性があります。\nフィルター条件を調整してください。\n\n**リクエスト例**\n\n```\n/v1/contents/1234567890/?include=_next\n```\n\n**レスポンス例**\n\n```\n{\n    \"_id\": 1234567890,\n    \"_model\": \"news\",\n    \"_title\": \"Current Content\",\n    \"_created_at\": \"2023-01-23T04:50:00Z\",\n    \"_updated_at\": \"2023-01-23T04:50:00Z\",\n    \"_published_at\": \"2023-01-23T04:50:00Z\",\n    \"_last_published_at\": \"2023-01-23T04:50:00Z\",\n    \"_status\": \"published\",\n    \"_space\": \"_parent\",\n    \"_next\": {\n        \"_id\": 2222222222,\n        \"_model\": \"news\",\n        \"_title\": \"Next Content\",\n        \"_created_at\": \"2023-01-01T04:50:00Z\",\n        \"_updated_at\": \"2023-01-01T04:50:00Z\",\n        \"_published_at\": \"2023-01-01T04:50:00Z\",\n        \"_last_published_at\": \"2023-01-01T04:50:00Z\",\n        \"_status\": \"published\",\n        \"_space\": \"_parent\",\n        \"flexibletext_field\": \"<div><h2>Next Content H2</h2><p>abcedf</p></div>\",\n        \"singleline_field\": \"next\",\n        \"boolean_field\": true\n    },\n    \"flexibletext_field\": \"<div><h2>Current Content H2</h2><p>abcedf</p></div>\",\n    \"singleline_field\": \"foobar\",\n    \"boolean_field\": true\n}\n```\n\n**_langs**\n\nID指定でのコンテンツ取得時に有効。\n指定コンテンツに対してどの言語データが作成されていて取得可能かの情報`を_langs` プロパティキーで取得。\n\n`_langs` プロパティはObjectの形式で値でレスポンスされ、以下2つの値が取得できます。\n\n- `current`\n- 形式: string 言語キー\n- 内容: 現在のレスポンスがどの言語のデータか。\n- 備考: `lang_fallback=true` を指定しているとき、メイン言語にフォールバックされているかどうかの判定に利用できます。\n- `available`\n- 形式: list 言語キーの一覧\n- 内容: 指定コンテンツに対して作成され、取得できる言語キーの一覧\n- 備考: 言語データが作成されていても公開ステータスが利用APIキーとマッチしない言語キーはレスポンスに含まれません。\n\n**リクエスト例**\n\n```\n/v1/contents/1234567890/?include=_langs\n```\n\n**レスポンス例**\n\n```\n{\n    \"_id\": 1234567890,\n    \"_model\": \"news\",\n    \"_title\": \"Current Content\",\n    \"_created_at\": \"2023-01-23T04:50:00Z\",\n    \"_updated_at\": \"2023-01-23T04:50:00Z\",\n    \"_published_at\": \"2023-01-23T04:50:00Z\",\n    \"_last_published_at\": \"2023-01-23T04:50:00Z\",\n    \"_status\": \"published\",\n    \"_space\": \"_parent\",\n    \"_langs\": {\n      \"current\": \"en\",\n      \"available\": [\n        \"en\",\n        \"ja\",\n        \"zh-CN\"\n      ]\n    },\n    \"flexibletext_field\": \"<div><h2>Current Content H2</h2><p>abcedf</p></div>\",\n    \"singleline_field\": \"foobar\",\n    \"boolean_field\": true\n}\n```\n\n#### 使用例\n\n**前後コンテンツ情報の取得**\n\n例1: blogsモデルをorder_fieldでソートした際の、前後のコンテンツ情報を取得\n\n```\n/v1/contents/1234567890/?model=blogs&order=order_field&include=_prev,_next\n```\n\n例2:さらに、selectキーを細かく指定して、前後のコンテンツ情報のうち一部プロパティのみ取得\n\n```\n/v1/contents/1234567890/?model=blogs&order=order_field&include=_prev,_next&select=_prev._id,_prev.singleline_field,_next._id,_next.singleline_field\n```\n\nレスポンスイメージ\n\n```\n{\n    \"_id\": 1234567890,\n    \"_model\": \"news\",\n    \"_title\": \"Current Content\",\n    \"_created_at\": \"2023-01-23T04:50:00Z\",\n    \"_updated_at\": \"2023-01-23T04:50:00Z\",\n    \"_published_at\": \"2023-01-23T04:50:00Z\",\n    \"_last_published_at\": \"2023-01-23T04:50:00Z\",\n    \"_status\": \"published\",\n    \"_space\": \"_parent\",\n    \"_prev\": {\n        \"_id\": 1111111111,\n        \"singleline_field\": \"previous\"\n    },\n    \"_next\": {\n        \"_id\": 2222222222,\n        \"singleline_field\": \"next\"\n    },\n    \"flexibletext_field\": \"<div><h2>Current Content H2</h2><p>abcedf</p></div>\",\n    \"singleline_field\": \"foobar\",\n    \"boolean_field\": true\n}\n```\n\n# 既知の不具合\nDeveloper APIに関する既知の不具合は以下のとおりです。\n\n- サブ言語の翻訳しないフィールドに対してフィルター条件を指定したとき、正しくフィルタリングされないことがある。\n- フィルター条件を指定したとき、APIキーが対象とするステータス以外のコンテンツの内容でヒットしてしまう。",
    "contact": {},
    "x-logo": {
      "url": "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjU2IiBoZWlnaHQ9IjEwMCIgdmlld0JveD0iMCAwIDI1NiAxMDAiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNMTI0LjM5MyA0NC43NTE2SDEyNy42NTdWNTIuNzE1OUgxMzIuNTYzVjU1LjMxNzhIMTI0LjM5M1Y0NC43NTE2Wk0xMTMuNTIxIDU1LjMxNzhIMTE2Ljc5NFY0NC43NTE2SDExMy41MjFWNTUuMzE3OFpNOTUuOTc0OCA0NC43NTE2SDk5LjAyM0wxMDMuMDAxIDUwLjU5NzJWNDQuNzUxNkgxMDYuMDc5VjU1LjMxNzhIMTAzLjAwMUw5OS4wNDUxIDQ5LjUxNjVWNTUuMzE3OEg5NS45NzQ4VjQ0Ljc1MTZaTTE3Mi42NTkgNTUuMjc4N0gxNzAuMTgzQzE2OS45OTUgNTUuMjc4NyAxNjkuODQyIDU1LjQzMDcgMTY5Ljg0MiA1NS42MTk1VjYzLjkxMTNIMTQ4LjkyNEMxNDguNzM2IDYzLjkxMTMgMTQ4LjU4MyA2NC4wNjQgMTQ4LjU4MyA2NC4yNTIxVjY2LjcyODZDMTQ4LjU4MyA2Ni45MTY3IDE0OC43MzYgNjcuMDY5NCAxNDguOTI0IDY3LjA2OTRIMTcyLjQzMkMxNzIuNzQ1IDY3LjA2OTQgMTczIDY2LjgxNTcgMTczIDY2LjUwMTRWNTUuNjE5NUMxNzMgNTUuNDMwNyAxNzIuODQ3IDU1LjI3ODcgMTcyLjY1OSA1NS4yNzg3Wk04My4zNDA4IDQ0Ljc5MDdIODUuODE3M0M4Ni4wMDU0IDQ0Ljc5MDcgODYuMTU4MSA0NC42MzggODYuMTU4MSA0NC40NDk5VjM2LjE1ODFIMTA3LjA3NkMxMDcuMjY0IDM2LjE1ODEgMTA3LjQxNyAzNi4wMDU0IDEwNy40MTcgMzUuODE3M1YzMy4zNDA4QzEwNy40MTcgMzMuMTUyNyAxMDcuMjY0IDMzIDEwNy4wNzYgMzNIODMuNTY4QzgzLjI1MzggMzMgODMgMzMuMjUzOCA4MyAzMy41NjhWNDQuNDQ5OUM4MyA0NC42MzggODMuMTUyNyA0NC43OTA3IDgzLjM0MDggNDQuNzkwN1oiIGZpbGw9ImJsYWNrIi8+CjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNMTU2LjE4NiA0Ny4zNTM1QzE1NC42OSA0Ny4zNTM1IDE1My42OTYgNDguNTkzNiAxNTMuNjk2IDUwLjAwMjZDMTUzLjY5NiA1MS40MTMxIDE1NC42OSA1Mi42NTMyIDE1Ni4xODYgNTIuNjUzMkMxNTcuNjgyIDUyLjY1MzIgMTU4LjY3NyA1MS40MTMxIDE1OC42NzcgNTAuMDAyNkMxNTguNjc3IDQ4LjU5MzYgMTU3LjY4MiA0Ny4zNTM1IDE1Ni4xODYgNDcuMzUzNVpNMTYxLjYzNCA1MC4wMDI2QzE2MS42MzQgNTMuMDg3IDE1OS40NTkgNTUuNTg3IDE1Ni4xODYgNTUuNTg3QzE1Mi45MTMgNTUuNTg3IDE1MC43MzggNTMuMDg3IDE1MC43MzggNTAuMDAyNkMxNTAuNzM4IDQ2LjkxOSAxNTIuOTEzIDQ0LjQxODkgMTU2LjE4NiA0NC40MTg5QzE1OS40NTkgNDQuNDE4OSAxNjEuNjM0IDQ2LjkxOSAxNjEuNjM0IDUwLjAwMjZaTTEzNi45MjQgNDQuNzUxNkgxNDYuMjhWNDcuMzYwOUgxNDMuMTRWNTUuMzE3OEgxNDAuMDY0VjQ3LjM2MDlIMTM2LjkyNFY0NC43NTE2Wk0xMTEuOTAyIDM2LjE1ODFIMTY5Ljg0MlY1MS4xMzM1QzE2OS44NDIgNTEuMzIxNiAxNjkuOTk1IDUxLjQ3NDMgMTcwLjE4MyA1MS40NzQzSDE3Mi42NTlDMTcyLjg0NyA1MS40NzQzIDE3MyA1MS4zMjE2IDE3MyA1MS4xMzM1VjMzLjU2OEMxNzMgMzMuMjU0NSAxNzIuNzQ1IDMzIDE3Mi40MzIgMzNIMTExLjkwMkMxMTEuNzE0IDMzIDExMS41NjIgMzMuMTUyNyAxMTEuNTYyIDMzLjM0MDhWMzUuODE3M0MxMTEuNTYyIDM2LjAwNTQgMTExLjcxNCAzNi4xNTgxIDExMS45MDIgMzYuMTU4MVpNMTQ0LjA5NyA2My45MTEzSDg2LjE1ODFWNDguOTM1OUM4Ni4xNTgxIDQ4Ljc0NzggODYuMDA1NCA0OC41OTUxIDg1LjgxNzMgNDguNTk1MUg4My4zNDA4QzgzLjE1MjcgNDguNTk1MSA4MyA0OC43NDc4IDgzIDQ4LjkzNTlWNjYuNTAxNEM4MyA2Ni44MTQ5IDgzLjI1NDUgNjcuMDY5NCA4My41NjggNjcuMDY5NEgxNDQuMDk3QzE0NC4yODYgNjcuMDY5NCAxNDQuNDM4IDY2LjkxNjcgMTQ0LjQzOCA2Ni43Mjg2VjY0LjI1MjFDMTQ0LjQzOCA2NC4wNjQgMTQ0LjI4NiA2My45MTEzIDE0NC4wOTcgNjMuOTExM1oiIGZpbGw9IiMwMDg1QTgiLz4KPC9zdmc+Cg==",
      "altText": "NILTO",
      "href": "https://www.nilto.com/"
    }
  },
  "servers": [
    {
      "url": "https://cms-api.nilto.com/v1"
    }
  ],
  "security": [
    {
      "X-NILTO-API-KEY": []
    }
  ],
  "tags": [
    {
      "name": "Contents 取得(GET) API",
      "description": "フィルター指定やレスポンスフォーマット等の全体仕様は、ページ上部の**「Contents 取得(GET) API 共通仕様」**をご参照ください。"
    },
    {
      "name": "Contents 書き込み(Write) API（ベータ版）",
      "description": "**ベータ版機能について**\n\nこの機能はベータ版での提供となっており、動作が不安定な場合があります。\nまた、今後互換性を保たない変更が加わる可能性があります。\n\nあらかじめご了承いただいた上でのご利用をお願いいたします。"
    },
    {
      "name": "Media 書き込み(Write) API（ベータ版）",
      "description": "**ベータ版機能について**\n\nこの機能はベータ版での提供となっており、動作が不安定な場合があります。\nまた、今後互換性を保たない変更が加わる可能性があります。\n\nあらかじめご了承いただいた上でのご利用をお願いいたします。"
    }
  ],
  "paths": {
    "/contents": {
      "get": {
        "summary": "コンテンツ一覧を取得する",
        "description": "指定した条件に合うコンテンツを配列形式で一覧取得します。\n\nデフォルトでは全モデルのコンテンツを混合して取得します。特定のモデルに絞り込みたい場合は、 `model` パラメータにモデルのLUIDを指定してください。\n※ パスパラメータにモデル名（ `/contents/news` など）を指定することはできません。",
        "tags": [
          "Contents 取得(GET) API"
        ],
        "operationId": "get-contents",
        "parameters": [
          {
            "name": "select",
            "in": "query",
            "required": false,
            "description": "データを取得するフィールドを指定します。\nカンマ区切りで複数指定できます。\n\n省略するとすべてのフィールドを取得します。\n\n指定しなかったフィールドはレスポンスに含まれません。`_id` を含むすべてのシステムプロパティが除外対象です。\n存在しないLUIDのみを指定した場合、空のオブジェクト`{}` が返ります。\n\nコンテンツ参照フィールド等の階層化されたデータにはドット記法でさらに細かく指定することができます。\n詳細は[取得対象のプロパティを指定](https://www.nilto.com/ja/help/usage/api-overview#83544c895bd6bee6924126f57d6c612133115d56)を参照ください。",
            "schema": {
              "type": "string",
              "example": "_id,description,reference_field._id"
            }
          },
          {
            "name": "depth",
            "in": "query",
            "required": false,
            "description": "参照するコンテンツのオブジェクトを取得する深度を指定します。\n`depth=0` の場合、コンテンツ参照フィールドはオブジェクトではなく、常に数値形式のコンテンツIDが返ります。\n\n[注意]\n`depth` の設定は `select` 指定よりも優先されます。 \n例えば `depth=0` かつ `select=ref_field._id` と指定した場合、`select` の指定は無視され、ID（数値）のみがレスポンスされます。",
            "schema": {
              "type": "integer",
              "minimum": 0,
              "maximum": 3,
              "default": 1,
              "example": 3
            }
          },
          {
            "name": "order",
            "in": "query",
            "required": false,
            "description": "並べ替える基準とするフィールドのLUIDを指定します。カンマ区切りで複数指定できます。\n降順にするにはLUIDの先頭に`-`をつけます。\n\n省略した場合、デフォルトで作成日（`_created_at`）の降順でソートされます。",
            "schema": {
              "type": "string",
              "example": "pickup,-_title"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "description": "取得する件数の上限を指定します（最大100件）。\n全件取得を行う場合は、レスポンスに含まれる `total` の値を確認し、`offset` を用いて繰り返しリクエストを行ってください。",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 100,
              "default": 100,
              "example": 10
            }
          },
          {
            "name": "offset",
            "in": "query",
            "required": false,
            "description": "何件目から取得するかを指定します。",
            "schema": {
              "type": "integer",
              "minimum": 0,
              "default": 0,
              "example": 10
            }
          },
          {
            "name": "model",
            "in": "query",
            "required": false,
            "description": "取得対象とするモデルのLUIDを指定します。カンマ区切りで複数指定できます。\n省略するとすべてのモデルのコンテンツを取得対象とします。",
            "schema": {
              "type": "string",
              "example": "blog,news"
            }
          },
          {
            "name": "lang",
            "in": "query",
            "required": false,
            "description": "取得したいコンテンツの言語キーを指定します。省略するとメイン言語の内容を取得します。",
            "schema": {
              "type": "string",
              "example": "ja"
            }
          },
          {
            "name": "lang_fallback",
            "in": "query",
            "required": false,
            "description": "`lang`でサブ言語を指定している際に `lang_fallback=true` を指定すると、指定言語のデータが作成されていない場合はメイン言語の内容を代わりにレスポンスします。\n\nデフォルトは `false` で、指定言語が作成されていないコンテンツはヒットしません。",
            "schema": {
              "type": "string",
              "default": "false",
              "enum": [
                "false",
                "true"
              ],
              "example": "true"
            }
          },
          {
            "name": "space",
            "in": "query",
            "required": false,
            "description": "サブスペース機能をご利用中にのみ有効なキーです。\n取得対象とするスペースLUIDを指定します。\n\n親スペースのLUIDは`_parent`で固定です。",
            "schema": {
              "type": "string",
              "example": "_parent"
            }
          },
          {
            "name": "contains",
            "in": "query",
            "required": false,
            "description": "すべてのテキストフィールド（1行テキスト/複数行テキスト/フレキシブルテキスト）を横断的に検索し、指定した値が含まれるコンテンツを取得します。\nカンマ区切りでAND検索になります。\n\n`lang`パラメーターを指定している場合、その言語の内容と比較します。",
            "schema": {
              "type": "string",
              "example": "keyword1,keyword2"
            }
          },
          {
            "name": "{field_luid}[format]",
            "in": "query",
            "required": false,
            "description": "フレキシブルテキストのデータ形式を指定します。\n各形式については**フィールドプロパティ**を参照してください。",
            "schema": {
              "type": "string",
              "default": "html",
              "enum": [
                "html",
                "text",
                "markdown",
                "portable_html"
              ],
              "example": "text"
            }
          },
          {
            "name": "{field_luid}[eq]",
            "in": "query",
            "required": false,
            "description": "フィールドの内容が指定した値と一致するコンテンツのみ取得します。\n\n`lang`パラメーターを指定している場合、その言語の内容と比較します。",
            "schema": {
              "type": "string",
              "example": "value"
            }
          },
          {
            "name": "{field_luid}[in]",
            "in": "query",
            "required": false,
            "description": "フィールドの値が指定した値のいずれかに一致するコンテンツのみ取得します。\nカンマ区切りで複数指定できます。\n\n`lang`パラメーターを指定している場合、その言語の内容と比較します。",
            "schema": {
              "type": "string",
              "example": "value1,value2,value3"
            }
          },
          {
            "name": "{field_luid}[lt]",
            "in": "query",
            "required": false,
            "description": "フィールドの内容が指定した値より小さいコンテンツのみ取得します。\n\n`lang`パラメーターを指定している場合、その言語の内容と比較します。",
            "schema": {
              "type": "string",
              "example": "2023-01-23T04:50:00Z"
            }
          },
          {
            "name": "{field_luid}[lte]",
            "in": "query",
            "required": false,
            "description": "フィールドの内容が指定した値以下のコンテンツのみ取得します。\n\n`lang`パラメーターを指定している場合、その言語の内容と比較します。",
            "schema": {
              "type": "string",
              "example": "2023-01-23T04:50:00Z"
            }
          },
          {
            "name": "{field_luid}[gt]",
            "in": "query",
            "required": false,
            "description": "フィールドの内容が指定した値より大きいコンテンツのみ取得します。\n\n`lang`パラメーターを指定している場合、その言語の内容と比較します。",
            "schema": {
              "type": "string",
              "example": "2023-01-23T04:50:00Z"
            }
          },
          {
            "name": "{field_luid}[gte]",
            "in": "query",
            "required": false,
            "description": "フィールドの内容が指定した値以上のコンテンツのみ取得します。\n\n`lang`パラメーターを指定している場合、その言語の内容と比較します。",
            "schema": {
              "type": "string",
              "example": "2023-01-23T04:50:00Z"
            }
          },
          {
            "name": "{field_luid}[contains]",
            "in": "query",
            "required": false,
            "description": "指定したフィールドのみを対象に、値が含まれるコンテンツを取得します。カンマ区切りでAND検索になります。\n\n`lang`パラメーターを指定している場合、その言語の内容と比較します。",
            "schema": {
              "type": "string",
              "example": "keyword1,keyword2"
            }
          },
          {
            "name": "{field_luid}[has]",
            "in": "query",
            "required": false,
            "description": "複数選択フィールドに対し、指定した値が含まれるコンテンツのみ取得します。\n指定する値は「表示名」ではなく「値」を使用します。\n\n`lang`パラメーターを指定している場合、その言語の内容と比較します。",
            "schema": {
              "type": "string",
              "example": "value"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "total": {
                      "type": "integer",
                      "description": "条件に合致した件数"
                    },
                    "offset": {
                      "type": "integer",
                      "description": "何件目から取得したか"
                    },
                    "limit": {
                      "type": "integer",
                      "description": "取得件数の上限"
                    },
                    "data": {
                      "type": "array",
                      "description": "取得されたコンテンツオブジェクトの配列。\nNILTOの一覧取得APIでは、実際のコンテンツデータはこの data プロパティの中に格納されています。",
                      "items": {
                        "type": "object",
                        "description": "コンテンツデータ"
                      }
                    }
                  }
                },
                "example": {
                  "total": 34,
                  "offset": 20,
                  "limit": 10,
                  "data": [
                    {
                      "_id": "1234567890",
                      "_model": "news",
                      "_title": "Hello World",
                      "_created_at": "2023-01-23T04:50:00Z",
                      "_updated_at": "2023-01-23T04:50:00Z",
                      "_published_at": "2023-01-23T04:50:00Z",
                      "_last_published_at": "2023-01-23T04:50:00Z",
                      "_status": "published",
                      "_space": "_parent",
                      "flexibletext_field": "<div><h2>abcedf</h2><p>abcedf</p><ul><li>abcedf</li></ul></div>",
                      "singleline_field": "foobar",
                      "multiline_field": "foo\nbar",
                      "boolean_field": true,
                      "singleselect_field": "value1",
                      "datetime_field": "2023-01-23T04:50:00Z",
                      "media_field": {
                        "url": "https://cms-assets.nilto.com/spaces/1234567890/media/2345678901/_/abc.png",
                        "alt": "alternative text"
                      },
                      "repeat_field": [
                        {
                          "singleline_field": "foobar",
                          "boolean_field": true
                        },
                        {
                          "singleline_field": "foobarbaz",
                          "boolean_field": false
                        }
                      ],
                      "combination_field": [
                        {
                          "luid": "block_a",
                          "fields": {
                            "multiline_field": "foo\nbar",
                            "boolean_field": true
                          }
                        },
                        {
                          "luid": "block_b",
                          "fields": {
                            "datetime_field": "2023-01-23T04:50:00Z",
                            "repeat_field": [
                              {
                                "singleline_field": "foobar"
                              },
                              {
                                "singleline_field": "foobarbaz"
                              }
                            ]
                          }
                        },
                        {
                          "luid": "block_a",
                          "fields": {
                            "multiline_field": "foo\nbar\nbaz",
                            "boolean_field": false
                          }
                        }
                      ],
                      "reference_field": {
                        "_id": "1234567890",
                        "_title": "Hello World2",
                        "_created_at": "2023-01-23T04:50:00Z",
                        "_updated_at": "2023-01-23T04:50:00Z",
                        "_published_at": "2023-01-23T04:50:00Z",
                        "_status": "draft",
                        "reference_field": "2345678901"
                      },
                      "field_set1": {
                        "singleline_field": "foobar",
                        "boolean_field": true
                      },
                      "field_set2": {
                        "multiline_field": "foo\nbar",
                        "datetime_field": "2023-01-23T04:50:00Z"
                      }
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "string",
                      "description": "Value: \"400\"\nHTTPステータスコード"
                    },
                    "code": {
                      "type": "string",
                      "description": "Value: \"BadRequest\"\nエラーを識別するためのコード"
                    }
                  }
                },
                "example": {
                  "status": "400",
                  "code": "BadRequest"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "string",
                      "description": "Value: \"401\"\nHTTPステータスコード"
                    },
                    "code": {
                      "type": "string",
                      "description": "Value: \"Unauthorized\"\nエラーを識別するためのコード"
                    }
                  }
                },
                "example": {
                  "status": "401",
                  "code": "Unauthorized"
                }
              }
            }
          },
          "402": {
            "description": "Payment Required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "string",
                      "description": "Value: \"402\"\nHTTPステータスコード"
                    },
                    "code": {
                      "type": "string",
                      "description": "Value: \"Payment Required\"\nエラーを識別するためのコード"
                    }
                  }
                },
                "example": {
                  "status": "402",
                  "code": "Payment Required"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "string",
                      "description": "Value: \"403\"\nHTTPステータスコード"
                    },
                    "code": {
                      "type": "string",
                      "description": "Value: \"Forbidden\"\nエラーを識別するためのコード"
                    }
                  }
                },
                "example": {
                  "status": "403",
                  "code": "Forbidden"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "string",
                      "description": "Value: \"404\"\nHTTPステータスコード"
                    },
                    "code": {
                      "type": "string",
                      "description": "Value: \"Not Found\"\nエラーを識別するためのコード"
                    }
                  }
                },
                "example": {
                  "status": "404",
                  "code": "Not Found"
                }
              }
            }
          },
          "429": {
            "description": "Too Many Requests",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "string",
                      "description": "Value: \"429\"\nHTTPステータスコード"
                    },
                    "code": {
                      "type": "string",
                      "description": "Value: \"Too Many Requests\"\nエラーを識別するためのコード"
                    },
                    "message": {
                      "type": "string",
                      "description": "次のリクエストが可能になるまでの残り秒数を含むメッセージ。 秒数そのものはretry-afterヘッダーで返されます。"
                    }
                  }
                },
                "example": {
                  "status": "429",
                  "code": "Too Many Requests",
                  "message": "Expected available in 58 seconds."
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "string",
                      "description": "Value: \"500\"\nHTTPステータスコード"
                    },
                    "code": {
                      "type": "string",
                      "description": "Value: \"Internal Server Error\"\nエラーを識別するためのコード"
                    }
                  }
                },
                "example": {
                  "status": "500",
                  "code": "Internal Server Error"
                }
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "shell",
            "label": "curl",
            "source": "curl -H 'X-NILTO-API-KEY:0000000000000000000000' \\\n'https://cms-api.nilto.com/v1/contents?model=news&boolean_field[eq]=true'"
          }
        ],
        "x-code-samples": [
          {
            "lang": "shell",
            "label": "curl",
            "source": "curl -H 'X-NILTO-API-KEY:0000000000000000000000' \\\n'https://cms-api.nilto.com/v1/contents?model=news&boolean_field[eq]=true'"
          }
        ]
      },
      "post": {
        "summary": "コンテンツを作成する",
        "description": "コンテンツを1件新規作成します。",
        "tags": [
          "Contents 書き込み(Write) API（ベータ版）"
        ],
        "operationId": "post-contents",
        "parameters": [
          {
            "name": "model",
            "in": "query",
            "required": true,
            "description": "登録対象とするモデルのLUIDを指定します。",
            "schema": {
              "type": "string",
              "example": "blog,news"
            }
          },
          {
            "name": "published",
            "in": "query",
            "required": false,
            "description": "コンテンツを公開状態で作成するかどうかを指定します。",
            "schema": {
              "type": "boolean",
              "default": false,
              "example": true
            }
          },
          {
            "name": "space",
            "in": "query",
            "required": false,
            "description": "コンテンツを作成したいスペースのLUIDを指定します。",
            "schema": {
              "type": "string",
              "default": "_parent",
              "example": "demo"
            }
          },
          {
            "name": "ft_format",
            "in": "query",
            "required": false,
            "description": "フレキシブルテキストフィールドにデータ登録したい場合、HTMLデータとして取り込むかマークダウンデータとして取り込むかを指定します。",
            "schema": {
              "type": "string",
              "default": "portable_html",
              "enum": [
                "portable_html",
                "markdown"
              ],
              "example": "markdown"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "integer",
                      "description": "コンテンツID"
                    }
                  }
                },
                "example": {
                  "id": 1234567890
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "string",
                      "description": "Value: \"400\"\nHTTPステータスコード"
                    },
                    "code": {
                      "type": "string",
                      "description": "Value: \"BadRequest\"\nエラーを識別するためのコード"
                    }
                  }
                },
                "example": {
                  "status": "400",
                  "code": "BadRequest"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "string",
                      "description": "Value: \"401\"\nHTTPステータスコード"
                    },
                    "code": {
                      "type": "string",
                      "description": "Value: \"Unauthorized\"\nエラーを識別するためのコード"
                    }
                  }
                },
                "example": {
                  "status": "401",
                  "code": "Unauthorized"
                }
              }
            }
          },
          "402": {
            "description": "Payment Required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "string",
                      "description": "Value: \"402\"\nHTTPステータスコード"
                    },
                    "code": {
                      "type": "string",
                      "description": "Value: \"Payment Required\"\nエラーを識別するためのコード"
                    }
                  }
                },
                "example": {
                  "status": "402",
                  "code": "Payment Required"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "string",
                      "description": "Value: \"403\"\nHTTPステータスコード"
                    },
                    "code": {
                      "type": "string",
                      "description": "Value: \"Forbidden\"\nエラーを識別するためのコード"
                    }
                  }
                },
                "example": {
                  "status": "403",
                  "code": "Forbidden"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "string",
                      "description": "Value: \"404\"\nHTTPステータスコード"
                    },
                    "code": {
                      "type": "string",
                      "description": "Value: \"Not Found\"\nエラーを識別するためのコード"
                    }
                  }
                },
                "example": {
                  "status": "404",
                  "code": "Not Found"
                }
              }
            }
          },
          "429": {
            "description": "Too Many Requests",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "string",
                      "description": "Value: \"429\"\nHTTPステータスコード"
                    },
                    "code": {
                      "type": "string",
                      "description": "Value: \"Too Many Requests\"\nエラーを識別するためのコード"
                    },
                    "message": {
                      "type": "string",
                      "description": "次のリクエストが可能になるまでの残り秒数を含むメッセージ。 秒数そのものはretry-afterヘッダーで返されます。"
                    }
                  }
                },
                "example": {
                  "status": "429",
                  "code": "Too Many Requests",
                  "message": "Expected available in 58 seconds."
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "string",
                      "description": "Value: \"500\"\nHTTPステータスコード"
                    },
                    "code": {
                      "type": "string",
                      "description": "Value: \"Internal Server Error\"\nエラーを識別するためのコード"
                    }
                  }
                },
                "example": {
                  "status": "500",
                  "code": "Internal Server Error"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "fields": {
                    "type": "object",
                    "description": "{フィールドLUID: 入力値}の形式のオブジェクト。\n言語キー未指定時はメイン言語として登録します。"
                  },
                  "fields[{lang_key}]": {
                    "type": "object",
                    "description": "{フィールドLUID: 入力値}の形式のオブジェクト。\n[] 内は利用中言語の言語キーを指定。同時に複数の言語キーを指定できます。"
                  },
                  "meta": {
                    "type": "object",
                    "description": "{プロパティキー: 入力値}の形式のオブジェクト。\n\n現在以下のプロパティに対応しています。\n\n`_published_at` : コンテンツの公開日時\n\n`_last_published_at`: コンテンツの最終公開 日時"
                  }
                },
                "required": [
                  "fields"
                ]
              },
              "example": {
                "fields": {
                  "flexibletext_field": "<h2>abcedf</h2><p>abcedf</p><ul><li>abcedf</li><li>abcedf</li>",
                  "singleline_field": "foobar",
                  "multiline_field": "foo\nbar",
                  "boolean_field": true,
                  "singleselect_field": "value1",
                  "datetime_field": "2023-01-23T04:50:00Z",
                  "media_field": 1234567890,
                  "repeat_field": [],
                  "reference_field": 1234567890,
                  "field_set1": {
                    "singleline_field": "foobar",
                    "boolean_field": true
                  },
                  "field_set2": {
                    "multiline_field": "foo\nbar",
                    "datetime_field": "2023-01-23T04:50:00Z"
                  },
                  "combination_field": [
                    {
                      "luid": "field_set_a",
                      "fields": {
                        "multiline_field": "foo\nbar",
                        "boolean_field": true
                      }
                    },
                    {
                      "luid": "field_set_b",
                      "fields": {
                        "datetime_field": "2023-01-23T04:50:00Z",
                        "repeat_field": []
                      }
                    },
                    {
                      "luid": "field_set_a",
                      "fields": {
                        "multiline_field": "foo\nbar\nbaz",
                        "boolean_field": false
                      }
                    }
                  ]
                },
                "fields[en]": {
                  "singleline_field": "foobar"
                },
                "fields[zh-CN]": {
                  "singleline_field": "foobar"
                },
                "meta": {
                  "_published_at": "2023-01-23T04:50:00Z",
                  "_last_published_at": "2023-04-01T09:00:00Z"
                }
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "shell",
            "label": "curl",
            "source": "curl -X POST \"https://cms-api.nilto.com/v1/contents?model=news&published=false\" \\\n     -H \"X-NILTO-API-KEY: 0000000000000000000000\" \\\n     -H \"Content-Type: application/json\" \\\n     -d '{\n       \"fields\": {\n         \"flexibletext_field\": \"<h2>タイトル</h2><p>本文のテキストです。</p>\",\n         \"singleline_field\": \"1行テキストのサンプル\",\n         \"boolean_field\": true,\n         \"datetime_field\": \"2023-03-07T19:00:00Z\"\n       }\n     }'"
          }
        ],
        "x-code-samples": [
          {
            "lang": "shell",
            "label": "curl",
            "source": "curl -X POST \"https://cms-api.nilto.com/v1/contents?model=news&published=false\" \\\n     -H \"X-NILTO-API-KEY: 0000000000000000000000\" \\\n     -H \"Content-Type: application/json\" \\\n     -d '{\n       \"fields\": {\n         \"flexibletext_field\": \"<h2>タイトル</h2><p>本文のテキストです。</p>\",\n         \"singleline_field\": \"1行テキストのサンプル\",\n         \"boolean_field\": true,\n         \"datetime_field\": \"2023-03-07T19:00:00Z\"\n       }\n     }'"
          }
        ]
      }
    },
    "/contents/{content_id}": {
      "get": {
        "summary": "コンテンツを取得する",
        "description": "指定したIDのコンテンツを取得します。\n\n`/v1/contents/1234567890` のように、content_idには数値を指定してください。\n\n※ ここにモデルLUID（news 等）を指定することはできません。モデル単位の取得は、一覧取得エンドポイントにて `model` パラメータを使用してください。",
        "tags": [
          "Contents 取得(GET) API"
        ],
        "operationId": "get-contents-content_id",
        "parameters": [
          {
            "name": "content_id",
            "in": "path",
            "required": true,
            "description": "取得するコンテンツのID。ランダムに採番された数値。",
            "schema": {
              "type": "integer",
              "example": 1234567890
            }
          },
          {
            "name": "select",
            "in": "query",
            "required": false,
            "description": "カンマ区切りで複数指定できます。\n\n省略するとすべてのフィールドを取得します。\n\n指定しなかったフィールドはレスポンスに含まれません。`_id` を含むすべてのシステムプロパティが除外対象です。\n存在しないLUIDのみを指定した場合、空のオブジェクト`{}` が返ります。\n\nコンテンツ参照フィールド等の階層化されたデータにはドット記法でさらに細かく指定することができます。\n詳細は[取得対象のプロパティを指定](https://www.nilto.com/ja/help/usage/api-overview#83544c895bd6bee6924126f57d6c612133115d56)を参照ください。",
            "schema": {
              "type": "string",
              "example": "_id,description,reference_field._id"
            }
          },
          {
            "name": "depth",
            "in": "query",
            "required": false,
            "description": "参照するコンテンツのオブジェクトを取得する深度を指定します。",
            "schema": {
              "type": "integer",
              "minimum": 0,
              "maximum": 3,
              "default": 1,
              "example": 3
            }
          },
          {
            "name": "lang",
            "in": "query",
            "required": false,
            "description": "取得したいコンテンツの言語を指定します。\n省略するとメイン言語の内容を取得します。",
            "schema": {
              "type": "string",
              "example": "ja"
            }
          },
          {
            "name": "lang_fallback",
            "in": "query",
            "required": false,
            "description": "`lang`でサブ言語を指定している際に `lang_fallback=true` を指定すると、指定言語のデータが作成されていない場合はメイン言語の内容を代わりにレスポンスします。\n\nデフォルトは `false` で、指定言語が作成されていないコンテンツは404がレスポンスされます。",
            "schema": {
              "type": "string",
              "default": "false",
              "enum": [
                "false",
                "true"
              ],
              "example": "true"
            }
          },
          {
            "name": "{field_luid}[format]",
            "in": "query",
            "required": false,
            "description": "フレキシブルテキストのデータ形式を指定します。",
            "schema": {
              "type": "string",
              "default": "html",
              "enum": [
                "html",
                "text",
                "markdown",
                "portable_html"
              ],
              "example": "text"
            }
          },
          {
            "name": "include",
            "in": "query",
            "required": false,
            "description": "指定した値に応じてレスポンスプロパティを追加することができます。\n\n`_prev`を指定すると「前のコンテンツ情報」、`_next`を指定すると「後のコンテンツ情報」を追加します。\n\nコンテンツの「前後」は一覧取得用のクエリパラメータ（`order`キーや各種フィルター条件）を元に判定します。\n\n`_langs` を指定すると、コンテンツにどの言語データが作成されているかを取得できます。\n\n詳細は**レスポンスの拡張**をご参照ください。",
            "schema": {
              "type": "string",
              "enum": [
                "_prev",
                "_next",
                "_langs"
              ],
              "example": "_prev,_next"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "_id": {
                      "type": "integer",
                      "description": "コンテンツを一位に識別するための一意なID。"
                    },
                    "_model": {
                      "type": "string",
                      "description": "コンテンツが属するモデルのLUID。"
                    },
                    "_title": {
                      "type": "string",
                      "description": "コンテンツのタイトル。\n\nモデルに設定された「タイトル用フィールド」の値が自動的に反映されます。"
                    },
                    "_created_at": {
                      "type": "string",
                      "description": "コンテンツが作成された日時。\n\n日時は ISO 8601 形式のUTC（協定世界時）で表現されます。"
                    },
                    "_updated_at": {
                      "type": "string",
                      "description": "コンテンツが最後に更新された日時。\n\n日時は ISO 8601 形式のUTCで表現されます。"
                    },
                    "_published_at": {
                      "type": "string",
                      "description": "コンテンツがはじめて公開された日時。下書き状態の場合は null になることがあります。\n日時は ISO 8601 形式のUTCで表現されます。"
                    },
                    "_last_published_at": {
                      "type": "string",
                      "description": "コンテンツが最後に公開された日時。下書き状態の場合は null になることがあります。\n日時は ISO 8601 形式のUTCで表現されます。\n\n2025年6月25日以前に公開されたコンテンツは _published_at と同内容がレスポンスされます。"
                    },
                    "_status": {
                      "type": "string",
                      "description": "Enum: \"draft\" \"published\" \"published_draft\"\nコンテンツの公開状態を示します。"
                    },
                    "_space": {
                      "type": "string",
                      "description": "サブスペース機能が有効な場合に、コンテンツが所属するスペースのLUIDを示します。"
                    },
                    "{field_luid}": {
                      "type": "array",
                      "description": "ユーザーが定義したフィールド"
                    },
                    "{media_field_luid}": {
                      "type": "object",
                      "description": "メディア（画像など）を格納するフィールドの構造です。"
                    }
                  }
                },
                "example": {
                  "_id": "1234567890",
                  "_model": "news",
                  "_title": "Hello World",
                  "_created_at": "2023-01-23T04:50:00Z",
                  "_updated_at": "2023-01-23T04:50:00Z",
                  "_published_at": "2023-01-23T04:50:00Z",
                  "_last_published_at": "2023-01-23T04:50:00Z",
                  "_status": "published",
                  "_space": "_parent",
                  "flexibletext_field": "<div><h2>abcedf</h2><p>abcedf</p><ul><li>abcedf</li></ul></div>",
                  "singleline_field": "foobar",
                  "multiline_field": "foo\nbar",
                  "boolean_field": true,
                  "singleselect_field": "value1",
                  "datetime_field": "2023-01-23T04:50:00Z",
                  "media_field": {
                    "url": "https://cms-assets.nilto.com/spaces/1234567890/media/2345678901/_/abc.png",
                    "alt": "alternative text"
                  },
                  "repeat_field": [
                    {
                      "singleline_field": "foobar",
                      "boolean_field": true
                    },
                    {
                      "singleline_field": "foobarbaz",
                      "boolean_field": false
                    }
                  ],
                  "combination_field": [
                    {
                      "luid": "block_a",
                      "fields": {
                        "multiline_field": "foo\nbar",
                        "boolean_field": true
                      }
                    },
                    {
                      "luid": "block_b",
                      "fields": {
                        "datetime_field": "2023-01-23T04:50:00Z",
                        "repeat_field": [
                          {
                            "singleline_field": "foobar"
                          },
                          {
                            "singleline_field": "foobarbaz"
                          }
                        ]
                      }
                    },
                    {
                      "luid": "block_a",
                      "fields": {
                        "multiline_field": "foo\nbar\nbaz",
                        "boolean_field": false
                      }
                    }
                  ],
                  "reference_field": {
                    "_id": "2345678901",
                    "_title": "Hello World2",
                    "_created_at": "2023-01-23T04:50:00Z",
                    "_updated_at": "2023-01-23T04:50:00Z",
                    "_published_at": "2023-01-23T04:50:00Z",
                    "_status": "draft",
                    "reference_field": "3456789012"
                  },
                  "field_set1": {
                    "singleline_field": "foobar",
                    "boolean_field": true
                  },
                  "field_set2": {
                    "multiline_field": "foo\nbar",
                    "datetime_field": "2023-01-23T04:50:00Z"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "string",
                      "description": "Value: \"400\"\nHTTPステータスコード"
                    },
                    "code": {
                      "type": "string",
                      "description": "Value: \"BadRequest\"\nエラーを識別するためのコード"
                    }
                  }
                },
                "example": {
                  "status": "400",
                  "code": "BadRequest"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "string",
                      "description": "Value: \"401\"\nHTTPステータスコード"
                    },
                    "code": {
                      "type": "string",
                      "description": "Value: \"Unauthorized\"\nエラーを識別するためのコード"
                    }
                  }
                },
                "example": {
                  "status": "401",
                  "code": "Unauthorized"
                }
              }
            }
          },
          "402": {
            "description": "Payment Required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "string",
                      "description": "Value: \"402\"\nHTTPステータスコード"
                    },
                    "code": {
                      "type": "string",
                      "description": "Value: \"Payment Required\"\nエラーを識別するためのコード"
                    }
                  }
                },
                "example": {
                  "status": "402",
                  "code": "Payment Required"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "string",
                      "description": "Value: \"403\"\nHTTPステータスコード"
                    },
                    "code": {
                      "type": "string",
                      "description": "Value: \"Forbidden\"\nエラーを識別するためのコード"
                    }
                  }
                },
                "example": {
                  "status": "403",
                  "code": "Forbidden"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "string",
                      "description": "Value: \"404\"\nHTTPステータスコード"
                    },
                    "code": {
                      "type": "string",
                      "description": "Value: \"Not Found\"\nエラーを識別するためのコード"
                    }
                  }
                },
                "example": {
                  "status": "404",
                  "code": "Not Found"
                }
              }
            }
          },
          "429": {
            "description": "Too Many Requests",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "string",
                      "description": "Value: \"429\"\nHTTPステータスコード"
                    },
                    "code": {
                      "type": "string",
                      "description": "Value: \"Too Many Requests\"\nエラーを識別するためのコード"
                    },
                    "message": {
                      "type": "string",
                      "description": "次のリクエストが可能になるまでの残り秒数を含むメッセージ。 秒数そのものはretry-afterヘッダーで返されます。"
                    }
                  }
                },
                "example": {
                  "status": "429",
                  "code": "Too Many Requests",
                  "message": "Expected available in 58 seconds."
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "string",
                      "description": "Value: \"500\"\nHTTPステータスコード"
                    },
                    "code": {
                      "type": "string",
                      "description": "Value: \"Internal Server Error\"\nエラーを識別するためのコード"
                    }
                  }
                },
                "example": {
                  "status": "500",
                  "code": "Internal Server Error"
                }
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "shell",
            "label": "curl",
            "source": "curl -H 'X-NILTO-API-KEY:0000000000000000000000' \\\n'https://cms-api.nilto.com/v1/contents/1234567890?lang=ja'"
          }
        ],
        "x-code-samples": [
          {
            "lang": "shell",
            "label": "curl",
            "source": "curl -H 'X-NILTO-API-KEY:0000000000000000000000' \\\n'https://cms-api.nilto.com/v1/contents/1234567890?lang=ja'"
          }
        ]
      },
      "put": {
        "summary": "コンテンツを置き換える",
        "description": "指定IDのコンテンツをリクエスト内容で置き換えます。",
        "tags": [
          "Contents 書き込み(Write) API（ベータ版）"
        ],
        "operationId": "put-contents-content_id",
        "parameters": [
          {
            "name": "content_id",
            "in": "path",
            "required": true,
            "description": "置き換えるコンテンツのID",
            "schema": {
              "type": "integer",
              "example": 1234567890
            }
          },
          {
            "name": "model",
            "in": "query",
            "required": true,
            "description": "登録対象とするモデルのLUIDを指定します。",
            "schema": {
              "type": "string",
              "example": "blog,news"
            }
          },
          {
            "name": "published",
            "in": "query",
            "required": false,
            "description": "置き換えるコンテンツを公開状態で作成するかどうかを指定します。",
            "schema": {
              "type": "boolean",
              "default": false,
              "example": true
            }
          },
          {
            "name": "space",
            "in": "query",
            "required": false,
            "description": "置き換え対象コンテンツが存在しているスペースのLUIDを指定します。",
            "schema": {
              "type": "string",
              "default": "_parent",
              "example": "demo"
            }
          },
          {
            "name": "ft_format",
            "in": "query",
            "required": false,
            "description": "フレキシブルテキストフィールドにデータ登録したい場合、HTMLデータとして取り込むかマークダウンデータとして取り込むかを指定します。",
            "schema": {
              "type": "string",
              "default": "portable_html",
              "enum": [
                "portable_html markdown"
              ],
              "example": "markdown"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "integer",
                      "description": "コンテンツID"
                    }
                  }
                },
                "example": {
                  "id": 1234567890
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "string",
                      "description": "Value: \"400\"\nHTTPステータスコード"
                    },
                    "code": {
                      "type": "string",
                      "description": "Value: \"BadRequest\"\nエラーを識別するためのコード"
                    }
                  }
                },
                "example": {
                  "status": "400",
                  "code": "BadRequest"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "string",
                      "description": "Value: \"401\"\nHTTPステータスコード"
                    },
                    "code": {
                      "type": "string",
                      "description": "Value: \"Unauthorized\"\nエラーを識別するためのコード"
                    }
                  }
                },
                "example": {
                  "status": "401",
                  "code": "Unauthorized"
                }
              }
            }
          },
          "402": {
            "description": "Payment Required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "string",
                      "description": "Value: \"402\"\nHTTPステータスコード"
                    },
                    "code": {
                      "type": "string",
                      "description": "Value: \"Payment Required\"\nエラーを識別するためのコード"
                    }
                  }
                },
                "example": {
                  "status": "402",
                  "code": "Payment Required"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "string",
                      "description": "Value: \"403\"\nHTTPステータスコード"
                    },
                    "code": {
                      "type": "string",
                      "description": "Value: \"Forbidden\"\nエラーを識別するためのコード"
                    }
                  }
                },
                "example": {
                  "status": "403",
                  "code": "Forbidden"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "string",
                      "description": "Value: \"404\"\nHTTPステータスコード"
                    },
                    "code": {
                      "type": "string",
                      "description": "Value: \"Not Found\"\nエラーを識別するためのコード"
                    }
                  }
                },
                "example": {
                  "status": "404",
                  "code": "Not Found"
                }
              }
            }
          },
          "429": {
            "description": "Too Many Requests",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "string",
                      "description": "Value: \"429\"\nHTTPステータスコード"
                    },
                    "code": {
                      "type": "string",
                      "description": "Value: \"Too Many Requests\"\nエラーを識別するためのコード"
                    },
                    "message": {
                      "type": "string",
                      "description": "次のリクエストが可能になるまでの残り秒数を含むメッセージ。 秒数そのものはretry-afterヘッダーで返されます。"
                    }
                  }
                },
                "example": {
                  "status": "429",
                  "code": "Too Many Requests",
                  "message": "Expected available in 58 seconds."
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "string",
                      "description": "Value: \"500\"\nHTTPステータスコード"
                    },
                    "code": {
                      "type": "string",
                      "description": "Value: \"Internal Server Error\"\nエラーを識別するためのコード"
                    }
                  }
                },
                "example": {
                  "status": "500",
                  "code": "Internal Server Error"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "fields": {
                    "type": "object",
                    "description": "{フィールドLUID: 入力値}の形式のオブジェクト。\n言語キー未指定時はメイン言語として登録します。"
                  },
                  "fields[{lang_key}]": {
                    "type": "object",
                    "description": "{フィールドLUID: 入力値}の形式のオブジェクト。\n[] 内は利用中言語の言語キーを指定。\n\nfieldsを含め、一度に1つの言語キーしか指定できません。"
                  },
                  "meta": {
                    "type": "object",
                    "description": "{プロパティキー: 入力値}の形式のオブジェクト。\n\n現在以下のプロパティに対応しています。\n\n`_published_at` : コンテンツの公開日時\n\n`_last_published_at`: コンテンツの最終公開 日時"
                  }
                }
              },
              "example": {
                "fields": {
                  "flexibletext_field": "<h2>abcedf</h2><p>abcedf</p><ul><li>abcedf</li><li>abcedf</li>",
                  "singleline_field": "foobar",
                  "multiline_field": "foo\nbar",
                  "boolean_field": true,
                  "singleselect_field": "value1",
                  "datetime_field": "2023-01-23T04:50:00Z",
                  "media_field": 1234567890,
                  "repeat_field": [
                    {
                      "singleline_field": "foobar",
                      "boolean_field": true
                    },
                    {
                      "singleline_field": "foobarbaz",
                      "boolean_field": false
                    }
                  ],
                  "reference_field": 1234567890,
                  "field_set1": {
                    "singleline_field": "foobar",
                    "boolean_field": true
                  },
                  "field_set2": {
                    "multiline_field": "foo\nbar",
                    "datetime_field": "2023-01-23T04:50:00Z"
                  },
                  "combination_field": [
                    {
                      "luid": "field_set_a",
                      "fields": {
                        "multiline_field": "foo\nbar",
                        "boolean_field": true
                      }
                    },
                    {
                      "luid": "field_set_b",
                      "fields": {
                        "datetime_field": "2023-01-23T04:50:00Z",
                        "repeat_field": [
                          {
                            "singleline_field": "foobar"
                          },
                          {
                            "singleline_field": "foobarbaz"
                          }
                        ]
                      }
                    },
                    {
                      "luid": "field_set_a",
                      "fields": {
                        "multiline_field": "foo\nbar\nbaz",
                        "boolean_field": false
                      }
                    }
                  ]
                },
                "meta": {
                  "_published_at": "2023-01-23T04:50:00Z",
                  "_last_published_at": "2023-04-01T09:00:00Z"
                }
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "shell",
            "label": "curl",
            "source": "curl -X PUT \"https://cms-api.nilto.com/v1/contents/1234567890?model=news&published=false\" \\\n     -H \"X-NILTO-API-KEY: 0000000000000000000000\" \\\n     -H \"Content-Type: application/json\" \\\n     -d '{\n       \"fields\": {\n         \"flexibletext_field\": \"<h2>更新後のタイトル</h2><p>内容を書き換えました。</p>\",\n         \"singleline_field\": \"更新されたテキスト\",\n         \"boolean_field\": false,\n         \"datetime_field\": \"2023-03-07T20:00:00Z\"\n       }\n     }'"
          }
        ],
        "x-code-samples": [
          {
            "lang": "shell",
            "label": "curl",
            "source": "curl -X PUT \"https://cms-api.nilto.com/v1/contents/1234567890?model=news&published=false\" \\\n     -H \"X-NILTO-API-KEY: 0000000000000000000000\" \\\n     -H \"Content-Type: application/json\" \\\n     -d '{\n       \"fields\": {\n         \"flexibletext_field\": \"<h2>更新後のタイトル</h2><p>内容を書き換えました。</p>\",\n         \"singleline_field\": \"更新されたテキスト\",\n         \"boolean_field\": false,\n         \"datetime_field\": \"2023-03-07T20:00:00Z\"\n       }\n     }'"
          }
        ]
      },
      "patch": {
        "summary": "コンテンツを更新する",
        "description": "指定IDのコンテンツの指定フィールドを更新します。",
        "tags": [
          "Contents 書き込み(Write) API（ベータ版）"
        ],
        "operationId": "patch-contents-content_id",
        "parameters": [
          {
            "name": "content_id",
            "in": "path",
            "required": true,
            "description": "置き換えるコンテンツのID",
            "schema": {
              "type": "integer",
              "example": 1234567890
            }
          },
          {
            "name": "model",
            "in": "query",
            "required": true,
            "description": "登録対象とするモデルのLUIDを指定します。",
            "schema": {
              "type": "string",
              "example": "blog,news"
            }
          },
          {
            "name": "published",
            "in": "query",
            "required": false,
            "description": "更新対象の公開ステータスを指定します。\n下書きデータを更新する場合 `false` 、公開データを更新する場合は `true` を指定します。",
            "schema": {
              "type": "boolean",
              "default": false,
              "example": true
            }
          },
          {
            "name": "space",
            "in": "query",
            "required": false,
            "description": "更新対象コンテンツが存在しているスペースのLUIDを指定します。",
            "schema": {
              "type": "string",
              "default": "_parent",
              "example": "demo"
            }
          },
          {
            "name": "ft_format",
            "in": "query",
            "required": false,
            "description": "フレキシブルテキストフィールドにデータ登録したい場合、HTMLデータとして取り込むかマークダウンデータとして取り込むかを指定します。",
            "schema": {
              "type": "string",
              "default": "portable_html",
              "enum": [
                "portable_html",
                "markdown"
              ],
              "example": "markdown"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "integer",
                      "description": "コンテンツID"
                    }
                  }
                },
                "example": {
                  "id": 1234567890
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "string",
                      "description": "Value: \"400\"\nHTTPステータスコード"
                    },
                    "code": {
                      "type": "string",
                      "description": "Value: \"BadRequest\"\nエラーを識別するためのコード"
                    }
                  }
                },
                "example": {
                  "status": "400",
                  "code": "BadRequest"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "string",
                      "description": "Value: \"401\"\nHTTPステータスコード"
                    },
                    "code": {
                      "type": "string",
                      "description": "Value: \"Unauthorized\"\nエラーを識別するためのコード"
                    }
                  }
                },
                "example": {
                  "status": "401",
                  "code": "Unauthorized"
                }
              }
            }
          },
          "402": {
            "description": "Payment Required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "string",
                      "description": "Value: \"402\"\nHTTPステータスコード"
                    },
                    "code": {
                      "type": "string",
                      "description": "Value: \"Payment Required\"\nエラーを識別するためのコード"
                    }
                  }
                },
                "example": {
                  "status": "402",
                  "code": "Payment Required"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "string",
                      "description": "Value: \"403\"\nHTTPステータスコード"
                    },
                    "code": {
                      "type": "string",
                      "description": "Value: \"Forbidden\"\nエラーを識別するためのコード"
                    }
                  }
                },
                "example": {
                  "status": "403",
                  "code": "Forbidden"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "string",
                      "description": "Value: \"404\"\nHTTPステータスコード"
                    },
                    "code": {
                      "type": "string",
                      "description": "Value: \"Not Found\"\nエラーを識別するためのコード"
                    }
                  }
                },
                "example": {
                  "status": "404",
                  "code": "Not Found"
                }
              }
            }
          },
          "429": {
            "description": "Too Many Requests",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "string",
                      "description": "Value: \"429\"\nHTTPステータスコード"
                    },
                    "code": {
                      "type": "string",
                      "description": "Value: \"Too Many Requests\"\nエラーを識別するためのコード"
                    },
                    "message": {
                      "type": "string",
                      "description": "次のリクエストが可能になるまでの残り秒数を含むメッセージ。 秒数そのものはretry-afterヘッダーで返されます。"
                    }
                  }
                },
                "example": {
                  "status": "429",
                  "code": "Too Many Requests",
                  "message": "Expected available in 58 seconds."
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "string",
                      "description": "Value: \"500\"\nHTTPステータスコード"
                    },
                    "code": {
                      "type": "string",
                      "description": "Value: \"Internal Server Error\"\nエラーを識別するためのコード"
                    }
                  }
                },
                "example": {
                  "status": "500",
                  "code": "Internal Server Error"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "fields": {
                    "type": "object",
                    "description": "{フィールドLUID: 入力値}の形式のオブジェクト。\n言語キー未指定時はメイン言語として登録します。"
                  },
                  "fields[{lang_key}]": {
                    "type": "object",
                    "description": "{フィールドLUID: 入力値}の形式のオブジェクト。\n[] 内は利用中言語の言語キーを指定。\n\nfieldsを含め、一度に1つの言語キーしか指定できません。"
                  },
                  "meta": {
                    "type": "object",
                    "description": "{プロパティキー: 入力値}の形式のオブジェクト。\n\n現在以下のプロパティに対応しています。\n\n`_published_at` : コンテンツの公開日時\n\n`_last_published_at`: コンテンツの最終公開 日時"
                  }
                }
              },
              "example": {
                "fields": {
                  "singleline_field": "foobar",
                  "datetime_field": "2023-01-23T04:50:00Z"
                },
                "meta": {
                  "_published_at": "2023-01-23T04:50:00Z",
                  "_last_published_at": "2023-04-01T09:00:00Z"
                }
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "shell",
            "label": "curl",
            "source": "curl -X PATCH \"https://cms-api.nilto.com/v1/contents/1234567890?model=news&published=false\" \\\n     -H \"X-NILTO-API-KEY: 0000000000000000000000\" \\\n     -H \"Content-Type: application/json\" \\\n     -d '{\n       \"fields\": {\n         \"singleline_field\": \"このフィールドだけを更新します\",\n         \"datetime_field\": \"2023-03-07T19:12:46Z\"\n       }\n     }'"
          }
        ],
        "x-code-samples": [
          {
            "lang": "shell",
            "label": "curl",
            "source": "curl -X PATCH \"https://cms-api.nilto.com/v1/contents/1234567890?model=news&published=false\" \\\n     -H \"X-NILTO-API-KEY: 0000000000000000000000\" \\\n     -H \"Content-Type: application/json\" \\\n     -d '{\n       \"fields\": {\n         \"singleline_field\": \"このフィールドだけを更新します\",\n         \"datetime_field\": \"2023-03-07T19:12:46Z\"\n       }\n     }'"
          }
        ]
      },
      "delete": {
        "summary": "コンテンツを削除する",
        "description": "指定IDのコンテンツを削除します。",
        "tags": [
          "Contents 書き込み(Write) API（ベータ版）"
        ],
        "operationId": "delete-contents-content_id",
        "parameters": [
          {
            "name": "content_id",
            "in": "path",
            "required": true,
            "description": "削除するコンテンツのID",
            "schema": {
              "type": "integer",
              "example": 1234567890
            }
          },
          {
            "name": "space",
            "in": "query",
            "required": false,
            "description": "削除対象コンテンツが存在しているスペースのLUIDを指定します。",
            "schema": {
              "type": "string",
              "default": "_parent",
              "example": "demo"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "integer",
                      "description": "コンテンツID"
                    }
                  }
                },
                "example": {
                  "id": 1234567890
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "string",
                      "description": "Value: \"400\"\nHTTPステータスコード"
                    },
                    "code": {
                      "type": "string",
                      "description": "Value: \"BadRequest\"\nエラーを識別するためのコード"
                    }
                  }
                },
                "example": {
                  "status": "400",
                  "code": "BadRequest"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "string",
                      "description": "Value: \"401\"\nHTTPステータスコード"
                    },
                    "code": {
                      "type": "string",
                      "description": "Value: \"Unauthorized\"\nエラーを識別するためのコード"
                    }
                  }
                },
                "example": {
                  "status": "401",
                  "code": "Unauthorized"
                }
              }
            }
          },
          "402": {
            "description": "Payment Required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "string",
                      "description": "Value: \"402\"\nHTTPステータスコード"
                    },
                    "code": {
                      "type": "string",
                      "description": "Value: \"Payment Required\"\nエラーを識別するためのコード"
                    }
                  }
                },
                "example": {
                  "status": "402",
                  "code": "Payment Required"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "string",
                      "description": "Value: \"403\"\nHTTPステータスコード"
                    },
                    "code": {
                      "type": "string",
                      "description": "Value: \"Forbidden\"\nエラーを識別するためのコード"
                    }
                  }
                },
                "example": {
                  "status": "403",
                  "code": "Forbidden"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "string",
                      "description": "Value: \"404\"\nHTTPステータスコード"
                    },
                    "code": {
                      "type": "string",
                      "description": "Value: \"Not Found\"\nエラーを識別するためのコード"
                    }
                  }
                },
                "example": {
                  "status": "404",
                  "code": "Not Found"
                }
              }
            }
          },
          "429": {
            "description": "Too Many Requests",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "string",
                      "description": "Value: \"429\"\nHTTPステータスコード"
                    },
                    "code": {
                      "type": "string",
                      "description": "Value: \"Too Many Requests\"\nエラーを識別するためのコード"
                    },
                    "message": {
                      "type": "string",
                      "description": "次のリクエストが可能になるまでの残り秒数を含むメッセージ。 秒数そのものはretry-afterヘッダーで返されます。"
                    }
                  }
                },
                "example": {
                  "status": "429",
                  "code": "Too Many Requests",
                  "message": "Expected available in 58 seconds."
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "string",
                      "description": "Value: \"500\"\nHTTPステータスコード"
                    },
                    "code": {
                      "type": "string",
                      "description": "Value: \"Internal Server Error\"\nエラーを識別するためのコード"
                    }
                  }
                },
                "example": {
                  "status": "500",
                  "code": "Internal Server Error"
                }
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "shell",
            "label": "curl",
            "source": "curl -X DELETE \"https://cms-api.nilto.com/v1/contents/1234567890?space=_parent\" \\\n     -H \"X-NILTO-API-KEY: 0000000000000000000000\""
          }
        ],
        "x-code-samples": [
          {
            "lang": "shell",
            "label": "curl",
            "source": "curl -X DELETE \"https://cms-api.nilto.com/v1/contents/1234567890?space=_parent\" \\\n     -H \"X-NILTO-API-KEY: 0000000000000000000000\""
          }
        ]
      }
    },
    "/contents/{content_id}/drafts": {
      "post": {
        "summary": "コンテンツに下書きを追加する",
        "description": "公開中のコンテンツに対して「下書き」データを追加します。\nサブ言語のデータ未作成の場合は、言語を指定することで翻訳を開始することができます。\n\nすでに公開データが存在する場合は公開データの内容を引き継いだ下書きデータを作成します。\nはじめて言語データを作成する際は、メイン言語の内容を引き継いだ下書きデータを作成します。",
        "tags": [
          "Contents 書き込み(Write) API（ベータ版）"
        ],
        "operationId": "post-contents-content_id-drafts",
        "parameters": [
          {
            "name": "lang",
            "in": "query",
            "required": false,
            "description": "コンテンツのどの言語データに対して下書き追加するかを指定します。\n省略するとメイン言語に対して下書き追加します。",
            "schema": {
              "type": "string",
              "example": "ja"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "integer",
                      "description": "コンテンツID"
                    }
                  }
                },
                "example": {
                  "id": 1234567890
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "string",
                      "description": "Value: \"400\"\nHTTPステータスコード"
                    },
                    "code": {
                      "type": "string",
                      "description": "Value: \"BadRequest\"\nエラーを識別するためのコード"
                    }
                  }
                },
                "example": {
                  "status": "400",
                  "code": "BadRequest"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "string",
                      "description": "Value: \"401\"\nHTTPステータスコード"
                    },
                    "code": {
                      "type": "string",
                      "description": "Value: \"Unauthorized\"\nエラーを識別するためのコード"
                    }
                  }
                },
                "example": {
                  "status": "401",
                  "code": "Unauthorized"
                }
              }
            }
          },
          "402": {
            "description": "Payment Required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "string",
                      "description": "Value: \"402\"\nHTTPステータスコード"
                    },
                    "code": {
                      "type": "string",
                      "description": "Value: \"Payment Required\"\nエラーを識別するためのコード"
                    }
                  }
                },
                "example": {
                  "status": "402",
                  "code": "Payment Required"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "string",
                      "description": "Value: \"403\"\nHTTPステータスコード"
                    },
                    "code": {
                      "type": "string",
                      "description": "Value: \"Forbidden\"\nエラーを識別するためのコード"
                    }
                  }
                },
                "example": {
                  "status": "403",
                  "code": "Forbidden"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "string",
                      "description": "Value: \"404\"\nHTTPステータスコード"
                    },
                    "code": {
                      "type": "string",
                      "description": "Value: \"Not Found\"\nエラーを識別するためのコード"
                    }
                  }
                },
                "example": {
                  "status": "404",
                  "code": "Not Found"
                }
              }
            }
          },
          "429": {
            "description": "Too Many Requests",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "string",
                      "description": "Value: \"429\"\nHTTPステータスコード"
                    },
                    "code": {
                      "type": "string",
                      "description": "Value: \"Too Many Requests\"\nエラーを識別するためのコード"
                    },
                    "message": {
                      "type": "string",
                      "description": "次のリクエストが可能になるまでの残り秒数を含むメッセージ。 秒数そのものはretry-afterヘッダーで返されます。"
                    }
                  }
                },
                "example": {
                  "status": "429",
                  "code": "Too Many Requests",
                  "message": "Expected available in 58 seconds."
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "string",
                      "description": "Value: \"500\"\nHTTPステータスコード"
                    },
                    "code": {
                      "type": "string",
                      "description": "Value: \"Internal Server Error\"\nエラーを識別するためのコード"
                    }
                  }
                },
                "example": {
                  "status": "500",
                  "code": "Internal Server Error"
                }
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "shell",
            "label": "curl",
            "source": "curl -X POST \"https://cms-api.nilto.com/v1/contents/1234567890/drafts?lang=en\" \\\n     -H \"X-NILTO-API-KEY: 0000000000000000000000\" \\\n     -H \"Content-Type: application/json\""
          }
        ],
        "x-code-samples": [
          {
            "lang": "shell",
            "label": "curl",
            "source": "curl -X POST \"https://cms-api.nilto.com/v1/contents/1234567890/drafts?lang=en\" \\\n     -H \"X-NILTO-API-KEY: 0000000000000000000000\" \\\n     -H \"Content-Type: application/json\""
          }
        ]
      }
    },
    "/contents/{content_id}/duplicate": {
      "post": {
        "summary": "コンテンツを複製する",
        "description": "指定IDのコンテンツを複製します。\n\n複製されたコンテンツは下書きデータとして作成されます。\nまた、複製対象コンテンツが公開中と下書きの2つのステータスを持つ場合、下書きデータを優先して複製します。",
        "tags": [
          "Contents 書き込み(Write) API（ベータ版）"
        ],
        "operationId": "post-contents-content_id-duplicate",
        "parameters": [
          {
            "name": "content_id",
            "in": "path",
            "required": true,
            "description": "複製するコンテンツのID",
            "schema": {
              "type": "integer",
              "example": 1234567890
            }
          },
          {
            "name": "space",
            "in": "query",
            "required": false,
            "description": "複製対象コンテンツが存在しているスペースのLUIDを指定します。",
            "schema": {
              "type": "string",
              "default": "_parent",
              "example": "demo"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "integer",
                      "description": "コンテンツID"
                    }
                  }
                },
                "example": {
                  "id": 1234567890
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "string",
                      "description": "Value: \"400\"\nHTTPステータスコード"
                    },
                    "code": {
                      "type": "string",
                      "description": "Value: \"BadRequest\"\nエラーを識別するためのコード"
                    }
                  }
                },
                "example": {
                  "status": "400",
                  "code": "BadRequest"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "string",
                      "description": "Value: \"401\"\nHTTPステータスコード"
                    },
                    "code": {
                      "type": "string",
                      "description": "Value: \"Unauthorized\"\nエラーを識別するためのコード"
                    }
                  }
                },
                "example": {
                  "status": "401",
                  "code": "Unauthorized"
                }
              }
            }
          },
          "402": {
            "description": "Payment Required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "string",
                      "description": "Value: \"402\"\nHTTPステータスコード"
                    },
                    "code": {
                      "type": "string",
                      "description": "Value: \"Payment Required\"\nエラーを識別するためのコード"
                    }
                  }
                },
                "example": {
                  "status": "402",
                  "code": "Payment Required"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "string",
                      "description": "Value: \"403\"\nHTTPステータスコード"
                    },
                    "code": {
                      "type": "string",
                      "description": "Value: \"Forbidden\"\nエラーを識別するためのコード"
                    }
                  }
                },
                "example": {
                  "status": "403",
                  "code": "Forbidden"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "string",
                      "description": "Value: \"404\"\nHTTPステータスコード"
                    },
                    "code": {
                      "type": "string",
                      "description": "Value: \"Not Found\"\nエラーを識別するためのコード"
                    }
                  }
                },
                "example": {
                  "status": "404",
                  "code": "Not Found"
                }
              }
            }
          },
          "429": {
            "description": "Too Many Requests",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "string",
                      "description": "Value: \"429\"\nHTTPステータスコード"
                    },
                    "code": {
                      "type": "string",
                      "description": "Value: \"Too Many Requests\"\nエラーを識別するためのコード"
                    },
                    "message": {
                      "type": "string",
                      "description": "次のリクエストが可能になるまでの残り秒数を含むメッセージ。 秒数そのものはretry-afterヘッダーで返されます。"
                    }
                  }
                },
                "example": {
                  "status": "429",
                  "code": "Too Many Requests",
                  "message": "Expected available in 58 seconds."
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "string",
                      "description": "Value: \"500\"\nHTTPステータスコード"
                    },
                    "code": {
                      "type": "string",
                      "description": "Value: \"Internal Server Error\"\nエラーを識別するためのコード"
                    }
                  }
                },
                "example": {
                  "status": "500",
                  "code": "Internal Server Error"
                }
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "shell",
            "label": "curl",
            "source": "curl -X POST \"https://cms-api.nilto.com/v1/contents/1234567890/duplicate?space=_parent\" \\\n     -H \"X-NILTO-API-KEY: 0000000000000000000000\""
          }
        ],
        "x-code-samples": [
          {
            "lang": "shell",
            "label": "curl",
            "source": "curl -X POST \"https://cms-api.nilto.com/v1/contents/1234567890/duplicate?space=_parent\" \\\n     -H \"X-NILTO-API-KEY: 0000000000000000000000\""
          }
        ]
      }
    },
    "/media": {
      "post": {
        "summary": "メディアをアップロードする",
        "description": "メディアファイルを1件アップロードします。",
        "tags": [
          "Media 書き込み(Write) API（ベータ版）"
        ],
        "operationId": "post-media",
        "parameters": [
          {
            "name": "alt",
            "in": "query",
            "required": false,
            "description": "alt属性の入力値を指定します。",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "integer",
                      "description": "コンテンツID"
                    },
                    "url": {
                      "type": "string",
                      "description": "メディアのURL"
                    }
                  }
                },
                "example": {
                  "id": 1234567890,
                  "url": "https://cms-assets.nilto.com/spaces/1234567890/media/2345678901/_/abc.png"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "string",
                      "description": "Value: \"400\"\nHTTPステータスコード"
                    },
                    "code": {
                      "type": "string",
                      "description": "Value: \"BadRequest\"\nエラーを識別するためのコード"
                    }
                  }
                },
                "example": {
                  "status": "400",
                  "code": "BadRequest"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "string",
                      "description": "Value: \"401\"\nHTTPステータスコード"
                    },
                    "code": {
                      "type": "string",
                      "description": "Value: \"Unauthorized\"\nエラーを識別するためのコード"
                    }
                  }
                },
                "example": {
                  "status": "401",
                  "code": "Unauthorized"
                }
              }
            }
          },
          "402": {
            "description": "Payment Required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "string",
                      "description": "Value: \"402\"\nHTTPステータスコード"
                    },
                    "code": {
                      "type": "string",
                      "description": "Value: \"Payment Required\"\nエラーを識別するためのコード"
                    }
                  }
                },
                "example": {
                  "status": "402",
                  "code": "Payment Required"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "string",
                      "description": "Value: \"403\"\nHTTPステータスコード"
                    },
                    "code": {
                      "type": "string",
                      "description": "Value: \"Forbidden\"\nエラーを識別するためのコード"
                    }
                  }
                },
                "example": {
                  "status": "403",
                  "code": "Forbidden"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "string",
                      "description": "Value: \"404\"\nHTTPステータスコード"
                    },
                    "code": {
                      "type": "string",
                      "description": "Value: \"Not Found\"\nエラーを識別するためのコード"
                    }
                  }
                },
                "example": {
                  "status": "404",
                  "code": "Not Found"
                }
              }
            }
          },
          "429": {
            "description": "Too Many Requests",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "string",
                      "description": "Value: \"429\"\nHTTPステータスコード"
                    },
                    "code": {
                      "type": "string",
                      "description": "Value: \"Too Many Requests\"\nエラーを識別するためのコード"
                    },
                    "message": {
                      "type": "string",
                      "description": "次のリクエストが可能になるまでの残り秒数を含むメッセージ。 秒数そのものはretry-afterヘッダーで返されます。"
                    }
                  }
                },
                "example": {
                  "status": "429",
                  "code": "Too Many Requests",
                  "message": "Expected available in 58 seconds."
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "string",
                      "description": "Value: \"500\"\nHTTPステータスコード"
                    },
                    "code": {
                      "type": "string",
                      "description": "Value: \"Internal Server Error\"\nエラーを識別するためのコード"
                    }
                  }
                },
                "example": {
                  "status": "500",
                  "code": "Internal Server Error"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "type": "object",
                "properties": {
                  "file": {
                    "type": "string",
                    "description": "<binary>\nアップロードするメディアファイル。\n最大サイズ: 32MB",
                    "format": "binary"
                  }
                },
                "required": [
                  "file"
                ]
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "shell",
            "label": "curl",
            "source": "curl -X POST \"https://cms-api.nilto.com/v1/media?alt=画像の説明文\" \\\n     -H \"X-NILTO-API-KEY: 0000000000000000000000\" \\\n     -F \"file=@/path/to/your/image.jpg\""
          }
        ],
        "x-code-samples": [
          {
            "lang": "shell",
            "label": "curl",
            "source": "curl -X POST \"https://cms-api.nilto.com/v1/media?alt=画像の説明文\" \\\n     -H \"X-NILTO-API-KEY: 0000000000000000000000\" \\\n     -F \"file=@/path/to/your/image.jpg\""
          }
        ]
      }
    },
    "/media/{media_id}": {
      "delete": {
        "summary": "メディアを削除する",
        "description": "指定IDのメディアを削除します。",
        "tags": [
          "Media 書き込み(Write) API（ベータ版）"
        ],
        "operationId": "delete-media-media_id",
        "parameters": [
          {
            "name": "media_id",
            "in": "path",
            "required": true,
            "description": "削除するメディアのID",
            "schema": {
              "type": "integer",
              "example": 1234567890
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "integer",
                      "description": "コンテンツID"
                    }
                  }
                },
                "example": {
                  "id": 1234567890
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "string",
                      "description": "Value: \"400\"\nHTTPステータスコード"
                    },
                    "code": {
                      "type": "string",
                      "description": "Value: \"BadRequest\"\nエラーを識別するためのコード"
                    }
                  }
                },
                "example": {
                  "status": "400",
                  "code": "BadRequest"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "string",
                      "description": "Value: \"401\"\nHTTPステータスコード"
                    },
                    "code": {
                      "type": "string",
                      "description": "Value: \"Unauthorized\"\nエラーを識別するためのコード"
                    }
                  }
                },
                "example": {
                  "status": "401",
                  "code": "Unauthorized"
                }
              }
            }
          },
          "402": {
            "description": "Payment Required",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "string",
                      "description": "Value: \"402\"\nHTTPステータスコード"
                    },
                    "code": {
                      "type": "string",
                      "description": "Value: \"Payment Required\"\nエラーを識別するためのコード"
                    }
                  }
                },
                "example": {
                  "status": "402",
                  "code": "Payment Required"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "string",
                      "description": "Value: \"403\"\nHTTPステータスコード"
                    },
                    "code": {
                      "type": "string",
                      "description": "Value: \"Forbidden\"\nエラーを識別するためのコード"
                    }
                  }
                },
                "example": {
                  "status": "403",
                  "code": "Forbidden"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "string",
                      "description": "Value: \"404\"\nHTTPステータスコード"
                    },
                    "code": {
                      "type": "string",
                      "description": "Value: \"Not Found\"\nエラーを識別するためのコード"
                    }
                  }
                },
                "example": {
                  "status": "404",
                  "code": "Not Found"
                }
              }
            }
          },
          "429": {
            "description": "Too Many Requests",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "string",
                      "description": "Value: \"429\"\nHTTPステータスコード"
                    },
                    "code": {
                      "type": "string",
                      "description": "Value: \"Too Many Requests\"\nエラーを識別するためのコード"
                    },
                    "message": {
                      "type": "string",
                      "description": "次のリクエストが可能になるまでの残り秒数を含むメッセージ。 秒数そのものはretry-afterヘッダーで返されます。"
                    }
                  }
                },
                "example": {
                  "status": "429",
                  "code": "Too Many Requests",
                  "message": "Expected available in 58 seconds."
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "string",
                      "description": "Value: \"500\"\nHTTPステータスコード"
                    },
                    "code": {
                      "type": "string",
                      "description": "Value: \"Internal Server Error\"\nエラーを識別するためのコード"
                    }
                  }
                },
                "example": {
                  "status": "500",
                  "code": "Internal Server Error"
                }
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "shell",
            "label": "curl",
            "source": "curl -X DELETE \"https://cms-api.nilto.com/v1/media/1234567890\" \\\n     -H \"X-NILTO-API-KEY: 0000000000000000000000\""
          }
        ],
        "x-code-samples": [
          {
            "lang": "shell",
            "label": "curl",
            "source": "curl -X DELETE \"https://cms-api.nilto.com/v1/media/1234567890\" \\\n     -H \"X-NILTO-API-KEY: 0000000000000000000000\""
          }
        ]
      }
    }
  },
  "components": {
    "securitySchemes": {
      "X-NILTO-API-KEY": {
        "type": "apiKey",
        "in": "header",
        "name": "X-NILTO-API-KEY"
      }
    }
  }
}