請求関連API | さくらのクラウド マニュアル
開発者向けの課金用APIのドキュメントです。
こんにちは、UOZUです!
さくらのクラウドには、サーバーやディスクなどの料金をAPIから取得できる機能があります。
料金をプログラムから取得できれば、
といった使い方ができます。
今回は、Linux環境から curl と jq を使って、さくらのクラウドの料金表を取得してみます。
今回取得するのは、実際の利用料金や請求金額ではなく、さくらのクラウドで提供されている各サービスの価格表です。
料金表は、さくらのクラウドAPIの以下のエンドポイントから取得できます。
https://secure.sakura.ad.jp/cloud/zone/is1a/api/cloud/1.1/public/price.json
今回は石狩第1ゾーン is1a を使用します。
公式マニュアルでは、料金表について認証を行わない方法と、APIキーを使用する方法の両方が案内されていますが、今回はAPIキーを使用せず取得してみます。
$ curl -s \
-H "X-Requested-With:XMLHttpRequest" \
https://secure.sakura.ad.jp/cloud/zone/is1a/api/cloud/1.1/public/price.json
大量のJSONが改行なく表示されます。
{"Count":416,"ResponsedAt":"2026-10-04T21:45:37+09:00","ServiceClasses":{"0":{"DisplayName":"\u30d7\u30e9\u30f31(\u30c7\u30a3\u30b9\u30af\u306a\u3057)","IsPublic":true,"Price":{"Daily":110,"Hourly":11,"Monthly":2179,"Zone":"is1a"},"ServiceCharge":"cloud\/uptime","ServiceClassID":50050,"ServiceClassName":"plan\/1","ServiceClassPath":"cloud\/plan\/1"},"1":{"DisplayName":"\u30d7\u30e9\u30f32(\u30c7\u30a3\u30b9\u30af\u306a\u3057)","IsPublic":true,"Price":{"Daily":176,"Hourly":17,"Monthly":3489,"Zone":"is1a"},"ServiceCharge":"cloud\/uptime","ServiceClassID":50051,"ServiceClassName":"plan\/2","ServiceClassPath":"cloud\/plan\/2"},"2":{"DisplayName":"\u30d7\u30e9\u30f33(\u30c7\u30a3\u30b9\u30af\u306a\u3057)","IsPublic":true,"Price":{"Daily":250,"Hourly":24,"Monthly":5008,...
そのままでは確認しづらいため、jq を使用して整形します。
curl -s \
-H "X-Requested-With:XMLHttpRequest" \
https://secure.sakura.ad.jp/cloud/zone/is1a/api/cloud/1.1/public/price.json \
| jq .
これだけで、認証なしで取得できる料金表をJSON形式で確認できます。
{
"Count": 416,
"ResponsedAt": "2026-10-04T21:46:30+09:00",
"ServiceClasses": {
"0": {
"DisplayName": "プラン1(ディスクなし)",
"IsPublic": true,
"Price": {
"Daily": 110,
"Hourly": 11,
"Monthly": 2179,
"Zone": "is1a"
},
"ServiceCharge": "cloud/uptime",
"ServiceClassID": 50050,
"ServiceClassName": "plan/1",
"ServiceClassPath": "cloud/plan/1"
...
サービス名と時間額・日額・月額だけを取り出してみます。
ただし、実際に確認すると Price はすべて同じデータ型ではなく、一部のサービスでは配列になっていました。
そのため、Price がオブジェクトのサービスだけを対象にします。
curl -s \
-H "X-Requested-With:XMLHttpRequest" \
https://secure.sakura.ad.jp/cloud/zone/is1a/api/cloud/1.1/public/price.json \
| jq '
.ServiceClasses[]
| select(.Price | type == "object")
| {
name: .DisplayName,
hourly: .Price.Hourly,
daily: .Price.Daily,
monthly: .Price.Monthly
}
'
{
"name": "プラン/3Core-3GB",
"hourly": 24,
"daily": 247,
"monthly": 4950
}
{
"name": "プラン/3Core-4GB",
"hourly": 27,
"daily": 280,
"monthly": 5610
}
{
"name": "プラン/3Core-5GB",
"hourly": 30,
"daily": 313,
"monthly": 6270
}
※実際に確認したところ、Priceはすべてのサービスで同じ構造ではなく、一部では配列として返されました。そのため、すべてのサービスに対して.Price.Hourlyなどを一律に参照すると、jqでエラーになる場合があります。今回はselect(.Price | type == "object")を使い、Priceがオブジェクト形式のサービスだけを対象にしています。
ServiceClassPath を使えば、特定のサービスだけ抽出できます。
例えばサーバープランだけ取得する場合は以下のようにします。
curl -s \
-H "X-Requested-With:XMLHttpRequest" \
https://secure.sakura.ad.jp/cloud/zone/is1a/api/cloud/1.1/public/price.json \
| jq '
.ServiceClasses[]
| select(
(.ServiceClassPath | startswith("cloud/plan/"))
and
(.Price | type == "object")
)
| {
name: .DisplayName,
hourly: .Price.Hourly,
daily: .Price.Daily,
monthly: .Price.Monthly
}
'
必要なサービスだけを抽出できるため、料金比較や料金シミュレーターにも利用できそうです。
Priceがオブジェクト形式のサービスについて、サービス名・時間額・日額・月額をCSVとして保存することもできます。
curl -s \
-H "X-Requested-With:XMLHttpRequest" \
https://secure.sakura.ad.jp/cloud/zone/is1a/api/cloud/1.1/public/price.json \
| jq -r '
["サービス名","時間額","日額","月額"],
(
.ServiceClasses[]
| select(.Price | type == "object")
| [
.DisplayName,
.Price.Hourly,
.Price.Daily,
.Price.Monthly
]
)
| @csv
' > sakura-price.csv
Excelなどで確認したい場合にも便利です。
"サービス名","時間額","日額","月額"
"プラン1(ディスクなし)",11,110,2179
"プラン2(ディスクなし)",17,176,3489
"プラン3(ディスクなし)",24,250,5008
"プラン4(ディスクなし)",38,387,7731
"プラン5(ディスクなし)",51,523,10455
"プラン6(ディスクなし)",79,795,15903
"プラン7(ディスクなし)",106,1068,21351
"プラン8(ディスクなし)",160,1612,32246
"プラン9(ディスクなし)",215,2157,43036
"プラン10(ディスクなし)",273,2744,54874
"プラン11(ディスクなし)",332,3330,66608
"プラン12(ディスクなし)",424,4252,85046
"プラン13(ディスクなし)",500,5007,100131
"スイッチ",11,110,2200
"ルータ/100Mbps",4,110,2200
"共有セグメント/100Mbps",0,0,0
※2026年10月4日時点で取得した結果の一例です。最新の料金はAPIまたは公式料金表をご確認ください。
価格表APIを利用する場合、いくつか注意点があります。
Price の構造はすべてのサービスで同じとは限らないHourly、Daily、Monthly が必ず存在するとは限らないスクリプトから利用する場合は、データ型や項目の有無を確認しながら処理した方が安全です。
さくらのクラウドでは、各サービスの料金表をAPIからJSON形式で取得できます。
jqと組み合わせることで、必要なサービスだけを抽出したり、CSVとして保存したりすることもできます。
また、取得した料金情報を利用すれば、ゾーンごとの料金比較や料金シミュレーターの作成、料金改定のチェックなどにも活用できます。
Webの料金表を確認するだけでなく、料金情報をプログラムから扱いたい場合に便利なAPIですね。
最後までお読みいただき、ありがとうございました!