Documentation Index
Fetch the complete documentation index at: https://docs.qoder.com/llms.txt
Use this file to discover all available pages before exploring further.
POST /v1/skills
新しい Skill リソースをアップロードして作成します。Skill の内容は .zip 圧縮ファイル形式でアップロードする必要があり、multipart/form-data エンコーディングを使用します。
ヘッダー
| ヘッダー | 必須 | 説明 |
|---|
| Authorization | はい | Bearer $QODER_PAT |
| Content-Type | いいえ | curl -F により自動的に multipart/form-data に設定されるため、手動指定不要 |
| フィールド | 型 | 必須 | 説明 |
|---|
file | file | はい | Skill 内容の .zip 圧縮ファイル(zip 形式必須) |
name | string | いいえ | Skill 名(指定しない場合、zip 内 SKILL.md の frontmatter から読み取り) |
type | string | いいえ | Skill タイプ、値:custom、prebuilt(デフォルト custom) |
description | string | いいえ | Skill の説明 |
zip ファイル構造
圧縮ファイルには SKILL.md ファイルを含める必要があり、形式は以下のとおりです:
name: my-skill
description: Skill の説明
version: 1.0.0
# Skill タイトル
## Steps
1. ステップ 1
2. ステップ 2
リクエスト例
# Skill 内容ディレクトリの準備
mkdir my-skill && cat > my-skill/SKILL.md << 'EOF'
name: my-custom-skill
description: カスタム Skill サンプル
version: 1.0.0
# My Custom Skill
## Steps
1. 操作 A を実行
2. 操作 B を実行
## Verification
操作の完了を確認。
EOF
# zip にパッケージング
cd my-skill && zip ../my-skill.zip SKILL.md && cd ..
# アップロードして作成
curl -X POST https://openapi.qoder.sh/api/v1/cloud/skills \
-H "Authorization: Bearer $QODER_PAT" \
-F "name=my-custom-skill" \
-F "type=custom" \
-F "description=カスタム Skill サンプル" \
-F "file=@my-skill.zip"
レスポンス例
HTTP 201 Created
{
"id": "skill_019e3bba474b73cfaf19eae9b5f5e66d",
"type": "skill",
"name": "my-custom-skill",
"description": "カスタム Skill サンプル",
"skill_type": "custom",
"status": "active",
"version": 1,
"content_size": 309,
"content_sha256": "f253cb7d35790025f85917c0c239422cff1de067d00278db8897c585a3f28d94",
"metadata": {},
"created_at": "2026-05-18T15:35:24.248164Z",
"updated_at": "2026-05-18T15:35:24.248164Z"
}
レスポンスフィールド
| フィールド | 型 | 説明 |
|---|
id | string | Skill 一意識別子、形式 skill_* |
type | string | リソースタイプ、固定値 "skill" |
name | string | Skill 名 |
description | string | Skill の説明 |
skill_type | string | Skill タイプ:custom または prebuilt |
status | string | 状態:active |
version | integer | 現在のバージョン番号(1 から開始) |
content_size | integer | zip ファイル内容サイズ(バイト) |
content_sha256 | string | 内容の SHA-256 ハッシュ値 |
metadata | object | カスタムメタデータ |
created_at | string | 作成時刻(ISO 8601) |
updated_at | string | 最終更新時刻(ISO 8601) |
エラーレスポンス
| HTTP | type | 説明 |
|---|
| 400 | invalid_request_error | 非 multipart リクエスト: "Invalid multipart form or request too large." |
| 400 | invalid_request_error | file フィールド欠落: "Field 'file' is required." |
| 400 | invalid_request_error | 非 zip 形式: "Only .zip files are accepted." |
| 401 | TOKEN_INVALID | 認証トークンが欠落または無効 |
注意事項
- 同名の Skill 作成が許可されます(システムは名前の一意性を強制しません)
- form に
name を提供しない場合、システムは zip 内の SKILL.md frontmatter から読み取ります
- 初期バージョン番号は 1 です
- JSON Content-Type はサポートされず、
multipart/form-data が必須です