API の「閲覧記録を取得する」を使うと、誰がいつどの手順書を見て、設問にどう答えたか(手順書の「閲覧記録」→「実施記録」の CSV と同じ中身)を、社内のシステム(BI・人事・品質の仕組みなど)に取り込めます。鍵の発行と API の呼び出し方の基本は、社内のシステム・AI から手順書を探して読む(API・β) をご覧ください。
Enterpriseプランでご利用いただけます。鍵の設定は、オーナーが PC ブラウザから行います。β版として提供しています。
※ ご利用の前に、社内のシステム・AI から手順書を探して読む(API・β) の「遵守事項および免責事項」を必ずお読みください。本機能をご利用いただいた場合は、その内容に同意いただいたものとみなします。
鍵で閲覧記録を読めるようにする
閲覧記録は、鍵ごとに[閲覧記録も読めるようにする]を選んだ鍵だけで取得できます。初期状態では選ばれていません。
- サイドメニュー [オーナー向け機能] を開きます
- 上部タブの [連携] を選び、[API(手順書を探す・読む)] を開きます
- 新しい鍵は [鍵を発行] を、今ある鍵は鍵の行の鉛筆のアイコン(変更)をクリックします
- [閲覧記録も読めるようにする]を選び、[発行](変更のときは [保存])をクリックします
鍵の一覧の「閲覧記録」の欄に、その鍵で閲覧記録を読めるか(あり/なし)が表示されます。
今ある鍵で閲覧記録を読めるようにしたときと、閲覧記録を読める鍵の見せるグループを変えたときは、チームのオーナー全員にお知らせのメールが届きます。
閲覧記録には、閲覧した方の名前・メール(メール不要アカウントはログイン ID)・設問の文と答え・完了コメントが含まれます。これらは、鍵を使うシステムと、そのシステムを使う方に渡ります。チャットボットや社内ポータルなど多くの方が使うシステムの鍵では選ばず、記録を取り込むシステム用に別の鍵を発行してください。
返す記録の範囲
- 手順書:鍵で見られる公開済みの手順書の記録だけです(探す・読むと同じ範囲)。公開済みの版で見た回だけを返します
- 人:鍵の [見せるグループ] のどれか(配下のグループを含む)に、今所属している方の記録だけです。グループを選ばない鍵は、全員の記録を返します。手順書の範囲(選んだグループすべてに所属する1人として決める)とは、決め方が違います
- 下書きの閲覧、録画モードでの閲覧、外部共有URLでログインせずに見た回、ゲストとして見た回は返しません
人は今の所属で決めるため、異動した方の前の部署での記録は、前の部署のグループの鍵からは返りません。
閲覧記録を取得する
GET /viewing-records に、期間などをクエリで付けて呼び出します。
| 項目 | 内容 |
|---|---|
| from(必須) | 期間の始め(この時刻を含む)です。閲覧を始めた時刻で決めます。日付(2026-10-01=日本時間の0時)か、時差の付いた日時(2026-10-01T09:00:00+09:00・2026-10-01T00:00:00Z など)で書きます。URL の中では「+」を %2B と書いてください |
| to | 期間の終わり(この時刻は含まない)です。書き方は from と同じです。省くと、呼び出した時刻までになります。from から366日までです |
| procedureId | この手順書の記録だけを返します(手順書の id か versionId)。すべての版の記録を返します |
| limit | 返す件数の上限です(1〜500、初期値100) |
| cursor | 続きを取得するときに、前の応答の next.cursor を付けます |
curl "https://api.divedx.com/v1/viewing-records?from=2026-10-01&to=2026-11-01&limit=100" \
-H "Authorization: Bearer dapi_..."
閲覧を始めた時刻の古い順に、記録の一覧が返ります。
{
"records": [
{
"id": "-NrAbc",
"procedure": { "id": "-NaBcD1", "versionId": "-NxYzW9", "version": 3, "title": "焼き場の温度管理", "kind": "steps" },
"user": { "id": "uid…", "email": "alice@example.com", "name": "Alice" },
"startedAt": "2026-10-01T09:00:00+09:00",
"completedAt": "2026-10-01T09:05:00+09:00",
"durationSec": 300,
"status": "stumble",
"comment": "OK でした",
"answers": [
{ "step": 3, "stepId": "sC", "title": "確かめる", "question": "焼き色", "type": "Select", "result": "ok", "value": "良い", "aiCheck": "ng" }
]
}
],
"next": { "cursor": "…" },
"requestId": "req_…"
}
| 項目 | 内容 |
|---|---|
| id | 記録の ID です。取り込むときは、この ID で上書きしてください |
| procedure | 手順書の ID(探す・読むの id と同じ)・見た版の ID と版の番号(0 が初版)・今の公開版の題名・種類(steps は手順に分かれた手順書、file はファイル手順書)です |
| user | 閲覧した方の Dive の ID・メール(メール不要アカウントはログイン ID)・名前です。チームの名簿に無い方は、メールと名前が null です |
| startedAt・completedAt | 閲覧を始めた日時と、完了した日時です。完了していない回は、completedAt が null です |
| durationSec | 始めてから完了するまでの秒数です(画面の「閲覧時間」と同じ)。完了していない回は null です |
| status | その回の状態です(下の表) |
| comment | 完了のときに書いたコメントです |
| answers | 設問ごとの答えです(下の表)。設問は最新の公開版のもので、後の版で消した設問の答えは返しません |
状態(status)
上から順に、最初に当てはまるものになります。画面の実施記録の状態と同じ決め方です。
| 値 | 意味 |
|---|---|
| preview | 参照(設問を飛ばして見た回) |
| incomplete | 未完(完了していない回。異常の答えがあっても、完了していなければこちら) |
| abnormal | 異常の答えがあって完了した回 |
| stumble | 間違えた後に正しく答えて完了した回(つまずき) |
| noAnswer | 設問に1つも答えずに完了した回 |
| partial | 一部の設問に答えて完了した回 |
| ok | 完了した回 |
答え(answers)
| 項目 | 内容 |
|---|---|
| step・stepId | 最新の公開版での手順の番号と、手順の ID です。手順の ID は、改訂しても通常は変わりません |
| title・question・type | 手順の名前・設問の文・設問の種類(Select・SelectMulti・YesNo・Input・InputNumber など)です |
| result | ok(正常・合格)・ng(異常・不合格)・checked(答えた。正解の無い設問)・measured(数を入れた)・skipped(この回の記録に答えが無い。たどり着かなかった・飛ばした・見た版に無かった設問)のどれかです |
| value | 画面と同じ形の答えです(選んだ選択肢。複数は「, 」でつなぎます。Yes・No、入力した文字や数)。正解のある設問で合格した場合は、正解の値です |
| aiCheck | 提出写真AIチェックの結果です(参考)。ok(合っている)・ng(確認が要る)・unknown(判断できない)のどれかで、AI のチェックが無い設問は null です。写真は返しません |
状態と答えの値は、今後増えることがあります。知らない値は読み飛ばすように作ってください。
続きを取得する・取り込みを続ける
- next が null でないときは、続きがあります。next.cursor を cursor に付け、同じ from・to・procedureId で呼び出してください(違うと 400 を返します)。to を省いた場合は、続きも最初に呼び出した時刻までになります
- 返った件数が limit より少なくても、0件でも、next があれば続きがあります
- 記録は、後から完了したり、答えが足されたりします。開始が期間の中であれば、取得した後に中身が変わることがあります
- 閲覧を始めた時刻は、閲覧した端末の時計です。オフラインで見て後から届いた記録は、取得した後に、前の期間に入ることがあります
続けて取り込むときは、1日1回、前の数日分を重ねて取得し、記録の id で上書きしてください。短い間隔で長い期間を取り直すと、下の回数の上限で止まります。
回数の上限
- 閲覧記録の取得は、鍵ごとに1分30回・1日約1,000回(日本時間)までです。探す・読むの回数の上限にも数えます
- 上限を超えると 429 を返します。Retry-After ヘッダーの秒数だけ待ってから、もう一度呼び出してください
エラーのとき
| 状態 | code | 主な原因と対処 |
|---|---|---|
| 400 | invalid_request | from が無い・日時の形が違う・期間が366日を超える・cursor と from・to・procedureId が合わないなどです。送る内容を確かめてください |
| 403 | insufficient_scope | [閲覧記録も読めるようにする]を選んでいない鍵です。鍵の設定を確かめてください |
| 404 | not_found | procedureId の手順書が無い・鍵の範囲の外・下書きだけです |
| 429 | rate_limited | 回数の上限を超えました。Retry-After の秒数だけ待ってください |
| 503 | unavailable | 一時的に処理できません。時間をおいて、もう一度呼び出してください |
そのほかのエラー(鍵・期限・プラン・接続元の IP アドレス)は、探す・読むと同じです(社内のシステム・AI から手順書を探して読む(API・β) の「エラーのとき」)。
画面の CSV との違い
- ファイル手順書の閲覧と、設問の答えの欄が無い回も返します(ファイル手順書は answers が空で、procedure.kind が file です)
- 状態と答えは、言葉ではなく記号(上の表)で返します
- 提出写真AIチェックは判定の記号だけを返し、所見の文と写真は返しません
- 長い文字は途中で切り、最後に「…」を付けます(答えの値・完了コメントは2,000文字、設問は1,000文字、題名は300文字、名前は200文字、メールは320文字まで)。1回の閲覧で返す答えは300問までです
使われ方を確認する(オーナー)
[API(手順書を探す・読む)] のカードの [利用の状況] に、鍵ごとの閲覧記録の取得の回数(「閲覧記録 N 回」)が表示されます。鍵の変更(閲覧記録を読めるようにした・やめた)は、監査ログに残ります。
よくある質問
Q. 画面の閲覧記録の件数と合いません。
A. API は、ファイル手順書の閲覧と、設問の答えの欄が無い回も返します。また、人を鍵の見せるグループの今の所属で絞ります。そのため、画面の「実施記録」の件数と違うことがあります。
Q. API で手順書を探す・読む回は、閲覧記録に入りますか。
A. 入りません。閲覧記録に入るのは、Dive の画面・アプリ・スマートグラスで手順書を見た回です。
Q. 1年より前の記録を取得できますか。
A. 1回の呼び出しの期間は366日までです。それより前の期間は、from と to を変えて呼び出してください。なお、一部の古い形式の記録は返しません。