المطوّرون

domain.latino API

واجهة HTTP مستقرّة ومُصدَّرة الإصدارات للتحقّق من توفّر نطاقات .latino، والبحث في الكتالوج المنسَّق، وإرسال الطلبات المسبقة باستخدام بطاقة محفوظة، وإدارة البطاقات وخطافات الويب. مدخلات JSON ومخرجات JSON.

تنزيل OpenAPI (JSON) احصل على مفتاح API

Base URL https://domain.latino/api/v1

المصادقة

أرسل مفتاح API الخاص بك كرمز Bearer. أنشئ المفاتيح وأدِرها من إعدادات حسابك — يُعرض المفتاح الكامل مرة واحدة فقط عند الإنشاء، لذا احفظه في مكان آمن.

Authorization: Bearer dpk_live_<selector>_<secret>

تبدو المفاتيح على هذا النحو dpk_<env>_<selector>_<secret>، حيث env هو live أو test.

يمكن لجلسة متصفّح مسجّلة الدخول استدعاء نقاط النهاية نفسها؛ لكن عمليات الكتابة المُصادَق عليها عبر الجلسة تتطلّب إضافةً ترويسة X-CSRF-Token. أمّا طلبات رمز Bearer فلا تتطلّبها.

النطاقات وحدود المعدّل

يحمل كل مفتاح مجموعة من النطاقات. يجب إجراء الاستدعاء بمفتاح يملك نطاق نقطة النهاية. تُطبَّق حدود المعدّل لكل نطاق ولكل مفتاح.

النطاق الصلاحيات حدّ المعدّل المستوى
domain.check Check a single .pay domain — availability + pricing 50/sec عام
catalog.search AI keyword search against the curated catalog 30/min عام
orders.read List + read the account's own orders 60/min عام
orders.write Create a pre-order against a saved payment method 10/min عام
payment_methods.read List saved cards (Stripe payment methods) 20/min عام
payment_methods.write Add (SetupIntent) + remove saved cards 20/min عام
account.read Read account profile: email, role, vip_tier, granted scopes 60/min عام
webhooks.read List configured webhook endpoints 20/min عام
webhooks.write Create + delete webhook endpoints 10/min عام
zone_file.download Download the full daily .pay DNS zone-file snapshot 24/day مقيَّد
premium.list Paginated registry premium catalogue (incl. reserved/blocked) 60/min مقيَّد
registered.list Paginated registered .pay names (from the DNS zone file) + AI brand context 60/min مقيَّد

النطاقات المقيَّدة محميّة بطبقتين: قد يُدرِج المفتاح النطاق، لكن الاستدعاءات لا تنجح إلّا بعد أن يمنحه أحد المشرفين لحسابك. قدّم الطلب من إعدادات حسابك.

نطاقات المجال المدعومة

حساب واحد ومفتاح API واحد يعملان في جميع النطاقات أدناه — عنوان URL الأساسي الذي تستدعيه يحدد النطاق.

.pay https://domain.pay/api/v1
.latino https://domain.latino/api/v1
.dot https://domain.dot/api/v1

البدء السريع

استدعاءان سريعان للبدء:

# تحقّق من اسم
curl -s https://domain.latino/api/v1/check-domain \
  -H "Authorization: Bearer dpk_live_…" \
  -H "Content-Type: application/json" \
  -d '{"domain":"acme.latino"}'

# من أنا + ما الذي يمكنني فعله
curl -s https://domain.latino/api/v1/account \
  -H "Authorization: Bearer dpk_live_…"

نقاط النهاية

جميع نقاط النهاية فعّالة. مخطّطات الطلب والاستجابة والمعاملات ورموز الحالة موصوفة بالكامل في مستند OpenAPI.

Account

GET /account account.read Your profile + the scopes effective for this key.

Domains

POST /check-domain domain.check Availability + pricing for one name in a supported zone. Fast DB-only lookup (no live registry call) — POST /orders re-verifies live.

Catalog

POST /catalog/search catalog.search Keyword search over the curated catalogue.

Orders

GET /orders orders.read List your orders, newest first.
GET /orders/{id} orders.read One order + its customer message thread.
POST /orders orders.write Create a pre-order + charge a saved card (send an Idempotency-Key).

Payment methods

GET /account/payment-methods payment_methods.read List saved cards.
POST /account/payment-methods payment_methods.write Start a Stripe SetupIntent to add a card.
DELETE /account/payment-methods/{id} payment_methods.write Remove a saved card.

Webhooks

GET /webhooks webhooks.read List webhook endpoints.
POST /webhooks webhooks.write Register an endpoint (signing secret shown once).
DELETE /webhooks/{id} webhooks.write Delete an endpoint.

Restricted

GET /zone-file zone_file.download Daily DNS zone-file snapshot for the zone of the host you call.
GET /premium premium.list Registry premium catalogue.
GET /registered registered.list Registered names in the called zone + AI brand context.

للاطّلاع على عقد الطلب/الاستجابة الكامل، استورد مواصفة OpenAPI: تنزيل OpenAPI (JSON).

خطافات الويب (Webhooks)

سجّل نقطة نهاية HTTPS وسنرسل إليك الأحداث الموقّعة فور وقوعها. يُعرض السرّ الخاص بالتوقيع مرة واحدة عند الإنشاء.

الحدثالوصف
order.createdA new order (pre-order) was created on the account
order.status_changedAn order changed payment status
payment.succeededA payment for an order succeeded
payment.failedA payment for an order failed or was canceled
payment.refundedA charge for an order was refunded
appraisal.completedA domain appraisal for an order finished

نرسل مغلّف الحدث عبر POST بصيغة JSON:

{
  "id": "evt_…",
  "event": "payment.succeeded",
  "created": "2026-05-28T12:00:00+00:00",
  "data": { "order": { … } }
}

تحقّق من كل عملية تسليم بإعادة حساب HMAC-SHA256 على جسم الطلب الخام باستخدام سرّ التوقيع الخاص بك، ثم قارِن في زمن ثابت:

X-Domain-Pay-Signature: sha256=<HMAC_SHA256(raw_body, signing_secret)>

تُعاد محاولة الاستجابات غير 2xx (أو حالات انتهاء المهلة) بتراجع أُسّي (من دقيقة واحدة إلى 24 ساعة) حتى 6 محاولات. بعد 5 عمليات تسليم فاشلة متتالية تُعطَّل نقطة النهاية تلقائيًا ويُنبَّه مالكها.

الأخطاء

تتشارك جميع الأخطاء في بنية واحدة. يُعاد إرسال request_id في كل خطأ — اذكره في طلبات الدعم.

{ "error": "scope_required", "message": "…", "request_id": "req_ab12…", "scope": "orders.read" }
HTTPerrorالمعنى
400invalid_requestMalformed or missing parameters.
401unauthorized / invalid_keyNo or invalid credential.
402card_declined / authentication_requiredPayment failed or needs SCA.
403scope_requiredThe key lacks the endpoint's scope.
403access_not_grantedRestricted scope not yet approved for this account.
403csrf_requiredSession write without a valid X-CSRF-Token.
404not_foundNo such endpoint or resource.
405method_not_allowedWrong HTTP verb.
409request_in_progressAn idempotency key's first request is still in flight.
422idempotency_key_reusedSame idempotency key, different parameters.
422contact_incompleteGA zones: add a registrant contact under /account/contacts first.
423account_lockedAccount is locked — contact support.
429rate_limitedSlow down; see the Retry-After header.
500server_errorOur fault.

الوصول المقيَّد

تتطلّب نقاط نهاية ملف المنطقة (zone-file) والنطاقات المميّزة والمسجّلة صلاحيةً معتمَدة إضافةً إلى النطاق:

  1. أنشئ (أو احصل مسبقًا على) مفتاح API يُدرِج النطاق المقيَّد.
  2. في إعدادات حسابك، افتح "الوصول المقيَّد إلى API"، واختر النطاق، واشرح كيف ستستخدم البيانات.
  3. يراجع فريقنا الطلب ويرسل إليك القرار عبر البريد الإلكتروني.
  4. بعد الموافقة، يمكن لأي مفتاح في حسابك يُدرِج ذلك النطاق استخدامه فورًا. لا يوجد مستوى مدفوع — الموافقة على مستوى الحساب.

احصل على مفتاح API تنزيل OpenAPI (JSON)