ReWords.AI API

Questions fréquentes

Réponses aux questions courantes sur l’API ReWords.AI — ce que l’OCR sait lire, polices et textes plus longs, supprimer du texte, A ou B, nouvelles tentatives, facturation, usage côté front-end, SDK et comment obtenir de l’aide.

OCR

Quel texte l’OCR sait-il lire ?

Le texte imprimé en chinois, anglais, japonais, coréen et dans la plupart des langues européennes. Réglez language sur la langue principale du texte : en, zh, ja, ko, fr, de, es, pt, it ou ru. La région est ignorée : pt-BR compte comme pt et zh-TW comme zh. La langue n’est pas détectée automatiquement : sans language, ou avec toute autre valeur, l’OCR lit le chinois et l’anglais (le japonais aussi, en général), et le texte coréen, cyrillique ou européen accentué est mal lu. Envoyez language dès que vous connaissez la langue, japonais compris. L’écriture manuscrite, les lettrages très stylisés et le texte courbe ou vertical peuvent être manqués ou découpés en morceaux — pour ceux-là, envoyez votre propre box.

Qu’est-ce qu’un élément de texts ?

Une ligne de texte, ni un mot ni un paragraphe. Un titre sur deux lignes revient en deux éléments. Pour le modifier, envoyez un remplacement par ligne, ou un seul remplacement dont la box couvre les deux lignes et dont le to est tout le nouveau titre, avec \n là où la nouvelle ligne doit commencer.

Pourquoi le texte paraît-il un peu différent de l’image ?

Les caractères pleine chasse sont renvoyés en demi-chasse : 50%OFF devient 50%OFF, et une espace pleine chasse devient une espace normale. Certaines langues reviennent en minuscules (le français, l’allemand et le russe, par exemple), et les espaces entre les mots peuvent manquer : le coréen 여름 세일 peut revenir sous la forme 여름세일. Utilisez le texte renvoyé dans from ; la correspondance tient compte des deux (voir plus bas).

L’OCR a manqué mon texte ou l’a mal lu. Que faire ?

Envoyez une box que vous mesurez vous-même (voir Images). Quand un remplacement a une box, le texte dans la boîte est remplacé et from n’est qu’un indice — il n’a pas besoin de correspondre exactement.

Dois-je appeler l’OCR ?

Non. Envoyez from et to sans box et POST /edits trouve le texte pour vous, gratuitement. Cet appel lit alors d’abord le texte, ce qui prend en général 5 à 20 secondes (autant que POST /ocr) : prévoyez au moins 90 secondes pour la requête HTTP. L’OCR n’occupe aucune de vos 10 places de tâche. N’appelez POST /ocr d’abord que pour montrer le texte à l’utilisateur, le laisser choisir ou vérifier les boîtes avant de payer une modification.

Et si from n’est qu’une partie d’une ligne ?

Seule cette partie change. from: "OFF", to: "ON" sur la ligne 50% OFF donne 50% ON. Dans la réponse, replacements montre la ligne entière : from: "50% OFF", to: "50% ON". Ces valeurs viennent de la lecture OCR de la ligne : elles peuvent être en minuscules ou sans espaces (voir plus haut). Le nouveau texte est dessiné dans le style de la ligne d’origine : vérifiez la casse et les espaces sur l’image, pas dans ce texte.

La correspondance ignore la casse et les espaces autour. Si certaines lignes sont exactement égales à from, seules ces lignes changent et celles qui le contiennent seulement restent intactes. Sinon, chaque ligne qui le contient change, à chaque occurrence dans la ligne : from: "e" transforme Summer Collection en Summ3r Coll3ction si to vaut 3. match: "first" limite la modification à une ligne, pas à une occurrence — envoyez une box et toute la nouvelle ligne quand vous avez besoin d’un contrôle exact. Si rien ne correspond, un dernier essai ignore toutes les espaces : 여름 세일 trouve donc quand même la ligne 여름세일.

L’OCR est-il facturé quand l’image n’a pas de texte ?

Oui. L’appel renvoie "texts": [] et compte comme un appel OCR. La même image dans les 24 heures n’est pas facturée à nouveau.

Et l’arabe, l’hébreu, le thaï ou l’hindi ?

Pas pris en charge. L’OCR peut tout de même renvoyer des lignes dans ces écritures, mais la lecture et le résultat modifié ne sont pas garantis. Une tâche qui échoue sur ces écritures n’est pas facturée.

Puis-je envoyer un PDF ou plusieurs pages à la fois ?

Non. Chaque requête accepte une image JPEG, PNG ou WebP. Convertissez en image chaque page à modifier et envoyez une requête par page — elles peuvent tourner en même temps, jusqu’à vos 10 places de tâche.

Modification

Puis-je choisir la police, la couleur ou la taille ?

Non. Le nouveau texte reprend la police, la couleur, la taille et les effets du texte qu’il remplace. Il n’y a pas de paramètres de style.

Et si le nouveau texte est plus long ou plus court ?

Il est ajusté dans l’espace autour du texte d’origine sans couvrir le texte voisin. Un texte très long peut sortir plus petit. Restez proche de la longueur d’origine pour le résultat le plus naturel.

Puis-je supprimer du texte au lieu de le remplacer ?

Oui — pour supprimer du texte, mettez to à une chaîne vide. L’arrière-plan derrière lui est reconstitué.

Quelle longueur pour from et to ?

Jusqu’à 200 caractères Unicode chacun (un emoji compte pour un). \n dans to commence une nouvelle ligne. from ne peut être vide que si vous envoyez une box.

Combien de changements une modification peut-elle faire ?

Jusqu’à 20 remplacements par image, tous dans une tâche et facturés comme une modification. Quand les mêmes mots apparaissent plusieurs fois, match: "all" (par défaut) les change tous et match: "first" ne change que le premier, de haut en bas et de gauche à droite ; envoyez des boîtes pour choisir exactement. N’envoyez pas deux remplacements pour le même texte ni des boîtes qui se chevauchent — un seul sera appliqué, et lequel n’est pas défini.

Comment faire correspondre replacements de la réponse à ma requête ?

La réponse contient un élément par ligne modifiée, dans l’ordre de votre requête. Un remplacement sans box qui a trouvé trois lignes devient trois éléments, de haut en bas. Pour une correspondance un à un, envoyez une box pour chaque remplacement ou utilisez match: "first".

Peut-il modifier autre chose que du texte ?

Non. Seul le texte que vous indiquez est modifié. Les logos, visages et autres objets ne sont volontairement pas modifiés.

Combien de temps prend une tâche ?

En général 1 à 2 minutes : 9 tâches sur 10 se terminent en 3 minutes, presque toutes en 5. estimated_seconds dans la réponse est notre estimation de sa fin ; une tâche peut tourner jusqu’à 10 minutes après sa sortie de la file et, avec une file pleine de 30, la dernière peut prendre environ 30 minutes. Toute tâche est succeeded ou failed dans les 60 minutes suivant son envoi ; sinon, arrêtez d’interroger et écrivez à [email protected] avec son id. Voir File d’attente et limites.

Résultats

Dois-je utiliser A ou B ?

B garde chaque pixel hors du texte exactement comme dans votre envoi — le choix sûr pour les photos de produits, les documents et tout ce dont le reste de l’image ne doit pas changer. A redessine toute l’image, ce qui intègre souvent le nouveau texte plus naturellement, mais peut changer de petits détails ailleurs. Nous vous recommandons de montrer à votre utilisateur chaque résultat réussi — A et B, plus C (4K) s’il est là — et de le laisser choisir.

Qu’est-ce que C, et pourquoi a-t-il été omis ?

C est la modification IA générée en 4K, jusqu’à 3840 px sur le côté le plus long. Il est omis pour les images plus larges ou plus hautes que 3:1 (aspect_ratio_unsupported) et peut échouer seul. C ne change jamais ce qui vous est facturé.

Les résultats ont-ils un filigrane ? Combien de temps sont-ils conservés ?

Pas de filigrane. Les liens de résultat sont des fichiers JPEG publics sur img.rewords.ai, conservés au moins 7 jours — téléchargez ce dont vous avez besoin. Les liens d’une tâche ne changent pas entre les lectures. GET /edits/{id} fonctionne tant que les liens sont conservés. Les images envoyées derrière un image_id sont conservées 24 heures.

Puis-je modifier à nouveau un résultat ?

Oui. Passez l’url du résultat comme image_url dans une nouvelle modification — le résultat B est le meilleur point de départ. C’est une nouvelle tâche, facturée comme les autres. Faites-le quand vous changez le texte par étapes, ou quand le premier résultat a besoin d’une deuxième modification.

Puis-je annuler une tâche ?

Non, il n’y a pas d’appel d’annulation. Une tâche ne coûte une modification que lorsqu’elle atteint succeeded ; si vous n’en avez plus besoin, ignorez le résultat. Une tâche jamais envoyée ne coûte rien : vérifiez donc votre texte avec POST /ocr avant d’envoyer.

Une tâche a échoué. Comment réessayer ?

Les tâches échouées sont gratuites. Renvoyez avec une nouvelle Idempotency-Key : l’ancienne renvoie la même tâche échouée. ai_generation_failed et upstream_failed réussissent souvent à la nouvelle tentative ; content_blocked, non.

Facturation

Quand exactement suis-je facturé ?

Une modification par tâche, seulement quand A ou B réussit — même si l’autre a échoué. À l’envoi, une modification est réservée pour que les tâches déjà en file puissent toujours se terminer ; elle est libérée si la tâche échoue. balance et edits_remaining ont déjà les modifications réservées déduites. Voir Tarifs et facturation.

Existe-t-il une clé de test gratuite ou un bac à sable ?

Il n’y a pas de clés de test gratuites. Modifiez une image gratuitement sur rewords.ai pour juger de la qualité, puis commencez avec le pack Lite. Les tâches échouées et les requêtes rejetées ne sont jamais facturées.

Intégration

Puis-je appeler l’API depuis un navigateur ou une application mobile ?

Non. Appelez-la depuis votre serveur. La clé d’API serait visible dans le code front-end ou le paquet de l’application, et quiconque la trouverait pourrait dépenser votre solde. L’API n’envoie pas d’en-têtes CORS, donc les navigateurs bloquent les appels directs.

Interrogation ou webhooks ?

L’un ou l’autre. Les webhooks demandent un point de terminaison https public et économisent des requêtes ; l’interrogation ne demande rien. Si votre point de terminaison peut tomber, interrogez aussi toutes les quelques minutes, jusqu’à l’état final, toute tâche dont vous n’avez pas de nouvelles 15 minutes après l’envoi. Un webhook qui arrive plus tard est sans danger : vous ignorez l’id déjà traité. Voir Webhooks.

Gardez l’id de la réponse 202 à côté de votre enregistrement. Pour les webhooks, vous pouvez aussi ajouter votre propre référence à la chaîne de requête de callback_url, qui est conservée : https://example.com/hooks/rewords?order=1234.

Ma requête a dépassé le délai. Une tâche a-t-elle été créée ?

Peut-être. Réessayez avec la même Idempotency-Key : si elle a été créée, vous récupérez la tâche, et elle n’est pas facturée deux fois. Voir Erreurs.

L’API va-t-elle changer sans prévenir ?

La version est dans le chemin : /v1. Dans /v1, nous ne faisons qu’ajouter — nouveaux champs facultatifs, nouvelles valeurs dans reason ou error.code — : ignorez donc les champs que vous ne connaissez pas et traitez un code inconnu comme upstream_failed. Tout ce qui casserait un client va dans une nouvelle version, annoncée par e-mail avant le retrait de l’ancienne. Les questions vont à [email protected].

Existe-t-il un SDK ?

Pas encore. Téléchargez openapi.yaml et générez un client avec n’importe quel générateur OpenAPI 3.1, ou copiez les clients Node.js et Python complets des Exemples.

Ma clé d’API a fuité. Que faire ?

Révoquez-la sur la page des clés d’API — elle cesse de fonctionner en moins d’une minute — et créez-en une nouvelle. Toutes les clés partagent votre solde : faites-le en premier et vérifiez GET /account ensuite. Si le secret de webhook a fuité aussi, réinitialisez-le sur la même page. Voir Authentification.

Dans quel fuseau horaire sont created_at et completed_at ?

UTC, au format ISO 8601 avec le suffixe Z : 2026-11-04T10:00:00Z.

Obtenir de l’aide

Écrivez à [email protected], ou utilisez la page de contact pour WhatsApp et TikTok. L’e-mail est la voie la plus rapide pour les questions sur l’API.

Indiquez ce qui nous permet de retrouver la requête :

  • l’id de la tâche (edit_...) ou l’image_id, et l’heure de la requête en UTC ;
  • les 12 premiers caractères de la clé utilisée (rw_live_abcd...) — jamais la clé entière ;
  • le error.code et le message reçus, ou le résultat qui semble faux ;
  • l’image, si vous pouvez la partager, et les replacements envoyés.

Une question de facturation demande aussi l’adresse e-mail de votre compte rewords.ai, pour que nous retrouvions l’achat.

Sur cette page

OCRQuel texte l’OCR sait-il lire ?Qu’est-ce qu’un élément de texts ?Pourquoi le texte paraît-il un peu différent de l’image ?L’OCR a manqué mon texte ou l’a mal lu. Que faire ?Dois-je appeler l’OCR ?Et si from n’est qu’une partie d’une ligne ?L’OCR est-il facturé quand l’image n’a pas de texte ?Et l’arabe, l’hébreu, le thaï ou l’hindi ?Puis-je envoyer un PDF ou plusieurs pages à la fois ?ModificationPuis-je choisir la police, la couleur ou la taille ?Et si le nouveau texte est plus long ou plus court ?Puis-je supprimer du texte au lieu de le remplacer ?Quelle longueur pour from et to ?Combien de changements une modification peut-elle faire ?Comment faire correspondre replacements de la réponse à ma requête ?Peut-il modifier autre chose que du texte ?Combien de temps prend une tâche ?RésultatsDois-je utiliser A ou B ?Qu’est-ce que C, et pourquoi a-t-il été omis ?Les résultats ont-ils un filigrane ? Combien de temps sont-ils conservés ?Puis-je modifier à nouveau un résultat ?Puis-je annuler une tâche ?Une tâche a échoué. Comment réessayer ?FacturationQuand exactement suis-je facturé ?Existe-t-il une clé de test gratuite ou un bac à sable ?IntégrationPuis-je appeler l’API depuis un navigateur ou une application mobile ?Interrogation ou webhooks ?Comment relier une tâche à ma propre commande ou à mon utilisateur ?Ma requête a dépassé le délai. Une tâche a-t-elle été créée ?L’API va-t-elle changer sans prévenir ?Existe-t-il un SDK ?Ma clé d’API a fuité. Que faire ?Dans quel fuseau horaire sont created_at et completed_at ?Obtenir de l’aide