このページでは、CMS のデータを パブリックAPI で取得できる状態にし、最初のリクエストを成功させるまでを扱います。
事前準備:アイテムを公開する
Section titled “事前準備:アイテムを公開する”パブリックAPI でデータを取得するには、Re:Earth CMS の管理画面で以下の 2 つの設定が必要です。
- アイテムを公開状態にします
- パブリックAPI ページの 読み取り タブでモデルを有効にします
1. アイテムを公開状態にする
Section titled “1. アイテムを公開状態にする”Re:Earth CMS の管理画面で、公開したいアイテムのステータスを 公開 に変更します。
2. パブリックAPI を有効にする
Section titled “2. パブリックAPI を有効にする”パブリックAPI でモデルのデータを取得できるようにするには、パブリックAPI ページの 読み取り タブでそのモデルを有効にする必要があります。
-
プロジェクトの パブリックAPI を開きます
-
読み取り タブを選択します
-
対象モデルの「有効」トグルをオンにします
-
変更を保存 ボタンをクリックします

同じ パブリックAPI ページの下部に API Key セクションがあり、次の「APIキーを設定する」はここから行います。
3. APIキーを設定する(非公開プロジェクトのみ・任意)
Section titled “3. APIキーを設定する(非公開プロジェクトのみ・任意)”プロジェクトの公開範囲が非公開の場合は、APIキーを発行することでアクセスを制御できます。公開プロジェクトでは APIキーの設定は不要です。
設定手順:
-
プロジェクトの パブリックAPI を開きます
-
API Key セクションの +新しいキー ボタンをクリックします
-
名前や説明を入力し、対象モデルの 権限 を設定して 変更を保存 ボタンをクリックします

-
API Key セクションに、作成した APIキーが追加されます。コピーして外部アプリケーションとの連携に使用します

発行した APIキーは、リクエストの Authorization ヘッダーに付与します。
curl 'https://api.cms.reearth.io/api/p/<workspace>/<project>/<model>' \ -H 'Authorization: Bearer <your_api_key>'アイテム一覧を取得する(GET)
Section titled “アイテム一覧を取得する(GET)”公開設定が完了したら、以下の URL でアイテム一覧を取得できます。公開データであれば APIキーなしで利用可能です。<workspace_id_or_alias> などの山括弧の部分は、実際の値に置き換えてください。
GET https://api.cms.reearth.io/api/p/<workspace_id_or_alias>/<project_id_or_alias>/<model_id_or_key>curl --location --request GET \ 'https://api.cms.reearth.io/api/p/<workspace_id_or_alias>/<project_id_or_alias>/<model_id_or_key>'$WORKSPACE_ID = "<workspace_id_or_alias>"$PROJECT_ID = "<project_id_or_alias>"$MODEL_ID = "<model_id_or_key>"
$uri = "https://api.cms.reearth.io/api/p/$WORKSPACE_ID/$PROJECT_ID/$MODEL_ID"$resp = Invoke-RestMethod -Method Get -Uri $uri$respconst WORKSPACE_ID = "<workspace_id_or_alias>";const PROJECT_ID = "<project_id_or_alias>";const MODEL_ID = "<model_id_or_key>";
const url = `https://api.cms.reearth.io/api/p/${WORKSPACE_ID}/${PROJECT_ID}/${MODEL_ID}`;
const resp = await fetch(url, { method: "GET", headers: { Accept: "application/json", },});
if (!resp.ok) { const text = await resp.text(); throw new Error(`HTTP ${resp.status}: ${text}`);}
const data = await resp.json();console.log(data);