メインコンテンツへスキップ

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 に設定されるため、手動指定不要

リクエストボディ(multipart/form-data)

フィールド必須説明
filefileはいSkill 内容の .zip 圧縮ファイル(zip 形式必須)
namestringいいえSkill 名(指定しない場合、zip 内 SKILL.md の frontmatter から読み取り)
typestringいいえSkill タイプ、値:customprebuilt(デフォルト custom
descriptionstringいいえ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"
}

レスポンスフィールド

フィールド説明
idstringSkill 一意識別子、形式 skill_*
typestringリソースタイプ、固定値 "skill"
namestringSkill 名
descriptionstringSkill の説明
skill_typestringSkill タイプ:custom または prebuilt
statusstring状態:active
versioninteger現在のバージョン番号(1 から開始)
content_sizeintegerzip ファイル内容サイズ(バイト)
content_sha256string内容の SHA-256 ハッシュ値
metadataobjectカスタムメタデータ
created_atstring作成時刻(ISO 8601)
updated_atstring最終更新時刻(ISO 8601)

エラーレスポンス

HTTPtype説明
400invalid_request_error非 multipart リクエスト: "Invalid multipart form or request too large."
400invalid_request_errorfile フィールド欠落: "Field 'file' is required."
400invalid_request_error非 zip 形式: "Only .zip files are accepted."
401TOKEN_INVALID認証トークンが欠落または無効

注意事項

  • 同名の Skill 作成が許可されます(システムは名前の一意性を強制しません)
  • form に name を提供しない場合、システムは zip 内の SKILL.md frontmatter から読み取ります
  • 初期バージョン番号は 1 です
  • JSON Content-Type はサポートされず、multipart/form-data が必須です