API reference / Screenshots
screenshots bulk-apply post
/api/v1/screenshots/bulk-applyParameters
Idempotency-Keyheaderrequiredstring
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
projectIdbodyrequiredstring · uuid
screenshotPathsbodyoptionalstring[]
min items: 1 · max items: 50
screenshotPathsByLanguagebodyoptionalobject
localeFoldersbodyoptionalobject
targetsbodyrequiredobject[]
min items: 1 · max items: 50
deviceTypebodyrequired"mobile" | "tablet" | "desktop"
platformbodyoptional"ios" | "android" | "both"
default: "both"
previewbodyoptionalboolean
default: false
frameAssignmentsbodyoptionalobject[]
max items: 2500
removeOldbodyoptionalboolean
default: false
View complete request schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"projectId": {
"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)$"
},
"screenshotPaths": {
"minItems": 1,
"maxItems": 50,
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 1024
}
},
"screenshotPathsByLanguage": {
"type": "object",
"propertyNames": {
"type": "string",
"pattern": "^[a-z]{2,3}(-[A-Za-z0-9]{2,8})*$"
},
"additionalProperties": {
"maxItems": 500,
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 1024
}
}
},
"localeFolders": {
"type": "object",
"propertyNames": {
"type": "string",
"pattern": "^[a-z]{2,3}(-[A-Za-z0-9]{2,8})*$"
},
"additionalProperties": {
"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)$"
}
},
"targets": {
"minItems": 1,
"maxItems": 50,
"type": "array",
"items": {
"type": "object",
"properties": {
"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)$"
},
"languages": {
"maxItems": 51,
"type": "array",
"items": {
"type": "string",
"minLength": 2,
"maxLength": 16
}
}
},
"required": [
"variantId"
],
"additionalProperties": false
}
},
"deviceType": {
"type": "string",
"enum": [
"mobile",
"tablet",
"desktop"
]
},
"platform": {
"default": "both",
"type": "string",
"enum": [
"ios",
"android",
"both"
]
},
"preview": {
"default": false,
"type": "boolean"
},
"frameAssignments": {
"maxItems": 2500,
"type": "array",
"items": {
"type": "object",
"properties": {
"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)$"
},
"language": {
"type": "string",
"minLength": 2,
"maxLength": 16
},
"layoutHash": {
"type": "string",
"pattern": "^[a-f0-9]{64}$"
},
"frames": {
"type": "object",
"propertyNames": {
"type": "string",
"minLength": 1,
"maxLength": 160
},
"additionalProperties": {
"anyOf": [
{
"type": "string",
"minLength": 1,
"maxLength": 1024
},
{
"type": "null"
}
]
}
}
},
"required": [
"variantId",
"language",
"layoutHash",
"frames"
],
"additionalProperties": false
}
},
"removeOld": {
"default": false,
"type": "boolean"
}
},
"required": [
"projectId",
"targets",
"deviceType"
],
"additionalProperties": false
}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 --request POST \
--url "$ALF_API_URL/screenshots/bulk-apply" \
--header "Authorization: Bearer $ALF_API_KEY" \
--header "Content-Type: application/json" \
--header "Idempotency-Key: $ALF_REQUEST_ID" \
--data '{
"projectId": "11111111-1111-4111-8111-111111111111",
"targets": [
{
"variantId": "11111111-1111-4111-8111-111111111111"
}
],
"deviceType": "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.
previewsdataoptionalobject[]
successdataoptionalboolean
translationsUpdateddataoptionalinteger
minimum: -9007199254740991 · maximum: 9007199254740991
screenshotsDeleteddataoptionalinteger
minimum: -9007199254740991 · maximum: 9007199254740991
resultsdataoptionalobject[]
View response schema
{
"type": "object",
"required": [
"data",
"meta"
],
"properties": {
"data": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"previews": {
"type": "array",
"items": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
}
},
"success": {
"type": "boolean"
},
"translationsUpdated": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"screenshotsDeleted": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"results": {
"type": "array",
"items": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
}
}
},
"additionalProperties": {}
},
"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.