Veil API
The proposed (not yet deployed) browser integration uses three steps: issue a bounded private upload, send it directly to S3, and request image processing.
Download the proposed OpenAPI 3.1 contract.
POST /v1/uploads accepts JSON with contentType and size, returning an opaque uploadId and signed S3 POST fields.
POST /v1/obfuscations accepts uploadId and optional cellCount. It returns a temporary signed result URL and expiration timestamp.
The existing POST /api/obfuscate multipart endpoint is served by DigitalOcean during migration. Compatibility and deprecation remain a separate cutover gate.
API contract status: staging candidate; not yet production-ready.