TutuPP
69 outils MCP + API REST complète

Documentation de l’API TutuPP

Utilisez l’API REST ou le protocole MCP pour qu’un assistant IA effectue directement l’impression de photos, de documents, la gestion des commandes et toutes les autres opérations. Prend en charge 21 clients IA majeurs, dont Claude, Gemini, Codex et Copilot.

Démarrage rapide

Intégrez en trois étapes et utilisez immédiatement l’IA pour imprimer.

1

Créer un compte

Rendez-vous sur le site TutuPP et inscrivez-vous rapidement avec un code de vérification SMS.

2

Créer une clé API

Sur la page « Clés API » de votre espace compte, créez une clé en un clic et utilisez-la aussitôt.

3

Envoyer une requête

Appelez l’API REST avec votre clé API, ou configurez-la dans un client IA pour utiliser MCP.

Authentification

Toutes les requêtes API s’authentifient via la clé API dans un en-tête HTTP.

Authorization: Bearer tk_YOUR_API_KEY

Base URL

https://tutupp.com

Format de réponse

Content-Type: application/json

Point d’accès MCP

POST https://tutupp.com/api/mcp
Plateforme ouverte : après inscription, créez une clé API sans validation et utilisez immédiatement toutes les fonctions API et MCP.

Intégration MCP

MCP (Model Context Protocol) est un protocole ouvert d’Anthropic qui permet aux assistants IA d’appeler directement des outils externes.

Une fois configuré, vous pouvez, en langage naturel, faire exécuter à l’IA tout le flux « téléverser un document → créer une commande → payer avec le solde ».

Infos du protocole

Point d’accès:https://tutupp.com/api/mcp

Protocole:JSON-RPC 2.0 over Streamable HTTP

Méthodes:initialize · tools/list · tools/call

Téléversement de fichiers:Prend en charge l’extension multipart/form-data (message part + file parts, zéro base64, 100 Mo+) et le standard application/json

Choisissez votre client IA 21

Claude Code — CLI de terminal

Ajouter (Add)

claude mcp add --transport http tutupp https://tutupp.com/api/mcp --header "Authorization: Bearer tk_YOUR_API_KEY"

Ajoutez --scope user pour le global, --scope project pour le projet en cours uniquement

Remplacer la clé (Replace)

claude mcp remove tutupp && claude mcp add --transport http tutupp ...(nouvelle clé)

Retirer (Remove)

claude mcp remove tutupp

Exemple de conversation IA

Vous: Imprime report.pdf depuis mon bureau, A4 noir et blanc, et paie avec mon solde

L’IA appelle automatiquement :

1. upload_document → Téléverser le fichier

2. get_print_prices → Rechercher le tarif A4 N&B

3. create_order → Créer la commande

4. pay_with_balance → Payer avec le solde

AI: Terminé ! Commande PP2026040612345, A4 N&B ×1, ¥0,50 déduits de votre solde.

Référence de l’API REST

Une clé API peut accéder à tous les points d’accès ci-dessous, couvrant toutes les fonctions de l’interface.

Gestion des documents

POST /api/documents/upload
GET /api/documents
GET /api/documents/{id}
DELETE /api/documents/{id}

Gestion des photos

POST /api/photos/upload
GET /api/photos/{id}
DELETE /api/photos/{id}
GET /api/photos/{id}/quality-check?size={size}

Commandes

POST /api/orders
GET /api/orders
GET /api/orders/{id}
PUT /api/orders/{id}/cancel
GET /api/orders/track/{order_no}
GET /api/orders/{id}/tracking

Paiement

POST /api/payment/create
POST /api/payment/balance
GET /api/payment/status/{order_id}

Solde

GET /api/user/balance
POST /api/user/balance/topup
GET /api/user/balance/transactions

Coupons

GET /api/user/coupons
GET /api/user/coupons/available
POST /api/user/coupons/redeem

Adresses de livraison

GET /api/addresses
POST /api/addresses
PUT /api/addresses/{id}
DELETE /api/addresses/{id}
POST /api/addresses/parse

Commander pour d’autres (pré-commandes)

GET /api/user/pre-orders
POST /api/user/pre-orders
GET /api/user/pre-orders/{id}
PUT /api/user/pre-orders/{id}
PUT /api/user/pre-orders/{id}/status
POST /api/user/pre-orders/{id}/submissions/{sid}/review
PUT /api/user/pre-orders/{id}/submissions/{sid}/cancel

Partage de pré-commandes

GET /api/share/{code}
POST /api/share/{code}/submit
GET /api/share/{code}/submissions/{sid}
GET /api/share/{code}/my-submissions

Service après-vente

GET /api/user/after-sales
POST /api/after-sales

Régions et livraison

GET /api/regions
GET /api/regions/{id}
GET /api/regions/tree
GET /api/regions/coverage
GET /api/regions/{city_id}/city-coverage
GET /api/regions/{id}/express-delivery
GET /api/regions/{id}/pickup-points
GET /api/agents/referral/{code}
GET /api/shipping/config
GET /api/shipping/carriers

Consultation de config

GET /api/prices
GET /api/print-options/sizes
GET /api/print-options/paper-types

Restauration de photos par IA

POST /api/photos/{id}/restore
GET /api/restorations/{id}

Infos utilisateur

GET /api/auth/me
PUT /api/auth/me

État d’impression

GET /api/printer/status
GET /api/print-queue/status
GET /api/orders/auto-print-schedule

Gestion des clés API

GET /api/user/api-keys
POST /api/user/api-keys
DELETE /api/user/api-keys/{id}

État du système

GET /api/health

Liste des outils MCP69

Tous les outils ci-dessous sont appelables via le protocole MCP ; les clients IA les découvrent automatiquement une fois configurés.

Gestion des documents

upload_document Téléverser un document (PDF/DOC/DOCX/XLS/XLSX/PPT/PPTX) — one of: file_url / content (base64) / file_path (curl)
list_documents Lister tous les documents téléversés par l’utilisateur actuel
get_document_info Obtenir les détails du document (nombre de pages, taille, etc.)
delete_document Supprimer un document (uniquement si non lié à une commande active)

Gestion des photos

upload_photo Téléverser une photo (JPG/PNG/WebP/HEIC) — one of: file_url / content (base64) / file_path (curl)
get_photo Obtenir les détails de la photo
delete_photo Supprimer une photo (uniquement si non liée à une commande active)
check_photo_quality Vérifier la qualité d’impression de la photo à un format donné (DPI)

Commandes

create_order Créer une commande d’impression
list_orders Lister toutes les commandes de l’utilisateur actuel
get_order_status Interroger l’état et les détails de la commande
cancel_order Annuler une commande (uniquement en attente de paiement)
track_order Rechercher les infos de commande par numéro (public)
get_order_tracking Obtenir le suivi de l’expédition de la commande

Paiement et solde

create_payment Créer un paiement tiers (renvoie payment_url, ouvrir dans le navigateur pour payer)
pay_with_balance Payer une commande avec le solde du compte
get_payment_status Interroger l’état de paiement de la commande
create_topup Créer une commande de recharge de solde (renvoie payment_url)
get_balance Interroger le solde du compte (total/gelé/disponible)
get_balance_transactions Interroger l’historique des transactions de solde

Coupons

list_coupons Lister les coupons de l’utilisateur actuel
get_available_coupons Obtenir les coupons disponibles (filtre par montant)
redeem_coupon Récupérer un coupon via un code

Adresses de livraison

list_addresses Lister les adresses de livraison
create_address Ajouter une adresse de livraison
update_address Mettre à jour une adresse de livraison
delete_address Supprimer une adresse de livraison
parse_address Analyser un texte d’adresse

Commander pour d’autres (pré-commandes)

list_pre_orders Lister toutes les pré-commandes
create_pre_order Créer une pré-commande (partager un lien pour que d’autres soumettent)
get_pre_order Obtenir les détails de la pré-commande (avec toutes les soumissions)
update_pre_order Mettre à jour les paramètres de la pré-commande
update_pre_order_status Changer l’état de la pré-commande
review_submission Examiner une soumission de pré-commande
cancel_submission Annuler une soumission

Partage de pré-commandes

get_share_info Obtenir les infos du lien de partage
submit_share_photos Soumettre des photos à un lien de partage
get_submission_status Interroger l’état de la soumission et les détails des photos
list_my_submissions Lister toutes les soumissions d’un lien de partage

Service après-vente

list_after_sales Lister les dossiers SAV de l’utilisateur actuel
create_after_sales Créer une demande SAV (remboursement/réimpression/réexpédition)

Régions et livraison

list_regions Interroger la liste des régions
get_region Obtenir les détails de la région et sous-régions
get_region_tree Obtenir l’arbre complet des régions (province → ville → district)
get_region_coverage Obtenir les statistiques de couverture des agents
get_city_coverage Obtenir la couverture par district d’une ville
get_agent_by_referral Trouver un agent par code de parrainage
check_express_delivery Vérifier si la livraison le jour même est disponible
get_shipping_config Obtenir la configuration de livraison (globale)
get_shipping_carriers Obtenir la liste des transporteurs (avec supplément zone reculée)
list_pickup_points Interroger la liste des points de retrait

Config et état

get_print_prices Obtenir les tarifs d’impression + paliers de remise sur volume
get_print_options Obtenir les formats et types de papier disponibles
get_printer_status Interroger l’état de l’imprimante
get_queue_status Interroger l’état de la file d’impression

Infos utilisateur

get_profile Obtenir le profil de l’utilisateur actuel
update_profile Mettre à jour le pseudo de l’utilisateur

Restauration de photos par IA

restoration_preview Lancer un aperçu de restauration IA sur une photo
get_restoration Obtenir le résultat de la tâche de restauration IA

Gestion des clés API

list_api_keys Lister toutes les clés API de l’utilisateur actuel
create_api_key Créer une nouvelle clé API (la clé complète n’est affichée qu’une fois)
revoke_api_key Révoquer une clé API spécifique

Système

health_check Vérifier l’état du service (base de données/passerelle de paiement/version)
get_auto_print_schedule Obtenir les réglages de la fenêtre d’impression auto

Avis sur les commandes

submit_order_review Soumettre un avis de commande (note sur 3 axes + commentaire) ; idempotent via ON CONFLICT ; limité à 5/h
batch_submit_order_reviews Avis en lot (max 20 · transaction unique · atomique) ; 5 étoiles en un clic
list_my_order_reviews Lister mes avis (enveloppe paginée)
get_order_review Obtenir les détails d’un avis (avec réponse officielle)
mark_order_review_read Marquer la réponse officielle comme lue (CTE empêche le rejeu, réduit le compteur du badge de nav)

Exemples de code

Un exemple complet du flux « consulter les prix → téléverser un fichier → créer une commande → payer avec le solde ».

# 查询打印价格
curl https://tutupp.com/api/prices \
  -H "Authorization: Bearer tk_YOUR_API_KEY"

# 上传文档
curl -X POST https://tutupp.com/api/documents/upload \
  -H "Authorization: Bearer tk_YOUR_API_KEY" \
  -F "file=@report.pdf"

# 创建订单
curl -X POST https://tutupp.com/api/orders \
  -H "Authorization: Bearer tk_YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "items": [{
      "document_id": "uuid-here",
      "size": "A4",
      "paper_type": "matte",
      "quantity": 1
    }],
    "delivery_method": "pickup"
  }'

# 余额支付
curl -X POST https://tutupp.com/api/payment/balance \
  -H "Authorization: Bearer tk_YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"order_id": "uuid-here"}'

Flux de travail typique

Téléverser Consulter les prix Créer commande Payer avec solde Terminé

Gestion des erreurs

L’API utilise des codes d’état HTTP standard ; les réponses d’erreur contiennent les infos d’erreur au format JSON.

// Format de réponse d’erreur
{
  "error": "Description de l’erreur"
}
400
Paramètres de requête incorrects Champs requis manquants, format incorrect
401
Non authentifié Clé API manquante ou invalide
403
Interdit Opération interdite, permissions insuffisantes
404
Ressource introuvable L’ID de commande/document/photo n’existe pas
409
Conflit Photo liée à une commande, suppression impossible
413
Fichier trop volumineux Document > 50 Mo / photo > 120 Mo
422
Règle métier non respectée Solde insuffisant, commande non annulable
429
Trop de requêtes Limite de débit de l’API dépassé
500
Erreur interne du serveur Réessayez plus tard ou contactez le support
Limitation de débit : seules les opérations d’écriture sensibles comme la connexion / l’inscription / les codes de vérification sont protégées contre les attaques ; un usage normal ne la déclenche jamais et les seuils sont configurables dans la console d’administration. Les réponses portent un champ retry_after_seconds + un en-tête Retry-After.

Prêt à commencer ?

Créez un compte, générez une clé API et laissez l’IA s’occuper de vos impressions.