Claudia Partner™DocsAPI・MCP 共通ドキュメント0.7.0-experimental

リファレンス

HTTP・実行例

60の例(全134操作のうち56操作)を載せています。すべて合成データのリクエストと応答です。実際の利用環境での実行結果ではなく、実機動作は未確認です。HTTPヘッダーとJSONは共通examples JSONから生成し、OpenAPIのexamplesにも同じ内容を使用します。時刻、UUID、版、fingerprint、storeは説明用です。実行時には現在の取得結果へ置き換えてください。

成功応答の値は固定の期待値ではありません。表の権限や現在版に従い変化します。公開資料は検証用のデータ投入を自動的に行いません。アプリの登録と運用に沿い、検証専用の表で実行してください。

サンプルアプリ

架空の作業メモを使って、APIの組み合わせを説明します。完成した配布アプリではなく、実装を考えるための例です。顧客の実データは含みません。説明どおりの実機動作は未確認です。

表と権限

表demo_tasksに、text型のtitle(件名)を定義します。まずはこの1列で読み書きを確認します。担当者・顧客・連絡先を管理する業務や、特定のOS・配置先を前提にしません。表を作るには事前の設計権限、行の読み書きには対象の表と列の権限が必要です。

接続と読み取り

ブラウザー → アプリのサーバー側(BFF)→ 基盤APIの構成を例にします。人のログインは認証サービスのOIDC Authorization Code + PKCEとMFAを使います。登録済みclient_id等が必要で、個別アプリの登録・BFF接続は準備中です。

  1. 接続情報と利用環境の有効機能・稼働版を確認します。
  2. 本人として接続し、GET /v1/meを確認します。
  3. 表のdefinitionからschema_versionを取得します。
  4. POST /v2/tables/{collection}/queryで、許可された作業メモを読みます。空の一覧と認証エラーを区別します。

作成・更新・競合

HTTP・実行例のv2-create、v2-query、v2-updateを参照します。新規作成のidはサーバーが決めます。更新には取得したid・versionと現在のschema_versionを使い、操作ごとにIdempotency-Keyを作ります。

412なら最新値と編集内容を比較して利用者に確認します。通信が途切れただけなら、同じキーと本文を保持して結果を確認し、別キーで二重に更新しません。競合・再送・復帰を参照してください。

画像と自動処理を追加する場合

画像を扱う場合は、別途asset_ref型の欄と利用環境のpolicyを確認します。外部参照の例は保存先sample-files内のexamples/sample-image.pngです。任意のURLやOSの絶対パスを保存しません。画像とDropbox連携を参照してください。

無人処理には承認済みserviceを使い、人のJWTを流用しません。MCPは管理サイトの接続キーで使う取込用8ツールです。人OIDC、service JWT、MCP接続キーは別々に管理します。

サンプルの実行

PythonはPython 3.10以上の標準ライブラリ、JavaScriptはNode.js 22以上で動作します。どちらも選択した1リクエストのみを送信し、自動再試行しません。examples JSONを同じフォルダーへ保存して、置換済みのリクエストファイルを指定します。

shpython request.py --base https://api.example.invalid --request my-request.json
node request.mjs --base https://api.example.invalid --request my-request.json

資格は環境変数CP_ACCESS_TOKEN、またはPythonの非表示対話入力で渡します。スクリプトやリクエストファイルへ埋め込みません。CP_ACCESS_TOKENは利用者として接続するで取得したaccess_tokenです。baseは、環境管理者から受け取った、基盤のHTTPS originへ置き換えます。検証CAはPythonの --ca 引数、NodeのNODE_EXTRA_CA_CERTSで設定し、TLS検証を無効化しません。

my-request.jsonは下の共通JSONから1件を選び、headers内のAuthorizationプレースホルダー以外の値、url、bodyを実際の利用環境向けに直したものです。書込はIdempotency-Keyと期待版を確認してから実行します。

本人を確認

httpGET /v1/me HTTP/1.1
Host: api.example.invalid
Authorization: Bearer <ACCESS_TOKEN>
Accept: application/json
httpHTTP/1.1 200
Content-Type: application/json
X-Request-Id: 33333333-3333-4333-8333-333333333333
Cache-Control: no-store

{
  "id": "11111111-1111-4111-8111-111111111111",
  "actor_type": "human",
  "permissions": [],
  "capabilities": [],
  "contract_expires_at": null,
  "checked_at": "2026-10-04T00:00:00Z",
  "session": {
    "absolute_expires_at": "2026-10-04T01:00:00Z",
    "idle_expires_at": "2026-10-04T00:30:00Z"
  }
}

v1の表一覧

httpGET /v1/tables HTTP/1.1
Host: api.example.invalid
Authorization: Bearer <ACCESS_TOKEN>
Accept: application/json
httpHTTP/1.1 200
Content-Type: application/json
X-Request-Id: 33333333-3333-4333-8333-333333333333
Cache-Control: no-store

{
  "items": [
    {
      "id": "demo_tasks",
      "revision": 1,
      "label": "作業"
    }
  ],
  "role": "designer"
}

v1の最初のページ

httpPOST /v1/tables/demo_tasks/query HTTP/1.1
Host: api.example.invalid
Authorization: Bearer <ACCESS_TOKEN>
Accept: application/json
Content-Type: application/json

{
  "limit": 50,
  "sort": {
    "field": "title",
    "direction": "asc"
  },
  "filters": [
    {
      "field": "title",
      "op": "contains",
      "value": "見本"
    }
  ]
}
httpHTTP/1.1 200
Content-Type: application/json
X-Request-Id: 33333333-3333-4333-8333-333333333333
Cache-Control: no-store

{
  "items": [
    {
      "id": "11111111-1111-4111-8111-111111111111",
      "version": 1,
      "status": "committed",
      "values": {
        "title": "見本"
      }
    }
  ],
  "next_cursor": null,
  "revision": 2,
  "schema_version": 1
}

v1行を作成

httpPOST /v1/tables/demo_tasks/batch HTTP/1.1
Host: api.example.invalid
Authorization: Bearer <ACCESS_TOKEN>
Accept: application/json
Content-Type: application/json
Idempotency-Key: docs-v1-create-001

{
  "schema_version": 1,
  "operations": [
    {
      "action": "create",
      "id": "11111111-1111-4111-8111-111111111111",
      "version": 0,
      "status": "committed",
      "values": {
        "title": "見本"
      }
    }
  ]
}
httpHTTP/1.1 200
Content-Type: application/json
X-Request-Id: 33333333-3333-4333-8333-333333333333
Cache-Control: no-store

{
  "rows": [
    {
      "id": "11111111-1111-4111-8111-111111111111",
      "version": 1,
      "deleted": false
    }
  ],
  "schema_version": 1,
  "revision": 2,
  "committed": true
}

v2表を定義

httpPUT /v2/tables/demo_tasks HTTP/1.1
Host: api.example.invalid
Authorization: Bearer <ACCESS_TOKEN>
Accept: application/json
Content-Type: application/json
If-Match: "0"
Idempotency-Key: docs-v2-define-001

{
  "label": "作業",
  "fields": [
    {
      "id": "title",
      "label": "件名",
      "type": "text",
      "required": true,
      "read": [
        "staff"
      ],
      "write": [
        "staff"
      ],
      "searchable": true,
      "choices": []
    }
  ],
  "export_roles": [
    "staff"
  ]
}
httpHTTP/1.1 200
Content-Type: application/json
X-Request-Id: 33333333-3333-4333-8333-333333333333
Cache-Control: no-store

{
  "schema_version": 1
}

v2行を作成

httpPOST /v2/tables/demo_tasks/batch HTTP/1.1
Host: api.example.invalid
Authorization: Bearer <ACCESS_TOKEN>
Accept: application/json
Content-Type: application/json
Idempotency-Key: docs-v2-create-001

{
  "schema_version": 1,
  "operations": [
    {
      "action": "create",
      "status": "committed",
      "values": {
        "title": "見本"
      }
    }
  ]
}
httpHTTP/1.1 200
Content-Type: application/json
X-Request-Id: 33333333-3333-4333-8333-333333333333
Cache-Control: no-store

{
  "rows": [
    {
      "id": "11111111-1111-4111-8111-111111111111",
      "version": 1,
      "deleted": false
    }
  ],
  "schema_version": 1
}

v2行を検索

httpPOST /v2/tables/demo_tasks/query HTTP/1.1
Host: api.example.invalid
Authorization: Bearer <ACCESS_TOKEN>
Accept: application/json
Content-Type: application/json

{
  "limit": 50
}
httpHTTP/1.1 200
Content-Type: application/json
X-Request-Id: 33333333-3333-4333-8333-333333333333
Cache-Control: no-store

{
  "items": [
    {
      "id": "11111111-1111-4111-8111-111111111111",
      "version": 1,
      "status": "committed",
      "values": {
        "title": "見本"
      },
      "closed": false,
      "is_owner": true
    }
  ],
  "next_cursor": null,
  "revision": "sample-visible-revision",
  "schema_version": 1
}

v2行を更新

httpPOST /v2/tables/demo_tasks/batch HTTP/1.1
Host: api.example.invalid
Authorization: Bearer <ACCESS_TOKEN>
Accept: application/json
Content-Type: application/json
Idempotency-Key: docs-v2-update-001

{
  "schema_version": 1,
  "operations": [
    {
      "action": "update",
      "id": "11111111-1111-4111-8111-111111111111",
      "version": 1,
      "values": {
        "title": "確認済み"
      }
    }
  ]
}
httpHTTP/1.1 200
Content-Type: application/json
X-Request-Id: 33333333-3333-4333-8333-333333333333
Cache-Control: no-store

{
  "rows": [
    {
      "id": "11111111-1111-4111-8111-111111111111",
      "version": 2,
      "deleted": false
    }
  ],
  "schema_version": 1
}

v2行をごみ箱へ

httpPOST /v2/tables/demo_tasks/batch HTTP/1.1
Host: api.example.invalid
Authorization: Bearer <ACCESS_TOKEN>
Accept: application/json
Content-Type: application/json
Idempotency-Key: docs-v2-delete-001

{
  "schema_version": 1,
  "operations": [
    {
      "action": "delete",
      "id": "11111111-1111-4111-8111-111111111111",
      "version": 2,
      "reason": "検証用の行を削除"
    }
  ]
}
httpHTTP/1.1 200
Content-Type: application/json
X-Request-Id: 33333333-3333-4333-8333-333333333333
Cache-Control: no-store

{
  "rows": [
    {
      "id": "11111111-1111-4111-8111-111111111111",
      "version": 3,
      "deleted": true
    }
  ],
  "schema_version": 1
}

行をごみ箱から復元

httpPOST /v2/tables/demo_tasks/trash/22222222-2222-4222-8222-222222222222/restore HTTP/1.1
Host: api.example.invalid
Authorization: Bearer <ACCESS_TOKEN>
Accept: application/json
Content-Type: application/json
Idempotency-Key: docs-v2-restore-001

{
  "version": 3,
  "reason": "検証後に復元"
}
httpHTTP/1.1 200
Content-Type: application/json
X-Request-Id: 33333333-3333-4333-8333-333333333333
Cache-Control: no-store

{
  "id": "11111111-1111-4111-8111-111111111111",
  "version": 4,
  "trash_id": "22222222-2222-4222-8222-222222222222",
  "schema_version": 1
}

子表の親所属を設定

httpPUT /v2/tables/demo_lines/access HTTP/1.1
Host: api.example.invalid
Authorization: Bearer <ACCESS_TOKEN>
Accept: application/json
Content-Type: application/json
If-Match: "0"
Idempotency-Key: docs-relation-001

{
  "mode": "members",
  "parent_collection": "demo_tasks",
  "field": "parent_id",
  "cardinality": "many"
}
httpHTTP/1.1 200
Content-Type: application/json
X-Request-Id: 33333333-3333-4333-8333-333333333333
Cache-Control: no-store

{
  "version": 1
}

本人へ表利用権を設定

httpPUT /v2/access/grants/11111111-1111-4111-8111-111111111111/demo_tasks HTTP/1.1
Host: api.example.invalid
Authorization: Bearer <ACCESS_TOKEN>
Accept: application/json
Content-Type: application/json

{
  "version": 0,
  "enabled": true,
  "role": "staff",
  "read_scope": "all",
  "write_scope": "all",
  "can_design": true,
  "can_close": true,
  "can_import": true,
  "expires_at": "2026-10-05T00:00:00Z"
}
httpHTTP/1.1 200
Content-Type: application/json
X-Request-Id: 33333333-3333-4333-8333-333333333333
Cache-Control: no-store

{
  "version": 1,
  "grant": {
    "actor": "11111111-1111-4111-8111-111111111111",
    "client": "hub-spa",
    "collection": "demo_tasks",
    "role": "staff",
    "read_scope": "all",
    "write_scope": "all",
    "can_design": true,
    "can_close": true,
    "can_import": true,
    "expires_at": "2026-10-05T00:00:00Z"
  }
}

アプリ登録計画

httpPOST /v2/apps/plan HTTP/1.1
Host: api.example.invalid
Authorization: Bearer <ACCESS_TOKEN>
Accept: application/json
Content-Type: application/json

{
  "id": "demo_app",
  "version": 1,
  "name": "検証アプリ",
  "datasets": [
    {
      "id": "demo_tasks",
      "mode": "owned",
      "definition": {
        "label": "作業",
        "fields": [
          {
            "id": "title",
            "label": "件名",
            "type": "text",
            "required": true,
            "read": [
              "staff"
            ],
            "write": [
              "staff"
            ],
            "searchable": true,
            "choices": []
          }
        ],
        "export_roles": [
          "staff"
        ]
      }
    }
  ],
  "dependencies": []
}
httpHTTP/1.1 200
Content-Type: application/json
X-Request-Id: 33333333-3333-4333-8333-333333333333
Cache-Control: no-store

{
  "fingerprint": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
  "revision": 0,
  "changes": [
    {
      "id": "demo_tasks",
      "mode": "owned",
      "action": "create",
      "version": 0
    }
  ]
}

確認したアプリ計画を反映

httpPOST /v2/apps/apply HTTP/1.1
Host: api.example.invalid
Authorization: Bearer <ACCESS_TOKEN>
Accept: application/json
Content-Type: application/json
Idempotency-Key: docs-app-apply-001

{
  "manifest": {
    "id": "demo_app",
    "version": 1,
    "name": "検証アプリ",
    "datasets": [
      {
        "id": "demo_tasks",
        "mode": "owned",
        "definition": {
          "label": "作業",
          "fields": [
            {
              "id": "title",
              "label": "件名",
              "type": "text",
              "required": true,
              "read": [
                "staff"
              ],
              "write": [
                "staff"
              ],
              "searchable": true,
              "choices": []
            }
          ],
          "export_roles": [
            "staff"
          ]
        }
      }
    ],
    "dependencies": []
  },
  "fingerprint": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
}
httpHTTP/1.1 200
Content-Type: application/json
X-Request-Id: 33333333-3333-4333-8333-333333333333
Cache-Control: no-store

{
  "id": "demo_app",
  "version": 1,
  "revision": 1,
  "state": "active",
  "manifest": {
    "id": "demo_app",
    "version": 1,
    "name": "検証アプリ",
    "datasets": [
      {
        "id": "demo_tasks",
        "mode": "owned",
        "definition": {
          "label": "作業",
          "fields": [
            {
              "id": "title",
              "label": "件名",
              "type": "text",
              "required": true,
              "read": [
                "staff"
              ],
              "write": [
                "staff"
              ],
              "searchable": true,
              "choices": []
            }
          ],
          "export_roles": [
            "staff"
          ]
        }
      }
    ],
    "dependencies": []
  },
  "deleted_at": null,
  "restore_until": null
}

アプリを停止

httpPOST /v2/apps/demo_app/state HTTP/1.1
Host: api.example.invalid
Authorization: Bearer <ACCESS_TOKEN>
Accept: application/json
Content-Type: application/json
Idempotency-Key: docs-app-stop-001

{
  "action": "stop",
  "revision": 1,
  "reason": "検証停止"
}
httpHTTP/1.1 200
Content-Type: application/json
X-Request-Id: 33333333-3333-4333-8333-333333333333
Cache-Control: no-store

{
  "id": "demo_app",
  "version": 1,
  "revision": 2,
  "state": "stopped",
  "manifest": {
    "id": "demo_app",
    "version": 1,
    "name": "検証アプリ",
    "datasets": [
      {
        "id": "demo_tasks",
        "mode": "owned",
        "definition": {
          "label": "作業",
          "fields": [
            {
              "id": "title",
              "label": "件名",
              "type": "text",
              "required": true,
              "read": [
                "staff"
              ],
              "write": [
                "staff"
              ],
              "searchable": true,
              "choices": []
            }
          ],
          "export_roles": [
            "staff"
          ]
        }
      }
    ],
    "dependencies": []
  },
  "deleted_at": null,
  "restore_until": null
}

serviceの許可済み表を取得

httpPOST /v2/service/tables/demo_tasks/query HTTP/1.1
Host: api.example.invalid
Authorization: Bearer <ACCESS_TOKEN>
Accept: application/json
Content-Type: application/json

{
  "limit": 50
}
httpHTTP/1.1 200
Content-Type: application/json
X-Request-Id: 33333333-3333-4333-8333-333333333333
Cache-Control: no-store

{
  "schema_version": 1,
  "items": [
    {
      "id": "11111111-1111-4111-8111-111111111111",
      "version": 1,
      "values": {
        "title": "見本"
      },
      "status": "committed",
      "closed": false
    }
  ],
  "next_after": null
}

外部原本への画像参照

httpPOST /v2/media/demo_tasks/11111111-1111-4111-8111-111111111111/picture/22222222-2222-4222-8222-222222222222/reference HTTP/1.1
Host: api.example.invalid
Authorization: Bearer <ACCESS_TOKEN>
Accept: application/json
Content-Type: application/json
If-Match: "0"
Idempotency-Key: docs-media-ref-001
X-Parent-Version: 1
X-Schema-Version: 1

{
  "store": "demo-store",
  "relative_path": "examples/sample.png",
  "media_type": "image/png",
  "name": "見本.png"
}
httpHTTP/1.1 200
Content-Type: application/json
X-Request-Id: 33333333-3333-4333-8333-333333333333
Cache-Control: no-store

{
  "asset_id": "22222222-2222-4222-8222-222222222222",
  "version": 1,
  "deleted": false,
  "updated_at": "2026-10-04T00:00:00Z",
  "custody": "external_reference",
  "media_type": "image/png",
  "name": "見本.png",
  "size": 70,
  "sha256": "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
  "preview": "ready"
}

If-Matchで既存ケースを更新

httpPATCH /v1/jobs/11111111-1111-4111-8111-111111111111 HTTP/1.1
Host: api.example.invalid
Authorization: Bearer <ACCESS_TOKEN>
Accept: application/json
Content-Type: application/merge-patch+json
If-Match: "1"
Idempotency-Key: docs-job-patch-001

{
  "notes": "確認済み"
}
httpHTTP/1.1 200
Content-Type: application/json
X-Request-Id: 33333333-3333-4333-8333-333333333333
Cache-Control: no-store

{
  "id": "11111111-1111-4111-8111-111111111111",
  "version": "2"
}

古い版で更新すると412

httpPATCH /v1/jobs/11111111-1111-4111-8111-111111111111 HTTP/1.1
Host: api.example.invalid
Authorization: Bearer <ACCESS_TOKEN>
Accept: application/json
Content-Type: application/merge-patch+json
If-Match: "1"
Idempotency-Key: docs-job-patch-002

{
  "notes": "別の変更"
}
httpHTTP/1.1 412
Content-Type: application/problem+json
X-Request-Id: 33333333-3333-4333-8333-333333333333
Cache-Control: no-store

{
  "type": "urn:hub:problem:version-conflict",
  "title": "操作を完了できません",
  "status": 412,
  "code": "VERSION_CONFLICT",
  "request_id": "33333333-3333-4333-8333-333333333333"
}

資格なしは401

httpGET /v1/me HTTP/1.1
Host: api.example.invalid
Accept: application/json
httpHTTP/1.1 401
Content-Type: application/problem+json
X-Request-Id: 33333333-3333-4333-8333-333333333333
Cache-Control: no-store

{
  "type": "urn:hub:problem:auth-required",
  "title": "操作を完了できません",
  "status": 401,
  "code": "AUTH_REQUIRED",
  "request_id": "33333333-3333-4333-8333-333333333333"
}

データ移行の一覧を取得

合成例。各例は独立した前提状態。実API実行結果ではない。ID・版・期限を実値へ置換し、fingerprintは対応するplan応答をそのまま使う。

httpGET /v2/data-migrations HTTP/1.1
Host: api.example.invalid
Authorization: Bearer <ACCESS_TOKEN>
Accept: application/json
httpHTTP/1.1 200
Content-Type: application/json
X-Request-Id: 44444444-4444-4444-8444-444444444444
Cache-Control: no-store

{
  "items": [
    {
      "id": "44444444-4444-4444-8444-444444444444",
      "app": "demo_app",
      "state": "scanning",
      "revision": 1,
      "created_at": "2026-10-04T00:00:00Z",
      "is_owner": true
    }
  ]
}

移行前後の行を比較

合成例。各例は独立した前提状態。実API実行結果ではない。ID・版・期限を実値へ置換し、fingerprintは対応するplan応答をそのまま使う。

httpPOST /v2/data-migrations/44444444-4444-4444-8444-444444444444/preview HTTP/1.1
Host: api.example.invalid
Authorization: Bearer <ACCESS_TOKEN>
Accept: application/json
Content-Type: application/json

{
  "collection": "demo_tasks"
}
httpHTTP/1.1 200
Content-Type: application/json
X-Request-Id: 44444444-4444-4444-8444-444444444444
Cache-Control: no-store

{
  "collection": "demo_tasks",
  "items": [
    {
      "id": "22222222-2222-4222-8222-222222222222",
      "before": {
        "title": "合成データ"
      },
      "after_values": {
        "title": "合成データ"
      },
      "error": null
    }
  ]
}

データ移行計画を作成

合成例。各例は独立した前提状態。実API実行結果ではない。ID・版・期限を実値へ置換し、fingerprintは対応するplan応答をそのまま使う。

httpPOST /v2/data-migrations/plan HTTP/1.1
Host: api.example.invalid
Authorization: Bearer <ACCESS_TOKEN>
Accept: application/json
Content-Type: application/json

{
  "migration_id": "44444444-4444-4444-8444-444444444444",
  "package": {
    "manifest": {
      "id": "demo_app",
      "version": 1,
      "name": "検証アプリ",
      "datasets": [
        {
          "id": "demo_tasks",
          "mode": "owned",
          "definition": {
            "label": "作業",
            "fields": [
              {
                "id": "title",
                "label": "件名",
                "type": "text",
                "required": true,
                "read": [
                  "staff"
                ],
                "write": [
                  "staff"
                ],
                "searchable": true,
                "choices": []
              }
            ],
            "export_roles": [
              "staff"
            ]
          }
        }
      ],
      "dependencies": []
    },
    "csv": [
      {
        "collection": "demo_tasks",
        "key_fields": [
          "title"
        ]
      }
    ]
  },
  "transforms": [
    {
      "collection": "demo_tasks",
      "fields": [
        {
          "target": "title",
          "source": "title",
          "convert": "identity"
        }
      ]
    }
  ],
  "reason": "列定義の移行を検証"
}
httpHTTP/1.1 200
Content-Type: application/json
X-Request-Id: 44444444-4444-4444-8444-444444444444
Cache-Control: no-store

{
  "fingerprint": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
  "migration": {
    "migration_id": "44444444-4444-4444-8444-444444444444",
    "package": {
      "manifest": {
        "id": "demo_app",
        "version": 1,
        "name": "検証アプリ",
        "datasets": [
          {
            "id": "demo_tasks",
            "mode": "owned",
            "definition": {
              "label": "作業",
              "fields": [
                {
                  "id": "title",
                  "label": "件名",
                  "type": "text",
                  "required": true,
                  "read": [
                    "staff"
                  ],
                  "write": [
                    "staff"
                  ],
                  "searchable": true,
                  "choices": []
                }
              ],
              "export_roles": [
                "staff"
              ]
            }
          }
        ],
        "dependencies": []
      },
      "csv": [
        {
          "collection": "demo_tasks",
          "key_fields": [
            "title"
          ]
        }
      ]
    },
    "transforms": [
      {
        "collection": "demo_tasks",
        "fields": [
          {
            "target": "title",
            "source": "title",
            "convert": "identity"
          }
        ]
      }
    ],
    "reason": "列定義の移行を検証"
  },
  "tables": [
    {
      "collection": "demo_tasks",
      "version": 1,
      "count": 1
    }
  ]
}

確認済みデータ移行を開始

合成例。各例は独立した前提状態。実API実行結果ではない。ID・版・期限を実値へ置換し、fingerprintは対応するplan応答をそのまま使う。

httpPOST /v2/data-migrations/begin HTTP/1.1
Host: api.example.invalid
Authorization: Bearer <ACCESS_TOKEN>
Accept: application/json
Content-Type: application/json

{
  "migration": {
    "migration_id": "44444444-4444-4444-8444-444444444444",
    "package": {
      "manifest": {
        "id": "demo_app",
        "version": 1,
        "name": "検証アプリ",
        "datasets": [
          {
            "id": "demo_tasks",
            "mode": "owned",
            "definition": {
              "label": "作業",
              "fields": [
                {
                  "id": "title",
                  "label": "件名",
                  "type": "text",
                  "required": true,
                  "read": [
                    "staff"
                  ],
                  "write": [
                    "staff"
                  ],
                  "searchable": true,
                  "choices": []
                }
              ],
              "export_roles": [
                "staff"
              ]
            }
          }
        ],
        "dependencies": []
      },
      "csv": [
        {
          "collection": "demo_tasks",
          "key_fields": [
            "title"
          ]
        }
      ]
    },
    "transforms": [
      {
        "collection": "demo_tasks",
        "fields": [
          {
            "target": "title",
            "source": "title",
            "convert": "identity"
          }
        ]
      }
    ],
    "reason": "列定義の移行を検証"
  },
  "fingerprint": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
}
httpHTTP/1.1 200
Content-Type: application/json
X-Request-Id: 44444444-4444-4444-8444-444444444444
Cache-Control: no-store

{
  "id": "44444444-4444-4444-8444-444444444444",
  "state": "scanning",
  "revision": 1,
  "app": "demo_app",
  "reason": "列定義の移行を検証",
  "targets": [
    {
      "collection": "demo_tasks",
      "source_count": 1,
      "scanned": 0,
      "cursor": null,
      "done": false
    }
  ],
  "verified": 0,
  "errors": [],
  "error_count": 0,
  "response": null
}

データ移行の進捗を取得

合成例。各例は独立した前提状態。実API実行結果ではない。ID・版・期限を実値へ置換し、fingerprintは対応するplan応答をそのまま使う。

httpGET /v2/data-migrations/44444444-4444-4444-8444-444444444444 HTTP/1.1
Host: api.example.invalid
Authorization: Bearer <ACCESS_TOKEN>
Accept: application/json
httpHTTP/1.1 200
Content-Type: application/json
X-Request-Id: 44444444-4444-4444-8444-444444444444
Cache-Control: no-store

{
  "id": "44444444-4444-4444-8444-444444444444",
  "state": "scanning",
  "revision": 1,
  "app": "demo_app",
  "reason": "列定義の移行を検証",
  "targets": [
    {
      "collection": "demo_tasks",
      "source_count": 1,
      "scanned": 0,
      "cursor": null,
      "done": false
    }
  ],
  "verified": 0,
  "errors": [],
  "error_count": 0,
  "response": null
}

データ移行を次の区間へ進める

合成例。各例は独立した前提状態。実API実行結果ではない。ID・版・期限を実値へ置換し、fingerprintは対応するplan応答をそのまま使う。

httpPOST /v2/data-migrations/44444444-4444-4444-8444-444444444444/next HTTP/1.1
Host: api.example.invalid
Authorization: Bearer <ACCESS_TOKEN>
Accept: application/json
Idempotency-Key: demo-request-20261004-01
Content-Type: application/json

{
  "revision": 1
}
httpHTTP/1.1 200
Content-Type: application/json
X-Request-Id: 44444444-4444-4444-8444-444444444444
Cache-Control: no-store

{
  "id": "44444444-4444-4444-8444-444444444444",
  "state": "verifying",
  "revision": 2,
  "app": "demo_app",
  "reason": "列定義の移行を検証",
  "targets": [
    {
      "collection": "demo_tasks",
      "source_count": 1,
      "scanned": 1,
      "cursor": "22222222-2222-4222-8222-222222222222",
      "done": true
    }
  ],
  "verified": 0,
  "errors": [],
  "error_count": 0,
  "response": null
}

検証済みデータ移行を確定

合成例。各例は独立した前提状態。実API実行結果ではない。ID・版・期限を実値へ置換し、fingerprintは対応するplan応答をそのまま使う。

httpPOST /v2/data-migrations/44444444-4444-4444-8444-444444444444/commit HTTP/1.1
Host: api.example.invalid
Authorization: Bearer <ACCESS_TOKEN>
Accept: application/json
Idempotency-Key: demo-request-20261004-01
Content-Type: application/json

{
  "revision": 3
}
httpHTTP/1.1 200
Content-Type: application/json
X-Request-Id: 44444444-4444-4444-8444-444444444444
Cache-Control: no-store

{
  "id": "44444444-4444-4444-8444-444444444444",
  "state": "committed",
  "revision": 4,
  "app": "demo_app",
  "reason": "列定義の移行を検証",
  "targets": [
    {
      "collection": "demo_tasks",
      "source_count": 1,
      "scanned": 1,
      "cursor": "22222222-2222-4222-8222-222222222222",
      "done": true
    }
  ],
  "verified": 1,
  "errors": [],
  "error_count": 0,
  "response": {
    "id": "demo_app"
  }
}

データ移行を中止

合成例。各例は独立した前提状態。実API実行結果ではない。ID・版・期限を実値へ置換し、fingerprintは対応するplan応答をそのまま使う。

httpPOST /v2/data-migrations/44444444-4444-4444-8444-444444444444/cancel HTTP/1.1
Host: api.example.invalid
Authorization: Bearer <ACCESS_TOKEN>
Accept: application/json
Content-Type: application/json

{
  "revision": 1,
  "reason": "移行計画を見直す"
}
httpHTTP/1.1 200
Content-Type: application/json
X-Request-Id: 44444444-4444-4444-8444-444444444444
Cache-Control: no-store

{
  "id": "44444444-4444-4444-8444-444444444444",
  "state": "cancelled",
  "revision": 2
}

既存アプリ台帳の採用を計画

合成例。各例は独立した前提状態。実API実行結果ではない。ID・版・期限を実値へ置換し、fingerprintは対応するplan応答をそのまま使う。

httpPOST /v2/app-adoptions/plan HTTP/1.1
Host: api.example.invalid
Authorization: Bearer <ACCESS_TOKEN>
Accept: application/json
Content-Type: application/json

{
  "migration_id": "44444444-4444-4444-8444-444444444444",
  "source_fingerprint": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
  "apps": [
    {
      "package": {
        "manifest": {
          "id": "demo_app",
          "version": 1,
          "name": "検証アプリ",
          "datasets": [
            {
              "id": "demo_tasks",
              "mode": "owned",
              "definition": {
                "label": "作業",
                "fields": [
                  {
                    "id": "title",
                    "label": "件名",
                    "type": "text",
                    "required": true,
                    "read": [
                      "staff"
                    ],
                    "write": [
                      "staff"
                    ],
                    "searchable": true,
                    "choices": []
                  }
                ],
                "export_roles": [
                  "staff"
                ]
              }
            }
          ],
          "dependencies": []
        },
        "csv": [
          {
            "collection": "demo_tasks",
            "key_fields": [
              "title"
            ]
          }
        ],
        "requirements": {
          "dependencies": [],
          "integrations": [],
          "service_clients": []
        }
      },
      "revision": 1,
      "state": "active",
      "legacy_state": "registered"
    }
  ]
}
httpHTTP/1.1 200
Content-Type: application/json
X-Request-Id: 44444444-4444-4444-8444-444444444444
Cache-Control: no-store

{
  "fingerprint": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
  "migration_id": "44444444-4444-4444-8444-444444444444",
  "source_fingerprint": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
  "observed": {}
}

確認済みの既存アプリ台帳を採用

合成例。各例は独立した前提状態。実API実行結果ではない。ID・版・期限を実値へ置換し、fingerprintは対応するplan応答をそのまま使う。

httpPOST /v2/app-adoptions/apply HTTP/1.1
Host: api.example.invalid
Authorization: Bearer <ACCESS_TOKEN>
Accept: application/json
Idempotency-Key: demo-request-20261004-01
Content-Type: application/json

{
  "migration": {
    "migration_id": "44444444-4444-4444-8444-444444444444",
    "source_fingerprint": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
    "apps": [
      {
        "package": {
          "manifest": {
            "id": "demo_app",
            "version": 1,
            "name": "検証アプリ",
            "datasets": [
              {
                "id": "demo_tasks",
                "mode": "owned",
                "definition": {
                  "label": "作業",
                  "fields": [
                    {
                      "id": "title",
                      "label": "件名",
                      "type": "text",
                      "required": true,
                      "read": [
                        "staff"
                      ],
                      "write": [
                        "staff"
                      ],
                      "searchable": true,
                      "choices": []
                    }
                  ],
                  "export_roles": [
                    "staff"
                  ]
                }
              }
            ],
            "dependencies": []
          },
          "csv": [
            {
              "collection": "demo_tasks",
              "key_fields": [
                "title"
              ]
            }
          ],
          "requirements": {
            "dependencies": [],
            "integrations": [],
            "service_clients": []
          }
        },
        "revision": 1,
        "state": "active",
        "legacy_state": "registered"
      }
    ]
  },
  "fingerprint": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
}
httpHTTP/1.1 200
Content-Type: application/json
X-Request-Id: 44444444-4444-4444-8444-444444444444
Cache-Control: no-store

{
  "migration_id": "44444444-4444-4444-8444-444444444444",
  "source_fingerprint": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
  "states": {
    "demo_app": "active"
  },
  "apps": [
    {
      "id": "demo_app",
      "version": 1,
      "revision": 1,
      "state": "active",
      "manifest": {
        "id": "demo_app",
        "version": 1,
        "name": "検証アプリ",
        "datasets": [
          {
            "id": "demo_tasks",
            "mode": "owned",
            "definition": {
              "label": "作業",
              "fields": [
                {
                  "id": "title",
                  "label": "件名",
                  "type": "text",
                  "required": true,
                  "read": [
                    "staff"
                  ],
                  "write": [
                    "staff"
                  ],
                  "searchable": true,
                  "choices": []
                }
              ],
              "export_roles": [
                "staff"
              ]
            }
          }
        ],
        "dependencies": []
      },
      "deleted_at": null,
      "restore_until": null
    }
  ]
}

アプリ接続要件の変更を計画

合成例。各例は独立した前提状態。実API実行結果ではない。ID・版・期限を実値へ置換し、fingerprintは対応するplan応答をそのまま使う。

httpPOST /v2/apps/demo_app/requirements/plan HTTP/1.1
Host: api.example.invalid
Authorization: Bearer <ACCESS_TOKEN>
Accept: application/json
Content-Type: application/json

{
  "dependencies": [],
  "integrations": [],
  "service_clients": []
}
httpHTTP/1.1 200
Content-Type: application/json
X-Request-Id: 44444444-4444-4444-8444-444444444444
Cache-Control: no-store

{
  "revision": 1,
  "before": {
    "dependencies": [],
    "integrations": [],
    "service_clients": []
  },
  "requirements": {
    "dependencies": [],
    "integrations": [],
    "service_clients": []
  },
  "blockers": [],
  "dependencies": [],
  "clients": [],
  "fingerprint": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
  "app_revision": 1,
  "state_after": "active"
}

確認済みアプリ接続要件を適用

合成例。各例は独立した前提状態。実API実行結果ではない。ID・版・期限を実値へ置換し、fingerprintは対応するplan応答をそのまま使う。

httpPOST /v2/apps/demo_app/requirements/apply HTTP/1.1
Host: api.example.invalid
Authorization: Bearer <ACCESS_TOKEN>
Accept: application/json
Idempotency-Key: demo-request-20261004-01
Content-Type: application/json

{
  "requirements": {
    "dependencies": [],
    "integrations": [],
    "service_clients": []
  },
  "fingerprint": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
}
httpHTTP/1.1 200
Content-Type: application/json
X-Request-Id: 44444444-4444-4444-8444-444444444444
Cache-Control: no-store

{
  "id": "demo_app",
  "version": 1,
  "revision": 1,
  "state": "active",
  "manifest": {
    "id": "demo_app",
    "version": 1,
    "name": "検証アプリ",
    "datasets": [
      {
        "id": "demo_tasks",
        "mode": "owned",
        "definition": {
          "label": "作業",
          "fields": [
            {
              "id": "title",
              "label": "件名",
              "type": "text",
              "required": true,
              "read": [
                "staff"
              ],
              "write": [
                "staff"
              ],
              "searchable": true,
              "choices": []
            }
          ],
          "export_roles": [
            "staff"
          ]
        }
      }
    ],
    "dependencies": []
  },
  "deleted_at": null,
  "restore_until": null,
  "requirements": {
    "revision": 1,
    "before": {
      "dependencies": [],
      "integrations": [],
      "service_clients": []
    },
    "requirements": {
      "dependencies": [],
      "integrations": [],
      "service_clients": []
    },
    "blockers": [],
    "dependencies": [],
    "clients": []
  }
}

本人が利用可能な取込形式を一覧取得

合成例。各例は独立した前提状態。実API実行結果ではない。ID・版・期限を実値へ置換し、fingerprintは対応するplan応答をそのまま使う。

httpGET /v2/import-profiles HTTP/1.1
Host: api.example.invalid
Authorization: Bearer <ACCESS_TOKEN>
Accept: application/json
httpHTTP/1.1 200
Content-Type: application/json
X-Request-Id: 44444444-4444-4444-8444-444444444444
Cache-Control: no-store

{
  "items": [
    {
      "contract_id": "44444444-4444-4444-8444-444444444444",
      "kind": "workspace-v1",
      "id": "demo_tasks",
      "collection": "demo_tasks",
      "label": "作業",
      "definition": {
        "label": "作業",
        "fields": [
          {
            "id": "title",
            "label": "件名",
            "type": "text",
            "required": true,
            "read": [
              "staff"
            ],
            "write": [
              "staff"
            ],
            "searchable": true,
            "choices": []
          }
        ],
        "export_roles": [
          "staff"
        ]
      },
      "key_columns": [
        "title"
      ],
      "headers": [
        "title"
      ]
    }
  ]
}

版付きCSV契約で行を取込

合成例。各例は独立した前提状態。実API実行結果ではない。ID・版・期限を実値へ置換し、fingerprintは対応するplan応答をそのまま使う。

httpPOST /v2/tables/demo_tasks/import-profile HTTP/1.1
Host: api.example.invalid
Authorization: Bearer <ACCESS_TOKEN>
Accept: application/json
Idempotency-Key: demo-request-20261004-01
Content-Type: application/json

{
  "contract_id": "44444444-4444-4444-8444-444444444444",
  "schema_version": 1,
  "expected_actor": "11111111-1111-4111-8111-111111111111",
  "operations": [
    {
      "action": "create",
      "values": {
        "title": "合成データ"
      },
      "status": "committed"
    }
  ]
}
httpHTTP/1.1 200
Content-Type: application/json
X-Request-Id: 44444444-4444-4444-8444-444444444444
Cache-Control: no-store

{
  "rows": [
    {
      "id": "22222222-2222-4222-8222-222222222222",
      "version": 1,
      "deleted": false
    }
  ],
  "schema_version": 1
}

アプリとCSV契約を取得

合成例。各例は独立した前提状態。実API実行結果ではない。ID・版・期限を実値へ置換し、fingerprintは対応するplan応答をそのまま使う。

httpGET /v2/app-packages/demo_app HTTP/1.1
Host: api.example.invalid
Authorization: Bearer <ACCESS_TOKEN>
Accept: application/json
httpHTTP/1.1 200
Content-Type: application/json
X-Request-Id: 44444444-4444-4444-8444-444444444444
Cache-Control: no-store

{
  "id": "demo_app",
  "version": 1,
  "revision": 1,
  "state": "active",
  "manifest": {
    "id": "demo_app",
    "version": 1,
    "name": "検証アプリ",
    "datasets": [
      {
        "id": "demo_tasks",
        "mode": "owned",
        "definition": {
          "label": "作業",
          "fields": [
            {
              "id": "title",
              "label": "件名",
              "type": "text",
              "required": true,
              "read": [
                "staff"
              ],
              "write": [
                "staff"
              ],
              "searchable": true,
              "choices": []
            }
          ],
          "export_roles": [
            "staff"
          ]
        }
      }
    ],
    "dependencies": []
  },
  "deleted_at": null,
  "restore_until": null,
  "csv": [
    {
      "collection": "demo_tasks",
      "key_fields": [
        "title"
      ]
    }
  ]
}

アプリとCSV契約の変更を計画

合成例。各例は独立した前提状態。実API実行結果ではない。ID・版・期限を実値へ置換し、fingerprintは対応するplan応答をそのまま使う。

httpPOST /v2/app-packages/plan HTTP/1.1
Host: api.example.invalid
Authorization: Bearer <ACCESS_TOKEN>
Accept: application/json
Content-Type: application/json

{
  "manifest": {
    "id": "demo_app",
    "version": 1,
    "name": "検証アプリ",
    "datasets": [
      {
        "id": "demo_tasks",
        "mode": "owned",
        "definition": {
          "label": "作業",
          "fields": [
            {
              "id": "title",
              "label": "件名",
              "type": "text",
              "required": true,
              "read": [
                "staff"
              ],
              "write": [
                "staff"
              ],
              "searchable": true,
              "choices": []
            }
          ],
          "export_roles": [
            "staff"
          ]
        }
      }
    ],
    "dependencies": []
  },
  "csv": [
    {
      "collection": "demo_tasks",
      "key_fields": [
        "title"
      ]
    }
  ]
}
httpHTTP/1.1 200
Content-Type: application/json
X-Request-Id: 44444444-4444-4444-8444-444444444444
Cache-Control: no-store

{
  "fingerprint": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
  "app_fingerprint": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
  "revision": 0,
  "changes": [
    {
      "id": "demo_tasks",
      "mode": "owned",
      "action": "create",
      "version": 0
    }
  ],
  "csv_before": [],
  "csv_after": [
    {
      "collection": "demo_tasks",
      "key_fields": [
        "title"
      ]
    }
  ]
}

確認済みアプリとCSV契約を適用

合成例。各例は独立した前提状態。実API実行結果ではない。ID・版・期限を実値へ置換し、fingerprintは対応するplan応答をそのまま使う。

httpPOST /v2/app-packages/apply HTTP/1.1
Host: api.example.invalid
Authorization: Bearer <ACCESS_TOKEN>
Accept: application/json
Idempotency-Key: demo-request-20261004-01
Content-Type: application/json

{
  "package": {
    "manifest": {
      "id": "demo_app",
      "version": 1,
      "name": "検証アプリ",
      "datasets": [
        {
          "id": "demo_tasks",
          "mode": "owned",
          "definition": {
            "label": "作業",
            "fields": [
              {
                "id": "title",
                "label": "件名",
                "type": "text",
                "required": true,
                "read": [
                  "staff"
                ],
                "write": [
                  "staff"
                ],
                "searchable": true,
                "choices": []
              }
            ],
            "export_roles": [
              "staff"
            ]
          }
        }
      ],
      "dependencies": []
    },
    "csv": [
      {
        "collection": "demo_tasks",
        "key_fields": [
          "title"
        ]
      }
    ]
  },
  "fingerprint": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
}
httpHTTP/1.1 200
Content-Type: application/json
X-Request-Id: 44444444-4444-4444-8444-444444444444
Cache-Control: no-store

{
  "id": "demo_app",
  "version": 1,
  "revision": 1,
  "state": "active",
  "manifest": {
    "id": "demo_app",
    "version": 1,
    "name": "検証アプリ",
    "datasets": [
      {
        "id": "demo_tasks",
        "mode": "owned",
        "definition": {
          "label": "作業",
          "fields": [
            {
              "id": "title",
              "label": "件名",
              "type": "text",
              "required": true,
              "read": [
                "staff"
              ],
              "write": [
                "staff"
              ],
              "searchable": true,
              "choices": []
            }
          ],
          "export_roles": [
            "staff"
          ]
        }
      }
    ],
    "dependencies": []
  },
  "deleted_at": null,
  "restore_until": null,
  "csv": [
    {
      "collection": "demo_tasks",
      "key_fields": [
        "title"
      ]
    }
  ]
}

利用環境の容量とアプリ件数を取得

合成例。各例は独立した前提状態。実API実行結果ではない。ID・版・期限を実値へ置換し、fingerprintは対応するplan応答をそのまま使う。

httpGET /v2/organization/overview HTTP/1.1
Host: api.example.invalid
Authorization: Bearer <ACCESS_TOKEN>
Accept: application/json
httpHTTP/1.1 200
Content-Type: application/json
X-Request-Id: 44444444-4444-4444-8444-444444444444
Cache-Control: no-store

{
  "as_of": "2026-10-04T00:00:00Z",
  "data_api": "available",
  "applications": {
    "active": 1,
    "stopped": 0,
    "detached": 0,
    "trashed": 0
  },
  "defined_tables": 1,
  "storage": {
    "database_bytes": 10485760,
    "quota_bytes": null,
    "managed_object_bytes": null,
    "external_original_bytes": null,
    "backup_bytes": null
  },
  "measurement_scope": "dedicated_environment_database",
  "backup_state": "not_connected",
  "contract_state": "not_connected"
}

組織設定を取得

合成例。各例は独立した前提状態。実API実行結果ではない。ID・版・期限を実値へ置換し、fingerprintは対応するplan応答をそのまま使う。

httpGET /v2/organization/settings HTTP/1.1
Host: api.example.invalid
Authorization: Bearer <ACCESS_TOKEN>
Accept: application/json
httpHTTP/1.1 200
Content-Type: application/json
X-Request-Id: 44444444-4444-4444-8444-444444444444
Cache-Control: no-store

{
  "version": 1,
  "values": {
    "organization_name": "検証用組織",
    "contact_note": "連絡先は別途交付"
  },
  "updated_at": "2026-10-04T00:00:00Z"
}

組織設定の変更を計画

合成例。各例は独立した前提状態。実API実行結果ではない。ID・版・期限を実値へ置換し、fingerprintは対応するplan応答をそのまま使う。

httpPOST /v2/organization/settings/plan HTTP/1.1
Host: api.example.invalid
Authorization: Bearer <ACCESS_TOKEN>
Accept: application/json
Content-Type: application/json

{
  "version": 1,
  "values": {
    "organization_name": "検証用組織",
    "contact_note": "連絡先は別途交付"
  },
  "reason": "表示名を更新"
}
httpHTTP/1.1 200
Content-Type: application/json
X-Request-Id: 44444444-4444-4444-8444-444444444444
Cache-Control: no-store

{
  "before": {
    "version": 1,
    "values": {
      "organization_name": "検証用組織",
      "contact_note": "連絡先は別途交付"
    },
    "updated_at": "2026-10-04T00:00:00Z"
  },
  "change": {
    "version": 1,
    "values": {
      "organization_name": "検証用組織",
      "contact_note": "連絡先は別途交付"
    },
    "reason": "表示名を更新"
  },
  "fingerprint": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
}

確認済み組織設定を適用

合成例。各例は独立した前提状態。実API実行結果ではない。ID・版・期限を実値へ置換し、fingerprintは対応するplan応答をそのまま使う。

httpPOST /v2/organization/settings/apply HTTP/1.1
Host: api.example.invalid
Authorization: Bearer <ACCESS_TOKEN>
Accept: application/json
Idempotency-Key: demo-request-20261004-01
Content-Type: application/json

{
  "change": {
    "version": 1,
    "values": {
      "organization_name": "検証用組織",
      "contact_note": "連絡先は別途交付"
    },
    "reason": "表示名を更新"
  },
  "fingerprint": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
}
httpHTTP/1.1 200
Content-Type: application/json
X-Request-Id: 44444444-4444-4444-8444-444444444444
Cache-Control: no-store

{
  "version": 2,
  "values": {
    "organization_name": "検証用組織",
    "contact_note": "連絡先は別途交付"
  },
  "updated_at": "2026-10-04T00:00:00Z"
}

確定操作の履歴を検索

合成例。各例は独立した前提状態。実API実行結果ではない。ID・版・期限を実値へ置換し、fingerprintは対応するplan応答をそのまま使う。

httpPOST /v2/organization/activity HTTP/1.1
Host: api.example.invalid
Authorization: Bearer <ACCESS_TOKEN>
Accept: application/json
Content-Type: application/json

{
  "limit": 20,
  "source": "organization"
}
httpHTTP/1.1 200
Content-Type: application/json
X-Request-Id: 44444444-4444-4444-8444-444444444444
Cache-Control: no-store

{
  "items": [
    {
      "source": "organization",
      "sequence": "1",
      "request_id": "44444444-4444-4444-8444-444444444444",
      "actor": "11111111-1111-4111-8111-111111111111",
      "client": "hub-spa",
      "target": "organization",
      "action": "settings.apply",
      "reason": "表示名を更新",
      "at": "2026-10-04T00:00:00Z"
    }
  ],
  "next_cursor": null,
  "until": "2026-10-04T00:01:00Z",
  "sources": [
    "organization"
  ]
}

本人の行削除範囲を取得

合成例。各例は独立した前提状態。実API実行結果ではない。ID・版・期限を実値へ置換し、fingerprintは対応するplan応答をそのまま使う。

httpGET /v2/access/deletions/11111111-1111-4111-8111-111111111111/demo_people HTTP/1.1
Host: api.example.invalid
Authorization: Bearer <ACCESS_TOKEN>
Accept: application/json
httpHTTP/1.1 200
Content-Type: application/json
X-Request-Id: 44444444-4444-4444-8444-444444444444
Cache-Control: no-store

{
  "version": 0,
  "grant": null
}

本人の行削除範囲を設定

合成例。各例は独立した前提状態。実API実行結果ではない。ID・版・期限を実値へ置換し、fingerprintは対応するplan応答をそのまま使う。

httpPUT /v2/access/deletions/11111111-1111-4111-8111-111111111111/demo_people HTTP/1.1
Host: api.example.invalid
Authorization: Bearer <ACCESS_TOKEN>
Accept: application/json
Idempotency-Key: demo-request-20261004-01
Content-Type: application/json

{
  "version": 0,
  "scope": "own",
  "expires_at": "2026-10-05T00:00:00Z",
  "reason": "本人の行の削除を許可"
}
httpHTTP/1.1 200
Content-Type: application/json
X-Request-Id: 44444444-4444-4444-8444-444444444444
Cache-Control: no-store

{
  "version": 1,
  "grant": {
    "version": 1,
    "scope": "own",
    "expires_at": "2026-10-05T00:00:00Z",
    "source": "explicit"
  }
}

人物表の登録状態を取得

合成例。各例は独立した前提状態。実API実行結果ではない。ID・版・期限を実値へ置換し、fingerprintは対応するplan応答をそのまま使う。

httpGET /v2/access/people/demo_people HTTP/1.1
Host: api.example.invalid
Authorization: Bearer <ACCESS_TOKEN>
Accept: application/json
httpHTTP/1.1 200
Content-Type: application/json
X-Request-Id: 44444444-4444-4444-8444-444444444444
Cache-Control: no-store

{
  "version": 0,
  "root": null
}

人物表を登録

合成例。各例は独立した前提状態。実API実行結果ではない。ID・版・期限を実値へ置換し、fingerprintは対応するplan応答をそのまま使う。

httpPUT /v2/access/people/demo_people HTTP/1.1
Host: api.example.invalid
Authorization: Bearer <ACCESS_TOKEN>
Accept: application/json
Idempotency-Key: demo-request-20261004-01
Content-Type: application/json

{
  "version": 0,
  "enabled": true,
  "reason": "人物表として登録"
}
httpHTTP/1.1 200
Content-Type: application/json
X-Request-Id: 44444444-4444-4444-8444-444444444444
Cache-Control: no-store

{
  "version": 1,
  "root": {
    "collection": "demo_people",
    "version": 1,
    "enabled": true
  }
}

本人IDと人物行の対応を取得

合成例。各例は独立した前提状態。実API実行結果ではない。ID・版・期限を実値へ置換し、fingerprintは対応するplan応答をそのまま使う。

httpGET /v2/access/people/demo_people/bindings/11111111-1111-4111-8111-111111111111 HTTP/1.1
Host: api.example.invalid
Authorization: Bearer <ACCESS_TOKEN>
Accept: application/json
httpHTTP/1.1 200
Content-Type: application/json
X-Request-Id: 44444444-4444-4444-8444-444444444444
Cache-Control: no-store

{
  "version": 0,
  "binding": null
}

本人IDと人物行の対応を設定

合成例。各例は独立した前提状態。実API実行結果ではない。ID・版・期限を実値へ置換し、fingerprintは対応するplan応答をそのまま使う。

httpPUT /v2/access/people/demo_people/bindings/11111111-1111-4111-8111-111111111111 HTTP/1.1
Host: api.example.invalid
Authorization: Bearer <ACCESS_TOKEN>
Accept: application/json
Idempotency-Key: demo-request-20261004-01
Content-Type: application/json

{
  "version": 0,
  "person_id": "22222222-2222-4222-8222-222222222222",
  "enabled": true,
  "expires_at": "2026-10-05T00:00:00Z",
  "reason": "検証用本人を人物行に対応付け"
}
httpHTTP/1.1 200
Content-Type: application/json
X-Request-Id: 44444444-4444-4444-8444-444444444444
Cache-Control: no-store

{
  "version": 1,
  "binding": {
    "person_id": "22222222-2222-4222-8222-222222222222",
    "version": 1,
    "enabled": true,
    "expires_at": "2026-10-05T00:00:00Z"
  }
}

人物行の所属者を取得

合成例。各例は独立した前提状態。実API実行結果ではない。ID・版・期限を実値へ置換し、fingerprintは対応するplan応答をそのまま使う。

httpGET /v2/access/people/demo_people/rows/22222222-2222-4222-8222-222222222222/members HTTP/1.1
Host: api.example.invalid
Authorization: Bearer <ACCESS_TOKEN>
Accept: application/json
httpHTTP/1.1 200
Content-Type: application/json
X-Request-Id: 44444444-4444-4444-8444-444444444444
Cache-Control: no-store

{
  "items": [
    {
      "actor": "11111111-1111-4111-8111-111111111111",
      "version": 1,
      "enabled": true,
      "write": false,
      "expires_at": "2026-10-05T00:00:00Z"
    }
  ],
  "next_after": null
}

人物行の所属者を設定

合成例。各例は独立した前提状態。実API実行結果ではない。ID・版・期限を実値へ置換し、fingerprintは対応するplan応答をそのまま使う。

httpPUT /v2/access/people/demo_people/rows/22222222-2222-4222-8222-222222222222/members HTTP/1.1
Host: api.example.invalid
Authorization: Bearer <ACCESS_TOKEN>
Accept: application/json
Idempotency-Key: demo-request-20261004-01
Content-Type: application/json

{
  "reason": "閲覧所属を登録",
  "members": [
    {
      "actor": "11111111-1111-4111-8111-111111111111",
      "version": 0,
      "enabled": true,
      "write": false,
      "expires_at": "2026-10-05T00:00:00Z"
    }
  ]
}
httpHTTP/1.1 200
Content-Type: application/json
X-Request-Id: 44444444-4444-4444-8444-444444444444
Cache-Control: no-store

{
  "items": [
    {
      "actor": "11111111-1111-4111-8111-111111111111",
      "version": 1,
      "enabled": true,
      "write": false,
      "expires_at": "2026-10-05T00:00:00Z"
    }
  ]
}

本人に対応する人物行を取得

合成例。各例は独立した前提状態。実API実行結果ではない。ID・版・期限を実値へ置換し、fingerprintは対応するplan応答をそのまま使う。

httpGET /v2/people/demo_people/me HTTP/1.1
Host: api.example.invalid
Authorization: Bearer <ACCESS_TOKEN>
Accept: application/json
httpHTTP/1.1 200
Content-Type: application/json
X-Request-Id: 44444444-4444-4444-8444-444444444444
Cache-Control: no-store

{
  "resolution": "resolved",
  "person_id": "22222222-2222-4222-8222-222222222222",
  "binding_version": 1
}

行に対応する本人IDを検索

合成例。各例は独立した前提状態。実API実行結果ではない。ID・版・期限を実値へ置換し、fingerprintは対応するplan応答をそのまま使う。

httpPOST /v2/tables/demo_people/subjects/query HTTP/1.1
Host: api.example.invalid
Authorization: Bearer <ACCESS_TOKEN>
Accept: application/json
Content-Type: application/json

{
  "rows": [
    {
      "id": "22222222-2222-4222-8222-222222222222",
      "version": 1
    }
  ]
}
httpHTTP/1.1 200
Content-Type: application/json
X-Request-Id: 44444444-4444-4444-8444-444444444444
Cache-Control: no-store

{
  "person_collection": "demo_people",
  "items": [
    {
      "row_id": "22222222-2222-4222-8222-222222222222",
      "row_version": 1,
      "person_id": "22222222-2222-4222-8222-222222222222"
    }
  ]
}

資産の保存・参照方針を取得

合成例。各例は独立した前提状態。実API実行結果ではない。ID・版・期限を実値へ置換し、fingerprintは対応するplan応答をそのまま使う。

httpGET /v1/assets/jobs/job/22222222-2222-4222-8222-222222222222/policy HTTP/1.1
Host: api.example.invalid
Authorization: Bearer <ACCESS_TOKEN>
Accept: application/json
httpHTTP/1.1 200
Content-Type: application/json
X-Request-Id: 44444444-4444-4444-8444-444444444444
Cache-Control: no-store

{
  "contract_version": 1,
  "modes": [
    "managed_original",
    "external_reference"
  ],
  "max_managed_bytes": 8388608,
  "max_external_bytes": 33554432,
  "media_types": [
    "application/pdf",
    "image/png"
  ],
  "can_write": true
}

資産の一覧取得

合成例。各例は独立した前提状態。実API実行結果ではない。ID・版・期限を実値へ置換し、fingerprintは対応するplan応答をそのまま使う。

httpGET /v1/assets/jobs/job/22222222-2222-4222-8222-222222222222 HTTP/1.1
Host: api.example.invalid
Authorization: Bearer <ACCESS_TOKEN>
Accept: application/json
httpHTTP/1.1 200
Content-Type: application/json
X-Request-Id: 44444444-4444-4444-8444-444444444444
Cache-Control: no-store

{
  "items": [
    {
      "asset_id": "55555555-5555-4555-8555-555555555555",
      "version": 1,
      "custody": "external_reference",
      "sha256": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
      "size": 1024,
      "media_type": "application/pdf",
      "thumbnail": false,
      "created_at": "2026-10-04T00:00:00Z"
    }
  ],
  "limit": 25,
  "offset": 0
}

資産のメタデータを取得

合成例。各例は独立した前提状態。実API実行結果ではない。ID・版・期限を実値へ置換し、fingerprintは対応するplan応答をそのまま使う。

httpGET /v1/assets/jobs/job/22222222-2222-4222-8222-222222222222/55555555-5555-4555-8555-555555555555 HTTP/1.1
Host: api.example.invalid
Authorization: Bearer <ACCESS_TOKEN>
Accept: application/json
httpHTTP/1.1 200
Content-Type: application/json
X-Request-Id: 44444444-4444-4444-8444-444444444444
Cache-Control: no-store

{
  "asset_id": "55555555-5555-4555-8555-555555555555",
  "version": 1,
  "custody": "external_reference",
  "sha256": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
  "size": 1024,
  "media_type": "application/pdf",
  "thumbnail": false,
  "created_at": "2026-10-04T00:00:00Z"
}

資産の原本を取得

合成例。各例は独立した前提状態。実API実行結果ではない。ID・版・期限を実値へ置換し、fingerprintは対応するplan応答をそのまま使う。 この資産は1px PNGのmanaged_original。バイナリーをbase64で表記。

httpGET /v1/assets/jobs/job/22222222-2222-4222-8222-222222222222/55555555-5555-4555-8555-555555555555/content HTTP/1.1
Host: api.example.invalid
Authorization: Bearer <ACCESS_TOKEN>
Accept: application/json
httpHTTP/1.1 200
Content-Type: application/octet-stream
X-Request-Id: 44444444-4444-4444-8444-444444444444
Cache-Control: no-store
ETag: "1"

[binary: base64 decode]
iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR4nGNgYGD4DwABBAEAX+XDSwAAAABJRU5ErkJggg==

資産の原本を保存

合成例。各例は独立した前提状態。実API実行結果ではない。ID・版・期限を実値へ置換し、fingerprintは対応するplan応答をそのまま使う。

httpPUT /v1/assets/jobs/job/22222222-2222-4222-8222-222222222222/55555555-5555-4555-8555-555555555555/content HTTP/1.1
Host: api.example.invalid
Authorization: Bearer <ACCESS_TOKEN>
Accept: application/json
If-Match: "0"
Idempotency-Key: demo-request-20261004-01
Content-Type: application/octet-stream
X-Asset-Media-Type: image/png

[binary: base64 decode]
iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR4nGNgYGD4DwABBAEAX+XDSwAAAABJRU5ErkJggg==
httpHTTP/1.1 200
Content-Type: application/json
X-Request-Id: 44444444-4444-4444-8444-444444444444
Cache-Control: no-store

{
  "asset_id": "55555555-5555-4555-8555-555555555555",
  "version": 1,
  "custody": "managed_original",
  "sha256": "abc58d5127d7cdf313beb9ec8ee839860a9c6bfbc48c8b8eb6a3f7d8bb63de6f",
  "size": 70,
  "media_type": "image/png",
  "thumbnail": true,
  "created_at": "2026-10-04T00:00:00Z"
}

資産のサムネイルを取得

合成例。各例は独立した前提状態。実API実行結果ではない。ID・版・期限を実値へ置換し、fingerprintは対応するplan応答をそのまま使う。 この資産は1px PNGのmanaged_original。バイナリーをbase64で表記。

httpGET /v1/assets/jobs/job/22222222-2222-4222-8222-222222222222/55555555-5555-4555-8555-555555555555/thumbnail HTTP/1.1
Host: api.example.invalid
Authorization: Bearer <ACCESS_TOKEN>
Accept: application/json
httpHTTP/1.1 200
Content-Type: image/png
X-Request-Id: 44444444-4444-4444-8444-444444444444
Cache-Control: no-store
ETag: "1"

[binary: base64 decode]
iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR4nGNgYGD4DwABBAEAX+XDSwAAAABJRU5ErkJggg==

資産の外部原本への参照を登録

合成例。各例は独立した前提状態。実API実行結果ではない。ID・版・期限を実値へ置換し、fingerprintは対応するplan応答をそのまま使う。

httpPOST /v1/assets/jobs/job/22222222-2222-4222-8222-222222222222/55555555-5555-4555-8555-555555555555/reference HTTP/1.1
Host: api.example.invalid
Authorization: Bearer <ACCESS_TOKEN>
Accept: application/json
If-Match: "0"
Idempotency-Key: demo-request-20261004-01
Content-Type: application/json

{
  "relative_path": "demo/reference.pdf",
  "media_type": "application/pdf"
}
httpHTTP/1.1 200
Content-Type: application/json
X-Request-Id: 44444444-4444-4444-8444-444444444444
Cache-Control: no-store

{
  "asset_id": "55555555-5555-4555-8555-555555555555",
  "version": 1,
  "custody": "external_reference",
  "sha256": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
  "size": 1024,
  "media_type": "application/pdf",
  "thumbnail": false,
  "created_at": "2026-10-04T00:00:00Z"
}

資産の外部原本の現在状態を照合

合成例。各例は独立した前提状態。実API実行結果ではない。ID・版・期限を実値へ置換し、fingerprintは対応するplan応答をそのまま使う。

httpPOST /v1/assets/jobs/job/22222222-2222-4222-8222-222222222222/55555555-5555-4555-8555-555555555555/check HTTP/1.1
Host: api.example.invalid
Authorization: Bearer <ACCESS_TOKEN>
Accept: application/json
httpHTTP/1.1 200
Content-Type: application/json
X-Request-Id: 44444444-4444-4444-8444-444444444444
Cache-Control: no-store

{
  "asset_id": "55555555-5555-4555-8555-555555555555",
  "version": 1,
  "status": "available",
  "sha256": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
}

バイナリー例はbody_base64/response_base64で実バイトを表します。実行サンプルは送信時にdecodeし、バイナリー応答はbase64で表示します。JSON文字列を画像として送る形式ではありません。