API Reference
Every endpoint of the Abyssale REST API, with its parameters, request and response schemas, and the error ids it can return. Generated from the OpenAPI specification, so it never lags the API.
Every endpoint takes the same x-api-key header and shares one error envelope — see Authentication and Rate limits.
Need the machine-readable contract? Download the OpenAPI spec — it is the exact file these pages are generated from, so it can never describe a different API than the one documented here.
New to the API? Start with the Quickstart — it gets a first image generated in a few minutes. The guides explain when to reach for each endpoint and how the pieces fit together; the pages below are the exact contract.
Looking for the request shape of a specific layer type?
Element properties are documented per layer type under Generation → Element properties, which covers what each field means. The schemas here are the authority on which fields exist.
Designs
| Endpoint | What it does |
|---|---|
GET /designs | List all designs |
GET /designs/{designId} | Get design details |
GET /designs/{designId}/formats/{formatSpecifier} | Get format details |
Asset Generation
| Endpoint | What it does |
|---|---|
POST /banner-builder/{designId}/generate | Generate an image (synchronous) |
POST /async/banner-builder/{designId}/generate | Generate multiple formats (asynchronous) |
POST /async/banner-builder/{designId}/generate-multipage-pdf | Generate a multi-page PDF (asynchronous) |
GET /generation-request/{generationRequestId} | Poll async generation request status |
Authentication
| Endpoint | What it does |
|---|---|
POST /auth | Verify an API key |
Webhooks
| Endpoint | What it does |
|---|---|
GET /signing-secret | Get the webhook signing secret |
POST /signing-secret/rotate | Rotate the webhook signing secret |
POST /signing-secret/revoke | End the rotation overlap early |
Fonts
| Endpoint | What it does |
|---|---|
GET /fonts | List available fonts |
Exports
| Endpoint | What it does |
|---|---|
POST /async/banners/export | Export generated assets as a ZIP archive (asynchronous) |
Files
| Endpoint | What it does |
|---|---|
GET /banners/{bannerId} | Get generated file |
Projects
| Endpoint | What it does |
|---|---|
GET /projects | List projects |
POST /projects | Create a project |
Workspace Templates
| Endpoint | What it does |
|---|---|
GET /workspace-templates | List all workspace templates |
GET /workspace-template-categories | List workspace template categories |
POST /workspace-templates/{companyTemplateId}/use | Duplicate a workspace template into a project |
GET /design-duplication-requests/{duplicateRequestId} | Poll template duplication request status |
Design Import
| Endpoint | What it does |
|---|---|
GET /designs/import/json | List imports |
POST /designs/import/json | Create a design from JSON |
GET /designs/import/json/{importId} | Get import status |
PUT /designs/import/json/{importId} | Validate an import and queue it |
GET /designs/{designId}/as-import | Export a design as an import payload |
Dynamic Images
| Endpoint | What it does |
|---|---|
POST /designs/{designId}/dynamic-image-url | Create a dynamic image URL |
Webhook events
The spec's Webhooks tag above covers the three signing-secret endpoints you call. The events Abyssale sends you are a different thing.
Asynchronous generation reports completion by webhook rather than in the HTTP response. The event payloads, the signing scheme, and the retry behaviour are documented under Webhooks; they are not endpoints you call, so they are not listed above.
