API
أنشئ روابط قصيرة وأدرها من السكربتات والتطبيقات. الـ API مجانية. أنشئ مفتاحًا في لوحة التحكم ضمن مفاتيح API، ثم أرسله كرمز bearer.
المصادقة
Authorization: Bearer gz_xxxxxxxx_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
تُعرض المفاتيح مرة واحدة. تعامل معها ككلمات المرور: أي شخص يملك مفتاحك يمكنه إنشاء الروابط وتعديلها في حسابك. ألغِ أي مفتاح تسرّب من لوحة التحكم.
الحدود
- 60 طلبًا في الدقيقة لكل مفتاح.
- 500 رابط جديد يوميًا لكل حساب.
- تُفحص الوجهات عبر Google Safe Browsing وقائمة الحظر لدينا. لا يمكن استخدام خدمات اختصار الروابط الأخرى كوجهات.
إنشاء رابط
curl -X POST https://gozi.to/api/my/links \
-H "Authorization: Bearer $GOZI_KEY" \
-H "Content-Type: application/json" \
-d '{"url": "https://example.com/launch", "code": "launch"}'
code اختياري (4–32 حرفًا أو رقمًا أو - أو _). اتركه فارغًا للحصول على رمز عشوائي من 7 أحرف. الاستجابة 201:
{
"link": {
"code": "launch",
"shortUrl": "https://gozi.to/launch",
"url": "https://example.com/launch",
"status": "active",
"statusReason": null,
"custom": true,
"createdAt": 1790000000000,
"expiresAt": null
}
}
سرد الروابط
GET /api/my/links?limit=25&cursor=<nextCursor>&q=<search>&clicks=1
الأحدث أولًا. مرّر nextCursor من الصفحة السابقة للحصول على الصفحة التالية. تضيف clicks=1 أعداد النقرات البشرية منذ البداية.
الجلب والتعديل والحذف
GET /api/my/links/{code}
PATCH /api/my/links/{code} {"url": "https://new.example"} or {"status": "disabled" | "active"}
DELETE /api/my/links/{code}
التحليلات
GET /api/my/links/{code}/stats
تُرجع النقرات البشرية لآخر 90 يومًا ومنذ البداية، والنقرات اليومية، وأهم الدول والمُحيلات والأجهزة والمتصفحات وأنظمة التشغيل. تُحتسب الروبوتات ومعاينات الروابط (Slack وWhatsApp وغيرها) على حدة في botClicks. تُخزَّن النتائج مؤقتًا نحو 5 دقائق.
الأخطاء
تستخدم الأخطاء رموز حالة HTTP وجسم JSON:
{ "error": { "code": "slug_taken", "message": "That custom link is already taken." } }
400مدخلات غير صالحة (invalid_url،invalid_slug، …)401مفتاح مفقود أو غير صالح أو ملغى409الرابط المخصص مأخوذ بالفعل422الوجهة غير مسموح بها (destination_blocked)429بلغت حد المعدل أو الحد اليومي
يتوفر وصف قابل للقراءة آليًا لكل نقطة نهاية على /openapi.json.
