Download OpenAPI specification:Download
Developer APIを利用して、NILTOで作成したコンテンツデータを取得することができます。
認証のためにAPIキーをリクエストヘッダーに含めて送信してください。 スペース設定のAPIキー画面で取得することができます。
key | value |
---|---|
X-NILTO-API-KEY | APIキー |
APIキーには、公開コンテンツのみ取得できるAPIキーと、下書きも含めて取得できるAPIキーがあります。用途に合わせて使い分けてください。
モデルがnews
であるコンテンツ一覧を50件目から最大10件を取得
/contents?model=news&offset=50&limit=10
上記のレスポンス例:
{
"total": 345,
"offset": 50,
"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",
"_status": "published",
"field1": "value1",
"field2": "value2"
},
︙
]
}
コンテンツ参照フィールドcategory
で、IDが1234567890
のコンテンツを参照しているコンテンツ一覧を取得
/contents?category[eq]=1234567890
日時はISO 8601拡張形式で指定します。
更新日時が日本時間で2023年1月23日4時よりも新しいコンテンツの配列を取得
/contents?_updated_at[gt]=2023-01-23T04:00:00+09:00
上記と同じ日時をUTC時間(2023年1月22日19時)で指定する場合
/contents?_updated_at[gt]=2023-01-22T19:00:00Z
特定のフィールドに指定したキーワードを含むコンテンツ一覧を取得する場合、contains
フィルターを使用します。
フレキシブルテキストフィールドbody
にkeyword
を含むコンテンツの配列を取得
/contents?body[contains]=keyword
複数のキーワードをAND検索
/contents?body[contains]=keyword1,keyword2
ブロック内のフィールドは、ブロックLUIDとフィールドLUIDを.
で連結して指定できます。
例: ブロックblock
内のフィールドtext
の内容がabc
であるコンテンツ一覧を取得
/contents?block.text[eq]=abc
参照しているコンテンツのフィールドは、フィールドLUIDを.
で連結して指定できます。
例: コンテンツ参照フィールドcategory
で参照しているコンテンツのフィールドkey
の内容がrelease
であるコンテンツ一覧を取得
/contents?category.key[eq]=release
コンテンツIDが1234567890
のコンテンツを取得
/contents/1234567890
上記のレスポンス例:
{
"_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",
"_status": "published",
"field1": "value1",
"field2": "value2"
}
depthパラメータを使用することで、参照するコンテンツのオブジェクトを取得する再帰深度を変更することができます。指定より深い参照は、オブジェクトではなくコンテンツIDになります。
コンテンツ参照フィールドのオブジェクトを取得しない場合
/contents/1234567890?depth=0
上記のレスポンス例:
{
"_id": 1234567890,
"content_reference": 2345678901
}
コンテンツ参照フィールドのオブジェクトを1階層まで取得する場合(デフォルト動作)
/contents/1234567890?depth=1
上記のレスポンス例:
{
"_id": 1234567890,
"content_reference": {
/* 参照1階層目 */
"_id": 2345678901,
"content_reference": 3456789012
}
}
コンテンツ参照フィールドのオブジェクトを3階層まで取得する場合
/contents/1234567890?depth=3
上記のレスポンス例:
{
"_id": 1234567890,
"content_reference": {
/* 参照1階層目 */
"_id": 2345678901,
"content_reference": {
/* 参照2階層目 */
"_id": 3456789012,
"content_reference": {
/* 参照3階層目 */
"_id": 4567890123,
"content_reference": 5678901234
}
}
}
}
APIのリクエストパラメーターで、特定のオブジェクトを指定するとき、IDもしくはLUIDを使用します。
IDはシステムが定義する、グローバルでユニークなIDです。ユーザーが変更することはできません。
LUID (Locally Unique Identifier) はユーザーが定義するIDです。モデル/ブロックのLUIDはスペース内でユニークです。フィールドLUIDはモデル/ブロック内でユニークです。
オブジェクトごとの指定方法は以下になります。
オブジェクト | 指定方法 | 変更 | 確認方法 |
---|---|---|---|
モデル | LUID | 可 | モデル詳細ページ > 基本情報ダイアログ |
ブロック | LUID | 可 | ブロック詳細ページ > 基本情報ダイアログ |
フィールド | LUID | 可 | モデル(ブロック)詳細ページ > フィールド詳細ペイン |
コンテンツ | ID | 不可 | コンテンツ詳細ペイン > API出力確認ダイアログ |
アーカイブされたコンテンツは、Developer APIで取得することはできません。 アーカイブされたコンテンツやメディアを参照しているフィールドは、値が空になります。
flexibletext_field[format]=htmlを指定した場合(デフォルト動作)
"flexibletext_field": "<div><h2>abcedf</h2><p>abcedf</p><ul><li>abcedf</li></ul></div>"
flexibletext_field[format]=textを指定した場合
"flexibletext_field": "abcedf\r\nabcedf\r\nabcedf"
"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"
"media_field": {
"url": "https://cms-assets.nilto.com/spaces/1234567890/media/2345678901/_/abc.png",
"alt": "alternative text"
}
"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": "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": "block_a",
"fields": {
"singleline_field": "foo",
"boolean_field": true
}
},
{
"luid": "block_b",
"fields": {
"datetime_field": "2023-01-23T04:50:00Z",
"singleselect_field": "value"
}
},
{
"luid": "block_a",
"fields": {
"singleline_field": "foobar",
"boolean_field": false
}
}
]
"block": {
"singleline": "foobar",
"boolean": true
}
コンテンツ一覧取得APIのフィルターについて、指定できる値は以下になります。
フィールド種類 | [eq] | [in] | [lt] | [lte] | [gt] | [gte] | [contains] | [has] |
---|---|---|---|---|---|---|---|---|
フレキシブルテキスト | N/A | N/A | N/A | N/A | N/A | N/A | 文字列 | N/A |
1行テキスト | 文字列 | 文字列 | N/A | N/A | N/A | N/A | 文字列 | N/A |
複数行テキスト | 文字列 | 文字列 | N/A | N/A | N/A | N/A | 文字列 | N/A |
ブーリアン | true/false | N/A | N/A | N/A | N/A | N/A | N/A | N/A |
単一選択 | 文字列 | 文字列 | N/A | N/A | N/A | N/A | N/A | N/A |
複数選択 | N/A | N/A | N/A | N/A | N/A | N/A | N/A | 文字列 |
日時 | N/A | N/A | 日時 | 日時 | 日時 | 日時 | N/A | N/A |
メディア | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A |
コンテンツ参照 | コンテンツID | コンテンツID | N/A | N/A | N/A | N/A | N/A | N/A |
繰り返し | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A |
組み合わせ | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A |
ブロック | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A |
サブスペース機能をご利用のスペースの場合、レスポンスに_space
キーが含まれます。
値はスペースのLUIDで、親スペースの場合は_parent
が固定で設定されています。
/contents?model=news&select=_id,_model,_title,_status,field1
上記のレスポンス例:
{
"total": 345,
"offset": 0,
"limit": 100,
"data": [
{
"_id": 1234567890,
"_model": "news",
"_title": "Hello World",
"_space": "_parent",
"field1": "value_1",
},
{
"_id": 1234567891,
"_model": "news",
"_title": "Sample Demo News",
"_space": "demo",
"field1": "value_2",
},
︙
]
}
スペースLUIDがdemo
のスペース内コンテンツのみ取得したい場合、space
キーを指定します。
/contents?model=news&select=_id,_model,_title,_status,field1&space=demo
上記のレスポンス例:
{
"total": 123,
"offset": 0,
"limit": 100,
"data": [
{
"_id": 1234567891,
"_model": "news",
"_title": "Sample Demo News",
"_space": "demo",
"field1": "value_2",
},
︙
]
}
Developer APIの品質を担保するため、リクエストは1分あたり1000回までに制限されます。この制限はAPIキーごとに適用されます。
この制限を超えたリクエストは429エラーになります。このとき、次のリクエストが可能になるまでの秒数がretry-after
ヘッダーで返されます。
Developer APIに関する既知の不具合は以下のとおりです。
指定した条件に合うコンテンツの配列を取得します。
参照しているコンテンツのフィールドに対して条件設定する場合、.
に続けて参照先コンテンツのフィールドを指定することができます。
content_reference.child_field[eq]=foobar
select | string Example: select=_id,description データを取得するフィールドを指定します。カンマ区切りで複数指定できます。省略するとすべてのフィールドを取得します。 |
depth | integer [ 0 .. 3 ] Default: 1 Example: depth=3 参照するコンテンツのオブジェクトを取得する深度を指定します。 |
order | string Example: order=pickup,-_title 並べ替える基準とするフィールドのLUIDを指定します。カンマ区切りで複数指定できます。降順にするにはLUIDの先頭に |
limit | integer [ 1 .. 100 ] Default: 100 Example: limit=10 取得する件数の上限を指定します。 |
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は |
contains | string Example: contains=keyword1,keyword2 いずれかのテキストフィールドに指定した値が含まれるコンテンツを取得します。カンマ区切りでAND検索になります。 langパラメーターを指定している場合、その言語の内容と比較します。 |
{field_luid}[format] | string Default: "html" Enum: "html" "text" 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 -H 'X-NILTO-API-KEY:0000000000000000000000' \ 'https://cms-api.nilto.com/v1/contents?model=news&field1[eq]=true'
{- "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",
- "_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": {
- "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"
}, - "block1": {
- "singleline_field": "foobar",
- "boolean_field": true
}, - "block2": {
- "multiline_field": "foo\nbar",
- "datetime_field": "2023-01-23T04:50:00Z"
}
}
]
}
指定したIDのコンテンツを取得します。
content_id required | string Example: 1234567890 取得するコンテンツのID |
select | string Example: select=_id,description データを取得するフィールドを指定します。カンマ区切りで複数指定できます。省略するとすべてのフィールドを取得します。 |
depth | integer [ 0 .. 3 ] Default: 1 Example: depth=3 参照するコンテンツのオブジェクトを取得する深度を指定します。 |
lang | string Example: lang=ja 取得したいコンテンツの言語を指定します。省略するとメイン言語の内容を取得します。 |
{field_luid}[format] | string Default: "html" Enum: "html" "text" Example: {field_luid}[format]=text フレキシブルテキストのデータ形式を指定します。 |
curl -H 'X-NILTO-API-KEY:0000000000000000000000' \ 'https://cms-api.nilto.com/v1/contents/1234567890?lang=ja'
{- "_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",
- "_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": {
- "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"
}, - "block1": {
- "singleline_field": "foobar",
- "boolean_field": true
}, - "block2": {
- "multiline_field": "foo\nbar",
- "datetime_field": "2023-01-23T04:50:00Z"
}
}
この機能はベータ版での提供となっており、動作が不安定な場合があります。
また、今後互換性を保たない変更が加わる可能性があります。
あらかじめご了承いただいた上でのご利用をお願いいたします。
コンテンツを1件新規作成します。
※現在、フレキシブルテキストには未対応です。
model required | string Example: model=blog,news 登録対象とするモデルのLUIDを指定します。 |
fields | object (contentRequest) {フィールドLUID: 入力値}の形式のオブジェクト。 言語キー未指定時はメイン言語として登録します。 |
fields[{lang_key}] | any {フィールドLUID: 入力値}の形式のオブジェクト。 [] 内は利用中言語の言語キーを指定。 同時に複数の言語キーを指定できます。 |
{- "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,
- "block1": {
- "singleline_field": "foobar",
- "boolean_field": true
}, - "block2": {
- "multiline_field": "foo\nbar",
- "datetime_field": "2023-01-23T04:50:00Z"
}, - "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
}
}
]
}, - "fields[en]": {
- "singleline_field": "foobar"
}, - "fields[zh-CN]": {
- "singleline_field": "foobar"
}
}
{- "id": 1234567890
}
指定IDのコンテンツをリクエスト内容で置き換えます。
※現在、フレキシブルテキストには未対応です。
content_id required | string Example: 1234567890 取得するコンテンツのID |
model required | string Example: model=blog,news 登録対象とするモデルのLUIDを指定します。 |
fields | object (contentRequest) {フィールドLUID: 入力値}の形式のオブジェクト。 言語キー未指定時はメイン言語として登録します。 |
fields[{lang_key}] | any {フィールドLUID: 入力値}の形式のオブジェクト。 [] 内は利用中言語の言語キーを指定。 同時に複数の言語キーを指定できます。 |
{- "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,
- "block1": {
- "singleline_field": "foobar",
- "boolean_field": true
}, - "block2": {
- "multiline_field": "foo\nbar",
- "datetime_field": "2023-01-23T04:50:00Z"
}, - "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
}
}
]
}, - "fields[en]": {
- "singleline_field": "foobar"
}, - "fields[zh-CN]": {
- "singleline_field": "foobar"
}
}
{- "id": 1234567890
}
指定IDのコンテンツの指定フィールドを更新します。
※現在、フレキシブルテキストには未対応です。
content_id required | string Example: 1234567890 取得するコンテンツのID |
model required | string Example: model=blog,news 登録対象とするモデルのLUIDを指定します。 |
fields | object (contentRequest) {フィールドLUID: 入力値}の形式のオブジェクト。 言語キー未指定時はメイン言語として登録します。 |
fields[{lang_key}] | any {フィールドLUID: 入力値}の形式のオブジェクト。 [] 内は利用中言語の言語キーを指定。 同時に複数の言語キーを指定できます。 |
{- "fields": {
- "singleline_field": "foobar",
- "datetime_field": "2023-01-23T04:50:00Z"
}, - "fields[en]": {
- "singleline_field": "foobar"
}, - "fields[zh-CN]": {
- "singleline_field": "foobar"
}
}
{- "id": 1234567890
}
この機能はベータ版での提供となっており、動作が不安定な場合があります。
また、今後互換性を保たない変更が加わる可能性があります。
あらかじめご了承いただいた上でのご利用をお願いいたします。
メディアファイルを1件アップロードします。
alt | string alt属性の入力値を指定します。 |
file | string <binary> |
curl -X POST -H 'X-NILTO-API-KEY:0000000000000000000000:' \ -F 'file=@abc.jpg' \ 'https://cms-api.nilto.com/v1/media?alt=abcdef&alt[kr]=xyz'
{- "id": 1234567890,
}