Flitto Image Translation API Documentation
  • Flitto's Image Translation API combines automated image processing (OCR, inpainting, etc.) with manual HITL(human-in-the-loop) translation review and post-editing. This hybrid approach ensures higher translation quality and better visual completeness.
  • Unlike synchronous APIs that return results immediately, this service issues a unique job ID for each translation request. Once processing is complete, the result files will be uploaded to the user's custom S3 bucket and a success message published to the user's custom SQS
  • box_data : Contains 1. The inpainted image file (with original text removed) | 2. Metadata required to render text boxes (coordinates, translated text, CSS attributes, or CanvasRenderingContext2D properties)

    • Useful when rendering interactive text boxes over a background image in a web application.
  • file_data : A fully rendered image file that combines the inpainted background with translated text boxes

    • When displaying translated images directly on the web without additional rendering logic (e.g., thumbnails)

    • When offering downloads of the translated output as image or PDF files

  • PROCESSING (status = P) : The request has been accepted (job ID issued) and is currently undergoing image processing, human translation review, and post-editing.

    • Modification of an active job is not allowed (e.g., changing target language or source image).

    • To make changes, the job must be canceled and re-submitted with updated parameters, resulting in a new job ID

  • ABORTED (status = A) : The user canceled the job before completion.

    • Used when translation is no longer required or request details were incorrect.
  • REJECTED (status = R) : The job was stopped by Flitto's HITL administrators because it violates Flitto's content policy or cannot be processed.

    • A failed event message with reasons for the rejection will be published to your SQS.

    • Typical reasons include:

      • Low-quality images (blur, glare, darkness) making text unreadable

      • Excessive text distortion preventing proper box mapping

      • Incorrect source language selected

      • other reasons

  • COMPLETED (status = C) : Processing, review, and post-editing are finished and the result files / success message are delivered to the user's S3 / SQS

  • Each request must specify one image file. Multiple files require separate requests (each with its own job ID). Results are delivered in the order they complete, not the order they were submitted.
  • A single request may include multiple target languages. The results for 1 request are bundled together and delivered in a single process. (Recommended over sending multiple separate requests per target language, which would trigger multiple SQS events)
  • Only one source language can be specified per request. For multilingual images, specify the primary source language.
  • The image_url must be externally accessible via GET or HEAD requests at the time of submission. (Public accessibility is only required at submission time. Once a job ID is issued, the image does not need to remain publicly accessible.)
  • The S3 bucket configured at launch must be kept accessible by the vendor at the time of job completion. Access related validations are only carried out at product and not at every translation request.
  • Original images are not included in the webhook response. Users must retain their original files.
  • If delivery fails due to user-side issues (Deleted bucket, cross-account permission policy, or an explicit deny SCP), the job is still marked as Completed (C) and your account will be metered for the usage.