Développeurs

domain.latino API

Une API HTTP stable et versionnée pour vérifier la disponibilité des .latino, explorer le catalogue sélectionné, passer des précommandes avec une carte enregistrée et gérer cartes et webhooks. Du JSON en entrée, du JSON en sortie.

Télécharger OpenAPI (JSON) Obtenir une clé API

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

Authentification

Envoyez votre clé API sous la forme d'un jeton Bearer. Créez et gérez vos clés dans les paramètres de votre compte — la clé complète n'est affichée qu'une seule fois à la création, alors conservez-la en lieu sûr.

Authorization: Bearer dpk_live_<selector>_<secret>

Les clés ressemblent à dpk_<env>_<selector>_<secret>, où env vaut live ou test.

Une session de navigateur connectée peut appeler les mêmes points de terminaison ; les écritures authentifiées par session nécessitent en plus un en-tête X-CSRF-Token. Les requêtes par jeton Bearer non.

Portées et limites de débit

Chaque clé porte un ensemble de portées. Un appel doit être effectué avec une clé qui détient la portée du point de terminaison. Les limites de débit s'appliquent par portée et par clé.

Portée Autorise Limite de débit Niveau
domain.check Check a single .pay domain — availability + pricing 50/sec Public
catalog.search AI keyword search against the curated catalog 30/min Public
orders.read List + read the account's own orders 60/min Public
orders.write Create a pre-order against a saved payment method 10/min Public
payment_methods.read List saved cards (Stripe payment methods) 20/min Public
payment_methods.write Add (SetupIntent) + remove saved cards 20/min Public
account.read Read account profile: email, role, vip_tier, granted scopes 60/min Public
webhooks.read List configured webhook endpoints 20/min Public
webhooks.write Create + delete webhook endpoints 10/min Public
zone_file.download Download the full daily .pay DNS zone-file snapshot 24/day Restreint
premium.list Paginated registry premium catalogue (incl. reserved/blocked) 60/min Restreint
registered.list Paginated registered .pay names (from the DNS zone file) + AI brand context 60/min Restreint

Les portées restreintes sont doublement protégées : une clé peut lister la portée, mais les appels ne réussissent qu'une fois qu'un administrateur l'a accordée à votre compte. Faites votre demande depuis les paramètres de votre compte.

Zones de domaine prises en charge

Un seul compte et une seule clé API fonctionnent sur toutes les zones ci-dessous — l'URL de base appelée sélectionne la zone.

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

Démarrage rapide

Deux appels rapides pour démarrer :

# Vérifier un nom
curl -s https://domain.latino/api/v1/check-domain \
  -H "Authorization: Bearer dpk_live_…" \
  -H "Content-Type: application/json" \
  -d '{"domain":"acme.latino"}'

# Qui suis-je + ce que je peux faire
curl -s https://domain.latino/api/v1/account \
  -H "Authorization: Bearer dpk_live_…"

Points de terminaison

Tous les points de terminaison sont opérationnels. Les schémas de requête et de réponse, les paramètres et les codes de statut sont entièrement décrits dans le document 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.

Pour le contrat complet de requête/réponse, importez la spécification OpenAPI : Télécharger OpenAPI (JSON).

Webhooks

Enregistrez un point de terminaison HTTPS et nous vous transmettons des événements signés au fil de l'eau. Le secret de signature est affiché une seule fois à la création.

ÉvénementDescription
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

Nous envoyons l'enveloppe de l'événement en POST au format JSON :

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

Vérifiez chaque livraison en recalculant le HMAC-SHA256 sur le corps brut de la requête avec votre secret de signature, puis en comparant à temps constant :

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

Les réponses non-2xx (ou les délais dépassés) sont réessayées avec un backoff exponentiel (1 min to 24 h) jusqu'à 6 tentatives. Après 5 livraisons mortes consécutives, le point de terminaison est automatiquement désactivé et le propriétaire est averti.

Erreurs

Toutes les erreurs partagent une même forme. Le request_id est renvoyé sur chaque erreur — mentionnez-le dans vos demandes d'assistance.

{ "error": "scope_required", "message": "…", "request_id": "req_ab12…", "scope": "orders.read" }
HTTPerrorSignification
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.

Accès restreint

Les points de terminaison zone-file, premium et registered nécessitent une autorisation approuvée en plus de la portée :

  1. Créez (ou possédez déjà) une clé API qui liste la portée restreinte.
  2. Dans les paramètres de votre compte, ouvrez Accès API restreint, choisissez la portée et expliquez comment vous utiliserez les données.
  3. Notre équipe examine votre demande et vous communique une décision par e-mail.
  4. Une fois approuvée, toute clé de votre compte qui liste cette portée peut l'utiliser immédiatement. Aucun palier payant — l'approbation se fait par compte.

Obtenir une clé API Télécharger OpenAPI (JSON)