API : domaines

L'API des domaines vous permet de lire et de gérer les domaines de boutique personnalisés enregistrés sur votre compte Snipcart : votre domaine de site web par défaut ainsi que la liste des domaines et sous-domaines autorisés supplémentaires sur lesquels le widget panier peut s'exécuter. (Il ne s'agit pas de la configuration du domaine d'envoi de courriels/SendGrid.)

Les requêtes sont authentifiées avec votre clé API secrète, transmise comme nom d'utilisateur en authentification HTTP Basic avec un mot de passe vide. Avec curl : -u {API_KEY}:. Voir Authentification pour plus de détails. L'URL de base de chaque requête est https://app.snipcart.com/api.

Table des matières

GET /settings/domain

Retourne le domaine par défaut actuel de votre compte.

URL de la ressource

GET https://app.snipcart.com/api/settings/domain

En-têtes

Nom Valeur Obligatoire? Description
Accept application/json Oui Notre API n'accepte que le type de contenu application/json, vous devez donc spécifier l'en-tête Accept: application/json dans chaque requête.

Exemple de requête

curl -H "Accept: application/json" \
  https://app.snipcart.com/api/settings/domain \
  -u {API_KEY}:

Exemple de réponse

{
  "domain": "snipcart.com",
  "protocol": "https"
}

PUT /settings/domain

Définit le domaine par défaut de votre compte comme étant celui indiqué dans le corps de la requête. Le domaine soumis est normalisé en son nom d'hôte brut (tout schéma, chemin ou préfixe www. est retiré). Si protocol est omis ou n'est pas exactement http ou https, il prend la valeur http par défaut.

URL de la ressource

PUT https://app.snipcart.com/api/settings/domain

En-têtes

Nom Valeur Obligatoire? Description
Accept application/json Oui Notre API n'accepte que le type de contenu application/json, vous devez donc spécifier l'en-tête Accept: application/json dans chaque requête.
Content-Type application/json Oui Le corps de la requête est en JSON, le type de contenu doit donc être spécifié.

Paramètres du corps

Nom Obligatoire? Type Description
domain Oui string Le nouveau domaine par défaut à associer à votre compte.
protocol Non string Soit https, soit http. S'il est omis ou défini à toute autre valeur, il prend http par défaut.

⚠️ Important : Si domain est absent du corps, la requête retourne 400 Bad Request.

Exemple de requête

curl https://app.snipcart.com/api/settings/domain \
  -X PUT \
  -H "Accept: application/json" \
  -H "Content-Type: application/json" \
  -u {API_KEY}: \
  -d '{"domain": "snipcartnewdomain.com", "protocol": "https"}'

Exemple de réponse

{
  "domain": "snipcartnewdomain.com",
  "protocol": "https"
}

GET /settings/alloweddomains

Retourne la liste des domaines et sous-domaines autorisés enregistrés sur le compte, autres que votre domaine de site web par défaut.

URL de la ressource

GET https://app.snipcart.com/api/settings/alloweddomains

En-têtes

Nom Valeur Obligatoire? Description
Accept application/json Oui Notre API n'accepte que le type de contenu application/json, vous devez donc spécifier l'en-tête Accept: application/json dans chaque requête.

Exemple de requête

curl -H "Accept: application/json" \
  https://app.snipcart.com/api/settings/alloweddomains \
  -u {API_KEY}:

Exemple de réponse

[
  {
    "domain": "15ddef3a.ngrok.io",
    "protocol": "http"
  },
  {
    "domain": "subdomain.snipcart.com",
    "protocol": "https"
  }
]

POST /settings/alloweddomains

Ajoute un ou plusieurs domaines ou sous-domaines à la liste des domaines autorisés du compte. Le corps doit être un tableau (array) JSON, même lors de l'ajout d'un seul domaine. Chaque domaine est normalisé en son nom d'hôte brut, et tout protocol autre que http ou https est ramené à http.

La réponse retourne la liste complète et mise à jour des domaines autorisés (les nouveaux ajoutés ainsi que ceux déjà enregistrés). Votre domaine de site web par défaut n'est jamais inclus dans cette liste.

URL de la ressource

POST https://app.snipcart.com/api/settings/alloweddomains

En-têtes

Nom Valeur Obligatoire? Description
Accept application/json Oui Notre API n'accepte que le type de contenu application/json, vous devez donc spécifier l'en-tête Accept: application/json dans chaque requête.
Content-Type application/json Oui Le corps de la requête est en JSON, le type de contenu doit donc être spécifié.

Paramètres du corps

Nom Obligatoire? Type Description
(root) Oui array Un tableau (array) JSON d'objets { "domain": "...", "protocol": "..." }. L'enveloppe sous forme de tableau est obligatoire, même pour une seule entrée.
domain Oui string Le domaine ou sous-domaine à ajouter.
protocol Non string Soit https, soit http. S'il est omis ou défini à toute autre valeur, il prend http par défaut.

⚠️ Important : Un tableau vide ou absent retourne 400 Bad Request.

Exemple de requête

curl https://app.snipcart.com/api/settings/alloweddomains \
  -H "Content-Type: application/json" \
  -H "Accept: application/json" \
  -u {API_KEY}: \
  -d '[{"domain": "subdomain1.snipcart.com"}, {"domain": "snipalt.com", "protocol": "https"}]'

Exemple de réponse

[
  {
    "domain": "subdomain1.snipcart.com",
    "protocol": "http"
  },
  {
    "domain": "snipalt.com",
    "protocol": "https"
  },
  {
    "domain": "subdomain.snipcart.com",
    "protocol": "https"
  }
]

DELETE /settings/alloweddomains

Supprime un ou plusieurs domaines ou sous-domaines de la liste des domaines autorisés du compte. Le corps doit être un tableau (array) JSON, même lors de la suppression d'un seul domaine. La correspondance s'effectue sur la valeur domain (normalisée en son nom d'hôte brut).

La réponse retourne la liste complète et mise à jour des domaines autorisés après les suppressions. Votre domaine de site web par défaut n'est jamais inclus dans cette liste.

URL de la ressource

DELETE https://app.snipcart.com/api/settings/alloweddomains

En-têtes

Nom Valeur Obligatoire? Description
Accept application/json Oui Notre API n'accepte que le type de contenu application/json, vous devez donc spécifier l'en-tête Accept: application/json dans chaque requête.
Content-Type application/json Oui Le corps de la requête est en JSON, le type de contenu doit donc être spécifié.

Paramètres du corps

Nom Obligatoire? Type Description
(root) Oui array Un tableau (array) JSON d'objets { "domain": "...", "protocol": "..." }. L'enveloppe sous forme de tableau est obligatoire, même pour une seule entrée.
domain Oui string Le domaine ou sous-domaine à supprimer.
protocol Non string Facultatif; seul domain sert à faire correspondre les entrées à supprimer.

⚠️ Important : Si un domaine du corps ne figure pas actuellement dans la liste des domaines autorisés, la requête entière échoue avec 400 Bad Request et rien n'est supprimé. Un tableau vide ou absent retourne également 400 Bad Request.

Exemple de requête

curl https://app.snipcart.com/api/settings/alloweddomains \
  -X DELETE \
  -H "Content-Type: application/json" \
  -H "Accept: application/json" \
  -u {API_KEY}: \
  -d '[{"domain": "subdomain1.snipcart.com"}, {"domain": "snipalt.com", "protocol": "https"}]'

Exemple de réponse

[
  {
    "domain": "subdomain.snipcart.com",
    "protocol": "https"
  }
]