API Reference

Integrate ImgText into your pipeline using the REST API.

Authentication

All API requests require an API key. Create one in Settings → API Keys. Pass it in the Authorization header:

Authorization: Bearer YOUR_API_KEY

Base URL

https://api.imgtext.io

All endpoints are versioned under /api/v1.

Endpoints

POST
/api/v1/translate-image
Translate text in a single image. Returns the translated image, a text-removed image, and a region-by-region breakdown.

Request (multipart/form-data)

imageFilerequiredImage file (JPEG, PNG, WebP). Max 10 MB.
target_langstringrequiredTarget language code (e.g., "en", "de").
source_langstringoptionalSource language code. Omit for auto-detect.
exclude_textstringoptionalComma-separated patterns to skip (e.g., "BRAND,@handle").

Example (curl)

curl -X POST https://api.imgtext.io/api/v1/translate-image \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -F "image=@photo.jpg" \
  -F "target_lang=en" \
  -F "source_lang=de"

Response (200)

{
  "original_image_url": "https://...",
  "translated_image_url": "https://...",
  "clean_image_url": "https://...",
  "regions": [
    {
      "id": "region_1",
      "original_text": "Willkommen",
      "translated_text": "Welcome",
      "confidence": 0.97,
      "bounding_box": { "x": 10, "y": 20, "width": 80, "height": 30 }
    }
  ]
}
POST
/api/v1/batch/translate
Create a batch translation job for up to 20 images and 10 target languages. The job runs asynchronously — poll the status endpoint or use a webhook.

Request (multipart/form-data)

images[]File[]requiredUp to 20 image files.
target_languages[]string[]requiredOne or more language codes.
source_langstringoptionalSource language. Omit for auto-detect.
exclude_textstringoptionalComma-separated patterns to skip.
webhook_urlstringoptionalURL to POST when the batch completes.

Response (201)

{
  "batch_id": "batch_abc123",
  "status": "pending",
  "total_images": 3,
  "target_languages": ["en", "de"],
  "created_at": "2026-02-22T10:00:00Z"
}
GET
/api/v1/batch/{batch_id}
Get the current status and results of a batch job.

Example (curl)

curl https://api.imgtext.io/api/v1/batch/batch_abc123 \
  -H "Authorization: Bearer YOUR_API_KEY"

Response (200)

{
  "batch_id": "batch_abc123",
  "status": "completed",
  "total_images": 3,
  "completed_count": 3,
  "failed_count": 0,
  "images": [
    {
      "image_id": "img_1",
      "original_filename": "photo.jpg",
      "status": "completed",
      "outputs": {
        "en": {
          "translated_image_url": "https://...",
          "original_image_url": "https://...",
          "clean_image_url": "https://..."
        }
      }
    }
  ]
}

Batch status values

pendingprocessingcompletedpartially_completedfailedcancelled
POST
/api/v1/batch/{batch_id}/cancel
Cancel a running batch job.
curl -X POST https://api.imgtext.io/api/v1/batch/batch_abc123/cancel \
  -H "Authorization: Bearer YOUR_API_KEY"
GET
/api/v1/batch
List all batch jobs for your account.

Query parameters

pageintoptionalPage number (default: 1).
limitintoptionalResults per page (default: 20, max: 100).

Supported Languages

Englishen
Germande
Frenchfr
Spanishes
Italianit
Portuguesept
Dutchnl
Swedishsv
Danishda
Norwegianno
Finnishfi

Limits

Max file size10 MB
Max images per batch20
Max languages per batch3 (free) / 12 (pro)
Max concurrent batches3

Get started

Create an API key to begin

Go to Settings to generate your first API key.