API リファレンス
どのエンドポイントも、URL の頭は https://api.ashikanw.com/v1 です。
APIキーを Authorization: Bearer ヘッダに入れて送ります。キーの作り方やエラーの形は API の使い方 をご覧ください。
例の $ASHIKA_API_KEY は、発行した APIキー(ashk_ で始まるもの)に置き換えてください。
エンドポイントの一覧
| メソッド | パス | 内容 |
|---|---|---|
| GET | /account | アカウントを見る |
| GET | /servers | サーバーの一覧 |
| GET | /servers/{id} | サーバーを見る |
| POST | /servers/{id}/power | 起動・停止・再起動 |
| POST | /servers/{id}/command | コマンドを送る |
| GET | /servers/{id}/logs | コンソールの出力 |
| GET | /servers/{id}/files/list | フォルダの中身 |
| GET | /servers/{id}/files/contents | テキストを読む |
| PUT | /servers/{id}/files/contents | ファイルを書く・送る |
| GET | /servers/{id}/files/download | ダウンロード |
| POST | /servers/{id}/files/folder | フォルダを作る |
| POST | /servers/{id}/files/rename | 名前を変える・動かす |
| POST | /servers/{id}/files/delete | 消す |
アカウント
アカウントを見る
GET/account
キーの持ち主のアカウントと、残高を返します。
curl https://api.ashikanw.com/v1/account \
-H "Authorization: Bearer $ASHIKA_API_KEY"{
"data": {
"id": "clx0abc123",
"email": "[email protected]",
"name": "あなたの名前",
"balanceYen": 300
}
}サーバー
サーバーの一覧
GET/servers
自分のサーバーを、作った順に返します。状態(status)はパネルが最後に確かめたときのものです。今の状態は「サーバーを見る」で取れます。
curl https://api.ashikanw.com/v1/servers \
-H "Authorization: Bearer $ASHIKA_API_KEY"{
"data": [
{
"id": "1a2bc34d",
"uuid": "6f1c2b3a-6a3e-4c5b-9a1d-2f7e8c9b0a1d",
"name": "my-bot",
"status": "RUNNING",
"suspended": false,
"plan": {
"slug": "mini",
"name": "ミニ"
},
"software": {
"slug": "python",
"name": "Python"
},
"location": "大阪",
"limits": {
"memoryMb": 256,
"cpuPercent": 20,
"diskMb": 512
},
"address": {
"ip": "node1.ashikanw.com",
"port": 4012
},
"allocations": [
{
"ip": "node1.ashikanw.com",
"port": 4012,
"primary": true,
"note": ""
}
],
"sftpEnabled": false,
"supported": false,
"expiresAt": "2026-11-06T12:00:00.000Z",
"createdAt": "2026-10-07T12:00:00.000Z"
}
]
}サーバーを見る
GET/servers/{id}
サーバー1台の情報に、今の状態と使用量(resources)を足して返します。止まっているときの resources は null です。
| 名前 | 場所 | 説明 |
|---|---|---|
id | パス | サーバーの ID。パネルの URL やサーバー一覧に出る 8 文字(例: 1a2bc34d)か、UUID。 |
curl https://api.ashikanw.com/v1/servers/1a2bc34d \
-H "Authorization: Bearer $ASHIKA_API_KEY"{
"data": {
"id": "1a2bc34d",
"uuid": "6f1c2b3a-6a3e-4c5b-9a1d-2f7e8c9b0a1d",
"name": "my-bot",
"status": "RUNNING",
"suspended": false,
"plan": {
"slug": "mini",
"name": "ミニ"
},
"software": {
"slug": "python",
"name": "Python"
},
"location": "大阪",
"limits": {
"memoryMb": 256,
"cpuPercent": 20,
"diskMb": 512
},
"address": {
"ip": "node1.ashikanw.com",
"port": 4012
},
"allocations": [
{
"ip": "node1.ashikanw.com",
"port": 4012,
"primary": true,
"note": ""
}
],
"sftpEnabled": false,
"supported": false,
"expiresAt": "2026-11-06T12:00:00.000Z",
"createdAt": "2026-10-07T12:00:00.000Z",
"resources": {
"cpuPercent": 1.42,
"memoryBytes": 73400320,
"memoryLimitBytes": 268435456,
"networkRxBytes": 1048576,
"networkTxBytes": 524288,
"uptimeSeconds": 3600
}
}
}起動・停止・再起動
POST/servers/{id}/power
サーバーを起動・停止・再起動・強制終了します。終わってからの状態を返します。期限切れで止まっているサーバーは動かせません(409)。
| 名前 | 場所 | 説明 |
|---|---|---|
id | パス | サーバーの ID。パネルの URL やサーバー一覧に出る 8 文字(例: 1a2bc34d)か、UUID。 |
signal | 本文 | start(起動)・stop(停止)・restart(再起動)・kill(強制終了)のどれか。 |
curl -X POST https://api.ashikanw.com/v1/servers/1a2bc34d/power \
-H "Authorization: Bearer $ASHIKA_API_KEY" \
-H "Content-Type: application/json" \
-d '{"signal": "restart"}'{
"data": {
"signal": "restart",
"status": "RUNNING"
}
}コマンドを送る
POST/servers/{id}/command
コンソールに1行送ります(プログラムの標準入力に書き込まれます)。動いていないサーバーには送れません(409)。
| 名前 | 場所 | 説明 |
|---|---|---|
id | パス | サーバーの ID。パネルの URL やサーバー一覧に出る 8 文字(例: 1a2bc34d)か、UUID。 |
command | 本文 | 送る文字。改行なしで 2000 文字まで。 |
curl -X POST https://api.ashikanw.com/v1/servers/1a2bc34d/command \
-H "Authorization: Bearer $ASHIKA_API_KEY" \
-H "Content-Type: application/json" \
-d '{"command": "say hello"}'{
"data": {
"sent": true
}
}コンソールの出力
GET/servers/{id}/logs
コンソールの直近の出力を、1行ずつの配列で返します。
| 名前 | 場所 | 説明 |
|---|---|---|
id | パス | サーバーの ID。パネルの URL やサーバー一覧に出る 8 文字(例: 1a2bc34d)か、UUID。 |
lines | クエリ | 何行さかのぼるか。1〜1000。省略すると 100。 |
curl "https://api.ashikanw.com/v1/servers/1a2bc34d/logs?lines=20" \
-H "Authorization: Bearer $ASHIKA_API_KEY"{
"data": {
"lines": [
"Logged in as my-bot#1234",
"Ready."
]
}
}ファイル
パスはサーバーのフォルダ(コンテナの /home/container)からの位置で、/ から書きます。サーバーのフォルダの外には出られません。
フォルダの中身
GET/servers/{id}/files/list
フォルダの中のファイルとフォルダを返します。フォルダが先、名前の順です。type は file・directory・symlink のどれかです。
| 名前 | 場所 | 説明 |
|---|---|---|
id | パス | サーバーの ID。パネルの URL やサーバー一覧に出る 8 文字(例: 1a2bc34d)か、UUID。 |
path | クエリ | 見るフォルダ。省略すると /。 |
curl "https://api.ashikanw.com/v1/servers/1a2bc34d/files/list?path=/" \
-H "Authorization: Bearer $ASHIKA_API_KEY"{
"data": [
{
"name": "cogs",
"path": "/cogs",
"type": "directory",
"size": 4096,
"modifiedAt": "2026-10-07T12:00:00.000Z",
"mode": "755"
},
{
"name": "main.py",
"path": "/main.py",
"type": "file",
"size": 1234,
"modifiedAt": "2026-10-07T12:00:00.000Z",
"mode": "644"
}
]
}テキストを読む
GET/servers/{id}/files/contents
テキストファイルの中身を、そのまま本文で返します(JSON ではありません)。2MB まで。大きいファイルや画像は「ダウンロード」を使ってください。
| 名前 | 場所 | 説明 |
|---|---|---|
id | パス | サーバーの ID。パネルの URL やサーバー一覧に出る 8 文字(例: 1a2bc34d)か、UUID。 |
path | クエリ | 読むファイル。 |
curl "https://api.ashikanw.com/v1/servers/1a2bc34d/files/contents?path=/config.json" \
-H "Authorization: Bearer $ASHIKA_API_KEY"{
"prefix": "!"
}ファイルを書く・送る
PUT/servers/{id}/files/contents
本文をそのままファイルに書きます。テキストでも画像などでも構いません。ファイルが無ければ作り、途中のフォルダも作ります。あれば上書きします。50MB まで(それより大きいものは SFTP で)。ディスクの上限を超える場合は書きません。
| 名前 | 場所 | 説明 |
|---|---|---|
id | パス | サーバーの ID。パネルの URL やサーバー一覧に出る 8 文字(例: 1a2bc34d)か、UUID。 |
path | クエリ | 書くファイル。 |
本文 | 本文 | ファイルの中身。 |
curl -X PUT "https://api.ashikanw.com/v1/servers/1a2bc34d/files/contents?path=/main.py" \
-H "Authorization: Bearer $ASHIKA_API_KEY" \
--data-binary @main.py{
"data": {
"path": "/main.py",
"size": 1234
}
}ダウンロード
GET/servers/{id}/files/download
ファイルをそのまま返します。大きさの上限はありません。
| 名前 | 場所 | 説明 |
|---|---|---|
id | パス | サーバーの ID。パネルの URL やサーバー一覧に出る 8 文字(例: 1a2bc34d)か、UUID。 |
path | クエリ | 取り出すファイル。 |
curl -o world.zip "https://api.ashikanw.com/v1/servers/1a2bc34d/files/download?path=/world.zip" \
-H "Authorization: Bearer $ASHIKA_API_KEY"(ファイルの中身)フォルダを作る
POST/servers/{id}/files/folder
フォルダを作ります。途中のフォルダも作ります。すでにあれば何もしません。
| 名前 | 場所 | 説明 |
|---|---|---|
id | パス | サーバーの ID。パネルの URL やサーバー一覧に出る 8 文字(例: 1a2bc34d)か、UUID。 |
path | 本文 | 作るフォルダ。 |
curl -X POST https://api.ashikanw.com/v1/servers/1a2bc34d/files/folder \
-H "Authorization: Bearer $ASHIKA_API_KEY" \
-H "Content-Type: application/json" \
-d '{"path": "/data/logs"}'{
"data": {
"path": "/data/logs"
}
}名前を変える・動かす
POST/servers/{id}/files/rename
ファイルやフォルダの名前を変えます。別のフォルダを指せば、そこへ動かします。
| 名前 | 場所 | 説明 |
|---|---|---|
id | パス | サーバーの ID。パネルの URL やサーバー一覧に出る 8 文字(例: 1a2bc34d)か、UUID。 |
from | 本文 | 今の場所。 |
to | 本文 | 新しい場所。 |
curl -X POST https://api.ashikanw.com/v1/servers/1a2bc34d/files/rename \
-H "Authorization: Bearer $ASHIKA_API_KEY" \
-H "Content-Type: application/json" \
-d '{"from": "/main.py", "to": "/old/main.py"}'{
"data": {
"from": "/main.py",
"to": "/old/main.py"
}
}消す
POST/servers/{id}/files/delete
ファイルやフォルダを消します。フォルダは中身ごと消えます。元には戻せません。
| 名前 | 場所 | 説明 |
|---|---|---|
id | パス | サーバーの ID。パネルの URL やサーバー一覧に出る 8 文字(例: 1a2bc34d)か、UUID。 |
paths | 本文 | 消すものの配列。1〜100 個。 |
curl -X POST https://api.ashikanw.com/v1/servers/1a2bc34d/files/delete \
-H "Authorization: Bearer $ASHIKA_API_KEY" \
-H "Content-Type: application/json" \
-d '{"paths": ["/old", "/debug.log"]}'{
"data": {
"deleted": [
"/old",
"/debug.log"
]
}
}返ってくるもの
サーバー
| 名前 | 説明 |
|---|---|
id | 8 文字の ID。ほかのエンドポイントの {id} に使えます。 |
uuid | UUID。{id} の代わりにも使えます。 |
name | サーバー名。 |
status | 状態。下の表のどれか。 |
suspended | 期限切れなどで止められているか。 |
plan | プラン(slug と name)。管理者が作ったサーバーなどでは null。 |
software | 種類(Python・Node.js など)。 |
location | 置いてある場所。 |
limits | メモリ(MB)・CPU(%。100 で 1 コア分)・ディスク(MB)の上限。 |
address | 外からつなぐときの接続先(ip と port)。 |
allocations | 割り当てられたポートのすべて。 |
sftpEnabled | SFTP がオンか。 |
supported | 支援プログラムのサーバーか。 |
expiresAt | 期限(ISO 8601)。 |
createdAt | 作った日時(ISO 8601)。 |
resources | 「サーバーを見る」だけ。動いているときの使用量。止まっていれば null。 |
状態(status)
| 値 | 意味 |
|---|---|
INSTALLING | 準備中 |
OFFLINE | 停止 |
STARTING | 起動中 |
RUNNING | 動作中 |
STOPPING | 停止中 |
SUSPENDED | 期限切れなどで止められている |
ERROR | エラー(パネルから再インストールを試してください) |
使用量(resources)
| 名前 | 説明 |
|---|---|
cpuPercent | CPU の使用率(%。100 で 1 コア分)。 |
memoryBytes / memoryLimitBytes | 使っているメモリと上限(バイト)。 |
networkRxBytes / networkTxBytes | 起動してから受け取った・送った量(バイト)。 |
uptimeSeconds | 起動してからの秒数。 |