نسخه بتا · دانا به‌زودی عرضه می‌شود
مستندات

احراز هویت

کلید API دانا را چطور بفرستید، چه انواعی دارد و چطور امن نگهش دارید

هر درخواست به API دانا باید یک کلید معتبر همراه داشته باشد. اگر کلید ندارید، شروع سریع در سه قدم یکی می‌سازد.

کلید را چطور بفرستید

راه اصلی، هدر Authorization است:

Authorization: Bearer $DANA_API_KEY
curl https://api.dana.expert/v1/chat/completions \
  -H "Authorization: Bearer dn-live-abc123xyz" \
  -H "Content-Type: application/json" \
  -d '{"model":"dana-1","messages":[{"role":"user","content":"سلام"}]}'

هدر x-api-key هم پذیرفته می‌شود و همان کلید را می‌گیرد. SDK رسمی Anthropic به‌طور پیش‌فرض همین را می‌فرستد، پس روی رابط Messages کاری لازم نیست بکنید. اگر هر دو هدر را بفرستید، Authorization مقدم است.

انواع کلید

پیشوندمحیطکاربرد
dn-live-liveدرخواست‌های واقعی، کسر اعتبار
dn-test-testآزمایش، بدون کسر اعتبار

کلیدهای test برای محیط توسعه‌اند و کلیدهای live برای محیط تولید.

مدیریت کلید

کلیدها را در کنسول دانا بسازید، نام بگذارید و باطل کنید.

سه نکته عملی:

  • هر کلید یک بار به‌صورت کامل نمایش داده می‌شود. بعد از بستن پنجره ساخت، دیگر قابل بازیابی نیست و باید کلید تازه بسازید.
  • کلید باطل‌شده تا حدود ۳۰ ثانیه ممکن است هنوز کار کند، چون نتیجه احراز هویت کوتاه‌مدت کش می‌شود. برای قطع فوری، کلید سرویس را هم عوض کنید.
  • سقف نرخ روی خودِ کلید تنظیم می‌شود، نه روی حساب. پیش‌فرض ۶۰ درخواست در دقیقه است و شرحش در محدودیت‌ها آمده.

نگهداری امن

  • کلید را در متغیر محیطی یا secrets manager بگذارید، نه داخل کد و نه در مخزن گیت.
  • برای هر سرویس و هر محیط یک کلید جدا بسازید. آن‌وقت باطل کردن یکی، بقیه را نمی‌خواباند.
  • کلید را در مرورگر یا اپ موبایل نگذارید. هر چه به دست کاربر برسد، لو رفته است؛ درخواست را از سرور خودتان بفرستید.
  • به کلید مشکوک شدید؟ اول در کنسول باطلش کنید، بعد دنبال علت بگردید.

وقتی احراز هویت رد می‌شود

کدپیامعلت
401Missing API key.هیچ‌کدام از دو هدر ارسال نشده
401Invalid API key.کلید شناخته نشد، باطل شده یا ناقص کپی شده
403-کلید معتبر است ولی اجازه این مسیر را ندارد

مطمئنید کلید درست است و باز 401 می‌گیرید؟ معمولا یکی از این سه است:

  • کلمه Bearer جا افتاده.
  • متغیر محیطی خالی مانده.
  • موقع کپی، یک خط جدید یا فاصله هم آمده.

شرح کامل هر کد در خطاها آمده است.