From fc4694b5389c09b76d5554b5fa80d0a6e1358c31 Mon Sep 17 00:00:00 2001 From: Ludy87 Date: Sat, 12 Jul 2025 00:32:40 +0200 Subject: [PATCH] swagger subprojects --- .github/workflows/swagger.yml | 2 +- build.gradle | 48 +- stirling-pdf/SwaggerDocstirling-pdf.json | 5297 ++++++++++++++++++++++ 3 files changed, 5336 insertions(+), 11 deletions(-) create mode 100644 stirling-pdf/SwaggerDocstirling-pdf.json diff --git a/.github/workflows/swagger.yml b/.github/workflows/swagger.yml index d717d5563..463736b65 100644 --- a/.github/workflows/swagger.yml +++ b/.github/workflows/swagger.yml @@ -29,7 +29,7 @@ jobs: - uses: gradle/actions/setup-gradle@ac638b010cf58a27ee6c972d7336334ccaf61c96 # v4.4.1 - name: Generate Swagger documentation - run: ./gradlew generateOpenApiDocs + run: ./gradlew :stirling-pdf:generateOpenApiDocs - name: Upload Swagger Documentation to SwaggerHub run: ./gradlew swaggerhubUpload diff --git a/build.gradle b/build.gradle index a0d198c3a..effdd0128 100644 --- a/build.gradle +++ b/build.gradle @@ -161,6 +161,44 @@ subprojects { tasks.named("processResources") { dependsOn(rootProject.tasks.writeVersion) } + + if (name == 'stirling-pdf') { + apply plugin: 'org.springdoc.openapi-gradle-plugin' + + openApi { + apiDocsUrl = "http://localhost:8080/v1/api-docs" + outputDir = file("$projectDir") + outputFileName = "SwaggerDoc.json" + waitTimeInSeconds = 60 // Increase the wait time to 60 seconds + } + + tasks.named("forkedSpringBootRun") { + dependsOn(":common:jar") + dependsOn(":proprietary:jar") + } + + tasks.register("copySwaggerDoc", Copy) { + doNotTrackState("Writes SwaggerDoc.json to project root") + from(layout.projectDirectory.file("SwaggerDoc.json")) + into(rootProject.projectDir) + dependsOn("generateOpenApiDocs") + } + + tasks.register("cleanSwaggerInBuild", Delete) { + doNotTrackState("Cleans up SwaggerDoc.json in build directory") + delete(layout.projectDirectory.file("SwaggerDoc.json")) + dependsOn("copySwaggerDoc") + } + + tasks.named("copySwaggerDoc") { + finalizedBy("cleanSwaggerInBuild") + } + + tasks.named("generateOpenApiDocs") { + finalizedBy("copySwaggerDoc") + doNotTrackState("OpenAPI plugin writes outside build directory") + } + } } tasks.withType(JavaCompile).configureEach { @@ -204,13 +242,6 @@ sourceSets { } } -openApi { - apiDocsUrl = "http://localhost:8080/v1/api-docs" - outputDir = file("$projectDir") - outputFileName = "SwaggerDoc.json" - waitTimeInSeconds = 60 // Increase the wait time to 60 seconds -} - // Configure the forked spring boot run task to properly delegate to the stirling-pdf module tasks.named('forkedSpringBootRun') { dependsOn ':stirling-pdf:bootRun' @@ -565,9 +596,6 @@ tasks.register('printMacVersion') { } } -tasks.named('generateOpenApiDocs') { - doNotTrackState("Tracking state is not supported for this task") -} tasks.named('bootRun') { group = 'application' description = 'Delegates to :stirling-pdf:bootRun' diff --git a/stirling-pdf/SwaggerDocstirling-pdf.json b/stirling-pdf/SwaggerDocstirling-pdf.json new file mode 100644 index 000000000..ee92897f9 --- /dev/null +++ b/stirling-pdf/SwaggerDocstirling-pdf.json @@ -0,0 +1,5297 @@ +{ + "openapi": "3.1.0", + "info": { + "title": "Stirling PDF API", + "description": "API documentation for all Server-Side processing.\nPlease note some functionality might be UI only and missing from here.", + "termsOfService": "https://www.stirlingpdf.com/terms", + "contact": { + "name": "Stirling Software", + "url": "https://www.stirlingpdf.com", + "email": "contact@stirlingpdf.com" + }, + "license": { + "name": "MIT", + "url": "https://raw.githubusercontent.com/Stirling-Tools/Stirling-PDF/refs/heads/main/LICENSE", + "identifier": "MIT" + }, + "version": "1.0.0" + }, + "servers": [ + { + "url": "http://localhost:8080", + "description": "Generated server url" + } + ], + "tags": [ + { + "name": "Filter", + "description": "Filter APIs" + }, + { + "name": "Security", + "description": "Security APIs" + }, + { + "name": "Pipeline", + "description": "Pipeline APIs" + }, + { + "name": "Analysis", + "description": "Analysis APIs" + }, + { + "name": "Misc", + "description": "Miscellaneous PDF APIs" + }, + { + "name": "Misc", + "description": "Miscellaneous APIs" + }, + { + "name": "Info", + "description": "Info APIs" + }, + { + "name": "Convert", + "description": "Convert APIs" + }, + { + "name": "General", + "description": "General APIs" + } + ], + "paths": { + "/api/v1/security/validate-signature": { + "post": { + "tags": [ + "Security" + ], + "summary": "Validate PDF Digital Signature", + "description": "Validates the digital signatures in a PDF file against default or custom certificates. Input:PDF Output:JSON Type:SISO", + "operationId": "validateSignature", + "requestBody": { + "content": { + "multipart/form-data": { + "schema": { + "$ref": "#/components/schemas/SignatureValidationRequest" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SignatureValidationResult" + } + } + } + } + } + } + } + }, + "/api/v1/security/sanitize-pdf": { + "post": { + "tags": [ + "Security" + ], + "summary": "Sanitize a PDF file", + "description": "This endpoint processes a PDF file and removes specific elements based on the provided options. Input:PDF Output:PDF Type:SISO", + "operationId": "sanitizePDF", + "requestBody": { + "content": { + "multipart/form-data": { + "schema": { + "$ref": "#/components/schemas/SanitizePdfRequest" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "type": "string", + "format": "byte" + } + } + } + } + } + } + }, + "/api/v1/security/remove-password": { + "post": { + "tags": [ + "Security" + ], + "summary": "Remove password from a PDF file", + "description": "This endpoint removes the password from a protected PDF file. Users need to provide the existing password. Input:PDF Output:PDF Type:SISO", + "operationId": "removePassword", + "requestBody": { + "content": { + "multipart/form-data": { + "schema": { + "$ref": "#/components/schemas/PDFPasswordRequest" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "type": "string", + "format": "byte" + } + } + } + } + } + } + }, + "/api/v1/security/remove-cert-sign": { + "post": { + "tags": [ + "Security" + ], + "summary": "Remove digital signature from PDF", + "description": "This endpoint accepts a PDF file and returns the PDF file without the digital signature. Input:PDF, Output:PDF Type:SISO", + "operationId": "removeCertSignPDF", + "requestBody": { + "content": { + "multipart/form-data": { + "schema": { + "$ref": "#/components/schemas/PDFFile" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "type": "string", + "format": "byte" + } + } + } + } + } + } + }, + "/api/v1/security/redact": { + "post": { + "tags": [ + "Security" + ], + "summary": "Redacts areas and pages in a PDF document", + "description": "This operation takes an input PDF file with a list of areas, page number(s)/range(s)/function(s) to redact. Input:PDF, Output:PDF, Type:SISO", + "operationId": "redactPDF", + "requestBody": { + "content": { + "multipart/form-data": { + "schema": { + "$ref": "#/components/schemas/ManualRedactPdfRequest" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "type": "string", + "format": "byte" + } + } + } + } + } + } + }, + "/api/v1/security/get-info-on-pdf": { + "post": { + "tags": [ + "Security" + ], + "summary": "Summary here", + "description": "desc. Input:PDF Output:JSON Type:SISO", + "operationId": "getPdfInfo", + "requestBody": { + "content": { + "multipart/form-data": { + "schema": { + "$ref": "#/components/schemas/PDFFile" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "type": "string", + "format": "byte" + } + } + } + } + } + } + }, + "/api/v1/security/cert-sign": { + "post": { + "tags": [ + "Security" + ], + "summary": "Sign PDF with a Digital Certificate", + "description": "This endpoint accepts a PDF file, a digital certificate and related information to sign the PDF. It then returns the digitally signed PDF file. Input:PDF Output:PDF Type:SISO", + "operationId": "signPDFWithCert", + "requestBody": { + "content": { + "multipart/form-data": { + "schema": { + "$ref": "#/components/schemas/SignPDFWithCertRequest" + } + }, + "application/x-www-form-urlencoded": { + "schema": { + "$ref": "#/components/schemas/SignPDFWithCertRequest" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "type": "string", + "format": "byte" + } + } + } + } + } + } + }, + "/api/v1/security/auto-redact": { + "post": { + "tags": [ + "Security" + ], + "summary": "Redacts listOfText in a PDF document", + "description": "This operation takes an input PDF file and redacts the provided listOfText. Input:PDF, Output:PDF, Type:SISO", + "operationId": "redactPdf", + "requestBody": { + "content": { + "multipart/form-data": { + "schema": { + "$ref": "#/components/schemas/RedactPdfRequest" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "type": "string", + "format": "byte" + } + } + } + } + } + } + }, + "/api/v1/security/add-watermark": { + "post": { + "tags": [ + "Security" + ], + "summary": "Add watermark to a PDF file", + "description": "This endpoint adds a watermark to a given PDF file. Users can specify the watermark type (text or image), rotation, opacity, width spacer, and height spacer. Input:PDF Output:PDF Type:SISO", + "operationId": "addWatermark", + "requestBody": { + "content": { + "multipart/form-data": { + "schema": { + "$ref": "#/components/schemas/AddWatermarkRequest" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "type": "string", + "format": "byte" + } + } + } + } + } + } + }, + "/api/v1/security/add-password": { + "post": { + "tags": [ + "Security" + ], + "summary": "Add password to a PDF file", + "description": "This endpoint adds password protection to a PDF file. Users can specify a set of permissions that should be applied to the file. Input:PDF Output:PDF", + "operationId": "addPassword", + "requestBody": { + "content": { + "multipart/form-data": { + "schema": { + "$ref": "#/components/schemas/AddPasswordRequest" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "type": "string", + "format": "byte" + } + } + } + } + } + } + }, + "/api/v1/pipeline/handleData": { + "post": { + "tags": [ + "Pipeline" + ], + "operationId": "handleData", + "requestBody": { + "content": { + "multipart/form-data": { + "schema": { + "$ref": "#/components/schemas/HandleDataRequest" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "type": "string", + "format": "byte" + } + } + } + } + } + } + }, + "/api/v1/misc/update-metadata": { + "post": { + "tags": [ + "Misc" + ], + "summary": "Update metadata of a PDF file", + "description": "This endpoint allows you to update the metadata of a given PDF file. You can add, modify, or delete standard and custom metadata fields. Input:PDF Output:PDF Type:SISO", + "operationId": "metadata", + "requestBody": { + "content": { + "multipart/form-data": { + "schema": { + "$ref": "#/components/schemas/MetadataRequest" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "type": "string", + "format": "byte" + } + } + } + } + } + } + }, + "/api/v1/misc/unlock-pdf-forms": { + "post": { + "tags": [ + "Misc" + ], + "summary": "Remove read-only property from form fields", + "description": "Removing read-only property from form fields making them fillableInput:PDF, Output:PDF. Type:SISO", + "operationId": "unlockPDFForms", + "requestBody": { + "content": { + "multipart/form-data": { + "schema": { + "$ref": "#/components/schemas/PDFFile" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "type": "string", + "format": "byte" + } + } + } + } + } + } + }, + "/api/v1/misc/show-javascript": { + "post": { + "tags": [ + "Misc" + ], + "summary": "Grabs all JS from a PDF and returns a single JS file with all code", + "description": "desc. Input:PDF Output:JS Type:SISO", + "operationId": "extractHeader", + "requestBody": { + "content": { + "multipart/form-data": { + "schema": { + "$ref": "#/components/schemas/PDFFile" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "type": "string", + "format": "byte" + } + } + } + } + } + } + }, + "/api/v1/misc/replace-invert-pdf": { + "post": { + "tags": [ + "Misc" + ], + "summary": "Replace-Invert Color PDF", + "description": "This endpoint accepts a PDF file and option of invert all colors or replace text and background colors. Input:PDF Output:PDF Type:SISO", + "operationId": "replaceAndInvertColor", + "requestBody": { + "content": { + "multipart/form-data": { + "schema": { + "$ref": "#/components/schemas/ReplaceAndInvertColorRequest" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + } + } + } + }, + "/api/v1/misc/repair": { + "post": { + "tags": [ + "Misc" + ], + "summary": "Repair a PDF file", + "description": "This endpoint repairs a given PDF file by running Ghostscript (primary), qpdf (fallback), or PDFBox (if no external tools available). The PDF is first saved to a temporary location, repaired, read back, and then returned as a response. Input:PDF Output:PDF Type:SISO", + "operationId": "repairPdf", + "requestBody": { + "content": { + "multipart/form-data": { + "schema": { + "$ref": "#/components/schemas/PDFFile" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "type": "string", + "format": "byte" + } + } + } + } + } + } + }, + "/api/v1/misc/remove-blanks": { + "post": { + "tags": [ + "Misc" + ], + "summary": "Remove blank pages from a PDF file", + "description": "This endpoint removes blank pages from a given PDF file. Users can specify the threshold and white percentage to tune the detection of blank pages. Input:PDF Output:PDF Type:SISO", + "operationId": "removeBlankPages", + "requestBody": { + "content": { + "multipart/form-data": { + "schema": { + "$ref": "#/components/schemas/RemoveBlankPagesRequest" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "type": "string", + "format": "byte" + } + } + } + } + } + } + }, + "/api/v1/misc/ocr-pdf": { + "post": { + "tags": [ + "Misc" + ], + "summary": "Process a PDF file with OCR", + "description": "This endpoint processes a PDF file using OCR (Optical Character Recognition). Users can specify languages, sidecar, deskew, clean, cleanFinal, ocrType, ocrRenderType, and removeImagesAfter options. Uses OCRmyPDF if available, falls back to Tesseract. Input:PDF Output:PDF Type:SI-Conditional", + "operationId": "processPdfWithOCR", + "requestBody": { + "content": { + "multipart/form-data": { + "schema": { + "$ref": "#/components/schemas/ProcessPdfWithOcrRequest" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "type": "string", + "format": "byte" + } + } + } + } + } + } + }, + "/api/v1/misc/flatten": { + "post": { + "tags": [ + "Misc" + ], + "summary": "Flatten PDF form fields or full page", + "description": "Flattening just PDF form fields or converting each page to images to make text unselectable. Input:PDF, Output:PDF. Type:SISO", + "operationId": "flatten", + "requestBody": { + "content": { + "multipart/form-data": { + "schema": { + "$ref": "#/components/schemas/FlattenRequest" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "type": "string", + "format": "byte" + } + } + } + } + } + } + }, + "/api/v1/misc/fake-scan": { + "post": { + "tags": [ + "Misc" + ], + "summary": "Convert PDF to look like a scanned document", + "description": "Applies various effects to make a PDF look like it was scanned, including rotation, noise, and edge softening. Input:PDF Output:PDF Type:SISO", + "operationId": "fakeScan", + "requestBody": { + "content": { + "multipart/form-data": { + "schema": { + "$ref": "#/components/schemas/FakeScanRequest" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "type": "string", + "format": "byte" + } + } + } + } + } + } + }, + "/api/v1/misc/extract-images": { + "post": { + "tags": [ + "Misc" + ], + "summary": "Extract images from a PDF file", + "description": "This endpoint extracts images from a given PDF file and returns them in a zip file. Users can specify the output image format. Input:PDF Output:IMAGE/ZIP Type:SIMO", + "operationId": "extractImages", + "requestBody": { + "content": { + "multipart/form-data": { + "schema": { + "$ref": "#/components/schemas/PDFExtractImagesRequest" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "type": "string", + "format": "byte" + } + } + } + } + } + } + }, + "/api/v1/misc/extract-image-scans": { + "post": { + "tags": [ + "Misc" + ], + "summary": "Extract image scans from an input file", + "description": "This endpoint extracts image scans from a given file based on certain parameters. Users can specify angle threshold, tolerance, minimum area, minimum contour area, and border size. Input:PDF Output:IMAGE/ZIP Type:SIMO", + "operationId": "extractImageScans", + "requestBody": { + "content": { + "multipart/form-data": { + "schema": { + "$ref": "#/components/schemas/ExtractImageScansRequest" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "type": "string", + "format": "byte" + } + } + } + } + } + } + }, + "/api/v1/misc/decompress-pdf": { + "post": { + "tags": [ + "Misc" + ], + "summary": "Decompress PDF streams", + "description": "Fully decompresses all PDF streams including text content", + "operationId": "decompressPdf", + "requestBody": { + "content": { + "multipart/form-data": { + "schema": { + "$ref": "#/components/schemas/PDFFile" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "type": "string", + "format": "byte" + } + } + } + } + } + } + }, + "/api/v1/misc/compress-pdf": { + "post": { + "tags": [ + "Misc" + ], + "summary": "Optimize PDF file", + "description": "This endpoint accepts a PDF file and optimizes it based on the provided parameters. Input:PDF Output:PDF Type:SISO", + "operationId": "optimizePdf", + "requestBody": { + "content": { + "multipart/form-data": { + "schema": { + "$ref": "#/components/schemas/OptimizePdfRequest" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "type": "string", + "format": "byte" + } + } + } + } + } + } + }, + "/api/v1/misc/auto-split-pdf": { + "post": { + "tags": [ + "Misc" + ], + "summary": "Auto split PDF pages into separate documents", + "description": "This endpoint accepts a PDF file, scans each page for a specific QR code, and splits the document at the QR code boundaries. The output is a zip file containing each separate PDF document. Input:PDF Output:ZIP-PDF Type:SISO", + "operationId": "autoSplitPdf", + "requestBody": { + "content": { + "multipart/form-data": { + "schema": { + "$ref": "#/components/schemas/AutoSplitPdfRequest" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "type": "string", + "format": "byte" + } + } + } + } + } + } + }, + "/api/v1/misc/auto-rename": { + "post": { + "tags": [ + "Misc" + ], + "summary": "Extract header from PDF file", + "description": "This endpoint accepts a PDF file and attempts to extract its title or header based on heuristics. Input:PDF Output:PDF Type:SISO", + "operationId": "extractHeader_1", + "requestBody": { + "content": { + "multipart/form-data": { + "schema": { + "$ref": "#/components/schemas/ExtractHeaderRequest" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "type": "string", + "format": "byte" + } + } + } + } + } + } + }, + "/api/v1/misc/add-stamp": { + "post": { + "tags": [ + "Misc" + ], + "summary": "Add stamp to a PDF file", + "description": "This endpoint adds a stamp to a given PDF file. Users can specify the stamp type (text or image), rotation, opacity, width spacer, and height spacer. Input:PDF Output:PDF Type:SISO", + "operationId": "addStamp", + "requestBody": { + "content": { + "multipart/form-data": { + "schema": { + "$ref": "#/components/schemas/AddStampRequest" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "type": "string", + "format": "byte" + } + } + } + } + } + } + }, + "/api/v1/misc/add-page-numbers": { + "post": { + "tags": [ + "Misc" + ], + "summary": "Add page numbers to a PDF document", + "description": "This operation takes an input PDF file and adds page numbers to it. Input:PDF Output:PDF Type:SISO", + "operationId": "addPageNumbers", + "requestBody": { + "content": { + "multipart/form-data": { + "schema": { + "$ref": "#/components/schemas/AddPageNumbersRequest" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "type": "string", + "format": "byte" + } + } + } + } + } + } + }, + "/api/v1/misc/add-image": { + "post": { + "tags": [ + "Misc" + ], + "summary": "Overlay image onto a PDF file", + "description": "This endpoint overlays an image onto a PDF file at the specified coordinates. The image can be overlaid on every page of the PDF if specified. Input:PDF/IMAGE Output:PDF Type:SISO", + "operationId": "overlayImage", + "requestBody": { + "content": { + "multipart/form-data": { + "schema": { + "$ref": "#/components/schemas/OverlayImageRequest" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "type": "string", + "format": "byte" + } + } + } + } + } + } + }, + "/api/v1/misc/add-attachments": { + "post": { + "tags": [ + "Misc" + ], + "summary": "Add attachments to PDF", + "description": "This endpoint adds attachments to a PDF. Input:PDF, Output:PDF Type:MISO", + "operationId": "addAttachments", + "requestBody": { + "content": { + "multipart/form-data": { + "schema": { + "$ref": "#/components/schemas/AddAttachmentRequest" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "type": "string", + "format": "byte" + } + } + } + } + } + } + }, + "/api/v1/general/split-pdf-by-sections": { + "post": { + "tags": [ + "General" + ], + "summary": "Split PDF pages into smaller sections", + "description": "Split each page of a PDF into smaller sections based on the user\u0027s choice (halves, thirds, quarters, etc.), both vertically and horizontally. Input:PDF Output:ZIP-PDF Type:SISO", + "operationId": "splitPdf", + "requestBody": { + "content": { + "multipart/form-data": { + "schema": { + "$ref": "#/components/schemas/SplitPdfBySectionsRequest" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "type": "string", + "format": "byte" + } + } + } + } + } + } + }, + "/api/v1/general/split-pdf-by-chapters": { + "post": { + "tags": [ + "General" + ], + "summary": "Split PDFs by Chapters", + "description": "Splits a PDF into chapters and returns a ZIP file.", + "operationId": "splitPdf_1", + "requestBody": { + "content": { + "multipart/form-data": { + "schema": { + "$ref": "#/components/schemas/SplitPdfByChaptersRequest" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "type": "string", + "format": "byte" + } + } + } + } + } + } + }, + "/api/v1/general/split-pages": { + "post": { + "tags": [ + "General" + ], + "summary": "Split a PDF file into separate documents", + "description": "This endpoint splits a given PDF file into separate documents based on the specified page numbers or ranges. Users can specify pages using individual numbers, ranges, or \u0027all\u0027 for every page. Input:PDF Output:PDF Type:SIMO", + "operationId": "splitPdf_2", + "requestBody": { + "content": { + "multipart/form-data": { + "schema": { + "$ref": "#/components/schemas/PDFWithPageNums" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "type": "string", + "format": "byte" + } + } + } + } + } + } + }, + "/api/v1/general/split-by-size-or-count": { + "post": { + "tags": [ + "General" + ], + "summary": "Auto split PDF pages into separate documents based on size or count", + "description": "split PDF into multiple paged documents based on size/count, ie if 20 pages and split into 5, it does 5 documents each 4 pages\r\n if 10MB and each page is 1MB and you enter 2MB then 5 docs each 2MB (rounded so that it accepts 1.9MB but not 2.1MB) Input:PDF Output:ZIP-PDF Type:SISO", + "operationId": "autoSplitPdf_1", + "requestBody": { + "content": { + "multipart/form-data": { + "schema": { + "$ref": "#/components/schemas/SplitPdfBySizeOrCountRequest" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "type": "string", + "format": "byte" + } + } + } + } + } + } + }, + "/api/v1/general/scale-pages": { + "post": { + "tags": [ + "General" + ], + "summary": "Change the size of a PDF page/document", + "description": "This operation takes an input PDF file and the size to scale the pages to in the output PDF file. Input:PDF Output:PDF Type:SISO", + "operationId": "scalePages", + "requestBody": { + "content": { + "multipart/form-data": { + "schema": { + "$ref": "#/components/schemas/ScalePagesRequest" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "type": "string", + "format": "byte" + } + } + } + } + } + } + }, + "/api/v1/general/rotate-pdf": { + "post": { + "tags": [ + "General" + ], + "summary": "Rotate a PDF file", + "description": "This endpoint rotates a given PDF file by a specified angle. The angle must be a multiple of 90. Input:PDF Output:PDF Type:SISO", + "operationId": "rotatePDF", + "requestBody": { + "content": { + "multipart/form-data": { + "schema": { + "$ref": "#/components/schemas/RotatePDFRequest" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "type": "string", + "format": "byte" + } + } + } + } + } + } + }, + "/api/v1/general/remove-pages": { + "post": { + "tags": [ + "General" + ], + "summary": "Remove pages from a PDF file", + "description": "This endpoint removes specified pages from a given PDF file. Users can provide a comma-separated list of page numbers or ranges to delete. Input:PDF Output:PDF Type:SISO", + "operationId": "deletePages", + "requestBody": { + "content": { + "multipart/form-data": { + "schema": { + "$ref": "#/components/schemas/PDFWithPageNums" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "type": "string", + "format": "byte" + } + } + } + } + } + } + }, + "/api/v1/general/remove-image-pdf": { + "post": { + "tags": [ + "General" + ], + "summary": "Remove images from file to reduce the file size.", + "description": "This endpoint remove images from file to reduce the file size.Input:PDF Output:PDF Type:MISO", + "operationId": "removeImages", + "requestBody": { + "content": { + "multipart/form-data": { + "schema": { + "$ref": "#/components/schemas/PDFFile" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "type": "string", + "format": "byte" + } + } + } + } + } + } + }, + "/api/v1/general/rearrange-pages": { + "post": { + "tags": [ + "General" + ], + "summary": "Rearrange pages in a PDF file", + "description": "This endpoint rearranges pages in a given PDF file based on the specified page order or custom mode. Users can provide a page order as a comma-separated list of page numbers or page ranges, or a custom mode. Input:PDF Output:PDF", + "operationId": "rearrangePages", + "requestBody": { + "content": { + "multipart/form-data": { + "schema": { + "$ref": "#/components/schemas/RearrangePagesRequest" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "type": "string", + "format": "byte" + } + } + } + } + } + } + }, + "/api/v1/general/pdf-to-single-page": { + "post": { + "tags": [ + "General" + ], + "summary": "Convert a multi-page PDF into a single long page PDF", + "description": "This endpoint converts a multi-page PDF document into a single paged PDF document. The width of the single page will be same as the input\u0027s width, but the height will be the sum of all the pages\u0027 heights. Input:PDF Output:PDF Type:SISO", + "operationId": "pdfToSinglePage", + "requestBody": { + "content": { + "multipart/form-data": { + "schema": { + "$ref": "#/components/schemas/PDFFile" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "type": "string", + "format": "byte" + } + } + } + } + } + } + }, + "/api/v1/general/overlay-pdfs": { + "post": { + "tags": [ + "General" + ], + "summary": "Overlay PDF files in various modes", + "description": "Overlay PDF files onto a base PDF with different modes: Sequential, Interleaved, or Fixed Repeat. Input:PDF Output:PDF Type:MIMO", + "operationId": "overlayPdfs", + "requestBody": { + "content": { + "multipart/form-data": { + "schema": { + "$ref": "#/components/schemas/OverlayPdfsRequest" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "type": "string", + "format": "byte" + } + } + } + } + } + } + }, + "/api/v1/general/multi-page-layout": { + "post": { + "tags": [ + "General" + ], + "summary": "Merge multiple pages of a PDF document into a single page", + "description": "This operation takes an input PDF file and the number of pages to merge into a single sheet in the output PDF file. Input:PDF Output:PDF Type:SISO", + "operationId": "mergeMultiplePagesIntoOne", + "requestBody": { + "content": { + "multipart/form-data": { + "schema": { + "$ref": "#/components/schemas/MergeMultiplePagesRequest" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "type": "string", + "format": "byte" + } + } + } + } + } + } + }, + "/api/v1/general/merge-pdfs": { + "post": { + "tags": [ + "General" + ], + "summary": "Merge multiple PDF files into one", + "description": "This endpoint merges multiple PDF files into a single PDF file. The merged file will contain all pages from the input files in the order they were provided. Input:PDF Output:PDF Type:MISO", + "operationId": "mergePdfs", + "requestBody": { + "content": { + "multipart/form-data": { + "schema": { + "$ref": "#/components/schemas/MergePdfsRequest" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "type": "string", + "format": "byte" + } + } + } + } + } + } + }, + "/api/v1/general/extract-bookmarks": { + "post": { + "tags": [ + "General" + ], + "summary": "Extract PDF Bookmarks", + "description": "Extracts bookmarks/table of contents from a PDF document as JSON.", + "operationId": "extractBookmarks", + "requestBody": { + "content": { + "multipart/form-data": { + "schema": { + "type": "object", + "properties": { + "file": { + "type": "string", + "format": "binary" + } + }, + "required": [ + "file" + ] + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": {} + } + } + } + } + } + } + } + }, + "/api/v1/general/edit-table-of-contents": { + "post": { + "tags": [ + "General" + ], + "summary": "Edit Table of Contents", + "description": "Add or edit bookmarks/table of contents in a PDF document.", + "operationId": "editTableOfContents", + "requestBody": { + "content": { + "multipart/form-data": { + "schema": { + "$ref": "#/components/schemas/EditTableOfContentsRequest" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "type": "string", + "format": "byte" + } + } + } + } + } + } + }, + "/api/v1/general/crop": { + "post": { + "tags": [ + "General" + ], + "summary": "Crops a PDF document", + "description": "This operation takes an input PDF file and crops it according to the given coordinates. Input:PDF Output:PDF Type:SISO", + "operationId": "cropPdf", + "requestBody": { + "content": { + "multipart/form-data": { + "schema": { + "$ref": "#/components/schemas/CropPdfForm" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "type": "string", + "format": "byte" + } + } + } + } + } + } + }, + "/api/v1/filter/filter-page-size": { + "post": { + "tags": [ + "Filter" + ], + "summary": "Checks if a PDF is of a certain size", + "description": "Input:PDF Output:Boolean Type:SISO", + "operationId": "pageSize", + "requestBody": { + "content": { + "multipart/form-data": { + "schema": { + "$ref": "#/components/schemas/PageSizeRequest" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "type": "string", + "format": "byte" + } + } + } + } + } + } + }, + "/api/v1/filter/filter-page-rotation": { + "post": { + "tags": [ + "Filter" + ], + "summary": "Checks if a PDF is of a certain rotation", + "description": "Input:PDF Output:Boolean Type:SISO", + "operationId": "pageRotation", + "requestBody": { + "content": { + "multipart/form-data": { + "schema": { + "$ref": "#/components/schemas/PageRotationRequest" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "type": "string", + "format": "byte" + } + } + } + } + } + } + }, + "/api/v1/filter/filter-page-count": { + "post": { + "tags": [ + "Filter" + ], + "summary": "Checks if a PDF is greater, less or equal to a setPageCount", + "description": "Input:PDF Output:Boolean Type:SISO", + "operationId": "pageCount", + "requestBody": { + "content": { + "multipart/form-data": { + "schema": { + "$ref": "#/components/schemas/PDFComparisonAndCount" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "type": "string", + "format": "byte" + } + } + } + } + } + } + }, + "/api/v1/filter/filter-file-size": { + "post": { + "tags": [ + "Filter" + ], + "summary": "Checks if a PDF is a set file size", + "description": "Input:PDF Output:Boolean Type:SISO", + "operationId": "fileSize", + "requestBody": { + "content": { + "multipart/form-data": { + "schema": { + "$ref": "#/components/schemas/FileSizeRequest" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "type": "string", + "format": "byte" + } + } + } + } + } + } + }, + "/api/v1/filter/filter-contains-text": { + "post": { + "tags": [ + "Filter" + ], + "summary": "Checks if a PDF contains set text, returns true if does", + "description": "Input:PDF Output:Boolean Type:SISO", + "operationId": "containsText", + "requestBody": { + "content": { + "multipart/form-data": { + "schema": { + "$ref": "#/components/schemas/ContainsTextRequest" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "type": "string", + "format": "byte" + } + } + } + } + } + } + }, + "/api/v1/filter/filter-contains-image": { + "post": { + "tags": [ + "Filter" + ], + "summary": "Checks if a PDF contains an image", + "description": "Input:PDF Output:Boolean Type:SISO", + "operationId": "containsImage", + "requestBody": { + "content": { + "multipart/form-data": { + "schema": { + "$ref": "#/components/schemas/PDFWithPageNums" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "type": "string", + "format": "byte" + } + } + } + } + } + } + }, + "/api/v1/convert/url/pdf": { + "post": { + "tags": [ + "Convert" + ], + "summary": "Convert a URL to a PDF", + "description": "This endpoint fetches content from a URL and converts it to a PDF format. Input:N/A Output:PDF Type:SISO", + "operationId": "urlToPdf", + "requestBody": { + "content": { + "multipart/form-data": { + "schema": { + "$ref": "#/components/schemas/UrlToPdfRequest" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "type": "string", + "format": "byte" + } + } + } + } + } + } + }, + "/api/v1/convert/pdf/xml": { + "post": { + "tags": [ + "Convert" + ], + "summary": "Convert PDF to XML", + "description": "This endpoint converts a PDF file to an XML file. Input:PDF Output:XML Type:SISO", + "operationId": "processPdfToXML", + "requestBody": { + "content": { + "multipart/form-data": { + "schema": { + "$ref": "#/components/schemas/PDFFile" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "type": "string", + "format": "byte" + } + } + } + } + } + } + }, + "/api/v1/convert/pdf/word": { + "post": { + "tags": [ + "Convert" + ], + "summary": "Convert PDF to Word document", + "description": "This endpoint converts a given PDF file to a Word document format. Input:PDF Output:WORD Type:SISO", + "operationId": "processPdfToWord", + "requestBody": { + "content": { + "multipart/form-data": { + "schema": { + "$ref": "#/components/schemas/PdfToWordRequest" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "type": "string", + "format": "byte" + } + } + } + } + } + } + }, + "/api/v1/convert/pdf/text": { + "post": { + "tags": [ + "Convert" + ], + "summary": "Convert PDF to Text or RTF format", + "description": "This endpoint converts a given PDF file to Text or RTF format. Input:PDF Output:TXT Type:SISO", + "operationId": "processPdfToRTForTXT", + "requestBody": { + "content": { + "multipart/form-data": { + "schema": { + "$ref": "#/components/schemas/PdfToTextOrRTFRequest" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "type": "string", + "format": "byte" + } + } + } + } + } + } + }, + "/api/v1/convert/pdf/presentation": { + "post": { + "tags": [ + "Convert" + ], + "summary": "Convert PDF to Presentation format", + "description": "This endpoint converts a given PDF file to a Presentation format. Input:PDF Output:PPT Type:SISO", + "operationId": "processPdfToPresentation", + "requestBody": { + "content": { + "multipart/form-data": { + "schema": { + "$ref": "#/components/schemas/PdfToPresentationRequest" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "type": "string", + "format": "byte" + } + } + } + } + } + } + }, + "/api/v1/convert/pdf/pdfa": { + "post": { + "tags": [ + "Convert" + ], + "summary": "Convert a PDF to a PDF/A", + "description": "This endpoint converts a PDF file to a PDF/A file using LibreOffice. PDF/A is a format designed for long-term archiving of digital documents. Input:PDF Output:PDF Type:SISO", + "operationId": "pdfToPdfA", + "requestBody": { + "content": { + "multipart/form-data": { + "schema": { + "$ref": "#/components/schemas/PdfToPdfARequest" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "type": "string", + "format": "byte" + } + } + } + } + } + } + }, + "/api/v1/convert/pdf/markdown": { + "post": { + "tags": [ + "Convert" + ], + "summary": "Convert PDF to Markdown", + "description": "This endpoint converts a PDF file to Markdown format. Input:PDF Output:Markdown Type:SISO", + "operationId": "processPdfToMarkdown", + "requestBody": { + "content": { + "multipart/form-data": { + "schema": { + "$ref": "#/components/schemas/PDFFile" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "type": "string", + "format": "byte" + } + } + } + } + } + } + }, + "/api/v1/convert/pdf/img": { + "post": { + "tags": [ + "Convert" + ], + "summary": "Convert PDF to image(s)", + "description": "This endpoint converts a PDF file to image(s) with the specified image format, color type, and DPI. Users can choose to get a single image or multiple images. Input:PDF Output:Image Type:SI-Conditional", + "operationId": "convertToImage", + "requestBody": { + "content": { + "multipart/form-data": { + "schema": { + "$ref": "#/components/schemas/ConvertToImageRequest" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "type": "string", + "format": "byte" + } + } + } + } + } + } + }, + "/api/v1/convert/pdf/html": { + "post": { + "tags": [ + "Convert" + ], + "summary": "Convert PDF to HTML", + "description": "This endpoint converts a PDF file to HTML format. Input:PDF Output:HTML Type:SISO", + "operationId": "processPdfToHTML", + "requestBody": { + "content": { + "multipart/form-data": { + "schema": { + "$ref": "#/components/schemas/PDFFile" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "type": "string", + "format": "byte" + } + } + } + } + } + } + }, + "/api/v1/convert/pdf/csv": { + "post": { + "tags": [ + "Convert" + ], + "summary": "Extracts a CSV document from a PDF", + "description": "This operation takes an input PDF file and returns CSV file of whole page. Input:PDF Output:CSV Type:SISO", + "operationId": "pdfToCsv", + "requestBody": { + "content": { + "multipart/form-data": { + "schema": { + "$ref": "#/components/schemas/PDFWithPageNums" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "type": "object" + } + } + } + } + } + } + }, + "/api/v1/convert/markdown/pdf": { + "post": { + "tags": [ + "Convert" + ], + "summary": "Convert a Markdown file to PDF", + "description": "This endpoint takes a Markdown file input, converts it to HTML, and then to PDF format. Input:MARKDOWN Output:PDF Type:SISO", + "operationId": "markdownToPdf", + "requestBody": { + "content": { + "multipart/form-data": { + "schema": { + "$ref": "#/components/schemas/GeneralFile" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "type": "string", + "format": "byte" + } + } + } + } + } + } + }, + "/api/v1/convert/img/pdf": { + "post": { + "tags": [ + "Convert" + ], + "summary": "Convert images to a PDF file", + "description": "This endpoint converts one or more images to a PDF file. Users can specify whether to stretch the images to fit the PDF page, and whether to automatically rotate the images. Input:Image Output:PDF Type:MISO", + "operationId": "convertToPdf", + "requestBody": { + "content": { + "multipart/form-data": { + "schema": { + "$ref": "#/components/schemas/ConvertToPdfRequest" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "type": "string", + "format": "byte" + } + } + } + } + } + } + }, + "/api/v1/convert/html/pdf": { + "post": { + "tags": [ + "Convert" + ], + "summary": "Convert an HTML or ZIP (containing HTML and CSS) to PDF", + "description": "This endpoint takes an HTML or ZIP file input and converts it to a PDF format. Input:HTML Output:PDF Type:SISO", + "operationId": "HtmlToPdf", + "requestBody": { + "content": { + "multipart/form-data": { + "schema": { + "$ref": "#/components/schemas/HTMLToPdfRequest" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "type": "string", + "format": "byte" + } + } + } + } + } + } + }, + "/api/v1/convert/file/pdf": { + "post": { + "tags": [ + "Convert" + ], + "summary": "Convert a file to a PDF using LibreOffice", + "description": "This endpoint converts a given file to a PDF using LibreOffice API Input:ANY Output:PDF Type:SISO", + "operationId": "processFileToPDF", + "requestBody": { + "content": { + "multipart/form-data": { + "schema": { + "$ref": "#/components/schemas/GeneralFile" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "type": "string", + "format": "byte" + } + } + } + } + } + } + }, + "/api/v1/convert/eml/pdf": { + "post": { + "tags": [ + "Convert" + ], + "summary": "Convert EML to PDF", + "description": "This endpoint converts EML (email) files to PDF format with extensive customization options. Features include font settings, image constraints, display modes, attachment handling, and HTML debug output. Input: EML file, Output: PDF or HTML file. Type: SISO", + "operationId": "convertEmlToPdf", + "requestBody": { + "content": { + "multipart/form-data": { + "schema": { + "$ref": "#/components/schemas/EmlToPdfRequest" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "type": "string", + "format": "byte" + } + } + } + } + } + } + }, + "/api/v1/analysis/security-info": { + "post": { + "tags": [ + "Analysis" + ], + "summary": "Get security information", + "description": "Returns encryption and permission details. Input:PDF Output:JSON Type:SISO", + "operationId": "getSecurityInfo", + "requestBody": { + "content": { + "multipart/form-data": { + "schema": { + "$ref": "#/components/schemas/PDFFile" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "type": "object", + "additionalProperties": {} + } + } + } + } + } + } + }, + "/api/v1/analysis/page-dimensions": { + "post": { + "tags": [ + "Analysis" + ], + "summary": "Get page dimensions for all pages", + "description": "Returns width and height of each page. Input:PDF Output:JSON Type:SISO", + "operationId": "getPageDimensions", + "requestBody": { + "content": { + "multipart/form-data": { + "schema": { + "$ref": "#/components/schemas/PDFFile" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": { + "type": "number", + "format": "float" + } + } + } + } + } + } + } + } + }, + "/api/v1/analysis/page-count": { + "post": { + "tags": [ + "Analysis" + ], + "summary": "Get PDF page count", + "description": "Returns total number of pages in PDF. Input:PDF Output:JSON Type:SISO", + "operationId": "getPageCount", + "requestBody": { + "content": { + "multipart/form-data": { + "schema": { + "$ref": "#/components/schemas/PDFFile" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "type": "object", + "additionalProperties": { + "type": "integer", + "format": "int32" + } + } + } + } + } + } + } + }, + "/api/v1/analysis/form-fields": { + "post": { + "tags": [ + "Analysis" + ], + "summary": "Get form field information", + "description": "Returns count and details of form fields. Input:PDF Output:JSON Type:SISO", + "operationId": "getFormFields", + "requestBody": { + "content": { + "multipart/form-data": { + "schema": { + "$ref": "#/components/schemas/PDFFile" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "type": "object", + "additionalProperties": {} + } + } + } + } + } + } + }, + "/api/v1/analysis/font-info": { + "post": { + "tags": [ + "Analysis" + ], + "summary": "Get font information", + "description": "Returns list of fonts used in the document. Input:PDF Output:JSON Type:SISO", + "operationId": "getFontInfo", + "requestBody": { + "content": { + "multipart/form-data": { + "schema": { + "$ref": "#/components/schemas/PDFFile" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "type": "object", + "additionalProperties": {} + } + } + } + } + } + } + }, + "/api/v1/analysis/document-properties": { + "post": { + "tags": [ + "Analysis" + ], + "summary": "Get PDF document properties", + "description": "Returns title, author, subject, etc. Input:PDF Output:JSON Type:SISO", + "operationId": "getDocumentProperties", + "requestBody": { + "content": { + "multipart/form-data": { + "schema": { + "$ref": "#/components/schemas/PDFFile" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "type": "object", + "additionalProperties": { + "type": "string" + } + } + } + } + } + } + } + }, + "/api/v1/analysis/basic-info": { + "post": { + "tags": [ + "Analysis" + ], + "summary": "Get basic PDF information", + "description": "Returns page count, version, file size. Input:PDF Output:JSON Type:SISO", + "operationId": "getBasicInfo", + "requestBody": { + "content": { + "multipart/form-data": { + "schema": { + "$ref": "#/components/schemas/PDFFile" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "type": "object", + "additionalProperties": {} + } + } + } + } + } + } + }, + "/api/v1/analysis/annotation-info": { + "post": { + "tags": [ + "Analysis" + ], + "summary": "Get annotation information", + "description": "Returns count and types of annotations. Input:PDF Output:JSON Type:SISO", + "operationId": "getAnnotationInfo", + "requestBody": { + "content": { + "multipart/form-data": { + "schema": { + "$ref": "#/components/schemas/PDFFile" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "type": "object", + "additionalProperties": {} + } + } + } + } + } + } + }, + "/api/v1/info/uptime": { + "get": { + "tags": [ + "Info" + ], + "operationId": "getUptime", + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "type": "object" + } + } + } + } + } + } + }, + "/api/v1/info/status": { + "get": { + "tags": [ + "Info" + ], + "summary": "Application status and version", + "description": "This endpoint returns the status of the application and its version number.", + "operationId": "getStatus", + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "type": "object" + } + } + } + } + } + } + }, + "/api/v1/info/requests": { + "get": { + "tags": [ + "Info" + ], + "summary": "POST request count", + "description": "This endpoint returns the total count of POST requests for a specific endpoint or all endpoints.", + "operationId": "getTotalRequests", + "parameters": [ + { + "name": "endpoint", + "in": "query", + "description": "endpoint", + "required": false, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "type": "object" + } + } + } + } + } + } + }, + "/api/v1/info/requests/unique": { + "get": { + "tags": [ + "Info" + ], + "summary": "Unique users count for POST requests", + "description": "This endpoint returns the count of unique users for POST requests for a specific endpoint or all endpoints.", + "operationId": "getUniqueTotalRequests", + "parameters": [ + { + "name": "endpoint", + "in": "query", + "description": "endpoint", + "required": false, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "type": "object" + } + } + } + } + } + } + }, + "/api/v1/info/requests/all": { + "get": { + "tags": [ + "Info" + ], + "summary": "POST requests count for all endpoints", + "description": "This endpoint returns the count of POST requests for each endpoint.", + "operationId": "getAllPostRequests", + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "type": "object" + } + } + } + } + } + } + }, + "/api/v1/info/requests/all/unique": { + "get": { + "tags": [ + "Info" + ], + "summary": "Unique users count for POST requests for all endpoints", + "description": "This endpoint returns the count of unique users for POST requests for each endpoint.", + "operationId": "getAllUniquePostRequests", + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "type": "object" + } + } + } + } + } + } + }, + "/api/v1/info/load": { + "get": { + "tags": [ + "Info" + ], + "summary": "GET request count", + "description": "This endpoint returns the total count of GET requests for a specific endpoint or all endpoints.", + "operationId": "getPageLoads", + "parameters": [ + { + "name": "endpoint", + "in": "query", + "description": "endpoint", + "required": false, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "type": "object" + } + } + } + } + } + } + }, + "/api/v1/info/load/unique": { + "get": { + "tags": [ + "Info" + ], + "summary": "Unique users count for GET requests", + "description": "This endpoint returns the count of unique users for GET requests for a specific endpoint or all endpoints.", + "operationId": "getUniquePageLoads", + "parameters": [ + { + "name": "endpoint", + "in": "query", + "description": "endpoint", + "required": false, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "type": "object" + } + } + } + } + } + } + }, + "/api/v1/info/load/all": { + "get": { + "tags": [ + "Info" + ], + "summary": "GET requests count for all endpoints", + "description": "This endpoint returns the count of GET requests for each endpoint.", + "operationId": "getAllEndpointLoads", + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "type": "object" + } + } + } + } + } + } + }, + "/api/v1/info/load/all/unique": { + "get": { + "tags": [ + "Info" + ], + "summary": "Unique users count for GET requests for all endpoints", + "description": "This endpoint returns the count of unique users for GET requests for each endpoint.", + "operationId": "getAllUniqueEndpointLoads", + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "type": "object" + } + } + } + } + } + } + }, + "/api/v1/general/job/{jobId}": { + "get": { + "tags": [ + "job-controller" + ], + "operationId": "getJobStatus", + "parameters": [ + { + "name": "jobId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "type": "object" + } + } + } + } + } + }, + "delete": { + "tags": [ + "job-controller" + ], + "operationId": "cancelJob", + "parameters": [ + { + "name": "jobId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "type": "object" + } + } + } + } + } + } + }, + "/api/v1/general/job/{jobId}/result": { + "get": { + "tags": [ + "job-controller" + ], + "operationId": "getJobResult", + "parameters": [ + { + "name": "jobId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "type": "object" + } + } + } + } + } + } + }, + "/api/v1/general/job/{jobId}/result/files": { + "get": { + "tags": [ + "job-controller" + ], + "operationId": "getJobFiles", + "parameters": [ + { + "name": "jobId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "type": "object" + } + } + } + } + } + } + }, + "/api/v1/general/files/{fileId}": { + "get": { + "tags": [ + "job-controller" + ], + "operationId": "downloadFile", + "parameters": [ + { + "name": "fileId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "type": "object" + } + } + } + } + } + } + }, + "/api/v1/general/files/{fileId}/metadata": { + "get": { + "tags": [ + "job-controller" + ], + "operationId": "getFileMetadata", + "parameters": [ + { + "name": "fileId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "type": "object" + } + } + } + } + } + } + } + }, + "components": { + "schemas": { + "SignatureValidationRequest": { + "type": "object", + "properties": { + "fileInput": { + "type": "string", + "format": "binary", + "contentMediaType": "application/pdf", + "description": "The input PDF file" + }, + "fileId": { + "type": "string", + "description": "File ID for server-side files (can be used instead of fileInput)", + "example": "a1b2c3d4-5678-90ab-cdef-ghijklmnopqr" + }, + "certFile": { + "type": "string", + "format": "binary", + "description": "(Optional) file to compare PDF cert signatures against x.509 format" + } + } + }, + "SignatureValidationResult": { + "type": "object", + "properties": { + "valid": { + "type": "boolean" + }, + "signerName": { + "type": "string" + }, + "signatureDate": { + "type": "string" + }, + "reason": { + "type": "string" + }, + "location": { + "type": "string" + }, + "errorMessage": { + "type": "string" + }, + "chainValid": { + "type": "boolean" + }, + "trustValid": { + "type": "boolean" + }, + "notExpired": { + "type": "boolean" + }, + "notRevoked": { + "type": "boolean" + }, + "issuerDN": { + "type": "string" + }, + "subjectDN": { + "type": "string" + }, + "serialNumber": { + "type": "string" + }, + "validFrom": { + "type": "string" + }, + "validUntil": { + "type": "string" + }, + "signatureAlgorithm": { + "type": "string" + }, + "keySize": { + "type": "integer", + "format": "int32" + }, + "version": { + "type": "string" + }, + "keyUsages": { + "type": "array", + "items": { + "type": "string" + } + }, + "selfSigned": { + "type": "boolean" + } + } + }, + "SanitizePdfRequest": { + "type": "object", + "properties": { + "fileInput": { + "type": "string", + "format": "binary", + "contentMediaType": "application/pdf", + "description": "The input PDF file" + }, + "fileId": { + "type": "string", + "description": "File ID for server-side files (can be used instead of fileInput)", + "example": "a1b2c3d4-5678-90ab-cdef-ghijklmnopqr" + }, + "removeJavaScript": { + "type": "boolean", + "default": true, + "description": "Remove JavaScript actions from the PDF" + }, + "removeEmbeddedFiles": { + "type": "boolean", + "default": true, + "description": "Remove embedded files from the PDF" + }, + "removeXMPMetadata": { + "type": "boolean", + "default": false, + "description": "Remove XMP metadata from the PDF" + }, + "removeMetadata": { + "type": "boolean", + "default": false, + "description": "Remove document info metadata from the PDF" + }, + "removeLinks": { + "type": "boolean", + "default": false, + "description": "Remove links from the PDF" + }, + "removeFonts": { + "type": "boolean", + "default": false, + "description": "Remove fonts from the PDF" + } + }, + "required": [ + "removeEmbeddedFiles", + "removeFonts", + "removeJavaScript", + "removeLinks", + "removeMetadata", + "removeXMPMetadata" + ] + }, + "PDFPasswordRequest": { + "type": "object", + "properties": { + "fileInput": { + "type": "string", + "format": "binary", + "contentMediaType": "application/pdf", + "description": "The input PDF file" + }, + "fileId": { + "type": "string", + "description": "File ID for server-side files (can be used instead of fileInput)", + "example": "a1b2c3d4-5678-90ab-cdef-ghijklmnopqr" + }, + "password": { + "type": "string", + "format": "password", + "description": "The password of the PDF file" + } + } + }, + "PDFFile": { + "type": "object", + "properties": { + "fileInput": { + "type": "string", + "format": "binary", + "contentMediaType": "application/pdf", + "description": "The input PDF file" + }, + "fileId": { + "type": "string", + "description": "File ID for server-side files (can be used instead of fileInput)", + "example": "a1b2c3d4-5678-90ab-cdef-ghijklmnopqr" + } + } + }, + "ManualRedactPdfRequest": { + "type": "object", + "properties": { + "fileInput": { + "type": "string", + "format": "binary", + "contentMediaType": "application/pdf", + "description": "The input PDF file" + }, + "fileId": { + "type": "string", + "description": "File ID for server-side files (can be used instead of fileInput)", + "example": "a1b2c3d4-5678-90ab-cdef-ghijklmnopqr" + }, + "pageNumbers": { + "type": "string", + "default": "all", + "description": "The pages to select, Supports ranges (e.g., \u00271,3,5-9\u0027), or \u0027all\u0027 or functions in the format \u0027an+b\u0027 where \u0027a\u0027 is the multiplier of the page number \u0027n\u0027, and \u0027b\u0027 is a constant (e.g., \u00272n+1\u0027, \u00273n\u0027, \u00276n-5\u0027)" + }, + "redactions": { + "type": "array", + "description": "A list of areas that should be redacted", + "items": { + "$ref": "#/components/schemas/RedactionArea" + } + }, + "convertPDFToImage": { + "type": "boolean", + "default": false, + "description": "Convert the redacted PDF to an image" + }, + "pageRedactionColor": { + "type": "string", + "default": "#000000", + "description": "The color used to fully redact certain pages" + } + }, + "required": [ + "convertPDFToImage", + "pageNumbers", + "pageRedactionColor", + "redactions" + ] + }, + "RedactionArea": { + "type": "object", + "properties": { + "x": { + "type": "number", + "format": "double", + "description": "The left edge point of the area to be redacted." + }, + "y": { + "type": "number", + "format": "double", + "description": "The top edge point of the area to be redacted." + }, + "height": { + "type": "number", + "format": "double", + "description": "The height of the area to be redacted." + }, + "width": { + "type": "number", + "format": "double", + "description": "The width of the area to be redacted." + }, + "page": { + "type": "integer", + "format": "int32", + "description": "The page on which the area should be redacted." + }, + "color": { + "type": "string", + "description": "The color used to redact the specified area." + } + } + }, + "SignPDFWithCertRequest": { + "type": "object", + "properties": { + "fileInput": { + "type": "string", + "format": "binary", + "contentMediaType": "application/pdf", + "description": "The input PDF file" + }, + "fileId": { + "type": "string", + "description": "File ID for server-side files (can be used instead of fileInput)", + "example": "a1b2c3d4-5678-90ab-cdef-ghijklmnopqr" + }, + "certType": { + "type": "string", + "description": "The type of the digital certificate", + "enum": [ + "PEM", + "PKCS12", + "JKS" + ] + }, + "privateKeyFile": { + "type": "string", + "format": "binary", + "description": "The private key for the digital certificate (required for PEM type certificates)" + }, + "certFile": { + "type": "string", + "format": "binary", + "description": "The digital certificate (required for PEM type certificates)" + }, + "p12File": { + "type": "string", + "format": "binary", + "description": "The PKCS12 keystore file (required for PKCS12 type certificates)" + }, + "jksFile": { + "type": "string", + "format": "binary", + "description": "The JKS keystore file (Java Key Store)" + }, + "password": { + "type": "string", + "format": "password", + "description": "The password for the keystore or the private key" + }, + "showSignature": { + "type": "boolean", + "default": false, + "description": "Whether to visually show the signature in the PDF file" + }, + "reason": { + "type": "string", + "default": "Signed by SPDF", + "description": "The reason for signing the PDF" + }, + "location": { + "type": "string", + "default": "SPDF", + "description": "The location where the PDF is signed" + }, + "name": { + "type": "string", + "default": "SPDF", + "description": "The name of the signer" + }, + "pageNumber": { + "type": "integer", + "format": "int32", + "default": 1, + "description": "The page number where the signature should be visible. This is required if showSignature is set to true" + }, + "showLogo": { + "type": "boolean", + "default": true, + "description": "Whether to visually show a signature logo along with the signature" + } + }, + "required": [ + "certType", + "showLogo", + "showSignature" + ] + }, + "RedactPdfRequest": { + "type": "object", + "properties": { + "fileInput": { + "type": "string", + "format": "binary", + "contentMediaType": "application/pdf", + "description": "The input PDF file" + }, + "fileId": { + "type": "string", + "description": "File ID for server-side files (can be used instead of fileInput)", + "example": "a1b2c3d4-5678-90ab-cdef-ghijklmnopqr" + }, + "listOfText": { + "type": "string", + "default": "text,text2", + "description": "List of text to redact from the PDF" + }, + "useRegex": { + "type": "boolean", + "default": false, + "description": "Whether to use regex for the listOfText" + }, + "wholeWordSearch": { + "type": "boolean", + "default": false, + "description": "Whether to use whole word search" + }, + "redactColor": { + "type": "string", + "default": "#000000", + "description": "The color for redaction" + }, + "customPadding": { + "type": "number", + "description": "Custom padding for redaction" + }, + "convertPDFToImage": { + "type": "boolean", + "default": false, + "description": "Convert the redacted PDF to an image" + } + }, + "required": [ + "convertPDFToImage", + "customPadding", + "listOfText", + "redactColor", + "useRegex", + "wholeWordSearch" + ] + }, + "AddWatermarkRequest": { + "type": "object", + "properties": { + "fileInput": { + "type": "string", + "format": "binary", + "contentMediaType": "application/pdf", + "description": "The input PDF file" + }, + "fileId": { + "type": "string", + "description": "File ID for server-side files (can be used instead of fileInput)", + "example": "a1b2c3d4-5678-90ab-cdef-ghijklmnopqr" + }, + "watermarkType": { + "type": "string", + "description": "The watermark type (text or image)", + "enum": [ + "text", + "image" + ] + }, + "watermarkText": { + "type": "string", + "default": "Stirling Software", + "description": "The watermark text" + }, + "watermarkImage": { + "type": "string", + "format": "binary", + "description": "The watermark image" + }, + "alphabet": { + "type": "string", + "default": "roman", + "description": "The selected alphabet", + "enum": [ + "roman", + "arabic", + "japanese", + "korean", + "chinese" + ] + }, + "fontSize": { + "type": "number", + "format": "float", + "default": 30, + "description": "The font size of the watermark text" + }, + "rotation": { + "type": "number", + "format": "float", + "default": 0, + "description": "The rotation of the watermark in degrees" + }, + "opacity": { + "type": "number", + "format": "float", + "default": "0.5", + "description": "The opacity of the watermark (0.0 - 1.0)" + }, + "widthSpacer": { + "type": "integer", + "format": "int32", + "default": 50, + "description": "The width spacer between watermark elements" + }, + "heightSpacer": { + "type": "integer", + "format": "int32", + "default": 50, + "description": "The height spacer between watermark elements" + }, + "customColor": { + "type": "string", + "default": "#d3d3d3", + "description": "The color for watermark" + }, + "convertPDFToImage": { + "type": "boolean", + "default": false, + "description": "Convert the redacted PDF to an image" + } + }, + "required": [ + "convertPDFToImage", + "watermarkType" + ] + }, + "AddPasswordRequest": { + "type": "object", + "properties": { + "fileInput": { + "type": "string", + "format": "binary", + "contentMediaType": "application/pdf", + "description": "The input PDF file" + }, + "fileId": { + "type": "string", + "description": "File ID for server-side files (can be used instead of fileInput)", + "example": "a1b2c3d4-5678-90ab-cdef-ghijklmnopqr" + }, + "ownerPassword": { + "type": "string", + "format": "password", + "description": "The owner password to be added to the PDF file (Restricts what can be done with the document once it is opened)" + }, + "password": { + "type": "string", + "format": "password", + "description": "The password to be added to the PDF file (Restricts the opening of the document itself.)" + }, + "keyLength": { + "type": "integer", + "format": "int32", + "default": 256, + "description": "The length of the encryption key", + "enum": [ + "40", + "128", + "256" + ] + }, + "preventAssembly": { + "type": "boolean", + "default": false, + "description": "Whether document assembly is prevented" + }, + "preventExtractContent": { + "type": "boolean", + "default": false, + "description": "Whether content extraction is prevented" + }, + "preventExtractForAccessibility": { + "type": "boolean", + "default": false, + "description": "Whether content extraction for accessibility is prevented" + }, + "preventFillInForm": { + "type": "boolean", + "default": false, + "description": "Whether form filling is prevented" + }, + "preventModify": { + "type": "boolean", + "default": false, + "description": "Whether document modification is prevented" + }, + "preventModifyAnnotations": { + "type": "boolean", + "default": false, + "description": "Whether modification of annotations is prevented" + }, + "preventPrinting": { + "type": "boolean", + "default": false, + "description": "Whether printing of the document is prevented" + }, + "preventPrintingFaithful": { + "type": "boolean", + "default": false, + "description": "Whether faithful printing is prevented" + } + }, + "required": [ + "keyLength" + ] + }, + "HandleDataRequest": { + "type": "object", + "properties": { + "fileInput": { + "type": "array", + "description": "The input files", + "items": { + "type": "string", + "format": "binary" + } + }, + "json": { + "type": "string", + "default": "{}", + "description": "JSON String" + } + }, + "required": [ + "fileInput", + "json" + ] + }, + "MetadataRequest": { + "type": "object", + "properties": { + "fileInput": { + "type": "string", + "format": "binary", + "contentMediaType": "application/pdf", + "description": "The input PDF file" + }, + "fileId": { + "type": "string", + "description": "File ID for server-side files (can be used instead of fileInput)", + "example": "a1b2c3d4-5678-90ab-cdef-ghijklmnopqr" + }, + "deleteAll": { + "type": "boolean", + "default": false, + "description": "Delete all metadata if set to true" + }, + "author": { + "type": "string", + "default": "author", + "description": "The author of the document" + }, + "creationDate": { + "type": "string", + "default": "2023/10/01 12:00:00", + "description": "The creation date of the document (format: yyyy/MM/dd HH:mm:ss)", + "pattern": "yyyy/MM/dd HH:mm:ss" + }, + "creator": { + "type": "string", + "default": "creator", + "description": "The creator of the document" + }, + "keywords": { + "type": "string", + "default": "keywords", + "description": "The keywords for the document" + }, + "modificationDate": { + "type": "string", + "default": "2023/10/01 12:00:00", + "description": "The modification date of the document (format: yyyy/MM/dd HH:mm:ss)", + "pattern": "yyyy/MM/dd HH:mm:ss" + }, + "producer": { + "type": "string", + "default": "producer", + "description": "The producer of the document" + }, + "subject": { + "type": "string", + "default": "subject", + "description": "The subject of the document" + }, + "title": { + "type": "string", + "default": "title", + "description": "The title of the document" + }, + "trapped": { + "type": "string", + "default": "False", + "description": "The trapped status of the document", + "enum": [ + "True", + "False", + "Unknown" + ] + }, + "allRequestParams": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Map list of key and value of custom parameters. Note these must start with customKey and customValue if they are non-standard" + } + }, + "required": [ + "deleteAll" + ] + }, + "ReplaceAndInvertColorRequest": { + "type": "object", + "properties": { + "fileInput": { + "type": "string", + "format": "binary", + "contentMediaType": "application/pdf", + "description": "The input PDF file" + }, + "fileId": { + "type": "string", + "description": "File ID for server-side files (can be used instead of fileInput)", + "example": "a1b2c3d4-5678-90ab-cdef-ghijklmnopqr" + }, + "replaceAndInvertOption": { + "type": "string", + "default": "HIGH_CONTRAST_COLOR", + "description": "Replace and Invert color options of a pdf.", + "enum": [ + "HIGH_CONTRAST_COLOR", + "CUSTOM_COLOR", + "FULL_INVERSION" + ] + }, + "highContrastColorCombination": { + "type": "string", + "default": "WHITE_TEXT_ON_BLACK", + "description": "If HIGH_CONTRAST_COLOR option selected, then pick the default color option for text and background.", + "enum": [ + "WHITE_TEXT_ON_BLACK", + "BLACK_TEXT_ON_WHITE", + "YELLOW_TEXT_ON_BLACK", + "GREEN_TEXT_ON_BLACK" + ] + }, + "backGroundColor": { + "type": "string", + "description": "If CUSTOM_COLOR option selected, then pick the custom color for background. Expected color value should be 24bit decimal value of a color" + }, + "textColor": { + "type": "string", + "description": "If CUSTOM_COLOR option selected, then pick the custom color for text. Expected color value should be 24bit decimal value of a color" + } + }, + "required": [ + "highContrastColorCombination", + "replaceAndInvertOption" + ] + }, + "RemoveBlankPagesRequest": { + "type": "object", + "properties": { + "fileInput": { + "type": "string", + "format": "binary", + "contentMediaType": "application/pdf", + "description": "The input PDF file" + }, + "fileId": { + "type": "string", + "description": "File ID for server-side files (can be used instead of fileInput)", + "example": "a1b2c3d4-5678-90ab-cdef-ghijklmnopqr" + }, + "threshold": { + "type": "integer", + "format": "int32", + "default": 10, + "description": "The threshold value to determine blank pages", + "maximum": 255, + "minimum": 0 + }, + "whitePercent": { + "type": "number", + "format": "float", + "default": "99.9", + "description": "The percentage of white color on a page to consider it as blank", + "maximum": 100, + "minimum": 0.1 + } + }, + "required": [ + "threshold", + "whitePercent" + ] + }, + "ProcessPdfWithOcrRequest": { + "type": "object", + "properties": { + "fileInput": { + "type": "string", + "format": "binary", + "contentMediaType": "application/pdf", + "description": "The input PDF file" + }, + "fileId": { + "type": "string", + "description": "File ID for server-side files (can be used instead of fileInput)", + "example": "a1b2c3d4-5678-90ab-cdef-ghijklmnopqr" + }, + "languages": { + "type": "array", + "default": "[\"eng\"]", + "description": "List of languages to use in OCR processing, e.g., \u0027eng\u0027, \u0027deu\u0027", + "items": { + "type": "string" + } + }, + "sidecar": { + "type": "boolean", + "description": "Include OCR text in a sidecar text file if set to true" + }, + "deskew": { + "type": "boolean", + "description": "Deskew the input file if set to true" + }, + "clean": { + "type": "boolean", + "description": "Clean the input file if set to true" + }, + "cleanFinal": { + "type": "boolean", + "description": "Clean the final output if set to true" + }, + "ocrType": { + "type": "string", + "description": "Specify the OCR type, e.g., \u0027skip-text\u0027, \u0027force-ocr\u0027, or \u0027Normal\u0027", + "enum": [ + "skip-text", + "force-ocr", + "Normal" + ] + }, + "ocrRenderType": { + "type": "string", + "default": "hocr", + "description": "Specify the OCR render type, either \u0027hocr\u0027 or \u0027sandwich\u0027", + "enum": [ + "hocr", + "sandwich" + ] + }, + "removeImagesAfter": { + "type": "boolean", + "description": "Remove images from the output PDF if set to true" + } + }, + "required": [ + "languages", + "ocrRenderType", + "ocrType" + ] + }, + "FlattenRequest": { + "type": "object", + "properties": { + "fileInput": { + "type": "string", + "format": "binary", + "contentMediaType": "application/pdf", + "description": "The input PDF file" + }, + "fileId": { + "type": "string", + "description": "File ID for server-side files (can be used instead of fileInput)", + "example": "a1b2c3d4-5678-90ab-cdef-ghijklmnopqr" + }, + "flattenOnlyForms": { + "type": "boolean", + "default": false, + "description": "True to flatten only the forms, false to flatten full PDF (Convert page to image)" + } + }, + "required": [ + "flattenOnlyForms" + ] + }, + "FakeScanRequest": { + "type": "object", + "properties": { + "fileInput": { + "type": "string", + "format": "binary", + "description": "PDF file to process" + }, + "quality": { + "type": "string", + "description": "Scan quality preset", + "enum": [ + "low", + "medium", + "high" + ], + "example": "high" + }, + "rotation": { + "type": "string", + "description": "Rotation preset", + "enum": [ + "none", + "slight", + "moderate", + "severe" + ], + "example": "none" + }, + "colorspace": { + "type": "string", + "description": "Colorspace for output image", + "enum": [ + "grayscale", + "color" + ], + "example": "grayscale" + }, + "border": { + "type": "integer", + "format": "int32", + "description": "Border thickness in pixels", + "example": 20 + }, + "rotate": { + "type": "integer", + "format": "int32", + "description": "Base rotation in degrees", + "example": 0 + }, + "rotateVariance": { + "type": "integer", + "format": "int32", + "description": "Random rotation variance in degrees", + "example": 2 + }, + "brightness": { + "type": "number", + "format": "float", + "description": "Brightness multiplier (1.0 \u003d no change)", + "example": 1.0 + }, + "contrast": { + "type": "number", + "format": "float", + "description": "Contrast multiplier (1.0 \u003d no change)", + "example": 1.0 + }, + "blur": { + "type": "number", + "format": "float", + "description": "Blur amount (0 \u003d none, higher \u003d more blur)", + "example": 1.0 + }, + "noise": { + "type": "number", + "format": "float", + "description": "Noise amount (0 \u003d none, higher \u003d more noise)", + "example": 8.0 + }, + "yellowish": { + "type": "boolean", + "description": "Simulate yellowed paper", + "example": false + }, + "resolution": { + "type": "integer", + "format": "int32", + "description": "Rendering resolution in DPI", + "example": 300 + }, + "advancedEnabled": { + "type": "boolean", + "description": "Whether advanced settings are enabled", + "example": false + }, + "rotationValue": { + "type": "integer", + "format": "int32" + }, + "qualityValue": { + "type": "integer", + "format": "int32" + } + }, + "required": [ + "fileInput", + "quality", + "rotation" + ] + }, + "PDFExtractImagesRequest": { + "type": "object", + "properties": { + "fileInput": { + "type": "string", + "format": "binary", + "contentMediaType": "application/pdf", + "description": "The input PDF file" + }, + "fileId": { + "type": "string", + "description": "File ID for server-side files (can be used instead of fileInput)", + "example": "a1b2c3d4-5678-90ab-cdef-ghijklmnopqr" + }, + "format": { + "type": "string", + "default": "png", + "description": "The output image format e.g., \u0027png\u0027, \u0027jpeg\u0027, or \u0027gif\u0027", + "enum": [ + "png", + "jpeg", + "gif" + ] + }, + "allowDuplicates": { + "type": "boolean", + "default": false, + "description": "Boolean to enable/disable the saving of duplicate images, true to enable duplicates" + } + }, + "required": [ + "format" + ] + }, + "ExtractImageScansRequest": { + "type": "object", + "properties": { + "fileInput": { + "type": "string", + "format": "binary", + "description": "The input file containing image scans" + }, + "angleThreshold": { + "type": "integer", + "format": "int32", + "default": 5, + "description": "The angle threshold for the image scan extraction" + }, + "tolerance": { + "type": "integer", + "format": "int32", + "default": 20, + "description": "The tolerance for the image scan extraction" + }, + "minArea": { + "type": "integer", + "format": "int32", + "default": 8000, + "description": "The minimum area for the image scan extraction" + }, + "minContourArea": { + "type": "integer", + "format": "int32", + "default": 500, + "description": "The minimum contour area for the image scan extraction" + }, + "borderSize": { + "type": "integer", + "format": "int32", + "default": 1, + "description": "The border size for the image scan extraction" + } + }, + "required": [ + "angleThreshold", + "borderSize", + "fileInput", + "minArea", + "minContourArea", + "tolerance" + ] + }, + "OptimizePdfRequest": { + "type": "object", + "properties": { + "fileInput": { + "type": "string", + "format": "binary", + "contentMediaType": "application/pdf", + "description": "The input PDF file" + }, + "fileId": { + "type": "string", + "description": "File ID for server-side files (can be used instead of fileInput)", + "example": "a1b2c3d4-5678-90ab-cdef-ghijklmnopqr" + }, + "optimizeLevel": { + "type": "integer", + "format": "int32", + "default": 5, + "description": "The level of optimization to apply to the PDF file. Higher values indicate greater compression but may reduce quality.", + "enum": [ + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9" + ] + }, + "expectedOutputSize": { + "type": "string", + "default": "25KB", + "description": "The expected output size, e.g. \u0027100MB\u0027, \u002725KB\u0027, etc." + }, + "linearize": { + "type": "boolean", + "default": false, + "description": "Whether to linearize the PDF for faster web viewing. Default is false." + }, + "normalize": { + "type": "boolean", + "default": false, + "description": "Whether to normalize the PDF content for better compatibility. Default is false." + }, + "grayscale": { + "type": "boolean", + "default": false, + "description": "Whether to convert the PDF to grayscale. Default is false." + } + }, + "required": [ + "expectedOutputSize", + "grayscale", + "linearize", + "normalize", + "optimizeLevel" + ] + }, + "AutoSplitPdfRequest": { + "type": "object", + "properties": { + "fileInput": { + "type": "string", + "format": "binary", + "contentMediaType": "application/pdf", + "description": "The input PDF file" + }, + "fileId": { + "type": "string", + "description": "File ID for server-side files (can be used instead of fileInput)", + "example": "a1b2c3d4-5678-90ab-cdef-ghijklmnopqr" + }, + "duplexMode": { + "type": "boolean", + "default": false, + "description": "Flag indicating if the duplex mode is active, where the page after the divider also gets removed." + } + } + }, + "ExtractHeaderRequest": { + "type": "object", + "properties": { + "fileInput": { + "type": "string", + "format": "binary", + "contentMediaType": "application/pdf", + "description": "The input PDF file" + }, + "fileId": { + "type": "string", + "description": "File ID for server-side files (can be used instead of fileInput)", + "example": "a1b2c3d4-5678-90ab-cdef-ghijklmnopqr" + }, + "useFirstTextAsFallback": { + "type": "boolean", + "default": false, + "description": "Flag indicating whether to use the first text as a fallback if no suitable title is found. Defaults to false." + } + } + }, + "AddStampRequest": { + "type": "object", + "properties": { + "fileInput": { + "type": "string", + "format": "binary", + "contentMediaType": "application/pdf", + "description": "The input PDF file" + }, + "fileId": { + "type": "string", + "description": "File ID for server-side files (can be used instead of fileInput)", + "example": "a1b2c3d4-5678-90ab-cdef-ghijklmnopqr" + }, + "pageNumbers": { + "type": "string", + "default": "all", + "description": "The pages to select, Supports ranges (e.g., \u00271,3,5-9\u0027), or \u0027all\u0027 or functions in the format \u0027an+b\u0027 where \u0027a\u0027 is the multiplier of the page number \u0027n\u0027, and \u0027b\u0027 is a constant (e.g., \u00272n+1\u0027, \u00273n\u0027, \u00276n-5\u0027)" + }, + "stampType": { + "type": "string", + "description": "The stamp type (text or image)", + "enum": [ + "text", + "image" + ] + }, + "stampText": { + "type": "string", + "default": "Stirling Software", + "description": "The stamp text" + }, + "stampImage": { + "type": "string", + "format": "binary", + "description": "The stamp image" + }, + "alphabet": { + "type": "string", + "default": "roman", + "description": "The selected alphabet of the stamp text", + "enum": [ + "roman", + "arabic", + "japanese", + "korean", + "chinese" + ] + }, + "fontSize": { + "type": "number", + "format": "float", + "default": 30, + "description": "The font size of the stamp text and image" + }, + "rotation": { + "type": "number", + "format": "float", + "default": 0, + "description": "The rotation of the stamp in degrees" + }, + "opacity": { + "type": "number", + "format": "float", + "default": "0.5", + "description": "The opacity of the stamp (0.0 - 1.0)" + }, + "position": { + "type": "integer", + "format": "int32", + "default": 5, + "description": "Position for stamp placement based on a 1-9 grid (1: bottom-left, 2: bottom-center, 3: bottom-right, 4: middle-left, 5: middle-center, 6: middle-right, 7: top-left, 8: top-center, 9: top-right)", + "enum": [ + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9" + ] + }, + "overrideX": { + "type": "number", + "format": "float", + "default": -1, + "description": "Override X coordinate for stamp placement. If set, it will override the position-based calculation. Negative value means no override." + }, + "overrideY": { + "type": "number", + "format": "float", + "default": -1, + "description": "Override Y coordinate for stamp placement. If set, it will override the position-based calculation. Negative value means no override." + }, + "customMargin": { + "type": "string", + "default": "medium", + "description": "Specifies the margin size for the stamp.", + "enum": [ + "small", + "medium", + "large", + "x-large" + ] + }, + "customColor": { + "type": "string", + "default": "#d3d3d3", + "description": "The color of the stamp text" + } + }, + "required": [ + "customMargin", + "fontSize", + "opacity", + "overrideX", + "overrideY", + "pageNumbers", + "position", + "rotation", + "stampType" + ] + }, + "AddPageNumbersRequest": { + "type": "object", + "properties": { + "fileInput": { + "type": "string", + "format": "binary", + "contentMediaType": "application/pdf", + "description": "The input PDF file" + }, + "fileId": { + "type": "string", + "description": "File ID for server-side files (can be used instead of fileInput)", + "example": "a1b2c3d4-5678-90ab-cdef-ghijklmnopqr" + }, + "pageNumbers": { + "type": "string", + "default": "all", + "description": "The pages to select, Supports ranges (e.g., \u00271,3,5-9\u0027), or \u0027all\u0027 or functions in the format \u0027an+b\u0027 where \u0027a\u0027 is the multiplier of the page number \u0027n\u0027, and \u0027b\u0027 is a constant (e.g., \u00272n+1\u0027, \u00273n\u0027, \u00276n-5\u0027)" + }, + "customMargin": { + "type": "string", + "default": "medium", + "description": "Custom margin: small/medium/large/x-large", + "enum": [ + "small", + "medium", + "large", + "x-large" + ] + }, + "fontSize": { + "type": "number", + "format": "float", + "default": 12, + "description": "Font size for page numbers", + "minimum": 1 + }, + "fontType": { + "type": "string", + "description": "Font type for page numbers", + "enum": [ + "helvetica", + "courier", + "times" + ] + }, + "position": { + "type": "integer", + "format": "int32", + "default": 8, + "description": "Position: 1-9 representing positions on the page (1\u003dtop-left, 2\u003dtop-center, 3\u003dtop-right, 4\u003dmiddle-left, 5\u003dmiddle-center, 6\u003dmiddle-right, 7\u003dbottom-left, 8\u003dbottom-center, 9\u003dbottom-right)", + "enum": [ + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9" + ] + }, + "startingNumber": { + "type": "integer", + "format": "int32", + "default": 1, + "description": "Starting number for page numbering", + "minimum": 1 + }, + "pagesToNumber": { + "type": "string", + "default": "all", + "description": "Which pages to number (e.g. \u00271,3-5,7\u0027 or \u0027all\u0027)" + }, + "customText": { + "type": "string", + "default": "{n}", + "description": "Custom text pattern. Available variables: {n}\u003dcurrent page number, {total}\u003dtotal pages, {filename}\u003doriginal filename", + "example": "Page {n} of {total}" + } + }, + "required": [ + "fontSize", + "fontType", + "pageNumbers", + "position", + "startingNumber" + ] + }, + "OverlayImageRequest": { + "type": "object", + "properties": { + "fileInput": { + "type": "string", + "format": "binary", + "contentMediaType": "application/pdf", + "description": "The input PDF file" + }, + "fileId": { + "type": "string", + "description": "File ID for server-side files (can be used instead of fileInput)", + "example": "a1b2c3d4-5678-90ab-cdef-ghijklmnopqr" + }, + "imageFile": { + "type": "string", + "format": "binary", + "description": "The image file to be overlaid onto the PDF." + }, + "x": { + "type": "number", + "format": "float", + "default": 0, + "description": "The x-coordinate at which to place the top-left corner of the image." + }, + "y": { + "type": "number", + "format": "float", + "default": 0, + "description": "The y-coordinate at which to place the top-left corner of the image." + }, + "everyPage": { + "type": "boolean", + "default": false, + "description": "Whether to overlay the image onto every page of the PDF." + } + }, + "required": [ + "everyPage", + "imageFile", + "x", + "y" + ] + }, + "AddAttachmentRequest": { + "type": "object", + "properties": { + "fileInput": { + "type": "string", + "format": "binary", + "contentMediaType": "application/pdf", + "description": "The input PDF file" + }, + "fileId": { + "type": "string", + "description": "File ID for server-side files (can be used instead of fileInput)", + "example": "a1b2c3d4-5678-90ab-cdef-ghijklmnopqr" + }, + "attachments": { + "type": "array", + "format": "binary", + "description": "The image file to be overlaid onto the PDF.", + "items": { + "type": "string", + "format": "binary" + } + } + }, + "required": [ + "attachments" + ] + }, + "SplitPdfBySectionsRequest": { + "type": "object", + "properties": { + "fileInput": { + "type": "string", + "format": "binary", + "contentMediaType": "application/pdf", + "description": "The input PDF file" + }, + "fileId": { + "type": "string", + "description": "File ID for server-side files (can be used instead of fileInput)", + "example": "a1b2c3d4-5678-90ab-cdef-ghijklmnopqr" + }, + "horizontalDivisions": { + "type": "integer", + "format": "int32", + "default": 0, + "description": "Number of horizontal divisions for each PDF page", + "minimum": 0 + }, + "verticalDivisions": { + "type": "integer", + "format": "int32", + "default": 1, + "description": "Number of vertical divisions for each PDF page", + "minimum": 0 + }, + "merge": { + "type": "boolean", + "default": true, + "description": "Merge the split documents into a single PDF" + } + }, + "required": [ + "horizontalDivisions", + "merge", + "verticalDivisions" + ] + }, + "SplitPdfByChaptersRequest": { + "type": "object", + "properties": { + "fileInput": { + "type": "string", + "format": "binary", + "contentMediaType": "application/pdf", + "description": "The input PDF file" + }, + "fileId": { + "type": "string", + "description": "File ID for server-side files (can be used instead of fileInput)", + "example": "a1b2c3d4-5678-90ab-cdef-ghijklmnopqr" + }, + "includeMetadata": { + "type": "boolean", + "default": true, + "description": "Whether to include Metadata or not" + }, + "allowDuplicates": { + "type": "boolean", + "default": true, + "description": "Whether to allow duplicates or not" + }, + "bookmarkLevel": { + "type": "integer", + "format": "int32", + "default": 2, + "description": "Maximum bookmark level required", + "minimum": 0 + } + }, + "required": [ + "allowDuplicates", + "bookmarkLevel", + "includeMetadata" + ] + }, + "PDFWithPageNums": { + "type": "object", + "properties": { + "fileInput": { + "type": "string", + "format": "binary", + "contentMediaType": "application/pdf", + "description": "The input PDF file" + }, + "fileId": { + "type": "string", + "description": "File ID for server-side files (can be used instead of fileInput)", + "example": "a1b2c3d4-5678-90ab-cdef-ghijklmnopqr" + }, + "pageNumbers": { + "type": "string", + "default": "all", + "description": "The pages to select, Supports ranges (e.g., \u00271,3,5-9\u0027), or \u0027all\u0027 or functions in the format \u0027an+b\u0027 where \u0027a\u0027 is the multiplier of the page number \u0027n\u0027, and \u0027b\u0027 is a constant (e.g., \u00272n+1\u0027, \u00273n\u0027, \u00276n-5\u0027)" + } + }, + "required": [ + "pageNumbers" + ] + }, + "SplitPdfBySizeOrCountRequest": { + "type": "object", + "properties": { + "fileInput": { + "type": "string", + "format": "binary", + "contentMediaType": "application/pdf", + "description": "The input PDF file" + }, + "fileId": { + "type": "string", + "description": "File ID for server-side files (can be used instead of fileInput)", + "example": "a1b2c3d4-5678-90ab-cdef-ghijklmnopqr" + }, + "splitType": { + "type": "integer", + "format": "int32", + "default": 0, + "description": "Determines the type of split: 0 for size, 1 for page count, 2 for document count" + }, + "splitValue": { + "type": "string", + "default": "10MB", + "description": "Value for split: size in MB (e.g., \u002710MB\u0027) or number of pages (e.g., \u00275\u0027)" + } + } + }, + "ScalePagesRequest": { + "type": "object", + "properties": { + "fileInput": { + "type": "string", + "format": "binary", + "contentMediaType": "application/pdf", + "description": "The input PDF file" + }, + "fileId": { + "type": "string", + "description": "File ID for server-side files (can be used instead of fileInput)", + "example": "a1b2c3d4-5678-90ab-cdef-ghijklmnopqr" + }, + "pageSize": { + "type": "string", + "description": "The scale of pages in the output PDF. Acceptable values are A0-A6, LETTER, LEGAL, KEEP.", + "enum": [ + "A0", + "A1", + "A2", + "A3", + "A4", + "A5", + "A6", + "LETTER", + "LEGAL", + "KEEP" + ] + }, + "scaleFactor": { + "type": "number", + "format": "float", + "default": 1, + "description": "The scale of the content on the pages of the output PDF. Acceptable values are floats.", + "minimum": 0 + } + }, + "required": [ + "pageSize", + "scaleFactor" + ] + }, + "RotatePDFRequest": { + "type": "object", + "properties": { + "fileInput": { + "type": "string", + "format": "binary", + "contentMediaType": "application/pdf", + "description": "The input PDF file" + }, + "fileId": { + "type": "string", + "description": "File ID for server-side files (can be used instead of fileInput)", + "example": "a1b2c3d4-5678-90ab-cdef-ghijklmnopqr" + }, + "angle": { + "type": "integer", + "format": "int32", + "default": 90, + "description": "The angle by which to rotate the PDF file. This should be a multiple of 90.", + "enum": [ + "0", + "90", + "180", + "270" + ] + } + }, + "required": [ + "angle" + ] + }, + "RearrangePagesRequest": { + "type": "object", + "properties": { + "fileInput": { + "type": "string", + "format": "binary", + "contentMediaType": "application/pdf", + "description": "The input PDF file" + }, + "fileId": { + "type": "string", + "description": "File ID for server-side files (can be used instead of fileInput)", + "example": "a1b2c3d4-5678-90ab-cdef-ghijklmnopqr" + }, + "pageNumbers": { + "type": "string", + "default": "all", + "description": "The pages to select, Supports ranges (e.g., \u00271,3,5-9\u0027), or \u0027all\u0027 or functions in the format \u0027an+b\u0027 where \u0027a\u0027 is the multiplier of the page number \u0027n\u0027, and \u0027b\u0027 is a constant (e.g., \u00272n+1\u0027, \u00273n\u0027, \u00276n-5\u0027)" + }, + "customMode": { + "type": "string", + "description": "The custom mode for page rearrangement. Valid values are:\nCUSTOM: Uses order defined in PageNums DUPLICATE: Duplicate pages n times (if Page order defined as 4, then duplicates each page 4 times)REVERSE_ORDER: Reverses the order of all pages.\nDUPLEX_SORT: Sorts pages as if all fronts were scanned then all backs in reverse (1, n, 2, n-1, ...). BOOKLET_SORT: Arranges pages for booklet printing (last, first, second, second last, ...).\nODD_EVEN_SPLIT: Splits and arranges pages into odd and even numbered pages.\nODD_EVEN_MERGE: Merges pages and organises them alternately into odd and even pages.\nREMOVE_FIRST: Removes the first page.\nREMOVE_LAST: Removes the last page.\nREMOVE_FIRST_AND_LAST: Removes both the first and the last pages.\n", + "enum": [ + "CUSTOM", + "REVERSE_ORDER", + "DUPLEX_SORT", + "BOOKLET_SORT", + "SIDE_STITCH_BOOKLET_SORT", + "ODD_EVEN_SPLIT", + "ODD_EVEN_MERGE", + "REMOVE_FIRST", + "REMOVE_LAST", + "REMOVE_FIRST_AND_LAST", + "DUPLICATE" + ] + } + }, + "required": [ + "pageNumbers" + ] + }, + "OverlayPdfsRequest": { + "type": "object", + "properties": { + "fileInput": { + "type": "string", + "format": "binary", + "contentMediaType": "application/pdf", + "description": "The input PDF file" + }, + "fileId": { + "type": "string", + "description": "File ID for server-side files (can be used instead of fileInput)", + "example": "a1b2c3d4-5678-90ab-cdef-ghijklmnopqr" + }, + "overlayFiles": { + "type": "array", + "description": "An array of PDF files to be used as overlays on the base PDF. The order in these files is applied based on the selected mode.", + "items": { + "type": "string", + "format": "binary" + } + }, + "overlayMode": { + "type": "string", + "description": "The mode of overlaying: \u0027SequentialOverlay\u0027 for sequential application, \u0027InterleavedOverlay\u0027 for round-robin application, \u0027FixedRepeatOverlay\u0027 for fixed repetition based on provided counts", + "enum": [ + "SequentialOverlay", + "InterleavedOverlay", + "FixedRepeatOverlay" + ] + }, + "counts": { + "type": "array", + "description": "An array of integers specifying the number of times each corresponding overlay file should be applied in the \u0027FixedRepeatOverlay\u0027 mode. This should match the length of the overlayFiles array.", + "items": { + "type": "integer", + "format": "int32" + } + }, + "overlayPosition": { + "type": "number", + "description": "Overlay position 0 is Foregound, 1 is Background", + "enum": [ + "0", + "1" + ] + } + }, + "required": [ + "overlayFiles", + "overlayMode", + "overlayPosition" + ] + }, + "MergeMultiplePagesRequest": { + "type": "object", + "properties": { + "fileInput": { + "type": "string", + "format": "binary", + "contentMediaType": "application/pdf", + "description": "The input PDF file" + }, + "fileId": { + "type": "string", + "description": "File ID for server-side files (can be used instead of fileInput)", + "example": "a1b2c3d4-5678-90ab-cdef-ghijklmnopqr" + }, + "pagesPerSheet": { + "type": "number", + "default": 2, + "description": "The number of pages to fit onto a single sheet in the output PDF.", + "enum": [ + "2", + "3", + "4", + "9", + "16" + ] + }, + "addBorder": { + "type": "boolean", + "description": "Boolean for if you wish to add border around the pages" + } + }, + "required": [ + "pagesPerSheet" + ] + }, + "MergePdfsRequest": { + "type": "object", + "properties": { + "fileInput": { + "type": "array", + "description": "The input PDF files", + "items": { + "type": "string", + "format": "binary" + } + }, + "sortType": { + "type": "string", + "default": "orderProvided", + "description": "The type of sorting to be applied on the input files before merging.", + "enum": [ + "orderProvided", + "byFileName", + "byDateModified", + "byDateCreated", + "byPDFTitle" + ] + }, + "removeCertSign": { + "type": "boolean", + "default": true, + "description": "Flag indicating whether to remove certification signatures from the merged PDF. If true, all certification signatures will be removed from the final merged document." + }, + "generateToc": { + "type": "boolean", + "default": false, + "description": "Flag indicating whether to generate a table of contents for the merged PDF. If true, a table of contents will be created using the input filenames as chapter names." + } + }, + "required": [ + "fileInput", + "removeCertSign", + "sortType" + ] + }, + "EditTableOfContentsRequest": { + "type": "object", + "properties": { + "fileInput": { + "type": "string", + "format": "binary", + "contentMediaType": "application/pdf", + "description": "The input PDF file" + }, + "fileId": { + "type": "string", + "description": "File ID for server-side files (can be used instead of fileInput)", + "example": "a1b2c3d4-5678-90ab-cdef-ghijklmnopqr" + }, + "bookmarkData": { + "type": "string", + "description": "Bookmark structure in JSON format", + "example": [ + { + "title": "Chapter 1", + "pageNumber": 1, + "children": [ + { + "title": "Section 1.1", + "pageNumber": 2 + } + ] + } + ] + }, + "replaceExisting": { + "type": "boolean", + "description": "Whether to replace existing bookmarks or append to them", + "example": true + } + } + }, + "CropPdfForm": { + "type": "object", + "properties": { + "fileInput": { + "type": "string", + "format": "binary", + "contentMediaType": "application/pdf", + "description": "The input PDF file" + }, + "fileId": { + "type": "string", + "description": "File ID for server-side files (can be used instead of fileInput)", + "example": "a1b2c3d4-5678-90ab-cdef-ghijklmnopqr" + }, + "x": { + "type": "number", + "description": "The x-coordinate of the top-left corner of the crop area" + }, + "y": { + "type": "number", + "description": "The y-coordinate of the top-left corner of the crop area" + }, + "width": { + "type": "number", + "description": "The width of the crop area" + }, + "height": { + "type": "number", + "description": "The height of the crop area" + } + } + }, + "PageSizeRequest": { + "type": "object", + "properties": { + "fileInput": { + "type": "string", + "format": "binary", + "contentMediaType": "application/pdf", + "description": "The input PDF file" + }, + "fileId": { + "type": "string", + "description": "File ID for server-side files (can be used instead of fileInput)", + "example": "a1b2c3d4-5678-90ab-cdef-ghijklmnopqr" + }, + "comparator": { + "type": "string", + "description": "The comparison type, accepts Greater, Equal, Less than", + "enum": [ + "Greater", + "Equal", + "Less" + ] + }, + "standardPageSize": { + "type": "string", + "default": "A4", + "description": "Standard Page Size", + "enum": [ + "A0", + "A1", + "A2", + "A3", + "A4", + "A5", + "A6", + "LETTER", + "LEGAL" + ] + } + }, + "required": [ + "comparator", + "standardPageSize" + ] + }, + "PageRotationRequest": { + "type": "object", + "properties": { + "fileInput": { + "type": "string", + "format": "binary", + "contentMediaType": "application/pdf", + "description": "The input PDF file" + }, + "fileId": { + "type": "string", + "description": "File ID for server-side files (can be used instead of fileInput)", + "example": "a1b2c3d4-5678-90ab-cdef-ghijklmnopqr" + }, + "comparator": { + "type": "string", + "description": "The comparison type, accepts Greater, Equal, Less than", + "enum": [ + "Greater", + "Equal", + "Less" + ] + }, + "rotation": { + "type": "integer", + "format": "int32", + "default": 0, + "description": "Rotation in degrees" + } + }, + "required": [ + "comparator", + "rotation" + ] + }, + "PDFComparisonAndCount": { + "type": "object", + "properties": { + "fileInput": { + "type": "string", + "format": "binary", + "contentMediaType": "application/pdf", + "description": "The input PDF file" + }, + "fileId": { + "type": "string", + "description": "File ID for server-side files (can be used instead of fileInput)", + "example": "a1b2c3d4-5678-90ab-cdef-ghijklmnopqr" + }, + "comparator": { + "type": "string", + "description": "The comparison type, accepts Greater, Equal, Less than", + "enum": [ + "Greater", + "Equal", + "Less" + ] + }, + "pageCount": { + "type": "integer", + "format": "int32", + "default": 0, + "description": "Count" + } + }, + "required": [ + "comparator", + "pageCount" + ] + }, + "FileSizeRequest": { + "type": "object", + "properties": { + "fileInput": { + "type": "string", + "format": "binary", + "contentMediaType": "application/pdf", + "description": "The input PDF file" + }, + "fileId": { + "type": "string", + "description": "File ID for server-side files (can be used instead of fileInput)", + "example": "a1b2c3d4-5678-90ab-cdef-ghijklmnopqr" + }, + "comparator": { + "type": "string", + "description": "The comparison type, accepts Greater, Equal, Less than", + "enum": [ + "Greater", + "Equal", + "Less" + ] + }, + "fileSize": { + "type": "integer", + "format": "int64", + "default": 0, + "description": "Size of the file in bytes" + } + }, + "required": [ + "comparator", + "fileSize" + ] + }, + "ContainsTextRequest": { + "type": "object", + "properties": { + "fileInput": { + "type": "string", + "format": "binary", + "contentMediaType": "application/pdf", + "description": "The input PDF file" + }, + "fileId": { + "type": "string", + "description": "File ID for server-side files (can be used instead of fileInput)", + "example": "a1b2c3d4-5678-90ab-cdef-ghijklmnopqr" + }, + "pageNumbers": { + "type": "string", + "default": "all", + "description": "The pages to select, Supports ranges (e.g., \u00271,3,5-9\u0027), or \u0027all\u0027 or functions in the format \u0027an+b\u0027 where \u0027a\u0027 is the multiplier of the page number \u0027n\u0027, and \u0027b\u0027 is a constant (e.g., \u00272n+1\u0027, \u00273n\u0027, \u00276n-5\u0027)" + }, + "text": { + "type": "string", + "default": "text", + "description": "The text to check for" + } + }, + "required": [ + "pageNumbers", + "text" + ] + }, + "UrlToPdfRequest": { + "type": "object", + "properties": { + "urlInput": { + "type": "string", + "description": "The input URL to be converted to a PDF file" + } + }, + "required": [ + "urlInput" + ] + }, + "PdfToWordRequest": { + "type": "object", + "properties": { + "fileInput": { + "type": "string", + "format": "binary", + "contentMediaType": "application/pdf", + "description": "The input PDF file" + }, + "fileId": { + "type": "string", + "description": "File ID for server-side files (can be used instead of fileInput)", + "example": "a1b2c3d4-5678-90ab-cdef-ghijklmnopqr" + }, + "outputFormat": { + "type": "string", + "description": "The output Word document format", + "enum": [ + "doc", + "docx", + "odt" + ] + } + }, + "required": [ + "outputFormat" + ] + }, + "PdfToTextOrRTFRequest": { + "type": "object", + "properties": { + "fileInput": { + "type": "string", + "format": "binary", + "contentMediaType": "application/pdf", + "description": "The input PDF file" + }, + "fileId": { + "type": "string", + "description": "File ID for server-side files (can be used instead of fileInput)", + "example": "a1b2c3d4-5678-90ab-cdef-ghijklmnopqr" + }, + "outputFormat": { + "type": "string", + "description": "The output Text or RTF format", + "enum": [ + "rtf", + "txt" + ] + } + }, + "required": [ + "outputFormat" + ] + }, + "PdfToPresentationRequest": { + "type": "object", + "properties": { + "fileInput": { + "type": "string", + "format": "binary", + "contentMediaType": "application/pdf", + "description": "The input PDF file" + }, + "fileId": { + "type": "string", + "description": "File ID for server-side files (can be used instead of fileInput)", + "example": "a1b2c3d4-5678-90ab-cdef-ghijklmnopqr" + }, + "outputFormat": { + "type": "string", + "description": "The output Presentation format", + "enum": [ + "ppt", + "pptx", + "odp" + ] + } + }, + "required": [ + "outputFormat" + ] + }, + "PdfToPdfARequest": { + "type": "object", + "properties": { + "fileInput": { + "type": "string", + "format": "binary", + "contentMediaType": "application/pdf", + "description": "The input PDF file" + }, + "fileId": { + "type": "string", + "description": "File ID for server-side files (can be used instead of fileInput)", + "example": "a1b2c3d4-5678-90ab-cdef-ghijklmnopqr" + }, + "outputFormat": { + "type": "string", + "description": "The output PDF/A type", + "enum": [ + "pdfa", + "pdfa-1" + ] + } + }, + "required": [ + "outputFormat" + ] + }, + "ConvertToImageRequest": { + "type": "object", + "properties": { + "fileInput": { + "type": "string", + "format": "binary", + "contentMediaType": "application/pdf", + "description": "The input PDF file" + }, + "fileId": { + "type": "string", + "description": "File ID for server-side files (can be used instead of fileInput)", + "example": "a1b2c3d4-5678-90ab-cdef-ghijklmnopqr" + }, + "pageNumbers": { + "type": "string", + "default": "all", + "description": "The pages to select, Supports ranges (e.g., \u00271,3,5-9\u0027), or \u0027all\u0027 or functions in the format \u0027an+b\u0027 where \u0027a\u0027 is the multiplier of the page number \u0027n\u0027, and \u0027b\u0027 is a constant (e.g., \u00272n+1\u0027, \u00273n\u0027, \u00276n-5\u0027)" + }, + "imageFormat": { + "type": "string", + "default": "png", + "description": "The output image format", + "enum": [ + "png", + "jpeg", + "jpg", + "gif", + "webp" + ] + }, + "singleOrMultiple": { + "type": "string", + "default": "multiple", + "description": "Choose between a single image containing all pages or separate images for each page", + "enum": [ + "single", + "multiple" + ] + }, + "colorType": { + "type": "string", + "default": "color", + "description": "The color type of the output image(s)", + "enum": [ + "color", + "greyscale", + "blackwhite" + ] + }, + "dpi": { + "type": "integer", + "format": "int32", + "default": 300, + "description": "The DPI (dots per inch) for the output image(s)" + } + }, + "required": [ + "colorType", + "dpi", + "imageFormat", + "pageNumbers", + "singleOrMultiple" + ] + }, + "GeneralFile": { + "type": "object", + "properties": { + "fileInput": { + "type": "string", + "format": "binary", + "description": "The input file" + } + }, + "required": [ + "fileInput" + ] + }, + "ConvertToPdfRequest": { + "type": "object", + "properties": { + "fileInput": { + "type": "array", + "description": "The input images to be converted to a PDF file", + "items": { + "type": "string", + "format": "binary" + } + }, + "fitOption": { + "type": "string", + "default": "fillPage", + "description": "Option to determine how the image will fit onto the page", + "enum": [ + "fillPage", + "fitDocumentToImage", + "maintainAspectRatio" + ] + }, + "colorType": { + "type": "string", + "default": "color", + "description": "The color type of the output image(s)", + "enum": [ + "color", + "greyscale", + "blackwhite" + ] + }, + "autoRotate": { + "type": "boolean", + "default": false, + "description": "Whether to automatically rotate the images to better fit the PDF page" + } + }, + "required": [ + "autoRotate", + "colorType", + "fileInput", + "fitOption" + ] + }, + "HTMLToPdfRequest": { + "type": "object", + "properties": { + "fileInput": { + "type": "string", + "format": "binary", + "contentMediaType": "application/pdf", + "description": "The input PDF file" + }, + "fileId": { + "type": "string", + "description": "File ID for server-side files (can be used instead of fileInput)", + "example": "a1b2c3d4-5678-90ab-cdef-ghijklmnopqr" + }, + "zoom": { + "type": "number", + "format": "float", + "default": 1, + "description": "Zoom level for displaying the website. Default is \u00271\u0027." + } + }, + "required": [ + "zoom" + ] + }, + "EmlToPdfRequest": { + "type": "object", + "properties": { + "fileInput": { + "type": "string", + "format": "binary", + "contentMediaType": "application/pdf", + "description": "The input PDF file" + }, + "fileId": { + "type": "string", + "description": "File ID for server-side files (can be used instead of fileInput)", + "example": "a1b2c3d4-5678-90ab-cdef-ghijklmnopqr" + }, + "includeAttachments": { + "type": "boolean", + "description": "Include email attachments in the PDF output", + "example": false + }, + "maxAttachmentSizeMB": { + "type": "integer", + "format": "int32", + "description": "Maximum attachment size in MB to include (default 10MB, range: 1-100)", + "example": 10, + "maximum": 100, + "minimum": 1 + }, + "downloadHtml": { + "type": "boolean", + "description": "Download HTML intermediate file instead of PDF", + "example": false + }, + "includeAllRecipients": { + "type": "boolean", + "description": "Include CC and BCC recipients in header (if available)", + "example": true + } + } + } + } + } +} \ No newline at end of file