公開API

[更新: 2020年1月16日]

「ウェブアクセラレータ」で利用可能なAPIについての説明です。curlコマンドなどでAPIのリクエストを送ることで使用することができます。

注釈

ご利用にはAPIキーが必要です。 APIキーの発行はコントロールパネルの APIキー管理 より行えます。

全般的な仕様

API URL

https://secure.sakura.ad.jp/cloud/zone/is1a/api/cloud/1.1/

さくらのクラウドAPI とは異なり、 ウェブアクセラレータのAPIでは常に is1a (石狩第1ゾーン) を指定してください。

認証

さくらのクラウドAPI と同様、APIキーとシークレットトークンを利用した Basic認証 または Digest認証 を使用します。APIキーとシークレットトークンは、コントロールパネルの APIキー管理 で確認できます。

フォーマット

リクエストのパラメータとレスポンスのフォーマットに JSON を使用しています。

プロトコル

https でのアクセスのみ可能です。httpは使用できません。

文字コード

文字コードは UTF-8 を使用しています。

日付のフォーマット

Datetimeのフォーマットは ISO 8601 を使用しています。以下のような出力になります。

2013-01-14T09:30:00+09:00

レスポンスフォーマット

さくらのクラウド API とは異なり、X-Sakura-API-Beautifyリクエストヘッダによるレスポンスの整形には対応しておりません。

リクエスト数制限

APIの実行目安は1時間500回以内となります。目安以上はAPIを実行しないでください。

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 /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