Launched June 12th, 2026. Screenshot quality is improving quickly, and feedback is welcome. Send feedback

Feature

Async renders with polling and signed callbacks.

Small sets render in one round trip. Large locale and store matrices run async, so CI does not have to hold a build step open while sets render. Track them by polling or connect a signed callback.

Create once, track by render ID

Add async: true to POST /v1/renders and the API answers immediately with 202, a render id (rnd_...), and a polling_url. Send an Idempotency-Key header such as release-42-en-us to make retries safe in CI, with Stripe semantics and no double billing.

GET /v1/renders/{id} returns processing, succeeded, or failed status plus the images, lint report, and credits_used when the render is ready. Polling is the live, supported path for async renders today.

# 1. Create an async render
curl -i https://api.appscreenshotapi.com/v1/renders \
  -H "Authorization: Bearer $ASA_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: release-42-en-us" \
  -d '{ "async": true, "canvas": { "preset": "appstore.iphone_6_9" }, "slides": [ { "headline": { "lines": ["Track every habit"] }, "screenshot": { "url": "https://acme.app/shots/home.png" } } ] }'
# -> 202 { "id": "rnd_...", "status": "processing", "polling_url": "/v1/renders/rnd_..." }

# 2. Poll until succeeded
curl https://api.appscreenshotapi.com/v1/renders/rnd_... \
  -H "Authorization: Bearer $ASA_KEY"

Signed events for automation

Supplying webhook_url pushes the finished render object to your callback for downstream steps such as opening a pull request, posting a preview link, or triggering a human review gate.

Deliveries are signed with X-ASA-Signature so release tooling can verify the event before acting on it. Polling GET /v1/renders/{id} remains available for build runners that need inline status.

API details

Create POST /v1/renders with async: true (live)

Poll GET /v1/renders/{id} (live)

Events webhook_url callback with signed payloads (X-ASA-Signature)

Use it in a release pipeline

Render the set from CI with POST /v1/renders, check the compliance lint report, then download the finished images for review before App Store Connect or Google Play upload.

Start with the API docs or request an API key.