POST/api/me/portfolio/upload
「自分」の分類の、新しく作る、または操作を実行するために内容を送る API。ログインした本人として呼ぶ。
- 要約
カバー 1 ファイル(画像 / 15 秒以内の動画 / 動画の表紙)を上げる許可と、ブラウザが直接上げる先
- 呼び方と印
ログイン・レート制限
短い時間に呼びすぎると断られる API(レート制限)。断られたら Retry-After の秒数を待って呼び直す。
送るもの(本文)application/json
送る本文の欄。「必須」の印がある欄は省けない。
purpose必須"media" | "poster" | "document"kind必須"image" | "video" | "pdf"contentType必須string長さ 1–100sizeBytes必須integerdurationSec任意numberfileName任意string長さ ≤200
返るもの(応答)200 · application/json
成功したときに返る形。入れ子の欄は、その行を押すと開く・閉じる。「任意」の印がある欄は返らないことがある。
targetobjectkind"vercel-blob" | "fixture"pathnamestringcontentTypestringmaximumSizeInBytesintegervalidUntilstringclientToken任意stringurl任意stringaccess任意"public" | "private"
失敗したとき(エラー)
失敗したときの状態コードと、その意味。本文の error の値で、プログラムが失敗の種類を見分けられる。
- 400入力の誤り(error = invalid_input など)
- 401未ログイン(unauthorized)/ Bearer が無効(invalid_token。WWW-Authenticate 付き)
- 403権限が無い
- 429レート制限(Retry-After 付き)
- invalid_media
- video_too_long
- poster_must_be_image
- link_requires_spikes_login
- account_conflict
- not_linked
- deleted
- portfolio_unavailable
- portfolio_not_configured
- rate_limited
呼び出しの見本
そのまま試せる呼び出しの例。curl と fetch をタブで切り替える。ID やトークンは自分の値に置き換える。
curl -X POST "https://bounty.spikes.4s.link/api/me/portfolio/upload" \
-H "Authorization: Bearer $BEARER_AUTH" \
-H "Content-Type: application/json" \
-d '{
"purpose": "media",
"kind": "image",
"contentType": "string",
"sizeBytes": 0
}'