مستندات API

APIKit دو سرویس زبان انگلیسی را با یک کلید ارائه می‌کند: تصحیح رایتینگ با توضیح فارسی برای خطاهای رایج فارسی‌زبان‌ها، و گفتار به متن. هر دو روی HTTPS ساده کار می‌کنند و با هر زبان برنامه‌نویسی قابل استفاده‌اند.

آدرس پایه‌ی همه‌ی درخواست‌ها:

شروع سریع

  1. حساب بسازید (توکن رایگان برای امتحان می‌گیرید).
  2. در داشبورد، بخش API، یک کلید بسازید و جایی امن نگهش دارید.
  3. اولین درخواست را بفرستید:

احراز هویت

کلید را در هدر Authorization بفرستید:

Authorization: Bearer ak_xxxxxxxxxxxxxxxxxxxxxxxx

برای سازگاری با کتابخانه‌های موجود، این روش‌ها هم پذیرفته می‌شوند: هدر X-API-Key، پارامتر api_key در آدرس، یا فیلد فرم apiKey (مثل API خود LanguageTool).

کلید را هرگز در کد سمت کاربر (اپ موبایل یا جاوااسکریپت مرورگر) قرار ندهید. درخواست‌ها را از سرور خودتان بفرستید. اگر کلیدی لو رفت، از داشبورد غیرفعالش کنید و کلید تازه بسازید.

تصحیح رایتینگ

POST/v2/check

متن انگلیسی را بررسی می‌کند و فهرست اشتباه‌ها را با توضیح و پیشنهاد برمی‌گرداند. همان قالب API نسخه‌ی ۲ LanguageTool است، پس کتابخانه‌های آماده‌ی LanguageTool با تغییر آدرس کار می‌کنند. بدنه به‌صورت application/x-www-form-urlencoded (یا multipart) فرستاده می‌شود.

پارامترها

نامالزامیتوضیح
textبلهمتن انگلیسی، حداکثر ۲۰٬۰۰۰ نویسه.
languageبلهen-US یا en-GB (یا auto).
motherTongueخیرمثلاً fa؛ برای تشخیص بهتر خطاهای ناشی از زبان مادری.
levelخیرpicky برای بررسی سخت‌گیرانه‌تر (سبک نگارش).
enabledRules / disabledRulesخیرشناسه‌ی قانون‌ها با کاما؛ برای روشن یا خاموش کردن قانون خاص.
explainخیرپیش‌فرض: توضیح همه‌ی اشتباه‌ها فارسی است. با explain=en توضیح‌های انگلیسی اصلی LanguageTool برمی‌گردد.
enabledCategories + enabledOnly=trueخیرمثلاً فقط FA_LEARNER برای دیدن تنها خطاهای مخصوص فارسی‌زبان‌ها.

نمونه

پاسخ

فیلدتوضیح
offset / lengthجای اشتباه در متن (بر حسب نویسه، از صفر).
messageتوضیح اشتباه به فارسی (راست‌به‌چپ، حتی داخل پنجره‌ی چپ‌به‌راست). با explain=en انگلیسی.
replacementsپیشنهادهای درست به ترتیب اولویت؛ برای جایگزینی با یک کلیک.
rule.id / rule.category.idشناسه‌ی قانون. خطاهای مخصوص فارسی‌زبان‌ها در دسته‌ی FA_LEARNER هستند.
نمایش درست توضیح فارسی: متن message را در عنصری با dir="auto" (یا dir="rtl") نشان دهید تا راست‌چین شود.

گفتار به متن

POST/inference

فایل صوتی را به‌صورت multipart/form-data در فیلد file بفرستید. فرمت‌های رایج (mp3، m4a/aac، ogg/opus، webm، wav، flac) پذیرفته می‌شوند.

نامالزامیتوضیح
fileبلهفایل صوتی؛ حداکثر ۵ دقیقه و ۲۵ مگابایت.
response_formatخیرjson (پیش‌فرض)، text، srt، vtt یا verbose_json (با زمان‌بندی جمله‌ها).
languageخیرزبان گفتار؛ پیش‌فرض en.
promptخیرمتن راهنما (مثلاً کلمه‌های تخصصی درس) برای دقت بیشتر.
temperatureخیرعدد بین ۰ و ۱؛ پیش‌فرض ۰.

پاسخ: {"text": "..."}. مدت صدا (ثانیه‌ی محاسبه‌شده برای هزینه) در هدر X-Audio-Seconds برمی‌گردد.

سازگاری با OpenAI

POST/v1/audio/transcriptions

همان سرویس گفتار به متن با آدرس و قالب OpenAI. اگر از کتابخانه‌ی رسمی OpenAI استفاده می‌کنید، فقط base_url و کلید را عوض کنید (فیلد model نادیده گرفته می‌شود):

توکن و هزینه

هر حساب یک کیف پول توکنی دارد که از داشبورد، آنلاین شارژ می‌شود (همان کیف پولی که ابزارهای داشبورد از آن استفاده می‌کنند). هر درخواست موفق به‌اندازه‌ی مصرفش توکن کم می‌کند:

سرویسواحدتوکن
گفتار به متنهر دقیقه صدا (محاسبه‌ی ثانیه‌ای)—
تصحیح رایتینگهر ۱۰۰۰ نویسه‌ی متن ارسالی—

درخواست‌های ناموفق (خطای سرور، صدای ناخوانا و…) توکن کم نمی‌کنند. اگر توکن کافی نباشد، پاسخ 402 با پیام insufficient tokens برمی‌گردد.

مشاهده‌ی مصرف

GET/v1/usage

مصرف این ماه همان کلید را برمی‌گرداند. گزارش کامل‌تر (روزانه، هر کلید، تاریخچه‌ی درخواست‌ها) در داشبورد است.

محدودیت‌ها

موردمقدار
طول متن در هر درخواست تصحیح۲۰٬۰۰۰ نویسه
طول و حجم صدا در هر درخواست۵ دقیقه، ۲۵ مگابایت
تعداد درخواست هر کلید۱۲۰ در دقیقه (برای بیشتر تماس بگیرید)
تعداد کلید هر حساب۲۰

کدهای خطا

خطاها با کد HTTP و بدنه‌ی {"error": "..."} برمی‌گردند.

کدمعنیچه کنید
400درخواست نادرست (مثلاً فایل صوتی خوانده نشد)پارامترها و فایل را بررسی کنید.
401کلید نیست، اشتباه است یا غیرفعال شدهکلید را در داشبورد بررسی کنید.
402توکن کافی نیستکیف پول را از داشبورد شارژ کنید.
403کلید برای این سرویس فعال نیست، یا حساب غیرفعال استکلیدی با دسترسی این سرویس بسازید.
413متن یا صدا بیش از حد بزرگ استمتن یا صدا را کوتاه‌تر کنید یا چند تکه بفرستید.
429درخواست بیش از حد در دقیقهبعد از ثانیه‌های هدر Retry-After دوباره بفرستید.
503 / 504سرویس موقتاً شلوغ است یا جواب ندادچند ثانیه بعد دوباره امتحان کنید (با فاصله‌ی افزایشی).

توصیه‌ها