公開API¶
[更新: 2021年3月4日]
「ウェブアクセラレータ」で利用可能なAPIについての説明です。curlコマンドなどでAPIのリクエストを送ることで使用することができます。
注釈
ご利用にはAPIキーが必要です。 APIキーの発行はコントロールパネルの APIキー管理 より行えます。
全般的な仕様¶
API URL¶
https://secure.sakura.ad.jp/cloud/zone/is1a/api/webaccel/1.0/
さくらのクラウドAPI とは異なり、
ウェブアクセラレータのAPIでは常に is1a
(石狩第1ゾーン) を指定してください。
認証¶
さくらのクラウドAPI と同様、APIキーとシークレットトークンを利用した Basic認証
または Digest認証
を使用します。APIキーとシークレットトークンは、コントロールパネルの APIキー管理 で確認できます。
レスポンスフォーマット¶
さくらのクラウド API とは異なり、X-Sakura-API-Beautifyリクエストヘッダによるレスポンスの整形には対応しておりません。
APIレスポンス¶
APIは以下に列挙されるHTTPレスポンスコードを返します。各APIでの具体的な意味合いはそれぞれの説明文中に記載しています。
ステータスコード | 内容 |
---|---|
200 OK | 正常に処理され、何らかのレスポンスが返却された。 |
400 Bad Request | リクエストパラメータが不正等。 |
401 Unauthorized | 認証に失敗した。 |
403 Forbidden | リソースへのアクセス権限がない。 例:他の会員のサイトにアクセスしようとした。 |
404 Not Found | リソースが存在しない。 例:000000000001 というサイトは存在しないのに /site/000000000001/certificate というリソースにアクセスした。 |
500 Internal Server Error | 内部エラーが発生した。 例:DB接続に失敗した。 |
リクエストパラメータの共通仕様¶
ウェブアクセラレータのAPIでは さくらのクラウド API のリクエストパラメータの共通仕様には対応しておりません。
サイト一覧取得API¶
URL | /site |
---|---|
Method | GET |
内容 | サイト一覧を取得する。 |
リクエストの例¶
GET https://secure.sakura.ad.jp/cloud/zone/is1a/api/webaccel/1.0/site HTTP/1.1
リクエストボディ
なし
レスポンスボディ
{
"Total": 2,
"From": 0,
"Count": 2,
"CountLimit": 20,
"Sites": [
{
"Index": 0,
"ID": "000000000001",
"Name": "サイト1",
"DomainType": "own_domain",
"Domain": "cdn1.example.com",
"Subdomain": "0f5cty4g.user.webaccel.jp",
"ASCIIDomain": "cdn1.example.com",
"Origin": "198.51.100.1",
"HostHeader": "cdn2.example.com",
"Status": "enabled",
"CreatedAt": "2015-11-13T02:56:01+09:00",
"HasCertificate": true,
"HasOldCertificate": false,
"GibSentInLastWeek": 80,
"CertValidNotBefore": 1457568000000, // 2016-03-10 00:00:00 +0000 UTC の通算ミリ秒
"CertValidNotAfter": 1526558400000 // 2018-05-17 12:00:00 +0000 UTC の通算ミリ秒
},
{
"Index": 1,
"ID": "000000000002",
"Name": "サイト2",
"DomainType": "subdomain",
"Domain": "さくら.example.jp",
"Subdomain": "0uwjbk35.user.webaccel.jp",
"ASCIIDomain": "xn--y8jl1n.example.jp",
"Origin": "198.51.100.2",
"HostHeader": "cdn2.example.com",
"Status": "disabled",
"CreatedAt": "2015-11-13T02:57:01+09:00",
"HasCertificate": true,
"HasOldCertificate": false,
"GibSentInLastWeek": 180,
"CertValidNotBefore": 1457568000000, // 2016-03-10 00:00:00 +0000 UTC の通算ミリ秒
"CertValidNotAfter": 1526558400000 // 2018-05-17 12:00:00 +0000 UTC の通算ミリ秒
}
],
"is_ok": true
}
curl(Linux)の例¶
$ curl --user "Access Token":"Access Token Secret" \
https://secure.sakura.ad.jp/cloud/zone/is1a/api/webaccel/1.0/site
月別使用量取得API¶
URL | /monthlyusage?target=:target |
---|---|
Method | GET |
内容 | クラウドアカウントに登録されている全サイトの月別使用量を取得する。 targetフィールドの値は「yyyymm」形式で対象年月を指定する。 (例: 2021年02月の場合は、「202102」と指定。) 指定がない場合は、今月の月別使用量を取得する。 |
リクエストの例¶
GET https://secure.sakura.ad.jp/cloud/zone/is1a/api/webaccel/1.0/monthlyusage?target=202102 HTTP/1.1
リクエストボディ
なし
レスポンスボディ
{
"Year": 2021,
"Month": 2,
"MonthlyUsages": [
{
"SiteID": "000000000001",
"Domain": "cdn1.example.com",
"ASCIIDomain": "cdn1.example.com",
"Subdomain": "0f5cty4g.user.webaccel.jp",
"AccessCount": 2070702,
"BytesSent": 18524070906,
"CacheMissBytesSent": 926203545,
"CacheHitRatio": 85.138888888889,
"BytesCacheHitRatio": 89.134258088490,
"Price": 85
},
{
"SiteID": "000000000002",
"Domain": "さくら.example.jp",
"ASCIIDomain": "xn--y8jl1n.example.jp",
"Subdomain": "0uwjbk35.user.webaccel.jp",
"AccessCount": 144,
"BytesSent": 77784,
"CacheMissBytesSent": 5724,
"CacheHitRatio": 89.138888888889,
"BytesCacheHitRatio": 92.641160135760,
"Price": 0
},
],
"Success": true,
"is_ok": true
}
curl(Linux)の例¶
$ curl --user "Access Token":"Access Token Secret" \
https://secure.sakura.ad.jp/cloud/zone/is1a/api/webaccel/1.0/monthlyusage
証明書の情報を取得API¶
URL | /site/:siteid/certificate?type=:type |
---|---|
Method | GET |
内容 | typeフィールドの値は 「current」, 「old」のいずれかです。 指定が無い場合は両方を取得します。 |
リクエストの例¶
GET https://secure.sakura.ad.jp/cloud/zone/is1a/api/webaccel/1.0/site/000000000001/certificate HTTP/1.1
リクエストボディ
なし
レスポンスボディ
{
"Certificate": {
"Current": {
"ID": "1",
"SiteID": "000000000001",
"CertificateChain": "-----BEGIN CERTIFICATE-----・・・・・",
"SerialNumber": "00:FF:00:FF:00:FF:00:FF:00:FF:00:FF:00:FF:00:FF",
"NotBefore": "1532736000000", // 2018-07-28 00:00:00 +0000 UTC の通算ミリ秒
"NotAfter": "1579089600000", // 2020-01-15 12:00:00 +0000 UTC の通算ミリ秒
"Issuer": {
"Country": "JP",
"Organization": "Example",
"OrganizationalUnit": "www.example.jp",
"CommonName": "Example SHA2 Extended Validation Server CA"
},
"Subject": {
"Country": "JP",
"Organization": "SAKURA Internet Inc.",
"OrganizationalUnit": "",
"Locality": "Osaka",
"Province": "Osaka-City",
"StreetAddress": "",
"PostalCode": "",
"SerialNumber": "1234567",
"CommonName": "www.sakura.ad.jp"
},
"DNSNames": [
"sakura.ad.jp",
"www.sakura.ad.jp"
],
"SHA256Fingerprint": "00:FF:00:FF:00:FF:00:FF:00:FF:00:FF:00:FF:00:FF:00:FF:00:FF:00:FF:00:FF:00:FF:00:FF:00:FF:00:FF",
"CreatedAt": "2016-11-22T11:37:39+09:00",
"UpdatedAt": "2018-07-28T16:01:42+09:00"
},
"Old": [
{
"ID": "2",
"SiteID": "000000000001",
"CertificateChain": "-----BEGIN CERTIFICATE-----・・・・・",
"SerialNumber": "00:FF:00:FF:00:FF:00:FF:00:FF:00:FF:00:FF:00:FF",
"NotBefore": "1479254400000", // 2016-11-16 00:00:00 +0000 UTC の通算ミリ秒
"NotAfter": "1579132799000", // 2020-01-15 23:59:59 +0000 UTC の通算ミリ秒
"Issuer": {
"Country": "JP",
"Organization": "Example",
"OrganizationalUnit": "www.example.jp",
"CommonName": "Example SHA2 Extended Validation Server CA"
},
"Subject": {
"Country": "JP",
"Organization": "SAKURA Internet Inc.",
"OrganizationalUnit": "",
"Locality": "Osaka",
"Province": "Osaka-City",
"StreetAddress": "",
"PostalCode": "",
"SerialNumber": "1234567",
"CommonName": "www.sakura.ad.jp"
},
"DNSNames": [
"sakura.ad.jp",
"www.sakura.ad.jp"
],
"SHA256Fingerprint": "00:FF:00:FF:00:FF:00:FF:00:FF:00:FF:00:FF:00:FF:00:FF:00:FF:00:FF:00:FF:00:FF:00:FF:00:FF:00:FF",
"CreatedAt": "2018-07-28T16:01:42+09:00",
"UpdatedAt": "2018-07-28T16:01:42+09:00"
}
]
},
"is_ok": true
}
curl(Linux)の例¶
$ curl --user "Access Token":"Access Token Secret" \
https://secure.sakura.ad.jp/cloud/zone/is1a/api/webaccel/1.0/site/000000000001/certificate
証明書と秘密鍵の情報を作成API¶
URL | /site/:siteid/certificate |
---|---|
Method | POST |
内容 | 現世代の証明書と秘密鍵の情報を追加する。 前世代には更新前の現世代の証明書と秘密鍵の情報が設定される。 |
リクエストの例¶
POST https://secure.sakura.ad.jp/cloud/zone/is1a/api/webaccel/1.0/site/000000000001/certificate HTTP/1.1
リクエストボディ
{
"Certificate": {
"CertificateChain": "-----BEGIN CERTIFICATE-----・・・・・",
"Key": "-----BEGIN RSA PRIVATE KEY-----・・・・・"
}
}
レスポンスボディ
{
"Certificate": {
"Current":{
"ID": "1",
"ResourceID":"28",
"CertificateChain": "-----BEGIN CERTIFICATE-----・・・・・",
"CreatedAt": "2015-11-13T02:57:01+09:00",
"UpdatedAt": "2015-11-14T02:57:01+09:00"
}
}
"Success": true,
"is_ok": true
}
curl(Linux)の例¶
$ curl --user "Access Token":"Access Token Secret" \
-X POST -d '{"Certificate": {"Certificate": "-----BEGIN CERTIFICATE-----・・・・・","Key":"-----BEGIN RSA PRIVATE KEY-----・・・・・"}}' \
https://secure.sakura.ad.jp/cloud/zone/is1a/api/webaccel/1.0/site/000000000001/certificate
証明書と秘密鍵の情報を更新API¶
URL | /site/:siteid/certificate |
---|---|
Method | PUT |
内容 | 現世代の証明書と秘密鍵の情報を更新する。 前世代には更新前の現世代の証明書と秘密鍵の情報が設定される。 |
リクエストの例¶
PUT https://secure.sakura.ad.jp/cloud/zone/is1a/api/webaccel/1.0/site/000000000001/certificate HTTP/1.1
リクエストボディ
{
"Certificate": {
"CertificateChain": "-----BEGIN CERTIFICATE-----・・・・・",
"Key": "-----BEGIN RSA PRIVATE KEY-----・・・・・"
}
}
秘密鍵を変更しない場合は "Key" の項目は省略可能です
レスポンスボディ
{
"Certificate": {
"Current":{
"ID": "1",
"SiteID": "000000000001",
"CertificateChain": "-----BEGIN CERTIFICATE-----・・・・・",
"Key": "-----BEGIN RSA PRIVATE KEY-----・・・・・",
"CreatedAt": "2015-11-13T02:57:01+09:00",
"UpdatedAt": "2015-11-14T02:57:01+09:00"
},
"Old": [
{
"ID": "1",
"SiteID": "000000000001",
"CertificateChain": "-----BEGIN CERTIFICATE-----・・・・・",
"CreatedAt": "2015-11-13T02:57:01+09:00",
"UpdatedAt": "2015-11-14T02:57:01+09:00"
}
]
}
"Success": true,
"is_ok": true
}
curl(Linux)の例¶
$ curl --user "Access Token":"Access Token Secret" \
-X PUT -d '{"Certificate": {"Certificate": "-----BEGIN CERTIFICATE-----・・・・・"}}' \
https://secure.sakura.ad.jp/cloud/zone/is1a/api/webaccel/1.0/site/000000000001/certificate
キャッシュ全件削除API¶
URL | /deleteallcache |
---|---|
Method | POST |
内容 | 1つのサイト内の全てのキャッシュを削除する。 |
リクエストの例¶
POST https://secure.sakura.ad.jp/cloud/zone/is1a/api/webaccel/1.0/deleteallcache HTTP/1.1
リクエストボディ
{
"Site": {
"Domain": "example.com"
}
}
ドメインには公開ドメイン名を指定
レスポンスボディ
{
"Success": true,
"is_ok": true
}
curl(Linux)の例¶
$ curl --user "Access Token":"Access Token Secret" \
-X POST -d '{"Site": {"Domain": "example.com"}}' \
https://secure.sakura.ad.jp/cloud/zone/is1a/api/webaccel/1.0/deleteallcache
キャッシュ別削除API¶
URL | /deletecache |
---|---|
Method | POST |
内容 | キャッシュを削除する。 |
注意
キャッシュ別削除が可能なURL数の目安は1時間500個までとなります。URLを500個以上削除する場合は時間を空けて削除を行って下さい。
リクエストの例¶
POST https://secure.sakura.ad.jp/cloud/zone/is1a/api/webaccel/1.0/deletecache HTTP/1.1
リクエストボディ
{
"URL": [
"http://example.com/url1",
"http://example.com/url2",
"http://example.com/url3"
]
}
URLは最大100個まで指定可能
レスポンスボディ
{
"Results": [
{ "URL": "http://example.com/url1", "Status": 200, "Result": "OK" },
{ "URL": "http://example.com/url2", "Status": 404, "Result": "Not Found" },
{ "URL": "http://example.com/url3", "Status": 403, "Result": "Forbidden" },
{ "URL": "http://example.com/url4", "Status": 500, "Result": "Internal Server Error" }
],
"Success": true,
"is_ok": true
}
curl(Linux)の例¶
$ curl --user "Access Token":"Access Token Secret" \
-X POST -d '{"URL": ["http://www.example.com/wp-content/uploads/2016/7/example.jpg"]}' \
https://secure.sakura.ad.jp/cloud/zone/is1a/api/webaccel/1.0/deletecache