Skip to documentation
AppLaunchFlow/ Docs

API reference / Screenshots

Translate screenshots

POST/api/v1/screenshots/translate

Authorization

Send your API key or MCP OAuth token in the Authorization: Bearer header. Active or trialing Unlimited is required.

Required permission designs:write

Every mutation requires JSON and an Idempotency-Key. Reuse the same key and exact input when retrying.

Parameters

Idempotency-Keyheaderrequired

string

Persist this key for retries. Reusing it with changed input returns 409. Receipts are retained for at least 24 hours.

min length: 8 · max length: 128

Request body

application/json

generationIdbodyrequired

string · uuid

variantIdbodyoptional

string · uuid

targetLanguagesbodyrequired

"en" | "en-GB" | "en-AU" | "en-CA" | "es" | "es-MX" | "fr" | "fr-CA" | "de" | "it" | "pt" | "pt-BR" | "ja" | "ko" | "zh-CN" | "zh-TW" | "nl" | "ru" | "ar" | "tr" | "pl" | "sv" | "no" | "da" | "fi" | "cs" | "hi" | "hu" | "ro" | "uk" | "el" | "he" | "id" | "ms" | "th" | "vi" | "hr" | "sk" | "ca"[]

min items: 1 · max items: 38

layoutsbodyrequired

"mobile" | "tablet" | "desktop"[]

min items: 1

View complete request schema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "generationId": {
      "type": "string",
      "format": "uuid",
      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
    },
    "variantId": {
      "type": "string",
      "format": "uuid",
      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
    },
    "targetLanguages": {
      "minItems": 1,
      "maxItems": 38,
      "type": "array",
      "items": {
        "type": "string",
        "enum": [
          "en",
          "en-GB",
          "en-AU",
          "en-CA",
          "es",
          "es-MX",
          "fr",
          "fr-CA",
          "de",
          "it",
          "pt",
          "pt-BR",
          "ja",
          "ko",
          "zh-CN",
          "zh-TW",
          "nl",
          "ru",
          "ar",
          "tr",
          "pl",
          "sv",
          "no",
          "da",
          "fi",
          "cs",
          "hi",
          "hu",
          "ro",
          "uk",
          "el",
          "he",
          "id",
          "ms",
          "th",
          "vi",
          "hr",
          "sk",
          "ca"
        ]
      }
    },
    "layouts": {
      "minItems": 1,
      "type": "array",
      "items": {
        "type": "string",
        "enum": [
          "mobile",
          "tablet",
          "desktop"
        ]
      }
    }
  },
  "required": [
    "generationId",
    "targetLanguages",
    "layouts"
  ]
}

Request example

Set ALF_API_URL to https://dashboard.applaunchflow.com/api/v1 and ALF_API_KEY to your key. Replace sample IDs with your project’s values. Use a new ALF_REQUEST_ID for each new operation.

cURL
curl --request POST \
  --url "$ALF_API_URL/screenshots/translate" \
  --header "Authorization: Bearer $ALF_API_KEY" \
  --header "Content-Type: application/json" \
  --header "Idempotency-Key: $ALF_REQUEST_ID" \
  --data '{
  "generationId": "11111111-1111-4111-8111-111111111111",
  "targetLanguages": [
    "en"
  ],
  "layouts": [
    "mobile"
  ]
}'

This example shows the request structure. Some editor operations require additional query parameters that are not yet described in OpenAPI.

Response

Successful JSON responses wrap the result in data, with a request ID in meta.requestId.

resultsdatarequired

object[]

translatedLayoutsdatarequired

"mobile" | "tablet" | "desktop"[]

View response schema
{
  "type": "object",
  "required": [
    "data",
    "meta"
  ],
  "properties": {
    "data": {
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "type": "object",
      "properties": {
        "results": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "language": {
                "type": "string"
              },
              "translationId": {
                "anyOf": [
                  {
                    "type": "string",
                    "format": "uuid",
                    "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "success": {
                "type": "boolean"
              },
              "updatedExisting": {
                "type": "boolean"
              },
              "error": {
                "type": "string"
              }
            },
            "required": [
              "language",
              "translationId",
              "success"
            ]
          }
        },
        "translatedLayouts": {
          "type": "array",
          "items": {
            "type": "string",
            "enum": [
              "mobile",
              "tablet",
              "desktop"
            ]
          }
        }
      },
      "required": [
        "results",
        "translatedLayouts"
      ]
    },
    "meta": {
      "type": "object",
      "required": [
        "requestId"
      ],
      "properties": {
        "requestId": {
          "type": "string",
          "format": "uuid"
        }
      }
    }
  }
}

Errors & retries

Errors use application/problem+json. Check the stable code and keep requestId when contacting support. Respect Retry-After on 429 responses.

See error handling and idempotency →