microCMS

GET /api/v1/{endpoint}

最終更新日: 2020/05/21

リスト形式のAPIにおいてはコンテンツ一覧が取得でき、オブジェクト形式のAPIにおいては単一コンテンツの取得ができます。

オブジェクト形式のAPIの場合はGET /api/v1/{endpoint}/{content_id}と同様の結果が得られるのでそちらをご参照ください。
ここではリスト形式のAPIの場合におけるリクエストヘッダー、クエリパラメータについて解説します。

リクエストヘッダー

X-API-KEY

GET APIリクエストの際に必要な認証キーです。リクエストヘッダーに含めて送信してください。

Information

API-KEY / WRITE-API-KEYはサービス内の全API共通となります。
そのため、クライアントサイドから直接APIを呼び出すことでユーザーがキーを把握できてしまう場合、エンドポイントさえ分かれば他のAPIも呼び出せてしまうことにご注意ください。
対処法としては、サーバサイドからAPIを呼び出す、またはJamstack構成にするなどしてキーを漏洩しないことが挙げられます。

クエリ

URLの語尾にGETパラメータ形式で指定できます。

draftKey

下書き状態のコンテンツを取得するためのパラメータです。 コンテンツの編集画面で確認できるdraftKeyをパラメータとして追加してください。

limit

取得件数を指定します。
デフォルト値は10です。
上限値はありませんが、レスポンスサイズ(レスポンスヘッダのcontent-lengthの値)が約10MBを超えるとエラーが発生します。
そのため、大量のコンテンツの全件取得をしたい場合は下記のoffsetパラメータと組み合わせてページング処理を行ってください。

offset

何件目から取得するかを指定します。
デフォルト値は0です。

fields

コンテンツの中で取得する要素を指定します。
fields=title,main_image,updatedAt,author.nameのようにカンマ区切りで値を記載してください。author.organization.nameのようにドットでつないでキーを指定することで参照コンテンツの要素も指定できます。fieldsが指定されていない場合は全ての要素を取得します。

filters

公開されているコンテンツの中から取得するコンテンツを絞り込みます。
ただし下書き状態のコンテンツやリッチテキストについては絞り込みの対象外です。

利用できる条件式は以下の通りです。

equals

指定に一致したコンテンツを取得します。
(例:gender[equals]women

not_equals

指定に一致しないコンテンツを取得します。
(例:gender[not_equals]women

less_than

指定より小さいコンテンツを取得します。
(例:createdAt[less_than]2019-11

greater_than

指定より大きいコンテンツを取得します。
(例:createdAt[greater_than]2019-10

contains

指定した値を含むコンテンツを取得します。
(例:title[contains]おすすめ

exists

指定した値が存在するコンテンツを取得します。
(例:nextLink[exists]

not_exists

指定した値が存在しないコンテンツを取得します。
(例:nextLink[not_exists]

begins_with

指定した値から始まるコンテンツを取得します。
(例:publishedAt[begins_with]2019-11

なおコンテンツ参照については単数の場合は[equals]のみが利用可能です。
(例:category[equals]uN28Folyn

複数の場合は[contains]のみが利用可能です。(例:tags[contains]oJIZmiban

{VALUE}部分に対象のコンテンツのidを入力してください。

また、式は[and](AND条件) もしくは[or](OR条件)で 区切ることで複数指定ができます。
複数指定した場合は基本的には左から右に順に評価されますが、[and][or]が混在した場合については[and]が優先されます。
条件式を括弧()で囲って一部の式を優先させることもできますので、適切な値が取れるよう優先順位をコントロールしてください。

例:カテゴリーがエンジニアリングかつ、2019/11/14以降またはタイトルが存在している記事を抽出

$curl --glob "https://{your-service}.microcms.io/api/v1/blog?filters=category[equals]engineering[and](date[begins_with]2019-11-14[or]title[exists])" -H "X-API-KEY: {api-key}"


depth

参照コンテンツを取得する階層の深さを指定します。
デフォルト値は1、最大値は3です。

例えば、ブログコンテンツに関連記事を表示するために、自分自身を循環参照しているとします。

例)depth = 1の場合

{
  "id": "id1",
  "title": "title1",
  "body": "body1",
  "related_blog": {
    "id": "id2",
    "title": "title2",
    "body": "body2",
    "related_blog": {
      "id": "id3"
    }
  }
}


例)depth = 2の場合

{
  "id": "id1",
  "title": "title1",
  "body": "body1",
  "related_blog": {
    "id": "id2",
    "title": "title2",
    "body": "body2",
    "related_blog": {
      "id": "id3",
      "title": "title3",
      "body": "body3",
      "related_blog": {
        "id": "id4"
      }
    }
  }
}