Stirling-PDF/api-docs.json
2025-09-04 16:23:37 +01:00

1 line
96 KiB
JSON

{"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.2.0"},"servers":[{"url":"https://stirlingpdf.io","description":"Generated server url"}],"tags":[{"name":"Filter","description":"Filter APIs"},{"name":"Admin Settings","description":"Admin-only Settings Management 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/admin/settings":{"get":{"tags":["Admin Settings"],"summary":"Get all application settings","description":"Retrieve all current application settings. Use includePending=true to include settings that will take effect after restart. Admin access required.","operationId":"getSettings","parameters":[{"name":"includePending","in":"query","required":false,"schema":{"type":"boolean","default":false}}],"responses":{"200":{"description":"Settings retrieved successfully","content":{"*/*":{"schema":{"type":"object"}}}},"403":{"description":"Access denied - Admin role required","content":{"*/*":{"schema":{"type":"object"}}}}}},"put":{"tags":["Admin Settings"],"summary":"Update application settings (delta updates)","description":"Update specific application settings using dot notation keys. Only sends changed values. Changes take effect on restart. Admin access required.","operationId":"updateSettings","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateSettingsRequest"}}},"required":true},"responses":{"200":{"description":"Settings updated successfully","content":{"*/*":{"schema":{"type":"string"}}}},"400":{"description":"Invalid setting key or value","content":{"*/*":{"schema":{"type":"string"}}}},"403":{"description":"Access denied - Admin role required","content":{"*/*":{"schema":{"type":"string"}}}},"500":{"description":"Failed to save settings to configuration file","content":{"*/*":{"schema":{"type":"string"}}}}}}},"/api/v1/admin/settings/section/{sectionName}":{"get":{"tags":["Admin Settings"],"summary":"Get specific settings section","description":"Retrieve settings for a specific section (e.g., security, system, ui). Admin access required.","operationId":"getSettingsSection","parameters":[{"name":"sectionName","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Section settings retrieved successfully","content":{"*/*":{"schema":{"type":"object"}}}},"400":{"description":"Invalid section name","content":{"*/*":{"schema":{"type":"object"}}}},"403":{"description":"Access denied - Admin role required","content":{"*/*":{"schema":{"type":"object"}}}}}},"put":{"tags":["Admin Settings"],"summary":"Update specific settings section","description":"Update all settings within a specific section. Admin access required.","operationId":"updateSettingsSection","parameters":[{"name":"sectionName","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","additionalProperties":{}}}},"required":true},"responses":{"200":{"description":"Section settings updated successfully","content":{"*/*":{"schema":{"type":"string"}}}},"400":{"description":"Invalid section name or data","content":{"*/*":{"schema":{"type":"string"}}}},"403":{"description":"Access denied - Admin role required","content":{"*/*":{"schema":{"type":"string"}}}},"500":{"description":"Failed to save settings","content":{"*/*":{"schema":{"type":"string"}}}}}}},"/api/v1/admin/settings/key/{key}":{"get":{"tags":["Admin Settings"],"summary":"Get specific setting value","description":"Retrieve value for a specific setting key using dot notation. Admin access required.","operationId":"getSettingValue","parameters":[{"name":"key","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Setting value retrieved successfully","content":{"*/*":{"schema":{"type":"object"}}}},"400":{"description":"Invalid setting key","content":{"*/*":{"schema":{"type":"object"}}}},"403":{"description":"Access denied - Admin role required","content":{"*/*":{"schema":{"type":"object"}}}}}},"put":{"tags":["Admin Settings"],"summary":"Update specific setting value","description":"Update value for a specific setting key using dot notation. Admin access required.","operationId":"updateSettingValue","parameters":[{"name":"key","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateSettingValueRequest"}}},"required":true},"responses":{"200":{"description":"Setting updated successfully","content":{"*/*":{"schema":{"type":"string"}}}},"400":{"description":"Invalid setting key or value","content":{"*/*":{"schema":{"type":"string"}}}},"403":{"description":"Access denied - Admin role required","content":{"*/*":{"schema":{"type":"string"}}}},"500":{"description":"Failed to save setting","content":{"*/*":{"schema":{"type":"string"}}}}}}},"/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/scanner-effect":{"post":{"tags":["Misc"],"summary":"Apply scanner effect to PDF","description":"Applies various effects to simulate a scanned document, including rotation, noise, and edge softening. Input:PDF Output:PDF Type:SISO","operationId":"scannerEffect","requestBody":{"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/ScannerEffectRequest"}}}},"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/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's 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 'all' 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/send-email":{"post":{"tags":["General"],"summary":"Send an email with an attachment","description":"This endpoint sends an email with an attachment. Input:PDF Output:Success/Failure Type:MISO","operationId":"sendEmailWithAttachment","requestBody":{"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Email"}}}},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"string"}}}}}}},"/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's width, but the height will be the sum of all the pages' 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/admin/job/cleanup":{"post":{"tags":["admin-job-controller"],"operationId":"cleanupOldJobs","responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/audit/types":{"get":{"tags":["audit-dashboard-controller"],"operationId":"getAuditTypes","responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"array","items":{"type":"string"}}}}}}}},"/audit/stats":{"get":{"tags":["audit-dashboard-controller"],"operationId":"getAuditStats","parameters":[{"name":"days","in":"query","required":false,"schema":{"type":"integer","format":"int32","default":7}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"object","additionalProperties":{}}}}}}}},"/audit/data":{"get":{"tags":["audit-dashboard-controller"],"operationId":"getAuditData","parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","format":"int32","default":0}},{"name":"size","in":"query","required":false,"schema":{"type":"integer","format":"int32","default":30}},{"name":"type","in":"query","required":false,"schema":{"type":"string"}},{"name":"principal","in":"query","required":false,"schema":{"type":"string"}},{"name":"startDate","in":"query","required":false,"schema":{"type":"string","format":"date"}},{"name":"endDate","in":"query","required":false,"schema":{"type":"string","format":"date"}}],"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"}}}}}}},"/api/v1/admin/settings/delta":{"get":{"tags":["Admin Settings"],"summary":"Get pending settings changes","description":"Retrieve settings that have been modified but not yet applied (require restart). Admin access required.","operationId":"getSettingsDelta","responses":{"200":{"description":"Pending changes retrieved successfully","content":{"*/*":{"schema":{"type":"object"}}}},"403":{"description":"Access denied - Admin role required","content":{"*/*":{"schema":{"type":"object"}}}}}}},"/api/v1/admin/job/stats":{"get":{"tags":["admin-job-controller"],"operationId":"getJobStats","responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/JobStats"}}}}}}},"/api/v1/admin/job/queue/stats":{"get":{"tags":["admin-job-controller"],"operationId":"getQueueStats","responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"object"}}}}}}}},"components":{"schemas":{"UpdateSettingsRequest":{"type":"object","description":"Request to update multiple application settings using delta updates","properties":{"settings":{"type":"object","additionalProperties":{},"description":"Map of setting keys to their new values using dot notation. Only changed values need to be included for delta updates.","example":{"system.enableAnalytics":false,"ui.appName":"My PDF Tool"},"minProperties":1}},"required":["settings"]},"UpdateSettingValueRequest":{"type":"object","description":"Request to update a single setting value","properties":{"value":{"description":"The new value for the setting","example":false}},"required":["value"]},"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., '1,3,5-9'), or 'all' or functions in the format 'an+b' where 'a' is the multiplier of the page number 'n', and 'b' is a constant (e.g., '2n+1', '3n', '6n-5')"},"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"]},"ScannerEffectRequest":{"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 = no change)","example":1.0},"contrast":{"type":"number","format":"float","description":"Contrast multiplier (1.0 = no change)","example":1.0},"blur":{"type":"number","format":"float","description":"Blur amount (0 = none, higher = more blur)","example":1.0},"noise":{"type":"number","format":"float","description":"Noise amount (0 = none, higher = 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},"qualityValue":{"type":"integer","format":"int32"},"rotationValue":{"type":"integer","format":"int32"}},"required":["fileInput","quality","rotation"]},"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., 'eng', 'deu'","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., 'skip-text', 'force-ocr', or 'Normal'","enum":["skip-text","force-ocr","Normal"]},"ocrRenderType":{"type":"string","default":"hocr","description":"Specify the OCR render type, either 'hocr' or 'sandwich'","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"]},"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., 'png', 'jpeg', or 'gif'","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. '100MB', '25KB', 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., '1,3,5-9'), or 'all' or functions in the format 'an+b' where 'a' is the multiplier of the page number 'n', and 'b' is a constant (e.g., '2n+1', '3n', '6n-5')"},"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., '1,3,5-9'), or 'all' or functions in the format 'an+b' where 'a' is the multiplier of the page number 'n', and 'b' is a constant (e.g., '2n+1', '3n', '6n-5')"},"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=top-left, 2=top-center, 3=top-right, 4=middle-left, 5=middle-center, 6=middle-right, 7=bottom-left, 8=bottom-center, 9=bottom-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. '1,3-5,7' or 'all')"},"customText":{"type":"string","default":"{n}","description":"Custom text pattern. Available variables: {n}=current page number, {total}=total pages, {filename}=original 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., '1,3,5-9'), or 'all' or functions in the format 'an+b' where 'a' is the multiplier of the page number 'n', and 'b' is a constant (e.g., '2n+1', '3n', '6n-5')"}},"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., '10MB') or number of pages (e.g., '5')"}}},"Email":{"type":"object","properties":{"fileInput":{"type":"string","format":"binary","description":"The input file"},"to":{"type":"string","format":"email","description":"The recipient's email address"},"subject":{"type":"string","default":"Stirling Software PDF Notification","description":"The subject of the email"},"body":{"type":"string","default":"This message was automatically generated by Stirling-PDF, an innovative solution from Stirling Software. For more information, visit our <a href=\"https://stirling-software.com\">website</a>.<br><br>Please do not reply directly to this email.","description":"The body of the email"}},"required":["fileInput","to"]},"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., '1,3,5-9'), or 'all' or functions in the format 'an+b' where 'a' is the multiplier of the page number 'n', and 'b' is a constant (e.g., '2n+1', '3n', '6n-5')"},"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: 'SequentialOverlay' for sequential application, 'InterleavedOverlay' for round-robin application, 'FixedRepeatOverlay' 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 'FixedRepeatOverlay' 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., '1,3,5-9'), or 'all' or functions in the format 'an+b' where 'a' is the multiplier of the page number 'n', and 'b' is a constant (e.g., '2n+1', '3n', '6n-5')"},"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., '1,3,5-9'), or 'all' or functions in the format 'an+b' where 'a' is the multiplier of the page number 'n', and 'b' is a constant (e.g., '2n+1', '3n', '6n-5')"},"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 '1'."}},"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}}},"JobStats":{"type":"object","properties":{"totalJobs":{"type":"integer","format":"int32"},"activeJobs":{"type":"integer","format":"int32"},"completedJobs":{"type":"integer","format":"int32"},"failedJobs":{"type":"integer","format":"int32"},"successfulJobs":{"type":"integer","format":"int32"},"fileResultJobs":{"type":"integer","format":"int32"},"oldestActiveJobTime":{"type":"string","format":"date-time"},"newestActiveJobTime":{"type":"string","format":"date-time"},"averageProcessingTimeMs":{"type":"integer","format":"int64"}}}}}}