クイックスタート

資産を一覧・登録する

お客様の既存の資産管理システムから CRISIS へ資産台帳を同期する、代表的な API の使い方を解説します。

概要

CRISIS の資産管理 API では、建物・設備・車両などの資産をグループ単位で管理できます。

前提条件

  • サービスアカウントとアクセストークンを作成済み(はじめに 参照)
  • サービスアカウントの IAM に以下のパーミッションを付与済み
organization.asset_item:list
organization.asset_item:create
organization.asset_item:update
organization.asset_item:delete
  • organizationId を把握済み

資産の一覧を取得する

GET /organizations/{organizationId}/assets/items で、登録済みの資産一覧を取得できます。

const response = await fetch(
  `https://api.crisis.jp/v1/organizations/${organizationId}/assets/items?limit=20`,
  {
    headers: {
      Authorization: `Bearer ${accessToken}`,
    },
  }
);

const { data, next_cursor, total } = await response.json();
console.log(`全 ${total} 件中 ${data.length} 件取得`);

// 各資産の基本情報
for (const item of data) {
  console.log(`${item.name} (${item.kind}) - ${item.status}`);
}

フィルタリング

クエリパラメータで結果を絞り込めます。

kind — 種別でフィルタ(例: ?kind=vehicle
tags — タグでフィルタ。カンマ区切りで OR 条件(例: ?tags=tokyo,osaka
group_ids — グループ ID でフィルタ。カンマ区切りで OR 条件
include_descendantstrue にすると、指定グループの配下も含めて取得

ページネーションの詳細は 実装ガイド — ページネーション を参照してください。

資産を登録する

POST /organizations/{organizationId}/assets/items で、新しい資産を登録します。 kindnamedescriptionstatustags が必須フィールドです。

const response = await fetch(
  `https://api.crisis.jp/v1/organizations/${organizationId}/assets/items`,
  {
    method: 'POST',
    headers: {
      Authorization: `Bearer ${accessToken}`,
      'Content-Type': 'application/json',
    },
    body: JSON.stringify({
      kind: 'BUILDING',
      name: '本社ビル',
      description: '東京都千代田区 本社オフィスビル',
      status: 'ACTIVE',
      tags: ['tokyo', 'headquarters'],
      location: {
        address: {
          prefecture: '東京都',
          municipality: '千代田区',
          street: '九段北1-3-6',
        },
        coordinates: {
          latitude: 35.696255,
          longitude: 139.751416,
        },
      },
      metadata: {
        id: "既存システムの資産IDなど、任意の情報を自由に保存できます",
      },
    }),
  }
);

if (!response.ok) {
  const error = await response.json();
  throw new Error(`CRISIS API error: ${error.ErrorCode} (${response.status})`);
}

const item = await response.json();
console.log(`登録完了: ${item.id}`);

オプションフィールド

用途に応じて追加情報を設定できます。

group_ids — 所属する資産グループ
location — 所在地(住所・緯度経度)
metadata — 任意のカスタムフィールド
vehicle — 車両情報
insurance — 保険情報
maintenance — メンテナンス情報
acquisition — 取得(購入)情報
emergency_contact — 緊急連絡先

location フィールドの詳細

location フィールドは以下の構造を持ちます。

レスポンスには自動補完フィールド(gehirn_code, mesh_code, jisx0402 など)も含まれますが、リクエストに含める必要はありません。

住所パターン別の例

構造化された住所と座標の両方を指定する場合

{
  location: {
    address: {
      prefecture: '東京都',
      municipality: '千代田区',
      street: '九段北1-3-6',
    },
    coordinates: {
      latitude: 35.696255,
      longitude: 139.751416,
    },
  },
}

住所だけを指定する場合(自動ジオコーディング)

{
  location: {
    address: {
      prefecture: '東京都',
      municipality: '千代田区',
      street: '九段北1-3-6',
    },
  },
}

座標値を指定しない場合、住所から自動的にジオコーディングが行われます。

座標だけを指定する場合

{
  location: {
    coordinates: {
      latitude: 35.696255,
      longitude: 139.751416,
    },
  },
}

非構造化の住所文字列を使う場合

{
  location: {
    address: {
      freeform: '東京都千代田区九段北1-3-6',
    },
  },
}

freeform が指定された場合、自動的にジオコーディングと構造化が試みられます。座標値を指定しない場合、住所から座標が自動補完されます。

同期パターン

お客様の資産管理システムから CRISIS へ定期的に台帳を同期する場合、以下のパターンが一般的です。

既存資産の一覧を取得

GET /assets/items で CRISIS 側の現在の資産一覧を取得し、お客様側のマスターデータと突き合わせます。
metadata フィールドを活用して、既存システムの資産IDなどの情報を保持して突合できます。

差分を検出して反映

新規資産は POST で登録、変更があった資産は PUT で更新、廃止された資産はステータスを変更します。

次のステップ