Skip to documentation
AppLaunchFlow/ Docs

API reference / Renders & exports

graphics export post

POST/api/v1/graphics/export

Authorization

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

Required permission exports: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

formatsbodyrequired

"og" | "x_post" | "instagram_story" | "instagram_post" | "x_header" | "linkedin_banner" | "play_store_feature" | "app_store_event_card" | "app_store_event_details" | "app_store_header" | "app_store_search" | "ad_banner" | "ad_mobile_banner" | "ad_tablet_banner_720" | "ad_tablet_banner_728" | "ad_mrec" | "ad_phone_portrait" | "ad_phone_landscape" | "ad_fullscreen_landscape" | "ad_tablet_portrait" | "ad_tablet_landscape"[]

Formats to render. Formats the variant never saved are derived from its primary format, as the editor does.

min items: 1 · max items: 21

languagesbodyoptional

"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" | "fil" | "hr" | "sk" | "ca" | "bn" | "gu" | "kn" | "ml" | "mr" | "or" | "pa" | "sl" | "ta" | "te" | "ur"[]

Saved graphics languages. Default: the source language.

min items: 1 · max items: 10

platformbodyoptional

"ios" | "android"

Store platform for device frames and store badges. Default: the project's platform.

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)$"
    },
    "formats": {
      "minItems": 1,
      "maxItems": 21,
      "type": "array",
      "items": {
        "type": "string",
        "enum": [
          "og",
          "x_post",
          "instagram_story",
          "instagram_post",
          "x_header",
          "linkedin_banner",
          "play_store_feature",
          "app_store_event_card",
          "app_store_event_details",
          "app_store_header",
          "app_store_search",
          "ad_banner",
          "ad_mobile_banner",
          "ad_tablet_banner_720",
          "ad_tablet_banner_728",
          "ad_mrec",
          "ad_phone_portrait",
          "ad_phone_landscape",
          "ad_fullscreen_landscape",
          "ad_tablet_portrait",
          "ad_tablet_landscape"
        ]
      },
      "description": "Formats to render. Formats the variant never saved are derived from its primary format, as the editor does."
    },
    "languages": {
      "description": "Saved graphics languages. Default: the source language.",
      "minItems": 1,
      "maxItems": 10,
      "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",
          "fil",
          "hr",
          "sk",
          "ca",
          "bn",
          "gu",
          "kn",
          "ml",
          "mr",
          "or",
          "pa",
          "sl",
          "ta",
          "te",
          "ur"
        ]
      }
    },
    "platform": {
      "description": "Store platform for device frames and store badges. Default: the project's platform.",
      "type": "string",
      "enum": [
        "ios",
        "android"
      ]
    }
  },
  "required": [
    "generationId",
    "formats"
  ],
  "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
curl --request POST \
  --url "$ALF_API_URL/graphics/export" \
  --header "Authorization: Bearer $ALF_API_KEY" \
  --header "Content-Type: application/json" \
  --header "Idempotency-Key: $ALF_REQUEST_ID" \
  --data '{
  "generationId": "11111111-1111-4111-8111-111111111111",
  "formats": [
    "og"
  ]
}'

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.

renderIddatarequired

string · uuid

modedatarequired

"preview" | "export"

variantIddatarequired

string · uuid

platformdatarequired

"ios" | "android"

languagesdatarequired

string[]

graphicsdatarequired

object[]

zipdataoptional

object

expiresAtdatarequired

string

View response schema
{
  "type": "object",
  "required": [
    "data",
    "meta"
  ],
  "properties": {
    "data": {
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "type": "object",
      "properties": {
        "renderId": {
          "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)$"
        },
        "mode": {
          "type": "string",
          "enum": [
            "preview",
            "export"
          ]
        },
        "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)$"
        },
        "platform": {
          "type": "string",
          "enum": [
            "ios",
            "android"
          ]
        },
        "languages": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "graphics": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "format": {
                "type": "string"
              },
              "language": {
                "type": "string"
              },
              "width": {
                "type": "integer",
                "minimum": -9007199254740991,
                "maximum": 9007199254740991
              },
              "height": {
                "type": "integer",
                "minimum": -9007199254740991,
                "maximum": 9007199254740991
              },
              "derived": {
                "type": "boolean"
              },
              "preview": {
                "type": "object",
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "width": {
                    "type": "integer",
                    "minimum": -9007199254740991,
                    "maximum": 9007199254740991
                  },
                  "height": {
                    "type": "integer",
                    "minimum": -9007199254740991,
                    "maximum": 9007199254740991
                  }
                },
                "required": [
                  "url",
                  "width",
                  "height"
                ]
              },
              "file": {
                "type": "object",
                "properties": {
                  "path": {
                    "type": "string"
                  },
                  "contentType": {
                    "type": "string"
                  },
                  "sizeInBytes": {
                    "type": "integer",
                    "minimum": -9007199254740991,
                    "maximum": 9007199254740991
                  },
                  "url": {
                    "type": "string"
                  }
                },
                "required": [
                  "path",
                  "contentType",
                  "sizeInBytes",
                  "url"
                ]
              }
            },
            "required": [
              "format",
              "language",
              "width",
              "height",
              "derived",
              "preview"
            ],
            "additionalProperties": {}
          }
        },
        "zip": {
          "type": "object",
          "properties": {
            "fileName": {
              "type": "string"
            },
            "sizeInBytes": {
              "type": "integer",
              "minimum": -9007199254740991,
              "maximum": 9007199254740991
            },
            "url": {
              "type": "string"
            }
          },
          "required": [
            "fileName",
            "sizeInBytes",
            "url"
          ]
        },
        "expiresAt": {
          "type": "string"
        }
      },
      "required": [
        "renderId",
        "mode",
        "variantId",
        "platform",
        "languages",
        "graphics",
        "expiresAt"
      ]
    },
    "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 →