概要

はじめに

ご利用方法

本管理画面よりAPIキーを発行する必要があります。APIキーの発行は管理用ユーザ詳細画面より行うことができます。

一般注記事項

API URL

本APIは以下URLをベースに利用します。

https://secure.sakura.ad.jp/rs/admin/api/

認証

本APIは、APIキーとシークレットトークンを利用したBasic認証を使用します。

APIキーとシークレットトークンは、管理用ユーザ詳細画面で発行できます。

認可

各リソースの操作にはAPIキーに紐付いた管理用ユーザに操作したい内容の特権が必要です。

REST API

本APIはRESTベースのAPIとなっており、リクエストやレスポンスのフォーマットの多くにJSON形式を使用しています。

文字コード

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

本APIのデータには以下の型があります。

説明
string 文字列 "foo"
integer 整数 "42"
boolean 真偽値 "0" または "1"
datetime 日付 "2000-01-01T00:00:00+09:00"
array 配列 ["foo","bar"]
object オブジェクト {"foo":"bar"}

注意事項

短期間に集中したアクセスはしないでください。

リソースを複数作成される場合は、個々のリソースの作成が完了してから次のリソースを作成するようにしてください。

APIレスポンス

HTTPステータスコード

本APIは以下で列挙されるHTTPレスポンスコードを返します。

ステータスコード 説明
200 OK 正常に処理され、何らかのレスポンスが返却された。
201 Created 正常に処理され、何らかのリソースが作成された。
204 No Content 正常に処理され、空のレスポンスが返却された。
400 Bad Request リクエストパラメータが不正など。
401 Unauthorized 認証に失敗した。
403 Forbidden リソースへのアクセス権がない。
404 Not Found リソースが存在しない、または指定メソッドに対応していない。
422 Unprocessable Entity バリデーションエラーなど処理できない値が渡された。
500 Internal Server Error 内部エラーが発生した。
503 Service Unavailable 何らかの事情によりサービスが利用可能でない。

レスポンスボディ

レスポンスボディを返すとき、トップレベルに以下のうち少なくとも1つを持つJSON形式のオブジェクトを返します。

キー 説明
data リソースオブジェクトやその配列、または null
meta ページ情報などのメタデータ。
errors エラーオブジェクトの配列。

{
    "data": [
        <Resource Object>,
        <Resource Object>,
        ..
    ],
    "meta": {
        "page": {
            "size": 10,
            "number": 1,
            "total": 42
        }
    }
}

リソースオブジェクト

リソース情報を表すオブジェクトで、以下のいずれか、または複数のキーを持ちます。

キー 説明
type string リソース種別
id string リソースID
attributes object リソースの持つ値。
relationships object リソースのリレーション。

{
    "type": "accounts",
    "id": "1",
    "attributes": {
        "customer_id": "foo",
        "comment": ...
    },
    "relationsihps": {
        "server": {
            "data": {
                "type": "servers",
                "id": "1"
            }
        }
    }
}

エラー

エラーが発生した場合、可能であればトップレベルのキーに errorsキーを含んだエラーオブジェクトの配列をかえします。

エラーオブジェクトは以下のいずれか、またはすべてのキーを持ちます。

キー 説明
code string 該当するエラーのコード。
必ず含まれる。
status string 該当するHTTPステータスコード。
必ず含まれる。
source object 下記のいずれかのキーを含む、エラーへの参照を含むオブジェクト。
pointer
リクエストに含まれる関連する属性やリレーション。
parameter
エラーの原因となったURIのクエリパラメータ。
detail string 人が読むことを前提としたエラーメッセージ。

{
    "errors": [
        {
            "code": "INVALID_ATTRIBUTE",
            "status": 422,
            "source": {
                "pointer": "/data/attributes/foo"
            },
            "detail": "fooは○○できません。"
        }
    ]
}

「リソースの検索」共通インタフェース

リクエストパラメータの共通仕様

リクエストパラメータはURLのクエリストリングとして指定します。

GET /path/to/resources?filter[name]=foo&page[size]=5 HTTP/1.1
ページング

リソースの検索では、以下パラメータを使用して検索結果の取得範囲を限定できます。

リソースによっては、取得可能な最大数が決まっており、それを超えた数を一度に取得することができません。

名前 説明
size integer

ページサイズ。

1ページで取得する数。
`number` と組み合わせて利用。

5
number integer

ページ番号。

取得するページ数。
`size` と組み合わせて利用。
デフォルトは `1`。

1
limit integer

ページリミット。

1ページで取得する最大数。
`offset` と組み合わせて利用。

5
offset integer

オフセット。

取得を開始する件数。
`limit` と組み合わせて利用。
デフォルトは `1`。

1
フィルタリング

filterパラメータを利用して取得するリソースを絞り込むことができます。

フィルタリングの条件は各リソースの説明を確認してください。

レスポンスの共通仕様

「リソースの検索」インタフェースを持つAPIが返すレスポンスは、以下の様なオブジェクト構造を持ちます。

{
    "data": [
        <Resource Object>,
        <Resource Object>,
        ..
    ],
    "meta": {
        "page": {
            "size": 10,
            "number": 1,
            "total": 42
        }
    }
}

リソース取得(GET)

レスポンスの共通仕様

「リソース取得」インタフェースを持つAPIが返すレスポンスは、以下の様なオブジェクト構造を持ちます。

{
    "data": {
        "type": "resources",
        "id": "1",
        "attributes": {
            "foo": "bar",
            "baz": ...
        }
    }
}

リソース登録(POST)

リクエストパラメータの共通仕様

「リソース登録」では、JSON形式で作成したいオブジェクトのデータを指定します。

{
    "data": {
        "type": "resources",
        "attributes": {
            "foo": "bar",
            "baz": ...
        },
        "relationships": {
            "relation-name": {
                "type": "related-resource-name",
                "id": "1"
            }
        }
    }
}

他リソースのリレーションが必要な場合、reationshipsオブジェクトにリソースオブジェクトを設定します。

レスポンスの共通仕様

「リソース取得」インタフェースを持つAPIが返すレスポンスは、以下の様なオブジェクト構造を持ちます。

{
    "data": {
        "type": "resources",
        "id": "1",
        "attributes": {
            "foo": "bar",
            "baz": ...
        },
        "links": {
            "self": "https://secure.sakura.ad.jp/rs/admin/api/resources/1"
        }
    }
}

リソース設定(PATCH)

リクエストパラメータの共通仕様

「リソース設定」では、JSON形式で作成したいオブジェクトのデータを指定します。

{
    "data": {
        "type": "resources",
        "id": "1",
        "attributes": {
            "foo": "bar",
            "baz": ...
        }
    }
}

attributesには、変更を行う値のみを指定することができます。

レスポンスの共通仕様

「リソース取得」インタフェースを持つAPIが返すレスポンスは、以下の様なオブジェクト構造を持ちます。

{
    "data": {
        "type": "resources",
        "id": "1",
        "attributes": {
            "foo": "bar",
            "baz": ...
        }
    }
}

リソース削除(DELETE)

レスポンスの共通仕様

リソースの削除に成功した場合、204のステータスを返し、レスポンスボディは返しません。

事業者ドメイン

オブジェクト構造

名前 説明
type string リソース種別 "partner-domains"
id integer 事業者ドメインID "1"
attributes name string

事業者ドメイン名

"example.com"

事業者ドメインAPI

サーバー

オブジェクト構造

名前 説明
type string リソース種別 "servers"
id integer サーバーID "1"
attributes name string

サーバー名称

"foo"
description string

サーバー説明

"foo\nbar"
hostname string

サーバーのホスト名

"www50000.sakura.ne.jp"
ipv4-address string

サーバーのIPアドレス(IPv4)

"69.89.31.226"
ipv6-address string

サーバーのIPアドレス(IPv6)

"2002:4559:1fe2::4559:1fe2"
cpu-core integer

CPUコア数

"1"
memory-size integer

メモリ容量。

単位はMiByte。

"6144"
storage-size integer

ストレージ容量。

単位はMiByte。

"614400"
storage-quota integer

アカウント割り当て容量

"10240"
registration string

登録数

"42"
registration-capacity string

登録数上限

"700"
has-problem boolean

監視エラー。

サーバーに問題が発生している場合真となります。

"0"

サーバーAPI

サーバープラン

オブジェクト構造

名前 説明
type string リソース種別 "server-plans"
id integer サーバープランID "1"
attributes name string

プラン名

"B"

サーバープランAPI

サーバータイプ

オブジェクト構造

名前 説明
type string リソース種別 "server-types"
id integer サーバータイプID "1"
attributes name string

タイプ名

"1"
cpu-core integer

CPUコア数。

削除予定

"1"
memory-size integer

メモリ容量。

削除予定

"6144"
storage-size integer

ストレージ容量。

削除予定

"614400"

サーバータイプAPI

アカウント

オブジェクト構造

名前 説明
type string リソース種別 "accounts"
id integer アカウントID "1"
attributes customer-id string

カスタマーID。

事業者で使用するコードなど任意のユニークなID。

"cid-000001"
domain string

初期ドメイン名。

UNIXアカウント名+事業者ドメインからなるアカウントの初期ドメイン。

"foo.example.com"
last-login datetime

最終ログイン

"2000-01-01T00:00:00+00:00" または null
storage-quota integer

割り当て容量。

単位はMiByte。

10240
comment string

備考

"任意のコメント"
storage-usage integer

使用量。

アカウントの使用量を表します。
単位はMiByte。

1024
status string

ステータス。

アカウントの状態を表します。
active: 通常
suspended: 休止中

"active" または "suspended"

アカウントAPI

アカウント制限情報

オブジェクト構造

名前 説明
type string リソース種別 "account-restrictions"
id integer アカウント制限情報ID "1"
attributes access-limit string

同時接続数制限

"1" または "unlimited"
access-limit-file string

同時接続数制限(大きなファイル)

"1" または "unlimited"
access-limit-cgi string

CGI同時接続数制限

"1" または "unlimited"
transfer-limit string

転送量制限

"1" または "unlimited"
comment string

コメント。

制限理由などが記載されます。

"20●/●/● プログラムの過負荷により、CGI/PHPが制限されています。"

アカウント制限情報API

アカウントデータベース

オブジェクト構造

名前 説明
type string リソース種別 "account-databases"
id integer アカウントデータベースID "1"
attributes name string

データベース名

"db50001_user1_example"
host string

ホスト名

"www50001.sakura.ne.jp"
version string

バージョン

"5.5"

アカウントデータベースAPI

追加ドメイン

オブジェクト構造

名前 説明
type string リソース種別 "account-domains"
id integer 追加ドメインID "1"
attributes name string

追加ドメイン名

"example.co.jp"
uses-mail-alias integer

メール利用設定。

ドメインをどのようなメールで受信するか設定します。
`0`を設定している場合、`ユーザ名@ドメイン名` 宛のメールを該当のユーザ宛に配信します。
`1`を設定している場合、標準ではユーザ宛に配信せず、メールアドレスごとに受信ユーザを設定することができます。

"0"

追加ドメインAPI

ユーザ(メールアドレス)

オブジェクト構造

名前 説明
type string リソース種別 "account-users"
id string ユーザ(メールアドレス)ID "1-username"
attributes name string

ユーザ名

"username"
description string

説明

"description..."
uses-mail boolean

メール利用

"0" または "1"
mail-quota integer

メール保存設定容量。

単位はByte。

"200"
mail-usage integer

メールボックスサイズ。

単位はByte。

"42"
scans-virus boolean

ウイルスチェック

"0" または "1"
filters-spam boolean

迷惑メールフィルタ

"0" または "1"
filtering-action integer

迷惑メール受信時動作。

迷惑メールを受信した時の動作を指定します。
0: フィルタのみ利用。
1: 迷惑メールフォルダに保存。
2: メールを破棄。

"0" または "1" または "2"
uses-ftp boolean

FTP利用

"0" または "1"
allowed-domains array

FTP許可ドメイン

["foo.example.co.jp","bar.example.co.jp"]
is-default boolean

デフォルト。

デフォルトのユーザ(postmaster)かを表します。

"0" または "1"

ユーザ(メールアドレス)API

メールエイリアス(個別受信設定)

オブジェクト構造

名前 説明
type string リソース種別 "account-mail-aliases"
id string メールエイリアス(個別受信設定)ID "foo@example.co.jp"
attributes mail-address string

メールアドレス

"foo@example.co.jp"
username string

受信ユーザ

"bar"

メールエイリアス(個別受信設定)API