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.completedimage_ad.faileddesign_template.completeddesign_template.failed
A signed-secret HMAC verification scheme will ship alongside the subscription endpoints.
Until webhooks ship
- Polling —
GET /v1/image-ads/:idevery 4 seconds, or batch pollGET /v1/image-ads?ids=ia_a,ia_b,…. - Server-Sent Events —
GET /v1/image-ads/:idwithAccept: 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.jsonYou can generate a typed client now using any OpenAPI generator:
openapi-typescriptfor typedfetch-based clients@hey-api/openapi-tsfor client + types- Stainless, Fern, or other commercial generators
npx openapi-typescript https://api.staticadslab.com/openapi.json -o ./src/sal-types.tsThis 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.