GTmetrixAPIでサイトのページロード時間を取得する
サイトパフォーマンステストサービスであるGTmetrixのAPIを利用して、 このブログのページロード時間を取得しました。

GTmetrixAPIについて
詳しい説明は公式ページに掲載されているので、そちらをご確認ください。
GTmetrix REST API | GTmetrix
無料(Basic)プランと有料プランがあるのですが、今回は無料プランを利用しました。
以下、無料プランの内容です。
- 1解析要求 = 1クレジット
- 無料ユーザは毎日20クレジットを貰える
- 最初のAPIキー作成で、テスト利用で使うために100クレジットを貰える
以下、料金プランです。

GTmetrixAPIの利用方法
GTmetrixAPIを利用するために、API Keyを発行します。
まず、GTmetrixAPIのサイトからSign UPします。

Sign UPが完了するとAPI keyが作成できるので作成します。

API keyを作成するとAPI Keyや現在のクレジット数などの情報が表示されるようになります。
解析に必要なクレジットも100与えられていることが分かりますね。

これで準備完了です。
GTmetrixAPIを利用する
このブログのページロード時間を取得します。
まず、このブログページを解析し、解析結果ページのurlを取得します。
curl --user [登録メールアドレス]:[APIキー] \
--form url=http://takedajs.hatenablog.jp/ --form x-metrix-adblock=0 \
https://gtmetrix.com/api/0.1/test
上記のcurlコマンドを叩いた結果です。
この解析をすることでクレジットが1減ります。
{"test_id":"GlDaptHf","poll_state_url":"https://gtmetrix.com/api/0.1/test/GlDaptHf"}
次に、解析結果ページのurlを元に解析結果を取得します。
curl --user [登録メールアドレス]:[APIキー] \
https://gtmetrix.com/api/0.1/test/GlDaptHf
上記のcurlコマンドを叩いた結果です。
目的であったページロード時間であるpage_load_time(ms)が取れているとこが分かります。
{
"error": "",
"resources": {
"har": "https://gtmetrix.com/api/0.1/test/GlDaptHf/har",
"pagespeed": "https://gtmetrix.com/api/0.1/test/GlDaptHf/pagespeed",
"pagespeed_files": "https://gtmetrix.com/api/0.1/test/GlDaptHf/pagespeed-files",
"report_pdf": "https://gtmetrix.com/api/0.1/test/GlDaptHf/report-pdf",
"report_pdf_full": "https://gtmetrix.com/api/0.1/test/GlDaptHf/report-pdf?full=1",
"screenshot": "https://gtmetrix.com/api/0.1/test/GlDaptHf/screenshot",
"yslow": "https://gtmetrix.com/api/0.1/test/GlDaptHf/yslow"
},
"results": {
"html_bytes": "18145",
"html_load_time": "317",
"page_bytes": "40431915",
"page_elements": "231",
"page_load_time": "8235",
"pagespeed_score": "18",
"report_url": "https://gtmetrix.com/reports/takedajs.hatenablog.jp/cXeiHRtQ",
"yslow_score": "46"
},
"state": "completed"
}
まとめ
登録からcurlコマンドでのページロード時間取得まで、簡単にできました。
ただ、より正確な数値を出すためには、定期的にページロード時間を取得して、取得結果の平均を出す必要があります。GTmetrixAPIを利用するためのPHPライブラリが提供されているので、それを利用して簡単なアプリケーションを作ってみたいと思います。