مستندات API
از هر اپ یا اسکریپتی در حساب میوشات خود فایل آپلود، لیست و حذف کنید.
احراز هویت
در صفحهی کلیدهای API یک کلید بسازید (شکل کلیدها mw_… است) و با هر درخواست به یکی از این روشها بفرستید:
- هدر:
X-API-Key: mw_YOUR_KEY - هدر:
Authorization: Bearer mw_YOUR_KEY - فیلد فرم:
api_key=mw_YOUR_KEY
معرفی اپ (توصیه میشود)
این هدرهای اختیاری را بفرستید تا شناسنامهی کلید نشان دهد روی کدام اپ، سیستم و دستگاه استفاده میشود. کاربر میتواند کلید هر دستگاه را بشناسد و باطل کند.
X-Mewshot-App: windows-app # or chrome-extension, my-script, …
X-Mewshot-App-Version: 1.4.0
X-Mewshot-OS: Windows 11
X-Mewshot-Device: DESKTOP-K3R9 # hostname or a user-chosen name
یا یک User-Agent به شکل Mewshot-Windows/1.4.0 (Windows 11; DESKTOP-K3R9) به همین صورت تفسیر میشود.
اندپوینتها
POST /api/v1/upload.php— آپلود تصویر (multipart، فیلد image)GET /api/v1/me.php— اعتبارسنجی کلید؛ حساب و پلن آن را برمیگرداند (نوع فایلهای مجاز، حداکثر حجم، انقضا)GET /api/v1/files.php?limit=50&offset=0— لیست فایلهای حساب با شمارندههاPOST /api/v1/delete.php— حذف فایل (code=XXXX)POST /api/v1/upload_init.php— شروع آپلود مستقیم چندبخشی برای صوت/ویدیو (name, size, mime) → لینک بخشها؛ هر بخش را PUT کنید و ETag را نگه داریدPOST /api/v1/upload_complete.php— پایان (code, parts=[[n, etag]…]) یا لغو (action=abort&code=…)
فرمتهای مجاز: PNG، JPG، GIF، WebP · حداکثر 10 MB · ۱۲۰ درخواست در ساعت برای هر کلید.
نمونه — cURL
curl -X POST "https://mewshot.com/api/v1/upload.php" \
-H "X-API-Key: mw_YOUR_KEY" \
-H "X-Mewshot-App: my-script" \
-F "image=@screenshot.png"
نمونه — JavaScript (افزونه / مرورگر)
const form = new FormData();
form.append("image", blob, "screenshot.png");
const res = await fetch("https://mewshot.com/api/v1/upload.php", {
method: "POST",
headers: {
"X-API-Key": "mw_YOUR_KEY",
"X-Mewshot-App": "chrome-extension",
"X-Mewshot-App-Version": chrome.runtime.getManifest().version
},
body: form
});
const data = await res.json();
console.log(data.upload.url);
نمونه — C# (اپ ویندوز)
using var http = new HttpClient();
http.DefaultRequestHeaders.Add("X-API-Key", "mw_YOUR_KEY");
http.DefaultRequestHeaders.Add("X-Mewshot-App", "windows-app");
http.DefaultRequestHeaders.Add("X-Mewshot-App-Version", "1.4.0");
http.DefaultRequestHeaders.Add("X-Mewshot-OS", Environment.OSVersion.VersionString);
http.DefaultRequestHeaders.Add("X-Mewshot-Device", Environment.MachineName);
using var form = new MultipartFormDataContent();
form.Add(new ByteArrayContent(pngBytes), "image", "screenshot.png");
var res = await http.PostAsync("https://mewshot.com/api/v1/upload.php", form);
var json = await res.Content.ReadAsStringAsync();
پاسخ آپلود
{
"ok": true,
"upload": {
"code": "aB3xK9mQ",
"url": "https://mewshot.com/i/aB3xK9mQ",
"direct_url": "https://mewshot.com/raw/aB3xK9mQ",
"download_url": "https://mewshot.com/raw/aB3xK9mQ?dl=1",
"stats_url": "https://mewshot.com/file.php?c=aB3xK9mQ",
"delete_token": "…",
"size": 48231, "width": 1280, "height": 720,
"expires_at": null, "claimed": true
}
}
فایلهایی که با کلید آپلود میشوند متعلق به حساب شما هستند و منقضی نمیشوند مگر در صفحهی فایل انقضا بگذارید. خطاها به شکل {"ok": false, "error": "…"} با کد وضعیت مناسب برمیگردند (۴۰۱ کلید نامعتبر/باطل، ۴۱۳ حجم زیاد، ۴۱۵ نوع اشتباه، ۴۲۹ محدودیت نرخ).
جریان اتصال برای اپها
وقتی کاربر کلید را در اپ شما پیست میکند، GET /api/v1/me.php را صدا بزنید. پاسخ ۲۰۰ با user.email یعنی «متصل به …»؛ ۴۰۱ یعنی کلید اشتباه است یا از سایت باطل شده.