CircleCIのUsage APIを触ってみた！


<!--

## 技術記事のタイトル

最も伝えたいこと。
簡潔かつ分かりやすく過不足ないタイトルを考えましょう。

### 【 】(墨付き括弧)

- 【言語やサービス】
    - 例1.【Python】すぐにpytestで単体テストを実行するまでの手順
- 【言いたいこと】
    - 例1.【必見】Objectはどこに消えた？
- 【前提】
    - 例1.【個人開発】○○を○○できるサービスをリリースしました
    - 例2.【初心者向け】Reactとはそもそも何なのか説明します
- 【続き物の番号】
    - 例1.【2024年版】新入社員向け研修資料を公開します
    - 例2.【環境構築編】Windows11でPythonを実行するまで

【前提】詳しいタイトル【言語やサービス】のように、複数を併用するパターンもあります。

-->

## はじめに
<!--
何についての記事なのか、誰に向けた記事なのかを簡単に説明しましょう。
-->

CircleCIの基本的なデータは、お客様管理画面(User Page)からOverviewやInsigntsタブを通して確認する事が出来ます。しかし、より細かくデータを取得/分析したい場合は、こちらのAPI機能を使っていただくのがオススメです！

### この記事でわかる・できること
<!--
読んだら何がわかるようになるのか、何ができるようになるのかを書きましょう。
-->

- Usage APIの使い方
- データの取得方法


### この記事の対象者
<!--
誰に向けた記事なのかを明確にすることで読者に選んでもらいましょう。
-->

- CircleCI 初心者
- データに興味がある方
- より深く数値を分析したい方


## 早速データを取得してみた！
<!--
章全体の要約や、何について書くのかをここに書きます。
記事が長い時や資料として作るときは番号を振ることをおすすめします。
章を増やすときは章から項までをコピーしてください。
-->


### 1. まずは自分のOrganization IDを確認する
<!--
記事の主要な部分です。ここに思い思いの内容を書いていってください。

画像やGIFがあると分かりやすいです。
画像があるとUIが変わったとしても読者がアタリをつけて対応しやすくなります。

コードを記載する場合は必ずコードブロックを使いましょう。
バッククオート3つで囲んでください。
```python:表示名

    print('Hello World')
    
```
-->




#### 自社CircleCIのIDは以下のお客様管理画面(イメージ)から見る事が可能です。
<!--
より詳細な内容を書いたり、事例を挙げたりするときに使います。
- 節の内容の列挙
- 節の補足事項
- 例外
-->

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4075983/88c3f65a-2cff-4e56-93c4-d7b2a701ae17.png)

### 2.ユーザー画面からAPI Tokensを発行する
<!--
記事の主要な部分です。ここに思い思いの内容を書いていってください。

画像やGIFがあると分かりやすいです。
画像があるとUIが変わったとしても読者がアタリをつけて対応しやすくなります。

コードを記載する場合は必ずコードブロックを使いましょう。
バッククオート3つで囲んでください。
```python:表示名

    print('Hello World')
    
```
-->




#### CircleCIのUser Settings→Personal API Tokens→Create New Tokenをクリックします。
<!--
より詳細な内容を書いたり、事例を挙げたりするときに使います。
- 節の内容の列挙
- 節の補足事項
- 例外
-->

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4075983/5def2e13-aa23-43a6-9c71-e0547a6b8a1e.png)



### 3.Usage APIのDocumentationからCreate a usage exportを参照する
<!--
右上のRequeっz。

画像やGIFがあると分かりやすいです。
画像があるとUIが変わったとしても読者がアタリをつけて対応しやすくなります。

コードを記載する場合は必ずコードブロックを使いましょう。
バッククオート3つで囲んでください。
```python:表示名

    print('Hello World')
    
```
-->




#### 画面右上のRequest Samplesをコピーしてurl,Token,data(取得したい日付)を編集します。ターミナルを起動して実行し、usage_export_job IDを取得します。
<!--
より詳細な内容を書いたり、事例を挙げたりするときに使います。
- 節の内容の列挙
- 節の補足事項
- 例外
-->

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4075983/316a3225-8ac0-482e-953d-8c18ae9da600.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4075983/dbdedb87-bb23-40a0-a0e7-0b503ff1c27e.png)


### 4.Get a usage exportからデータを取得する
<!--
記事の主要な部分です。ここに思い思いの内容を書いていってください。

画像やGIFがあると分かりやすいです。
画像があるとUIが変わったとしても読者がアタリをつけて対応しやすくなります。

コードを記載する場合は必ずコードブロックを使いましょう。
バッククオート3つで囲んでください。
```python:表示名

    print('Hello World')
    
```
-->




#### 同様に画面右上のSamplesをCopyし、url, usage_export_job IDとTokenを編集します。
<!--
より詳細な内容を書いたり、事例を挙げたりするときに使います。
- 節の内容の列挙
- 節の補足事項
- 例外
-->

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4075983/88adb058-8b82-4069-a08f-ea74fcaeb161.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4075983/ed5aba37-0da9-4163-b07b-e31e4d4599b9.png)

### 5.抽出されたdownload_urlsの箇所をコピー
<!--
記事の主要な部分です。ここに思い思いの内容を書いていってください。

画像やGIFがあると分かりやすいです。
画像があるとUIが変わったとしても読者がアタリをつけて対応しやすくなります。

コードを記載する場合は必ずコードブロックを使いましょう。
バッククオート3つで囲んでください。
```python:表示名

    print('Hello World')
    
```
-->




#### ブラウザに該当箇所をペーストする事で、PCへのダウンロードが自動で始まります。
<!--
より詳細な内容を書いたり、事例を挙げたりするときに使います。
- 節の内容の列挙
- 節の補足事項
- 例外
-->


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4075983/c03fe1a8-7bf7-426b-9550-261028f9d287.png)



### 6.ダウンロードされたデータを確認する
<!--
記事の主要な部分です。ここに思い思いの内容を書いていってください。

画像やGIFがあると分かりやすいです。
画像があるとUIが変わったとしても読者がアタリをつけて対応しやすくなります。

コードを記載する場合は必ずコードブロックを使いましょう。
バッククオート3つで囲んでください。
```python:表示名

    print('Hello World')
    
```
-->




#### 以下画像は一部ですが、ジョブ毎の細かな数値を取得する事が出来ます。
<!--
より詳細な内容を書いたり、事例を挙げたりするときに使います。
- 節の内容の列挙
- 節の補足事項
- 例外
-->

![Screenshot 2025-05-08 at 14.37.08.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4075983/a98d1a1f-9fc8-4ac0-b243-5a418e9720ac.png)




## 参考資料
<!--

https://circleci.com/changelog/introducing-the-usage-api/

[リンク1](https://circleci.com/changelog/introducing-the-usage-api/)
-->

https://circleci.com/changelog/introducing-the-usage-api/


## おわりに・まとめ

いかがでしたでしょうか？私も初めて利用したのですが、短時間で様々なデータを取得する事が出来て、大変便利な機能だと思いました！日本のお客様にも数多くご利用いただいておりますし、他ツールと組み合わせる事でより高度な分析も可能です。Usage APIを活用して、CircleCIの利用率向上を目指していきましょう！

CircleCIについてもっと知りたい方は、[こちらからお問い合わせ](https://circleci.com/ja/contact/)いただけます。
また、すぐに使ってみたい方は[無料サインアップ](https://circleci.com/signup?lang=ja)もご利用いただけます。

<!--
どちらかを書きます。あってもなくても良いです。
-->