API reference / Renders & exports
Create a render
/api/v1/rendersRender saved screenshot variants as a validated Fastlane package
Parameters
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
variantIdbodyoptionalstring · uuid
formatsbodyrequired"ios.phone.6.9" | "ios.phone.6.5" | "ios.phone.6.3" | "ios.phone.6.1" | "ios.tablet.13" | "ios.tablet.12.9" | "ios.tablet.11" | "ios.tablet.10.5" | "android.phone" | "android.tablet7" | "android.tablet10"[]
min items: 1 · max items: 11
languagesbodyrequiredstring[]
min items: 1 · max items: 40
packagebodyoptional"fastlane"
default: "fastlane"
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)$"
},
"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)$"
},
"formats": {
"minItems": 1,
"maxItems": 11,
"type": "array",
"items": {
"type": "string",
"enum": [
"ios.phone.6.9",
"ios.phone.6.5",
"ios.phone.6.3",
"ios.phone.6.1",
"ios.tablet.13",
"ios.tablet.12.9",
"ios.tablet.11",
"ios.tablet.10.5",
"android.phone",
"android.tablet7",
"android.tablet10"
]
}
},
"languages": {
"minItems": 1,
"maxItems": 40,
"type": "array",
"items": {
"type": "string",
"maxLength": 35,
"pattern": "^[a-z]{2,3}(?:-[A-Za-z0-9]{2,8}){0,2}$"
}
},
"package": {
"default": "fastlane",
"type": "string",
"const": "fastlane"
}
},
"required": [
"projectId",
"formats",
"languages"
],
"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/renders" \
--header "Authorization: Bearer $ALF_API_KEY" \
--header "Content-Type: application/json" \
--header "Idempotency-Key: $ALF_REQUEST_ID" \
--data '{
"projectId": "11111111-1111-4111-8111-111111111111",
"formats": [
"ios.phone.6.9"
],
"languages": [
"en"
]
}'Response
Successful JSON responses wrap the result in data, with a request ID in meta.requestId.
202 Accepted returns a job ID. Follow Location and respect Retry-After when polling.
iddatarequiredstring · uuid
projectIddatarequiredstring · uuid
variantIddatarequiredstring · uuid
statusdatarequired"queued" | "dispatching" | "rendering" | "succeeded" | "failed" | "cancelled" | "indeterminate"
errorCodedatarequiredstring | null
createdAtdatarequiredstring · date-time
completedAtdatarequiredstring | null
statusUrldatarequiredstring
packagedataoptionalobject
View response schema
{
"type": "object",
"required": [
"data",
"meta"
],
"properties": {
"data": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"id": {
"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)$"
},
"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)$"
},
"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)$"
},
"status": {
"type": "string",
"enum": [
"queued",
"dispatching",
"rendering",
"succeeded",
"failed",
"cancelled",
"indeterminate"
]
},
"errorCode": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"createdAt": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
},
"completedAt": {
"anyOf": [
{
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
},
{
"type": "null"
}
]
},
"statusUrl": {
"type": "string"
},
"package": {
"type": "object",
"properties": {
"downloadUrl": {
"type": "string"
},
"manifestUrl": {
"type": "string"
},
"fileCount": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
}
},
"required": [
"downloadUrl",
"manifestUrl",
"fileCount"
]
}
},
"required": [
"id",
"projectId",
"variantId",
"status",
"errorCode",
"createdAt",
"completedAt",
"statusUrl"
]
},
"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.