ヘルプセンター

コンテンツ一覧を取得する(GET /contents)

基本情報

指定した条件に合うコンテンツを配列形式で一覧取得します。

デフォルトでは全モデルのコンテンツを混合して取得します。特定のモデルに絞り込みたい場合は、 model パラメータにモデルのLUIDを指定してください。
※ パスパラメータにモデル名( /contents/news など)を指定することはできません。

GET/v1/contents

https://cms-api.nilto.com/v1/contents

リクエスト

概要

演算子を用いて、コンテンツを特定の条件で絞り込むことができます。


フィールド種類ごとのフィルター

ユーザーが独自に定義したフィールドに対して、フィールドの種類によって利用できる演算子が異なります。

フィールド種類

[eq]

[in]

[lt]

[lte]

[gt]

[gte]

[contains]

[has]

フレキシブルテキスト

-

-

-

-

-

-

文字列

-

1行テキスト

文字列

文字列

-

-

-

-

文字列

-

複数行テキスト

文字列

文字列

-

-

-

-

文字列

-

ブーリアン

true/false

-

-

-

-

-

-

-

単一選択

文字列

文字列

-

-

-

-

-

-

複数選択

-

-

-

-

-

-

-

文字列

日時

-

-

日時

日時

日時

日時

-

-

メディア

-

-

-

-

-

-

-

-

コンテンツ参照 ※

コンテンツID

コンテンツID

-

-

-

-

-

-

繰り返し ※

-

-

-

-

-

-

-

-

組み合わせ

-

-

-

-

-

-

-

-

フィールドセット ※

-

-

-

-

-

-

-

-

※ 下記の「高度なフィルター指定」も参照ください

高度なフィルター指定

コンテンツ参照フィールドに対する条件設定

参照しているコンテンツのフィールドに対して条件設定する場合、 . に続けて参照先コンテンツのフィールドを指定することができます。

例1: 参照しているコンテンツ内の1行テキストフィールドに対して完全一致条件を指定

/v1/contents/?content_reference.singleline_field[eq]=foobar

例2: 参照しているコンテンツ内の日時テキストフィールドに対して条件指定

/v1/contents/?content_reference.datetime_field[gt]=2023-01-23T04:00:00+09:00
フィールドセットに対する条件設定

フィールドセット内部のフィールドに対して条件設定する場合、 . に続けてフィールドを指定することができます。

例1: フィールドセット内の1行テキストフィールドに対して完全一致条件を指定

/v1/contents/?field_set.singleline_field[eq]=foobar

例2: フィールドセット内の日時テキストフィールドに対して条件指定

/v1/contents/?field_set.datetime_field[gt]=2023-01-23T04:00:00+09:00
繰り返しフィールドに対する条件設定

繰り返しフィールドに対して、繰り返し内で条件に合致するフィールドを1件以上含んでいるか否かを条件指定し、絞り込むことができます。
条件設定する場合、 . に続けてフィールドを指定します。
繰り返しフィールドに対する条件設定は [eq] フィルターのみ対応しています。

例1: 繰り返しフィールド内の1行テキストフィールドに対して完全一致条件を指定

/v1/contents/?repeat.singleline_field[eq]=foobar

例2: 繰り返しフィールド内のコンテンツ参照フィールドに対してコンテンツIDを指定

/v1/contents/?repeat.content_reference[eq]=1234567890

※ 参照コンテンツ内のフィールドを条件指定することはできません

リクエストパラメータ

X-NILTO-API-KEY

X-NILTO-API-KEY

NILTO APIキー。

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

select

string
Example:select=_id,description,reference_field._id

データを取得するフィールドを指定します。
カンマ区切りで複数指定できます。


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

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

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

depth

integer [ 0 .. 3 ]
Default: 1
Example: depth=3

参照するコンテンツのオブジェクトを取得する深度を指定します。
depth=0 の場合、コンテンツ参照フィールドはオブジェクトではなく、常に数値形式のコンテンツIDが返ります。

[注意]
depth の設定は select 指定よりも優先されます。
例えば depth=0 かつ select=ref_field._id と指定した場合、select の指定は無視され、ID(数値)のみがレスポンスされます。

order

string

Example:order=pickup,-_title

並べ替える基準とするフィールドのLUIDを指定します。カンマ区切りで複数指定できます。
降順にするにはLUIDの先頭に-をつけます。

省略した場合、デフォルトで作成日(_created_at)の降順でソートされます。

limit

integer [ 1 .. 100 ]
Default: 100
Example: limit=10

取得する件数の上限を指定します(最大100件)。
全件取得を行う場合は、レスポンスに含まれる total の値を確認し、offset を用いて繰り返しリクエストを行ってください。

offset

integer >= 0
Default: 0
Example: offset=10

何件目から取得するかを指定します。

model

string

Example:model=blog,news

取得対象とするモデルのLUIDを指定します。カンマ区切りで複数指定できます。
省略するとすべてのモデルのコンテンツを取得対象とします。

lang

string
Example: lang=ja

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

space

string

Example:space=_parent

サブスペース機能をご利用中にのみ有効なキーです。
取得対象とするスペースLUIDを指定します。

親スペースのLUIDは_parentで固定です。

contains

string
Example: contains=keyword1,keyword2

すべてのテキストフィールド(1行テキスト/複数行テキスト/フレキシブルテキスト)を横断的に検索し、指定した値が含まれるコンテンツを取得します。
カンマ区切りでAND検索になります。

langパラメーターを指定している場合、その言語の内容と比較します。

{field_luid}[format]

string

Default:"html"

Enum: "html" "text" "markdown" "portable_html"

Example:{field_luid}[format]=text

フレキシブルテキストのデータ形式を指定します。
各形式についてはフィールドプロパティを参照してください。

{field_luid}[eq]

string
Example: {field_luid}[eq]=value

フィールドの内容が指定した値と一致するコンテンツのみ取得します。


langパラメーターを指定している場合、その言語の内容と比較します。

{field_luid}[in]

string
Example: {field_luid}[in]=value1,value2,value3

フィールドの値が指定した値のいずれかに一致するコンテンツのみ取得します。
カンマ区切りで複数指定できます。


langパラメーターを指定している場合、その言語の内容と比較します。

{field_luid}[lt]

string

Example:{field_luid}[lt]=2023-01-23T04:50:00Z

フィールドの内容が指定した値より小さいコンテンツのみ取得します。


langパラメーターを指定している場合、その言語の内容と比較します。

{field_luid}[lte]

string
Example: {field_luid}[lte]=2023-01-23T04:50:00Z

フィールドの内容が指定した値以下のコンテンツのみ取得します。


langパラメーターを指定している場合、その言語の内容と比較します。

{field_luid}[gt]

string
Example: {field_luid}[gt]=2023-01-23T04:50:00Z

フィールドの内容が指定した値より大きいコンテンツのみ取得します。


langパラメーターを指定している場合、その言語の内容と比較します。

{field_luid}[gte]

string

Example:{field_luid}[gte]=2023-01-23T04:50:00Z

フィールドの内容が指定した値以上のコンテンツのみ取得します。


langパラメーターを指定している場合、その言語の内容と比較します。

{field_luid}[contains]

string

Example:{field_luid}[contains]=keyword1,keyword2

指定したフィールドのみを対象に、値が含まれるコンテンツを取得します。カンマ区切りでAND検索になります。

langパラメーターを指定している場合、その言語の内容と比較します。

{field_luid}[has]

string
Example: {field_luid}[has]=value

複数選択フィールドに対し、指定した値が含まれるコンテンツのみ取得します。
指定する値は「表示名」ではなく「値」を使用します。

langパラメーターを指定している場合、その言語の内容と比較します。

リクエスト例

curl
curl -H 'X-NILTO-API-KEY:0000000000000000000000' \
'https://cms-api.nilto.com/v1/contents?model=news&boolean_field[eq]=true'

レスポンス

概要

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

{
    "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",
        "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を示します。

フィールドプロパティ

ユーザーが独自に定義したフィールドのデータです。
キーには各フィールドの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
}

レスポンスボディ

200 OK

total

integer
条件に合致した件数

offset

integer
何件目から取得したか

limit

integer
取得件数の上限

data

Array of objects (getContentResponse)
取得されたコンテンツオブジェクトの配列。
NILTOの一覧取得APIでは、実際のコンテンツデータはこの data プロパティの中に格納されています。

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

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

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

サポートに問い合わせる