Static Ads Lab
Reference

Roadmap

What's coming — webhooks, official SDKs, and other items on the public-API roadmap.

This page tracks features we're building for the public API surface. If a use case below blocks you, contact us and we can prioritize.

Webhooks

Status: not yet generally available.

Today, every async endpoint surfaces completion via polling or SSE.

We're designing the v1 webhook surface around the following events:

  • image_ad.completed
  • image_ad.failed
  • design_template.completed
  • design_template.failed

A signed-secret HMAC verification scheme will ship alongside the subscription endpoints.

Until webhooks ship

  • PollingGET /v1/image-ads/:id every 4 seconds, or batch poll GET /v1/image-ads?ids=ia_a,ia_b,….
  • Server-Sent EventsGET /v1/image-ads/:id with Accept: text/event-stream.

Official SDKs

Status: none today. The API is designed to be called directly with fetch — no SDK is required for any feature.

const SAL_BASE = "https://api.staticadslab.com";
const SAL_HEADERS = {
  "X-API-Key": process.env.SAL_API_KEY,
  "Content-Type": "application/json",
};

async function generateImageAd(input) {
  const r = await fetch(`${SAL_BASE}/v1/image-ads`, {
    method: "POST",
    headers: SAL_HEADERS,
    body: JSON.stringify(input),
  });
  if (!r.ok) throw new Error(`HTTP ${r.status}: ${await r.text()}`);
  return r.json();
}

We're tracking official SDKs for:

  • TypeScript / JavaScript (Node + browsers via a backend proxy)
  • Python

Generate a typed client today

The OpenAPI 3.1 spec lives at:

https://api.staticadslab.com/openapi.json

You can generate a typed client now using any OpenAPI generator:

npx openapi-typescript https://api.staticadslab.com/openapi.json -o ./src/sal-types.ts

This gives you full request/response typing without waiting on a versioned SDK.

Client-supplied batch_id on POST /v1/image-ads

Today the platform sets batch_id for certain workflows. Client-side provisioning of batch_id at creation time is on the roadmap so callers can group their own batches and later read them via GET /v1/image-ads?batch_id=….

Programmatic wallet top-up

Wallet balance is currently topped up only via the dashboard (Settings → Billing). A programmatic top-up endpoint is planned so jobs can self-heal on 402 INSUFFICIENT_BALANCE.