OCR de carte de visite
Cette capacité lit une carte de visite photographiée et en extrait le contact : nom, fonction, société, téléphone, e-mail et adresse. Vous obtenez une fiche structurée, prête à enregistrer dans vos contacts ou votre CRM, au lieu de retaper une carte à la fois après chaque salon ou rendez-vous.
Exécuter en ligne
Exécutez cette tâche sur nos serveurs, avec votre compte. Les outils gratuits tournent dans votre navigateur ; celui-ci est facturé sur votre solde KIT au prix affiché ci-dessus.
La pile de cartes enfin exploitée
Après un salon ou une semaine de rendez-vous, il reste une pile de cartes de visite qui, faute de temps, ne rejoint jamais le carnet d’adresses. La capacité renverse ce cliché : d’une simple photo, elle isole le nom, la fonction, la société, les numéros et l’e-mail, et distingue le fixe du mobile. Vous obtenez une fiche propre, prête à enregistrer. Le contact ne se perd plus au fond d’une poche : il devient joignable en quelques secondes.
Ce qui se lit bien, ce qui résiste
Une carte classique, au texte contrasté et à la mise en page sobre, se lit très bien. Les cartes très graphiques — texte sur fond photo, encres pâles, polices fantaisie, dorures — restent plus délicates et méritent une vérification. La capacité gère plusieurs langues et sépare correctement les champs habituels. Photographiez la carte à plat, bien éclairée, sans reflet sur les zones brillantes, pour que numéros et adresses ressortent nettement.
Prix à la carte, et canaux
Le tarif est public et compté par carte : $0.010 par requête, plus $0.0575 par image, en dollars US, sans abonnement. Le traitement est asynchrone : vous envoyez la photo, une tâche démarre, la fiche contact revient une fois l’analyse faite. L’outil s’utilise sur cette page et par l’API, pour verser en flux les cartes d’un événement dans un CRM, avec une arrivée prévue sur mobile — idéale pour scanner une carte sur place.
Cas d’usage
Le retour de salon professionnel
De retour d’un salon, Camille Moreau photographie une trentaine de cartes récoltées. Chaque contact est extrait et enregistré dans son carnet d’adresses le soir même, avant que les visages ne s’estompent.
L’alimentation d’un CRM
Studio Lumen SAS verse les contacts issus de cartes de visite directement dans son outil de suivi commercial. Nom, société et e-mail arrivent structurés, sans saisie manuelle sujette aux fautes.
Un numéro à joindre tout de suite
Après un rendez-vous, Julien Lefèvre prend en photo la carte d’un prestataire et récupère aussitôt son mobile et son e-mail, prêts à composer sans les recopier chiffre par chiffre.
Questions fréquentes
Quels champs sont extraits d’une carte ?
Le nom, la fonction, la société, les numéros de téléphone, l’e-mail et l’adresse quand ils figurent. Le fixe et le mobile sont distingués lorsque la carte les présente séparément.
Les cartes très graphiques posent-elles problème ?
Elles sont plus difficiles : texte sur fond photo, encres pâles ou polices fantaisie compliquent la lecture. Le résultat reste utile, mais mérite un coup d’œil de vérification sur les numéros et l’adresse.
Puis-je enregistrer directement le contact ?
La fiche est restituée en champs structurés, faciles à importer dans un carnet d’adresses ou un CRM. L’enregistrement final se fait dans votre outil, à partir de données déjà bien séparées.
Combien coûte le scan d’une carte ?
$0.010 par requête et $0.0575 par carte, en dollars US, sans abonnement. Pour un lot issu d’un salon, l’API enchaîne les envois ; règlement par PayPal, facture sur demande.
Les coordonnées scannées sont-elles conservées ?
Non. La photo est chiffrée pendant l’envoi, lue le temps d’en extraire le contact, puis supprimée. Rien n’est archivé sur nos serveurs et aucune personne ne consulte les cartes.
Pour les développeurs — accès API
Tout sur cette page est disponible par programmation. Cette section s'adresse aux équipes qui veulent l'intégrer à leurs systèmes ; les autres peuvent simplement utiliser l'outil ci-dessus.
Endpoint
Authentification par jeton Bearer : un seul POST met la tâche en file d’attente, et le résultat vous parvient par webhook ou lien signé.
Appeler depuis votre stack
curl -X POST https://api.kit.forhosting.com/ocr/business-card \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"image":"https://ejemplo.com/imagen.jpg"}'const res = await fetch("https://api.kit.forhosting.com/ocr/business-card", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"image": "https://ejemplo.com/imagen.jpg"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/ocr/business-card",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"image": "https://ejemplo.com/imagen.jpg"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/ocr/business-card", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"image":"https://ejemplo.com/imagen.jpg"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"image":"https://ejemplo.com/imagen.jpg"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/ocr/business-card", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Exemple de requête
{
"image": "https://ejemplo.com/imagen.jpg"
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "ocr.business_card",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L’API est asynchrone : chaque appel renvoie un task_id immédiatement, puis vous interrogez l’état à raison d’une requête par seconde.
Tarifs
Le prix est publié, sans tokens ni crédits. Une tâche qui échoue n’est pas facturée.
Limites
max_mb | 25 |
max_pages | 10 |
Erreurs
| HTTP | Code | Signification |
|---|---|---|
401 | unauthorized | Clé API absente ou invalide : vérifiez l’en-tête Authorization. |
402 | insufficient_balance | Solde insuffisant : rechargez votre compte pour lancer cette tâche. |
404 | unknown_type | Type de tâche inconnu : vérifiez le champ type de votre requête. |
429 | rate_limited | Trop de requêtes : ralentissez la cadence, puis réessayez. |
422 | task_failed | La tâche a échoué : elle ne vous est pas facturée. |