SciFig

Référence API

Erreurs

Structure des erreurs, tous les codes et indications pour réessayer.

Afficher en Markdown

Structure#

{
  "error": {
    "code": "INSUFFICIENT_CREDITS",
    "message": "Not enough credits.",
    "request_id": "a698a9af-0685-4557-9b29-ca57637748f9",
    "details": { "top_up_url": "https://scifig.ai/pricing?utm_source=api" }
  }
}

Choisissez le traitement selon error.code et details.reason, jamais selon message, qui peut changer. Les réponses ne contiennent jamais de diagnostics internes.

Codes#

CodeHTTPSignificationRéessayer
UNAUTHORIZED401Identifiants manquants ou invalides.Non ; modifiez la requête ou utilisez une nouvelle clé
ACCOUNT_UNAVAILABLE401Ce compte ne peut pas utiliser l’API.Non ; modifiez la requête ou utilisez une nouvelle clé
SCOPE_DENIED403Les identifiants ne donnent pas cette autorisation.Non ; modifiez la requête ou utilisez une nouvelle clé
INVALID_REQUEST400La requête est invalide.Non ; modifiez la requête ou utilisez une nouvelle clé
IDEMPOTENCY_KEY_REQUIRED400Un en-tête Idempotency-Key contenant 1 à 255 caractères ASCII visibles est obligatoire.Non ; modifiez la requête ou utilisez une nouvelle clé
IDEMPOTENCY_CONFLICT409Cet Idempotency-Key a déjà été utilisé pour une autre requête.Non ; modifiez la requête ou utilisez une nouvelle clé
IDEMPOTENCY_IN_PROGRESS409Une requête avec cet Idempotency-Key est toujours en cours de traitement.Oui, avec le même Idempotency-Key
NOT_FOUND404Introuvable.Non ; modifiez la requête ou utilisez une nouvelle clé
REVISION_CONFLICT409La tâche de graphique ou de diagramme de flux ne peut pas être modifiée actuellement : NOT_LATEST_REVISION, EDIT_IN_PROGRESS, ou PARENT_JOB_RUNNING tant que la tâche parente est en cours.Uniquement pour PARENT_JOB_RUNNING : après Retry-After, avec la même clé. Sinon, modifier la version la plus récente avec une nouvelle clé
PAYLOAD_TOO_LARGE413Le corps de la requête est trop volumineux.Non ; modifiez la requête ou utilisez une nouvelle clé
INSUFFICIENT_CREDITS402Crédits insuffisants.Non ; modifiez la requête ou utilisez une nouvelle clé
CONTENT_REJECTED422La politique de contenu a refusé la requête. Le refus est renvoyé avec 422 lors de la création de la requête, ou dans error.code d’une tâche échouée s’il survient pendant son exécution ; les crédits sont remboursés dans les deux cas.Non ; modifier la description ou l’entrée et utiliser une nouvelle clé
PLAN_REQUIRED403Votre offre n’inclut pas cette option.Non ; modifiez la requête ou utilisez une nouvelle clé
RATE_LIMITED429Trop de requêtes, de tâches par heure, de conversions par jour ou d’importations ; details.reason précise la cause.Oui, avec le même Idempotency-Key
CONCURRENCY_LIMITED429Trop de tâches sont en cours pour ce compte.Oui, avec le même Idempotency-Key
SERVICE_UNAVAILABLE503Le service est temporairement indisponible. Réessayez avec le même Idempotency-Key.Oui, avec le même Idempotency-Key
TASK_FAILED502La tâche a échoué et ses crédits ont été remboursés. Envoyez une nouvelle requête avec un nouvel Idempotency-Key pour réessayer.Non ; modifiez la requête ou utilisez une nouvelle clé
INTERNAL_ERROR500Erreur interne.Oui, avec le même Idempotency-Key

INVALID_REQUEST peut inclure details.reason, details.field ou details.issues lorsque ces informations sont disponibles. Un corps dépassant la limite de 256 KB pour JSON ou les limites de fichiers pour les importations renvoie 413 PAYLOAD_TOO_LARGE. Seul INSUFFICIENT_CREDITS contient details.top_up_url. Lorsqu’une requête de création échoue après la création de sa tâche (429, 503, 409 IDEMPOTENCY_IN_PROGRESS ou 500 INTERNAL_ERROR), details.job_id identifie cette tâche : réessayez avec le même Idempotency-Key ou interrogez GET /jobs/{job_id}, jamais avec une nouvelle clé.

Codes dans une tâche échouée#

Une tâche créée puis échouée indique status: "failed" et un objet error. Outre les codes ci-dessus pour les requêtes refusées, son error.code peut être :

error.codeSignificationMarche à suivre
TASK_TIMED_OUTLa tâche a dépassé le délai et les crédits ont été remboursés. Une génération ou une modification d’illustration peut contenir late_delivery_until : le résultat peut encore arriver gratuitement jusqu’à cette échéance.Continuez à consulter la tâche jusqu’à late_delivery_until ; sinon, envoyez une nouvelle requête avec une nouvelle clé
CONTENT_REJECTEDLa politique de contenu a refusé le résultat pendant l’exécution ; les crédits ont été remboursés. Le même code est renvoyé avec 422 lorsque la requête elle-même est refusée à la création.Modifiez la description ou l’entrée et utilisez une nouvelle clé
ADMISSION_INCOMPLETELa tâche n’a jamais démarré, car une erreur permettant une nouvelle tentative l’a empêchée. Aucun crédit n’a été utilisé.Envoyez la même requête avec le même Idempotency-Key
TASK_NOT_FOUNDLa tâche a été admise, mais son exécution est désormais introuvable.Envoyez une nouvelle requête avec une nouvelle clé
TASK_FAILEDLa tâche a échoué et les crédits ont été remboursés. Tout échec de moteur sans code public propre devient TASK_FAILED ; le code du moteur se trouve dans details.reason.Envoyez une nouvelle requête avec une nouvelle clé
INTERNAL_ERRORLa tâche a échoué sans indiquer de raison ; les crédits ont été remboursés.Envoyez une nouvelle requête avec une nouvelle clé

Causes d’une réponse 429#

  • Trop de requêtes : 20 requêtes de création par minute et par identifiant, 40 par compte, 120 lectures par minute et par identifiant. Retry-After indique le délai avant la réinitialisation de la fenêtre ; details.reason est absent.
  • Trop de tâches ont démarré au cours de la dernière heure : jusqu’à 200 par compte, quota partagé avec le site. Retry-After: 30.
  • Trop de tâches sont en cours : 429 CONCURRENCY_LIMITED, selon l’offre et quota partagé avec le site ; voir GET /credits. Retry-After: 30.
  • Le quota quotidien de 200 conversions gratuites PNG, PDF, TIFF et PPTX est épuisé : details.reason = DAILY_CONVERSION_LIMIT, avec Retry-After jusqu’à la réinitialisation de la fenêtre quotidienne.
  • Les importations sont trop rapides : details.reason = UPLOAD_RATE_LIMITED pour les images et masques sur POST /files, les pièces jointes de diagrammes de flux et les données de graphiques. La limite d’importation par minute du site s’applique.
  • Trop d’importations dans la journée : details.reason = UPLOAD_DAILY_LIMIT_REACHED pour les pièces jointes de diagrammes de flux et les données de graphiques. La limite quotidienne d’importation du site s’applique.
  • Détections de texte : 20 par période de 15 minutes et par compte, quota partagé avec le site.