コンテンツにスキップ

プログラム用ツール

公開機能一覧は haneoka.org、ジョブはローカルサービスで実行します。起動と例はローカル計算ガイドを参照。

GETHEAD /api/v1

機械可読の入口、リクエスト契約、ツールモジュール。

認証
不要。誰でも匿名で読み取れます。
キャッシュ
public, max-age=300

リクエスト例

Terminal window
curl -sS "https://haneoka.org/api/v1"

レスポンス例

HTTP/2 200 OK
{}

長さのため一部を省略しています。実際のレスポンスにはさらに多くの項目があります。

GETHEAD /api/v1/openapi.json

機械可読の入口、リクエスト契約、ツールモジュール。

認証
不要。誰でも匿名で読み取れます。
キャッシュ
public, max-age=300

リクエスト例

Terminal window
curl -sS "https://haneoka.org/api/v1/openapi.json"

レスポンス例

HTTP/2 200 OK
{}

長さのため一部を省略しています。実際のレスポンスにはさらに多くの項目があります。

GETHEAD /api/v1/tools

機械可読の入口、リクエスト契約、ツールモジュール。

認証
不要。誰でも匿名で読み取れます。
キャッシュ
public, max-age=300

リクエスト例

Terminal window
curl -sS "https://haneoka.org/api/v1/tools"

レスポンス例

HTTP/2 200 OK
{}

長さのため一部を省略しています。実際のレスポンスにはさらに多くの項目があります。

GET /v1

操作、同時実行数、結果の保持期間を返します。

認証
ローカルサービスの Bearer。起動時の非公開ヘッダーファイルを使用。
キャッシュ
no-store

リクエスト例

Terminal window
curl -sS "http://127.0.0.1:8765/v1" \
-H "Authorization: Bearer ${localToken}"

レスポンス例

HTTP/2 200 OK
{
"operations": [
"search",
"evaluate",
"growth",
"timeline",
"chart-image"
],
"concurrency": 1,
"resultTtlSeconds": 600
}

エラー

ステータスコード意味
400invalid_requestパスまたはクエリの ID が不正です。
401unauthorizedローカル Bearer を指定。
403origin_not_allowedローカルクライアントかスクリプトから呼び出してください。
404not_found地域または記録が見つかりません。
404job_not_foundジョブが期限切れか削除済み。
409image_not_ready画像の完成を待ってください。
413body_too_large本文が 2 MiB を超過。
429rate_limit_exceededこのキーのリクエストが多すぎます。Retry-After があれば従ってください。
429queue_full実行の完了を待つか結果を削除。
POST /v1/jobs

202 とポーリング先 Location を返します。本文 2 MiB、待機 8、同時実行 1、最大 5 分。所持状況はこの端末に残ります。

認証
ローカルサービスの Bearer。起動時の非公開ヘッダーファイルを使用。
キャッシュ
no-store

リクエストボディ application/json

名前型説明
operation必須 string search、evaluate、growth、timeline、chart-image、resource-image。
request任意 object 計算には必須。tools/schema.json の対応型を指定。

リクエスト例

Terminal window
curl -sS -X POST "http://127.0.0.1:8765/v1/jobs" \
-H "Authorization: Bearer ${localToken}" \
-H "Content-Type: application/json" \
--data '{"operation":"chart-image","server":"intl","songId":"100001","difficulty":"expert","locale":"en","height":720}'

レスポンス例

HTTP/2 202 Accepted
Location: /v1/jobs/00000000-0000-4000-8000-000000000001
{
"id": "00000000-0000-4000-8000-000000000001",
"operation": "chart-image",
"state": "queued"
}

エラー

ステータスコード意味
400invalid_requestパスまたはクエリの ID が不正です。
401unauthorizedローカル Bearer を指定。
403origin_not_allowedローカルクライアントかスクリプトから呼び出してください。
404not_found地域または記録が見つかりません。
404job_not_foundジョブが期限切れか削除済み。
409image_not_ready画像の完成を待ってください。
413body_too_large本文が 2 MiB を超過。
429rate_limit_exceededこのキーのリクエストが多すぎます。Retry-After があれば従ってください。
429queue_full実行の完了を待つか結果を削除。
GET /v1/jobs/{id}

状態は queued、running、completed、failed。完了から 10 分保持。result、identity、任意の image URL を取得。

認証
ローカルサービスの Bearer。起動時の非公開ヘッダーファイルを使用。
キャッシュ
no-store

パラメーター

名前場所型説明
id必須 パス uuid 送信結果のジョブ ID。

リクエスト例

Terminal window
curl -sS "http://127.0.0.1:8765/v1/jobs/00000000-0000-4000-8000-000000000001" \
-H "Authorization: Bearer ${localToken}"

レスポンス例

HTTP/2 200 OK
{
"id": "00000000-0000-4000-8000-000000000001",
"operation": "search",
"state": "completed",
"createdAt": 1793030400000,
"expiresAt": 1793031000000,
"result": {
"overall": [],
"results": [],
"stopReason": "complete"
}
}

エラー

ステータスコード意味
400invalid_requestパスまたはクエリの ID が不正です。
401unauthorizedローカル Bearer を指定。
403origin_not_allowedローカルクライアントかスクリプトから呼び出してください。
404not_found地域または記録が見つかりません。
404job_not_foundジョブが期限切れか削除済み。
409image_not_ready画像の完成を待ってください。
413body_too_large本文が 2 MiB を超過。
429rate_limit_exceededこのキーのリクエストが多すぎます。Retry-After があれば従ってください。
429queue_full実行の完了を待つか結果を削除。
DELETE /v1/jobs/{id}

計算環境を閉じて結果を削除。以後の取得は 404。

認証
ローカルサービスの Bearer。起動時の非公開ヘッダーファイルを使用。
キャッシュ
no-store

パラメーター

名前場所型説明
id必須 パス uuid 送信結果のジョブ ID。

リクエスト例

Terminal window
curl -sS -X DELETE "http://127.0.0.1:8765/v1/jobs/00000000-0000-4000-8000-000000000001" \
-H "Authorization: Bearer ${localToken}"

レスポンス例

HTTP/2 204 No Content

レスポンスボディはありません。

エラー

ステータスコード意味
400invalid_requestパスまたはクエリの ID が不正です。
401unauthorizedローカル Bearer を指定。
403origin_not_allowedローカルクライアントかスクリプトから呼び出してください。
404not_found地域または記録が見つかりません。
404job_not_foundジョブが期限切れか削除済み。
409image_not_ready画像の完成を待ってください。
413body_too_large本文が 2 MiB を超過。
429rate_limit_exceededこのキーのリクエストが多すぎます。Retry-After があれば従ってください。
429queue_full実行の完了を待つか結果を削除。
GET /v1/jobs/{id}/image.png

完了した chart-image ジョブと同じ Bearer が必要。PNG を返し、未完了は 409。

認証
ローカルサービスの Bearer。起動時の非公開ヘッダーファイルを使用。
キャッシュ
no-store

パラメーター

名前場所型説明
id必須 パス uuid 送信結果のジョブ ID。

リクエスト例

Terminal window
curl -sS -o output.bin "http://127.0.0.1:8765/v1/jobs/00000000-0000-4000-8000-000000000001/image.png" \
-H "Authorization: Bearer ${localToken}"

レスポンス例

HTTP/2 200 OK

バイナリ本文(表示しません)。

エラー

ステータスコード意味
400invalid_requestパスまたはクエリの ID が不正です。
401unauthorizedローカル Bearer を指定。
403origin_not_allowedローカルクライアントかスクリプトから呼び出してください。
404not_found地域または記録が見つかりません。
404job_not_foundジョブが期限切れか削除済み。
409image_not_ready画像の完成を待ってください。
413body_too_large本文が 2 MiB を超過。
429rate_limit_exceededこのキーのリクエストが多すぎます。Retry-After があれば従ってください。
429queue_full実行の完了を待つか結果を削除。
POST /v1/resource-image

リソース API と同じ画像データ。JSON 8 MiB、出力 16 MiB、50 秒、同時 1 件。kind と data は画像ガイドを参照。

認証
ローカルサービスの Bearer。起動時の非公開ヘッダーファイルを使用。
キャッシュ
no-store

リクエストボディ application/json

名前型説明
kind必須 string team、gacha、gacha-history、stamp、chart、live2d、spine。
data必須 object 画像データ。/reference/images/ を参照。

リクエスト例

Terminal window
curl -sS -o output.bin -X POST "http://127.0.0.1:8765/v1/resource-image" \
-H "Authorization: Bearer ${localToken}" \
-H "Content-Type: application/octet-stream" \
--data-binary @resource-image.json

レスポンス例

HTTP/2 200 OK

バイナリ本文(表示しません)。

エラー

ステータスコード意味
400invalid_requestパスまたはクエリの ID が不正です。
401unauthorizedローカル Bearer を指定。
403origin_not_allowedローカルクライアントかスクリプトから呼び出してください。
404not_found地域または記録が見つかりません。
404job_not_foundジョブが期限切れか削除済み。
409image_not_ready画像の完成を待ってください。
413body_too_large本文が 2 MiB を超過。
429rate_limit_exceededこのキーのリクエストが多すぎます。Retry-After があれば従ってください。
429queue_full実行の完了を待つか結果を削除。
GET /v1/jobs/{id}/images.zip

完了した resource-image の画像 URL を使います。

認証
ローカルサービスの Bearer。起動時の非公開ヘッダーファイルを使用。
キャッシュ
no-store

パラメーター

名前場所型説明
id必須 パス uuid 送信結果のジョブ ID。

リクエスト例

Terminal window
curl -sS -o output.bin "http://127.0.0.1:8765/v1/jobs/00000000-0000-4000-8000-000000000001/images.zip" \
-H "Authorization: Bearer ${localToken}"

レスポンス例

HTTP/2 200 OK

バイナリ本文(表示しません)。

エラー

ステータスコード意味
400invalid_requestパスまたはクエリの ID が不正です。
401unauthorizedローカル Bearer を指定。
403origin_not_allowedローカルクライアントかスクリプトから呼び出してください。
404not_found地域または記録が見つかりません。
404job_not_foundジョブが期限切れか削除済み。
409image_not_ready画像の完成を待ってください。
413body_too_large本文が 2 MiB を超過。
429rate_limit_exceededこのキーのリクエストが多すぎます。Retry-After があれば従ってください。
429queue_full実行の完了を待つか結果を削除。