同意記録のインポート
POST /v1/jobs/consent-imports · 権限 consent-records:write
別のシステムに記録されていた法的文書への同意を取り込みます。たとえば、ユーザーをKeenAuthに移行する場合などです。リクエストは同期的に処理されます。1〜500件のレコードが1つのトランザクションで書き込まれるため、すべてが書き込まれるか、まったく書き込まれないかのどちらかになります。取り込まれたすべてのレコードにはmethod = importがあり、occurred_atは移行元システムでの時刻を保持します。バージョン、コンテンツハッシュ、ロケールは文書から取得されるため、指定することはできません。取り込まれたレコードは、ほかのすべての同意レコードと同様に追記のみです。今この時点で得た単一の同意を記録するには、同意を記録するを使用してください。
Idempotency-Key は必須です。同じキーとリクエストで再試行すると、同じレスポンスが返されます(Idempotent-Replayed: true 付き)。二重に書き込まれることはありません。
リクエスト
JSON本文(未知のフィールドは 400 unknown_field で拒否されます):
| フィールド | 型 | 必須 | 説明 |
|---|---|---|---|
records |
object[] | はい | 1〜500件のレコード。この順序で書き込まれます。 |
records[].user_id |
string | はい | ユーザーID(usr_…)。 |
records[].subject_type |
string | はい | documentのみ。 |
records[].subject_id |
string | はい | 法的文書ID(ldoc_…)。 |
records[].state |
string | はい | presented、accepted、またはdeclined。 |
records[].application_id |
string | null | いいえ | アプリケーション(app_…)。省略し、かつ文書がアプリケーション固有の場合は、文書のアプリケーションが記録されます。 |
records[].occurred_at |
string (date-time) | はい | 移行元システムでの発生時刻。未来の時刻は指定できません。 |
レスポンス
書き込まれたレコード(records)を入力順に含めた 201 Created を返します。
{
"imported_count": 1,
"records": [
{
"id": "crec_01j9xk3m7q8r2s4t6v8w0y2z4b",
"user_id": "usr_01j9xk3m7q8r2s4t6v8w0y2z4c",
"subject_type": "document",
"subject_id": "ldoc_01j9xk3m7q8r2s4t6v8w0y2z4a",
"subject_version": "2026-10",
"content_sha256": "9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08",
"locale": "en",
"state": "accepted",
"method": "import",
"application_id": null,
"occurred_at": "2025-03-14T08:00:00Z"
}
]
}
エラー
| HTTP | code | 条件 |
|---|---|---|
| 400 | malformed_request、unknown_field |
Idempotency-Key ヘッダーがない、または不正な形式である場合。本文が有効なJSONではない場合。未知のフィールドがある場合。 |
| 401 | unauthenticated |
認証情報がない、無効、または取り消されています。 |
| 403 | insufficient_permissions |
認証情報に必要な権限がありません。 |
| 413 | payload_too_large |
本文が1 MiBを超えています。 |
| 415 | unsupported_media_type |
コンテンツタイプが application/json ではありません。 |
| 422 | validation_failed |
レコードが不正です。errors[].pointer は /records/<index>/<field> です。不明なユーザーは unknown_user、不明なアプリケーションは unknown_application、不明な文書は unknown_subject です。レコードが1件未満または500件を超える場合は、out_of_range が /records で返されます。何も書き込まれません。 |
| 422 | idempotency_key_reuse |
Idempotency-Key が別のリクエストで使用されました。 |
| 429 | rate_limited |
レート制限を超えました。Retry-After の期間を置いてから再試行してください。 |
| 503 | service_unavailable |
依存先のサービスが一時的に利用できません。Retry-After の期間を置いてから再試行してください。 |
例
curl -X POST https://api.eu.keenauth.com/v1/jobs/consent-imports \
-H "Authorization: Bearer $KEENAUTH_SECRET_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{"records":[{"user_id":"usr_01j9xk3m7q8r2s4t6v8w0y2z4c","subject_type":"document","subject_id":"ldoc_01j9xk3m7q8r2s4t6v8w0y2z4a","state":"accepted","occurred_at":"2025-03-14T08:00:00Z"}]}'
CLI:keenauth jobs consent-imports create --data records.json
個人データ
このエンドポイントは個人データ、つまり同意レコードを扱います。KeenAuth APIにおける個人データでは、保存される内容、保持期間、削除方法を説明しています。いかなるフィールドにも、特別な種類の個人データ(健康、生体データ、宗教、政治的意見、性的指向)を送信しないでください。