API reference
Browse reviewed project, image, PDF, code, artifact and usage operations. Download the curated OpenAPI contract for developer tooling.
On this page
Contract and scope
Download developer OpenAPI JSON. This is a curated development snapshot: 23 paths covering project/key management, media and usage. Operations and their referenced schemas are copied from the reviewed backend snapshot. The server URL is a placeholder; replace it with your deployment’s API origin.
Project/key administration and usage routes require customer Bearer authentication; media routes accept project keys or customer Bearer as shown per operation. SDKs cover only context and core image/PDF/code operations.
Use the resource guides for workflow examples and behavioral constraints that OpenAPI cannot fully express.
Projects, keys and context
GET /v1/api-key/context
Authentication: X-API-Key. Choose one supported credential.
Documented responses
- 200
application/json:object200 JSON response structure
200 response schema { "type": "object", "required": [ "success", "data", "meta" ], "properties": { "success": { "type": "boolean", "enum": [ true ] }, "data": { "$ref": "#/components/schemas/ApiKeyContextDto" }, "meta": { "type": "object", "properties": { "requestId": { "type": "string" } } } } }
- 400 Standard sanitized error envelope.
application/json:object
- 401 Standard sanitized error envelope.
application/json:object
- 403 Standard sanitized error envelope.
application/json:object
- 404 Standard sanitized error envelope.
application/json:object
- 409 Standard sanitized error envelope.
application/json:object
- 429 Standard sanitized error envelope.
application/json:object
- 503 Standard sanitized error envelope.
application/json:object
An omitted error status here does not imply it cannot occur. All operations remain subject to authentication, validation, quota and capacity checks; see errors and limits.
POST /v1/projects
Authentication: Customer Authorization: Bearer. Choose one supported credential.
Request body (required)
application/json: CreateProjectDto
Documented responses
- 201
application/json:object201 JSON response structure
201 response schema { "type": "object", "required": [ "success", "data", "meta" ], "properties": { "success": { "type": "boolean", "enum": [ true ] }, "data": { "$ref": "#/components/schemas/ProjectResponseDto" }, "meta": { "type": "object", "properties": { "requestId": { "type": "string" } } } } }
- 400 Standard sanitized error envelope.
application/json:object
- 401 Standard sanitized error envelope.
application/json:object
- 403 Standard sanitized error envelope.
application/json:object
- 404 Standard sanitized error envelope.
application/json:object
- 409 Standard sanitized error envelope.
application/json:object
- 429 Standard sanitized error envelope.
application/json:object
- 503 Standard sanitized error envelope.
application/json:object
An omitted error status here does not imply it cannot occur. All operations remain subject to authentication, validation, quota and capacity checks; see errors and limits.
GET /v1/projects
Authentication: Customer Authorization: Bearer. Choose one supported credential.
| Name / location | Type | Required / constraints |
|---|---|---|
| page (query) | Object | Optional. Default: 1. Min: 1. |
| limit (query) | Object | Optional. Default: 20. Min: 1. Max: 100. |
| q (query) | string | Optional. Min length: 1. Max length: 100. Case-insensitive substring match against project name or slug (1–100 chars). |
Documented responses
- 200
application/json:object200 JSON response structure
200 response schema { "type": "object", "required": [ "success", "data", "meta" ], "properties": { "success": { "type": "boolean", "enum": [ true ] }, "data": { "type": "array", "items": { "$ref": "#/components/schemas/ProjectResponseDto" } }, "meta": { "type": "object", "properties": { "requestId": { "type": "string" }, "page": { "type": "integer" }, "limit": { "type": "integer" }, "total": { "type": "integer" }, "pages": { "type": "integer" } } } } }
- 400 Standard sanitized error envelope.
application/json:object
- 401 Standard sanitized error envelope.
application/json:object
- 403 Standard sanitized error envelope.
application/json:object
- 404 Standard sanitized error envelope.
application/json:object
- 409 Standard sanitized error envelope.
application/json:object
- 429 Standard sanitized error envelope.
application/json:object
- 503 Standard sanitized error envelope.
application/json:object
An omitted error status here does not imply it cannot occur. All operations remain subject to authentication, validation, quota and capacity checks; see errors and limits.
GET /v1/projects/{id}
Authentication: Customer Authorization: Bearer. Choose one supported credential.
| Name / location | Type | Required / constraints |
|---|---|---|
| id (path) | string | Required. |
Documented responses
- 200
application/json:object200 JSON response structure
200 response schema { "type": "object", "required": [ "success", "data", "meta" ], "properties": { "success": { "type": "boolean", "enum": [ true ] }, "data": { "$ref": "#/components/schemas/ProjectResponseDto" }, "meta": { "type": "object", "properties": { "requestId": { "type": "string" } } } } }
- 400 Standard sanitized error envelope.
application/json:object
- 401 Standard sanitized error envelope.
application/json:object
- 403 Standard sanitized error envelope.
application/json:object
- 404 Standard sanitized error envelope.
application/json:object
- 409 Standard sanitized error envelope.
application/json:object
- 429 Standard sanitized error envelope.
application/json:object
- 503 Standard sanitized error envelope.
application/json:object
An omitted error status here does not imply it cannot occur. All operations remain subject to authentication, validation, quota and capacity checks; see errors and limits.
PATCH /v1/projects/{id}
Authentication: Customer Authorization: Bearer. Choose one supported credential.
| Name / location | Type | Required / constraints |
|---|---|---|
| id (path) | string | Required. |
Request body (required)
application/json: UpdateProjectDto
Documented responses
- 200
application/json:object200 JSON response structure
200 response schema { "type": "object", "required": [ "success", "data", "meta" ], "properties": { "success": { "type": "boolean", "enum": [ true ] }, "data": { "$ref": "#/components/schemas/ProjectResponseDto" }, "meta": { "type": "object", "properties": { "requestId": { "type": "string" } } } } }
- 400 Standard sanitized error envelope.
application/json:object
- 401 Standard sanitized error envelope.
application/json:object
- 403 Standard sanitized error envelope.
application/json:object
- 404 Standard sanitized error envelope.
application/json:object
- 409 Standard sanitized error envelope.
application/json:object
- 429 Standard sanitized error envelope.
application/json:object
- 503 Standard sanitized error envelope.
application/json:object
An omitted error status here does not imply it cannot occur. All operations remain subject to authentication, validation, quota and capacity checks; see errors and limits.
DELETE /v1/projects/{id}
Authentication: Customer Authorization: Bearer. Choose one supported credential.
| Name / location | Type | Required / constraints |
|---|---|---|
| id (path) | string | Required. |
Documented responses
- 200
application/json:object200 JSON response structure
200 response schema { "type": "object", "required": [ "success", "data", "meta" ], "properties": { "success": { "type": "boolean", "enum": [ true ] }, "data": { "$ref": "#/components/schemas/MessageDto" }, "meta": { "type": "object", "properties": { "requestId": { "type": "string" } } } } }
- 400 Standard sanitized error envelope.
application/json:object
- 401 Standard sanitized error envelope.
application/json:object
- 403 Standard sanitized error envelope.
application/json:object
- 404 Standard sanitized error envelope.
application/json:object
- 409 Standard sanitized error envelope.
application/json:object
- 429 Standard sanitized error envelope.
application/json:object
- 503 Standard sanitized error envelope.
application/json:object
An omitted error status here does not imply it cannot occur. All operations remain subject to authentication, validation, quota and capacity checks; see errors and limits.
POST /v1/projects/{projectId}/api-keys
Authentication: Customer Authorization: Bearer. Choose one supported credential.
| Name / location | Type | Required / constraints |
|---|---|---|
projectId (path) | string | Required. |
Request body (required)
application/json: CreateApiKeyDto
Documented responses
- 201
application/json:object201 JSON response structure
201 response schema { "type": "object", "required": [ "success", "data", "meta" ], "properties": { "success": { "type": "boolean", "enum": [ true ] }, "data": { "$ref": "#/components/schemas/CreatedApiKeyResponseDto" }, "meta": { "type": "object", "properties": { "requestId": { "type": "string" } } } } }
- 400 Standard sanitized error envelope.
application/json:object
- 401 Standard sanitized error envelope.
application/json:object
- 403 Standard sanitized error envelope.
application/json:object
- 404 Standard sanitized error envelope.
application/json:object
- 409 Standard sanitized error envelope.
application/json:object
- 429 Standard sanitized error envelope.
application/json:object
- 503 Standard sanitized error envelope.
application/json:object
An omitted error status here does not imply it cannot occur. All operations remain subject to authentication, validation, quota and capacity checks; see errors and limits.
GET /v1/projects/{projectId}/api-keys
Authentication: Customer Authorization: Bearer. Choose one supported credential.
| Name / location | Type | Required / constraints |
|---|---|---|
projectId (path) | string | Required. |
| page (query) | Object | Optional. Default: 1. Min: 1. |
| limit (query) | Object | Optional. Default: 20. Min: 1. Max: 100. |
Documented responses
- 200
application/json:object200 JSON response structure
200 response schema { "type": "object", "required": [ "success", "data", "meta" ], "properties": { "success": { "type": "boolean", "enum": [ true ] }, "data": { "type": "array", "items": { "$ref": "#/components/schemas/ApiKeyResponseDto" } }, "meta": { "type": "object", "properties": { "requestId": { "type": "string" }, "page": { "type": "integer" }, "limit": { "type": "integer" }, "total": { "type": "integer" }, "pages": { "type": "integer" } } } } }
- 400 Standard sanitized error envelope.
application/json:object
- 401 Standard sanitized error envelope.
application/json:object
- 403 Standard sanitized error envelope.
application/json:object
- 404 Standard sanitized error envelope.
application/json:object
- 409 Standard sanitized error envelope.
application/json:object
- 429 Standard sanitized error envelope.
application/json:object
- 503 Standard sanitized error envelope.
application/json:object
An omitted error status here does not imply it cannot occur. All operations remain subject to authentication, validation, quota and capacity checks; see errors and limits.
DELETE /v1/projects/{projectId}/api-keys/{id}
Authentication: Customer Authorization: Bearer. Choose one supported credential.
| Name / location | Type | Required / constraints |
|---|---|---|
projectId (path) | string | Required. |
| id (path) | string | Required. |
Documented responses
- 200
application/json:object200 JSON response structure
200 response schema { "type": "object", "required": [ "success", "data", "meta" ], "properties": { "success": { "type": "boolean", "enum": [ true ] }, "data": { "$ref": "#/components/schemas/MessageDto" }, "meta": { "type": "object", "properties": { "requestId": { "type": "string" } } } } }
- 400 Standard sanitized error envelope.
application/json:object
- 401 Standard sanitized error envelope.
application/json:object
- 403 Standard sanitized error envelope.
application/json:object
- 404 Standard sanitized error envelope.
application/json:object
- 409 Standard sanitized error envelope.
application/json:object
- 429 Standard sanitized error envelope.
application/json:object
- 503 Standard sanitized error envelope.
application/json:object
An omitted error status here does not imply it cannot occur. All operations remain subject to authentication, validation, quota and capacity checks; see errors and limits.
Images and transformations
POST /v1/projects/{projectId}/images
Authentication: X-API-Key OR Customer Authorization: Bearer. Choose one supported credential.
| Name / location | Type | Required / constraints |
|---|---|---|
projectId (path) | string | Required. |
X-Upload-Length (header) | string | Required. Exact encoded file bytes, excluding multipart overhead. Must match the received file. |
Request body (required)
multipart/form-data:objectMultipart body schema { "type": "object", "required": [ "file" ], "additionalProperties": false, "properties": { "file": { "type": "string", "format": "binary" } } }
Documented responses
- 201
application/json:object201 JSON response structure
201 response schema { "type": "object", "required": [ "success", "data", "meta" ], "properties": { "success": { "type": "boolean", "enum": [ true ] }, "data": { "$ref": "#/components/schemas/ImageResponseDto" }, "meta": { "type": "object", "properties": { "requestId": { "type": "string" } } } } }
- 400 Standard sanitized error envelope.
application/json:object
- 401 Standard sanitized error envelope.
application/json:object
- 403 Standard sanitized error envelope.
application/json:object
- 404 Standard sanitized error envelope.
application/json:object
- 409 Standard sanitized error envelope.
application/json:object
- 413 Sanitized error envelope. Inspect status before decoding media.
application/json:object
- 429 Standard sanitized error envelope.
application/json:object
- 500 Sanitized error envelope. Inspect status before decoding media.
application/json:object
- 502 Sanitized error envelope. Inspect status before decoding media.
application/json:object
- 503 Standard sanitized error envelope.
application/json:object
An omitted error status here does not imply it cannot occur. All operations remain subject to authentication, validation, quota and capacity checks; see errors and limits.
GET /v1/projects/{projectId}/images
Authentication: X-API-Key OR Customer Authorization: Bearer. Choose one supported credential.
| Name / location | Type | Required / constraints |
|---|---|---|
projectId (path) | string | Required. |
| page (query) | Object | Optional. Default: 1. Min: 1. |
| limit (query) | Object | Optional. Default: 20. Min: 1. Max: 100. |
| q (query) | string | Optional. Min length: 1. Max length: 100. Case-insensitive filename prefix. |
Documented responses
- 200
application/json:object200 JSON response structure
200 response schema { "type": "object", "required": [ "success", "data", "meta" ], "properties": { "success": { "type": "boolean", "enum": [ true ] }, "data": { "type": "array", "items": { "$ref": "#/components/schemas/ImageResponseDto" } }, "meta": { "type": "object", "properties": { "requestId": { "type": "string" }, "page": { "type": "integer" }, "limit": { "type": "integer" }, "total": { "type": "integer" }, "pages": { "type": "integer" } } } } }
- 400 Standard sanitized error envelope.
application/json:object
- 401 Standard sanitized error envelope.
application/json:object
- 403 Standard sanitized error envelope.
application/json:object
- 404 Standard sanitized error envelope.
application/json:object
- 409 Standard sanitized error envelope.
application/json:object
- 413 Sanitized error envelope. Inspect status before decoding media.
application/json:object
- 429 Standard sanitized error envelope.
application/json:object
- 500 Sanitized error envelope. Inspect status before decoding media.
application/json:object
- 502 Sanitized error envelope. Inspect status before decoding media.
application/json:object
- 503 Standard sanitized error envelope.
application/json:object
An omitted error status here does not imply it cannot occur. All operations remain subject to authentication, validation, quota and capacity checks; see errors and limits.
GET /v1/projects/{projectId}/images/{id}
Authentication: X-API-Key OR Customer Authorization: Bearer. Choose one supported credential.
| Name / location | Type | Required / constraints |
|---|---|---|
projectId (path) | string | Required. |
| id (path) | string | Required. |
Documented responses
- 200
application/json:object200 JSON response structure
200 response schema { "type": "object", "required": [ "success", "data", "meta" ], "properties": { "success": { "type": "boolean", "enum": [ true ] }, "data": { "$ref": "#/components/schemas/ImageResponseDto" }, "meta": { "type": "object", "properties": { "requestId": { "type": "string" } } } } }
- 400 Standard sanitized error envelope.
application/json:object
- 401 Standard sanitized error envelope.
application/json:object
- 403 Standard sanitized error envelope.
application/json:object
- 404 Standard sanitized error envelope.
application/json:object
- 409 Standard sanitized error envelope.
application/json:object
- 413 Sanitized error envelope. Inspect status before decoding media.
application/json:object
- 429 Standard sanitized error envelope.
application/json:object
- 500 Sanitized error envelope. Inspect status before decoding media.
application/json:object
- 502 Sanitized error envelope. Inspect status before decoding media.
application/json:object
- 503 Standard sanitized error envelope.
application/json:object
An omitted error status here does not imply it cannot occur. All operations remain subject to authentication, validation, quota and capacity checks; see errors and limits.
DELETE /v1/projects/{projectId}/images/{id}
Authentication: X-API-Key OR Customer Authorization: Bearer. Choose one supported credential.
| Name / location | Type | Required / constraints |
|---|---|---|
projectId (path) | string | Required. |
| id (path) | string | Required. |
Documented responses
- 200
application/json:object200 JSON response structure
200 response schema { "type": "object", "required": [ "success", "data", "meta" ], "properties": { "success": { "type": "boolean", "enum": [ true ] }, "data": { "$ref": "#/components/schemas/MessageDto" }, "meta": { "type": "object", "properties": { "requestId": { "type": "string" } } } } }
- 400 Standard sanitized error envelope.
application/json:object
- 401 Standard sanitized error envelope.
application/json:object
- 403 Standard sanitized error envelope.
application/json:object
- 404 Standard sanitized error envelope.
application/json:object
- 409 Standard sanitized error envelope.
application/json:object
- 413 Sanitized error envelope. Inspect status before decoding media.
application/json:object
- 429 Standard sanitized error envelope.
application/json:object
- 500 Sanitized error envelope. Inspect status before decoding media.
application/json:object
- 502 Sanitized error envelope. Inspect status before decoding media.
application/json:object
- 503 Standard sanitized error envelope.
application/json:object
An omitted error status here does not imply it cannot occur. All operations remain subject to authentication, validation, quota and capacity checks; see errors and limits.
GET /v1/projects/{projectId}/images/{id}/content
Download private original bytes; no rendering or transformations
Authentication: X-API-Key OR Customer Authorization: Bearer. Choose one supported credential.
| Name / location | Type | Required / constraints |
|---|---|---|
projectId (path) | string | Required. |
| id (path) | string | Required. |
Documented responses
- 200 Original attachment. Full object bandwidth is charged on successful admission, including client-aborted downloads.
application/octet-stream:string / binary
- 400 Sanitized error envelope. Inspect status before decoding media.
application/json:object
- 401 Sanitized error envelope. Inspect status before decoding media.
application/json:object
- 403 Sanitized error envelope. Inspect status before decoding media.
application/json:object
- 404 Sanitized error envelope. Inspect status before decoding media.
application/json:object
- 409 Sanitized error envelope. Inspect status before decoding media.
application/json:object
- 413 Sanitized error envelope. Inspect status before decoding media.
application/json:object
- 429 Sanitized error envelope. Inspect status before decoding media.
application/json:object
- 500 Sanitized error envelope. Inspect status before decoding media.
application/json:object
- 502 Sanitized error envelope. Inspect status before decoding media.
application/json:object
- 503 Sanitized error envelope. Inspect status before decoding media.
application/json:object
An omitted error status here does not imply it cannot occur. All operations remain subject to authentication, validation, quota and capacity checks; see errors and limits.
GET /v1/projects/{projectId}/transforms
Authentication: X-API-Key OR Customer Authorization: Bearer. Choose one supported credential.
| Name / location | Type | Required / constraints |
|---|---|---|
projectId (path) | string | Required. |
| page (query) | Object | Optional. Default: 1. Min: 1. |
| limit (query) | Object | Optional. Default: 20. Min: 1. Max: 100. |
Documented responses
- 200
application/json:object200 JSON response structure
200 response schema { "type": "object", "required": [ "success", "data", "meta" ], "properties": { "success": { "type": "boolean", "enum": [ true ] }, "data": { "type": "array", "items": { "$ref": "#/components/schemas/TransformationResponseDto" } }, "meta": { "type": "object", "properties": { "requestId": { "type": "string" }, "page": { "type": "integer" }, "limit": { "type": "integer" }, "total": { "type": "integer" }, "pages": { "type": "integer" } } } } }
- 400 Standard sanitized error envelope.
application/json:object
- 401 Standard sanitized error envelope.
application/json:object
- 403 Standard sanitized error envelope.
application/json:object
- 404 Standard sanitized error envelope.
application/json:object
- 409 Standard sanitized error envelope.
application/json:object
- 413 Sanitized error envelope. Inspect status before decoding media.
application/json:object
- 429 Standard sanitized error envelope.
application/json:object
- 500 Sanitized error envelope. Inspect status before decoding media.
application/json:object
- 502 Sanitized error envelope. Inspect status before decoding media.
application/json:object
- 503 Standard sanitized error envelope.
application/json:object
An omitted error status here does not imply it cannot occur. All operations remain subject to authentication, validation, quota and capacity checks; see errors and limits.
POST /v1/projects/{projectId}/transforms
Transform an owned original or public remote image; returns binary output.
Authentication: X-API-Key OR Customer Authorization: Bearer. Choose one supported credential.
| Name / location | Type | Required / constraints |
|---|---|---|
projectId (path) | string | Required. |
Request body (required)
application/json: TransformRequestDto
Documented responses
- 200 Raster bytes; X-Transformation-ID identifies persisted/cache metadata. X-Cache is HIT or MISS.
application/octet-stream:string / binary
- 400 Sanitized error envelope. Inspect status before decoding media.
application/json:object
- 401 Sanitized error envelope. Inspect status before decoding media.
application/json:object
- 403 Sanitized error envelope. Inspect status before decoding media.
application/json:object
- 404 Sanitized error envelope. Inspect status before decoding media.
application/json:object
- 409 Sanitized error envelope. Inspect status before decoding media.
application/json:object
- 413 Sanitized error envelope. Inspect status before decoding media.
application/json:object
- 429 Sanitized error envelope. Inspect status before decoding media.
application/json:object
- 500 Sanitized error envelope. Inspect status before decoding media.
application/json:object
- 502 Sanitized error envelope. Inspect status before decoding media.
application/json:object
- 503 Sanitized error envelope. Inspect status before decoding media.
application/json:object
An omitted error status here does not imply it cannot occur. All operations remain subject to authentication, validation, quota and capacity checks; see errors and limits.
GET /v1/projects/{projectId}/transforms/{id}
Authentication: X-API-Key OR Customer Authorization: Bearer. Choose one supported credential.
| Name / location | Type | Required / constraints |
|---|---|---|
projectId (path) | string | Required. |
| id (path) | string | Required. |
Documented responses
- 200
application/json:object200 JSON response structure
200 response schema { "type": "object", "required": [ "success", "data", "meta" ], "properties": { "success": { "type": "boolean", "enum": [ true ] }, "data": { "$ref": "#/components/schemas/TransformationResponseDto" }, "meta": { "type": "object", "properties": { "requestId": { "type": "string" } } } } }
- 400 Standard sanitized error envelope.
application/json:object
- 401 Standard sanitized error envelope.
application/json:object
- 403 Standard sanitized error envelope.
application/json:object
- 404 Standard sanitized error envelope.
application/json:object
- 409 Standard sanitized error envelope.
application/json:object
- 413 Sanitized error envelope. Inspect status before decoding media.
application/json:object
- 429 Standard sanitized error envelope.
application/json:object
- 500 Sanitized error envelope. Inspect status before decoding media.
application/json:object
- 502 Sanitized error envelope. Inspect status before decoding media.
application/json:object
- 503 Standard sanitized error envelope.
application/json:object
An omitted error status here does not imply it cannot occur. All operations remain subject to authentication, validation, quota and capacity checks; see errors and limits.
DELETE /v1/projects/{projectId}/transforms/{id}
Authentication: X-API-Key OR Customer Authorization: Bearer. Choose one supported credential.
| Name / location | Type | Required / constraints |
|---|---|---|
projectId (path) | string | Required. |
| id (path) | string | Required. |
Documented responses
- 200
application/json:object200 JSON response structure
200 response schema { "type": "object", "required": [ "success", "data", "meta" ], "properties": { "success": { "type": "boolean", "enum": [ true ] }, "data": { "$ref": "#/components/schemas/MessageDto" }, "meta": { "type": "object", "properties": { "requestId": { "type": "string" } } } } }
- 400 Standard sanitized error envelope.
application/json:object
- 401 Standard sanitized error envelope.
application/json:object
- 403 Standard sanitized error envelope.
application/json:object
- 404 Standard sanitized error envelope.
application/json:object
- 409 Standard sanitized error envelope.
application/json:object
- 413 Sanitized error envelope. Inspect status before decoding media.
application/json:object
- 429 Standard sanitized error envelope.
application/json:object
- 500 Sanitized error envelope. Inspect status before decoding media.
application/json:object
- 502 Sanitized error envelope. Inspect status before decoding media.
application/json:object
- 503 Standard sanitized error envelope.
application/json:object
An omitted error status here does not imply it cannot occur. All operations remain subject to authentication, validation, quota and capacity checks; see errors and limits.
GET /v1/projects/{projectId}/transforms/{id}/content
Authentication: X-API-Key OR Customer Authorization: Bearer. Choose one supported credential.
| Name / location | Type | Required / constraints |
|---|---|---|
projectId (path) | string | Required. |
| id (path) | string | Required. |
If-None-Match (header) | string | Optional. |
Documented responses
- 200 Private derivative bytes
application/octet-stream:string / binary
- 304 Authenticated revalidation; no bandwidth charged.
- 400 Sanitized error envelope. Inspect status before decoding media.
application/json:object
- 401 Sanitized error envelope. Inspect status before decoding media.
application/json:object
- 403 Sanitized error envelope. Inspect status before decoding media.
application/json:object
- 404 Sanitized error envelope. Inspect status before decoding media.
application/json:object
- 409 Sanitized error envelope. Inspect status before decoding media.
application/json:object
- 413 Sanitized error envelope. Inspect status before decoding media.
application/json:object
- 429 Sanitized error envelope. Inspect status before decoding media.
application/json:object
- 500 Sanitized error envelope. Inspect status before decoding media.
application/json:object
- 502 Sanitized error envelope. Inspect status before decoding media.
application/json:object
- 503 Sanitized error envelope. Inspect status before decoding media.
application/json:object
An omitted error status here does not imply it cannot occur. All operations remain subject to authentication, validation, quota and capacity checks; see errors and limits.
PDF, QR and barcode tools
POST /v1/projects/{projectId}/tools/qr
Generate a QR code (PNG or SVG).
Authentication: X-API-Key OR Customer Authorization: Bearer. Choose one supported credential.
| Name / location | Type | Required / constraints |
|---|---|---|
projectId (path) | string | Required. |
Request body (required)
application/json: QrGenerateDto
Documented responses
- 200 QR image bytes
image/png:string / binaryimage/svg+xml:string / binary
- 400 Sanitized error envelope. Inspect status before decoding media.
application/json:object
- 401 Sanitized error envelope. Inspect status before decoding media.
application/json:object
- 403 Sanitized error envelope. Inspect status before decoding media.
application/json:object
- 404 Sanitized error envelope. Inspect status before decoding media.
application/json:object
- 409 Sanitized error envelope. Inspect status before decoding media.
application/json:object
- 413 Sanitized error envelope. Inspect status before decoding media.
application/json:object
- 429 Sanitized error envelope. Inspect status before decoding media.
application/json:object
- 500 Sanitized error envelope. Inspect status before decoding media.
application/json:object
- 502 Sanitized error envelope. Inspect status before decoding media.
application/json:object
- 503 Sanitized error envelope. Inspect status before decoding media.
application/json:object
An omitted error status here does not imply it cannot occur. All operations remain subject to authentication, validation, quota and capacity checks; see errors and limits.
POST /v1/projects/{projectId}/tools/barcode
Generate an allowlisted barcode (PNG or SVG).
Authentication: X-API-Key OR Customer Authorization: Bearer. Choose one supported credential.
| Name / location | Type | Required / constraints |
|---|---|---|
projectId (path) | string | Required. |
Request body (required)
application/json: BarcodeGenerateDto
Documented responses
- 200 Barcode image bytes
image/png:string / binaryimage/svg+xml:string / binary
- 400 Sanitized error envelope. Inspect status before decoding media.
application/json:object
- 401 Sanitized error envelope. Inspect status before decoding media.
application/json:object
- 403 Sanitized error envelope. Inspect status before decoding media.
application/json:object
- 404 Sanitized error envelope. Inspect status before decoding media.
application/json:object
- 409 Sanitized error envelope. Inspect status before decoding media.
application/json:object
- 413 Sanitized error envelope. Inspect status before decoding media.
application/json:object
- 429 Sanitized error envelope. Inspect status before decoding media.
application/json:object
- 500 Sanitized error envelope. Inspect status before decoding media.
application/json:object
- 502 Sanitized error envelope. Inspect status before decoding media.
application/json:object
- 503 Sanitized error envelope. Inspect status before decoding media.
application/json:object
An omitted error status here does not imply it cannot occur. All operations remain subject to authentication, validation, quota and capacity checks; see errors and limits.
POST /v1/projects/{projectId}/tools/pdf/info
Inspect a PDF (page count and dimensions).
Authentication: X-API-Key OR Customer Authorization: Bearer. Choose one supported credential.
| Name / location | Type | Required / constraints |
|---|---|---|
projectId (path) | string | Required. |
Request body (required)
multipart/form-data:objectMultipart body schema { "type": "object", "required": [ "file" ], "additionalProperties": false, "properties": { "file": { "type": "string", "format": "binary" } } }
Documented responses
- 200
application/json:object200 JSON response structure
200 response schema { "type": "object", "required": [ "success", "data", "meta" ], "properties": { "success": { "type": "boolean", "enum": [ true ] }, "data": { "$ref": "#/components/schemas/PdfInfoResponseDto" }, "meta": { "type": "object", "properties": { "requestId": { "type": "string" } } } } }
- 400 Standard sanitized error envelope.
application/json:object
- 401 Standard sanitized error envelope.
application/json:object
- 403 Standard sanitized error envelope.
application/json:object
- 404 Standard sanitized error envelope.
application/json:object
- 409 Standard sanitized error envelope.
application/json:object
- 413 Sanitized error envelope. Inspect status before decoding media.
application/json:object
- 429 Standard sanitized error envelope.
application/json:object
- 500 Sanitized error envelope. Inspect status before decoding media.
application/json:object
- 502 Sanitized error envelope. Inspect status before decoding media.
application/json:object
- 503 Standard sanitized error envelope.
application/json:object
An omitted error status here does not imply it cannot occur. All operations remain subject to authentication, validation, quota and capacity checks; see errors and limits.
POST /v1/projects/{projectId}/tools/pdf/render
Rasterize PDF pages. One page returns binary; multiple pages return JSON with base64 payloads.
Authentication: X-API-Key OR Customer Authorization: Bearer. Choose one supported credential.
| Name / location | Type | Required / constraints |
|---|---|---|
projectId (path) | string | Required. |
| pages (query) | string | Optional. Unique comma-separated 1-based pages in requested order, e.g. 1,3,5. Mutually exclusive with range/all. Omit selection to render page 1. |
rangeStart (query) | integer | Optional. Min: 1. Max: 100. Inclusive 1-based page number; rangeStart and rangeEnd must be provided together and cannot be combined with pages/all. |
rangeEnd (query) | integer | Optional. Min: 1. Max: 100. Inclusive 1-based page number; rangeStart and rangeEnd must be provided together and cannot be combined with pages/all. |
| all (query) | boolean | Optional. Default: false. Render the first pages up to the configured cap (default/max 10). Mutually exclusive with pages/range; does not return pages beyond the cap. |
| format (query) | string | Optional. Values: png | jpeg | webp. Default: "png". |
| scale (query) | number | Optional. Default: 1. Min: 0.5. Max: 2. |
| quality (query) | integer | Optional. Default: 80. Min: 1. Max: 100. JPEG/WebP encoder quality; PNG ignores this value. |
Request body (required)
multipart/form-data:objectMultipart body schema { "type": "object", "required": [ "file" ], "additionalProperties": false, "properties": { "file": { "type": "string", "format": "binary" } } }
Documented responses
- 200 Single-page image bytes or multi-page JSON envelope
image/png:string / binaryimage/jpeg:string / binaryimage/webp:string / binaryapplication/json:object200 JSON response structure
200 response schema { "type": "object", "required": [ "success", "data", "meta" ], "properties": { "success": { "type": "boolean", "enum": [ true ] }, "data": { "$ref": "#/components/schemas/PdfRenderResponseDto" }, "meta": { "type": "object", "required": [ "requestId" ], "properties": { "requestId": { "type": "string" } } } } }
- 400 Sanitized error envelope. Inspect status before decoding media.
application/json:object
- 401 Sanitized error envelope. Inspect status before decoding media.
application/json:object
- 403 Sanitized error envelope. Inspect status before decoding media.
application/json:object
- 404 Sanitized error envelope. Inspect status before decoding media.
application/json:object
- 409 Sanitized error envelope. Inspect status before decoding media.
application/json:object
- 413 Sanitized error envelope. Inspect status before decoding media.
application/json:object
- 429 Sanitized error envelope. Inspect status before decoding media.
application/json:object
- 500 Sanitized error envelope. Inspect status before decoding media.
application/json:object
- 502 Sanitized error envelope. Inspect status before decoding media.
application/json:object
- 503 Sanitized error envelope. Inspect status before decoding media.
application/json:object
An omitted error status here does not imply it cannot occur. All operations remain subject to authentication, validation, quota and capacity checks; see errors and limits.
POST /v1/projects/{projectId}/tools/pdf/merge
Merge uploaded PDFs in multipart order into one PDF.
Authentication: X-API-Key OR Customer Authorization: Bearer. Choose one supported credential.
| Name / location | Type | Required / constraints |
|---|---|---|
projectId (path) | string | Required. |
Request body (required)
multipart/form-data:objectMultipart body schema { "type": "object", "required": [ "file" ], "additionalProperties": false, "properties": { "file": { "type": "array", "minItems": 1, "maxItems": 10, "description": "Repeat the file field in merge order. Configured limits may be lower.", "items": { "type": "string", "format": "binary" } } } }
Documented responses
- 200
application/pdf:string / binary
- 400 Sanitized error envelope. Inspect status before decoding media.
application/json:object
- 401 Sanitized error envelope. Inspect status before decoding media.
application/json:object
- 403 Sanitized error envelope. Inspect status before decoding media.
application/json:object
- 404 Sanitized error envelope. Inspect status before decoding media.
application/json:object
- 409 Sanitized error envelope. Inspect status before decoding media.
application/json:object
- 413 Sanitized error envelope. Inspect status before decoding media.
application/json:object
- 429 Sanitized error envelope. Inspect status before decoding media.
application/json:object
- 500 Sanitized error envelope. Inspect status before decoding media.
application/json:object
- 502 Sanitized error envelope. Inspect status before decoding media.
application/json:object
- 503 Sanitized error envelope. Inspect status before decoding media.
application/json:object
An omitted error status here does not imply it cannot occur. All operations remain subject to authentication, validation, quota and capacity checks; see errors and limits.
POST /v1/projects/{projectId}/tools/pdf/extract
Extract selected PDF pages into a new PDF.
Authentication: X-API-Key OR Customer Authorization: Bearer. Choose one supported credential.
| Name / location | Type | Required / constraints |
|---|---|---|
projectId (path) | string | Required. |
| pages (query) | string | Optional. Unique comma-separated 1-based pages in requested order, e.g. 1,2,5. Required unless a complete range is supplied. |
rangeStart (query) | integer | Optional. Min: 1. Max: 100. Inclusive 1-based page number; rangeStart and rangeEnd must be provided together and cannot be combined with pages/all. |
rangeEnd (query) | integer | Optional. Min: 1. Max: 100. Inclusive 1-based page number; rangeStart and rangeEnd must be provided together and cannot be combined with pages/all. |
Request body (required)
multipart/form-data:objectMultipart body schema { "type": "object", "required": [ "file" ], "additionalProperties": false, "properties": { "file": { "type": "string", "format": "binary" } } }
Documented responses
- 200
application/pdf:string / binary
- 400 Sanitized error envelope. Inspect status before decoding media.
application/json:object
- 401 Sanitized error envelope. Inspect status before decoding media.
application/json:object
- 403 Sanitized error envelope. Inspect status before decoding media.
application/json:object
- 404 Sanitized error envelope. Inspect status before decoding media.
application/json:object
- 409 Sanitized error envelope. Inspect status before decoding media.
application/json:object
- 413 Sanitized error envelope. Inspect status before decoding media.
application/json:object
- 429 Sanitized error envelope. Inspect status before decoding media.
application/json:object
- 500 Sanitized error envelope. Inspect status before decoding media.
application/json:object
- 502 Sanitized error envelope. Inspect status before decoding media.
application/json:object
- 503 Sanitized error envelope. Inspect status before decoding media.
application/json:object
An omitted error status here does not imply it cannot occur. All operations remain subject to authentication, validation, quota and capacity checks; see errors and limits.
Saved artifacts and usage
POST /v1/projects/{projectId}/tools/artifacts
Persist a tool preview as a project artifact (storage only; no generation credit).
Authentication: X-API-Key OR Customer Authorization: Bearer. Choose one supported credential.
| Name / location | Type | Required / constraints |
|---|---|---|
projectId (path) | string | Required. |
Request body (required)
multipart/form-data:objectMultipart body schema { "type": "object", "required": [ "file", "kind", "displayName", "contentType" ], "additionalProperties": false, "properties": { "file": { "type": "string", "format": "binary" }, "kind": { "type": "string", "enum": [ "qr", "barcode", "pdf_render", "pdf_merge", "pdf_extract", "image_transform" ] }, "displayName": { "type": "string" }, "contentType": { "type": "string" }, "requestSnapshot": { "type": "string", "description": "JSON object of feature-specific generation hints only. Credentials, headers, storage options and arbitrary nested objects are rejected." }, "sourceImageId": { "type": "string" } } }
Documented responses
- 201
application/json:object201 JSON response structure
201 response schema { "type": "object", "required": [ "success", "data", "meta" ], "properties": { "success": { "type": "boolean", "enum": [ true ] }, "data": { "$ref": "#/components/schemas/ToolArtifactResponseDto" }, "meta": { "type": "object", "required": [ "requestId" ], "properties": { "requestId": { "type": "string" } } } } }
- 400 Standard error envelope. See docs/AUTH_PHASE1.md for stable authentication codes.
application/json:object
- 401 Standard error envelope. See docs/AUTH_PHASE1.md for stable authentication codes.
application/json:object
- 403 Standard error envelope. See docs/AUTH_PHASE1.md for stable authentication codes.
application/json:object
- 404 Sanitized error envelope. Inspect status before decoding media.
application/json:object
- 409 Standard error envelope. See docs/AUTH_PHASE1.md for stable authentication codes.
application/json:object
- 413 Sanitized error envelope. Inspect status before decoding media.
application/json:object
- 429 Standard error envelope. See docs/AUTH_PHASE1.md for stable authentication codes.
application/json:object
- 500 Sanitized error envelope. Inspect status before decoding media.
application/json:object
- 502 Sanitized error envelope. Inspect status before decoding media.
application/json:object
- 503 Standard error envelope. See docs/AUTH_PHASE1.md for stable authentication codes.
application/json:object
An omitted error status here does not imply it cannot occur. All operations remain subject to authentication, validation, quota and capacity checks; see errors and limits.
GET /v1/projects/{projectId}/tools/artifacts
Authentication: X-API-Key OR Customer Authorization: Bearer. Choose one supported credential.
| Name / location | Type | Required / constraints |
|---|---|---|
projectId (path) | string | Required. |
| page (query) | Object | Optional. Default: 1. Min: 1. |
| limit (query) | Object | Optional. Default: 20. Min: 1. Max: 100. |
| q (query) | string | Optional. |
| kind (query) | string | Optional. Values: qr | barcode | pdf_render | pdf_merge | pdf_extract | image_transform. |
Documented responses
- 200
application/json:object200 JSON response structure
200 response schema { "type": "object", "required": [ "success", "data", "meta" ], "properties": { "success": { "type": "boolean", "enum": [ true ] }, "data": { "type": "array", "items": { "$ref": "#/components/schemas/ToolArtifactResponseDto" } }, "meta": { "type": "object", "properties": { "requestId": { "type": "string" }, "page": { "type": "integer" }, "limit": { "type": "integer" }, "total": { "type": "integer" }, "pages": { "type": "integer" } } } } }
- 400 Standard sanitized error envelope.
application/json:object
- 401 Standard sanitized error envelope.
application/json:object
- 403 Standard sanitized error envelope.
application/json:object
- 404 Standard sanitized error envelope.
application/json:object
- 409 Standard sanitized error envelope.
application/json:object
- 413 Sanitized error envelope. Inspect status before decoding media.
application/json:object
- 429 Standard sanitized error envelope.
application/json:object
- 500 Sanitized error envelope. Inspect status before decoding media.
application/json:object
- 502 Sanitized error envelope. Inspect status before decoding media.
application/json:object
- 503 Standard sanitized error envelope.
application/json:object
An omitted error status here does not imply it cannot occur. All operations remain subject to authentication, validation, quota and capacity checks; see errors and limits.
GET /v1/projects/{projectId}/tools/artifacts/{id}
Authentication: X-API-Key OR Customer Authorization: Bearer. Choose one supported credential.
| Name / location | Type | Required / constraints |
|---|---|---|
projectId (path) | string | Required. |
| id (path) | string | Required. |
Documented responses
- 200
application/json:object200 JSON response structure
200 response schema { "type": "object", "required": [ "success", "data", "meta" ], "properties": { "success": { "type": "boolean", "enum": [ true ] }, "data": { "$ref": "#/components/schemas/ToolArtifactResponseDto" }, "meta": { "type": "object", "required": [ "requestId" ], "properties": { "requestId": { "type": "string" } } } } }
- 400 Standard error envelope. See docs/AUTH_PHASE1.md for stable authentication codes.
application/json:object
- 401 Standard error envelope. See docs/AUTH_PHASE1.md for stable authentication codes.
application/json:object
- 403 Standard error envelope. See docs/AUTH_PHASE1.md for stable authentication codes.
application/json:object
- 404 Sanitized error envelope. Inspect status before decoding media.
application/json:object
- 409 Standard error envelope. See docs/AUTH_PHASE1.md for stable authentication codes.
application/json:object
- 413 Sanitized error envelope. Inspect status before decoding media.
application/json:object
- 429 Standard error envelope. See docs/AUTH_PHASE1.md for stable authentication codes.
application/json:object
- 500 Sanitized error envelope. Inspect status before decoding media.
application/json:object
- 502 Sanitized error envelope. Inspect status before decoding media.
application/json:object
- 503 Standard error envelope. See docs/AUTH_PHASE1.md for stable authentication codes.
application/json:object
An omitted error status here does not imply it cannot occur. All operations remain subject to authentication, validation, quota and capacity checks; see errors and limits.
DELETE /v1/projects/{projectId}/tools/artifacts/{id}
Authentication: X-API-Key OR Customer Authorization: Bearer. Choose one supported credential.
| Name / location | Type | Required / constraints |
|---|---|---|
projectId (path) | string | Required. |
| id (path) | string | Required. |
Documented responses
- 200
application/json:object200 JSON response structure
200 response schema { "type": "object", "required": [ "success", "data", "meta" ], "properties": { "success": { "type": "boolean", "enum": [ true ] }, "data": { "$ref": "#/components/schemas/MessageDto" }, "meta": { "type": "object", "required": [ "requestId" ], "properties": { "requestId": { "type": "string" } } } } }
- 400 Standard error envelope. See docs/AUTH_PHASE1.md for stable authentication codes.
application/json:object
- 401 Standard error envelope. See docs/AUTH_PHASE1.md for stable authentication codes.
application/json:object
- 403 Standard error envelope. See docs/AUTH_PHASE1.md for stable authentication codes.
application/json:object
- 404 Sanitized error envelope. Inspect status before decoding media.
application/json:object
- 409 Standard error envelope. See docs/AUTH_PHASE1.md for stable authentication codes.
application/json:object
- 413 Sanitized error envelope. Inspect status before decoding media.
application/json:object
- 429 Standard error envelope. See docs/AUTH_PHASE1.md for stable authentication codes.
application/json:object
- 500 Sanitized error envelope. Inspect status before decoding media.
application/json:object
- 502 Sanitized error envelope. Inspect status before decoding media.
application/json:object
- 503 Standard error envelope. See docs/AUTH_PHASE1.md for stable authentication codes.
application/json:object
An omitted error status here does not imply it cannot occur. All operations remain subject to authentication, validation, quota and capacity checks; see errors and limits.
GET /v1/projects/{projectId}/tools/artifacts/{id}/content
Download persisted tool artifact bytes.
Authentication: X-API-Key OR Customer Authorization: Bearer. Choose one supported credential.
| Name / location | Type | Required / constraints |
|---|---|---|
projectId (path) | string | Required. |
| id (path) | string | Required. |
Documented responses
- 200 Private saved media bytes. Inspect status before decoding.
application/octet-stream:string / binary
- 400 Sanitized error envelope. Inspect status before decoding media.
application/json:object
- 401 Sanitized error envelope. Inspect status before decoding media.
application/json:object
- 403 Sanitized error envelope. Inspect status before decoding media.
application/json:object
- 404 Sanitized error envelope. Inspect status before decoding media.
application/json:object
- 409 Sanitized error envelope. Inspect status before decoding media.
application/json:object
- 413 Sanitized error envelope. Inspect status before decoding media.
application/json:object
- 429 Sanitized error envelope. Inspect status before decoding media.
application/json:object
- 500 Sanitized error envelope. Inspect status before decoding media.
application/json:object
- 502 Sanitized error envelope. Inspect status before decoding media.
application/json:object
- 503 Sanitized error envelope. Inspect status before decoding media.
application/json:object
An omitted error status here does not imply it cannot occur. All operations remain subject to authentication, validation, quota and capacity checks; see errors and limits.
GET /v1/projects/{projectId}/outputs/summary
Authentication: X-API-Key OR Customer Authorization: Bearer. Choose one supported credential.
| Name / location | Type | Required / constraints |
|---|---|---|
projectId (path) | string | Required. |
Documented responses
- 200
application/json:object200 JSON response structure
200 response schema { "type": "object", "required": [ "success", "data", "meta" ], "properties": { "success": { "type": "boolean", "enum": [ true ] }, "data": { "$ref": "#/components/schemas/OutputsSummaryDto" }, "meta": { "type": "object", "required": [ "requestId" ], "properties": { "requestId": { "type": "string" } } } } }
- 400 Standard error envelope. See docs/AUTH_PHASE1.md for stable authentication codes.
application/json:object
- 401 Standard error envelope. See docs/AUTH_PHASE1.md for stable authentication codes.
application/json:object
- 403 Standard error envelope. See docs/AUTH_PHASE1.md for stable authentication codes.
application/json:object
- 409 Standard error envelope. See docs/AUTH_PHASE1.md for stable authentication codes.
application/json:object
- 429 Standard error envelope. See docs/AUTH_PHASE1.md for stable authentication codes.
application/json:object
- 503 Standard error envelope. See docs/AUTH_PHASE1.md for stable authentication codes.
application/json:object
An omitted error status here does not imply it cannot occur. All operations remain subject to authentication, validation, quota and capacity checks; see errors and limits.
GET /v1/projects/{projectId}/usage/events
Authentication: Customer Authorization: Bearer. Choose one supported credential.
| Name / location | Type | Required / constraints |
|---|---|---|
projectId (path) | string | Required. |
| page (query) | Object | Optional. Default: 1. Min: 1. |
| limit (query) | Object | Optional. Default: 20. Min: 1. Max: 100. |
periodId (query) | string / uuid | Optional. Owned persisted usage period ID; omission includes all periods. |
Documented responses
- 200
application/json:object200 JSON response structure
200 response schema { "type": "object", "required": [ "success", "data", "meta" ], "properties": { "success": { "type": "boolean", "enum": [ true ] }, "data": { "type": "array", "items": { "$ref": "#/components/schemas/UsageEventDto" } }, "meta": { "type": "object", "properties": { "requestId": { "type": "string" }, "page": { "type": "integer" }, "limit": { "type": "integer" }, "total": { "type": "integer" }, "pages": { "type": "integer" } } } } }
- 400 Standard sanitized error envelope.
application/json:object
- 401 Standard sanitized error envelope.
application/json:object
- 403 Standard sanitized error envelope.
application/json:object
- 404 Standard sanitized error envelope.
application/json:object
- 409 Standard sanitized error envelope.
application/json:object
- 429 Standard sanitized error envelope.
application/json:object
- 503 Standard sanitized error envelope.
application/json:object
An omitted error status here does not imply it cannot occur. All operations remain subject to authentication, validation, quota and capacity checks; see errors and limits.
GET /v1/projects/{projectId}/usage/activity
Authentication: Customer Authorization: Bearer. Choose one supported credential.
| Name / location | Type | Required / constraints |
|---|---|---|
projectId (path) | string | Required. |
| days (query) | Object | Optional. Default: 7. Min: 1. Max: 31. Number of completed UTC calendar days to include, ending today. |
Documented responses
- 200
application/json:object200 JSON response structure
200 response schema { "type": "object", "required": [ "success", "data", "meta" ], "properties": { "success": { "type": "boolean", "enum": [ true ] }, "data": { "$ref": "#/components/schemas/UsageActivitySeriesDto" }, "meta": { "type": "object", "properties": { "requestId": { "type": "string" } } } } }
- 400 Standard sanitized error envelope.
application/json:object
- 401 Standard sanitized error envelope.
application/json:object
- 403 Standard sanitized error envelope.
application/json:object
- 404 Standard sanitized error envelope.
application/json:object
- 409 Standard sanitized error envelope.
application/json:object
- 429 Standard sanitized error envelope.
application/json:object
- 503 Standard sanitized error envelope.
application/json:object
An omitted error status here does not imply it cannot occur. All operations remain subject to authentication, validation, quota and capacity checks; see errors and limits.
Request and response schemas
Schema definitions below come from the reviewed snapshot. Expand a definition for nested objects, array items and envelope structure. Cross-field rules and service limits are explained in the resource guides.
ApiKeyContextDto
| Field | Type | Required / constraints |
|---|---|---|
projectId | string | Required. |
keyId | string | Required. |
{
"type": "object",
"properties": {
"projectId": {
"type": "string"
},
"keyId": {
"type": "string"
}
},
"required": [
"projectId",
"keyId"
]
}CreateProjectDto
| Field | Type | Required / constraints |
|---|---|---|
name | string | Required. Max length: 100. |
slug | string | Required. Unique per owner, including deleted projects. |
{
"type": "object",
"properties": {
"name": {
"type": "string",
"maxLength": 100
},
"slug": {
"type": "string",
"description": "Unique per owner, including deleted projects.",
"pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$"
}
},
"required": [
"name",
"slug"
]
}ProjectResponseDto
| Field | Type | Required / constraints |
|---|---|---|
_id | string | Required. |
userId | string | Required. |
name | string | Required. |
slug | string | Required. |
status | string | Required. Values: active | disabled. |
deletedAt | string / date-time | Required. |
createdAt | string / date-time | Required. |
updatedAt | string / date-time | Required. |
{
"type": "object",
"properties": {
"_id": {
"type": "string"
},
"userId": {
"type": "string"
},
"name": {
"type": "string"
},
"slug": {
"type": "string"
},
"status": {
"type": "string",
"enum": [
"active",
"disabled"
]
},
"deletedAt": {
"type": "string",
"format": "date-time",
"nullable": true
},
"createdAt": {
"format": "date-time",
"type": "string"
},
"updatedAt": {
"format": "date-time",
"type": "string"
}
},
"required": [
"_id",
"userId",
"name",
"slug",
"status",
"deletedAt",
"createdAt",
"updatedAt"
]
}Object
| Field | Type | Required / constraints |
|---|
{
"type": "object",
"properties": {}
}UpdateProjectDto
| Field | Type | Required / constraints |
|---|---|---|
name | string | Optional. Max length: 100. |
status | string | Optional. Values: active | disabled. |
{
"type": "object",
"properties": {
"name": {
"type": "string",
"maxLength": 100
},
"status": {
"type": "string",
"enum": [
"active",
"disabled"
]
}
}
}MessageDto
| Field | Type | Required / constraints |
|---|---|---|
message | string | Required. |
{
"type": "object",
"properties": {
"message": {
"type": "string",
"example": "If eligible, an email will be sent."
}
},
"required": [
"message"
]
}CreateApiKeyDto
| Field | Type | Required / constraints |
|---|---|---|
name | string | Required. Max length: 100. |
{
"type": "object",
"properties": {
"name": {
"type": "string",
"maxLength": 100
}
},
"required": [
"name"
]
}CreatedApiKeyResponseDto
| Field | Type | Required / constraints |
|---|---|---|
_id | string | Required. |
projectId | string | Required. |
name | string | Required. |
keyPrefix | string | Required. |
lastUsedAt | string / date-time | Required. |
revokedAt | string / date-time | Required. |
createdAt | string / date-time | Required. |
apiKey | string | Required. Raw credential shown only in this creation response. Store securely. |
{
"type": "object",
"properties": {
"_id": {
"type": "string"
},
"projectId": {
"type": "string"
},
"name": {
"type": "string"
},
"keyPrefix": {
"type": "string"
},
"lastUsedAt": {
"type": "string",
"format": "date-time",
"nullable": true
},
"revokedAt": {
"type": "string",
"format": "date-time",
"nullable": true
},
"createdAt": {
"format": "date-time",
"type": "string"
},
"apiKey": {
"type": "string",
"description": "Raw credential shown only in this creation response. Store securely."
}
},
"required": [
"_id",
"projectId",
"name",
"keyPrefix",
"lastUsedAt",
"revokedAt",
"createdAt",
"apiKey"
]
}ApiKeyResponseDto
| Field | Type | Required / constraints |
|---|---|---|
_id | string | Required. |
projectId | string | Required. |
name | string | Required. |
keyPrefix | string | Required. |
lastUsedAt | string / date-time | Required. |
revokedAt | string / date-time | Required. |
createdAt | string / date-time | Required. |
{
"type": "object",
"properties": {
"_id": {
"type": "string"
},
"projectId": {
"type": "string"
},
"name": {
"type": "string"
},
"keyPrefix": {
"type": "string"
},
"lastUsedAt": {
"type": "string",
"format": "date-time",
"nullable": true
},
"revokedAt": {
"type": "string",
"format": "date-time",
"nullable": true
},
"createdAt": {
"format": "date-time",
"type": "string"
}
},
"required": [
"_id",
"projectId",
"name",
"keyPrefix",
"lastUsedAt",
"revokedAt",
"createdAt"
]
}ImageResponseDto
| Field | Type | Required / constraints |
|---|---|---|
_id | string | Required. |
projectId | string | Required. |
sourceType | string | Required. Values: upload. |
originalName | string | Required. |
bytes | number | Required. |
sha256 | string | Required. |
metadata | ImageMetadataDto | Required. |
status | string | Required. Values: ready. |
createdAt | string / date-time | Required. |
updatedAt | string / date-time | Required. |
{
"type": "object",
"properties": {
"_id": {
"type": "string"
},
"projectId": {
"type": "string"
},
"sourceType": {
"type": "string",
"enum": [
"upload"
]
},
"originalName": {
"type": "string"
},
"bytes": {
"type": "number"
},
"sha256": {
"type": "string"
},
"metadata": {
"$ref": "#/components/schemas/ImageMetadataDto"
},
"status": {
"type": "string",
"enum": [
"ready"
]
},
"createdAt": {
"format": "date-time",
"type": "string"
},
"updatedAt": {
"format": "date-time",
"type": "string"
}
},
"required": [
"_id",
"projectId",
"sourceType",
"originalName",
"bytes",
"sha256",
"metadata",
"status",
"createdAt",
"updatedAt"
]
}ImageMetadataDto
| Field | Type | Required / constraints |
|---|---|---|
format | string | Required. Values: jpeg | png | webp | avif | gif | svg. |
mimeType | string | Required. |
width | number | Required. |
height | number | Required. |
frames | number | Required. |
pixelCount | number | Required. |
hasAlpha | boolean | Required. |
orientation | number | Required. |
{
"type": "object",
"properties": {
"format": {
"type": "string",
"enum": [
"jpeg",
"png",
"webp",
"avif",
"gif",
"svg"
]
},
"mimeType": {
"type": "string"
},
"width": {
"type": "number"
},
"height": {
"type": "number"
},
"frames": {
"type": "number"
},
"pixelCount": {
"type": "number"
},
"hasAlpha": {
"type": "boolean"
},
"orientation": {
"type": "number",
"nullable": true
}
},
"required": [
"format",
"mimeType",
"width",
"height",
"frames",
"pixelCount",
"hasAlpha",
"orientation"
]
}TransformationResponseDto
| Field | Type | Required / constraints |
|---|---|---|
_id | string | Required. |
projectId | string | Required. |
imageId | string | Required. |
sourceHash | string | Required. |
transformHash | string | Required. |
spec | object | Required. Normalized options; omitted dimensions/effects are null. Rotation is normalized to 0–270 degrees. |
mode | string | Required. Values: PERSIST | CACHE | EPHEMERAL. |
bytes | number | Required. |
processingMs | number | Required. |
status | string | Required. Values: ready | deleting. |
sha256 | string | Required. |
metadata | ImageMetadataDto | Required. |
expiresAt | string / date-time | Required. |
createdAt | string / date-time | Required. |
{
"type": "object",
"properties": {
"_id": {
"type": "string"
},
"projectId": {
"type": "string"
},
"imageId": {
"type": "string",
"nullable": true
},
"sourceHash": {
"type": "string"
},
"transformHash": {
"type": "string"
},
"spec": {
"type": "object",
"additionalProperties": false,
"description": "Normalized options; omitted dimensions/effects are null. Rotation is normalized to 0–270 degrees.",
"required": [
"width",
"height",
"fit",
"crop",
"format",
"quality",
"rotate",
"flip",
"flop",
"optimize",
"stripMetadata",
"grayscale",
"negate",
"blur",
"sharpen",
"brightness",
"saturation",
"hue",
"trim",
"extend",
"background",
"position"
],
"properties": {
"width": {
"type": "integer",
"minimum": 1,
"maximum": 10000,
"nullable": true
},
"height": {
"type": "integer",
"minimum": 1,
"maximum": 10000,
"nullable": true
},
"fit": {
"type": "string",
"enum": [
"cover",
"contain",
"inside",
"fill"
],
"description": "Default cover when width and height are provided, otherwise inside. cover/contain/fill require both dimensions."
},
"crop": {
"type": "object",
"required": [
"left",
"top",
"width",
"height"
],
"additionalProperties": false,
"properties": {
"left": {
"type": "integer",
"minimum": 0,
"maximum": 25000000
},
"top": {
"type": "integer",
"minimum": 0,
"maximum": 25000000
},
"width": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"height": {
"type": "integer",
"minimum": 1,
"maximum": 10000
}
},
"nullable": true
},
"format": {
"type": "string",
"enum": [
"jpeg",
"png",
"webp",
"avif",
"gif"
],
"default": "webp"
},
"quality": {
"type": "integer",
"minimum": 1,
"maximum": 100,
"default": 80
},
"rotate": {
"type": "integer",
"enum": [
0,
90,
180,
270
]
},
"flip": {
"type": "boolean",
"default": false,
"description": "Mirror vertically (top to bottom)."
},
"flop": {
"type": "boolean",
"default": false,
"description": "Mirror horizontally (left to right)."
},
"optimize": {
"type": "boolean",
"default": true
},
"stripMetadata": {
"type": "boolean",
"enum": [
true
],
"default": true,
"description": "Metadata is always stripped. Only true is accepted."
},
"grayscale": {
"type": "boolean",
"default": false,
"description": "Convert to greyscale when true."
},
"negate": {
"type": "boolean",
"default": false,
"description": "Invert colour channels when true; alpha is preserved unchanged."
},
"blur": {
"type": "number",
"minimum": 0.3,
"maximum": 10,
"description": "Gaussian blur sigma. Omit to skip blur.",
"example": 1.5,
"nullable": true
},
"sharpen": {
"type": "number",
"minimum": 0.5,
"maximum": 5,
"description": "Sharpen sigma. Omit to skip sharpen.",
"example": 1,
"nullable": true
},
"brightness": {
"type": "number",
"minimum": 0,
"maximum": 3,
"description": "Modulate brightness multiplier (1 = unchanged). Omit to leave brightness alone.",
"example": 1.1,
"nullable": true
},
"saturation": {
"type": "number",
"minimum": 0,
"maximum": 3,
"description": "Modulate saturation multiplier (1 = unchanged). Omit to leave saturation alone.",
"example": 0.8,
"nullable": true
},
"hue": {
"type": "integer",
"minimum": -180,
"maximum": 180,
"description": "Hue rotation in degrees. Omit to leave hue alone.",
"example": 30,
"nullable": true
},
"trim": {
"type": "object",
"nullable": true,
"additionalProperties": false,
"required": [
"threshold"
],
"properties": {
"threshold": {
"type": "integer",
"minimum": 1,
"maximum": 100
}
}
},
"extend": {
"type": "object",
"additionalProperties": false,
"required": [
"top",
"right",
"bottom",
"left"
],
"description": "Padding in pixels after effects. Each side 0–MAX_OUTPUT_DIMENSION; totals capped; at least one side > 0.",
"properties": {
"top": {
"type": "integer",
"minimum": 0,
"maximum": 10000
},
"right": {
"type": "integer",
"minimum": 0,
"maximum": 10000
},
"bottom": {
"type": "integer",
"minimum": 0,
"maximum": 10000
},
"left": {
"type": "integer",
"minimum": 0,
"maximum": 10000
}
},
"nullable": true
},
"background": {
"type": "string",
"pattern": "^#([0-9A-Fa-f]{3}|[0-9A-Fa-f]{6})$",
"default": "#ffffff",
"description": "Hex colour for contain letterbox, extend padding, and JPEG flatten. Default #ffffff matches legacy behaviour.",
"example": "#ffffff"
},
"position": {
"type": "string",
"enum": [
"center",
"entropy",
"attention"
],
"default": "center",
"description": "Resize focal position (mainly for cover). Default center matches legacy Sharp centre."
}
}
},
"mode": {
"type": "string",
"enum": [
"PERSIST",
"CACHE",
"EPHEMERAL"
]
},
"bytes": {
"type": "number"
},
"processingMs": {
"type": "number"
},
"status": {
"type": "string",
"enum": [
"ready",
"deleting"
]
},
"sha256": {
"type": "string"
},
"metadata": {
"$ref": "#/components/schemas/ImageMetadataDto"
},
"expiresAt": {
"format": "date-time",
"type": "string",
"nullable": true
},
"createdAt": {
"format": "date-time",
"type": "string"
}
},
"required": [
"_id",
"projectId",
"imageId",
"sourceHash",
"transformHash",
"spec",
"mode",
"bytes",
"processingMs",
"status",
"sha256",
"metadata",
"expiresAt",
"createdAt"
]
}TransformRequestDto
| Field | Type | Required / constraints |
|---|---|---|
imageId | string | Optional. Exactly one of imageId or url is required. |
url | string | Optional. Public HTTP(S) image URL; each request revalidates and fetches it. |
mode | string | Optional. Values: PERSIST | CACHE | EPHEMERAL. Default: "CACHE". |
maxOutputBytes | number | Optional. Min: 1. Max: 104857600. Output byte ceiling reserved before work; actual bytes are committed. |
transform | object | Optional. |
{
"type": "object",
"properties": {
"imageId": {
"type": "string",
"description": "Exactly one of imageId or url is required."
},
"url": {
"type": "string",
"description": "Public HTTP(S) image URL; each request revalidates and fetches it."
},
"mode": {
"type": "string",
"enum": [
"PERSIST",
"CACHE",
"EPHEMERAL"
],
"default": "CACHE"
},
"maxOutputBytes": {
"type": "number",
"description": "Output byte ceiling reserved before work; actual bytes are committed.",
"minimum": 1,
"maximum": 104857600
},
"transform": {
"type": "object",
"additionalProperties": false,
"properties": {
"width": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"height": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"fit": {
"type": "string",
"enum": [
"cover",
"contain",
"inside",
"fill"
],
"description": "Default cover when width and height are provided, otherwise inside. cover/contain/fill require both dimensions."
},
"crop": {
"type": "object",
"required": [
"left",
"top",
"width",
"height"
],
"additionalProperties": false,
"properties": {
"left": {
"type": "integer",
"minimum": 0,
"maximum": 25000000
},
"top": {
"type": "integer",
"minimum": 0,
"maximum": 25000000
},
"width": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"height": {
"type": "integer",
"minimum": 1,
"maximum": 10000
}
}
},
"format": {
"type": "string",
"enum": [
"jpeg",
"png",
"webp",
"avif",
"gif"
],
"default": "webp"
},
"quality": {
"type": "integer",
"minimum": 1,
"maximum": 100,
"default": 80
},
"rotate": {
"type": "integer",
"enum": [
-360,
-270,
-180,
-90,
0,
90,
180,
270,
360
],
"default": 0
},
"flip": {
"type": "boolean",
"default": false,
"description": "Mirror vertically (top to bottom)."
},
"flop": {
"type": "boolean",
"default": false,
"description": "Mirror horizontally (left to right)."
},
"optimize": {
"type": "boolean",
"default": true
},
"stripMetadata": {
"type": "boolean",
"enum": [
true
],
"default": true,
"description": "Metadata is always stripped. Only true is accepted."
},
"grayscale": {
"type": "boolean",
"default": false,
"description": "Convert to greyscale when true."
},
"negate": {
"type": "boolean",
"default": false,
"description": "Invert colour channels when true; alpha is preserved unchanged."
},
"blur": {
"type": "number",
"minimum": 0.3,
"maximum": 10,
"description": "Gaussian blur sigma. Omit to skip blur.",
"example": 1.5
},
"sharpen": {
"type": "number",
"minimum": 0.5,
"maximum": 5,
"description": "Sharpen sigma. Omit to skip sharpen.",
"example": 1
},
"brightness": {
"type": "number",
"minimum": 0,
"maximum": 3,
"description": "Modulate brightness multiplier (1 = unchanged). Omit to leave brightness alone.",
"example": 1.1
},
"saturation": {
"type": "number",
"minimum": 0,
"maximum": 3,
"description": "Modulate saturation multiplier (1 = unchanged). Omit to leave saturation alone.",
"example": 0.8
},
"hue": {
"type": "integer",
"minimum": -180,
"maximum": 180,
"description": "Hue rotation in degrees. Omit to leave hue alone.",
"example": 30
},
"trim": {
"description": "Trim near-background borders after orientation. `true` uses threshold 10; or `{ threshold: 1–100 }`.",
"oneOf": [
{
"type": "boolean",
"enum": [
true
]
},
{
"type": "object",
"additionalProperties": false,
"required": [
"threshold"
],
"properties": {
"threshold": {
"type": "integer",
"minimum": 1,
"maximum": 100
}
}
}
]
},
"extend": {
"type": "object",
"additionalProperties": false,
"required": [
"top",
"right",
"bottom",
"left"
],
"description": "Padding in pixels after effects. Each side 0–MAX_OUTPUT_DIMENSION; totals capped; at least one side > 0.",
"properties": {
"top": {
"type": "integer",
"minimum": 0,
"maximum": 10000
},
"right": {
"type": "integer",
"minimum": 0,
"maximum": 10000
},
"bottom": {
"type": "integer",
"minimum": 0,
"maximum": 10000
},
"left": {
"type": "integer",
"minimum": 0,
"maximum": 10000
}
}
},
"background": {
"type": "string",
"pattern": "^#([0-9A-Fa-f]{3}|[0-9A-Fa-f]{6})$",
"default": "#ffffff",
"description": "Hex colour for contain letterbox, extend padding, and JPEG flatten. Default #ffffff matches legacy behaviour.",
"example": "#ffffff"
},
"position": {
"type": "string",
"enum": [
"center",
"entropy",
"attention"
],
"default": "center",
"description": "Resize focal position (mainly for cover). Default center matches legacy Sharp centre."
}
}
}
},
"additionalProperties": false,
"oneOf": [
{
"required": [
"imageId"
]
},
{
"required": [
"url"
]
}
]
}QrGenerateDto
| Field | Type | Required / constraints |
|---|---|---|
content | string | Required. Min length: 1. Max length: 2048. Text to encode. Also subject to the configured UTF-8 byte limit (default 2048 bytes). |
format | string | Optional. Values: png | svg. Default: "png". |
size | integer | Optional. Default: 256. Min: 128. Max: 1024. Output edge in pixels; configured limits may be lower. |
margin | integer | Optional. Default: 2. Min: 0. Max: 16. Quiet-zone margin in modules. |
errorCorrection | string | Optional. Values: L | M | Q | H. Default: "M". Error correction level: low, medium, quartile, high. |
foreground | string | Optional. Default: "#000000". Foreground hex colour (#RGB or #RRGGBB). |
background | string | Optional. Default: "#ffffff". Background hex colour (#RGB or #RRGGBB). |
{
"type": "object",
"properties": {
"content": {
"type": "string",
"minLength": 1,
"maxLength": 2048,
"example": "https://example.com",
"description": "Text to encode. Also subject to the configured UTF-8 byte limit (default 2048 bytes)."
},
"format": {
"type": "string",
"enum": [
"png",
"svg"
],
"default": "png"
},
"size": {
"type": "integer",
"minimum": 128,
"maximum": 1024,
"default": 256,
"description": "Output edge in pixels; configured limits may be lower."
},
"margin": {
"type": "integer",
"minimum": 0,
"maximum": 16,
"default": 2,
"description": "Quiet-zone margin in modules."
},
"errorCorrection": {
"type": "string",
"enum": [
"L",
"M",
"Q",
"H"
],
"default": "M",
"description": "Error correction level: low, medium, quartile, high."
},
"foreground": {
"type": "string",
"default": "#000000",
"pattern": "^#([0-9A-Fa-f]{3}|[0-9A-Fa-f]{6})$",
"description": "Foreground hex colour (#RGB or #RRGGBB)."
},
"background": {
"type": "string",
"default": "#ffffff",
"pattern": "^#([0-9A-Fa-f]{3}|[0-9A-Fa-f]{6})$",
"description": "Background hex colour (#RGB or #RRGGBB)."
}
},
"required": [
"content"
],
"additionalProperties": false
}BarcodeGenerateDto
| Field | Type | Required / constraints |
|---|---|---|
type | string | Required. Values: code128 | code39 | ean13 | ean8 | upca | itf14. Barcode symbology. |
content | string | Required. Min length: 1. Max length: 80. Text to encode (a string preserves leading zeroes). code128: 1–80 characters; code39: 1–48 uppercase letters/digits or - . space $ / + %. ean13: 12/13 digits; ean8: 7/8; upca: 11/12; itf14: 13/14. Omit the check digit to compute it; supplied check digits must be valid. |
format | string | Optional. Values: png | svg. Default: "png". |
scale | integer | Optional. Default: 2. Min: 1. Max: 6. Integer rendering scale factor. |
height | integer | Optional. Default: 10. Min: 4. Max: 40. Bar height in millimetres before scaling. |
includeText | boolean | Optional. Default: true. Display human-readable content below the bars. |
foreground | string | Optional. Default: "#000000". Foreground hex colour (#RGB or #RRGGBB). |
background | string | Optional. Default: "#ffffff". Background hex colour (#RGB or #RRGGBB). |
{
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"code128",
"code39",
"ean13",
"ean8",
"upca",
"itf14"
],
"example": "code128",
"description": "Barcode symbology."
},
"content": {
"type": "string",
"minLength": 1,
"maxLength": 80,
"example": "IMAZEO-2026",
"description": "Text to encode (a string preserves leading zeroes). code128: 1–80 characters; code39: 1–48 uppercase letters/digits or - . space $ / + %. ean13: 12/13 digits; ean8: 7/8; upca: 11/12; itf14: 13/14. Omit the check digit to compute it; supplied check digits must be valid."
},
"format": {
"type": "string",
"enum": [
"png",
"svg"
],
"default": "png"
},
"scale": {
"type": "integer",
"minimum": 1,
"maximum": 6,
"default": 2,
"description": "Integer rendering scale factor."
},
"height": {
"type": "integer",
"minimum": 4,
"maximum": 40,
"default": 10,
"description": "Bar height in millimetres before scaling."
},
"includeText": {
"type": "boolean",
"default": true,
"description": "Display human-readable content below the bars."
},
"foreground": {
"type": "string",
"default": "#000000",
"pattern": "^#([0-9A-Fa-f]{3}|[0-9A-Fa-f]{6})$",
"description": "Foreground hex colour (#RGB or #RRGGBB)."
},
"background": {
"type": "string",
"default": "#ffffff",
"pattern": "^#([0-9A-Fa-f]{3}|[0-9A-Fa-f]{6})$",
"description": "Background hex colour (#RGB or #RRGGBB)."
}
},
"required": [
"type",
"content"
],
"additionalProperties": false
}PdfInfoResponseDto
| Field | Type | Required / constraints |
|---|---|---|
pageCount | number | Required. |
encrypted | boolean | Required. |
pages | PdfPageInfoDto[] | Required. |
{
"type": "object",
"properties": {
"pageCount": {
"type": "number"
},
"encrypted": {
"type": "boolean"
},
"pages": {
"type": "array",
"items": {
"$ref": "#/components/schemas/PdfPageInfoDto"
}
}
},
"required": [
"pageCount",
"encrypted",
"pages"
]
}PdfPageInfoDto
| Field | Type | Required / constraints |
|---|---|---|
pageNumber | integer | Required. Min: 1. |
width | number | Required. Page width in PDF points at scale 1 (72 points per inch). |
height | number | Required. Page height in PDF points at scale 1 (72 points per inch). |
{
"type": "object",
"properties": {
"pageNumber": {
"type": "integer",
"minimum": 1
},
"width": {
"type": "number",
"description": "Page width in PDF points at scale 1 (72 points per inch)."
},
"height": {
"type": "number",
"description": "Page height in PDF points at scale 1 (72 points per inch)."
}
},
"required": [
"pageNumber",
"width",
"height"
]
}PdfRenderResponseDto
| Field | Type | Required / constraints |
|---|---|---|
pages | PdfRenderPageDto[] | Required. |
{
"type": "object",
"properties": {
"pages": {
"type": "array",
"items": {
"$ref": "#/components/schemas/PdfRenderPageDto"
}
}
},
"required": [
"pages"
]
}PdfRenderPageDto
| Field | Type | Required / constraints |
|---|---|---|
pageNumber | number | Required. |
width | number | Required. |
height | number | Required. |
contentType | string | Required. |
data | string / byte | Required. Base64-encoded image bytes (without a data-URL prefix). |
{
"type": "object",
"properties": {
"pageNumber": {
"type": "number"
},
"width": {
"type": "number"
},
"height": {
"type": "number"
},
"contentType": {
"type": "string"
},
"data": {
"type": "string",
"format": "byte",
"description": "Base64-encoded image bytes (without a data-URL prefix)."
}
},
"required": [
"pageNumber",
"width",
"height",
"contentType",
"data"
]
}ToolArtifactResponseDto
| Field | Type | Required / constraints |
|---|---|---|
_id | string | Required. |
projectId | string | Required. |
kind | string | Required. Values: qr | barcode | pdf_render | pdf_merge | pdf_extract | image_transform. |
displayName | string | Required. |
status | string | Required. Values: ready | deleting. |
bytes | number | Required. |
sha256 | string | Required. |
contentType | string | Required. |
outputType | string | Required. |
requestSnapshot | object | Required. |
sourceImageId | string | Required. |
createdAt | string / date-time | Required. |
updatedAt | string / date-time | Required. |
{
"type": "object",
"properties": {
"_id": {
"type": "string"
},
"projectId": {
"type": "string"
},
"kind": {
"type": "string",
"enum": [
"qr",
"barcode",
"pdf_render",
"pdf_merge",
"pdf_extract",
"image_transform"
]
},
"displayName": {
"type": "string"
},
"status": {
"type": "string",
"enum": [
"ready",
"deleting"
]
},
"bytes": {
"type": "number"
},
"sha256": {
"type": "string"
},
"contentType": {
"type": "string"
},
"outputType": {
"type": "string"
},
"requestSnapshot": {
"type": "object"
},
"sourceImageId": {
"type": "string",
"nullable": true
},
"createdAt": {
"format": "date-time",
"type": "string"
},
"updatedAt": {
"format": "date-time",
"type": "string"
}
},
"required": [
"_id",
"projectId",
"kind",
"displayName",
"status",
"bytes",
"sha256",
"contentType",
"outputType",
"requestSnapshot",
"sourceImageId",
"createdAt",
"updatedAt"
]
}OutputsSummaryDto
| Field | Type | Required / constraints |
|---|---|---|
total | number | Required. All listable outputs for the project. |
originals | number | Required. Ready original uploads. |
transforms | number | Required. Active pipeline transforms plus saved image transforms. |
images | number | Required. Originals plus transforms (pipeline and saved). |
qr | number | Required. |
barcode | number | Required. |
pdf | number | Required. Saved PDF tool artifacts. |
{
"type": "object",
"properties": {
"total": {
"type": "number",
"description": "All listable outputs for the project."
},
"originals": {
"type": "number",
"description": "Ready original uploads."
},
"transforms": {
"type": "number",
"description": "Active pipeline transforms plus saved image transforms."
},
"images": {
"type": "number",
"description": "Originals plus transforms (pipeline and saved)."
},
"qr": {
"type": "number"
},
"barcode": {
"type": "number"
},
"pdf": {
"type": "number",
"description": "Saved PDF tool artifacts."
}
},
"required": [
"total",
"originals",
"transforms",
"images",
"qr",
"barcode",
"pdf"
]
}UsageEventDto
| Field | Type | Required / constraints |
|---|---|---|
quantity | number | Required. |
unit | string | Required. Values: transformation | byte | image | request. |
_id | string | Required. |
userId | string | Required. |
projectId | string | Required. |
periodId | string | Required. |
subscriptionRevision | number | Required. |
termsVersion | number | Required. |
requestId | string | Required. |
type | string | Required. Values: IMAGE_UPLOADED | IMAGE_DELETED | TRANSFORMATION_PERFORMED | REMOTE_FETCH | TOOL_PERFORMED | STORAGE_ADDED | STORAGE_REMOVED | BANDWIDTH_USED. |
amount | UsageAmountDto | Required. |
createdAt | string / date-time | Required. |
committedAt | string / date-time | Required. |
{
"type": "object",
"properties": {
"quantity": {
"type": "number"
},
"unit": {
"type": "string",
"enum": [
"transformation",
"byte",
"image",
"request"
]
},
"_id": {
"type": "string"
},
"userId": {
"type": "string"
},
"projectId": {
"type": "string"
},
"periodId": {
"type": "string"
},
"subscriptionRevision": {
"type": "number"
},
"termsVersion": {
"type": "number"
},
"requestId": {
"type": "string"
},
"type": {
"type": "string",
"enum": [
"IMAGE_UPLOADED",
"IMAGE_DELETED",
"TRANSFORMATION_PERFORMED",
"REMOTE_FETCH",
"TOOL_PERFORMED",
"STORAGE_ADDED",
"STORAGE_REMOVED",
"BANDWIDTH_USED"
]
},
"amount": {
"$ref": "#/components/schemas/UsageAmountDto"
},
"createdAt": {
"format": "date-time",
"type": "string"
},
"committedAt": {
"format": "date-time",
"type": "string"
}
},
"required": [
"quantity",
"unit",
"_id",
"userId",
"projectId",
"periodId",
"subscriptionRevision",
"termsVersion",
"requestId",
"type",
"amount",
"createdAt",
"committedAt"
]
}UsageAmountDto
| Field | Type | Required / constraints |
|---|---|---|
transformations | number | Required. |
storageBytes | number | Required. |
bandwidthBytes | number | Required. |
credits | number | Required. |
{
"type": "object",
"properties": {
"transformations": {
"type": "number"
},
"storageBytes": {
"type": "number"
},
"bandwidthBytes": {
"type": "number"
},
"credits": {
"type": "number"
}
},
"required": [
"transformations",
"storageBytes",
"bandwidthBytes",
"credits"
]
}UsageActivitySeriesDto
| Field | Type | Required / constraints |
|---|---|---|
days | number | Required. Requested day window length. |
start | string / date-time | Required. |
end | string / date-time | Required. |
series | UsageActivityDayDto[] | Required. |
totals | UsageActivityTotalsDto | Required. |
{
"type": "object",
"properties": {
"days": {
"type": "number",
"description": "Requested day window length."
},
"start": {
"format": "date-time",
"type": "string"
},
"end": {
"format": "date-time",
"type": "string"
},
"series": {
"type": "array",
"items": {
"$ref": "#/components/schemas/UsageActivityDayDto"
}
},
"totals": {
"$ref": "#/components/schemas/UsageActivityTotalsDto"
}
},
"required": [
"days",
"start",
"end",
"series",
"totals"
]
}UsageActivityDayDto
| Field | Type | Required / constraints |
|---|---|---|
date | string | Required. UTC calendar day as YYYY-MM-DD. |
transformations | number | Required. Committed image transformation events that day. |
other | number | Required. Other committed processing events (tools and remote fetches) that day. |
{
"type": "object",
"properties": {
"date": {
"type": "string",
"description": "UTC calendar day as YYYY-MM-DD.",
"example": "2026-09-14"
},
"transformations": {
"type": "number",
"description": "Committed image transformation events that day."
},
"other": {
"type": "number",
"description": "Other committed processing events (tools and remote fetches) that day."
}
},
"required": [
"date",
"transformations",
"other"
]
}UsageActivityTotalsDto
| Field | Type | Required / constraints |
|---|---|---|
transformations | number | Required. |
other | number | Required. |
{
"type": "object",
"properties": {
"transformations": {
"type": "number"
},
"other": {
"type": "number"
}
},
"required": [
"transformations",
"other"
]
}Documentation reviewed 2026-10-03 against development backend e298ec7. Verify your deployment’s API origin and limits before integrating.
