Shopisim

API Shopisim

v1.0.0

REST APIJSONJWT Auth

Vue d'ensemble

L'API REST Shopisim vous permet de créer des vitrines personnalisées, d'intégrer le e-commerce dans des sites existants ou de développer des applications mobiles alimentées par les boutiques Shopisim.

URL de base

https://www.shopisim.com/api

Type de contenu

application/json

Authentification

Bearer <JWT>

Démarrage rapide

Toutes les réponses sont en JSON. Les endpoints publics ne nécessitent aucune authentification. Les endpoints vendeur/admin nécessitent un token JWT valide dans le header Authorization.

# Récupérer les produits d'une boutique (sans authentification)
curl https://www.shopisim.com/api/public/shops/my-shop/products

# S'authentifier et gérer sa boutique
TOKEN=$(curl -s -X POST https://www.shopisim.com/api/auth/login \
  -H "Content-Type: application/json" \
  -d '{"username":"you@example.com","password":"secret"}' | jq -r .token)

curl https://www.shopisim.com/api/seller/shops/me \
  -H "Authorization: Bearer $TOKEN"

Localisation

Shopisim supporte les locales fr, en et de. Envoyez le header Accept-Language ou utilisez le paramètre ?locale=en pour obtenir du contenu traduit. Les messages d'erreur sont également retournés dans la langue demandée.

Pagination

Les endpoints de liste retournent des résultats paginés. Utilisez ?page=1&limit=20 pour contrôler la pagination. La réponse inclut les champs items, total, page et limit.

{
  "items": [...],
  "total": 142,
  "page": 1,
  "limit": 20
}

Authentification

Inscription, connexion et gestion des sessions utilisateur avec des tokens JWT.

POST/auth/login

Authentifie un utilisateur et retourne un token JWT.

Corps de la requête

{
  "username": "user@example.com",
  "password": "SecurePass123!"
}

Réponse

{
  "token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9..."
}
POST/auth/register

Crée un nouveau compte utilisateur. Retourne un token JWT immédiatement.

Corps de la requête

{
  "email": "user@example.com",
  "password": "SecurePass123!",
  "firstName": "Jean",
  "lastName": "Dupont",
  "locale": "fr"
}

Réponse

{
  "message": "...",
  "user": { "id": 1, "email": "user@example.com", "firstName": "Jean", "lastName": "Dupont" },
  "token": "eyJ0eXAi..."
}
GET/auth/meAuth

Récupère le profil de l'utilisateur authentifié.

Réponse

{
  "id": 1, "email": "user@example.com", "firstName": "Jean", "lastName": "Dupont",
  "phone": "+33612345678", "preferredLocale": "fr",
  "roles": ["ROLE_USER", "ROLE_SELLER"], "status": "active",
  "createdAt": "2026-01-15T10:30:00+00:00"
}
PATCH/auth/meAuth

Met à jour le profil de l'utilisateur authentifié.

Corps de la requête

{
  "firstName": "Jean", "lastName": "Martin",
  "phone": "+33612345678", "preferredLocale": "en"
}
POST/auth/me/passwordAuth

Change le mot de passe de l'utilisateur authentifié.

Corps de la requête

{
  "currentPassword": "OldPass123!",
  "newPassword": "NewSecurePass456!"
}
POST/auth/verify-email

Vérifie l'adresse email avec le token envoyé par email.

Corps de la requête

{ "token": "abc123..." }
POST/auth/resend-verificationAuth

Renvoie l'email de vérification.

POST/auth/forgot-password

Demande un email de réinitialisation. Retourne toujours 200 par sécurité.

Corps de la requête

{ "email": "user@example.com" }
POST/auth/reset-password

Réinitialise le mot de passe avec le token reçu par email.

Corps de la requête

{ "token": "reset-token", "newPassword": "NewPass456!" }

Boutiques

Parcourir et récupérer les informations des boutiques. Tous les endpoints sont publics.

GET/public/shops

Liste toutes les boutiques actives.

Paramètres

limitintÉléments par page (défaut 20)
offsetintDécalage pour la pagination

Réponse

{
  "items": [
    {
      "id": 1, "name": "Ma Boutique", "slug": "ma-boutique",
      "description": "...", "logoUrl": "https://...",
      "primaryColor": "#174374", "themeCode": "classic", "currency": "EUR"
    }
  ],
  "total": 42
}
GET/public/shops/{slug}

Récupère les détails complets d'une boutique spécifique.

Paramètres

slugstringrequisSlug URL de la boutique
localestringLocale pour le contenu traduit (fr, en, de)

Réponse

{
  "id": 1, "name": "Ma Boutique", "slug": "ma-boutique",
  "description": "...", "logoUrl": "https://...", "bannerUrl": "https://...",
  "faviconUrl": "https://...", "primaryColor": "#174374", "accentColor": "#3375ad",
  "phone": "+33 1 23 45 67 89", "email": "contact@maboutique.fr",
  "address": "123 Rue du Commerce", "city": "Paris", "zipCode": "75001", "country": "France",
  "currency": "EUR", "themeCode": "classic",
  "supportedLocales": ["fr", "en", "de"], "defaultLocale": "fr",
  "shippingCostCents": 499, "customPages": [...], "contentBlocks": [...]
}
GET/public/shops/{slug}/payment-methods

Récupère les méthodes de paiement activées pour une boutique.

Réponse

{
  "testMode": false,
  "methods": [
    { "provider": "stripe", "label": "Credit Card", "enabled": true },
    { "provider": "paypal", "label": "PayPal", "enabled": true }
  ]
}

Produits

Parcourir et rechercher des produits dans une boutique.

GET/public/shops/{slug}/products

Liste les produits d'une boutique avec pagination et recherche.

Paramètres

slugstringrequisSlug URL de la boutique
pageintNuméro de page
limitintÉléments par page
qstringRequête de recherche
localestringLocale (fr, en, de)

Réponse

{
  "items": [
    {
      "id": 1, "title": "T-Shirt Premium", "slug": "t-shirt-premium",
      "priceCents": 2999, "currency": "EUR", "stockQty": 50, "status": "active",
      "category": { "id": 1, "name": "Clothing", "slug": "clothing" },
      "images": [{ "id": 1, "url": "https://...", "alt": "..." }],
      "variants": [{ "id": 1, "name": "Default", "sku": "TSP-001", "priceCents": 2999, "stockQty": 50 }],
      "taxGroup": { "id": 1, "name": "TVA 20%", "rate": 20.00 }
    }
  ],
  "total": 85, "page": 1, "limit": 20
}
GET/public/shops/{slug}/products/{productSlug}

Récupère les informations détaillées d'un produit spécifique.

Paramètres

slugstringrequisSlug URL de la boutique
productSlugstringrequisSlug du produit
localestringLocale (fr, en, de)

Catégories

Récupérer l'arborescence des catégories avec sous-catégories.

GET/public/shops/{slug}/categories

Récupère l'arborescence complète des catégories d'une boutique (sous-catégories imbriquées).

Paramètres

slugstringrequisSlug URL de la boutique
localestringLocale (fr, en, de)

Réponse

{
  "items": [
    {
      "id": 1, "name": "Clothing", "slug": "clothing", "imageUrl": "https://...",
      "productCount": 12,
      "children": [
        { "id": 2, "name": "T-Shirts", "slug": "t-shirts", "productCount": 5, "children": [] }
      ]
    }
  ]
}

Panier

Créer et gérer les paniers d'achat. Les paniers sont identifiés par UUID.

POST/public/carts

Crée un nouveau panier pour une boutique.

Corps de la requête

{ "shopSlug": "ma-boutique" }

Réponse

{
  "id": "550e8400-e29b-41d4-a716-446655440000",
  "items": [], "totalCents": 0, "taxCents": 0, "totalWithTaxCents": 0
}
GET/public/carts/{id}

Récupère le contenu du panier avec le détail des taxes.

Paramètres

iduuidrequisUUID du panier

Réponse

{
  "id": "550e8400-...",
  "items": [
    {
      "id": 1, "productVariantId": 5, "productTitle": "T-Shirt Premium",
      "variantName": "L / Blue", "qty": 2, "unitPriceCents": 2999,
      "totalCents": 5998, "imageUrl": "https://..."
    }
  ],
  "totalCents": 5998, "taxCents": 1000, "totalWithTaxCents": 6998, "currency": "EUR"
}
POST/public/carts/{id}/items

Ajoute un article au panier.

Corps de la requête

{ "productVariantId": 5, "qty": 2 }
PATCH/public/carts/{id}/items/{itemId}

Met à jour la quantité d'un article.

Corps de la requête

{ "qty": 3 }
DELETE/public/carts/{id}/items/{itemId}

Supprime un article du panier.

Paiement & Commande

Traiter les commandes avec plusieurs fournisseurs de paiement. Supporte Stripe, PayPal, Flutterwave, CinetPay, virement bancaire, contre-remboursement et mode test.

POST/public/checkout

Crée une commande à partir d'un panier. Retourne les instructions de paiement selon le fournisseur sélectionné.

Corps de la requête

{
  "cartId": "550e8400-...",
  "paymentProvider": "stripe",
  "cgvAccepted": true,
  "firstName": "Jean", "lastName": "Dupont",
  "email": "jean@example.com", "phone": "+33612345678",
  "shippingAddress": "123 Rue du Commerce",
  "shippingCity": "Paris", "shippingZipCode": "75001", "shippingCountry": "FR"
}

Réponse

{
  "order": {
    "id": 42, "orderNumber": "ORD-20260313-A1B2C3",
    "status": "pending", "totalCents": 6998, "currency": "EUR"
  },
  "paymentAction": {
    "type": "client_confirmation",
    "clientSecret": "pi_xxx_secret_xxx",
    "publishableKey": "pk_live_xxx"
  }
}

Types de flux de paiement

client_confirmationConfirmer le paiement côté client (Stripe). Contient clientSecret et publishableKey.

redirectRediriger l'utilisateur vers la page de paiement (PayPal, Flutterwave, CinetPay). Contient redirectUrl.

pendingEn attente de confirmation manuelle (virement bancaire). Contient bankDetails.

noneAucun paiement requis (contre-remboursement, mode test). La commande est confirmée immédiatement.

POST/public/checkout/verify-return

Vérifie un retour de paiement après redirection (PayPal, Flutterwave, CinetPay).

Corps de la requête

{
  "provider": "paypal",
  "orderNumber": "ORD-20260313-A1B2C3",
  "transactionId": "PAYID-xxx"
}

Réponse

{ "status": "paid", "orderNumber": "ORD-20260313-A1B2C3" }

Commandes

Récupérer l'historique des commandes client.

GET/auth/me/ordersAuth

Récupère l'historique des commandes du client authentifié.

Réponse

{
  "items": [
    {
      "id": 42, "orderNumber": "ORD-20260313-A1B2C3", "status": "shipped",
      "totalCents": 6998, "currency": "EUR", "itemCount": 2,
      "shopName": "Ma Boutique", "shopSlug": "ma-boutique",
      "createdAt": "2026-03-13T14:30:00+00:00"
    }
  ]
}

Factures

Télécharger les factures de commande en PDF.

GET/public/orders/{orderNumber}/invoice

Télécharge la facture PDF d'une commande.

Paramètres

orderNumberstringrequisNuméro de commande (ex : ORD-20260313-A1B2C3)

Réponse

Binary PDF (Content-Type: application/pdf)

Contact

Envoyer des messages de contact aux propriétaires de boutique.

POST/public/contact/{shopSlug}

Envoie un message de contact à une boutique.

Corps de la requête

{
  "name": "Marie",
  "email": "marie@example.com",
  "subject": "Question",
  "message": "Hello..."
}

Réponse

{ "success": true }

Newsletter

S'abonner et se désabonner des newsletters des boutiques.

POST/public/newsletter/subscribe

Abonne un email à la newsletter d'une boutique.

Corps de la requête

{ "email": "sub@example.com", "shopSlug": "ma-boutique", "locale": "fr" }

Réponse

{ "status": "subscribed" }
GET/public/newsletter/unsubscribe/{token}

Se désabonne en utilisant le token reçu par email.

Blog

Lire les articles du blog.

GET/public/blog

Liste les articles de blog publiés.

Paramètres

pageintNuméro de page
limitintÉléments par page
localestringLocale (fr, en, de)
tagstringFiltrer par tag
GET/public/blog/{slug}

Récupère un article de blog spécifique.

Paramètres

localestringLocale (fr, en, de)

Compte Client

Gérer les adresses, exporter les données et supprimer le compte (RGPD).

GET/auth/me/addressesAuth

Liste les adresses enregistrées.

POST/auth/me/addressesAuth

Crée une nouvelle adresse.

Corps de la requête

{
  "label": "Home", "fullName": "Jean Dupont",
  "address1": "123 Rue du Commerce", "address2": "Apt 4B",
  "city": "Paris", "zipCode": "75001", "country": "FR",
  "phone": "+33612345678", "isDefault": true
}
PATCH/auth/me/addresses/{id}Auth

Met à jour une adresse.

DELETE/auth/me/addresses/{id}Auth

Supprime une adresse.

GET/auth/me/exportAuth

Exporte toutes les données utilisateur (conformité RGPD).

DELETE/auth/meAuth

Supprime le compte et anonymise toutes les données (conformité RGPD). Notifie les boutiques concernées.

Vendeur — Gestion de la Boutique

Créer et gérer votre boutique. Nécessite ROLE_SELLER.

POST/seller/shopsAuth

Crée une nouvelle boutique.

Corps de la requête

{
  "name": "Ma Boutique", "slug": "ma-boutique",
  "description": "...", "themeCode": "classic",
  "primaryColor": "#174374", "currency": "EUR"
}
GET/seller/shops/meAuth

Récupère les détails de votre boutique.

PATCH/seller/shops/meAuth

Met à jour votre boutique. Tous les champs sont optionnels.

Corps de la requête

{
  "name": "...", "slug": "...", "description": "...",
  "primaryColor": "#...", "accentColor": "#...",
  "phone": "+33...", "email": "contact@...",
  "address": "...", "city": "...", "zipCode": "...", "country": "...",
  "seoTitle": "...", "seoDescription": "...", "keywords": "...",
  "themeCode": "classic", "currency": "EUR",
  "customPages": [...], "contentBlocks": [...]
}
POST/seller/shops/me/activateAuth

Active votre boutique (la rend publiquement visible).

GET/seller/shops/me/localesAuth

Récupère la configuration des locales supportées.

PUT/seller/shops/me/localesAuth

Met à jour les locales supportées.

Corps de la requête

{ "supportedLocales": ["fr", "en", "de"], "defaultLocale": "fr" }
GET/seller/shops/me/domainAuth

Récupère la configuration du domaine personnalisé.

POST/seller/shops/me/domainAuth

Configure un domaine personnalisé.

Corps de la requête

{ "domain": "www.myboutique.com" }
POST/seller/shops/me/domain/verifyAuth

Vérifie la configuration DNS de votre domaine personnalisé.

DELETE/seller/shops/me/domainAuth

Supprime le domaine personnalisé.

Vendeur — Produits

Opérations CRUD sur les produits, variantes et traductions.

GET/seller/productsAuth

Liste vos produits.

Paramètres

pageintNuméro de page
limitintÉléments par page
searchstringRequête de recherche
POST/seller/productsAuth

Crée un produit.

Corps de la requête

{
  "title": "T-Shirt Premium", "slug": "t-shirt-premium",
  "description": "...", "priceCents": 2999, "currency": "EUR",
  "stockQty": 50, "sku": "TSP-001", "categoryId": 1, "taxGroupId": 1
}
GET/seller/products/{id}Auth

Récupère les détails d'un produit.

PATCH/seller/products/{id}Auth

Met à jour un produit (tous les champs optionnels).

DELETE/seller/products/{id}Auth

Supprime un produit.

POST/seller/products/{id}/activateAuth

Active/publie un produit.

Variantes

GET/seller/products/{id}/variantsAuth

Liste les variantes d'un produit.

POST/seller/products/{id}/variantsAuth

Crée une variante.

Corps de la requête

{
  "name": "L / Blue", "sku": "TSP-001-L-BL",
  "priceCents": 2999, "stockQty": 20,
  "attributes": { "size": "L", "color": "Blue" }, "active": true
}
PATCH/seller/products/{productId}/variants/{variantId}Auth

Met à jour une variante.

DELETE/seller/products/{productId}/variants/{variantId}Auth

Supprime une variante.

Traductions

GET/seller/products/{id}/translationsAuth

Récupère toutes les traductions d'un produit.

PATCH/seller/products/{id}/translations/{locale}Auth

Met à jour la traduction pour une locale.

Corps de la requête

{ "title": "Premium T-Shirt", "description": "English description..." }
POST/seller/products/{id}/auto-translateAuth

Traduit automatiquement le produit dans toutes les locales supportées grâce à l'IA.

Vendeur — Catégories

Gérer les catégories de produits avec support des sous-catégories.

GET/seller/categoriesAuth

Liste toutes les catégories.

POST/seller/categoriesAuth

Crée une catégorie.

Corps de la requête

{
  "name": "Clothing", "slug": "clothing",
  "description": "...", "sortOrder": 0, "active": true, "parentId": null
}
PATCH/seller/categories/{id}Auth

Met à jour une catégorie.

DELETE/seller/categories/{id}Auth

Supprime une catégorie.

POST/seller/categories/{id}/auto-translateAuth

Traduit automatiquement la catégorie grâce à l'IA.

Vendeur — Commandes

Consulter et gérer les commandes, traiter les transitions de workflow.

GET/seller/ordersAuth

Liste les commandes de votre boutique.

Paramètres

pageintNuméro de page
limitintÉléments par page
searchstringRequête de recherche
GET/seller/orders/{id}Auth

Récupère les détails d'une commande incluant les articles, les informations d'expédition et les transitions de workflow disponibles.

GET/seller/orders/{id}/workflowAuth

Récupère les transitions de workflow disponibles pour une commande.

Réponse

{
  "currentStatus": "paid",
  "availableTransitions": [
    { "name": "process", "label": "Process order" },
    { "name": "ship", "label": "Mark as shipped" }
  ]
}
POST/seller/orders/{id}/workflow/transitionAuth

Applique une transition de workflow (ex : traiter, expédier, livrer, annuler, rembourser).

Corps de la requête

{ "transition": "ship" }
POST/seller/orders/{id}/shipmentAuth

Ajoute les informations de suivi d'expédition.

Corps de la requête

{
  "carrier": "DHL",
  "trackingNumber": "1234567890",
  "trackingUrl": "https://tracking.dhl.com/..."
}
POST/seller/orders/{id}/confirm-paymentAuth

Confirme manuellement un paiement par virement bancaire.

GET/seller/orders/{id}/invoiceAuth

Télécharge la facture de commande en PDF.

Vendeur — Médias

Téléverser et gérer les images pour la boutique, les produits et les catégories. Utilisez multipart/form-data pour les téléversements de fichiers.

POST/seller/shops/me/logoAuth

Téléverse le logo de la boutique (multipart/form-data).

DELETE/seller/shops/me/logoAuth

Supprime le logo de la boutique.

POST/seller/shops/me/bannerAuth

Téléverse la bannière de la boutique (multipart/form-data).

DELETE/seller/shops/me/bannerAuth

Supprime la bannière de la boutique.

POST/seller/shops/me/banner/from-urlAuth

Définit la bannière à partir d'une URL externe.

Corps de la requête

{ "url": "https://images.unsplash.com/..." }
POST/seller/shops/me/favicon/generateAuth

Génère automatiquement le favicon à partir des initiales ou du logo de la boutique.

Corps de la requête

{ "source": "initials" }
POST/seller/shops/me/faviconAuth

Téléverse un favicon personnalisé (multipart/form-data).

DELETE/seller/shops/me/faviconAuth

Supprime le favicon.

POST/seller/products/{id}/imagesAuth

Téléverse une image de produit (multipart/form-data).

DELETE/seller/products/{productId}/images/{imageId}Auth

Supprime une image de produit.

PUT/seller/products/{productId}/images/reorderAuth

Réordonne les images d'un produit.

Corps de la requête

{ "imageIds": [3, 1, 2] }
POST/seller/categories/{id}/imageAuth

Téléverse une image de catégorie (multipart/form-data).

Vendeur — Paramètres de Paiement

Configurer les fournisseurs de paiement (Stripe, PayPal, Flutterwave, CinetPay, virement bancaire, contre-remboursement).

GET/seller/shops/me/payment-settingsAuth

Récupère la configuration des paiements.

PATCH/seller/shops/me/payment-settingsAuth

Met à jour les paramètres et identifiants des fournisseurs de paiement.

POST/seller/shops/me/payment-settings/validate-credentialsAuth

Valide les identifiants d'un fournisseur de paiement.

POST/seller/shops/me/payment-settings/toggle-test-modeAuth

Bascule entre le mode test et production.

Vendeur — Paramètres Email

Personnaliser les emails de notification de commande avec SMTP personnalisé, templates et traductions.

GET/seller/shops/me/email-settingsAuth

Récupère la configuration email.

PATCH/seller/shops/me/email-settingsAuth

Met à jour les paramètres email (SMTP, template, textes).

POST/seller/shops/me/email-settings/previewAuth

Aperçu du template email rendu.

Corps de la requête

{ "type": "order_confirmation", "locale": "fr" }
POST/seller/shops/me/email-settings/send-testAuth

Envoie un email de test.

Corps de la requête

{ "type": "order_confirmation", "locale": "fr" }

Vendeur — Newsletter

Gérer les abonnés et envoyer des campagnes newsletter.

GET/seller/shops/me/newsletter/subscribersAuth

Liste les abonnés à la newsletter.

Paramètres

pageintNuméro de page
searchstringRequête de recherche
POST/seller/shops/me/newsletter/sendAuth

Envoie une campagne newsletter à tous les abonnés.

Corps de la requête

{
  "subject": "Spring Collection!",
  "htmlContent": "<h1>New arrivals...</h1>",
  "locale": "fr"
}
GET/seller/shops/me/newsletter/campaignsAuth

Liste les campagnes envoyées.

POST/seller/shops/me/newsletter/generateAuth

Génère du contenu newsletter par IA.

Corps de la requête

{ "topic": "Spring sale", "locale": "fr", "tone": "friendly" }

Vendeur — Notifications

Notifications en temps réel via Server-Sent Events (SSE) avec fallback polling.

GET/seller/notificationsAuth

Liste les notifications.

Paramètres

pageintNuméro de page
unread_onlyboolFiltrer les non lues uniquement
GET/seller/notifications/unread-countAuth

Récupère le nombre de notifications non lues.

Réponse

{ "count": 5 }
PATCH/seller/notifications/{id}/readAuth

Marque une notification comme lue.

POST/seller/notifications/mark-all-readAuth

Marque toutes les notifications comme lues.

GET/seller/notifications/streamAuth

Flux Server-Sent Events pour les notifications en temps réel. Gardez la connexion ouverte.

Vendeur — Outils IA

Outils alimentés par l'IA pour la génération de contenu utilisant Claude et OpenAI.

POST/seller/shops/me/generate-descriptionAuth

Génère par IA la description de la boutique avec optimisation SEO et traductions.

Corps de la requête

{ "keywords": "artisanal jewelry, handmade, Paris" }
POST/seller/shops/me/generate-legalAuth

Génère par IA les documents juridiques (CGV, politique de confidentialité, etc.).

Corps de la requête

{ "type": "cgv", "locale": "fr" }
POST/seller/shops/me/ai-bannerAuth

Recherche d'images de bannière sélectionnées par IA.

Corps de la requête

{ "keywords": "fashion boutique modern" }
POST/seller/shops/me/ai-logoAuth

Génère un logo de boutique par IA.

POST/seller/products/ai-generateAuth

Génère une fiche produit complète par IA.

Corps de la requête

{ "name": "Organic Cotton T-Shirt" }
POST/seller/products/{id}/social-captionAuth

Génère par IA une légende pour les réseaux sociaux pour un produit.

Corps de la requête

{ "platform": "instagram", "locale": "fr" }
POST/seller/shops/me/auto-translateAuth

Traduit automatiquement tout le contenu de la boutique dans les locales supportées.

POST/seller/transcribeAuth

Transcrit un fichier audio en texte (multipart/form-data).

Webhooks

Endpoints webhook des fournisseurs de paiement. Appelés par les fournisseurs de paiement pour confirmer les transactions.

Les URLs webhook suivantes sont configurées par fournisseur de paiement :

POST /webhooks/stripe

POST /webhooks/paypal

POST /webhooks/flutterwave

POST /webhooks/cinetpay

POST /webhooks/orange_money

POST /webhooks/mtn_momo

Ces endpoints sont à usage interne par les fournisseurs de paiement. Vous n'avez pas besoin de les appeler directement.

Gestion des erreurs

Toutes les erreurs suivent un format JSON cohérent avec des messages localisés.

{
  "code": 401,
  "message": "Invalid credentials"
}

// validation:
{
  "error": "This email is already in use"
}

Codes de statut HTTP

200 Succès
201 Créé
204 Supprimé (pas de contenu)
400 Erreur de validation
401 Non authentifié
403 Interdit
404 Non trouvé
500 Erreur serveur

Limites d'utilisation

Directives d'utilisation de l'API.

Veuillez utiliser l'API de manière responsable. Directives générales :

  • Endpoints publics : pas de limite stricte, mais évitez le polling excessif
  • Endpoints authentifiés : conçus pour des usages mono-boutique
  • Endpoints IA : soumis aux limites des fournisseurs en amont, à utiliser avec parcimonie
  • Flux SSE : maintenir une seule connexion par session
  • Téléversement de fichiers : maximum 10 Mo par fichier

Pour les intégrations à fort volume, veuillez nous contacter.

© 2026 Shopisim. Tous droits réservés.

Interface Swagger UI interactive également disponible sur /api/doc