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.
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.comModèles disponibles
Le modèle détermine le préfixe de vos endpoints et le modèle d'IA utilisé pour la vectorisation :
watchessneakersshoesProduits
Récupérer un produit
/products/{product_id}Récupère les informations complètes d'un produit par son ID.
Paramètres de chemin
product_idUUIDrequisIdentifiant UUID du produit
curl https://api.daitor.com/products/550e8400-e29b-41d4-a716-446655440000 \
-H "X-API-Key: votre_cle_api"{
"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
/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
idstringrequisIdentifiant unique du produit
titlestringrequisTitre du produit
descriptionstringrequisDescription détaillée
linkHttpUrlrequisURL du produit sur votre site
image_linkHttpUrlrequisURL de l'image principale
pricestringrequisPrix au format "XX.XX CURRENCY"
availabilitystringrequisDisponibilité (in stock, out of stock, preorder)
brandstringMarque du produit (requis si pas de gtin/mpn)
gtinstringCode GTIN/EAN/UPC
conditionstringÉtat : new, used, refurbished
colorstringCouleur du produit
genderstringGenre (requis pour vêtements)
age_groupstringGroupe d'âge (requis pour vêtements)
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
/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.
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
/products/{product_id}Supprime définitivement un produit de votre collection.
curl -X DELETE https://api.daitor.com/products/550e8400-... \
-H "X-API-Key: votre_cle_api"{
"message": "Product deleted successfully"
}Recherche
Recherche par image
/search/imageRecherche de produits similaires à partir d'une image. Les résultats sont triés par score de similarité (0 à 1).
Corps de la requête
base64_imagestringrequisImage encodée en Base64. Formats supportés : JPEG, PNG, HEIF/HEIC
curl -X POST https://api.daitor.com/search/image \
-H "X-API-Key: votre_cle_api" \
-H "Content-Type: application/json" \
-d '{
"base64_image": "iVBORw0KGgoAAAANSUhEUg..."
}'[
{
"id": "550e8400-...",
"score": 0.95,
"payload": {
"id": "watch-123",
"title": "Rolex Submariner",
"image_link": "https://...",
"price": "8500.00 EUR",
"brand": "Rolex"
}
},
{
"id": "660e8400-...",
"score": 0.87,
"payload": { ... }
}
]Score de similarité
Le score va de 0 à 1, où 1 signifie une correspondance parfaite. Les résultats sont triés par score décroissant. Par défaut, 10 résultats sont retournés.
Validations
💰 Format du prix
Format : XX.XX CURRENCY
29.99 EUR100 USD29.99EUR📦 Disponibilité
in stockout of stockpreorderbackorder🏷️ Condition
newusedrefurbished💱 Devises supportées
EURUSDGBPJPYAUDCADCHFCNYCodes 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éussie400Requête invalide (UUID invalide, type d'événement non supporté)403Accès refusé (clé API invalide ou manquante, quota dépassé)404Ressource non trouvée422Erreur de validation (voir détails dans la réponse)500Erreur serveur interne{
"price": "Price must be like '29.99 EUR'",
"gender": "Apparel products require gender and age_group"
}Exemples d'utilisation
Python
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
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