{"openapi":"3.0.3","info":{"title":"radixAPI","description":"The radixAPI is a REST-JSON API acording the OpenAPI specification. Every endpoint response with a application/json content-type.\n\nradixAPI is designed to prepare, fix, check and create PDF files. It has the following features\n\n- usage of any callas pdfToobox action\n- usage of callas pdfToolbox profiles (.kfpx) - supporting\n  - variables\n  - various reports\n- support for any http or https URL to retrieve files (input)\n- support for S3 storage (input and output)\n- intent based fixing and preflighting using the optional radixPreflight addition (based on JSON job definition)\n- usage of callas pdfChip to create PDF files or stamp marks on top PDF files\n- define marks using a JSON based page description definition using the optional radixCreate addition\n- support to create images, previews or thumbnaisl\n- support to split and merge PDFs\n- support to compare 2 PDF files\n- support to convert office documents to PDF and vice versa (requires a separate compareAPI account and token)\n","contact":{"email":"info@prepress-digital.com"},"version":"2.2.0"},"servers":[{"url":"/","description":"Current origin (same host/port as Swagger UI)"}],"tags":[{"name":"Authentication","description":"An AccessToken is required for the following routes /users, /credentials, /containers, /repositories, /resources, /workflows and /marketing. This API is using a _Bearer_ authentication.\n\nSteps to use radix-API:\n\n1. login with your radix credentials\n2. store the bearer token\n-3 perform required callas using the _Bearer_ token for authentication\n-4 refresh the token when expired"},{"name":"User","description":"These endpoints allow to get and change info about the current user."},{"name":"Credential","description":"Credentials are required when accesing external storages (e.g.: S3or min.io). The stored credentials will be used when loading or saving from a supported cloud storage."},{"name":"Container","description":"Containers are used to store uploaded files as well as processed results. A container gets created automatically. When a workflow is done the created resources can get downloaded and deleted from the container in various ways. A client should delete a container when all files are downloaded and the files are no longer needed.\n\nContainers are deleted automatically after a defined period of time."},{"name":"Repository","description":"Repositories are used to to store various resources. Repositories can be either public or private. Every resources entry allows to define a unque alias. To use files from a repository, use the resouce URI syntax `resource://<alias>/<filename>`. A user may define any number of repositores to upload files into. Example of such files are preflight profiles, overlay PDFs or report templates.\n\nThe Radix API supports uploading single files as well as ZIP-files. The ZIP-files get unpacked automatically in the repository container.\n\nNOTE: When a folder gets zipped on MAC OS, all files in that folder must be selected and zipped and not the folder itself. Otherwise the parent folder is stored in the repository folder and must be define as subfolder in the resources URI."},{"name":"Resource","description":"Resources are files that are either uploaded or get created during a process. Every resource is created in the context of either a container or a repository. This interface allows work with individual resources."},{"name":"Workflow","description":"A workflow allows to defines one or more processes that shall get performed on defined resources.\n\nThe required input resource has to be defined as link for downloading or has to get uploaded via a form data object.\n\n- Links to resources have to be defined as valid URI.\n- in addition to http:// and https://, the radixApi also supports s3://<bucket>/, radix://{containerUUID}/, common://, repository://{repositoryUUID}/ and repository://{alias}/ URI definitions\n- /byUpload allows to send files as binary files in the body as form-data fields. In that case, the URI has to define the form-data key used for the uploaded file.\n\nThe process object requires the the following properties:\n\n- node: defines the type of the node/process\n- customId: custom id for further processing\n- input: defines the input resource(s)\n- output: defines the expected and required output resources\n- data: additional properties depending on the defined node\n- children: defines the following process(es)\n\nWhen a workflow is done, the resulting resources are listed in response when querying the workflow using the workflow Id by the client or when receiving a callback.\n\nA typical workflow has an input io-node, a process node and an optional output io-node (if results shall get uploaded to a supported cloud storage sevice)."},{"name":"Marketing Endpoint","description":"The use of these endpoints is the preferred way to use this API. Their purpose is to simplify the integration by keeping out the complexity of defining specific workflows and processes. All required info is provided by query parameter and payloads. Some endpoints also support form-data to submit files."},{"name":"Healthcheck","description":"Healthcheck endpoint is used to check the health and availibility of the service. There is a separate healthcheck api available that gives an overview of all services. We recommend to use this instead."},{"name":"EnvironmentVariable","description":"EnvironmentVariable endpoint is used to define setting for the API, as well as specific supported tools."},{"name":"License","description":"License management endpoints. A WCLID file provided by the local dealer must be uploaded to activate the license. Once activated, the licensed modules can be retrieved."},{"name":"AuditLog","description":"Audit log endpoints for reading workflow and process logging entries from the configured logging backend."},{"name":"Webhook DLQ","description":"Webhook dead-letter queue endpoints."},{"name":"Email Log","description":"Administrator endpoints for viewing, filtering, retrying, and deleting outgoing email delivery records. These endpoints require the Keycloak admin role and are license-exempt."}],"paths":{"/api/auth/login":{"post":{"operationId":"KeycloakController_keycloakLogin","summary":"Login with your radix credentials","description":"The AccessToken as well as the RefreshToken can be retrieved by performing a login call with the user name and the password as payload. These tokens are returned as object ids of the response body.","parameters":[{"name":"refreshLicense","required":false,"in":"query","description":"When `true` or `1`, refreshes the user's license after successful authentication.","schema":{"type":"string","enum":["true","false","1","0"]}},{"name":"interactive_login","required":false,"in":"query","description":"When `true` or `1`, enables the interactive login flow. If two-factor authentication is enabled for the user, the response can be a 2FA setup or verification challenge instead of final tokens.","schema":{"type":"string","enum":["true","false","1","0"]}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LoginRequest"}}}},"responses":{"201":{"description":"Authentication token response, or a two-factor setup/challenge response when `interactive_login` is enabled.","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/authResponse"},{"$ref":"#/components/schemas/TwoFactorSetupResponse"},{"$ref":"#/components/schemas/TwoFactorChallengeResponse"}]}}}},"400":{"$ref":"#/components/responses/400"},"401":{"$ref":"#/components/responses/401"},"500":{"$ref":"#/components/responses/500"}},"tags":["Authentication"],"x-license-permission":null,"x-valid-license-required":false}},"/api/auth/2fa/verify":{"post":{"operationId":"KeycloakController_verifyTwoFactor","summary":"Verify two-factor authentication.","description":"Verifies a six-digit one-time password for a pending interactive login or first-time 2FA setup. Returns the normal authentication token response when verification succeeds.","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TwoFaVerifyRequest"}}}},"responses":{"201":{"$ref":"#/components/responses/auth"},"400":{"$ref":"#/components/responses/400"},"401":{"$ref":"#/components/responses/401"},"500":{"$ref":"#/components/responses/500"}},"tags":["Authentication"],"x-license-permission":null,"x-valid-license-required":false}},"/api/auth/refresh":{"post":{"operationId":"KeycloakController_keycloakRefresh","summary":"Refresh token.","description":"In case the AccessToken expired, a new AccesToken can get generated using the provided refreshToken. The refreshToken is valid for 7 days. The AccessToken is valid for 24 hours.","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/KeycloakRefreshPayload"}}}},"responses":{"201":{"$ref":"#/components/responses/auth"},"400":{"$ref":"#/components/responses/400"},"500":{"$ref":"#/components/responses/500"}},"tags":["Authentication"],"x-license-permission":null,"x-valid-license-required":false}},"/api/auth/password/forgot":{"post":{"operationId":"KeycloakController_forgotPassword","summary":"Request a password reset link.","description":"Sends a password reset email to the user identified by `username` or `email`. The email contains a one-time link that is valid for one hour. Always returns a success response to avoid leaking whether an account exists. Rate-limited to 5 requests per minute per client.","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForgotPasswordRequest"}}}},"responses":{"201":{"description":"Reset email sent (or silently skipped when no matching user was found).","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","example":true},"message":{"type":"string","example":"If an account with that identifier exists, a password reset email has been sent."}}}}}},"400":{"$ref":"#/components/responses/400"},"429":{"$ref":"#/components/responses/429"},"500":{"$ref":"#/components/responses/500"}},"tags":["Authentication"],"x-license-permission":null,"x-valid-license-required":false}},"/api/auth/password/reset/validate":{"get":{"operationId":"KeycloakController_validatePasswordResetToken","summary":"Validate a password reset token.","description":"Checks whether a password reset token is still valid and has not expired. Use this before showing the reset-password form to the user.","parameters":[{"name":"token","in":"query","required":true,"schema":{"type":"string"},"description":"The password reset token received in the reset email."}],"responses":{"200":{"description":"Token is valid.","content":{"application/json":{"schema":{"type":"object","properties":{"valid":{"type":"boolean","example":true}}}}}},"400":{"$ref":"#/components/responses/400"},"500":{"$ref":"#/components/responses/500"}},"tags":["Authentication"],"x-license-permission":null,"x-valid-license-required":false}},"/api/auth/password/reset":{"post":{"operationId":"KeycloakController_resetPassword","summary":"Reset a user's password.","description":"Sets a new password for the user identified by the reset token. The token is consumed on success and cannot be reused. Rate-limited to 10 requests per minute per client.","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResetPasswordRequest"}}}},"responses":{"201":{"description":"Password successfully reset.","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","example":true},"message":{"type":"string","example":"Password has been reset successfully."}}}}}},"400":{"$ref":"#/components/responses/400"},"429":{"$ref":"#/components/responses/429"},"500":{"$ref":"#/components/responses/500"}},"tags":["Authentication"],"x-license-permission":null,"x-valid-license-required":false}},"/api/v1/users/license":{"get":{"operationId":"UserController_getLicese","summary":"User license.","description":"Returns the current user's license:","parameters":[],"responses":{"201":{"$ref":"#/components/responses/LicenseResponseObj"},"401":{"$ref":"#/components/responses/401"},"403":{"$ref":"#/components/responses/403"},"404":{"$ref":"#/components/responses/404"},"500":{"$ref":"#/components/responses/500"}},"tags":["User"],"security":[{"bearerAuth":[]}],"x-license-permission":null,"x-valid-license-required":false}},"/api/v1/users/profile":{"get":{"operationId":"UserController_getUser","summary":"User details.","description":"Get detail information fron current used.","parameters":[],"responses":{"201":{"$ref":"#/components/responses/UserProfileObj"},"401":{"$ref":"#/components/responses/401"},"403":{"$ref":"#/components/responses/403"},"404":{"$ref":"#/components/responses/404"},"500":{"$ref":"#/components/responses/500"}},"tags":["User"],"security":[{"bearerAuth":[]}],"x-license-permission":null,"x-valid-license-required":false},"put":{"operationId":"UserController_updateProfile","description":"Used to change password or other properties of the current user.","parameters":[],"requestBody":{"content":{"application/json":{"schema":{"properties":{"username":{"type":"string"},"password":{"type":"string"},"firstName":{"type":"string"},"lastName":{"type":"string"},"gender":{"enum":["male","female"]},"email":{"type":"string"}}}}}},"security":[{"bearerAuth":[]}],"responses":{"201":{"$ref":"#/components/responses/201"},"400":{"$ref":"#/components/responses/400"},"401":{"$ref":"#/components/responses/401"},"500":{"$ref":"#/components/responses/500"}},"tags":["User"],"x-license-permission":null,"x-valid-license-required":false,"summary":"Update current user profile."}},"/api/v1/credentials":{"get":{"operationId":"getManyBaseCredentialCrudControllerCredential","summary":"Lists all credentials of the current user.","parameters":[],"responses":{"200":{"$ref":"#/components/responses/credentialsResponseArr"},"401":{"$ref":"#/components/responses/401"},"423":{"$ref":"#/components/responses/423"},"500":{"$ref":"#/components/responses/500"}},"tags":["Credential"],"security":[{"bearerAuth":[]}],"x-license-permission":"BASE","x-valid-license-required":true},"post":{"operationId":"createOneBaseCredentialCrudControllerCredential","summary":"Creates a new credentials entry.","parameters":[],"requestBody":{"$ref":"#/components/requestBodies/credentialsPost"},"responses":{"201":{"$ref":"#/components/responses/credentialsResponseObj"},"401":{"$ref":"#/components/responses/401"},"423":{"$ref":"#/components/responses/423"},"429":{"$ref":"#/components/responses/429"},"500":{"$ref":"#/components/responses/500"}},"tags":["Credential"],"security":[{"bearerAuth":[]}],"x-license-permission":"BASE.CREDENTIALS","x-valid-license-required":true}},"/api/v1/credentials/{id}":{"get":{"operationId":"getOneBaseCredentialCrudControllerCredential","summary":"Get a specific credential entry.","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"number"}}],"responses":{"200":{"$ref":"#/components/responses/credentialsResponseObj"},"401":{"$ref":"#/components/responses/401"},"423":{"$ref":"#/components/responses/423"},"500":{"$ref":"#/components/responses/500"}},"tags":["Credential"],"security":[{"bearerAuth":[]}],"x-license-permission":"BASE","x-valid-license-required":true},"delete":{"operationId":"deleteOneBaseCredentialCrudControllerCredential","summary":"Deletes a specific credentials entry.","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"number"}}],"responses":{"204":{"$ref":"#/components/responses/204"},"401":{"$ref":"#/components/responses/401"},"423":{"$ref":"#/components/responses/423"},"500":{"$ref":"#/components/responses/500"}},"tags":["Credential"],"security":[{"bearerAuth":[]}],"x-license-permission":"BASE","x-valid-license-required":true},"patch":{"operationId":"CredentialCrudController_updateOne","summary":"Partially update a credential.","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"number"}}],"responses":{"200":{"$ref":"#/components/responses/credentialsResponseObj"},"400":{"$ref":"#/components/responses/400"},"401":{"$ref":"#/components/responses/401"},"404":{"$ref":"#/components/responses/404"},"423":{"$ref":"#/components/responses/423"},"500":{"$ref":"#/components/responses/500"}},"tags":["Credential"],"security":[{"bearerAuth":[]}],"x-license-permission":"BASE.CREDENTIALS","x-valid-license-required":true,"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CredentialDto"}}}}},"put":{"operationId":"CredentialCrudController_replaceOne","summary":"Replace a credential.","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"number"}}],"responses":{"200":{"$ref":"#/components/responses/credentialsResponseObj"},"400":{"$ref":"#/components/responses/400"},"401":{"$ref":"#/components/responses/401"},"404":{"$ref":"#/components/responses/404"},"423":{"$ref":"#/components/responses/423"},"500":{"$ref":"#/components/responses/500"}},"tags":["Credential"],"security":[{"bearerAuth":[]}],"x-license-permission":"BASE.CREDENTIALS","x-valid-license-required":true,"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CredentialDto"}}}}}},"/api/v1/containers":{"get":{"operationId":"getManyBaseContainerCrudControllerContainer","summary":"Get all containers of the current user as array.","responses":{"200":{"$ref":"#/components/responses/containerResponseArr"},"401":{"$ref":"#/components/responses/401"},"423":{"$ref":"#/components/responses/423"},"500":{"$ref":"#/components/responses/500"}},"tags":["Container"],"security":[{"bearerAuth":[]}],"x-license-permission":"BASE","x-valid-license-required":true},"post":{"operationId":"createOneBaseContainerCrudControllerContainer","summary":"Creates a new container entry.","parameters":[],"responses":{"201":{"$ref":"#/components/responses/containerResponseObj"},"401":{"$ref":"#/components/responses/401"},"423":{"$ref":"#/components/responses/423"},"500":{"$ref":"#/components/responses/500"}},"tags":["Container"],"security":[{"bearerAuth":[]}],"x-license-permission":"BASE.WORKFLOW","x-valid-license-required":true}},"/api/v1/containers/{id}":{"get":{"operationId":"getOneBaseContainerCrudControllerContainer","summary":"Lists a specific container of the current user.","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"number"}}],"responses":{"200":{"$ref":"#/components/responses/containerResponseObj"},"401":{"$ref":"#/components/responses/401"},"423":{"$ref":"#/components/responses/423"},"500":{"$ref":"#/components/responses/500"}},"tags":["Container"],"security":[{"bearerAuth":[]}],"x-license-permission":"BASE","x-valid-license-required":true},"delete":{"operationId":"deleteOneBaseContainerCrudControllerContainer","summary":"Deletes a specific container.","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"number"}}],"responses":{"204":{"$ref":"#/components/responses/204"},"401":{"$ref":"#/components/responses/401"},"404":{"$ref":"#/components/responses/404"},"423":{"$ref":"#/components/responses/423"},"500":{"$ref":"#/components/responses/500"}},"tags":["Container"],"security":[{"bearerAuth":[]}],"x-license-permission":"BASE.WORKFLOW","x-valid-license-required":true},"patch":{"operationId":"ContainerCrudController_updateOne","summary":"Partially update a container.","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"number"}}],"responses":{"200":{"$ref":"#/components/responses/containerResponseObj"},"400":{"$ref":"#/components/responses/400"},"401":{"$ref":"#/components/responses/401"},"404":{"$ref":"#/components/responses/404"},"423":{"$ref":"#/components/responses/423"},"500":{"$ref":"#/components/responses/500"}},"tags":["Container"],"security":[{"bearerAuth":[]}],"x-license-permission":"BASE.WORKFLOW","x-valid-license-required":true,"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Container"}}}}},"put":{"operationId":"ContainerCrudController_replaceOne","summary":"Replace a container.","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"number"}}],"responses":{"200":{"$ref":"#/components/responses/containerResponseObj"},"400":{"$ref":"#/components/responses/400"},"401":{"$ref":"#/components/responses/401"},"404":{"$ref":"#/components/responses/404"},"423":{"$ref":"#/components/responses/423"},"500":{"$ref":"#/components/responses/500"}},"tags":["Container"],"security":[{"bearerAuth":[]}],"x-license-permission":"BASE.WORKFLOW","x-valid-license-required":true,"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Container"}}}}}},"/api/v1/containers/{id}/download":{"get":{"operationId":"ContainerCrudController_download","summary":"Downloads a specific container of the current user.","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}}],"responses":{"200":{"$ref":"#/components/responses/200"},"401":{"$ref":"#/components/responses/401"},"404":{"$ref":"#/components/responses/404"},"423":{"$ref":"#/components/responses/423"},"500":{"$ref":"#/components/responses/500"}},"tags":["Container"],"security":[{"bearerAuth":[]}],"x-license-permission":"BASE","x-valid-license-required":true}},"/api/v1/containers/{id}/download/{file}":{"get":{"operationId":"ContainerCrudController_downloadFile","summary":"Downloads a specific file from a certain container of the current user.","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}},{"name":"file","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"$ref":"#/components/responses/200"},"401":{"$ref":"#/components/responses/401"},"404":{"$ref":"#/components/responses/404"},"500":{"$ref":"#/components/responses/500"}},"tags":["Container"],"security":[{"bearerAuth":[]}],"x-license-permission":null,"x-valid-license-required":false}},"/api/v1/environmentVariable":{"description":"Settings for the various services and endpoints","post":{"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EnvironmentVariable"},"example":{"name":"worker","key":"debug","value":"false"}}}},"responses":{"201":{"$ref":"#/components/responses/environmentVariableResponse"},"401":{"$ref":"#/components/responses/401"},"423":{"$ref":"#/components/responses/423"},"429":{"$ref":"#/components/responses/429"},"500":{"$ref":"#/components/responses/500"}},"tags":["EnvironmentVariable"],"security":[{"bearerAuth":[]}],"x-license-permission":"BASE","x-valid-license-required":true},"get":{"responses":{"200":{"$ref":"#/components/responses/environmentVariableResponseArr"},"401":{"$ref":"#/components/responses/401"},"423":{"$ref":"#/components/responses/423"},"429":{"$ref":"#/components/responses/429"},"500":{"$ref":"#/components/responses/500"}},"tags":["EnvironmentVariable"],"security":[{"bearerAuth":[]}],"x-license-permission":"BASE","x-valid-license-required":true}},"/api/v1/environmentVariable/{id}":{"get":{"summary":"Lists a specific environment variable.","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"number"}}],"responses":{"200":{"$ref":"#/components/responses/environmentVariableResponse"},"401":{"$ref":"#/components/responses/401"},"423":{"$ref":"#/components/responses/423"},"429":{"$ref":"#/components/responses/429"},"500":{"$ref":"#/components/responses/500"}},"tags":["EnvironmentVariable"],"security":[{"bearerAuth":[]}],"x-license-permission":"BASE","x-valid-license-required":true},"delete":{"summary":"Deletes a specific environment variable.","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"number"}}],"responses":{"204":{"$ref":"#/components/responses/204"},"401":{"$ref":"#/components/responses/401"},"404":{"$ref":"#/components/responses/404"},"423":{"$ref":"#/components/responses/423"},"500":{"$ref":"#/components/responses/500"}},"tags":["EnvironmentVariable"],"security":[{"bearerAuth":[]}],"x-license-permission":"BASE","x-valid-license-required":true},"put":{"summary":"Replace all entries of an environment variable.","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EnvironmentVariable"},"example":{"name":"worker","key":"debug","value":"false"}}}},"responses":{"201":{"$ref":"#/components/responses/environmentVariableResponse"},"401":{"$ref":"#/components/responses/401"},"423":{"$ref":"#/components/responses/423"}},"tags":["EnvironmentVariable"],"security":[{"bearerAuth":[]}],"x-license-permission":"BASE","x-valid-license-required":true},"patch":{"summary":"Replace the value of an environment variable.","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EnvironmentVariable"},"example":{"value":"false"}}}},"responses":{"201":{"$ref":"#/components/responses/environmentVariableResponse"},"401":{"$ref":"#/components/responses/401"},"423":{"$ref":"#/components/responses/423"},"429":{"$ref":"#/components/responses/429"},"500":{"$ref":"#/components/responses/500"}},"tags":["EnvironmentVariable"],"security":[{"bearerAuth":[]}],"x-license-permission":"BASE","x-valid-license-required":true}},"/api/v1/repositories":{"get":{"operationId":"getManyBaseRepositoryCrudControllerRepository","summary":"Lists all repositores of the current user.","parameters":[{"name":"join","in":"query","required":false,"description":"When defined, the response adds the resources of the repository.","schema":{"type":"string","enum":["resources"]}}],"responses":{"200":{"$ref":"#/components/responses/repositoryResponseArr"},"401":{"$ref":"#/components/responses/401"},"423":{"$ref":"#/components/responses/423"},"429":{"$ref":"#/components/responses/429"},"500":{"$ref":"#/components/responses/500"}},"tags":["Repository"],"security":[{"bearerAuth":[]}],"x-license-permission":"BASE","x-valid-license-required":true},"post":{"operationId":"createOneBaseRepositoryCrudControllerRepository","summary":"Creates a new repository.","parameters":[],"requestBody":{"$ref":"#/components/requestBodies/RepositoryPost"},"responses":{"201":{"$ref":"#/components/responses/repositoryResponseObj"},"401":{"$ref":"#/components/responses/401"},"422":{"$ref":"#/components/responses/422"},"423":{"$ref":"#/components/responses/423"},"500":{"$ref":"#/components/responses/500"}},"tags":["Repository"],"security":[{"bearerAuth":[]}],"x-license-permission":"BASE.USER","x-valid-license-required":true}},"/api/v1/repositories/{id}":{"get":{"operationId":"getOneBaseRepositoryCrudControllerRepository","summary":"Lists a specific repository of the current user.","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"integer"}},{"name":"join","in":"query","required":false,"description":"When defined, the response adds the resources of the repository.","schema":{"type":"string","enum":["resources"]}}],"responses":{"200":{"$ref":"#/components/responses/repositoryResponseObj"},"401":{"$ref":"#/components/responses/401"},"423":{"$ref":"#/components/responses/423"},"500":{"$ref":"#/components/responses/500"}},"tags":["Repository"],"security":[{"bearerAuth":[]}],"x-license-permission":"BASE","x-valid-license-required":true},"patch":{"operationId":"updateOneBaseRepositoryCrudControllerRepository","summary":"Partially update the repository.","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"number"}}],"requestBody":{"$ref":"#/components/requestBodies/RepositoryPost"},"responses":{"200":{"$ref":"#/components/responses/repositoryResponseObj"},"401":{"$ref":"#/components/responses/401"},"423":{"$ref":"#/components/responses/423"},"500":{"$ref":"#/components/responses/500"}},"tags":["Repository"],"security":[{"bearerAuth":[]}],"x-license-permission":"BASE.USER","x-valid-license-required":true},"put":{"operationId":"replaceOneBaseRepositoryCrudControllerRepository","summary":"Replace specific repository of the current user.","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"number"}}],"requestBody":{"$ref":"#/components/requestBodies/RepositoryPost"},"responses":{"200":{"$ref":"#/components/responses/repositoryResponseObj"},"401":{"$ref":"#/components/responses/401"},"423":{"$ref":"#/components/responses/423"},"500":{"$ref":"#/components/responses/500"}},"tags":["Repository"],"security":[{"bearerAuth":[]}],"x-license-permission":"BASE.USER","x-valid-license-required":true},"delete":{"operationId":"deleteOneBaseRepositoryCrudControllerRepository","summary":"Deletes a specific repository.","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"number"}}],"responses":{"204":{"$ref":"#/components/responses/204"},"401":{"$ref":"#/components/responses/401"},"404":{"$ref":"#/components/responses/404"},"423":{"$ref":"#/components/responses/423"},"500":{"$ref":"#/components/responses/500"}},"tags":["Repository"],"security":[{"bearerAuth":[]}],"x-license-permission":"BASE.USER","x-valid-license-required":true}},"/api/v1/repositories/{id}/download":{"get":{"operationId":"RepositoryCrudController_download","summary":"Downloads a specific repository as compressed zip file.","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}}],"responses":{"200":{"$ref":"#/components/responses/200"},"401":{"$ref":"#/components/responses/401"},"404":{"$ref":"#/components/responses/404"},"423":{"$ref":"#/components/responses/423"},"500":{"$ref":"#/components/responses/500"}},"tags":["Repository"],"security":[{"bearerAuth":[]}],"x-license-permission":"BASE","x-valid-license-required":true}},"/api/v1/repositories/{id}/download/{file}":{"get":{"operationId":"RepositoryCrudController_downloadFile","summary":"Download a specific file from a repository.","parameters":[{"name":"id","in":"path","required":true,"description":"The repository ID.","schema":{"type":"integer"}},{"name":"file","in":"path","required":true,"description":"The filename to download from the repository.","schema":{"type":"string"}}],"responses":{"200":{"$ref":"#/components/responses/200"},"401":{"$ref":"#/components/responses/401"},"404":{"$ref":"#/components/responses/404"},"423":{"$ref":"#/components/responses/423"},"500":{"$ref":"#/components/responses/500"}},"tags":["Repository"],"security":[{"bearerAuth":[]}],"x-license-permission":"BASE","x-valid-license-required":true}},"/api/v1/repositories/{id}/upload":{"post":{"operationId":"RepositoryCrudController_upload","summary":"Upload a resource into a repository.","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}},{"name":"customId","in":"query","required":false,"description":"Assign a custom identifier to the uploaded resource. The customId can later be used to reference this resource within workflows.","schema":{"type":"string"},"example":"config"},{"name":"keepParentFolder","in":"query","required":false,"description":"When uploading a ZIP file, preserve the parent folder structure inside the repository instead of unpacking files flat into the repository root.","schema":{"type":"boolean","default":false},"example":true},{"name":"overwrite","in":"query","required":false,"description":"Controls the behaviour when a file with the same name already exists in the repository.\n\n- `NotAllowed` *(default)* — upload is rejected with a conflict error if the file already exists.\n- `Overwrite` — the existing file is replaced in-place. The file must already exist, otherwise a 404 is returned.\n- `asNewVersion` — the uploaded file is saved alongside the existing one under a versioned name (e.g. `filename_V1.pdf`).\n- `asNewOriginalVersion` — the existing file is renamed to a versioned name and the uploaded file takes over the original name.","schema":{"type":"string","enum":["NotAllowed","Overwrite","asNewVersion","asNewOriginalVersion"],"default":"NotAllowed"},"example":"asNewOriginalVersion"}],"requestBody":{"$ref":"#/components/requestBodies/repoUpload"},"responses":{"200":{"$ref":"#/components/responses/200"},"401":{"$ref":"#/components/responses/401"},"404":{"$ref":"#/components/responses/404"},"423":{"$ref":"#/components/responses/423"},"500":{"$ref":"#/components/responses/500"}},"tags":["Repository"],"security":[{"bearerAuth":[]}],"x-license-permission":"BASE.USER","x-valid-license-required":true}},"/api/v1/resources":{"get":{"operationId":"getManyBaseResourceCrudControllerResource","summary":"Lists all resources of the current user.","parameters":[],"responses":{"200":{"$ref":"#/components/responses/resourceResponseArr"},"401":{"$ref":"#/components/responses/401"},"423":{"$ref":"#/components/responses/423"},"500":{"$ref":"#/components/responses/500"}},"tags":["Resource"],"security":[{"bearerAuth":[]}],"x-license-permission":"BASE","x-valid-license-required":true},"post":{"operationId":"createOneBaseResourceCrudControllerResource","summary":"Create a new resource.","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResourceDto"}}}},"responses":{"201":{"$ref":"#/components/responses/resourceResponseObj"},"401":{"$ref":"#/components/responses/401"},"404":{"$ref":"#/components/responses/404"},"423":{"$ref":"#/components/responses/423"},"500":{"$ref":"#/components/responses/500"}},"tags":["Resource"],"security":[{"bearerAuth":[]}],"x-license-permission":"BASE.WORKFLOW","x-valid-license-required":true}},"/api/v1/resources/{id}":{"get":{"operationId":"getOneBaseResourceCrudControllerResource","summary":"Lists a specific resource of the current user.","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"number"}}],"responses":{"200":{"$ref":"#/components/responses/resourceResponseObj"},"401":{"$ref":"#/components/responses/401"},"404":{"$ref":"#/components/responses/404"},"423":{"$ref":"#/components/responses/423"},"500":{"$ref":"#/components/responses/500"}},"tags":["Resource"],"security":[{"bearerAuth":[]}],"x-license-permission":"BASE","x-valid-license-required":true},"patch":{"operationId":"updateOneBaseResourceCrudControllerResource","summary":"Partially update specific repository of the current user.","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"number"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResourceDto"}}}},"responses":{"200":{"$ref":"#/components/responses/resourceResponseObj"},"401":{"$ref":"#/components/responses/401"},"404":{"$ref":"#/components/responses/404"},"423":{"$ref":"#/components/responses/423"},"500":{"$ref":"#/components/responses/500"}},"tags":["Resource"],"security":[{"bearerAuth":[]}],"x-license-permission":"BASE.WORKFLOW","x-valid-license-required":true},"put":{"operationId":"replaceOneBaseResourceCrudControllerResource","summary":"Replace specific resource of the current user.","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"number"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResourceDto"}}}},"responses":{"200":{"$ref":"#/components/responses/resourceResponseObj"},"401":{"$ref":"#/components/responses/401"},"404":{"$ref":"#/components/responses/404"},"423":{"$ref":"#/components/responses/423"},"500":{"$ref":"#/components/responses/500"}},"tags":["Resource"],"security":[{"bearerAuth":[]}],"x-license-permission":"BASE.WORKFLOW","x-valid-license-required":true},"delete":{"operationId":"deleteOneBaseResourceCrudControllerResource","summary":"Deletes a specific resource.","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"number"}}],"responses":{"204":{"$ref":"#/components/responses/204"},"401":{"$ref":"#/components/responses/401"},"404":{"$ref":"#/components/responses/404"},"423":{"$ref":"#/components/responses/423"},"500":{"$ref":"#/components/responses/500"}},"tags":["Resource"],"security":[{"bearerAuth":[]}],"x-license-permission":"BASE.WORKFLOW","x-valid-license-required":true}},"/api/v1/resources/bulk":{"post":{"operationId":"createManyBaseResourceCrudControllerResource","summary":"Create multiple Resources","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateManyResourceDto"}}}},"responses":{"201":{"$ref":"#/components/responses/201"},"400":{"$ref":"#/components/responses/400"},"401":{"$ref":"#/components/responses/401"},"404":{"$ref":"#/components/responses/404"},"423":{"$ref":"#/components/responses/423"},"500":{"$ref":"#/components/responses/500"}},"tags":["Resource"],"security":[{"bearerAuth":[]}],"x-license-permission":"BASE.WORKFLOW","x-valid-license-required":true}},"/api/v1/workflows":{"get":{"operationId":"getManyBaseWorkflowCrudControllerWorkflow","summary":"Lists all workflows of the current user.","parameters":[],"responses":{"200":{"$ref":"#/components/responses/workflowResponseArr"},"401":{"$ref":"#/components/responses/401"},"423":{"$ref":"#/components/responses/423"},"500":{"$ref":"#/components/responses/500"}},"tags":["Workflow"],"security":[{"bearerAuth":[]}],"x-license-permission":"BASE","x-valid-license-required":true},"post":{"operationId":"createOneBaseWorkflowCrudControllerWorkflow","summary":"Creates a new workflow from JSON or uploaded form-data.","parameters":[],"requestBody":{"$ref":"#/components/requestBodies/workflowPost"},"responses":{"201":{"$ref":"#/components/responses/workflowResponseSumWithOutResourcesObj"},"400":{"$ref":"#/components/responses/400"},"401":{"$ref":"#/components/responses/401"},"423":{"$ref":"#/components/responses/423"},"429":{"$ref":"#/components/responses/429"},"500":{"$ref":"#/components/responses/500"}},"tags":["Workflow"],"security":[{"bearerAuth":[]}],"x-license-permission":"BASE.WORKFLOW","description":"Direct workflow submissions may also require NODE permissions for each requested process; NODE permissions allow workflow process types and do not guard this endpoint.\n\nThe same endpoint supports multipart/form-data uploads, so `/api/v1/workflows/byUpload` is retained only for backward compatibility and is not needed for new integrations.","x-node-permissions":["NODE.IO","NODE.SPLIT","NODE.MAPPER","NODE.IMAGECONVERT","NODE.CONVERTAPI","NODE.CPDF","NODE.PDFCHIP","NODE.PITSTOP","NODE.IMPOSER.NESTING","NODE.PDFTOOLBOX.SAVEASIMG","NODE.PDFTOOLBOX.QUICKCHECK","NODE.PDFTOOLBOX.OVERLAY","NODE.PDFTOOLBOX.MERGEPDF","NODE.PDFTOOLBOX.SPLITPDF","NODE.PDFTOOLBOX.COMPARE","NODE.PDFTOOLBOX.PDFTOOLBOX-GENERIC","NODE.PDFTOOLBOX.PREFLIGHT"],"x-valid-license-required":true}},"/api/v1/processes":{"get":{"summary":"List processes","description":"Returns paginated processes, optionally filtered by container, workflow and status.","parameters":[{"name":"limit","in":"query","description":"Maximum number of items per page.","required":false,"schema":{"type":"integer","default":10,"minimum":1}},{"name":"page","in":"query","description":"Page number (1-based).","required":false,"schema":{"type":"integer","default":1,"minimum":1}},{"name":"sort","in":"query","description":"Sort definition: `<field>,<direction>` where direction is ASC or DESC.","required":false,"schema":{"type":"string"},"example":"createdAt,DESC"},{"name":"or","in":"query","description":"Logical OR filter in the form `field||operator||value`. Can be repeated.","required":false,"schema":{"type":"string"},"example":"containerId||$eq||141"},{"name":"status","in":"query","description":"Filter by process status.","required":false,"schema":{"type":"string","example":"done"}}],"responses":{"200":{"description":"List of processes that match the query","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Process"}}}}},"400":{"$ref":"#/components/responses/400"},"401":{"$ref":"#/components/responses/401"},"423":{"$ref":"#/components/responses/423"},"429":{"$ref":"#/components/responses/429"},"500":{"$ref":"#/components/responses/500"}},"x-license-permission":"BASE","x-valid-license-required":true}},"/api/v1/processes/abort":{"post":{"summary":"Abort process","description":"Aborts a running or pending process by its ID.","parameters":[{"name":"id","in":"query","required":true,"description":"ID of the process to abort.","schema":{"type":"integer","example":309}}],"responses":{"202":{"$ref":"#/components/responses/202"},"400":{"$ref":"#/components/responses/400"},"404":{"$ref":"#/components/responses/404"},"423":{"$ref":"#/components/responses/423"},"429":{"$ref":"#/components/responses/429"},"500":{"$ref":"#/components/responses/500"}},"security":[{"bearerAuth":[]}],"x-license-permission":"BASE.WORKFLOW","x-valid-license-required":true}},"/api/v1/workflows/byUpload":{"post":{"operationId":"WorkflowCrudController_createOneByUpload","summary":"Creates a new workflow using a resource that is uploaded as form/data file object.","requestBody":{"$ref":"#/components/requestBodies/workflowPostbyUpload"},"responses":{"201":{"$ref":"#/components/responses/workflowResponseSumWithOutResourcesObj"},"400":{"$ref":"#/components/responses/400"},"401":{"$ref":"#/components/responses/401"},"423":{"$ref":"#/components/responses/423"},"429":{"$ref":"#/components/responses/429"},"500":{"$ref":"#/components/responses/500"}},"tags":["Workflow"],"security":[{"bearerAuth":[]}],"x-license-permission":"BASE.WORKFLOW","description":"Deprecated: use `POST /api/v1/workflows` for both JSON and multipart/form-data workflow submissions.\n\nDirect workflow submissions may also require NODE permissions for each requested process; NODE permissions allow workflow process types and do not guard this endpoint.","x-node-permissions":["NODE.IO","NODE.SPLIT","NODE.MAPPER","NODE.IMAGECONVERT","NODE.CONVERTAPI","NODE.CPDF","NODE.PDFCHIP","NODE.PITSTOP","NODE.IMPOSER.NESTING","NODE.PDFTOOLBOX.SAVEASIMG","NODE.PDFTOOLBOX.QUICKCHECK","NODE.PDFTOOLBOX.OVERLAY","NODE.PDFTOOLBOX.MERGEPDF","NODE.PDFTOOLBOX.SPLITPDF","NODE.PDFTOOLBOX.COMPARE","NODE.PDFTOOLBOX.PDFTOOLBOX-GENERIC","NODE.PDFTOOLBOX.PREFLIGHT"],"x-valid-license-required":true,"deprecated":true}},"/api/v1/workflows/{id}":{"get":{"operationId":"getOneBaseWorkflowCrudControllerWorkflow","summary":"Lists a specific workflow of the current user.","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"number"}}],"responses":{"200":{"$ref":"#/components/responses/workflowResponseSumObj"},"401":{"$ref":"#/components/responses/401"},"404":{"$ref":"#/components/responses/404"},"423":{"$ref":"#/components/responses/423"},"500":{"$ref":"#/components/responses/500"}},"tags":["Workflow"],"security":[{"bearerAuth":[]}],"x-license-permission":"BASE","x-valid-license-required":true},"delete":{"operationId":"deleteOneBaseWorkflowCrudControllerWorkflow","summary":"Deletes a specific workflow.","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"number"}}],"responses":{"204":{"$ref":"#/components/responses/204"},"401":{"$ref":"#/components/responses/401"},"404":{"$ref":"#/components/responses/404"},"423":{"$ref":"#/components/responses/423"},"500":{"$ref":"#/components/responses/500"}},"tags":["Workflow"],"security":[{"bearerAuth":[]}],"x-license-permission":"BASE.WORKFLOW","x-valid-license-required":true}},"/api/v1/marketing/saveasimg":{"post":{"operationId":"MarketingController_saveasimg","summary":"Renders the input file as image.","description":"This endpoint renders the input file as image. For each page an image will be created with the defined format, color space and resolution. For detailed information concerning the allowed values of the query parameters [CLICK HERE](https://help.callassoftware.com/m/pdftoolbox/l/660039-commands-related-to-document#save_as_image).","parameters":[{"$ref":"#/components/parameters/inputURLMarketing"},{"$ref":"#/components/parameters/filename"},{"$ref":"#/components/parameters/storageMode"},{"$ref":"#/components/parameters/outputURL"},{"$ref":"#/components/parameters/imgFormat"},{"$ref":"#/components/parameters/compression"},{"$ref":"#/components/parameters/colorSpace"},{"$ref":"#/components/parameters/resolution"},{"$ref":"#/components/parameters/pagerange"},{"$ref":"#/components/parameters/callback"},{"$ref":"#/components/parameters/externalId"},{"$ref":"#/components/parameters/customData"},{"$ref":"#/components/parameters/pagebox"},{"$ref":"#/components/parameters/pageboxoffset"},{"$ref":"#/components/parameters/includeProcessingSteps"},{"$ref":"#/components/parameters/parallel"}],"requestBody":{"required":false,"description":"Upload the PDF to render as multipart form-data.","content":{"multipart/form-data":{"schema":{"type":"object","required":["file1"],"properties":{"file1":{"type":"string","format":"binary","description":"PDF to render."}}}},"binary":{"schema":{"type":"string","format":"binary"}}}},"responses":{"201":{"$ref":"#/components/responses/workflowResponseObj"},"401":{"$ref":"#/components/responses/401"},"404":{"$ref":"#/components/responses/404"},"412":{"$ref":"#/components/responses/412"},"423":{"$ref":"#/components/responses/423"},"429":{"$ref":"#/components/responses/429"},"500":{"$ref":"#/components/responses/500"}},"tags":["Marketing Endpoint"],"security":[{"bearerAuth":[]}],"x-license-permission":"MARKETING.SAVEASIMG","x-valid-license-required":true}},"/api/v1/marketing/quickcheck":{"post":{"operationId":"MarketingController_quickcheck","summary":"Performs a quickcheck. The result of this operation is a quickcheck JSON report.","description":"This endpoint performs a quickcheck on the given input PDF file and alternatively saves the report to a specifc directory. Only PDF formats are supported by this endpoint.","parameters":[{"$ref":"#/components/parameters/inputURLMarketing"},{"$ref":"#/components/parameters/filename"},{"$ref":"#/components/parameters/storageMode"},{"$ref":"#/components/parameters/config"},{"$ref":"#/components/parameters/outputURL"},{"$ref":"#/components/parameters/callback"},{"$ref":"#/components/parameters/externalId"},{"$ref":"#/components/parameters/customData"}],"requestBody":{"required":false,"description":"Upload the PDF and optionally provide an inline QuickCheck configuration. When config is omitted, the configured server default is used. Definition of QuickCheck config: https://help.callassoftware.com/a/1566688","content":{"multipart/form-data":{"schema":{"type":"object","required":["file1"],"properties":{"file1":{"type":"string","format":"binary","description":"PDF to inspect."},"config":{"type":"string"}}}},"text/plain":{"schema":{"type":"string","default":"$.direct: false\n$.aggregated: false"}}}},"responses":{"201":{"$ref":"#/components/responses/workflowResponseObj"},"401":{"$ref":"#/components/responses/401"},"404":{"$ref":"#/components/responses/404"},"412":{"$ref":"#/components/responses/412"},"423":{"$ref":"#/components/responses/423"},"429":{"$ref":"#/components/responses/429"},"500":{"$ref":"#/components/responses/500"},"944":{"$ref":"#/components/responses/944"}},"tags":["Marketing Endpoint"],"security":[{"bearerAuth":[]}],"x-license-permission":"MARKETING.QUICKCHECK","x-valid-license-required":true}},"/api/v1/marketing/definePageOrder":{"post":{"operationId":"MarketingController_definePageOrder","summary":"Defines the page order across one or more PDF resources.","description":"Submit either a JSON sequence referring to existing resources, or multipart form data containing the sequence and its PDF files. For multipart uploads, each sequence item URI must use a basename matching the corresponding binary form field name.","parameters":[{"$ref":"#/components/parameters/outputURL"},{"$ref":"#/components/parameters/callback"},{"$ref":"#/components/parameters/externalId"},{"$ref":"#/components/parameters/customData"},{"$ref":"#/components/parameters/filename"},{"$ref":"#/components/parameters/storageMode"},{"$ref":"#/components/parameters/debug"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"array","items":{"type":"object","required":["uri","pages"],"properties":{"uri":{"type":"string","description":"Existing resource URI."},"pages":{"type":"string","description":"Page range in callas pdfToolbox syntax, for example 1-3,5."}}}}},"multipart/form-data":{"schema":{"type":"object","required":["inputResourceSequence"],"properties":{"inputResourceSequence":{"type":"string","description":"Resource sequence serialized as JSON. Each item URI basename must match the form field containing that PDF.","example":"[{\"uri\":\"file1.pdf\",\"pages\":\"1-3\"},{\"uri\":\"file2.pdf\",\"pages\":\"2\"}]"},"file1":{"type":"string","format":"binary","description":"Example PDF field matching the basename `file1` in inputResourceSequence. Additional named PDF fields may be added."},"file2":{"type":"string","format":"binary","description":"Example PDF field matching the basename `file2` in inputResourceSequence."}}},"encoding":{"inputResourceSequence":{"contentType":"application/json"},"file1":{"contentType":"application/pdf"},"file2":{"contentType":"application/pdf"}}}}},"responses":{"201":{"$ref":"#/components/responses/workflowResponseObj"},"401":{"$ref":"#/components/responses/401"},"412":{"$ref":"#/components/responses/412"},"415":{"$ref":"#/components/responses/415"},"423":{"$ref":"#/components/responses/423"},"429":{"$ref":"#/components/responses/429"},"500":{"$ref":"#/components/responses/500"},"944":{"$ref":"#/components/responses/944"}},"tags":["Marketing Endpoint"],"security":[{"bearerAuth":[]}],"x-license-permission":"MARKETING.DEFINEPAGEORDER","x-valid-license-required":true}},"/api/v1/marketing/compare":{"post":{"operationId":"MarketingController_compare","summary":"Compares two PDFs and creates a comparison report as outputURL. The defaults of the query parameters can be defined as enivonment variables for service \"marketing-compare\".","parameters":[{"$ref":"#/components/parameters/inputURLMarketing"},{"$ref":"#/components/parameters/inputURLCompare"},{"$ref":"#/components/parameters/outputURL"},{"$ref":"#/components/parameters/debug"},{"$ref":"#/components/parameters/anchor"},{"$ref":"#/components/parameters/areathreshold"},{"$ref":"#/components/parameters/threshold"},{"$ref":"#/components/parameters/onlydifferences"},{"$ref":"#/components/parameters/channels"},{"$ref":"#/components/parameters/compareLog"}],"requestBody":{"required":false,"description":"Upload exactly two PDF files to compare. File order defines the reference file (`file1`) and comparison file (`file2`).","content":{"multipart/form-data":{"schema":{"type":"object","required":["file1","file2"],"properties":{"file1":{"type":"string","format":"binary","description":"Reference PDF."},"file2":{"type":"string","format":"binary","description":"PDF to compare with the reference."}}},"encoding":{"file1":{"contentType":"application/pdf"},"file2":{"contentType":"application/pdf"}}}}},"responses":{"201":{"$ref":"#/components/responses/workflowResponseObj"},"401":{"$ref":"#/components/responses/401"},"412":{"$ref":"#/components/responses/412"},"415":{"$ref":"#/components/responses/415"},"423":{"$ref":"#/components/responses/423"},"429":{"$ref":"#/components/responses/429"},"500":{"$ref":"#/components/responses/500"},"944":{"$ref":"#/components/responses/944"}},"tags":["Marketing Endpoint"],"security":[{"bearerAuth":[]}],"x-license-permission":"MARKETING.COMPARE","x-valid-license-required":true}},"/api/v1/marketing/createpdf":{"post":{"operationId":"MarketingController_createpdf","summary":"Creates a PDF from an html or a place content json.","description":"This endpoint creates a new PDF from HTML, a packed HTML template, or Place Content JSON supplied in the request body. Multipart form-data can provide Place Content JSON together with binary assets referenced through formKey:// field names.","parameters":[{"$ref":"#/components/parameters/inputURLMarketing"},{"$ref":"#/components/parameters/outputURL"},{"$ref":"#/components/parameters/debug"},{"$ref":"#/components/parameters/callback"},{"$ref":"#/components/parameters/externalId"},{"$ref":"#/components/parameters/customData"},{"$ref":"#/components/parameters/creatPdfEngine"}],"requestBody":{"$ref":"#/components/requestBodies/createpdf"},"responses":{"201":{"$ref":"#/components/responses/workflowResponseObj"},"401":{"$ref":"#/components/responses/401"},"412":{"$ref":"#/components/responses/412"},"415":{"$ref":"#/components/responses/415"},"423":{"$ref":"#/components/responses/423"},"429":{"$ref":"#/components/responses/429"},"500":{"$ref":"#/components/responses/500"},"944":{"$ref":"#/components/responses/944"}},"tags":["Marketing Endpoint"],"security":[{"bearerAuth":[]}],"x-license-permission":"MARKETING.CREATEPDF","x-valid-license-required":true}},"/api/v1/marketing/fixCheckPreview":{"post":{"operationId":"MarketingController_fixCheckPreview","summary":"Executes a profile, performs a quickcheck and creates a preview.","description":"Marketing endpoints allow the user to easily execute workflow calls by passing simple query parameters. Mandatory query parameters are marked with * in their name.","parameters":[{"$ref":"#/components/parameters/inputURLMarketing"},{"$ref":"#/components/parameters/filename"},{"$ref":"#/components/parameters/storageMode"},{"$ref":"#/components/parameters/profile"},{"$ref":"#/components/parameters/jsonReport"},{"$ref":"#/components/parameters/xmlReport"},{"$ref":"#/components/parameters/pdfReport"},{"$ref":"#/components/parameters/analyse"},{"$ref":"#/components/parameters/preview"},{"$ref":"#/components/parameters/previewPagerange"},{"$ref":"#/components/parameters/previewColorspace"},{"$ref":"#/components/parameters/previewSize"},{"$ref":"#/components/parameters/previewFormat"},{"$ref":"#/components/parameters/compression"},{"$ref":"#/components/parameters/outputURL"},{"$ref":"#/components/parameters/callback"},{"$ref":"#/components/parameters/debug"},{"$ref":"#/components/parameters/commentReport"},{"$ref":"#/components/parameters/maskReport"},{"$ref":"#/components/parameters/jsonInfoReport"},{"$ref":"#/components/parameters/layerReport"},{"$ref":"#/components/parameters/downsampleReport"},{"$ref":"#/components/parameters/externalId"},{"$ref":"#/components/parameters/customData"},{"$ref":"#/components/parameters/language"},{"$ref":"#/components/parameters/pagebox"},{"$ref":"#/components/parameters/pageboxoffset"},{"$ref":"#/components/parameters/includeProcessingSteps"},{"$ref":"#/components/parameters/parallel"}],"requestBody":{"$ref":"#/components/requestBodies/fixCheckPreview"},"responses":{"201":{"$ref":"#/components/responses/workflowResponseObj"},"401":{"$ref":"#/components/responses/401"},"404":{"$ref":"#/components/responses/404"},"412":{"$ref":"#/components/responses/412"},"423":{"$ref":"#/components/responses/423"},"429":{"$ref":"#/components/responses/429"},"500":{"$ref":"#/components/responses/500"},"944":{"$ref":"#/components/responses/944"}},"tags":["Marketing Endpoint"],"security":[{"bearerAuth":[]}],"x-license-permission":"MARKETING.FIXCHECKPREVIEW","x-valid-license-required":true}},"/api/v1/marketing/mergepdf":{"post":{"operationId":"MarketingController_mergepdf","summary":"Allows the user to merge multiple PDF files into one PDF file. The merge sequence is defined by the mergeMethode query parameter.","parameters":[{"$ref":"#/components/parameters/inputURLMerge"},{"$ref":"#/components/parameters/callback"},{"$ref":"#/components/parameters/outputURL"},{"$ref":"#/components/parameters/externalId"},{"$ref":"#/components/parameters/customData"},{"$ref":"#/components/parameters/mergeMethod"},{"$ref":"#/components/parameters/productType"},{"$ref":"#/components/parameters/requiresExtraCover"},{"$ref":"#/components/parameters/numberOfPages"},{"$ref":"#/components/parameters/coverIsSpread"},{"$ref":"#/components/parameters/finishedWidth"},{"$ref":"#/components/parameters/finishedHeight"},{"$ref":"#/components/parameters/spineWidth"},{"$ref":"#/components/parameters/mergeSettings"}],"requestBody":{"$ref":"#/components/requestBodies/mergepdf"},"responses":{"201":{"$ref":"#/components/responses/workflowResponseObj"},"400":{"$ref":"#/components/responses/400"},"401":{"$ref":"#/components/responses/401"},"404":{"$ref":"#/components/responses/404"},"412":{"$ref":"#/components/responses/412"},"423":{"$ref":"#/components/responses/423"},"429":{"$ref":"#/components/responses/429"},"500":{"$ref":"#/components/responses/500"}},"tags":["Marketing Endpoint"],"security":[{"bearerAuth":[]}],"x-license-permission":"MARKETING.MERGEPDF","x-valid-license-required":true}},"/api/v1/marketing/jobticket":{"post":{"operationId":"MarketingController_jobticket","summary":"Allows the user to define a radixPreflight job ticket within the body of the request.","description":"Allows the user to define a radixPreflight job ticket within the body of the request. More information can be found under https://wiki.calibrate.at/en/calibrate-flow-api-v-1/job-ticket","parameters":[{"$ref":"#/components/parameters/inputURLMarketing"},{"$ref":"#/components/parameters/debugCmp"},{"$ref":"#/components/parameters/callback"},{"$ref":"#/components/parameters/outputURL"},{"$ref":"#/components/parameters/jsonReport"},{"$ref":"#/components/parameters/xmlReport"},{"$ref":"#/components/parameters/pdfReport"},{"$ref":"#/components/parameters/htmlReport"},{"$ref":"#/components/parameters/commentReport"},{"$ref":"#/components/parameters/maskReport"},{"$ref":"#/components/parameters/layerReport"},{"$ref":"#/components/parameters/downsampleReport"},{"$ref":"#/components/parameters/analyse"},{"$ref":"#/components/parameters/preview"},{"$ref":"#/components/parameters/previewPagerange"},{"$ref":"#/components/parameters/previewColorspace"},{"$ref":"#/components/parameters/previewFormat"},{"$ref":"#/components/parameters/compression"},{"$ref":"#/components/parameters/previewSize"},{"$ref":"#/components/parameters/language"},{"$ref":"#/components/parameters/pagebox"},{"$ref":"#/components/parameters/pageboxoffset"},{"$ref":"#/components/parameters/includeProcessingSteps"},{"$ref":"#/components/parameters/parallel"},{"$ref":"#/components/parameters/externalId"},{"$ref":"#/components/parameters/customData"}],"requestBody":{"$ref":"#/components/requestBodies/cmpJobticket"},"responses":{"201":{"$ref":"#/components/responses/workflowResponseObj"},"401":{"$ref":"#/components/responses/401"},"404":{"$ref":"#/components/responses/404"},"412":{"$ref":"#/components/responses/412"},"423":{"$ref":"#/components/responses/423"},"429":{"$ref":"#/components/responses/429"},"500":{"$ref":"#/components/responses/500"},"944":{"$ref":"#/components/responses/944"}},"tags":["Marketing Endpoint"],"security":[{"bearerAuth":[]}],"x-license-permission":"MARKETING.JOBTICKET","x-valid-license-required":true}},"/api/v1/marketing/splitpdf":{"post":{"operationId":"MarketingController_splitpdf","summary":"Allows the user split a PDF.","parameters":[{"$ref":"#/components/parameters/inputURLMarketing"},{"$ref":"#/components/parameters/callback"},{"$ref":"#/components/parameters/filename"},{"$ref":"#/components/parameters/storageMode"},{"$ref":"#/components/parameters/outputURL"},{"$ref":"#/components/parameters/splitScheme"},{"$ref":"#/components/parameters/digitsSplitPdf"},{"$ref":"#/components/parameters/externalId"},{"$ref":"#/components/parameters/customData"}],"requestBody":{"required":false,"description":"Upload the PDF to split as multipart form-data.","content":{"multipart/form-data":{"schema":{"type":"object","required":["file"],"properties":{"file":{"type":"string","format":"binary","description":"PDF to split."}}}}}},"responses":{"201":{"$ref":"#/components/responses/workflowResponseObj"},"401":{"$ref":"#/components/responses/401"},"404":{"$ref":"#/components/responses/404"},"412":{"$ref":"#/components/responses/412"},"423":{"$ref":"#/components/responses/423"},"429":{"$ref":"#/components/responses/429"},"500":{"$ref":"#/components/responses/500"}},"tags":["Marketing Endpoint"],"security":[{"bearerAuth":[]}],"x-license-permission":"MARKETING.SPLITPDF","x-valid-license-required":true}},"/api/v1/marketing/imageconvert":{"post":{"operationId":"MarketingController_imageconvert","summary":"Allows the user to convert images.","parameters":[{"$ref":"#/components/parameters/inputURLMarketing"},{"$ref":"#/components/parameters/callback"},{"$ref":"#/components/parameters/filename"},{"$ref":"#/components/parameters/storageMode"},{"$ref":"#/components/parameters/outputURL"},{"$ref":"#/components/parameters/resize"},{"$ref":"#/components/parameters/resample"},{"$ref":"#/components/parameters/density"},{"$ref":"#/components/parameters/imgFormatImageMagick"},{"$ref":"#/components/parameters/background"},{"$ref":"#/components/parameters/debugImageMagick"},{"$ref":"#/components/parameters/externalId"},{"$ref":"#/components/parameters/customData"}],"requestBody":{"required":false,"description":"Upload the image to convert as multipart form-data.","content":{"multipart/form-data":{"schema":{"type":"object","required":["file"],"properties":{"file":{"type":"string","format":"binary","description":"Image to convert."}}}},"binary":{"schema":{"type":"string","format":"binary"}}}},"responses":{"201":{"$ref":"#/components/responses/workflowResponseObj"},"401":{"$ref":"#/components/responses/401"},"404":{"$ref":"#/components/responses/404"},"412":{"$ref":"#/components/responses/412"},"423":{"$ref":"#/components/responses/423"},"429":{"$ref":"#/components/responses/429"},"500":{"$ref":"#/components/responses/500"}},"tags":["Marketing Endpoint"],"security":[{"bearerAuth":[]}],"x-license-permission":"MARKETING.IMAGECONVERT","x-valid-license-required":true}},"/api/v1/marketing/saveasimgs":{"post":{"operationId":"MarketingController_saveasimgs","summary":"Executes a saveasimg, performs a quickcheck and executes convertimage.","description":"Marketing endpoints allow the user to easily execute workflow calls by passing simple query parameters. Mandatory query parameters are marked with * in their name.","parameters":[{"$ref":"#/components/parameters/inputURLMarketing"},{"$ref":"#/components/parameters/filename"},{"$ref":"#/components/parameters/storageMode"},{"$ref":"#/components/parameters/outputURL"},{"$ref":"#/components/parameters/imgFormat"},{"$ref":"#/components/parameters/compression"},{"$ref":"#/components/parameters/colorSpace"},{"$ref":"#/components/parameters/resolution"},{"$ref":"#/components/parameters/pagerange"},{"$ref":"#/components/parameters/pagebox"},{"$ref":"#/components/parameters/pageboxoffset"},{"$ref":"#/components/parameters/includeProcessingSteps"},{"$ref":"#/components/parameters/parallel"},{"$ref":"#/components/parameters/callback"},{"$ref":"#/components/parameters/analyseSaveasimgs"},{"$ref":"#/components/parameters/externalId"},{"$ref":"#/components/parameters/customData"},{"$ref":"#/components/parameters/analyse"}],"requestBody":{"$ref":"#/components/requestBodies/saveasimgs"},"responses":{"201":{"$ref":"#/components/responses/workflowResponseObj"},"401":{"$ref":"#/components/responses/401"},"404":{"$ref":"#/components/responses/404"},"412":{"$ref":"#/components/responses/412"},"423":{"$ref":"#/components/responses/423"},"429":{"$ref":"#/components/responses/429"},"500":{"$ref":"#/components/responses/500"},"944":{"$ref":"#/components/responses/944"}},"tags":["Marketing Endpoint"],"security":[{"bearerAuth":[]}],"x-license-permission":"MARKETING.SAVEASIMGS","x-valid-license-required":true}},"/api/v1/healthcheck":{"get":{"operationId":"HealthcheckController_radixApi","summary":"Healtchcheck endpoint to check the health of the service.","parameters":[],"responses":{"200":{"$ref":"#/components/responses/healthcheckResponseObj"}},"tags":["Healthcheck"],"security":[],"x-license-permission":null,"x-valid-license-required":false}},"/api/v1/marketing/convertApi":{"post":{"summary":"Convert Office documents to PDF and back","description":"This endpoint can be used to convert Office documents to PDF and vice versa. Supported formats include: pdf, docx, pptx, xlsx, doc, ppt, xls. Depending on the conversion, additional query parameters can be passed. Requires a valid convertApi token in the environment variables.","tags":["Marketing Endpoint"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"inputURL","description":"URL of the input document. Omit this parameter when uploading the document in the multipart `file` field.","in":"query","required":false,"schema":{"type":"string"}},{"name":"toFormat","in":"query","required":true,"schema":{"type":"string","enum":["pdf","docx","pptx","xlsx","doc","ppt","xls"]}},{"name":"Password","schema":{"type":"string"},"in":"query","required":false},{"name":"PageRange","schema":{"type":"string"},"in":"query","required":false,"examples":{"range1to3":{"summary":"First 3 pages","value":"1-3"},"pages145":{"summary":"Selected pages","value":"1,4,5"}}},{"name":"CompressPDF","schema":{"type":"boolean"},"in":"query","required":false,"example":true},{"name":"Pdfa","schema":{"type":"boolean"},"in":"query","required":false,"example":true},{"name":"Wysiwyg","description":"Only when converting Word to PDF","schema":{"type":"boolean"},"in":"query","required":false,"example":true},{"name":"OcrLanguage","schema":{"type":"string"},"in":"query","required":false},{"name":"ConvertMarkups","schema":{"type":"boolean"},"in":"query","required":false},{"name":"ConvertTags","schema":{"type":"boolean"},"in":"query","required":false},{"name":"ConvertMetadata","schema":{"type":"boolean"},"in":"query","required":false},{"name":"ConvertHeadings","description":"Only when converting Excel to PDF","schema":{"type":"boolean"},"in":"query","required":false},{"name":"ConvertBookmarks","description":"Only when converting Word to PDF","schema":{"type":"boolean"},"in":"query","required":false},{"name":"UpdateToc","description":"Only when converting Word to PDF","schema":{"type":"boolean"},"in":"query","required":false},{"name":"EnableOcr","description":"Only when converting PowerPoint to PDF","schema":{"type":"boolean"},"in":"query","required":false},{"name":"ConvertHiddenSlides","description":"Only when converting PowerPoint to PDF","schema":{"type":"boolean"},"in":"query","required":false},{"name":"ConvertSpeakerNotes","schema":{"type":"string"},"in":"query","required":false,"examples":{"appendNotes":{"summary":"Append notes to slides","value":"append"},"ignoreNotes":{"summary":"Ignore speaker notes","value":"ignore"}}},{"name":"EmbedFonts","schema":{"type":"boolean"},"in":"query","required":false},{"name":"IncludeFormatting","schema":{"type":"boolean"},"in":"query","required":false},{"name":"SingleSheet","schema":{"type":"boolean"},"in":"query","required":false},{"name":"WorksheetActive","schema":{"type":"boolean"},"in":"query","required":false},{"name":"WorksheetIndex","schema":{"type":"integer"},"in":"query","required":false},{"name":"WorksheetName","schema":{"type":"string"},"in":"query","required":false},{"name":"PageOrientation","schema":{"type":"string"},"in":"query","required":false,"examples":{"portrait":{"summary":"Portrait orientation","value":"portrait"},"landscape":{"summary":"Landscape orientation","value":"landscape"}}},{"name":"PageSize","schema":{"type":"string"},"in":"query","required":false,"examples":{"A4":{"summary":"Standard A4 size","value":"A4"},"Letter":{"summary":"US Letter size","value":"Letter"}}},{"name":"AutoFit","schema":{"type":"boolean"},"in":"query","required":false},{"name":"ClearPrintArea","schema":{"type":"boolean"},"in":"query","required":false},{"name":"Scale","schema":{"type":"integer"},"in":"query","required":false},{"name":"HeaderOnEachPage","schema":{"type":"boolean"},"in":"query","required":false},{"name":"ThousandsSeparator","schema":{"type":"string"},"in":"query","required":false},{"name":"DecimalSeparator","schema":{"type":"string"},"in":"query","required":false},{"name":"DateFormat","schema":{"type":"string"},"in":"query","required":false}],"requestBody":{"required":false,"description":"Office document or PDF to convert.","content":{"multipart/form-data":{"schema":{"type":"object","required":["file"],"properties":{"file":{"type":"string","format":"binary","description":"Input document. Supported formats include PDF, DOC/DOCX, PPT/PPTX, and XLS/XLSX."}}}}}},"responses":{"201":{"description":"Conversion successful"},"401":{"description":"Unauthorized"},"412":{"description":"Precondition Failed"},"423":{"description":"Locked"},"429":{"$ref":"#/components/responses/429"},"500":{"description":"Internal Server Error"}},"x-license-permission":"MARKETING.CONVERTAPI","x-valid-license-required":true}},"/api/v1/license/generate":{"post":{"operationId":"LicenseController_generate","summary":"Activate a WCLID license file.","description":"Upload a WCLID file provided by the local dealer to activate the license for this installation.\n\nOnly the WCLID file is required. Machine name and product version are generated automatically when omitted:\n\n- `workstationName` defaults to `<FQDN hostname>.<username>`\n- `productVersion` defaults to the core release version (for example `2.4.0`)\n\nOptional query overrides are supported for advanced/internal use.","parameters":[{"name":"workstationName","in":"query","required":false,"description":"Optional override for the machine/solution name registered with the license. When omitted, defaults to `<FQDN hostname>.<username>`.","schema":{"type":"string"},"example":"radix-api.example.com.jane"},{"name":"productVersion","in":"query","required":false,"description":"Optional override for the product version in `major.minor.patch` form. When omitted, defaults to the core release version from the running radixAPI build. Must not be higher than the version included in the WCLID file.","schema":{"type":"string","pattern":"^\\d+\\.\\d+\\.\\d+$"},"example":"2.4.0"}],"requestBody":{"required":true,"description":"The WCLID license file provided by the local dealer.","content":{"multipart/form-data":{"schema":{"type":"object","required":["file"],"properties":{"file":{"type":"string","format":"binary","description":"The WCLID license file."}}}}}},"responses":{"201":{"$ref":"#/components/responses/LicenseActivateResponseObj"},"400":{"$ref":"#/components/responses/400"},"401":{"$ref":"#/components/responses/401"},"403":{"$ref":"#/components/responses/403"},"412":{"$ref":"#/components/responses/412"},"500":{"$ref":"#/components/responses/500"}},"tags":["License"],"security":[{"bearerAuth":[]}],"x-license-permission":null,"x-valid-license-required":false}},"/api/v1/license":{"get":{"operationId":"LicenseController_getLicense","summary":"Get licensed modules.","description":"Returns the currently active license information including all licensed modules loaded from the WCLID file.","parameters":[],"responses":{"200":{"$ref":"#/components/responses/LicenseResponseObj"},"401":{"$ref":"#/components/responses/401"},"403":{"$ref":"#/components/responses/403"},"404":{"$ref":"#/components/responses/404"},"500":{"$ref":"#/components/responses/500"}},"tags":["License"],"security":[{"bearerAuth":[]}],"x-license-permission":null,"x-valid-license-required":false}},"/api/v1/marketing/calculateNesting":{"post":{"operationId":"MarketingController_calculateNesting","summary":"Calculate an impose nesting layout for one or more print items.","description":"Calculates an optimized nesting/imposition layout for the given print items on the defined substrate. Returns a workflow response for the asynchronous job. The initial response confirms that the job was accepted and does not yet contain the completed nesting result. The completed workflow or callback response exposes the nesting JSON at `customResult.result` and also contains the `imposer_nesting` output resource metadata (`customId`, filename, usage, and `downloadURL`) for downloading the same result as a file.\n\nWhen `createimposepdf` is truthy, the workflow additionally runs `jsonmapper` (nesting result → pcData) and `pdfchip` to produce an impose PDF (`imposed.pdf`). This path requires the `MARKETING.CREATEPDF` license. PDF engine selection follows `marketing-calculateNesting.creatPdfEngine` (default `PDFChip`) or the `creatPdfEngine` query parameter.\n\nThe result file is stored in the workflow container and can be downloaded via the `downloadURL` in the workflow output resources or the `imposer_nesting` process output resources.\n\n**Result severity:**\n\n| Value | Meaning |\n|-------|---------|\n| `1` | Nesting calculation completed successfully. |\n| `3` | Nesting calculation could not be completed (e.g. items could not be placed). |\n\nFor all other failure cases (invalid input, licence issues, internal errors) the `error` object of the workflow response is populated and the workflow `status` is `error`.","parameters":[{"$ref":"#/components/parameters/callback"},{"name":"outputFile","in":"query","required":false,"description":"Filename for the resulting nesting JSON output file.","schema":{"type":"string","default":"imposeresult.json"},"example":"imposeresult.json"},{"name":"optimize","in":"query","required":false,"description":"Whether to run the genetic optimization algorithm. When disabled, only a basic placement is performed without iterative improvement.","schema":{"oneOf":[{"type":"integer","enum":[0,1]},{"type":"boolean"}]},"example":1},{"name":"maxTime","in":"query","required":false,"description":"Maximum total runtime of the optimization in seconds, measured from the moment optimization starts. When the limit is reached, no new generation is started; any calculations already in progress finish normally. Overrides `imposeSettings.optimizationSettings.maxTimeSec` in the request body.","schema":{"type":"integer","default":180},"example":300},{"name":"maxNotImprovedIterations","in":"query","required":false,"description":"Maximum number of consecutive iterations without a layout improvement before the optimizer terminates. Overrides `imposeSettings.optimizationSettings.maxNotImprovedIterations` in the request body.","schema":{"type":"integer","default":3000},"example":100},{"name":"createimposepdf","in":"query","required":false,"description":"When truthy, appends jsonmapper and pdfchip workflow steps after nesting to generate an impose PDF. Requires MARKETING.CREATEPDF license.","schema":{"oneOf":[{"type":"integer","enum":[0,1]},{"type":"boolean"}]},"example":1},{"name":"outlineboxes","in":"query","required":false,"description":"When truthy, overwrites trim and bleed enable flags in the JSONata bindings.","schema":{"oneOf":[{"type":"integer","enum":[0,1]},{"type":"boolean"}]},"example":1},{"name":"printitemplaceholder","in":"query","required":false,"description":"When truthy, enables print-item placeholder rectangles in the impose PDF (PDF URIs not yet supported).","schema":{"oneOf":[{"type":"integer","enum":[0,1]},{"type":"boolean"}]},"example":0},{"name":"creatPdfEngine","in":"query","required":false,"description":"PDF creation engine when createimposepdf is enabled. Defaults to marketing-calculateNesting.creatPdfEngine (PDFChip).","schema":{"type":"string","enum":["PDFChip","PDFToolbox"]},"example":"PDFChip"},{"name":"debug","in":"query","required":false,"description":"When set, keeps intermediate files in the container /tmp folder and retains the pdfChip HTML dump for inspection.","schema":{"oneOf":[{"type":"integer","enum":[0,1]},{"type":"boolean"}]},"example":1},{"$ref":"#/components/parameters/outputURL"},{"$ref":"#/components/parameters/storageMode"},{"$ref":"#/components/parameters/externalId"},{"$ref":"#/components/parameters/customData"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CalculateNestingRequest"}}}},"responses":{"201":{"$ref":"#/components/responses/workflowResponseObj"},"401":{"$ref":"#/components/responses/401"},"404":{"$ref":"#/components/responses/404"},"412":{"$ref":"#/components/responses/412"},"423":{"$ref":"#/components/responses/423"},"429":{"$ref":"#/components/responses/429"},"500":{"$ref":"#/components/responses/500"}},"tags":["Marketing Endpoint"],"security":[{"bearerAuth":[]}],"x-license-permission":"MARKETING.CALCULATENESTING","x-valid-license-required":true}},"/api/v1/auditlogs":{"get":{"summary":"List audit log entries","description":"Returns paginated audit log entries, optionally filtered and sorted.","parameters":[{"name":"limit","in":"query","description":"Maximum number of items per page.","required":false,"schema":{"type":"integer","default":10,"minimum":1}},{"name":"page","in":"query","description":"Page number (1-based).","required":false,"schema":{"type":"integer","default":1,"minimum":1}},{"name":"s","in":"query","description":"JSON search object. Supports workflowId equality and OR clauses for processId, context, message, and level when OpenSearch is used.","required":false,"schema":{"type":"string"},"example":"{\"$and\":[{\"workflowId\":{\"$eq\":129}},{\"$or\":[{\"level\":{\"$eq\":\"error\"}},{\"message\":{\"$cont\":\"failed\"}}]}]}"},{"name":"filter","in":"query","description":"Simple CRUD filter in `<field>||<operator>||<value>` format.","required":false,"schema":{"type":"string"},"example":"workflowId||$eq||129"},{"name":"sort","in":"query","description":"Sort definition: `<field>,<direction>` where direction is ASC or DESC.","required":false,"schema":{"type":"string"},"example":"createdAt,DESC"}],"responses":{"200":{"description":"Paginated list of audit logs.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuditLogListResponse"}}}},"400":{"$ref":"#/components/responses/400"},"423":{"$ref":"#/components/responses/423"},"429":{"$ref":"#/components/responses/429"},"500":{"$ref":"#/components/responses/500"}},"tags":["AuditLog"],"security":[{"bearerAuth":[]}],"x-license-permission":"BASE","x-valid-license-required":true}},"/":{"get":{"operationId":"AppController_index","summary":"Application root endpoint.","parameters":[],"responses":{"200":{"description":"Application is reachable."}},"tags":["Healthcheck"],"security":[],"x-license-permission":null,"x-valid-license-required":false}},"/readiness":{"get":{"operationId":"AppController_readiness","summary":"Readiness probe.","parameters":[],"responses":{"200":{"description":"Application is ready to receive traffic."}},"tags":["Healthcheck"],"security":[],"x-license-permission":null,"x-valid-license-required":false}},"/liveness":{"get":{"operationId":"AppController_liveness","summary":"Liveness probe.","parameters":[],"responses":{"200":{"description":"Application process is alive."}},"tags":["Healthcheck"],"security":[],"x-license-permission":null,"x-valid-license-required":false}},"/sse/workflow-progress":{"get":{"operationId":"WorkerController_sse","summary":"Streams workflow progress events.","description":"Server-sent events endpoint that emits workflow progress messages when worker process updates are received.","parameters":[],"responses":{"200":{"description":"Workflow progress event stream.","content":{"text/event-stream":{"schema":{"type":"string","example":"data: {\"workflowId\":\"uuid\",\"status\":\"processed\"}\n\n"}}}}},"tags":["Healthcheck"],"security":[],"x-license-permission":null,"x-valid-license-required":false}},"/api/v1/users":{"get":{"operationId":"UserController_getAll","summary":"List users.","description":"Requires Keycloak admin role.","parameters":[],"responses":{"200":{"$ref":"#/components/responses/UserProfileObj"},"401":{"$ref":"#/components/responses/401"},"403":{"$ref":"#/components/responses/403"},"423":{"$ref":"#/components/responses/423"},"500":{"$ref":"#/components/responses/500"}},"tags":["User"],"security":[{"bearerAuth":[]}],"x-license-permission":null,"x-valid-license-required":false}},"/api/v1/users/{id}":{"get":{"operationId":"UserController_getOne","summary":"Get a user by ID.","description":"Requires Keycloak admin role.","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"number"}}],"responses":{"200":{"$ref":"#/components/responses/UserProfileObj"},"401":{"$ref":"#/components/responses/401"},"403":{"$ref":"#/components/responses/403"},"404":{"$ref":"#/components/responses/404"},"423":{"$ref":"#/components/responses/423"},"500":{"$ref":"#/components/responses/500"}},"tags":["User"],"security":[{"bearerAuth":[]}],"x-license-permission":null,"x-valid-license-required":false},"patch":{"operationId":"UserController_updateOne","summary":"Update a user by ID.","description":"Requires Keycloak admin role.","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"number"}}],"responses":{"200":{"$ref":"#/components/responses/UserProfileObj"},"400":{"$ref":"#/components/responses/400"},"401":{"$ref":"#/components/responses/401"},"403":{"$ref":"#/components/responses/403"},"404":{"$ref":"#/components/responses/404"},"423":{"$ref":"#/components/responses/423"},"500":{"$ref":"#/components/responses/500"}},"tags":["User"],"security":[{"bearerAuth":[]}],"x-license-permission":null,"x-valid-license-required":false,"requestBody":{"content":{"application/json":{"schema":{"type":"object"}}}}}},"/api/v1/users/{id}/status":{"post":{"operationId":"UserController_enableDisableUser","summary":"Enable or disable a user.","description":"Requires Keycloak admin role.","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"number"}}],"responses":{"200":{"$ref":"#/components/responses/200"},"400":{"$ref":"#/components/responses/400"},"401":{"$ref":"#/components/responses/401"},"403":{"$ref":"#/components/responses/403"},"404":{"$ref":"#/components/responses/404"},"423":{"$ref":"#/components/responses/423"},"500":{"$ref":"#/components/responses/500"}},"tags":["User"],"security":[{"bearerAuth":[]}],"x-license-permission":null,"x-valid-license-required":false,"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"enabled":{"type":"boolean"}}}}}}}},"/api/v1/users/{id}/two-factor/enable":{"post":{"operationId":"UserController_enableTwoFactor","summary":"Enable two-factor authentication for a user.","description":"Requires Keycloak admin role. Enables 2FA for an eligible admin or client user and clears any existing enrollment so setup can be completed on the next interactive login.","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"number"}}],"responses":{"201":{"$ref":"#/components/responses/successResponseObj"},"400":{"$ref":"#/components/responses/400"},"401":{"$ref":"#/components/responses/401"},"403":{"$ref":"#/components/responses/403"},"404":{"$ref":"#/components/responses/404"},"500":{"$ref":"#/components/responses/500"}},"tags":["User"],"security":[{"bearerAuth":[]}],"x-license-permission":null,"x-valid-license-required":false}},"/api/v1/users/{id}/two-factor/disable":{"post":{"operationId":"UserController_disableTwoFactor","summary":"Disable two-factor authentication for a user.","description":"Requires Keycloak admin role. Disables 2FA and clears the user's 2FA enrollment state and secret.","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"number"}}],"responses":{"201":{"$ref":"#/components/responses/successResponseObj"},"400":{"$ref":"#/components/responses/400"},"401":{"$ref":"#/components/responses/401"},"403":{"$ref":"#/components/responses/403"},"404":{"$ref":"#/components/responses/404"},"500":{"$ref":"#/components/responses/500"}},"tags":["User"],"security":[{"bearerAuth":[]}],"x-license-permission":null,"x-valid-license-required":false}},"/api/v1/users/{id}/password/reset":{"post":{"operationId":"UserController_resetPassword","summary":"Reset a user's password to the default value.","description":"Requires Keycloak admin role. Sets the user's password to `{username}1!` (for example, user `admin` becomes `admin1!`). If mailer environment variables are configured and the user has an email address, a notification email with the temporary password is sent to the user. Password reset still succeeds when mailer is not configured.","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"number"}}],"responses":{"201":{"description":"Password successfully reset.","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","example":true},"message":{"type":"string","example":"Password has been reset. A notification email was sent to the user."},"defaultPassword":{"type":"string","example":"admin1!"},"emailSent":{"type":"boolean","example":true}}}}}},"400":{"$ref":"#/components/responses/400"},"401":{"$ref":"#/components/responses/401"},"403":{"$ref":"#/components/responses/403"},"404":{"$ref":"#/components/responses/404"},"500":{"$ref":"#/components/responses/500"}},"tags":["User"],"security":[{"bearerAuth":[]}],"x-license-permission":null,"x-valid-license-required":false}},"/api/v1/users/{id}/two-factor/reset":{"post":{"operationId":"UserController_resetTwoFactor","summary":"Reset two-factor authentication enrollment for a user.","description":"Requires Keycloak admin role. Clears the user's existing 2FA secret and enrollment state while keeping 2FA enabled, so the user can enroll again on the next interactive login.","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"number"}}],"responses":{"201":{"$ref":"#/components/responses/successResponseObj"},"400":{"$ref":"#/components/responses/400"},"401":{"$ref":"#/components/responses/401"},"403":{"$ref":"#/components/responses/403"},"404":{"$ref":"#/components/responses/404"},"500":{"$ref":"#/components/responses/500"}},"tags":["User"],"security":[{"bearerAuth":[]}],"x-license-permission":null,"x-valid-license-required":false}},"/api/v1/environmentVariable/fromName":{"get":{"operationId":"EnvironmentVariableController_getFromName","summary":"Get configured mail sender name.","parameters":[],"responses":{"200":{"$ref":"#/components/responses/environmentVariableResponse"},"401":{"$ref":"#/components/responses/401"},"500":{"$ref":"#/components/responses/500"}},"tags":["EnvironmentVariable"],"security":[{"bearerAuth":[]}],"x-license-permission":null,"x-valid-license-required":false}},"/api/v1/containers/{id}/upload":{"post":{"operationId":"ContainerCrudController_upload","summary":"Upload file chunk to container.","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"number"}}],"responses":{"200":{"$ref":"#/components/responses/200"},"400":{"$ref":"#/components/responses/400"},"401":{"$ref":"#/components/responses/401"},"404":{"$ref":"#/components/responses/404"},"423":{"$ref":"#/components/responses/423"},"500":{"$ref":"#/components/responses/500"}},"tags":["Container"],"security":[{"bearerAuth":[]}],"x-license-permission":"BASE.WORKFLOW","x-valid-license-required":true,"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"file":{"type":"string","format":"binary"}},"required":["file"]}}}}}},"/api/v1/license/{id}":{"get":{"operationId":"LicenseController_getLicenseByAdmin","summary":"Get license for a user.","description":"Requires Keycloak admin role.","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"number"}}],"responses":{"200":{"$ref":"#/components/responses/LicenseResponseObj"},"401":{"$ref":"#/components/responses/401"},"403":{"$ref":"#/components/responses/403"},"404":{"$ref":"#/components/responses/404"},"423":{"$ref":"#/components/responses/423"},"500":{"$ref":"#/components/responses/500"}},"tags":["License"],"security":[{"bearerAuth":[]}],"x-license-permission":null,"x-valid-license-required":false}},"/api/v1/license/{id}/generate":{"post":{"operationId":"LicenseController_generateLicenseByAdmin","summary":"Generate license for a user from WCLID.","description":"Requires Keycloak admin role. Machine name and product version are auto-generated when omitted. Optional query overrides: `workstationName` (defaults to `<FQDN hostname>.<target username>`), `productVersion` (defaults to core release version).","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"number"}},{"name":"workstationName","required":false,"in":"query","description":"Optional override for machine name. Defaults to `<FQDN hostname>.<target username>`.","schema":{"type":"string"}},{"name":"productVersion","required":false,"in":"query","description":"Optional override for product version (`major.minor.patch`). Defaults to the core release version.","schema":{"type":"string"}}],"responses":{"201":{"$ref":"#/components/responses/LicenseActivateResponseObj"},"400":{"$ref":"#/components/responses/400"},"401":{"$ref":"#/components/responses/401"},"403":{"$ref":"#/components/responses/403"},"404":{"$ref":"#/components/responses/404"},"423":{"$ref":"#/components/responses/423"},"500":{"$ref":"#/components/responses/500"}},"tags":["License"],"security":[{"bearerAuth":[]}],"x-license-permission":null,"x-valid-license-required":false,"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"file":{"type":"string","format":"binary"}},"required":["file"]}}}}}},"/api/v1/webhook-dlq":{"get":{"operationId":"WebhookDlqController_list","summary":"List webhook dead-letter queue entries.","parameters":[{"name":"start","required":false,"in":"query","schema":{"type":"integer"}},{"name":"limit","required":false,"in":"query","schema":{"type":"integer"}},{"name":"sortBy","required":false,"in":"query","schema":{"type":"string"}},{"name":"descending","required":false,"in":"query","schema":{"type":"boolean"}},{"name":"search","required":false,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"$ref":"#/components/responses/200"},"401":{"$ref":"#/components/responses/401"},"423":{"$ref":"#/components/responses/423"},"500":{"$ref":"#/components/responses/500"}},"tags":["Webhook DLQ"],"security":[{"bearerAuth":[]}],"x-license-permission":"BASE","x-valid-license-required":true}},"/api/v1/webhook-dlq/{id}":{"get":{"operationId":"WebhookDlqController_getOne","summary":"Get a webhook dead-letter queue entry.","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"$ref":"#/components/responses/200"},"401":{"$ref":"#/components/responses/401"},"423":{"$ref":"#/components/responses/423"},"500":{"$ref":"#/components/responses/500"}},"tags":["Webhook DLQ"],"security":[{"bearerAuth":[]}],"x-license-permission":"BASE","x-valid-license-required":true},"patch":{"operationId":"WebhookDlqController_update","summary":"Update webhook dead-letter queue URL.","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"$ref":"#/components/responses/200"},"401":{"$ref":"#/components/responses/401"},"423":{"$ref":"#/components/responses/423"},"500":{"$ref":"#/components/responses/500"}},"tags":["Webhook DLQ"],"security":[{"bearerAuth":[]}],"x-license-permission":"BASE","x-valid-license-required":true,"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string"}},"required":["url"]}}}}},"delete":{"operationId":"WebhookDlqController_remove","summary":"Delete a webhook dead-letter queue entry.","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"204":{"$ref":"#/components/responses/204"},"401":{"$ref":"#/components/responses/401"},"423":{"$ref":"#/components/responses/423"},"500":{"$ref":"#/components/responses/500"}},"tags":["Webhook DLQ"],"security":[{"bearerAuth":[]}],"x-license-permission":"BASE","x-valid-license-required":true}},"/api/v1/webhook-dlq/{id}/retry":{"post":{"operationId":"WebhookDlqController_retry","summary":"Retry a webhook dead-letter queue entry.","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"$ref":"#/components/responses/200"},"401":{"$ref":"#/components/responses/401"},"423":{"$ref":"#/components/responses/423"},"500":{"$ref":"#/components/responses/500"}},"tags":["Webhook DLQ"],"security":[{"bearerAuth":[]}],"x-license-permission":"BASE","x-valid-license-required":true,"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string"}}}}}}}},"/api/v1/email-logs":{"get":{"operationId":"EmailLogController_list","summary":"List outgoing email delivery records.","parameters":[{"name":"start","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":200,"default":50}},{"name":"sortBy","in":"query","required":false,"schema":{"type":"string","enum":["id","to","subject","status","createdAt","updatedAt","template","authType"],"default":"createdAt"}},{"name":"descending","in":"query","required":false,"schema":{"type":"boolean","default":true}},{"name":"search","in":"query","required":false,"description":"Case-insensitive search across ID, recipients, subject, error, template, and message ID.","schema":{"type":"string"}},{"name":"status","in":"query","required":false,"schema":{"type":"string","enum":["success","failed"]}},{"name":"dateFrom","in":"query","required":false,"schema":{"type":"string","format":"date-time"}},{"name":"dateTo","in":"query","required":false,"schema":{"type":"string","format":"date-time"}}],"responses":{"200":{"description":"Paginated email delivery records.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmailLogListResponse"}}}},"401":{"$ref":"#/components/responses/401"},"403":{"$ref":"#/components/responses/403"},"500":{"$ref":"#/components/responses/500"}},"tags":["Email Log"],"security":[{"bearerAuth":[]}],"x-license-permission":null,"x-valid-license-required":false}},"/api/v1/email-logs/delete":{"post":{"operationId":"EmailLogController_deleteMany","summary":"Delete multiple email delivery records.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["ids"],"properties":{"ids":{"type":"array","minItems":1,"uniqueItems":true,"items":{"type":"integer","minimum":1}}}}}}},"responses":{"201":{"description":"Number of records deleted.","content":{"application/json":{"schema":{"type":"object","properties":{"deleted":{"type":"integer","minimum":0}},"required":["deleted"]}}}},"400":{"$ref":"#/components/responses/400"},"401":{"$ref":"#/components/responses/401"},"403":{"$ref":"#/components/responses/403"},"500":{"$ref":"#/components/responses/500"}},"tags":["Email Log"],"security":[{"bearerAuth":[]}],"x-license-permission":null,"x-valid-license-required":false}},"/api/v1/email-logs/{id}":{"get":{"operationId":"EmailLogController_getOne","summary":"Get one email delivery record.","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","minimum":1}}],"responses":{"200":{"description":"Email delivery record.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmailLog"}}}},"401":{"$ref":"#/components/responses/401"},"403":{"$ref":"#/components/responses/403"},"404":{"$ref":"#/components/responses/404"},"500":{"$ref":"#/components/responses/500"}},"tags":["Email Log"],"security":[{"bearerAuth":[]}],"x-license-permission":null,"x-valid-license-required":false},"delete":{"operationId":"EmailLogController_remove","summary":"Delete one email delivery record.","description":"Soft-deletes the selected email log. A successful request returns no response body.","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","minimum":1}}],"responses":{"204":{"$ref":"#/components/responses/204"},"401":{"$ref":"#/components/responses/401"},"403":{"$ref":"#/components/responses/403"},"404":{"$ref":"#/components/responses/404"},"500":{"$ref":"#/components/responses/500"}},"tags":["Email Log"],"security":[{"bearerAuth":[]}],"x-license-permission":null,"x-valid-license-required":false}},"/api/v1/email-logs/{id}/retry":{"post":{"operationId":"EmailLogController_retry","summary":"Retry a failed email delivery.","description":"Retries a failed email immediately, regardless of the global email-notification toggle. Only failed records with recipient, subject, and template data can be retried.","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","minimum":1}}],"responses":{"201":{"description":"Retry result.","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"result":{"type":"object","additionalProperties":true}},"required":["ok","result"]}}}},"400":{"$ref":"#/components/responses/400"},"401":{"$ref":"#/components/responses/401"},"403":{"$ref":"#/components/responses/403"},"404":{"$ref":"#/components/responses/404"},"500":{"$ref":"#/components/responses/500"}},"tags":["Email Log"],"security":[{"bearerAuth":[]}],"x-license-permission":null,"x-valid-license-required":false}}},"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer"}},"requestBodies":{"workflowPost":{"description":"Workflow object. This endpoint accepts either application/json or multipart/form-data. Use multipart/form-data when uploading a file directly; provide the workflow JSON in the `workflow` form field and the binary file in the `file` form field.","content":{"application/json":{"schema":{},"examples":{"layer_comment_mask_reports":{"summary":"Layer, comments and mask reports.","description":"Workflow with ordered layer, comments and mask reports.","value":{"name":"workflow","webhook":{"url":""},"processes":[{"node":"io","customId":"io-input","input":{"resources":[{"usage":"original","inputURL":"https://calibrateflow-demo.s3-eu-central-1.amazonaws.com/Testfiles/Flyer_A4.pdf"}]},"output":{"resources":[{"usage":"original","name":"input.pdf","customId":"input"}]},"children":[{"customId":"preflight"}]},{"node":"preflight","customId":"preflight","input":{"resources":[{"type":"config","uri":"common://radix/quickchecks/sample.kfpx"}],"resourceCustomIdRefs":["input"]},"data":{"options":[],"arguments":[{"language":"de"}],"variables":[]},"output":{"resources":[{"usage":"report","name":"report.xml","customId":"report_xml","data":{"type":"xml"}},{"usage":"report","name":"report_layer.pdf","customId":"report_layer","data":{"type":"layer","downsampling":150,"overview":"","generateIf":"INFO","hideError":false,"hideWarning":false,"hideInfo":true}},{"usage":"report","name":"report_mask.pdf","customId":"report_mask","data":{"type":"mask","downsampling":150,"generateIf":"INFO","hideError":false,"hideWarning":false,"hideInfo":true}},{"usage":"report","name":"report_comment.pdf","customId":"report_comment","data":{"type":"comment","downsampling":100,"overview":"common://radix/reports/overview_calibrate_v3","generateIf":"INFO","hideError":false,"hideWarning":false,"hideInfo":true}},{"usage":"report","name":"report.pdf","customId":"report_pdf","data":{"type":"template","sidecarUri":"common://radix/reports/overview_calibrate_v3"}},{"usage":"processed","name":"output.pdf"}]}}]}},"profile_repository":{"summary":"Profile with repository reference","description":"Example of using a reference to a specific repository within the defined processes. \nThe {{RepositoryUUID}} must be replaced by the repository UUID in which the kfpx and xslt files are stored.","value":{"name":"workflow","processes":[{"node":"io","customId":"io-input","input":{"resources":[{"usage":"original","inputURL":"https://storage.calibrate.at/public/testfiles/SaddleStitch/01_RadixMap_engl_PRINT.pdf"}]},"output":{"resources":[{"usage":"original","name":"input.pdf","customId":"input"}]},"children":[{"customId":"preflight"}]},{"node":"preflight","customId":"preflight","input":{"resources":[{"type":"config","uri":"repository://{{RepositoryUUID}}/Sheetfed offset (CMYK and spot colors) (GWG 2015).kfpx"}],"resourceCustomIdRefs":["input"]},"data":{"options":[],"arguments":[{"language":"de"}],"variables":[]},"output":{"resources":[{"usage":"report","name":"report.xml","customId":"report_xml","data":{"type":"xml"}},{"usage":"report","name":"report.txt","customId":"report_xslt","data":{"type":"xslt","sidecarUri":"repository://reports/pi4_2_json.xslt"}}]},"children":[]}]}},"masterProfile_repository":{"summary":"MasterProfile with repository reference","description":"This example shows a masterProfile request body with a reference to a specific repository.","value":{"name":"workflow","processes":[{"node":"io","customId":"io-input","input":{"resources":[{"usage":"original","inputURL":"https://storage.calibrate.at/public/testfiles/SaddleStitch/01_RadixMap_engl_PRINT.pdf"}]},"output":{"resources":[{"usage":"original","name":"input.pdf","customId":"input"}]},"children":[{"customId":"preflight"}]},{"node":"preflight","customId":"preflight","input":{"resources":[{"type":"config","uri":"common://cmp/calibrateMasterProfile.kfpx"}],"resourceCustomIdRefs":["input"]},"data":{"options":[],"arguments":[{"language":"de"}],"variables":[{"homePath":"common://cmp/"},{"userPath":"repository://{{RepositoryUUID}}/"}]},"output":{"resources":[{"usage":"report","name":"report.xml","customId":"report_xml","data":{"type":"xml"}},{"usage":"report","name":"report.txt","customId":"report_xslt","data":{"type":"xslt","sidecarUri":"repository://reports/pi4_2_json.xslt"}},{"usage":"report","name":"report.pdf","customId":"report_layer","data":{"type":"layer","reportOptions":["DOWNSAMPLING300","OVERVIEW_TEMPLATE=repository://reports/overview"]}},{"usage":"report","name":"report.pdf","customId":"report_template","data":{"type":"template","sidecarUri":"repository://reports/overview"}},{"usage":"report","name":"report.json","customId":"report_json","data":{"type":"vardump"}},{"type":"production","usage":"processed","name":"result.pdf","customId":"result"}]},"children":[{"customId":"io-output"}]},{"node":"io","customId":"io-output","input":{"resourceCustomIdRefs":["report_xml","report_xslt","report_layer","report_template","report_json","result"]},"output":{"resources":[{"usage":"report","outputURL":"s3://eu-central-1-radix-iflair/jobs"},{"usage":"processed","outputURL":"s3://eu-central-1-radix-iflair/jobs"}]},"children":[]}]}},"masterProfile":{"summary":"MasterProfile","description":"","value":{"name":"workflow","webhook":{"url":""},"processes":[{"node":"io","customId":"io-input","input":{"resources":[{"usage":"original","inputURL":"https://storage.calibrate.at/public/testfiles/SaddleStitch/01_RadixMap_engl_PRINT.pdf"}]},"output":{"resources":[{"usage":"original","name":"input.pdf","customId":"input"}]},"children":[{"customId":"preflight"}]},{"node":"preflight","customId":"preflight","input":{"resources":[{"type":"config","uri":"common://cmp/calibrateMasterProfile.kfpx"}],"resourceCustomIdRefs":["input"]},"data":{"options":[],"arguments":[{"language":"de"}],"variables":[{"homePath":"common://cmp/"},{"userPath":"common://cmp/"},{"template":"pdfx_checks"}]},"output":{"resources":[{"usage":"report","name":"report.xml","customId":"report_xml","data":{"type":"xml"}},{"usage":"report","name":"report.pdf","customId":"report_pdf","data":{"type":"template","sidecarUri":"common://radix/reports/overview"}},{"usage":"processed","name":"output.pdf"}]},"children":[{"customId":"io-output"}]},{"node":"io","customId":"io-output","input":{"output":"preflight"},"output":{"resources":[{"usage":"report","outputURL":"s3://eu-central-1-radix-iflair/jobs"},{"usage":"processed","outputURL":"s3://eu-central-1-radix-iflair/jobs"}]},"children":[]}]}},"overlay":{"summary":"Overlay","description":"Workflow to place a PDF as overlay on another one.","value":{"name":"workflow","processes":[{"node":"io","customId":"io-input","input":{"resources":[{"type":"production","usage":"original","inputURL":"https://calibrateflow-demo.s3-eu-central-1.amazonaws.com/Testfiles/Flyer_A4.pdf"},{"type":"asset","usage":"sidecar","inputURL":"https://calibrateflow-demo.s3-eu-central-1.amazonaws.com/overlay/DICT_OverlayApproved.pdf"}]},"output":{"resources":[{"usage":"original","name":"input.pdf","customId":"input"},{"usage":"sidecar","name":"overlay.pdf","customId":"overlay"}]},"children":[{"customId":"overlay"}]},{"node":"overlay","customId":"overlay","input":{"resourceCustomIdRefs":["input","overlay"]},"data":{"options":["nonisolatedgroup"],"arguments":[{"hoffset":"0mm"},{"voffset":"0mm"},{"placement":"Center"}]},"output":{"resources":[{"usage":"processed","name":"output.pdf"}]},"children":[]}]}},"quickCheck":{"summary":"Quickcheck","description":"Workflow to execute a quick check.","value":{"name":"workflow","processes":[{"node":"io","customId":"io-input","input":{"resources":[{"usage":"original","inputURL":"https://storage.calibrate.at/public/testfiles/SaddleStitch/01_RadixMap_engl_PRINT.pdf"}]},"output":{"resources":[{"usage":"original","name":"input.pdf","customId":"input"}]},"children":[{"customId":"quickcheck"}]},{"node":"quickcheck","customId":"quickcheck","input":{"resourceCustomIdRefs":["input"],"resources":[{"type":"config","uri":"common://radix/quickchecks/ppa.cfg"}]},"data":{"options":[],"arguments":[]},"output":{"resources":[]},"children":[]}]}},"saveAsImg":{"summary":"Save as image","description":"Workflow to render PDF as image with several options.","value":{"name":"workflow","processes":[{"node":"io","customId":"io-input","input":{"resources":[{"usage":"original","inputURL":"https://calibrateflow-demo.s3-eu-central-1.amazonaws.com/Testfiles/Flyer_A4.pdf"}]},"output":{"resources":[{"usage":"original","name":"input.pdf","customId":"input"}]},"children":[{"customId":"saveasimg"}]},{"node":"saveasimg","customId":"saveasimg","input":{"resourceCustomIdRefs":["input"]},"data":{"options":[],"arguments":[{"imgformat":"PNG"},{"resolution":"300"}]},"output":{"resources":[]},"children":[]}]}},"multipleProcesses":{"summary":"Multiple processes","description":"Workflow with a preflight and a saveAsImg process afterwards.","value":{"name":"workflow","processes":[{"node":"io","customId":"io-input","input":{"resources":[{"usage":"original","inputURL":"https://storage.calibrate.at/public/testfiles/SaddleStitch/01_RadixMap_engl_PRINT.pdf"}]},"output":{"resources":[{"usage":"original","name":"input.pdf","customId":"input"}]},"children":[{"customId":"preflight"}]},{"node":"preflight","customId":"preflight","input":{"resources":[{"type":"config","uri":"common://cmp/calibrateMasterProfile.kfpx"}],"resourceCustomIdRefs":["input"]},"data":{"options":[],"arguments":[{"language":"de"}],"variables":[{"homePath":"common://cmp/"},{"userPath":"common://cmp/"},{"template":"pdfx_checks"}]},"output":{"resources":[{"usage":"report","name":"report.xml","customId":"report_xml","data":{"type":"xml"}},{"usage":"report","name":"report.pdf","customId":"report_pdf","data":{"type":"template","sidecarUri":"common://radix/reports/overview_calibrate_v3"}},{"usage":"processed","name":"output.pdf","customId":"output"}]},"children":[{"customId":"saveasimg"}]},{"node":"saveasimg","customId":"saveasimg","input":{"resourceCustomIdRefs":["output"]},"data":{"options":[],"arguments":[{"imgformat":"PNG"},{"resolution":"300"}]},"output":{"resources":[]},"children":[]}]}},"genericProcess_extractImages":{"summary":"Extract images from PDF","description":"Workflow with a generic pdfToolbox node to extract images.","value":{"name":"workflow-generic-action-extractimages","webhook":{"url":"http://192.168.1.36/Peter-Projects/webhook/call.php"},"processes":[{"node":"io","customId":"io-input","input":{"resources":[{"usage":"original","inputURL":"https://calibrateflow-demo.s3.eu-central-1.amazonaws.com/Testfiles/John%20Doe.pdf"}]},"output":{"resources":[{"usage":"original","name":"input.pdf","customId":"input"}]},"children":[{"customId":"pdftoolbox-generic"}]},{"node":"pdftoolbox-generic","customId":"pdftoolbox-generic","input":{"resourceCustomIdRefs":["input"],"resources":[]},"data":{"action":"extractimages","options":[],"arguments":[],"variables":[]},"output":{"resources":[]},"children":[]}]}},"genericProcess_eInvoice":{"summary":"Convert a invoice PDF to a Zugferd XML","description":"Workflow with a generic pdfToolbox node to create a ZUGFeRD compliant invoice - requires the upload of the relevant XML before - see https://help.callassoftware.com/m/62791/l/652759-creating-zugferd-factur-x-invoices","value":{"name":"workflow-generic-actions-einvoice","processes":[{"node":"io","customId":"io-input","input":{"resources":[{"usage":"original","inputURL":"https://storage.calibrate.at/public/testfiles/ZUGFeRD/E-Rechnung%20Nr.%20DE8913532357%20%28eingegangen%29.pdf"}]},"output":{"resources":[{"usage":"original","name":"input.pdf","customId":"input"}]},"children":[{"customId":"pdftoolbox-generic"}]},{"node":"pdftoolbox-generic","customId":"pdftoolbox-generic","input":{"resourceCustomIdRefs":["input"]},"data":{"action":"einvoice","options":[],"arguments":[{"create":"repository://repositoryAlias/ZUGFeRD.xml"}],"variables":[]},"output":{"resources":[]},"children":[]}]}}}},"multipart/form-data":{"schema":{"type":"object","required":["workflow","file"],"properties":{"workflow":{"type":"string","description":"Stringified workflow JSON. Resources can reference the uploaded file with form://file."},"file":{"type":"string","format":"binary","description":"Input file used by workflow resources that reference form://file."}}},"encoding":{"workflow":{"contentType":"application/json"}}}},"required":true},"workflowPostbyUpload":{"description":"Workflow object byUpload.","content":{"multipart/form-data":{"schema":{"type":"object","properties":{"file":{"type":"string","format":"binary"},"workflow":{"type":"string","example":{"name":"workflow","webhook":{"url":""},"processes":[{"node":"preflight","customId":"preflight","input":{"resources":[{"usage":"original","uri":"form://file"},{"type":"config","uri":"common://radix/pdftoolbox/sample.kfpx"}],"resourceCustomIdRefs":["input"]},"data":{"options":[],"arguments":[{"language":"en"}],"variables":[{"VAR_pageCount_count":"3"}]},"output":{"resources":[{"usage":"report","name":"report.xml","customId":"report_xml","data":{"type":"xml"}},{"usage":"report","name":"report.json","customId":"report_xslt","data":{"type":"xslt","sidecarUri":"common://radix/pdftoolbox/sample.xslt"}},{"usage":"report","name":"report.pdf","customId":"overview","data":{"type":"template","reportOptions":["TEMPLATE=common://radix/reports/overview"]}},{"type":"production","usage":"processed","name":"result.pdf","customId":"result"}]}}]}}}}}},"required":true},"repoUpload":{"description":"Upload a file to a repository.","content":{"multipart/form-data":{"schema":{"type":"object","properties":{"file":{"type":"string","format":"binary"}}}}},"required":true},"credentialsPost":{"description":"Credentials object.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CredentialDto"}}},"required":true},"cmpJobticket":{"description":"Jobticket body.","content":{"application/json":{"schema":{},"example":{"customAttributes":{},"jobId":"radix_0815","productList":[{"productType":"FlatWork","productTypeDetails":"flyer","descriptiveName":"flyer","intent":{"layoutIntent":{"sides":"TwoSidedHeadToHead","spreadType":"SinglePage","pages":2,"dimensions":{"width":210,"height":297},"finishedDimensions":{"width":210,"height":297},"bleed":3},"colorIntent":{"surfaceColorFront":{"colorsUsed":["Cyan","Magenta","Yellow","Black"],"printStandard":"FOGRA51"},"surfaceColorBack":{"colorsUsed":["Cyan","Magenta","Yellow","Black"],"printStandard":"FOGRA51"}}}}]}},"multipart/form-data":{"schema":{"type":"object","required":["inputURL","ticket"],"properties":{"inputURL":{"type":"string","format":"binary","description":"PDF file upload. Despite the field name, this multipart value is a binary file, not a URL."},"ticket":{"type":"string","description":"Job ticket serialized as JSON.","example":{"customAttributes":{},"jobId":"radix_0815","productList":[{"productType":"FlatWork","productTypeDetails":"flyer","descriptiveName":"flyer","intent":{"layoutIntent":{"sides":"TwoSidedHeadToHead","spreadType":"SinglePage","pages":2,"dimensions":{"width":210,"height":297},"finishedDimensions":{"width":210,"height":297},"bleed":3},"colorIntent":{"surfaceColorFront":{"colorsUsed":["Cyan","Magenta","Yellow","Black"],"printStandard":"FOGRA51"},"surfaceColorBack":{"colorsUsed":["Cyan","Magenta","Yellow","Black"],"printStandard":"FOGRA51"}}}}]}}}},"encoding":{"inputURL":{"contentType":"application/pdf"},"ticket":{"contentType":"application/json"}}}},"required":true},"RepositoryPost":{"description":"Repository object.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RepositoryDto"}}},"required":true},"createpdf":{"description":"createpdf body.","content":{"application/json":{"schema":{},"example":{"value":{"lang":"en","pageCount":1,"pages":[{"pageNumber":0,"pageLabel":null,"boxes":{"mediabox":{"size":"0 0 420 210"}}}],"marks":[{"type":"barcode","data":123456780,"pageRange":"all","anchor":"Center","refAnchor":"Center","refBox":"MediaBox","barcodeType":"Code 39","offset":"0 0","size":"23mm 7mm","style":{"fill":{"colorSpace":"cmyk","colorValue":"0.0 0.0 0 0.0"},"line":{"colorSpace":"cmyk","colorValue":"0.0 0.0 0.0 1.0"},"specials":{"barwidthreduction":"10%"},"text":{"family":"myFont","size":"6pt","colorSpace":"cmyk","colorValue":"0 0 0 1"}}}],"unit":"mm"}}},"text/html":{"schema":{},"example":"<!DOCTYPE html> <html> <head> <meta charset=\"UTF-8\" /> <title>Hello world!</title> </head> <body> <p>There be penguins!</p> </body> </html>"},"multipart/form-data":{"schema":{"type":"object","required":["pcData"],"properties":{"pcData":{"type":"string","description":"PDF creation configuration serialized as JSON. References to uploaded assets use formKey://<field-name>."},"asset":{"type":"string","format":"binary","description":"Example asset upload. Add one binary form field for each formKey:// reference, using the referenced field name."}}},"encoding":{"pcData":{"contentType":"application/json"}}},"binary":{"schema":{"type":"string","format":"binary","description":"Path to a zip file that containes a packed HTML template that is supported by callas's pdfChip technology."}}}},"fixCheckPreview":{"description":"fixCheckPreview body.","content":{"multipart/form-data":{"schema":{"type":"object","required":["file1"],"properties":{"file1":{"type":"string","format":"binary","description":"PDF file to check, fix, or preview."},"variables":{"type":"string","example":{"homePath":"common://cmp/","userPath":"common://cmp/","template":"pdfx_checks"}}}}},"application/json":{"schema":{},"example":{"homePath":"common://cmp/","userPath":"common://cmp/","template":"pdfx_checks"}}}},"mergepdf":{"description":"mergepdf body.","content":{"multipart/form-data":{"schema":{"type":"object","required":["file"],"properties":{"file":{"type":"array","minItems":2,"description":"PDF files to merge, in merge order.","items":{"type":"string","format":"binary"}}}}}}},"saveasimgs":{"description":"saveasimgs body.","content":{"multipart/form-data":{"schema":{"type":"object","required":["file","imageconvert"],"properties":{"file":{"type":"string","format":"binary","description":"PDF file whose pages will be rendered as images."},"imageconvert":{"type":"string","example":[{"id":"144ppi","resample":144,"density":72,"imgformat":"jpeg","background":"Black"}]}}}},"application/json":{"schema":{},"example":[{"id":"144ppi","resample":144,"density":72,"imgformat":"jpeg","background":"Black"}]},"binary":{"schema":{"type":"string","format":"binary"}}}}},"responses":{"200":{"description":"OK","content":{}},"201":{"description":"Get create many base response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Resource"}}}}},"202":{"description":"Process aborted successfully","content":{"application/json":{"schema":{"type":"object","properties":{"returnCode":{"type":"integer"},"message":{"type":"string"},"type":{"type":"string"}}},"example":{"returnCode":202,"message":"Process aborted successfully","type":"Accepted"}}}},"204":{"description":"No Content","content":{}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"required":["type","message","returnCode"],"type":"object","properties":{"returnCode":{"type":"integer","default":400},"message":{"type":"string"},"type":{"default":"BadRequest","type":"string"}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"returnCode":{"type":"integer","default":401},"message":{"default":"Invalid user credentials","type":"string"},"type":{"default":"AccessDenied","type":"string"}}}}}},"403":{"description":"Forbidden (not enoug permissions or route is locked by license)","content":{"application/json":{"schema":{"type":"object","properties":{"returnCode":{"type":"integer","default":403},"message":{"type":"string"},"type":{"default":"Forbidden","type":"string"}}}}}},"404":{"description":"not found","content":{"application/json":{"schema":{"required":["error","message","returnCode"],"type":"object","properties":{"returnCode":{"type":"integer","default":404},"message":{"type":"string"},"type":{"default":"NotFound","type":"string"}}}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"required":["message","returnCode"],"type":"object","properties":{"returnCode":{"type":"integer","default":412},"message":{"type":"string"},"type":{"default":"PreconditionFailed","type":"string"}}}}}},"415":{"description":"Precondition Failed","content":{"application/json":{"schema":{"required":["message","returnCode"],"type":"object","properties":{"returnCode":{"type":"integer","default":415},"message":{"type":"string"},"type":{"default":"UnsupportedMediaType","type":"string"}}}}}},"422":{"description":"Unprocessable Entity","content":{"application/json":{"schema":{"required":["message","returnCode"],"type":"object","properties":{"returnCode":{"type":"integer","default":422},"message":{"type":"string","example":"Alias already in use"},"type":{"example":"UnprocessableEntity","type":"string"}}}}}},"423":{"description":"Forbidden","content":{"application/json":{"schema":{"required":["message","returnCode"],"type":"object","properties":{"returnCode":{"type":"integer","default":423},"message":{"type":"string"},"type":{"default":"Forbidden","type":"string"}}}}}},"429":{"description":"ThrottlerException: Too Many Requests","content":{"application/json":{"schema":{"required":["message","returnCode"],"type":"object","properties":{"returnCode":{"type":"integer","default":429},"message":{"type":"string"},"type":{"default":"ThrottlerException: Too Many Requests","type":"string"}}}}}},"500":{"description":"internal server error","content":{"application/json":{"schema":{"required":["message","returnCode"],"type":"object","properties":{"returnCode":{"type":"integer","default":500},"message":{"type":"string"},"type":{"default":"GeneralError","type":"string"}}}}}},"944":{"description":"Precondition Failed","content":{"application/json":{"schema":{"required":["message","returnCode"],"type":"object","properties":{"returnCode":{"type":"integer","default":944},"message":{"type":"string"},"type":{"default":"VariablesMissingError","type":"string"}}}}}},"successResponseObj":{"description":"Operation completed successfully.","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","example":true}}}}}},"workflowResponseSumObj":{"description":"ok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/workflowsResponseSumObj"},"examples":{"response":{"$ref":"#/components/examples/response_get_workflow"}}}}},"containerResponseObj":{"description":"created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Container"}}}},"containerResponseArr":{"description":"ok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/containerResponseArr"}}}},"environmentVariableResponseArr":{"description":"ok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/environmentVariableResponseArr"},"example":[{"createdAt":"2023-10-20T10:00:33.359Z","updatedAt":"2023-10-20T10:00:33.359Z","id":8,"deletedAt":null,"service":"worker","key":"timeout","value":"30000"},{"createdAt":"2023-10-20T10:00:33.359Z","updatedAt":"2023-10-20T10:00:33.359Z","id":9,"deletedAt":null,"service":"worker","key":"retrycount","value":"0"}]}}},"environmentVariableResponse":{"description":"created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EnvironmentVariable"},"example":{"createdAt":"2025-11-27T09:25:11.561Z","updatedAt":"2025-11-27T09:25:11.561Z","id":66,"deletedAt":null,"service":"worker","key":"debug","value":"false"}}}},"workflowResponseSumWithOutResourcesObj":{"description":"ok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/workflowsResponseObj"},"examples":{"response":{"$ref":"#/components/examples/response_post_workflow"}}}}},"workflowResponseObj":{"description":"created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Workflow"},"examples":{"response":{"$ref":"#/components/examples/response_post_workflow"}}}}},"workflowResponseArr":{"description":"ok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/workflowsResponseSumArr"},"examples":{"response":{"$ref":"#/components/examples/response_get_workflows"}}}}},"repositoryResponseObj":{"description":"created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Repository"}}}},"repositoryResponseArr":{"description":"ok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/repositoryResponseArr"}}}},"credentialsResponseObj":{"description":"created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Credential"}}}},"credentialsResponseArr":{"description":"ok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/credentialsResponseArr"}}}},"auth":{"description":"created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/authResponse"}}}},"LicenseActivateResponseObj":{"description":"License activated successfully. Returns the activated LicenseFile as XML.","content":{"application/xml":{"schema":{"$ref":"#/components/schemas/LicenseFileResponse"},"examples":{"response":{"$ref":"#/components/examples/LicenseFile"}}}}},"LicenseResponseObj":{"description":"Returns the currently active license as XML.","content":{"application/xml":{"schema":{"$ref":"#/components/schemas/LicenseFileResponse"},"examples":{"response":{"$ref":"#/components/examples/LicenseFile"}}}}},"UserProfileObj":{"description":"created","content":{"application/json":{"examples":{"response":{"$ref":"#/components/examples/Profile"}}}}},"resourceResponseObj":{"description":"created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/resourceResponseObj"}}}},"resourceResponseArr":{"description":"ok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/resourceResponseArr"}}}},"healthcheckResponseObj":{"description":"ok","content":{"application/json":{"schema":{"$ref":"#/components/schemas/healthcheckResponseObj"}}}}},"schemas":{"EmailLog":{"type":"object","required":["id","to","subject","status","createdAt","updatedAt"],"properties":{"id":{"type":"integer"},"to":{"type":"string","description":"Primary recipient list."},"cc":{"type":"string","nullable":true},"bcc":{"type":"string","nullable":true},"subject":{"type":"string"},"template":{"type":"string","nullable":true},"status":{"type":"string","enum":["success","failed"]},"messageId":{"type":"string","nullable":true},"error":{"type":"string","nullable":true},"authType":{"type":"string","nullable":true},"variables":{"type":"object","nullable":true,"additionalProperties":true},"respectNotificationToggle":{"type":"boolean","nullable":true},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"deletedAt":{"type":"string","format":"date-time","nullable":true}}},"EmailLogListResponse":{"type":"object","required":["data","total","start","limit"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/EmailLog"}},"total":{"type":"integer","minimum":0},"start":{"type":"integer","minimum":0},"limit":{"type":"integer","minimum":1,"maximum":200}}},"Workflow":{"type":"object","properties":{"id":{"type":"integer"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"deletedAt":{"type":"string","example":null},"name":{"type":"string","example":"workflow"},"status":{"type":"string","example":"created","enum":["created","processing","done","error"]},"error":{"type":"object","properties":{"returnCode":{"type":"number"},"message":{"type":"string"},"type":{"type":"string"},"cli":{"properties":{"exitCode":{"type":"number"},"stdout":{"type":"string"},"stderr":{"type":"string"}}}}},"output":{"type":"object","properties":{"resources":{"type":"array","items":{"$ref":"#/components/schemas/Resource"}}}},"webhook":{"type":"object","properties":{"url":{"type":"string","pattern":"^(?:http(s)?:\\/\\/)?[\\w.-]+(?:\\.[\\w\\.-]+)+[\\w\\-\\._~:/?#[\\]@!\\$&'\\(\\)\\*\\+,;=.]+$"}}},"workflowSpecId":{"type":"number"},"userId":{"type":"number","default":null},"keycloakUserId":{"type":"string","example":"132"},"externalId":{"type":"string","pattern":"^[x21-x7f]+$","description":"A client can use this id property to link it to a local entity when it receives the callback that includes this property."},"customData":{"type":"array","description":"A client can store a collection of objects that are also part of the final response.","items":{"type":"object","properties":{"key":{"type":"string","pattern":"^[x21-x7f]+$"},"value":{"anyOf":[{"type":"array"},{"type":"boolean"},{"type":"number"},{"type":"object"},{"type":"string"}]}}}},"processes":{"description":"The processes associated with this workflow.","type":"array","items":{"allOf":[{"$ref":"#/components/schemas/Process"}]}}},"required":["name"]},"Process":{"properties":{"node":{"enum":["io","overlay","preflight","quickcheck","saveasimg","pdfchip","mergepdf","splitpdf","imageconvert","mapper","jsonmapper","split","pitstop","cpdf","compare","convertapi","pdftoolbox-generic"]},"customId":{"description":"set a custom process id","type":"string"},"priority":{"type":"number","description":""},"input":{"description":"","type":"object","properties":{"resources":{"type":"array","items":{"allOf":[{"$ref":"#/components/schemas/Resource"}]}},"resourceRefs":{"type":"array"},"resourceCustomIdRefs":{"description":"An array of ids of the resources associated with and used by this process. The resources must be available at the time the process is being executed.","type":"array","items":{"type":"string"}},"output":{"type":"string"},"data":{"type":"object"},"outputs":{"type":"array"},"inputResourceSequence":{"type":"array","items":{"type":"object","properties":{"resourceRefId":{"type":"string"},"pages":{"type":"array","description":"Allows cpdf page range patterns.","items":{"type":"string","pattern":"^(?:~?\\d+|(NOT)?~?\\d+-~?\\d+|\\d+-end|end-\\d+|\\d+DUP~?\\d+(-~?\\d+)?|odd|even|portrait|landscape|reverse|all)$"}}}},"description":""}},"additionalProperties":false},"output":{"description":"","type":"object","properties":{"resources":{"type":"array","items":{"allOf":[{"$ref":"#/components/schemas/Resource"}]}}}},"data":{"description":"Additional process data. For jsonmapper, this may contain an inline JSONata expression, resolved bindings and XML parser options.","type":"object","properties":{"options":{"description":"Process options.","type":"array","items":{"type":"string"}},"arguments":{"description":"Process arguments. jsonmapper supports { \"addToResponse\": true } to include the mapped result in the workflow response.","type":"array","items":{"type":"object"}},"variables":{"description":"Variables used by the process.","type":"array","items":{"type":"object"}},"expression":{"description":"Inline JSONata expression for jsonmapper. If omitted, jsonmapper expects a config resource containing the JSONata expression.","type":"string"},"bindings":{"description":"JSONata bindings for jsonmapper. Values can be literals or resolvable URIs such as common://, repository://, radix://, file:// or customId://.","type":"object"},"xml2jsonOptions":{"description":"fast-xml-parser options used by jsonmapper when the input resource is XML.","type":"object"}}},"children":{"description":"List of child processes to call","type":"array","items":{"type":"object","properties":{"customId":{"description":"custom ID of the next child process to call","type":"string"}}}}}},"EnvironmentVariable":{"type":"object","properties":{"service":{"type":"string","pattern":"^[A-Za-z0-9_-]+$","description":"Name of the service this setting is for. Check documentation of supported services."},"key":{"type":"string","pattern":"^[A-Za-z0-9_-]+$","description":"Name of the key of that service this setting is for. Check documentation of supported keys."},"value":{"type":"string"},"id":{"type":"integer"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"deletedAt":{"type":"string","example":null}}},"Container":{"type":"object","properties":{"id":{"type":"integer"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"deletedAt":{"type":"string","example":null},"uuid":{"type":"string"},"path":{"type":"string"},"userId":{"type":"number","default":null},"keycloakUserId":{"type":"string"}}},"Repository":{"type":"object","properties":{"id":{"type":"integer"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"deletedAt":{"type":"string","example":null},"uuid":{"type":"string"},"path":{"type":"string"},"alias":{"type":"string"},"public":{"type":"string","example":"0","enum":["0","1"]},"userId":{"type":"number","default":null},"keycloakUserId":{"type":"string"}}},"RepositoryDto":{"type":"object","properties":{"alias":{"type":"string","example":"myRepo"},"public":{"type":"string","example":"0","enum":["0","1"]}}},"Credential":{"type":"object","properties":{"id":{"type":"integer","example":1},"createdAt":{"type":"string","example":"2024-01-02T13:10:26.969Z","format":"date-time"},"updatedAt":{"type":"string","example":"2024-01-02T13:13:53.382Z","format":"date-time"},"deletedAt":{"type":"string","example":null},"type":{"type":"string","example":"s3","enum":["s3","minio"]},"endpoint":{"type":"string","example":"s3.amazonaws.com"},"bucket":{"type":"string","example":"eu-central-1-radix-iflair"},"region":{"type":"string","example":"eu-central-1"},"accessKey":{"type":"string","example":"********"},"secretKey":{"type":"string","example":"********"},"userId":{"type":"number","default":null},"keycloakUserId":{"type":"string"}},"required":["type","endpoint","bucket","accessKey","secretKey"]},"CredentialDto":{"description":"Credentials are needed for files to get pulled or pushed from a cloud storage using e.g. s3://<bucketname>/ as protocol. Currently, only the S3 protocol is implemented.","type":"object","properties":{"type":{"type":"string","example":"minio","enum":["s3","minio"],"description":"Currentlyonly the S3 protocol is implemented. If you choose `s3`, then defined the endpoint as `s3.amazoneaws.com`.\nChoose `minio`, which also uses the S3 protocol, for this self hostest storage service. The endpoint must be the setup URL of the minio server."},"endpoint":{"type":"string","description":"The endpoint that shall be used. If you choose `s3`, then defined the endpoint as `s3.amazoneaws.com`.","example":"storage.calibrate.at"},"bucket":{"type":"string","example":"radix-test","description":"The bucket that shall get used. When using the resouce URI `s3://<bucketname>/`, the bucket name must be defined in the credentials. The bucket name must be unique and not used by other users."},"region":{"type":"string","example":"eu-central-1"},"accessKey":{"type":"string","example":"********"},"secretKey":{"type":"string","example":"********"}},"required":["type","endpoint","bucket","accessKey","secretKey"]},"Resource":{"type":"object","properties":{"id":{"type":"integer"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"deletedAt":{"type":"string","example":null},"customId":{"type":"string"},"name":{"type":"string"},"originalName":{"type":"string"},"type":{"type":"string","example":"config","enum":["config","asset","production","tmp"]},"usage":{"type":"string","example":"original","enum":["original","processed","report","sidecar","profile"]},"direction":{"type":"string","example":"original","enum":["input","output"]},"path":{"type":"string"},"uri":{"type":"string"},"inputURL":{"type":"string","nullable":true,"description":"Source URL for the resource. Supported schemes: `http://`, `https://`, `s3://<bucket>`, `repository://<alias>/path`, `radix://<uuid>`."},"outputURL":{"type":"string","nullable":true,"description":"Destination URL where the resource will be stored. Supported schemes: `s3://<bucket>`, `repository://<alias>/path`, `radix://<uuid>`."},"downloadURL":{"type":"string","nullable":true,"description":"Relative API path to download this resource, e.g. `/api/v1/containers/{id}/download/{filename}`."},"mimeType":{"type":"string"},"data":{"type":"object","properties":{"type":{"type":"string","example":"template","enum":["json","xml","xslt","template","layer","vardump","mask","comment","pdf","text"]},"sidecarUri":{"type":"string"},"reportOptions":{"type":"array","items":{"type":"string"}},"arguments":{"type":"object"},"overview":{"type":"boolean","example":false},"downsampling":{"type":"number"},"hideError":{"type":"boolean","example":false},"hideWarning":{"type":"boolean","example":false},"hideInfo":{"type":"boolean","example":false},"generateIf":{"type":"string","example":"ALWAYS","enum":["ALWAYS","ERROR","WARNING","HIT","NOHIT"]}}},"isIterable":{"type":"boolean","example":false},"isFolder":{"type":"boolean","example":false},"fileSize":{"type":"string","description":"File size in bytes, returned as a string.","nullable":true},"repositoryId":{"type":"number"},"containerId":{"type":"number"},"processId":{"type":"number"},"workflowId":{"type":"number"}}},"ResourceDto":{"type":"object","properties":{"name":{"type":"string"},"originalName":{"type":"string"},"type":{"type":"string","example":"production","enum":["config","asset","production","tmp"]},"usage":{"type":"string","example":"original","enum":["original","processed","report","sidecar","profile"]},"direction":{"type":"string","example":"original","enum":["input","output"]},"path":{"type":"string"},"uri":{"type":"string"},"inputURL":{"type":"string","nullable":true,"description":"Source URL for the resource. Supported schemes: `http://`, `https://`, `s3://<bucket>`, `repository://<alias>/path`, `radix://<uuid>`."},"outputURL":{"type":"string","nullable":true,"description":"Destination URL where the resource will be stored. Supported schemes: `s3://<bucket>`, `repository://<alias>/path`, `radix://<uuid>`."},"downloadURL":{"type":"string","nullable":true,"description":"Relative API path to download this resource, e.g. `/api/v1/containers/{id}/download/{filename}`."},"mimeType":{"type":"string"},"isFolder":{"type":"boolean","example":false},"containerId":{"type":"number"}}},"CreateManyResourceDto":{"type":"object","properties":{"bulk":{"type":"array","items":{"$ref":"#/components/schemas/ResourceDto"}}},"required":["bulk"]},"LoginRequest":{"type":"object","properties":{"username":{"type":"string"},"password":{"type":"string"}},"required":["username","password"]},"TwoFaVerifyRequest":{"type":"object","properties":{"temp_token":{"type":"string","description":"Temporary token returned by the interactive login 2FA setup or challenge response."},"otp":{"type":"string","description":"Six-digit one-time password from the user's authenticator app.","pattern":"^\\d{6}$","minLength":6,"maxLength":6,"example":"123456"}},"required":["temp_token","otp"]},"TwoFactorSetupResponse":{"type":"object","properties":{"requires_2fa_setup":{"type":"boolean","example":true},"qr_code":{"type":"string","description":"Data URL containing the QR code for authenticator-app enrollment."},"manual_secret":{"type":"string","description":"Manual authenticator secret. Store this safely during setup."},"temp_token":{"type":"string","description":"Temporary token to submit to `/api/auth/2fa/verify` together with the OTP."}}},"TwoFactorChallengeResponse":{"type":"object","properties":{"requires_2fa":{"type":"boolean","example":true},"temp_token":{"type":"string","description":"Temporary token to submit to `/api/auth/2fa/verify` together with the OTP."}}},"KeycloakRefreshPayload":{"properties":{"refresh_token":{"type":"string"}},"required":["refresh_token"]},"ForgotPasswordRequest":{"title":"Forgot password request","description":"Supply either `username` or `email` to identify the account. At least one field is required.","properties":{"username":{"type":"string","description":"The radixAPI username of the account."},"email":{"type":"string","format":"email","description":"The email address of the account."}}},"ResetPasswordRequest":{"title":"Reset password request","properties":{"token":{"type":"string","description":"The one-time reset token received in the password reset email."},"password":{"type":"string","description":"The new password to set for the account.","minLength":8}},"required":["token","password"]},"resourceResponseObj":{"$ref":"#/components/schemas/Resource"},"resourceResponseArr":{"title":"resource response array","type":"array","items":{"$ref":"#/components/schemas/resourceResponseObj"}},"healthcheckResponseObj":{"title":"healthcheck response object","properties":{"name":{"type":"string"},"version":{"type":"string"},"started":{"type":"string"},"modules":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"version":{"type":"string"}}}},"checks":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"status":{"type":"string"},"checkedAt":{"type":"string"},"message":{"type":"string"}}}}}},"file":{"title":"file parameter","type":"object","properties":{"file":{"type":"string"}}},"workflowsResponseObj":{"title":"workflow response object","required":["createdAt","id","name","status","updatedAt"],"type":"object","properties":{"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"id":{"type":"integer"},"name":{"type":"string"},"status":{"type":"string","enum":["created","processing","done","error","aborted"]},"deletedAt":{"type":"string","format":"date-time","nullable":true},"workflowSpecId":{"type":"integer","nullable":true},"keycloakUserId":{"type":"string","description":"Keycloak UUID of the user who created the workflow."},"externalId":{"type":"string","nullable":true,"description":"Optional external reference ID passed on workflow creation."},"customData":{"nullable":true,"description":"Arbitrary custom payload passed on workflow creation."},"webhook":{"description":"Webhook delivery info. Present when a callback URL was provided.","nullable":true,"type":"object","properties":{"url":{"type":"string","description":"The callback URL the webhook was sent to."},"error":{"description":"Populated when the webhook delivery failed.","nullable":true,"type":"object","properties":{"returnCode":{"type":"integer"},"message":{"type":"string"},"type":{"type":"string"},"cli":{"nullable":true,"type":"object"}}}}},"error":{"description":"Populated when `status` is `error`.","nullable":true,"type":"object","properties":{"returnCode":{"type":"integer","description":"HTTP-style return code (e.g. 500)."},"message":{"type":"string","description":"Human-readable error message."},"type":{"type":"string","description":"Error type classification."},"cli":{"description":"CLI process details, if the error originated from a CLI call. Null otherwise.","nullable":true,"type":"object","properties":{"exitCode":{"type":"integer","description":"Exit code of the CLI process."},"stdout":{"type":"string","description":"Standard output of the CLI process."},"stderr":{"type":"string","description":"Standard error output of the CLI process."}}}}},"result":{"description":"Information about the result of the cli call.","type":"object","properties":{"severity":{"enum":[1,2,3],"description":"1=info\n2 = warning\n3 = error"}}},"customResult":{"description":"Workflow-type-specific result payload. Structure varies depending on the workflow (e.g. nesting layouts for `imposer_nesting`).","nullable":true,"type":"object","additionalProperties":true},"output":{"description":"Output resources produced by the workflow.","type":"object","properties":{"resources":{"type":"array","items":{"$ref":"#/components/schemas/Resource"}}}}}},"workflowsResponseArr":{"title":"workflow response array","type":"array","items":{"$ref":"#/components/schemas/workflowsResponseObj"}},"workflowsResponseSumArr":{"title":"workflow response summary array","oneOf":[{"$ref":"#/components/schemas/workflowsResponseArr"}]},"workflowsResponseSumObj":{"title":"workflow response object","oneOf":[{"$ref":"#/components/schemas/workflowsResponseObj"}]},"containerResponseArr":{"title":"container response array","type":"array","items":{"$ref":"#/components/schemas/Container"}},"environmentVariableResponseArr":{"title":"environmentVariableresponse Arr","type":"array","items":{"$ref":"#/components/schemas/environmentVariableResponse"}},"environmentVariableResponse":{"title":"environmentVariableresponse","type":"object","$ref":"#/components/schemas/EnvironmentVariable"},"repositoryResponseArr":{"title":"repository response array","type":"array","items":{"$ref":"#/components/schemas/Repository"}},"credentialsResponseArr":{"title":"credentials response array","type":"array","items":{"$ref":"#/components/schemas/Credential"}},"authResponse":{"title":"authentification response object","required":["data","status"],"type":"object","properties":{"access_token":{"type":"string"},"expires_in":{"example":86400,"type":"number"},"refresh_expires_in":{"example":604800,"type":"number"},"refresh_token":{"type":"string"},"token_type":{"type":"string","example":"Bearer"},"not-before-policy":{"type":"number","example":0},"session_state":{"type":"string"},"scope":{"default":"eMail profile","type":"string"}}},"AuditLog":{"type":"object","properties":{"message":{"type":"string","example":"Workflow <id:129> finished"},"context":{"type":"string","example":"WorkerProcessor"},"level":{"type":"string","description":"Log level.","example":"log"},"workflowId":{"type":"integer","example":129},"processId":{"type":"integer","example":315},"createdAt":{"type":"string","format":"date-time","example":"2025-11-27T08:09:35.064Z"}},"required":["message","context","level","workflowId","processId","createdAt"]},"AuditLogListResponse":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/AuditLog"}},"count":{"type":"integer","description":"Number of items in this page.","example":10},"total":{"type":"integer","description":"Total number of items matching the filter.","example":10},"page":{"type":"integer","description":"Current page number (1-based).","example":1},"pageCount":{"type":"integer","description":"Total number of pages.","example":1}},"required":["data","count","total","page","pageCount"]},"LicenseFileResponse":{"type":"object","xml":{"name":"LicenseFile"},"properties":{"License":{"type":"object","properties":{"licenseTypeKey":{"type":"string","example":"SUBSCRIPTION"},"maintenanceContractId":{"type":"string","example":"radixapi_13"},"workstationGuid":{"type":"string","format":"uuid","example":"d63da9b4-a679-4c02-9604-ed95ea8d630c"},"productKey":{"type":"string","example":"RADIX_API"},"productVersion":{"type":"string","example":"2.1.0"},"workstationMachineStatus":{"type":"string","enum":["ACTIVE","INACTIVE"],"example":"ACTIVE"},"maintenanceExpiryDate":{"type":"string","format":"date","example":"2026-04-18"},"generated":{"type":"string","format":"date-time","example":"2026-03-30T08:25:17.934+02:00"},"licenseValidDate":{"type":"string","format":"date","example":"2026-04-18"},"licenseExpiryDate":{"type":"string","format":"date","example":"2026-04-18"},"installableProductVersion":{"type":"string","example":"2.1.0"},"packages":{"type":"object","properties":{"packages":{"type":"array","items":{"type":"object","properties":{"description":{"type":"string"},"guid":{"type":"string","format":"uuid"},"name":{"type":"string"},"packageCount":{"type":"integer"},"type":{"type":"string","enum":["BASE","FLAVOR"]}}}}}},"packageInfo":{"type":"object","properties":{"packageInfo":{"type":"array","items":{"type":"object","properties":{"availableFrom":{"type":"string","format":"date-time"},"availableUntil":{"type":"string","format":"date-time"},"guid":{"type":"string","format":"uuid"},"name":{"type":"string"},"packageCount":{"type":"integer"}}}}}},"permissions":{"type":"object","properties":{"permissions":{"type":"array","description":"List of permission flags that define which nodes and marketing routes are enabled.","items":{"type":"object","properties":{"key":{"type":"string","example":"NODE.IMPOSER"},"value":{"type":"string","example":"true"},"valueType":{"type":"string","enum":["BOOLEAN","INTEGER","STRING"],"example":"BOOLEAN"}}}}}},"oemPartner":{"type":"object","properties":{"companyName":{"type":"string","example":"PPD"},"logo":{"type":"string","description":"Base64-encoded PNG logo."},"oemPartnerKey":{"type":"string","example":"PPD"},"url":{"type":"string","example":"www.prepress-digital.com"}}},"customer":{"type":"string","description":"Encrypted customer identifier."}}},"hardwareHashV2":{"type":"string","description":"Hardware fingerprint of the licensed machine.","example":"M4 MaxG6H6G7QQD3-calibrate.0ba028c9e3d87e1b"},"signature":{"type":"string","description":"Digital signature for license integrity verification."},"uaServerUrl":{"type":"string","description":"URL of the license activation server.","example":"https://ua-stage.prepress-digital.com"},"version":{"type":"string","example":"V5"}}},"CalculateNestingRequest":{"type":"object","required":["unit","layout","printItems","imposeOptions"],"properties":{"jobId":{"type":"string","description":"Optional client-provided job identifier, used as the core imposeId for progress tracking. A UUID is generated when omitted. Must not contain control characters.","example":"209f6f15-41b1-4d66-a413-e26fc5326b43"},"unit":{"type":"string","enum":["MM","PT","INCH"],"description":"Measurement unit used for all dimension values in the request.","example":"MM"},"layout":{"type":"object","required":["type","width","height","margin"],"properties":{"type":{"type":"string","enum":["SHEET","ROLL"],"description":"Substrate type. Use SHEET for fixed-size substrates or ROLL for roll-fed substrates.","example":"SHEET"},"width":{"type":"number","description":"Width of the substrate in the specified unit.","example":600},"height":{"type":"number","description":"Height of the substrate in the specified unit. For ROLL layouts this defines the maximum roll length.","example":600},"rollLength":{"type":"number","description":"Total roll length for ROLL substrate types.","example":0},"margin":{"type":"object","description":"Substrate margins in the specified unit. Required; all four edges are required.","required":["top","right","bottom","left"],"properties":{"top":{"type":"number","example":0},"right":{"type":"number","example":0},"bottom":{"type":"number","example":0},"left":{"type":"number","example":0}}}}},"printItems":{"type":"array","description":"List of print items to be placed on the substrate.","items":{"type":"object","required":["id","width","height","sides","amount","pages"],"properties":{"id":{"type":"string","description":"Unique identifier of the print item.","example":"001"},"width":{"type":"number","description":"Width of the print item in the specified unit.","example":140},"height":{"type":"number","description":"Height of the print item in the specified unit.","example":80},"sides":{"type":"string","enum":["ONE_SIDED","TWO_SIDED_HEAD_TO_HEAD","TWO_SIDED_HEAD_TO_FOOT"],"description":"Whether the item is printed on one or both sides.","example":"ONE_SIDED"},"amount":{"type":"integer","description":"Number of copies required for this print item.","example":50},"pages":{"type":"integer","description":"Number of pages per copy.","example":1},"nestingShape":{"type":"object","description":"Optional custom nesting shape defined by an SVG contour or a file URL.","properties":{"url":{"type":"string","description":"URL to an SVG or PDF file describing the nesting contour."},"svgContent":{"type":"string","description":"Inline SVG path data for the nesting contour."}}},"sequence":{"type":"integer","description":"Placement sequence priority. Lower values are placed first.","example":0},"rotation":{"type":"string","enum":["ROTATE_0","ROTATE_90","ROTATE_180","ROTATE_270","FEEDING_DIRECTION","ACROSS_FEEDING_DIRECTION","UNIFORM_ROTATION","NON_UNIFORM_ROTATION"],"description":"Per-item rotation constraint. Distinct from imposeOptions.nestingOptions.rotation.","example":"NON_UNIFORM_ROTATION"},"overProductionMaxPercent":{"type":"number","description":"Maximum allowed over-production as a percentage of amount.","example":0},"metadata":{"type":"object","description":"Arbitrary key/value metadata for this print item, used for grouping and sorting.","additionalProperties":{"type":"string"},"example":{"name":"Sample Print Item 1","customField1":"Custom Value 1"}}}}},"imposeOptions":{"type":"object","required":["imposeMode","nestingOptions","alignment"],"properties":{"imposeMode":{"type":"string","enum":["NESTING"],"description":"Imposition mode. NESTING is currently the only mode implemented by the engine.","example":"NESTING"},"nestingOptions":{"type":"object","description":"Options specific to NESTING impose mode.","required":["shapeType","spacing","quantityStrategy","layoutPagination","rotation","orderingMethod","cutOptimized","bleed"],"properties":{"shapeType":{"type":"string","enum":["RECTANGLE","CONTOUR"],"example":"RECTANGLE"},"spacing":{"type":"object","required":["x","y"],"properties":{"x":{"type":"number","example":0},"y":{"type":"number","example":0}}},"bleed":{"type":"object","description":"Bleed values added around each placed item. There is no item-specific bleed override.","required":["top","right","bottom","left"],"properties":{"top":{"type":"number","example":3},"right":{"type":"number","example":3},"bottom":{"type":"number","example":3},"left":{"type":"number","example":3}}},"layoutPagination":{"type":"string","enum":["MULTIPAGE","SINGLEPAGE"],"description":"Whether overflow items continue on additional pages or are discarded.","example":"MULTIPAGE"},"preangulation":{"type":"number","description":"Pre-rotation angle applied to all items before nesting.","example":0},"numberOfAnglesForShapeNesting":{"type":"integer","description":"Number of rotation angles evaluated during contour nesting.","example":0},"ignoreItemRotation":{"type":"boolean","description":"When true, item rotation is disabled during nesting.","example":true},"orderingMethod":{"type":"string","enum":["GROUPING_AND_SORTING","BY_SORTINDEX","MANUAL","SORTING"],"example":"GROUPING_AND_SORTING"},"grouping":{"type":"array","description":"Defines how items are grouped and sorted on the substrate.","items":{"type":"object","required":["groupingKey","groupingMode","sortingKey","sortingOrder"],"properties":{"groupingKey":{"type":"string","example":"name"},"groupingMode":{"type":"string","enum":["LINEBREAK","PAGEBREAK"],"example":"LINEBREAK"},"sortingKey":{"type":"string","example":"name"},"sortingOrder":{"type":"string","enum":["ASCENDING","DESCENDING"],"example":"DESCENDING"}}}},"cutOptimized":{"type":"string","enum":["NONE","GUILLOTINE"],"example":"NONE"},"quantityStrategy":{"type":"string","enum":["AUTOMAT","FILL_SHEET","NONE","SUBSTRATE_OPTIMIZED","KEEP_EXACT_RATIO_OF_COPIES","FORCE_NUMBER_OF_COPIES"],"example":"SUBSTRATE_OPTIMIZED"},"rotation":{"type":"string","enum":["PROHIBIT_ROTATION","UNIFORM_ROTATION","NON_UNIFORM_ROTATION","FORCE_90_ROTATION","FORCE_180_ROTATION","FORCE_270_ROTATION","UNIFORM_ROTATION_WEAK"],"description":"Global rotation policy. Distinct from printItems[].rotation.","example":"NON_UNIFORM_ROTATION"}}},"trimHorizontal":{"type":"boolean","description":"Add horizontal trim marks.","example":false},"trimVertical":{"type":"boolean","description":"Add vertical trim marks.","example":false},"alignment":{"type":"string","enum":["TOP_LEFT","TOP_CENTER","TOP_RIGHT","CENTER_LEFT","CENTER_CENTER","CENTER_RIGHT","BOTTOM_LEFT","BOTTOM_CENTER","BOTTOM_RIGHT"],"description":"Alignment of placed items on the substrate.","example":"TOP_LEFT"}}},"imposeSettings":{"type":"object","description":"Optional SVG processing, bleed calculation, and optimization settings. Omit to use server defaults.","properties":{"shapeNestingSettings":{"type":"object","description":"Settings for SVG shape processing.","properties":{"preset":{"type":"string","enum":["FAST","BALANCED","DETAILED"]},"flatness":{"type":"number"},"pointSimplificationFactor":{"type":"number"},"maxNumberOfPoints":{"type":"integer"},"distance":{"type":"number"},"pointSimplificationMethod":{"type":"string","enum":["NONE","FRACTION","MAX_POINTS"]},"pointSimplificationAlgorithm":{"type":"string","enum":["DOUGLAS_PEUKER","POLYGON_HULL","TOPOLOGY_PRESERVING","HYBRID"]},"offsetJoinType":{"type":"string","enum":["SQUARE","ROUND","MITER"]},"offsetMiterLimit":{"type":"number"},"offsetCurveTolerance":{"type":"number"}}},"bleedSettings":{"type":"object","description":"Settings for bleed calculation.","properties":{"preset":{"type":"string","enum":["FAST","BALANCED","DETAILED"]},"flatness":{"type":"number"},"densifyBleedPathDistanceTolerance":{"type":"number"},"densifyOverlapDistanceTolerance":{"type":"number"},"offsetJoinType":{"type":"string","enum":["SQUARE","ROUND","MITER"]},"offsetMiterLimit":{"type":"number"},"offsetCurveTolerance":{"type":"number"}}},"optimizationSettings":{"type":"object","description":"Time and iteration limits for the optimization algorithm. Overridden by the maxTime / maxNotImprovedIterations query parameters when present.","properties":{"maxTimeSec":{"type":"integer"},"maxNotImprovedIterations":{"type":"integer"}}}}}},"example":{"unit":"MM","layout":{"type":"SHEET","width":600,"height":600,"rollLength":0,"margin":{"top":0,"right":0,"bottom":0,"left":0}},"printItems":[{"id":"001","width":140,"height":80,"sides":"ONE_SIDED","amount":50,"pages":1,"nestingShape":{"url":"","svgContent":""},"sequence":0,"rotation":"NON_UNIFORM_ROTATION","overProductionMaxPercent":0,"metadata":{"name":"Sample Print Item 1","customField1":"Custom Value 1"}}],"imposeOptions":{"imposeMode":"NESTING","nestingOptions":{"shapeType":"RECTANGLE","spacing":{"x":0,"y":0},"bleed":{"top":3,"right":3,"bottom":3,"left":3},"layoutPagination":"MULTIPAGE","preangulation":0,"numberOfAnglesForShapeNesting":0,"ignoreItemRotation":true,"orderingMethod":"GROUPING_AND_SORTING","grouping":[{"groupingKey":"name","groupingMode":"LINEBREAK","sortingKey":"name","sortingOrder":"DESCENDING"}],"cutOptimized":"NONE","quantityStrategy":"SUBSTRATE_OPTIMIZED","rotation":"NON_UNIFORM_ROTATION"},"trimHorizontal":false,"trimVertical":false,"alignment":"TOP_LEFT"}}}},"parameters":{"resize":{"description":"Resize the input resource to the defined value. Use either a fixed size (e.g. 200x200) or a percentage value (e.g. 150%).","in":"query","name":"resize","required":false,"schema":{"type":"string"}},"resample":{"description":"Resize the image so that its rendered size remains the same as the original at the specified target resolution. The value must be the target resolution in DPI.","in":"query","name":"resample","required":false,"schema":{"type":"number"}},"density":{"description":"Set the horizontal and vertical resolution of an image for rendering to devices.","in":"query","name":"density","required":false,"schema":{"type":"number"}},"imgFormatImageMagick":{"description":"Defines the format of the resulting image.","in":"query","name":"imageformat","required":false,"schema":{"type":"string","enum":["png","jpg","gif","jpeg"]}},"background":{"description":"This option accepts a color name, a hex color, or a numerical RGB, RGBA, HSL, HSLA, CMYK, or CMYKA specification. E.g. blue, #ddddff, rgb(255,255,255)","in":"query","name":"background","required":false,"schema":{"type":"string"}},"debugImageMagick":{"description":"This option enables debugging.","in":"query","name":"debug","required":false,"allowEmptyValue":true,"schema":{"type":"string"}},"splitScheme":{"description":"Defines a custom splitting scheme that affects the way the PDF is split. For more information, see the following URL: https://help.callassoftware.com/m/pdftoolbox/l/660040-commands-related-to-arrange#split-pdf","in":"query","name":"splitscheme","required":false,"schema":{"default":"*1","type":"string"}},"digitsSplitPdf":{"description":"Specifies how many digits to use for naming the split PDF files. For more information, see the following URL: https://help.callassoftware.com/m/pdftoolbox/l/660040-commands-related-to-arrange#split-pdf","in":"query","name":"digits","required":false,"schema":{"default":4,"type":"number"}},"language":{"description":"Defines report language.","in":"query","name":"language","required":false,"schema":{"default":"en","type":"string","enum":["en","de","ge","fr","it","es"]}},"debugCmp":{"description":"Defines the debug level for logging messages of the calibrate masterprofile.","in":"query","name":"debug","required":false,"schema":{"default":0,"type":"number","enum":[0,1,2,3]}},"downsampleReport":{"description":"If defined the images included in any of the reports 'comment', 'layer' or 'mask' will be downsampled to the defined resultion (in dpi).","in":"query","name":"downsampleReport","required":false,"schema":{"default":72,"type":"number"}},"htmlReport":{"description":"When defined, a HTML report gets generated. The resulting file is named report.html.","in":"query","name":"htmlReport","required":false,"allowEmptyValue":true,"schema":{"default":"common://radix/reports/compacthtml.xslt","type":"string"}},"commentReport":{"description":"If defined, a comment report is generated. Optionally, an overview page can be generated by setting the value to 'overview' or to a URI that points to a template.","in":"query","name":"commentReport","required":false,"allowEmptyValue":true,"schema":{"default":"","enum":["","overview","common://radix/reports/overview","common://radix/reports/overview_calibrate_v2","common://radix/reports/overview_calibrate_v3"]}},"layerReport":{"description":"If defined, a layer report is generated. Optionally, an overview page can be generated by setting the value to 'overview' or to a URI that points to a template.","in":"query","name":"layerReport","required":false,"allowEmptyValue":true,"schema":{"default":"","enum":["","overview","common://radix/reports/overview","common://radix/reports/overview_calibrate_v2","common://radix/reports/overview_calibrate_v3"]}},"maskReport":{"description":"If defined, a mask report is generated. Optionally, an overview page can be generated by setting the value to 'overview' or to a URI that points to a template.","in":"query","name":"maskReport","required":false,"allowEmptyValue":true,"schema":{"default":"","enum":["","overview","common://radix/reports/overview","common://radix/reports/overview_calibrate_v2","common://radix/reports/overview_calibrate_v3"]}},"callback":{"description":"If a URL is defined, the defined callback URL will get called with the resulting workflow as payload.","in":"query","name":"callback","required":false,"schema":{"default":"","type":"string"}},"debug":{"description":"Defines if the index.html should be saved in addition to the output pdf.","in":"query","name":"debug","required":false,"schema":{"default":false,"type":"boolean"}},"profile":{"description":"Defines the PDF-Toolbox profile that should be used for processing.","in":"query","name":"profile","required":true,"schema":{"default":"common://radix/pdftoolbox/sample.kfpx","type":"string"}},"jsonReport":{"description":"When defined, a JSON reports gets generated. The resulting file is named report.json.","in":"query","name":"jsonReport","required":false,"allowEmptyValue":true,"schema":{"default":"N/A","type":"string"}},"jsonInfoReport":{"description":"When defined, a JSON v2 reports gets generated. The resulting file is named info.json.","in":"query","name":"jsonInfoReport","required":false,"allowEmptyValue":true,"schema":{"default":"","type":"string","enum":["On","Off",""]}},"xmlReport":{"description":"When defined, a XML reports gets generated. The resulting file is named report.xml","in":"query","name":"xmlReport","allowEmptyValue":true,"required":false,"schema":{"default":"N/A","type":"string"}},"pdfReport":{"description":"When defined, a PDF reports gets generated. The value defines the folder name of the report template to be used. The resulting file is named report.pdf","in":"query","name":"pdfReport","allowEmptyValue":true,"required":false,"schema":{"default":"common://radix/reports/overview_calibrate_v3","enum":["common://radix/reports/overview","common://radix/reports/overview_calibrate_v2","common://radix/reports/overview_calibrate_v3"]}},"analyse":{"description":"When defined, a quick check is performed on the resulting PDF. The resulting file is the same name as the original file with the suffix `.json`.\nThis query parameter can get used without a value. When a value is defined, it must be a valid path to a quickcheck config file.","in":"query","name":"analyse","required":false,"allowEmptyValue":true,"schema":{"type":"string"}},"analyseSaveasimgs":{"description":"When defined, a quick check is performed on the resulting PDF. The resulting file is the same name as the original file with the suffix `.json`.","in":"query","name":"analyseSaveasimgs","required":false,"schema":{"default":"common://radix/quickchecks/ppa.cfg","type":"string"}},"preview":{"description":"When defined, a preview is generated from the resulting PDF.","in":"query","name":"preview","required":false,"allowEmptyValue":true,"schema":{"default":"no value required"}},"previewPagerange":{"description":"When defined, allows to define the pagerange. A pagerange can be expressed of 1 or more pages or pageranges. negative values define relative pages, beginning from the last page. Examples: 1-3 (first thru third page); 1,3 (page 1 and 3); 1--1 (from first to last page); 1,-1 (first and last page).","in":"query","name":"previewPagerange","required":false,"schema":{"default":"1--1","type":"string"}},"previewColorspace":{"description":"Defines the color space. Allowed values are RGB, CMYK and Gray, If not defined, RGB is used.","in":"query","name":"previewColorspace","required":false,"schema":{"default":"RGB","enum":["RGB","CMYK","LAB"],"type":"string"}},"previewSize":{"description":"If defined, allows to the defined the resolution in ppi (1 integer value) or the maximum pixel width and height (pixelWidth x pixelHeigt).","in":"query","name":"previewSize","required":false,"schema":{"default":"72","type":"string"}},"previewFormat":{"description":"Defines the image format. Supported values are PNG, TIFF, JPEG, PDF and WEBP.","in":"query","name":"previewFormat","required":false,"schema":{"default":"JPEG","enum":["PNG","JPEG","TIFF","PDF","WEBP"],"type":"string"}},"compression":{"description":"Defines image compression. JPEG, PDF and WEBP accept numeric values from 0 to 100. TIFF accepts TIFF_None, TIFF_LZW or TIFF_FLATE. PNG does not support compression.","in":"query","name":"compression","required":false,"schema":{"oneOf":[{"type":"integer","minimum":0,"maximum":100},{"type":"string","pattern":"^(100|[1-9]?\\d)$"},{"type":"string","enum":["TIFF_None","TIFF_LZW","TIFF_FLATE","JPEG_minimum","JPEG_low","JPEG_medium","JPEG_high","JPEG_maximum","PDF_Flate","WEBP_minimum","WEBP_low","WEBP_medium","WEBP_high","WEBP_maximum","WEBP_Lossless"]}]}},"config":{"description":"Defines the URI to the quickcheck config file.","in":"query","name":"config","required":false,"schema":{"type":"string"},"examples":{"radix URI":{"value":"radix://quickcheck/ppa.cfg"},"repository URI":{"value":"repository://myNamedRepository/myQuickcheck.cfg"}}},"inputURL":{"in":"query","name":"inputURL","description":"Defines the URL of the file that should be processed.\n\nSupported URL schemes:\n- `http://` / `https://` — publicly accessible HTTP(S) URL\n- `s3://<bucket>` — Amazon S3 bucket path\n- `repository://<alias>/path` — file inside a named repository\n- `radix://<uuid>` — file referenced by its Radix resource UUID","schema":{"type":"string"},"required":false},"inputURLMarketing":{"in":"query","name":"inputURL","description":"Defines the URL of the file that should be processed. If not defined the input file can be uploaded as form-data (with key `file1`) or directly as binary.\n\nSupported URL schemes:\n- `http://` / `https://` — publicly accessible HTTP(S) URL\n- `s3://<bucket>` — Amazon S3 bucket path\n- `repository://<alias>/path` — file inside a named repository\n- `radix://<uuid>` — file referenced by its Radix resource UUID","schema":{"type":"string"},"required":false},"inputURLCompare":{"in":"query","name":"inputURL","description":"Defines the URL of the file that should be compared to. If not defined the input file can be uploaded as form-data (with key `file2`).\n\nSupported URL schemes:\n- `http://` / `https://` — publicly accessible HTTP(S) URL\n- `s3://<bucket>` — Amazon S3 bucket path\n- `repository://<alias>/path` — file inside a named repository\n- `radix://<uuid>` — file referenced by its Radix resource UUID","schema":{"type":"string"},"required":false},"inputURLMerge":{"in":"query","name":"inputURL","description":"Defines the URLs of the files that shall get merged. At least two `inputURL` parameters must be defined. If not defined the input files can be uploaded as form-data or directly as binary.\n\nSupported URL schemes:\n- `http://` / `https://` — publicly accessible HTTP(S) URL\n- `s3://<bucket>` — Amazon S3 bucket path\n- `repository://<alias>/path` — file inside a named repository\n- `radix://<uuid>` — file referenced by its Radix resource UUID","schema":{"type":"array","items":{"type":"string"}},"required":false},"storageMode":{"in":"query","name":"storageMode","description":"When files get uploaded to a storage, this parameter allows to define storage method. The folling options are allowed:\n- useFolder: the generated files are saved to the defined destiination folder, files might get overwritten\n- subFolder: all generated files get stored inside a subfolder (foldername is a dynamically genereated uuid)\n- uuidFilenames: every generated file gets prefixed with a uuid to be unique","schema":{"enum":["useFolder","subFolder","uuidFilenames"],"default":"useFolder"}},"filename":{"in":"query","name":"filename","description":"When files get downloaded, this parameter allows to define a new name. The name must be without extension.","schema":{"type":"string"}},"outputURL":{"in":"query","name":"outputURL","description":"If defined, all resulting files will be saved to the defined URL. The URL must point to a folder on a supported storage.\n\nSupported URL schemes:\n- `s3://<bucket>` — Amazon S3 bucket path\n- `repository://<alias>/path` — folder inside a named repository\n- `radix://<uuid>` — Radix storage location referenced by UUID","schema":{"type":"string"},"required":false},"creatPdfEngine":{"in":"query","name":"creatPdfEngine","description":"Defines which engine to use to create PDF files. Each requires a separate application license. When passing a PlaceContent API data object as payload, a license for radixCreate is required.","schema":{"type":"string","enum":["PDFToolbox","PDFChip"],"default":"PDFChip"}},"anchor":{"description":" Page box anchor point used to align the two page images for comparison","in":"query","name":"anchor","schema":{"type":"string","enum":["right","center","left","top","bottom","lowerleft","upperleft","lowerright","upperright"],"default":"upperleft"}},"areathreshold":{"description":"Area threshold in %","in":"query","name":"areathreshold","schema":{"type":"integer","maximum":100,"minimum":0,"default":0}},"threshold":{"description":"Pixel threshold in Delta E, Delta C or % depending on --channels setting","in":"query","name":"threshold","schema":{"type":"integer","maximum":100,"minimum":0,"default":0}},"channels":{"description":"Channels to be compared. Detailed info: https://help.callassoftware.com/m/pdftoolbox/l/1607699-compare-documents","in":"query","name":"anchor","schema":{"type":"string","enum":["lab","ab","ab76","rgb","cmyk","cmy","process_CMYK","process_CMY","process_C","process_M","process_Y","process_K"],"default":""}},"onlydifferences":{"description":"Only emit pages that have differences","in":"query","name":"onlydifferences","schema":{"type":"boolean"}},"compareLog":{"description":"Create text based log file. Info: https://help.callassoftware.com/m/pdftoolbox/l/1479706-log-comparison-based-information","in":"query","name":"onlydifferences","schema":{"type":"boolean","default":false}},"imgFormat":{"in":"query","name":"imgformat","description":"Defines the image format. Supported values are PNG, TIFF, JPEG, PDF and WEBP.","schema":{"type":"string","default":"JPEG","enum":["PNG","JPEG","TIFF","PDF","WEBP"]},"required":true},"pagebox":{"in":"query","name":"pagebox","description":"Defines the pagebox that shall get used for rendering.","schema":{"type":"string","default":"MEDIABOX","enum":["MEDIABOX","CROPBOX","BLEEDBOX","TRIMBOX","ARTBOX"]},"required":false},"pageboxoffset":{"in":"query","name":"pageboxoffset","description":"Defines an offset relative to the pagebox used for rendering. Accepts 1 value (applied to all sides) or 4 values (left, bottom, right, top), optionally followed by a unit (mm, inch, in, pt). Examples: \"5mm\", \"5\", \"5 10 100 100mm\".","schema":{"type":"string","examples":["5mm","5 10 100 100mm"]},"required":false},"includeProcessingSteps":{"in":"query","name":"includeProcessingSteps","description":"Overrides the node-saveasimg ENV default. When enabled (1/true), pdfToolbox is called without --excludeprocessingsteps=ALL. When disabled (0/false), pdfToolbox is called with --excludeprocessingsteps=ALL.","schema":{"type":"string","enum":["0","1","true","false"]},"required":false},"parallel":{"in":"query","name":"parallel","description":"Overrides the node-saveasimg ENV default. When enabled (1/true), pdfToolbox is called with --parallel. When disabled (0/false), the flag is omitted.","schema":{"type":"string","enum":["0","1","true","false"]},"required":false},"colorSpace":{"in":"query","name":"colorspace","description":"Defines the color space.","schema":{"type":"string","default":"RGB","enum":["RGB","CMYK","LAB"]},"required":true},"resolution":{"in":"query","name":"resolution","description":"If defined, allows to the defined the resolution in ppi (1 integer value) or the maximum pixel width and height ( pixelWidth x pixelHeight).","schema":{"default":72,"type":"number"},"required":true},"pagerange":{"in":"query","name":"pagerange","description":"When defined, allows to define the pagerange. A pagerange can be expressed of 1 or more pages or pageranges. negative values define relative pages, beginning from the last page. Examples: 1-3 (first thru third page); 1,3 (page 1 and 3); 1--1 (from first to last page); 1,-1 (first and last page).","schema":{"type":"string","default":"1--1"},"required":false},"credId":{"description":"Id of the credentials entry","in":"path","name":"credld","required":true,"schema":{"type":"string"}},"roleId":{"description":"Id of the role","in":"path","name":"roleId","required":true,"schema":{"type":"string"}},"contId":{"description":"Id of the container","in":"path","name":"contId","required":true,"schema":{"type":"string"}},"fileId":{"description":"Id of the file","in":"path","name":"fileId","required":true,"schema":{"type":"string"}},"repoId":{"description":"Id of the repository","in":"path","name":"repoId","required":true,"schema":{"type":"string"}},"workflowId":{"description":"Id of the workflow","in":"path","name":"workflowId","required":true,"schema":{"type":"string"}},"externalId":{"description":"This info gets preserved during processing. A consuming client can use this id from the response for indetification.","in":"query","name":"externalId","required":false,"schema":{"default":"","type":"string"}},"customData":{"description":"Allows to defined an array of key/value objects. This info gets preserved during processing. A consuming client can use this id from the response for indetification.","in":"query","name":"customData","required":false,"schema":{"default":"","type":"string"}},"mergeMethod":{"description":"Defines the method to detect the merge sequence. The default is _bySequence_. Further methods are: _byFilename_\n\n### byFileName\n\nThe merging sequence gets derived from the file name. Either the pages have preceiding ot following sequential numbers. Also certain strings get checked like __front__ and __back__. When names for calendar month get detected, the file gets merged acordingly.\nIn addition, this methode allows to set additional parameter that defines a products intent like brochure or book, incl. the expected dimension and number of pages. This info is used and compared to the uploaded PDFs to detect for example a cover of a book versus the provided book body.\n\nA resuting JSON report gets genereated with info of this merge sequence detection. The customId of this created resource is _getTypeFromFileName_.","in":"query","name":"mergeMethod","required":false,"schema":{"default":"bySequence","type":"string","enum":["bySequence","byFilename"]}},"productType":{"description":"This property is optional when working with the method: _byFilename_. This parameter defines the type of the product. A product of type book always requires an extra cover.","in":"query","name":"productType","required":false,"schema":{"default":"FlatWork","type":"string","enum":["FlatWork","Brochure","Booklet","Book","Cover","Body"]}},"numberOfPages":{"description":"This property is optional when working with the method: _byFilename_. This parameter defines the expected number of pages including the cover (for books or booklets).","in":"query","name":"numberOfPages","required":false,"schema":{"type":"integer"},"example":"20"},"requiresExtraCover":{"description":"This property is required when working with the productType: _Booklet_. This parameter defines if this type of Booklet requires an extra cover.","in":"query","name":"requiresExtraCover","required":false,"schema":{"default":false,"type":"boolean"}},"coverIsSpread":{"description":"This property is required when working with: _requiresExtraCover_. This parameter defines if the covers is expected as spread (like the cover for a book).","in":"query","name":"coverIsSpread","required":false,"schema":{"type":"boolean"}},"finishedWidth":{"description":"This property is required when working products of type _Book_ or _Booklet_. This property defines the _width_ (and the unit) of the final printed product.","in":"query","name":"finishedWidth","required":false,"schema":{"type":"string"},"example":"210mm"},"finishedHeight":{"description":"This property is required when working for products of type _Book_ or _Booklet_. This property defines the _height_ (and the unit) of the final printed product.","in":"query","name":"finishedHeight","required":false,"schema":{"type":"string"},"example":"297mm"},"spineWidth":{"description":"This property is required when working for products of type _Book_ or _Cover_. This property defines the _spine width_ (and the unit) of the final printed book.","in":"query","name":"spineWidth","required":false,"schema":{"type":"string"},"example":"1.56mm"},"mergeSettings":{"description":"This property is optional when working with the method: _byFilename_. This property allows to define a separate configuration file, uploaded into a repository, or a complete configuration JSON.","in":"query","name":"mergeSettings","required":false,"schema":{"type":"string"},"example":"repository://myRepository/myMergeSetting.json"}},"examples":{"response_get_workflow":{"description":"response: get workflow","value":{"createdAt":"2021-08-26T12:38:51.945Z","updatedAt":"2021-08-26T12:38:54.785Z","id":113,"deletedAt":null,"name":"workflow","status":"done","error":null,"webhook":null,"workflowSpecId":0,"userId":null,"keycloakUserId":0,"externalId":null,"customData":null,"current_process":{},"result":{"severity":1},"processes":[{"id":0,"createdAt":"2021-08-26T10:48:52.553Z","updatedAt":"2021-08-26T10:48:52.553Z","deletedAt":null,"node":"io","customId":"inputfile","status":"done","error":null,"containerId":0,"workflowId":0,"children":[{"customId":null}]}],"output":{"resources":[{"createdAt":"2021-08-26T12:38:54.715Z","updatedAt":"2021-08-26T12:38:54.715Z","type":"production","usage":"sidecar","id":321,"deletedAt":null,"customId":null,"name":"Bizz-Book A5 WS_1.png","originalName":"Bizz-Book A5 WS_1.png","direction":"output","path":"/root/data/containers/6ae0c37f-39f7-4bd3-9b08-7a60e58a79ee/Bizz-Book A5 WS_1.png","uri":"file:///root/data/containers/6ae0c37f-39f7-4bd3-9b08-7a60e58a79ee/Bizz-Book A5 WS_1.png","inputURL":null,"outputURL":null,"downloadURL":"/api/v1/containers/117/download/Bizz-Book A5 WS_1.png","mimeType":"image/png","isFolder":false}]}}},"response_post_workflow":{"description":"response: post workflow","value":{"id":112,"createdAt":"2021-08-26T10:48:52.553Z","updatedAt":"2021-08-26T10:48:52.553Z","deletedAt":null,"name":"workflow","status":"created","error":null,"output":null,"webhook":null,"workflowSpecId":0,"userId":null,"keycloakUserId":0,"externalId":null,"customData":null}},"response_get_workflows":{"description":"response: get workflows","value":[{"createdAt":"2021-08-26T12:38:51.945Z","updatedAt":"2021-08-26T12:38:54.785Z","id":0,"deletedAt":null,"name":"workflow","status":"done","error":null,"webhook":null,"workflowSpecId":0,"userId":null,"keycloakUserId":0,"externalId":null,"customData":null}]},"LicenseFile":{"description":"Example LicenseFile response returned by GET /api/v1/license and POST /api/v1/license/generate.","value":"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<LicenseFile>\n  <License>\n    <licenseTypeKey>SUBSCRIPTION</licenseTypeKey>\n    <maintenanceContractId>radixapi_13</maintenanceContractId>\n    <workstationGuid>d63da9b4-a679-4c02-9604-ed95ea8d630c</workstationGuid>\n    <productKey>RADIX_API</productKey>\n    <productVersion>2.1.0</productVersion>\n    <workstationMachineStatus>ACTIVE</workstationMachineStatus>\n    <maintenanceExpiryDate>2026-04-18</maintenanceExpiryDate>\n    <generated>2026-03-30T08:25:17.934+02:00</generated>\n    <licenseValidDate>2026-04-18</licenseValidDate>\n    <licenseExpiryDate>2026-04-18</licenseExpiryDate>\n    <installableProductVersion>2.1.0</installableProductVersion>\n    <packages>\n      <packages>\n        <description>Calculate imposed layouts from Job information</description>\n        <guid>0df3e41f-f62f-47bb-a5df-d9c51a584bb0</guid>\n        <name>radixAPI - ImposeCalculation</name>\n        <packageCount>1</packageCount>\n        <type>FLAVOR</type>\n      </packages>\n      <packages>\n        <description></description>\n        <guid>fc72475b-d8a1-45fa-9a1e-3d8420182f3c</guid>\n        <name>radixAPI - Base</name>\n        <packageCount>1</packageCount>\n        <type>BASE</type>\n      </packages>\n    </packages>\n    <permissions>\n      <permissions><key>NODE.IMPOSER</key><value>true</value><valueType>BOOLEAN</valueType></permissions>\n      <permissions><key>BASE.WORKFLOW</key><value>true</value><valueType>BOOLEAN</valueType></permissions>\n      <permissions><key>NODE.IO</key><value>true</value><valueType>BOOLEAN</valueType></permissions>\n      <permissions><key>NODE.IMPOSER.NESTING</key><value>true</value><valueType>BOOLEAN</valueType></permissions>\n      <permissions><key>MARKETING</key><value>true</value><valueType>BOOLEAN</valueType></permissions>\n      <permissions><key>MARKETING.CALCULATENESTING</key><value>true</value><valueType>BOOLEAN</valueType></permissions>\n      <permissions><key>BASE.CONCURRENCY</key><value>2</value><valueType>INTEGER</valueType></permissions>\n    </permissions>\n    <oemPartner>\n      <companyName>PPD</companyName>\n      <oemPartnerKey>PPD</oemPartnerKey>\n      <url>www.prepress-digital.com</url>\n    </oemPartner>\n  </License>\n  <hardwareHashV2>M4 MaxG6H6G7QQD3-calibrate.0ba028c9e3d87e1b</hardwareHashV2>\n  <uaServerUrl>https://ua-stage.prepress-digital.com</uaServerUrl>\n  <version>V5</version>\n</LicenseFile>"},"Profile":{"description":"Get user profile details.","value":[{"createdAt":"2023-10-31T09:28:35.252Z","updatedAt":"2024-01-02T13:05:26.241Z","id":1,"deletedAt":null,"keycloakUserId":"8d149ece-6504-4dc5-f304-10fda32042ac","jtsName":"admin","license":"<license string>","username":"jondoeuser","email":"johdoe@mail.com","firstName":"John","lastName":"Doe","gender":"male","role":"client"}]}}},"security":[{"bearerAuth":[]}]}