v2 API は alpha 版であり、今後いつでも変更される可能性があります。
Analytics API v2 は、Devin Desktop Analytics API の次世代版です。クリーンな REST エンドポイントを通じて、消費量
分析 (クレジットと ACU) を提供します。クエリパラメータによるフィルタリング、柔軟な
グループ化、カーソル方式のページネーション、レスポンスのキャッシュに対応しています。
API の仕様が確定するまでは、v2 エンドポイントは現在 /api/v2alpha プレフィックス
で提供されています。ベース URL は https://server.codeium.com です。
v1 との最大の違いは、認証です。
| v1 Analytics API | v2 Analytics API |
|---|
| 通信方式 | JSON のリクエストボディを使う POST | クエリパラメータを使う GET |
| 認証 | リクエストボディ内の service_key フィールド | Authorization: Bearer <service_key> ヘッダー |
| 権限 | エンドポイントごとに異なる | Analytics Read |
| ページネーション | なし | カーソル方式 (next_page_cursor / page_cursor) |
| キャッシュ | なし | ETag + If-None-Match (304 Not Modified) |
v2 では Bearer トークン 認証を利用します。サービスキー はリクエストボディではなく、Authorization ヘッダーに渡してください:
Authorization: Bearer <your_service_key>
サービスキーには、Analytics Read 権限が必要です。
- チーム設定ページを開きます
- 「Service Keys」セクションを開きます
- Analytics Read 権限を持つ新しいサービスキーを作成します
- キーを
Authorization ヘッダーの Bearer トークンとして利用します
サービスキーは厳重に管理し、クライアントサイドのコードや公開リポジトリには絶対に公開しないでください。
グループにスコープされたサービスキーにも対応しています。キーがグループにスコープされている場合、結果は自動的に
そのグループに限定されます。
| エンドポイント | 説明 |
|---|
消費量を取得 (GET /api/v2alpha/analytics/consumption) | フィルタリング、グループ化、粒度、ページネーションを指定して、クレジットまたは ACU の消費量を取得します |
アクティブユーザーを取得 (GET /api/v2alpha/analytics/active-users) | 日別 / 月別、またはユーザーごとの重複しないアクティブユーザー数を集計します |
レスポンスは、metadata.billing_strategy で示されるチームの課金方式に応じて変わります:
CREDITS — 各行に prompt_credits と flex_credits が含まれます
ACU — 各行に billed_acus が含まれます
message_count フィールドは、方式にかかわらず常に返されます。
一覧のレスポンスはページ分割されています。さらにデータがある場合、レスポンスには
pagination.next_page_cursor が含まれます。次のページを取得するには、これを
page_cursor クエリパラメータとして渡します。カーソルの有効期限は24時間です。
レスポンスには ETag ヘッダーが含まれます。以降のリクエストでは、その値を If-None-Match ヘッダーに指定して送信すると、
データが変更されていない場合は 304 Not Modified が返されます。
これらのエンドポイントは、リアルタイムで使用量を監視する用途ではありません。データは1時間単位で集計され、
レート制限も低く設定されています (チームごとに1時間あたり10リクエスト) 。ライブ
ダッシュボードやリクエスト単位の追跡ではなく、定期的なレポート作成や一括
エクスポートに利用してください。
v2 エンドポイントには、チームごとに1時間あたり10リクエストのレート制限があります。制限を超えると、
429 Too Many Requests が Retry-After ヘッダーとともに返されます。
前回のクエリをページネーションする場合 (next_page_cursor をたどる場合) は、レート
制限にはカウントされません。カウント対象となるのは、各レポートの最初のクエリだけです。この低い制限は、これらのエンドポイントが
リアルタイム監視ではなく、定期的なレポート作成向けであることを反映しています。