API and trust
API نسخه ۱
API نسخه ۱
پایه: https://clawhub.ai
OpenAPI: /api/v1/openapi.json
استفادهٔ مجدد از کاتالوگ عمومی
میتوانید با استفاده از APIهای خواندنی عمومی ClawHub، یک کاتالوگ، فهرست یا رابط جستوجوی شخص ثالث بسازید. فرادادهها و فایلهای عمومی Skills طبق قواعد مجوز Skills در ClawHub منتشر میشوند، درحالیکه خود API دارای محدودیت نرخ است و باید مسئولانه از آن استفاده شود.
رهنمودها:
- برای فهرستهای کاتالوگ، از نقطههای پایانی خواندنی عمومی مانند
GET /api/v1/skills،GET /api/v1/searchوGET /api/v1/skills/{slug}استفاده کنید. - بهجای نظرسنجی مکرر، پاسخها را ذخیره کنید و به
429،Retry-Afterو سرآیندهای محدودیت نرخ احترام بگذارید. - هنگام نمایش فهرستها، به نشانی متعارف Skill در ClawHub پیوند دهید تا کاربران بتوانند رکورد رجیستری منبع را بررسی کنند.
- از نشانیهای متعارف صفحه با قالب
https://clawhub.ai/<owner>/skills/<slug>استفاده کنید. - این تصور را ایجاد نکنید که ClawHub وبسایت شخص ثالث را تأیید، راستیآزمایی یا اداره میکند.
- با دور زدن فیلترهای API عمومی یا مرزهای احراز هویت، محتوای پنهان، خصوصی یا مسدودشده توسط نظارت را آینهسازی نکنید.
احراز هویت
- خواندن عمومی: نیازی به توکن ندارد.
- نوشتن + حساب:
Authorization: Bearer clh_....
محدودیتهای نرخ
اعمال آگاه از احراز هویت:
-
درخواستهای ناشناس: بهازای هر IP.
-
درخواستهای احرازشده (توکن Bearer معتبر): بهازای هر سبد کاربر.
-
توکن مفقود یا نامعتبر به اعمال محدودیت بر اساس IP بازمیگردد.
-
خواندن: 3000/دقیقه بهازای هر IP، 12000/دقیقه بهازای هر کلید
-
نوشتن: 300/دقیقه بهازای هر IP، 3000/دقیقه بهازای هر کلید
-
دانلود: 1200/دقیقه بهازای هر IP، 6000/دقیقه بهازای هر کلید
سرآیندها: X-RateLimit-Limit، X-RateLimit-Reset، RateLimit-Limit، RateLimit-Reset؛
X-RateLimit-Remaining، RateLimit-Remaining و Retry-After در 429 گنجانده میشوند.
معناشناسی:
X-RateLimit-Reset: ثانیههای دورهٔ یونیکس (زمان مطلق بازنشانی)RateLimit-Reset: مدت تأخیر برحسب ثانیه تا بازنشانیX-RateLimit-Remaining/RateLimit-Remaining: بودجهٔ دقیق باقیمانده در صورت وجود؛ درخواستهای موفق بخشبندیشده بهجای بازگرداندن یک مقدار تقریبی سراسری، آن را حذف میکنندRetry-After: مدت تأخیر برحسب ثانیه برای انتظار در429
نمونهٔ 429:
HTTP/2 429x-ratelimit-limit: 20x-ratelimit-remaining: 0x-ratelimit-reset: 1771404540ratelimit-limit: 20ratelimit-remaining: 0ratelimit-reset: 34retry-after: 34مدیریت سمت کلاینت:
- در صورت وجود،
Retry-Afterرا ترجیح دهید. - در غیر این صورت، از
RateLimit-Resetاستفاده کنید یا تأخیر را ازX-RateLimit-Resetمحاسبه کنید. - به تلاشهای مجدد جیتر اضافه کنید.
خطاها
- خطاهای نسخهٔ ۱ متن ساده هستند (
text/plain; charset=utf-8)، از جمله400،401،403،404،429و پاسخهای دانلود مسدودشده. - پارامترهای پرسوجوی ناشناخته برای سازگاری نادیده گرفته میشوند.
- پارامترهای پرسوجوی شناختهشده با مقادیر نامعتبر،
400را بازمیگردانند.
نقطههای پایانی
خواندن عمومی:
GET /api/v1/search?q=...- فیلترهای اختیاری:
highlightedOnly=true،nonSuspiciousOnly=true - نام مستعار قدیمی:
nonSuspicious=true
- فیلترهای اختیاری:
GET /api/v1/skills?limit=&cursor=&sort=sort:updated(پیشفرض)،recommended(default)،createdAt(newest)،downloads،stars(rating)، نامهای مستعار قدیمی نصبinstallsCurrent/installs/installsAllTimeبهdownloads،trendingنگاشت میشوند- مقادیر نامعتبر
sort،400را بازمیگردانند cursorبرای مرتبسازیهای غیرtrendingاعمال میشود- فیلتر اختیاری:
nonSuspiciousOnly=true - نام مستعار قدیمی:
nonSuspicious=true - با
nonSuspiciousOnly=true، صفحههای مبتنی بر مکاننما ممکن است کمتر ازlimitمورد داشته باشند؛ برای ادامه ازnextCursorاستفاده کنید. recommendedاز سیگنالهای تعامل و تازگی استفاده میکند.
GET /api/v1/skills/{slug}GET /api/v1/skills/{slug}/moderationGET /api/v1/skills/{slug}/versions?limit=&cursor=GET /api/v1/skills/{slug}/versions/{version}GET /api/v1/skills/{slug}/scan?version=&tag=GET /api/v1/skills/{slug}/file?path=&version=&tag=GET /api/v1/resolve?slug=&hash=GET /api/v1/download?slug=&version=&tag=- Skills میزبانیشده، بایتهای ZIP قطعی بازمیگردانند.
- Skills فعلی مبتنی بر GitHub با اسکن
cleanیاsuspicious، بهجای بایتهای ClawHub یک توصیفگر واگذاری JSON باpublic-githubبازمیگردانند.
GET /api/v1/skills/export?startDate=&endDate=&limit=&cursor=- Skills میزبانیشده بهشکل فایلهای ذخیرهشده صادر میشوند.
- Skills فعلی مبتنی بر GitHub با اسکن
cleanیاsuspicious، بهشکل توصیفگرهای واگذاریpublic-githubصادر میشوند.
GET /api/v1/packages?limit=&cursor=&sort=sort:updated(پیشفرض)،recommended،downloads، نام مستعار قدیمیinstalls- مقادیر نامعتبر
sort،400را بازمیگردانند
GET /api/v1/plugins?limit=&cursor=&sort=sort:recommended(پیشفرض)،downloads،updated، نام مستعار قدیمیinstalls
GET /api/v1/plugins/search?q=...GET /api/v1/packages/{name}/versions/{version}/artifactGET /api/v1/packages/{name}/versions/{version}/securityGET /api/v1/packages/{name}/versions/{version}/artifact/downloadGET /api/npm/{package}GET /api/npm/{package}/-/{tarball}.tgz
نیازمند احراز هویت:
POST /api/v1/skills(انتشار، چندبخشی ترجیح داده میشود)DELETE /api/v1/skills/{slug}DELETE /api/v1/packages/{name}POST /api/v1/skills/{slug}/undeletePOST /api/v1/packages/{name}/undeletePOST /api/v1/skills/{slug}/renamePOST /api/v1/skills/{slug}/mergePOST /api/v1/skills/{slug}/transferPOST /api/v1/packages/{name}/transferPOST /api/v1/skills/{slug}/transfer/acceptPOST /api/v1/skills/{slug}/transfer/rejectPOST /api/v1/skills/{slug}/transfer/cancelGET /api/v1/skills/export?startDate=&endDate=&limit=&cursor=GET /api/v1/plugins/export?startDate=&endDate=&limit=&cursor=&family=GET /api/v1/transfers/incomingGET /api/v1/transfers/outgoingGET /api/v1/whoami
فقط مدیر:
POST /api/v1/users/reserveنامکهای ریشه و جاینگهدارهای خصوصی بستهٔ بدون انتشار را برای شناسهٔ مالک رزرو میکند.
قدیمی
/api/* و /api/cli/* قدیمی همچنان در دسترس هستند. DEPRECATIONS.md را ببینید.