Daitor
API Referencev1.0.0

Daitor API

API REST pour la gestion de produits Google Shopping avec recherche visuelle par intelligence artificielle.

Introduction

L'API Daitor est organisée autour de REST. Notre API utilise des URLs prévisibles orientées ressources, accepte des corps de requête encodés en JSON, retourne des réponses encodées en JSON, et utilise les codes de réponse HTTP standards.

📦

Gestion de produits

CRUD complet pour vos produits Google Shopping

🔍

Recherche visuelle

Recherche par similarité d'image avec IA

Vectorisation automatique

Images vectorisées automatiquement à la création

📊

Tâches asynchrones

Traitement d'événements et imports en masse

Authentification

Toutes les requêtes doivent inclure votre clé API dans l'en-tête HTTP X-API-Key.

En-tête d'authentificationbash
curl https://api.daitor.com/products \
  -H "X-API-Key: votre_cle_api_ici"
⚠️

Important

  • • La clé API est unique à votre compte
  • • Elle détermine automatiquement votre collection et votre modèle
  • • Ne partagez jamais votre clé API publiquement

Base URL

https://api.daitor.com

Modèles disponibles

Le modèle détermine le préfixe de vos endpoints et le modèle d'IA utilisé pour la vectorisation :

watches
sneakers
shoes

Produits

Récupérer un produit

GET/products/{product_id}

Récupère les informations complètes d'un produit par son ID.

Paramètres de chemin
product_idUUIDrequis

Identifiant UUID du produit

Requêtebash
curl https://api.daitor.com/products/550e8400-e29b-41d4-a716-446655440000 \
  -H "X-API-Key: votre_cle_api"
Réponse 200json
{
  "id": "550e8400-e29b-41d4-a716-446655440000",
  "payload": {
    "id": "watch-123",
    "title": "Rolex Submariner Date",
    "description": "Montre de plongée automatique",
    "link": "https://example.com/rolex",
    "image_link": "https://example.com/rolex.jpg",
    "price": "8500.00 EUR",
    "availability": "in stock",
    "brand": "Rolex",
    "amount": 8500.00,
    "currency": "EUR"
  }
}

Créer un produit

POST/products/

Crée un nouveau produit. L'image sera automatiquement vectorisée pour la recherche visuelle. Notez que les payloads suivent les standards imposés dans les flux google shopping.

Corps de la requête
idstringrequis

Identifiant unique du produit

titlestringrequis

Titre du produit

descriptionstringrequis

Description détaillée

linkHttpUrlrequis

URL du produit sur votre site

image_linkHttpUrlrequis

URL de l'image principale

pricestringrequis

Prix au format "XX.XX CURRENCY"

availabilitystringrequis

Disponibilité (in stock, out of stock, preorder)

brandstring

Marque du produit (requis si pas de gtin/mpn)

gtinstring

Code GTIN/EAN/UPC

conditionstring

État : new, used, refurbished

colorstring

Couleur du produit

genderstring

Genre (requis pour vêtements)

age_groupstring

Groupe d'âge (requis pour vêtements)

Requêtebash
curl -X POST https://api.daitor.com/products/ \
  -H "X-API-Key: votre_cle_api" \
  -H "Content-Type: application/json" \
  -d '{
    "id": "watch-123",
    "title": "Rolex Submariner Date",
    "description": "Montre de plongée automatique avec date",
    "link": "https://example.com/rolex-submariner",
    "image_link": "https://example.com/images/rolex.jpg",
    "price": "8500.00 EUR",
    "availability": "in stock",
    "condition": "new",
    "brand": "Rolex",
    "gtin": "1234567890123",
    "color": "Black",
    "gender": "male",
    "age_group": "adult"
  }'

Modifier un produit

PATCH/products/{product_id}

Met à jour partiellement un produit existant. Seuls les champs fournis seront modifiés.

Corps de la requête

Tous les champs sont optionnels. Seuls ceux fournis seront mis à jour.

Requêtebash
curl -X PATCH https://api.daitor.com/products/550e8400-... \
  -H "X-API-Key: votre_cle_api" \
  -H "Content-Type: application/json" \
  -d '{
    "price": "7999.00 EUR",
    "availability": "out of stock"
  }'

Supprimer un produit

DELETE/products/{product_id}

Supprime définitivement un produit de votre collection.

Requêtebash
curl -X DELETE https://api.daitor.com/products/550e8400-... \
  -H "X-API-Key: votre_cle_api"
Réponse 200json
{
  "message": "Product deleted successfully"
}

Validations

💰 Format du prix

Format : XX.XX CURRENCY

29.99 EUR
100 USD
29.99EUR

📦 Disponibilité

in stockout of stockpreorderbackorder

🏷️ Condition

newusedrefurbished

💱 Devises supportées

EURUSDGBPJPYAUDCADCHFCNY

Codes d'erreur

L'API utilise les codes de réponse HTTP conventionnels pour indiquer le succès ou l'échec d'une requête.

200Requête réussie
400Requête invalide (UUID invalide, type d'événement non supporté)
403Accès refusé (clé API invalide ou manquante, quota dépassé)
404Ressource non trouvée
422Erreur de validation (voir détails dans la réponse)
500Erreur serveur interne
Exemple d'erreur 422json
{
  "price": "Price must be like '29.99 EUR'",
  "gender": "Apparel products require gender and age_group"
}

Exemples d'utilisation

Python

example.pypython
import requests
import base64

API_KEY = "votre_cle_api"
BASE_URL = "https://api.daitor.com"

headers = {
    "X-API-Key": API_KEY,
    "Content-Type": "application/json"
}

# Créer un produit
product_data = {
    "id": "watch-123",
    "title": "Rolex Submariner Date",
    "description": "Montre de plongée automatique",
    "link": "https://example.com/rolex",
    "image_link": "https://example.com/rolex.jpg",
    "price": "8500.00 EUR",
    "availability": "in stock",
    "brand": "Rolex"
}

response = requests.post(
    f"{BASE_URL}/products/",
    json=product_data,
    headers=headers
)
print("Produit créé:", response.json())

# Recherche par image
with open("image.jpg", "rb") as f:
    image_base64 = base64.b64encode(f.read()).decode()

response = requests.post(
    f"{BASE_URL}/search/image",
    json={"base64_image": image_base64},
    headers=headers
)
print("Résultats:", response.json())

JavaScript

example.jsjavascript
const API_KEY = "votre_cle_api";
const BASE_URL = "https://api.daitor.com";

const headers = {
  "X-API-Key": API_KEY,
  "Content-Type": "application/json"
};

// Créer un produit
async function createProduct() {
  const response = await fetch(`${BASE_URL}/products/`, {
    method: "POST",
    headers,
    body: JSON.stringify({
      id: "watch-123",
      title: "Rolex Submariner Date",
      description: "Montre de plongée automatique",
      link: "https://example.com/rolex",
      image_link: "https://example.com/rolex.jpg",
      price: "8500.00 EUR",
      availability: "in stock",
      brand: "Rolex"
    })
  });
  return response.json();
}

// Recherche par image
async function searchByImage(imageFile) {
  return new Promise((resolve) => {
    const reader = new FileReader();
    reader.onloadend = async () => {
      const base64 = reader.result.split(",")[1];
      const response = await fetch(`${BASE_URL}/search/image`, {
        method: "POST",
        headers,
        body: JSON.stringify({ base64_image: base64 })
      });
      resolve(response.json());
    };
    reader.readAsDataURL(imageFile);
  });
}

💬 Support

Pour toute question technique, contactez-nous :

support@daitor.com
Ellipse