DEVELOPER API
WebYore API v1
使用 WebYore 帳戶建立的範圍化 API key。所有資料異動請求都必須提供 Idempotency-Key。
OpenAPI 3.1管理 API 金鑰QUICK START
建立第一個短連結
選擇使用的程式語言,將範例中的 API key 與目的網址換成自己的資料,即可送出第一個請求。
- Base URL
https://api.webyore.com/v1- Authentication
Bearer API key- 必要權限
- links:write
- 異動請求
Idempotency-Key
curl --request POST \
--url https://api.webyore.com/v1/links \
--header 'Authorization: Bearer wy_live_your_key' \
--header 'Content-Type: application/json' \
--header 'Idempotency-Key: request-20260831-0001' \
--data '{"url":"https://example.com/article"}'交給 AI 開始串接
複製一份不含個人金鑰的精簡 API 契約,直接貼給 ChatGPT、Claude、Gemini 或其他程式助理。
查看 AI 資料llms.txtREFERENCE
完整 API 參考
需要權限矩陣、錯誤契約或其他端點時再展開。完整資料模型仍以 OpenAPI 3.1 為準。
驗證與安全重試 Bearer API key、Idempotency-Key 與 24 小時重試規則
Authentication
所有 API 請求都使用帳戶建立的 Bearer API key。請把金鑰放在 Authorization header,不要放進 URL 或公開的前端程式碼。
Authorization: Bearer wy_live_your_keyIdempotency-Key
所有 POST、PATCH 與 DELETE 請求都必須提供 8 至 128 字元的唯一 Idempotency-Key;系統保留該紀錄 24 小時。
Idempotency-Key: request-20260831-0001相同 key 與相同 request 可安全重試;相同 key 搭配不同內容會回傳 409 conflict。
圖床 API 上傳、網址匯入、內容分級與兩種交付網址
上傳與網址匯入
首次建立可使用 auto、general 或 nsfw。網址匯入必須提供直接回傳圖片檔案的公開網址;若來源以 403 拒絕伺服器,網站介面會在取得同意後提供瀏覽器匯入,API 客戶端則可自行下載後改用 multipart 上傳。
POST /images/url
Content-Type: application/json
Idempotency-Key: image-import-0001
{
"url": "https://example.com/photo.jpg",
"content_rating": "auto"
}狀態、分級與交付
建立後請輪詢 status_url。ready 時即可使用 url 嵌入圖片;一般圖片為 WebP,大型動畫保留 WebP 或 GIF,請使用回傳網址與 mime_type,不要自行拼接副檔名。share_url 是含分級與檢舉入口的分享頁。自動分級會在背景完成,ready 不代表已完成分級;content_rating 可能先是 unrated,稍後透過 GET /images/{id} 或直連 HEAD 取得更新。unrated 代表尚未完成或無可用的分級結果,不代表 SFW;需要安全預設時請比照 nsfw 處理。
PATCH /images/{id}/rating
Idempotency-Key: image-rating-0001
{ "content_rating": "sensitive" }新圖片網址使用 7 碼 ID,既有網址仍可使用。不需要 API Key,對圖片直連送出 HEAD 即可從 X-WebYore-Content-Rating 取得目前分級,不會下載圖片。值為 general、sensitive、nsfw 或 unrated;跨網站 JavaScript 也能讀取此 header。下架或尚未完成的圖片不會回傳分級 header。
curl -I "https://i.webyore.com/Ab3De7X.webp"
X-WebYore-Content-Rating: nsfwAPI key 權限 9 個彼此獨立的最小權限
只核發應用程式實際需要的最小權限。Read 權限不包含建立、修改或刪除。
所有 scope 都是獨立權限;write 不會自動授予 read,read 也不會自動授予 write。
| Scope | 允許的操作 |
|---|---|
links:read | 讀取、搜尋、匯出短連結及下載 QR Code |
links:write | 建立、更新、停用短連結及管理 UTM preset |
snapshots:read | 讀取 Snapshot 擷取與發布狀態 |
snapshots:write | 建立 Snapshot |
images:read | 讀取圖片、分享網址及分級 metadata |
images:write | 上傳、從 URL 匯入、設定分級及刪除圖片 |
analytics:read | 讀取隱私友善的連結彙總分析 |
domains:read | 讀取自訂網域與驗證狀態 |
domains:write | 註冊、驗證與停用自訂網域 |
權限不足回應 HTTP 狀態、結構化錯誤與 request_id
權限不足回應
缺少必要 scope 時,API 會回傳 403 與結構化 api_scope_required 錯誤。detail 是這次操作所需的 scope。
{
"error": {
"code": "api_scope_required",
"message": "The API key is missing a required scope.",
"request_id": "req_...",
"detail": "images:write"
}
}端點總覽 短連結、快照、圖片與網域端點
| 方法 | 路徑 | 用途 |
|---|---|---|
| POST | /v1/links | 建立短連結 |
| GET | /v1/links | 列出短連結 |
| PATCH | /v1/links/{id} | 變更目的網址 |
| GET | /v1/links/{id}/qr | 下載短連結 QR Code |
| GET | /v1/links/{id}/analytics | 讀取點擊彙總分析 |
| GET | /v1/links.csv | 匯出短連結 CSV |
| POST | /v1/snapshots | 建立不可變快照 |
| GET | /v1/snapshots/{id} | 讀取快照擷取狀態 |
| POST | /v1/images | 上傳圖片 |
| POST | /v1/images/url | 從公開網址匯入圖片 |
| GET | /v1/images | 列出圖片 |
| GET | /v1/images/{id} | 讀取圖片處理與交付狀態 |
| PATCH | /v1/images/{id}/rating | 設定擁有者內容分級 |
| DELETE | /v1/images/{id} | 刪除圖片 |
| POST | /v1/domains | 註冊自訂短網址網域 |
| GET | /v1/usage | 讀取額度用量 |