Skip to main content

概要

Devin Desktop は、カスタム分析用の API をサポートしています。オートコンプリート、チャット、Command に関するデータをクエリできるほか、さまざまなフィルタ、グループ化、集計にも対応しています。 すべての使用例は curl で示していますが、他の言語の HTTP リクエストにも置き換えられます。
Analytics API は Enterprise プランで利用できます

ユーザーデータ Analytics API の仕様

TeamsページのUsersテーブルのデータは、次のコマンドで取得できます。
curl -X POST --header "Content-Type: application/json" \
--data '{
  "service_key": "<SERVICE_KEY>",
  "group_name": "<GROUP_NAME>",
  "start_timestamp": "<START_TIMESTAMP>",
  "end_timestamp": "<END_TIMESTAMP>"
}' \
https://server.codeium.com/api/v1/UserPageAnalytics
SERVICE_KEY: サービスキーです。管理者ユーザーは、設定ページのサービスキーセクションから作成できます。サービスキーのロールには、“Teams Read-only” 権限が必要です。 GROUP_NAME: 絞り込みに使用するグループ名です。このフィールドは任意です。 START_TIMESTAMP/END_TIMESTAMP: RFC 3339 形式のタイムスタンプです。例: 2023-01-01T00:00:00Z

出力例

{
  "userTableStats": [
    {
      "name": "Alice",
      "email": "alice@cognition.ai",
      "lastUpdateTime": "2024-10-10T22:56:10.771591Z",
      "apiKey": "aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa",
      "activeDays": 178,
      "teamStatus": "USER_TEAM_STATUS_APPROVED"
    },
    {
      "name": "Bob",
      "email": "bob@cognition.ai",
      "lastUpdateTime": "2024-10-10T18:11:23.980237Z",
      "apiKey": "bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb",
      "activeDays": 462,
      "teamStatus": "USER_TEAM_STATUS_APPROVED"
    },
    {
      "name": "Charlie",
      "email": "charlie@cognition.ai",
      "lastUpdateTime": "2024-10-10T16:43:46.117870Z",
      "apiKey": "cccccccc-cccc-cccc-cccc-cccccccccccc",
      "activeDays": 237,
      "teamStatus": "USER_TEAM_STATUS_PENDING"
    }
  ]
}

Cascade Analytics API 仕様

アナリティクスページで確認できるCascade固有のデータは、API経由で取得できます。
curl -X POST --header "Content-Type: application/json" \
--data '{
  "service_key": "<SERVICE_KEY>",
  "group_name": "<GROUP_NAME>",
  "start_timestamp": "<START_TIMESTAMP>",
  "end_timestamp": "<END_TIMESTAMP>",
  "emails": ["<EMAIL>","<EMAIL>,..."],
  "ide_types": ["<IDE_TYPE>","<IDE_TYPE>,..."],
  "query_requests": [
   {
    "<CASCADE_DATA_SOURCE>": {}
   }
  ]
}' \
https://server.codeium.com/api/v1/CascadeAnalytics
SERVICE_KEY: サービスキーです。管理者ユーザーは チーム設定 から新しいキーを作成できます GROUP_NAME: フィルタリング対象のグループ名です。このフィールドは任意です。emails が設定されている場合は設定できません。 START_TIMESTAMP/END_TIMESTAMP: RFC 3339 形式のタイムスタンプです。たとえば 2023-01-01T00:00:00Z です EMAILS: フィルタリング対象のメールアドレスのリストです。このフィールドは任意です。group&#95;name が設定されている場合は設定できません。 IDE_TYPES: フィルタリング対象の IDE タイプのリストです。このフィールドは任意です。指定可能な値は以下で説明します。 QUERY_REQUESTS: 実行するクエリリクエストのリストです。このフィールドは必須です。CASCADE_DATA_SOURCE の指定可能な値は以下で説明します。

クエリの例

curl -X POST --header "Content-Type: application/json" \
--data '{
  "service_key": "my_random_test_key",
  "group_name": "my_group_name",
  "start_timestamp": "2025-01-01T00:00:00Z",
  "end_timestamp": "2025-01-02T00:00:00Z",
  "emails": ["my_email@cognition.ai", "my_email2@cognition.ai"],
  "ide_types": ["editor"],
  "query_requests": [
   {
    "cascade_lines": {}
   },
   {
    "cascade_runs": {}
   }
  ]
}' \
https://server.codeium.com/api/v1/CascadeAnalytics

IDE の種類

cascade データは IDE の種類ごとに分類されています。クエリで ide_types フィールドを指定しない場合は、すべての IDE のデータが返されます。特定の 1 つの IDE のデータだけをクエリする場合は、次のいずれかのオプションを利用できます。
  • Devin Desktop Editor の場合は "editor"
  • JetBrains Plugin の場合は "jetbrains"
  • Devin CLI の場合は "cli"
Devin CLI ("cli") で絞り込む場合、データが返されるのは cascade_runs のみです。cascade_linescascade_tool_usage のデータソースは Devin CLI ではサポートされておらず、空の結果が返されます。

Cascade のデータソース

CASCADE_DATA_SOURCE には、3 つの値を設定できます

ソース: cascade_lines

1日ごとの、提案および受け入れられた cascade_lines のデータをクエリするには、cascade_lines を利用します。 出力例:
{
  "queryResults": [
    {
      "cascadeLines": {
        "cascadeLines": [
          {
            "day": "2025-05-01T00:00:00Z",
            "linesSuggested": "206",
            "linesAccepted": "157"
          },
          {
            "day": "2025-05-02T00:00:00Z",
            "linesSuggested": "16"
          },
          {
            "day": "2025-05-03T00:00:00Z",
            "linesSuggested": "169",
            "linesAccepted": "168"
          }
        ]
      }
    }
  ]
}
linesSuggested: 指定日に提案された行数。 linesAccepted: 指定日に採用された行数。

ソース: cascade_runs

モデルの使用量、クレジット消費量、モードのデータをクエリするには、cascade_runs を利用します。 出力例:
{
  "queryResults": [
    {
      "cascadeRuns": {
        "cascadeRuns": [
          {
            "day": "2025-05-01T00:00:00Z",
            "model": "Claude 3.7 Sonnet (Thinking)",
            "mode": "CONVERSATIONAL_PLANNER_MODE_DEFAULT",
            "messagesSent": "1",
            "cascadeId": "0d35c1f7-0a85-41d0-ac96-a04cd2d64444"
          },
          {
            "day": "2025-05-01T00:00:00Z",
            "model": "SWE-1",
            "mode": "UNKNOWN",
            "promptsUsed": "125",
            "cascadeId": "0d35c1f7-0a85-41d0-ac96-a04cd2d64444"
          },
          {
            "day": "2025-05-01T00:00:00Z",
            "model": "GPT-4.1 (promo)",
            "mode": "CONVERSATIONAL_PLANNER_MODE_DEFAULT",
            "messagesSent": "5",
            "cascadeId": "1f450ba3-06aa-4ba5-9e12-d3b98c2d33d3"
          },
        ]
      }
    }
  ]
}
day: 実行日。 model: メッセージに使用されたモデル。 mode: 実行モード。CONVERSATIONAL_PLANNER_MODE_DEFAULT (書き込みモード) 、CONVERSATIONAL_PLANNER_MODE_READ_ONLY (読み取りモード) 、CONVERSATIONAL_PLANNER_MODE_NO_TOOL (レガシーモード) 、または UNKNOWN のいずれかです。 messagesSent: 送信されたメッセージ数。 cascadeId: 実行の ID。この ID を使うと、ユーザーがメッセージを何回送信したかではなく、開始された個別の会話数を把握できます。 promptsUsed: 使用されたクレジット数。この値はセント単位で返されます。たとえば、0.25 クレジットは 25、1 クレジットは 100 として返されます。 API から返されるデータは生の形式であるため、“UNKNOWN” の値が含まれることがあります。このデータソースを独自のメトリクスに利用する場合は、関心のある具体的なメトリクスごとに集計することをおすすめします (例: promptsUsed フィールドを合計してユーザーの使用量パターンを把握する、messagesSent を集計してユーザーの利用状況を把握する、など) 。これは、mode と prompt のデータが複数のエントリに分かれて記録される可能性があるためです。

ソース: cascade_tool_usage

ツール使用量に関するデータをクエリするには、cascade_tool_usage を利用します。なお、返されるのは指定された期間内のツール利用回数の集計値です。 出力例:
{
  "queryResults": [
    {
      "cascadeToolUsage": {
        "cascadeToolUsage": [
          {
            "tool": "CODE_ACTION",
            "count": "15"
          },
          {
            "tool": "LIST_DIRECTORY",
            "count": "20"
          },
          {
            "tool": "MCP_TOOL",
            "count": "12"
          },
          {
            "tool": "MEMORY",
            "count": "4"
          }
        ]
      }
    }
  ]
}
tool: そのメッセージで使用されたツール。 count: ツールが使用された回数。 以下は、返される列挙値と、UI に表示される表示名の対応表です。
  • CODE_ACTION: ‘コード編集’
  • VIEW_FILE: ‘ファイルを閲覧’
  • RUN_COMMAND: ‘コマンドを実行’
  • FIND: ‘検索ツール’
  • GREP_SEARCH: ‘Grep 検索’
  • VIEW_FILE_OUTLINE: ‘ファイルのアウトラインを閲覧’
  • MQUERY: ‘Riptide’
  • LIST_DIRECTORY: ‘ディレクトリを一覧表示’
  • MCP_TOOL: ‘MCP ツール’
  • PROPOSE_CODE: ‘コードを提案’
  • SEARCH_WEB: ‘Web を検索’
  • MEMORY: ‘メモリ’
  • PROXY_WEB_SERVER: ‘ブラウザプレビュー’
  • DEPLOY_WEB_APP: ‘Web アプリをデプロイ’

Custom Analytics API の仕様

一部のデータソースでは、Custom Analytics API を介してクエリを柔軟にカスタマイズできます。 選択、フィルター、集計、並べ替えの完全なスキーマは、次のセクションに JSON 形式で記載されています。3 つのデータソースそれぞれのクエリ例と、クエリのデバッグに関するヒントは、ドキュメントの末尾に記載しています。
curl -X POST --header "Content-Type: application/json" \
--data '{
  "service_key": "<SERVICE_KEY>",
  "group_name": "<GROUP_NAME>",
  "query_requests": [
    {
      "data_source": "QUERY_DATA_SOURCE_<DATA_SOURCE>",
      "selections": [
        <LIST OF SELECTIONS>
      ],
      "filters": [
        <LIST OF FILTERS>
      ],
      "aggregations": [
        <LIST OF AGGREGATIONS>
      ],
    }
  ]
}' \
https://server.codeium.com/api/v1/Analytics
DATA_SOURCE: オートコンプリート、チャット、Command、PCW、または Cascade のどのデータを参照するかに応じて、USER_DATA、CHAT_DATA、COMMAND_DATA、PCW_DATA、または CASCADE_DATA のいずれかを選択します。 SERVICE_KEY: サービスキーです。管理者ユーザーは チーム設定 から新しいサービスキーを作成できます。サービスキーのロールには、“Analytics Read” 権限が必要です。 GROUP_NAME: フィルタリング対象のグループ名です。このフィールドは任意です。

スキーマ

選択

選択は必須です。各選択項目は、クエリする値に対応します。
{
  "field": "<FIELD_NAME>",
  "name": "<NAME>",
  "aggregation_function": "QUERY_AGGREGATION_<AGGREGATION_FUNCTION>"
}
FIELD_NAME: クエリするフィールドです。以下の「Available Fields」セクションを参照してください。 NAME: フィールドの別名です。指定しない場合は、<AGGREGATION_FUNCTION>_<FIELD_NAME> の小文字版 (例: sum&#95;num&#95;acceptances) になります。他のすべてのフィールド名および集計名と重複しないようにする必要があります。 AGGREGATION_FUNCTION: UNSPECIFIED、COUNT、SUM、AVG、MAX、MIN のいずれかを指定する必要があります。“aggregation_function” が指定されていない場合、デフォルトは UNSPECIFIED です。

フィルター

フィルターは、特定の条件を満たす要素のみを含むようにデータを絞り込むために利用されます。省略可能です。
{
  "name": "<NAME>",
  "value": "<VALUE>",
  "filter": "QUERY_FILTER_<FILTER>"
}
NAME: フィルタするフィールドの名前です。フィルタ対象の項目が Selection/Aggregation と同じ場合、これはそのフィールド/集計の名前と一致している必要があります。 VALUE: 比較対象の値です。 FILTER: EQUAL、NOT_EQUAL、GREATER_THAN、LESS_THAN、GE (以上) 、LE (以下) のいずれかです。

集計

集計は、指定した条件に基づいてデータをグループ分けするために利用されます。省略可能です。
{
  "field": <FIELD_NAME>,
  "name": <NAME>
}
FIELD_NAME: クエリする対象のフィールドです。「Available Fields」セクションを参照してください。 NAME: フィールドの別名です。他のすべてのフィールド名および集計名と重複しない必要があります。

使用可能なフィールド

ユーザーデータ

USER_DATA ソースのすべてのデータは、ユーザーごと・時間ごとに集計されます。 注: PCW (コード記述率) は現在、専用のテーブルを持っており、user_data テーブルには依存していません。
Field NameDescriptionValid Aggregations
api_keyユーザーのAPIキーの hash。UNSPECIFIED, COUNT
dateオートコンプリートの UTC 日付。UNSPECIFIED, COUNT
date UTC-xタイムゾーン オフセットを加味したオートコンプリートの日付。たとえば、PST の場合は “date UTC-8” になります。UNSPECIFIED, COUNT
hourオートコンプリートの UTC 時間。UNSPECIFIED, COUNT
language使用されているプログラミング言語。UNSPECIFIED, COUNT
ide使用されていた IDE。UNSPECIFIED, COUNT
version使用された Devin Desktop のバージョン。UNSPECIFIED, COUNT
num_acceptancesユーザーがオートコンプリートを受け入れた回数。これは、ユーザーがコードをある程度記述し、グレーのテキストを確認して、tab キーを押したときに発生します。SUM, MAX, MIN, AVG
num_lines_acceptedオートコンプリートから受け入れたコード行数。SUM, MAX, MIN, AVG
num_bytes_acceptedオートコンプリートから受け入れたバイト数。SUM, MAX, MIN, AVG
distinct_users重複を除いたユーザー数。UNSPECIFIED, COUNT
distinct_developer_days重複を除いた (users, day) の組み合わせ。UNSPECIFIED, COUNT
distinct_developer_hours重複を除いた (users, hour of day) の組み合わせ。UNSPECIFIED, COUNT

チャットデータ

チャットデータ API で提供されるすべてのデータは、ユーザーの質問ではなく、チャットモデルの応答に関するものであることに注意してください。
Field NameDescriptionValid Aggregations
api_keyユーザーのAPIキーのhashUNSPECIFIED, COUNT
model_idデプロイ時に設定されるチャットモデルのID。UNSPECIFIED, COUNT
dateチャット応答の UTC 日付。UNSPECIFIED, COUNT
date UTC-xタイムゾーン オフセットを含むチャット応答の日付。たとえば、PST の場合は “date UTC-8” です。UNSPECIFIED, COUNT
ide使用されていた IDEUNSPECIFIED, COUNT
version使用された Devin Desktop のバージョンUNSPECIFIED, COUNT
latest_intent_typeモデルの応答がコードレンズによって生成されたものか、通常のチャットによるものかを示します。通常のチャットは次に対応します:

CHAT_INTENT_GENERIC

コードレンズは次のいずれかに対応します:

CHAT_INTENT_FUNCTION_EXPLAIN
CHAT_INTENT_FUNCTION_DOCSTRING
CHAT_INTENT_FUNCTION_REFACTOR
CHAT_INTENT_CODE_BLOCK_EXPLAIN
CHAT_INTENT_CODE_BLOCK_REFACTOR
CHAT_INTENT_PROBLEM_EXPLAIN
CHAT_INTENT_FUNCTION_UNIT_TESTS
UNSPECIFIED, COUNT
num_chats_receivedDevin Desktop からユーザーに送信されたチャットメッセージ数。SUM, MAX, MIN, AVG
chat_acceptedDevin Desktop のチャット応答にコードブロックが含まれ、Thumbs up ボタンがクリックされた場合は True。SUM, COUNT
chat_inserted_at_cursorDevin Desktop のチャット応答にコードブロックが含まれ、“Insert” ボタンがクリックされた場合は True。SUM, COUNT
chat_appliedDevin Desktop のチャット応答にコードブロックが含まれ、“Apply Diff” ボタンがクリックされた場合は True。SUM, COUNT
chat_loc_usedDevin Desktop のチャット応答にコードブロックが含まれ、“Insert”、“Copy”、または “Apply Diff” ボタンのいずれかが押された場合の利用コード行数。SUM, MAX, MIN, AVG

Command データ

Command データソースには、拒否されたものも含めてすべてのコマンドが含まれます。“accepted” フィールドを利用すると、受け入れられたコマンドのみに絞り込めます。
Field NameDescriptionValid Aggregations
api_keyユーザーの APIキーの hash 値。UNSPECIFIED, COUNT
dateコマンドの UTC 日付。UNSPECIFIED, COUNT
timestampコマンドの UTC タイムスタンプ。UNSPECIFIED, COUNT
language利用されているプログラミング言語。UNSPECIFIED, COUNT
ide利用されていた IDE。UNSPECIFIED, COUNT
version利用された Devin Desktop のバージョン。UNSPECIFIED, COUNT
command_sourceコマンドがトリガーされた理由です。有効な値は次のとおりです。

COMMAND_REQUEST_SOURCE_LINE_HINT_CODE_LENS
COMMAND_REQUEST_SOURCE_DEFAULT
COMMAND_REQUEST_SOURCE_RIGHT_CLICK_REFACTOR
COMMAND_REQUEST_SOURCE_FUNCTION_CODE_LENS
COMMAND_REQUEST_SOURCE_FOLLOWUP
COMMAND_REQUEST_SOURCE_CLASS_CODE_LENS
COMMAND_REQUEST_SOURCE_PLAN
COMMAND_REQUEST_SOURCE_SELECTION_HINT_CODE_LENS

COMMAND_REQUEST_SOURCE_DEFAULT は、通常の Command の利用に対応します。
UNSPECIFIED, COUNT
provider_sourceコマンドが生成モードと編集モードのどちらでトリガーされたかを示します。有効な値は次のとおりです。PROVIDER_SOURCE_COMMAND_GENERATE PROVIDER_SOURCE_COMMAND_EDITUNSPECIFIED, COUNT
lines_addedコマンドによって追加されたコード行数。SUM, MAX, MIN, AVG
lines_removedコマンドによって削除されたコード行数。SUM, MAX, MIN, AVG
bytes_addedコマンドによって追加されたバイト数。SUM, MAX, MIN, AVG
bytes_removedコマンドによって削除されたバイト数。SUM, MAX, MIN, AVG
selection_linesコマンドによって選択されたコード行数。生成時は常にゼロになります。SUM, MAX, MIN, AVG
selection_bytesコマンドによって選択されたバイト数。生成時は常にゼロになります。SUM, MAX, MIN, AVG
acceptedコマンドが受け入れられたかどうか。SUM, COUNT

PCWデータ

有効な選択項目

Field NameDescriptionValid Aggregations
percent_code_written記述されたコードの割合。(生成された codeium バイト数) / (生成された codeium バイト数 + ユーザーが記述したバイト数) として計算されます。この指標は、日単位やユーザー単位では変動が大きくなることがあるため、週単位で集計することを推奨します。UNSPECIFIED
codeium_bytescodeium バイトの合計数。codeium_bytes_by_autocomplete + codeium_bytes_by_command と等しくなりますUNSPECIFIED
user_bytesユーザーが記述したバイト数の合計UNSPECIFIED
total_bytescodeium_bytes + user_bytesUNSPECIFIED
codeium_bytes_by_autocompleteオートコンプリートによって生成された codeium バイトの合計数UNSPECIFIED
codeium_bytes_by_commandCommand によって生成された codeium バイトの合計数UNSPECIFIED

Cascade Data

Cascade Dataソースには、Cascade に送信される各メッセージごとにエントリが含まれます。
以下に記載されているすべてのフィールドにアクセスするには、バージョン 1.11.2 以降を使用していることを確認してください。
Field NameDescriptionValid Aggregations
api_keyユーザーのAPIキーのhash。UNSPECIFIED, COUNT
dateコマンドのUTC日付。UNSPECIFIED, COUNT
prompts_usedCascade へのプロンプトで使用されたprompt credits数で、セント単位で返されます。たとえば、0.25 クレジットは 25、1 クレジットは 100 として返されます。UNSPECIFIED, SUM, AVG, MIN, MAX
flex_credits_usedCascade へのプロンプトにおける prompts_used 全体のうち、追加またはプールされたクレジットの使用数で、セント単位で返されます。たとえば、0.25 クレジットは 25、1 クレジットは 100 として返されます。UNSPECIFIED, SUM, AVG, MIN, MAX
modelCascade に送信されたメッセージで使用されたモデル。UNSPECIFIED, COUNT
metadata開発環境に関連するメタデータを含むオブジェクト。現在、値が設定されるフィールドには次のものがあります: ideVersionUNSPECIFIED, COUNT

有効なフィルター

Field Name説明使用例
api_keyユーザーのAPIキーのhash値。
language使用しているプログラミング言語。KOTLIN, GO, JAVA
ide使用していたIDE。jetbrains, vscode
version使用していたDevin Desktopのバージョン1.28.0, 130.0
日付でフィルタリングするには、start_timestamp と end_timestamp を使用します。これらは RFC 3339 形式で指定する必要があります (例: 2023-01-01T00:00:00Z。以下の例を参照してください) 。

使用例

ユーザーデータ

curl -X POST --header "Content-Type: application/json" \
--data '{
  "service_key": SERVICE_KEY,
  "query_requests": [
    {
      "data_source": "QUERY_DATA_SOURCE_USER_DATA",
      "selections": [
       {
          "field": "num_acceptances",
          "name": "num_acceptances",
          "aggregation_function": "QUERY_AGGREGATION_SUM"
        }
      ],
      "filters": [
        {
          "name": "hour",
          "filter": "QUERY_FILTER_GE",
          "value": "2024-01-01"
        },
        {
          "name": "hour",
          "filter": "QUERY_FILTER_LE",
          "value": "2024-02-01"
        }
      ]
    }
  ]
}' \
https://server.codeium.com/api/v1/Analytics
このクエリは、2024年1月の Percent Code Written の月間全体値を算出します。レスポンス例 (読みやすくするために JSON を整形しています) :
{
  "queryResults": [
    {
      "responseItems": [
        {
          "item": {
            "num_acceptances": "125",
            "num_lines_accepted": "863"
          }
        }
      ]
    }
  ]
}

チャットデータ

curl -X POST --header "Content-Type: application/json" \
--data '{
  "service_key": SERVICE_KEY,
  "query_requests": [
    {
      "data_source": "QUERY_DATA_SOURCE_CHAT_DATA",
      "selections": [
        {
          "field": "chat_loc_used",
          "name": "chat_loc_used",
          "aggregation_function": "QUERY_AGGREGATION_SUM"
        }
      ],
      "filters": [
        {
          "name": "latest_intent_type",
          "filter": "QUERY_FILTER_EQUAL",
          "value": "CHAT_INTENT_FUNCTION_DOCSTRING"
        }
      ],
      "aggregations": [
        {
          "field": "ide",
          "name": "ide"
        }
      ]
    }
  ]
}' \
https://server.codeium.com/api/v1/Analytics
このクエリは、“Generate Docstring” コードレンズから承認されたコード行数の累計を、IDE ごとに集計して表示します。 レスポンス例:
{
  "queryResults": [
    {
      "responseItems": [
        {
          "item": {
            "chat_loc_used": "74",
            "ide": "jetbrains"
          },
        },
        {
          "item": {
            "chat_loc_used":"41",
            "ide":"vscode"
          },
        }
      ]
    }
  ]
}

Command データ

curl -X POST --header "Content-Type: application/json" \
--data '{
 "service_key": SERVICE_KEY,
  "query_requests": [
    {
      "data_source": "QUERY_DATA_SOURCE_COMMAND_DATA",
     "selections": [
        {
          "field": "lines_added",
          "name": "lines_added",
          "aggregation_function": "QUERY_AGGREGATION_SUM"
        },
        {
          "field": "lines_removed",
          "name": "lines_removed",
          "aggregation_function": "QUERY_AGGREGATION_SUM"
        }
      ],
      "filters": [
        {
          "name": "provider_source",
          "filter": "QUERY_FILTER_EQUAL",
          "value": "PROVIDER_SOURCE_COMMAND_EDIT"
        },
        {
          "name": "accepted",
          "filter": "QUERY_FILTER_EQUAL",
          "value": "true"
        }
      ],
      "aggregations": [
        {
          "field": "language",
          "name": "language"
        }
      ]
    }
  ]
}' \
https://server.codeium.com/api/v1/Analytics
このクエリは、“edit” コマンドで追加・削除された行数を、プログラミング言語別に取得します。 レスポンス例:
{
  "queryResults": [
    {
      "responseItems": [
        {
          "item": {
            "language": "SHELL",
            "lines_added": "5",
            "lines_removed": "3"
          }
        },
        {
          "item": {
            "language": "GO",
            "lines_added": "31",
            "lines_removed": "27"
          }
        },
        {
          "item": {
            "language": "PYTHON",
            "lines_added": "21",
            "lines_removed": "5"
          }
        },
        {
          "item": {
            "language": "UNSPECIFIED",
            "lines_added": "91",
            "lines_removed": "71"
          }
        },
        {
          "item": {
            "language": "STARLARK",
            "lines_added": "13",
            "lines_removed": "1"
          }
        }
      ]
    }
  ]
}

PCW データ

curl -X POST --header "Content-Type: application/json" \
--data '{
    "service_key": SERVICE_KEY,
    "start_timestamp": "2024-01-01T00:00:00Z",
    "end_timestamp": "2024-12-22T00:00:00Z"
    "query_requests": [
    {
       "data_source": "QUERY_DATA_SOURCE_PCW_DATA",
       "selections": [
          {
             "field": "percent_code_written",
             "name": "percent_code_written"
          },
          {
             "field": "codeium_bytes",
             "name": "codeium_bytes"
          },
          {
             "field": "total_bytes",
             "name": "total_bytes"
          },
          {
             "field": "codeium_bytes_by_autocomplete",
            "name": "codeium_bytes_by_autocomplete"
          },
          {
             "field": "codeium_bytes_by_command",
             "name": "codeium_bytes_by_command"
          }
       ],
     "filters": [
         {
            "filter": "QUERY_FILTER_EQUAL",
            "name": "language",
            "value": "GO"
         }
      ]
    }
  ],
}' \
https: //server.codeium.com/api/v1/Analytics
このクエリは、PCW (Percent Code Written) データと、言語 go でフィルタしたバイト数を取得します。 レスポンス例:
{
  "queryResults": [
    {
      "responseItems": [
         {
            "item": {
               "codeium_bytes": "6018",
               "codeium_bytes_by_autocomplete": "4593",
               "codeium_bytes_by_command": "1425",
               "percent_code_written": "0.61",
               "total_bytes": "9900"
             }
         }
     ]
   }
  ]
}

クエリのデバッグ

1.10.0 以降では、無効なクエリに対してエラーメッセージが返されます。このセクションでは、よくあるエラーメッセージ、その意味、および該当するクエリのデバッグ方法を説明します。
エラーメッセージ説明
at least one field or aggregation is required選択または集計が 1 つも検出されませんでした。クエリリクエストに少なくとも 1 つ含まれていることを確認してください。
invalid aggregation function for string type field ide: QUERY_AGGREGATION_SUM選択項目の 1 つで無効な集計関数が利用されています。この場合、“ide” フィールドに SUM を利用しようとしていますが、このフィールドがサポートしているのは COUNT と UNSPECIFIED のみです。
invalid query table: QUERY_DATA_SOURCE_UNSPECIFIEDdata_source フィールドにスペルミスがある可能性があります。スペルを再確認してください。
all selection fields should have an aggregation function, or none of them should複数の選択フィールドがある場合は、すべてに aggregation_function を含めるか、どれにも含めないようにする必要があります。たとえば、次の選択は無効です。num_acceptances には合計が指定されていますが、num_lines_accepted には指定されていないためです。
"selections": [
  {
    "field": "num_acceptances",
    "name": "total_acceptances",
    "aggregation_function": "QUERY_AGGREGATION_SUM"
  },
  {
    "field": "num_lines_accepted",
    "name": "total_lines_accepted",
    "aggregation_function": "QUERY_AGGREGATION_UNSPECIFIED"
  }
]
注: PCW は常に集計済みとして扱われます。aggregation_function が明示的に選択されていない場合は、unspecified と見なされます。これら両方のフィールドの情報が必要な場合は、別々の 2 つのクエリを利用してください。
invalid aggregation function for string type field ide: QUERY_AGGREGATION_SUMすべてのフィールドがすべての集計関数をサポートしているわけではありません。対応関係については、利用可能なフィールドのセクションを参照してください。この場合、クエリでは “ide” フィールドに QUERY_AGGREGATION_SUM 集計関数を利用していますが、これは無効です。
tried to aggregate on a distinct field: distinct_developer_days. Consider aggregating on the non-distinct fields instead: [api_key date]“distinct_*” パターンのフィールドは aggregations セクションに含めることはできません。このエラーでは、代わりに集計対象として利用できるフィールドが提案されています。したがって、次の代わりに:
"aggregations": [
  {
    "field": "distinct_developer_days",
    "name": "distinct_developer_days"
  }
]
次を試してください:
"aggregations": [
  {
    "field": "api_key",
    "name": "api_key"
  },
  {
    "field": "date",
    "name": "date"
  }
]
duplicate field alias for selection/aggregation: num_acceptancesすべての selections と aggregations には異なる name が必要です。name が指定されていない場合、デフォルトでは <AGGREGATION_FUNCTION>_<FIELD_NAME> に設定されることに注意してください。
invalid group name: GroupName指定された名前のグループが見つかりませんでした。スペルを再確認してください。