ヘルプセンター

コンテンツを取得する(GET /contents/{id})

基本情報

指定したIDのコンテンツを取得します。

/v1/contents/1234567890 のように、content_idには数値を指定してください。

※ ここにモデルLUID(news 等)を指定することはできません。モデル単位の取得は、一覧取得エンドポイントにて model パラメータを使用してください。

GET/v1/contents/{content_id}

https://cms-api.nilto.com/v1/contents/{content_id}

リクエスト

リクエストパラメータ

X-NILTO-API-KEY

X-NILTO-API-KEY

NILTO APIキー。

スペース設定のAPIキー画面で取得することができます。

content_id必須

integer
Example: 1234567890
取得するコンテンツのID。ランダムに採番された数値。

select

string
Example:select=_id,description,reference_field._id
データを取得するフィールドを指定します。
カンマ区切りで複数指定できます。


省略するとすべてのフィールドを取得します。

指定しなかったフィールドはレスポンスに含まれません。_id を含むすべてのシステムプロパティが除外対象です。
存在しないLUIDのみを指定した場合、空のオブジェクト{} が返ります。

コンテンツ参照フィールド等の階層化されたデータにはドット記法でさらに細かく指定することができます。
詳細は取得対象のプロパティを指定を参照ください。

depth

integer [ 0 .. 3 ]
Default: 1
Example: depth=3
参照するコンテンツのオブジェクトを取得する深度を指定します。

lang

string
Example: lang=ja
取得したいコンテンツの言語を指定します。
省略するとメイン言語の内容を取得します。

{field_luid}[format]

string
Default: "html"
Enum: "html" "text" "markdown" "portable_html"
Example: {field_luid}[format]=text
フレキシブルテキストのデータ形式を指定します。

include

string
Enum: "_prev" "_next"
Example: include=_prev,_next
指定した値に応じてレスポンスプロパティを追加することができます。


_prevを指定すると「前のコンテンツ情報」、_nextを指定すると「後のコンテンツ情報」を追加します。

コンテンツの「前後」は一覧取得用のクエリパラメータ(orderキーや各種フィルター条件)を元に判定します。

詳細はレスポンスの拡張をご参照ください。

リクエスト例

curl
curl -H 'X-NILTO-API-KEY:0000000000000000000000' \
'https://cms-api.nilto.com/v1/contents/1234567890?lang=ja'

レスポンス

概要

NILTO DeveloperAPI が返すレスポンスデータは、システムで自動設定されるシステムプロパティとユーザーが独自に定義したフィールドプロパティにより構成されます。

{
    "_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",
    "boolean_field": true
}

システムプロパティ

APIレスポンスに共通で含まれる、システム管理のプロパティです。
これらのプロパティは _ (アンダースコア) から始まります。

プロパティ名

説明

_id

コンテンツを一位に識別するための一意なID。

_model

コンテンツが属するモデルのLUID。

_title

コンテンツのタイトル。モデルに設定された「タイトル用フィールド」の値が自動的に反映されます。

_created_at

コンテンツが作成された日時。日時は ISO 8601 形式のUTC(協定世界時)で表現されます。

_updated_at

コンテンツが最後に更新された日時。日時は ISO 8601 形式のUTCで表現されます。

_published_at

コンテンツがはじめて公開された日時。下書き状態の場合は null になることがあります。日時は ISO 8601 形式のUTCで表現されます。
一度公開されたことがあるコンテンツは、その後いかなる操作をしても _published_at の値が変わることはありません。

_last_published_at

コンテンツが最後に公開された日時。下書き状態の場合は null になることがあります。日時は ISO 8601 形式のUTCで表現されます。
2025年6月25日以前に最後に公開されたコンテンツは _published_at と同内容がレスポンスされます。

_status

コンテンツの公開状態を示します。
draft: 下書きデータのみ
published: 公開データのみ
published_draft: 公開中かつ下書きデータもある

_space

サブスペース機能が有効な場合に、コンテンツが所属するスペースのLUIDを示します。

_prev

include パラメータを指定してレスポンスを拡張した場合に表示します。
ID指定時にのみ有効で、指定コンテンツの「前」に該当するコンテンツ情報を取得します。


詳細はレスポンスの拡張を参照してください。

_next

includeパラメータを指定してレスポンスを拡張した場合に表示します。
ID指定時にのみ有効で、指定コンテンツの「後」に該当するコンテンツ情報を取得します。

詳細はレスポンスの拡張を参照してください。

フィールドプロパティ

ユーザーが独自に定義したフィールドのデータです。
キーには各フィールドのLUID (Locally Unique Identifier) が、値にはユーザーが管理画面で入力した内容がレスポンスされます。

フィールド種類ごとのレスポンスデータを例示します。

フレキシブルテキスト

flexibletext_field[format]=htmlを指定した場合(デフォルト動作)

"flexibletext_field": "<h2>abcdef</h2><p>abcdef</p><ul><li>abcdef</li></ul>"

flexibletext_field[format]=textを指定した場合

"flexibletext_field": "abcdef abcdef abcdef"

flexibletext_field[format]=markdownを指定した場合

"flexibletext_field": "## abcdef\n\nabcdef\n\n* abcdef"

flexibletext_field[format]=portable_htmlを指定した場合

"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>"

※ポータブルHTML(portable_html)
書き込みAPIでのフレキシブルテキストフィールドへのデータ登録に適した独自HTMLフォーマットです。
アドオン要素が適用された状態でフレキシブルテキストフィールドにデータ登録することができます。

1行テキスト
"singleline_field": "foobar"
複数行テキスト
"multiline_field": "foobar\r\nfoobar"
ブーリアン
"boolean_field": true
単一選択
"singleselect_field": "value"
複数選択
"multiselect_field": [
    "value1",
    "value2",
    "value3"
]
日時
"datetime_field": "2023-01-23T04:50:00Z"

日時は ISO 8601 形式のUTC(協定世界時)で表現されます。

メディア
"media_field": {
    "url": "https://cms-assets.nilto.com/spaces/1234567890/media/2345678901/_/abc.png",
    "alt": "alternative text"
}

NILTO のメディアは Fastly Image Optimizer に対応しています。
URLの末尾にクエリパラメータを付与することで、画像のリサイズやフォーマット変換が可能です。

代表的なパラメータ:

  • ?width=800 : 幅を指定
  • ?height=600 : 高さを指定
  • ?format=webp : WebPに変換
  • ?fit=bounds : アスペクト比を維持して収める

詳細は Fastory IO 仕様 を参照してください。

コンテンツ参照
"reference_field": {
    "_id": 2345678901,
    "_model": "referenced",
    "_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": "published",
    "singleline_field": "foobar"
}
繰り返し

繰り返しは、フィールドの集合であるオブジェクトの配列で表現されます。

"repeat_field": [
    {
        "singleline_field": "foo",
        "boolean_field": true
    },
    {
        "singleline_field": "foobar",
        "boolean_field": false
    },
    {
        "singleline_field": "foobarbaz",
        "boolean_field": true
    }
]
組み合わせ

組み合わせは、フィールドセットのデータであるオブジェクトの配列で表現されます。 フィールドセット内のluidは指定したLUIDです。fieldsはフィールドセット内フィールドです。

"combination_field": [
    {
        "luid": "field_set_a",
        "fields": {
            "singleline_field": "foo",
            "boolean_field": true
        }
    },
    {
        "luid": "field_set_b",
        "fields": {
            "datetime_field": "2023-01-23T04:50:00Z",
            "singleselect_field": "value"
        }
    },
    {
        "luid": "field_set_a",
        "fields": {
            "singleline_field": "foobar",
            "boolean_field": false
        }
    }
]
フィールドセット(モデルに直接組み込んだ場合)
"field_set": {
    "singleline": "foobar",
    "boolean": true
}

レスポンスの拡張

include パラメータを指定することで、レスポンスを拡張することができます。

_prev

ID指定でのコンテンツ取得時に有効。
コンテンツを一覧取得した際の、指定コンテンツの「前」に該当するコンテンツ情報を_prev プロパティキーで取得。

コンテンツの「前後」は一覧取得用のクエリパラメータ( order キーや各種フィルター条件)を元に判定します。

同一条件でヒットするコンテンツが1,000件を超える場合、_prevデータを正しく取得できない可能性があります。
フィルター条件を調整してください。

リクエスト例

/v1/contents/1234567890/?include=_prev

レスポンス例

{
    "_id": 1234567890,
    "_model": "news",
    "_title": "Current Content",
    "_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",
    "_prev": {
        "_id": 1111111111,
        "_model": "news",
        "_title": "Previous Content",
        "_created_at": "2023-02-01T04:50:00Z",
        "_updated_at": "2023-02-01T04:50:00Z",
        "_published_at": "2023-02-01T04:50:00Z",
        "_last_published_at": "2023-02-01T04:50:00Z",
        "_status": "published",
        "_space": "_parent",
        "flexibletext_field": "<div><h2>Previous Content H2</h2><p>abcedf</p></div>",
        "singleline_field": "previous",
        "boolean_field": true
    },
    "flexibletext_field": "<div><h2>Current Content H2</h2><p>abcedf</p></div>",
    "singleline_field": "foobar",
    "boolean_field": true
}
_next

ID指定でのコンテンツ取得時に有効。
コンテンツを一覧取得した際の、指定コンテンツの「後」に該当するコンテンツ情報を_next プロパティキーで取得。

コンテンツの「前後」は一覧取得用のクエリパラメータ( order キーや各種フィルター条件)を元に判定します。

同一条件でヒットするコンテンツが2,000件を超える場合、_nextデータを正しく取得できない可能性があります。
フィルター条件を調整してください。

リクエスト例

/v1/contents/1234567890/?include=_next

レスポンス例

{
    "_id": 1234567890,
    "_model": "news",
    "_title": "Current Content",
    "_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",
    "_next": {
        "_id": 2222222222,
        "_model": "news",
        "_title": "Next Content",
        "_created_at": "2023-01-01T04:50:00Z",
        "_updated_at": "2023-01-01T04:50:00Z",
        "_published_at": "2023-01-01T04:50:00Z",
        "_last_published_at": "2023-01-01T04:50:00Z",
        "_status": "published",
        "_space": "_parent",
        "flexibletext_field": "<div><h2>Next Content H2</h2><p>abcedf</p></div>",
        "singleline_field": "next",
        "boolean_field": true
    },
    "flexibletext_field": "<div><h2>Current Content H2</h2><p>abcedf</p></div>",
    "singleline_field": "foobar",
    "boolean_field": true
}
使用例
前後コンテンツ情報の取得

例1: blogsモデルをorder_fieldでソートした際の、前後のコンテンツ情報を取得

/v1/contents/1234567890/?model=blogs&order=order_field&include=_prev,_next

例2:さらに、selectキーを細かく指定して、前後のコンテンツ情報のうち一部プロパティのみ取得

/v1/contents/1234567890/?model=blogs&order=order_field&include=_prev,_next&select=_prev._id,_prev.singleline_field,_next._id,_next.singleline_field

レスポンスイメージ

{
    "_id": 1234567890,
    "_model": "news",
    "_title": "Current Content",
    "_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",
    "_prev": {
        "_id": 1111111111,
        "singleline_field": "previous"
    },
    "_next": {
        "_id": 2222222222,
        "singleline_field": "next"
    },
    "flexibletext_field": "<div><h2>Current Content H2</h2><p>abcedf</p></div>",
    "singleline_field": "foobar",
    "boolean_field": true
}

レスポンスボディ

200 OK

_id

integer
コンテンツを一位に識別するための一意なID。

_model

string
コンテンツが属するモデルのLUID。

_title

string
コンテンツのタイトル。

モデルに設定された「タイトル用フィールド」の値が自動的に反映されます。

_created_at

string

コンテンツが作成された日時。

日時は ISO 8601 形式のUTC(協定世界時)で表現されます。

_updated_at

string
コンテンツが最後に更新された日時。

日時は ISO 8601 形式のUTCで表現されます。

_published_at

string
コンテンツがはじめて公開された日時。下書き状態の場合は null になることがあります。
日時は ISO 8601 形式のUTCで表現されます。

_last_published_at

string
コンテンツが最後に公開された日時。下書き状態の場合は null になることがあります。
日時は ISO 8601 形式のUTCで表現されます。

2025年6月25日以前に公開されたコンテンツは _published_at と同内容がレスポンスされます。

_status

string
Enum: "draft" "published" "published_draft"
コンテンツの公開状態を示します。

_space

string
サブスペース機能が有効な場合に、コンテンツが所属するスペースのLUIDを示します。

{field_luid}

array or string or boolean or object
ユーザーが定義したフィールド

{media_field_luid}

object
メディア(画像など)を格納するフィールドの構造です。

400 Bad Request

status

string
Value: "400"
HTTPステータスコード

code

string
Value: "BadRequest"
エラーを識別するためのコード

401 Unauthorized

status

string
Value: "401"
HTTPステータスコード

code

string
Value: "Unauthorized"
エラーを識別するためのコード

402 Payment Required

status

string
Value: "402"
HTTPステータスコード

code

string
Value: "Payment Required"
エラーを識別するためのコード

403 Forbidden

status

string
Value: "403"
HTTPステータスコード

code

string
Value: "Forbidden"
エラーを識別するためのコード

404 Not Found

status

string
Value: "404"
HTTPステータスコード

code

string
Value: "Not Found"
エラーを識別するためのコード

429 Too Many Requests

status

string
Value: "429"
HTTPステータスコード

code

string
Value: "Too Many Requests"
エラーを識別するためのコード

message

string
次のリクエストが可能になるまでの残り秒数を含むメッセージ。 秒数そのものはretry-afterヘッダーで返されます。

500 Internal Server Error

status

string
Value: "500"
HTTPステータスコード

code

string
Value: "Internal Server Error"
エラーを識別するためのコード

レスポンス例

200
{
"_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
{
"status": "400",
"code": "BadRequest"
}
401
{
"status": "401",
"code": "Unauthorized"
}
402
{
"status": "402",
"code": "Payment Required"
}
403
{
"status": "403",
"code": "Forbidden"
}
404
{
"status": "404",
"code": "Not Found"
}
429
{
"status": "429",
"code": "Too Many Requests",
"message": "Expected available in 58 seconds."
}
500
{
"status": "500",
"code": "Internal Server Error"
}

お困りごとは解決しましたか?

解決しない場合は、サポートへお問い合わせください。

サポートに問い合わせる