Browser API contract at launch
The web application creates an anonymous HTTP-only session, records first-party funnel events, submits explicitly consented AI jobs, and polls job status. Every priced write requires an idempotency key. Capability, output size, and map count are validated against server allowlists; amounts and credit cost supplied by a browser are never trusted.
Local map generation does not use the API. It continues to work when the analytics or model dependency is unavailable, and the interface makes any degraded external state visible.
AI job lifecycle
A valid request reserves credits and stores a submitting job before the Worker contacts FAL. Queue identifiers and status URLs remain server-side. Polling returns normalized states such as queued, processing, succeeded, or failed. Success settles the reservation; terminal failure or timeout releases it once.
Inputs are limited by MIME type, encoded size, prompt length, capability, megapixels, and map count. Raw provider errors and credentials are not returned to the client or written into event metadata.
Public access and support
A stable external API, service-level commitment, and customer-issued API keys are not offered at first launch. This page documents the trust boundary instead of promising an interface that may change. Teams evaluating automated texture pipelines can contact us with expected volume, model capability, output size, and retention requirements.
When developer access opens, versioning, rate limits, request signing, webhook replay protection, and data-processing terms will be published here before credentials are issued.