1
0
mirror of https://github.com/Stirling-Tools/Stirling-PDF.git synced 2024-11-16 20:30:11 +01:00
Stirling-PDF/SwaggerDoc.json

2329 lines
65 KiB
JSON
Raw Normal View History

{
"openapi": "3.0.1",
"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.",
"version": "0.10.0"
},
"servers": [
{
"url": "http://localhost:8080",
"description": "Generated server url"
}
],
"paths": {
"/update-metadata": {
"post": {
"tags": [
"metadata-controller"
],
"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.",
"operationId": "metadata",
"parameters": [
{
"name": "deleteAll",
"in": "query",
"description": "Delete all metadata if set to true",
"required": false,
"schema": {
"type": "boolean",
"default": false
}
},
{
"name": "author",
"in": "query",
"description": "The author of the document",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "creationDate",
"in": "query",
"description": "The creation date of the document (format: yyyy/MM/dd HH:mm:ss)",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "creator",
"in": "query",
"description": "The creator of the document",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "keywords",
"in": "query",
"description": "The keywords for the document",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "modificationDate",
"in": "query",
"description": "The modification date of the document (format: yyyy/MM/dd HH:mm:ss)",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "producer",
"in": "query",
"description": "The producer of the document",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "subject",
"in": "query",
"description": "The subject of the document",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "title",
"in": "query",
"description": "The title of the document",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "trapped",
"in": "query",
"description": "The trapped status of the document",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "allRequestParams",
"in": "query",
"required": true,
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
],
"requestBody": {
"content": {
"multipart/form-data": {
"schema": {
"required": [
"fileInput"
],
"type": "object",
"properties": {
"fileInput": {
"type": "string",
"description": "The input PDF file to update metadata",
"format": "binary"
}
}
}
}
}
},
"responses": {
"200": {
"description": "OK",
"content": {
"*/*": {
"schema": {
"type": "array",
"items": {
"type": "string",
"format": "byte"
}
}
}
}
}
}
}
},
"/split-pages": {
"post": {
"tags": [
"split-pdf-controller"
],
"summary": "Split a PDF file into separate documents",
"description": "This endpoint splits a given PDF file into separate documents based on the specified page numbers or ranges. Users can specify pages using individual numbers, ranges, or \u0027all\u0027 for every page.",
"operationId": "splitPdf",
"parameters": [
{
"name": "pages",
"in": "query",
"description": "The pages to be included in separate documents. Specify individual page numbers (e.g., \u00271,3,5\u0027), ranges (e.g., \u00271-3,5-7\u0027), or \u0027all\u0027 for every page.",
"required": true,
"schema": {
"type": "string"
}
}
],
"requestBody": {
"content": {
"multipart/form-data": {
"schema": {
"required": [
"fileInput"
],
"type": "object",
"properties": {
"fileInput": {
"type": "string",
"description": "The input PDF file to be split",
"format": "binary"
}
}
}
}
}
},
"responses": {
"200": {
"description": "OK",
"content": {
"*/*": {
"schema": {
"type": "string",
"format": "binary"
}
}
}
}
}
}
},
"/scale-pages": {
"post": {
"tags": [
"scale-pages-controller"
],
"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.",
"operationId": "scalePages",
"parameters": [
{
"name": "pageSize",
"in": "query",
"description": "The scale of pages in the output PDF. Acceptable values are A0-A10, B0-B9, LETTER, TABLOID, LEDGER, LEGAL, EXECUTIVE.",
"required": true,
"schema": {
"type": "String",
"enum": [
"A0",
"A1",
"A2",
"A3",
"A4",
"A5",
"A6",
"A7",
"A8",
"A9",
"A10",
"B0",
"B1",
"B2",
"B3",
"B4",
"B5",
"B6",
"B7",
"B8",
"B9",
"LETTER",
"TABLOID",
"LEDGER",
"LEGAL",
"EXECUTIVE"
]
}
},
{
"name": "scaleFactor",
"in": "query",
"description": "The scale of the content on the pages of the output PDF. Acceptable values are floats.",
"required": true,
"schema": {
"type": "float"
}
}
],
"requestBody": {
"content": {
"multipart/form-data": {
"schema": {
"required": [
"fileInput"
],
"type": "object",
"properties": {
"fileInput": {
"type": "string",
"description": "The input PDF file",
"format": "binary"
}
}
}
}
}
},
"responses": {
"200": {
"description": "OK",
"content": {
"*/*": {
"schema": {
"type": "array",
"items": {
"type": "string",
"format": "byte"
}
}
}
}
}
}
}
},
"/rotate-pdf": {
"post": {
"tags": [
"rotation-controller"
],
"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.",
"operationId": "rotatePDF",
"parameters": [
{
"name": "angle",
"in": "query",
"description": "The angle by which to rotate the PDF file. This should be a multiple of 90.",
"required": true,
"schema": {
"type": "integer",
"format": "int32"
},
"example": 90
}
],
"requestBody": {
"content": {
"multipart/form-data": {
"schema": {
"required": [
"fileInput"
],
"type": "object",
"properties": {
"fileInput": {
"type": "string",
"description": "The PDF file to be rotated",
"format": "binary"
}
}
}
}
}
},
"responses": {
"200": {
"description": "OK",
"content": {
"*/*": {
"schema": {
"type": "array",
"items": {
"type": "string",
"format": "byte"
}
}
}
}
}
}
}
},
"/repair": {
"post": {
"tags": [
"repair-controller"
],
"summary": "Repair a PDF file",
"description": "This endpoint repairs a given PDF file by running Ghostscript command. The PDF is first saved to a temporary location, repaired, read back, and then returned as a response.",
"operationId": "repairPdf",
"requestBody": {
"content": {
"multipart/form-data": {
"schema": {
"required": [
"fileInput"
],
"type": "object",
"properties": {
"fileInput": {
"type": "string",
"description": "The input PDF file to be repaired",
"format": "binary"
}
}
}
}
}
},
"responses": {
"200": {
"description": "OK",
"content": {
"*/*": {
"schema": {
"type": "array",
"items": {
"type": "string",
"format": "byte"
}
}
}
}
}
}
}
},
"/remove-password": {
"post": {
"tags": [
"password-controller"
],
"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.",
"operationId": "removePassword",
"parameters": [
{
"name": "password",
"in": "query",
"description": "The password of the PDF file",
"required": true,
"schema": {
"type": "string"
}
}
],
"requestBody": {
"content": {
"multipart/form-data": {
"schema": {
"required": [
"fileInput"
],
"type": "object",
"properties": {
"fileInput": {
"type": "string",
"description": "The input PDF file from which the password should be removed",
"format": "binary"
}
}
}
}
}
},
"responses": {
"200": {
"description": "OK",
"content": {
"*/*": {
"schema": {
"type": "array",
"items": {
"type": "string",
"format": "byte"
}
}
}
}
}
}
}
},
"/remove-pages": {
"post": {
"tags": [
"rearrange-pages-pdf-controller"
],
"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.",
"operationId": "deletePages",
"parameters": [
{
"name": "pagesToDelete",
"in": "query",
"description": "Comma-separated list of pages or page ranges to delete, e.g., \u00271,3,5-8\u0027",
"required": true,
"schema": {
"type": "string"
}
}
],
"requestBody": {
"content": {
"multipart/form-data": {
"schema": {
"required": [
"fileInput"
],
"type": "object",
"properties": {
"fileInput": {
"type": "string",
"description": "The input PDF file from which pages will be removed",
"format": "binary"
}
}
}
}
}
},
"responses": {
"200": {
"description": "OK",
"content": {
"*/*": {
"schema": {
"type": "array",
"items": {
"type": "string",
"format": "byte"
}
}
}
}
}
}
}
},
"/remove-blanks": {
"post": {
"tags": [
"blank-page-controller"
],
"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.",
"operationId": "removeBlankPages",
"parameters": [
{
"name": "threshold",
"in": "query",
"description": "The threshold value to determine blank pages",
"required": false,
"schema": {
"type": "integer",
"format": "int32",
"default": 10
},
"example": 10
},
{
"name": "whitePercent",
"in": "query",
"description": "The percentage of white color on a page to consider it as blank",
"required": false,
"schema": {
"type": "number",
"format": "float",
"default": 99.9
},
"example": 99.9
}
],
"requestBody": {
"content": {
"multipart/form-data": {
"schema": {
"required": [
"fileInput"
],
"type": "object",
"properties": {
"fileInput": {
"type": "string",
"description": "The input PDF file from which blank pages will be removed",
"format": "binary"
}
}
}
}
}
},
"responses": {
"200": {
"description": "OK",
"content": {
"*/*": {
"schema": {
"type": "array",
"items": {
"type": "string",
"format": "byte"
}
}
}
}
}
}
}
},
"/rearrange-pages": {
"post": {
"tags": [
"rearrange-pages-pdf-controller"
],
"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.",
"operationId": "rearrangePages",
"parameters": [
{
"name": "pageOrder",
"in": "query",
"description": "The new page order as a comma-separated list of page numbers, page ranges (e.g., \u00271,3,5-7\u0027), or functions in the format \u0027an+b\u0027 where \u0027a\u0027 is the multiplier of the page number \u0027n\u0027, and \u0027b\u0027 is a constant (e.g., \u00272n+1\u0027, \u00273n\u0027, \u00276n-5\u0027)",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "customMode",
"in": "query",
"required": false,
"schema": {
"type": "string",
"enum": [
"REVERSE_ORDER",
"DUPLEX_SORT",
"BOOKLET_SORT",
"ODD_EVEN_SPLIT",
"REMOVE_FIRST",
"REMOVE_LAST",
"REMOVE_FIRST_AND_LAST"
]
}
}
],
"requestBody": {
"content": {
"multipart/form-data": {
"schema": {
"required": [
"fileInput"
],
"type": "object",
"properties": {
"fileInput": {
"type": "string",
"description": "The input PDF file to rearrange pages",
"format": "binary"
}
}
}
}
}
},
"responses": {
"200": {
"description": "OK",
"content": {
"*/*": {
"schema": {
"type": "array",
"items": {
"type": "string",
"format": "byte"
}
}
}
}
}
}
}
},
"/pdf-to-xml": {
"post": {
"tags": [
"convert-pdf-to-office"
],
"summary": "Convert PDF to XML",
"description": "This endpoint converts a PDF file to an XML file.",
"operationId": "processPdfToXML",
"requestBody": {
"content": {
"multipart/form-data": {
"schema": {
"required": [
"fileInput"
],
"type": "object",
"properties": {
"fileInput": {
"type": "string",
"description": "The input PDF file to be converted to an XML file",
"format": "binary"
}
}
}
}
}
},
"responses": {
"200": {
"description": "OK",
"content": {
"*/*": {
"schema": {
"type": "array",
"items": {
"type": "string",
"format": "byte"
}
}
}
}
}
}
}
},
"/pdf-to-word": {
"post": {
"tags": [
"convert-pdf-to-office"
],
"summary": "Convert PDF to Word document",
"description": "This endpoint converts a given PDF file to a Word document format.",
"operationId": "processPdfToWord",
"parameters": [
{
"name": "outputFormat",
"in": "query",
"description": "The output Word document format",
"required": true,
"schema": {
"type": "string",
"enum": [
"doc",
"docx",
"odt"
]
}
}
],
"requestBody": {
"content": {
"multipart/form-data": {
"schema": {
"required": [
"fileInput"
],
"type": "object",
"properties": {
"fileInput": {
"type": "string",
"description": "The input PDF file",
"format": "binary"
}
}
}
}
}
},
"responses": {
"200": {
"description": "OK",
"content": {
"*/*": {
"schema": {
"type": "array",
"items": {
"type": "string",
"format": "byte"
}
}
}
}
}
}
}
},
"/pdf-to-text": {
"post": {
"tags": [
"convert-pdf-to-office"
],
"summary": "Convert PDF to Text or RTF format",
"description": "This endpoint converts a given PDF file to Text or RTF format.",
"operationId": "processPdfToRTForTXT",
"parameters": [
{
"name": "outputFormat",
"in": "query",
"description": "The output Text or RTF format",
"required": true,
"schema": {
"type": "string",
"enum": [
"rtf",
"txt:Text"
]
}
}
],
"requestBody": {
"content": {
"multipart/form-data": {
"schema": {
"required": [
"fileInput"
],
"type": "object",
"properties": {
"fileInput": {
"type": "string",
"description": "The input PDF file",
"format": "binary"
}
}
}
}
}
},
"responses": {
"200": {
"description": "OK",
"content": {
"*/*": {
"schema": {
"type": "array",
"items": {
"type": "string",
"format": "byte"
}
}
}
}
}
}
}
},
"/pdf-to-presentation": {
"post": {
"tags": [
"convert-pdf-to-office"
],
"summary": "Convert PDF to Presentation format",
"description": "This endpoint converts a given PDF file to a Presentation format.",
"operationId": "processPdfToPresentation",
"parameters": [
{
"name": "outputFormat",
"in": "query",
"description": "The output Presentation format",
"required": true,
"schema": {
"type": "string",
"enum": [
"ppt",
"pptx",
"odp"
]
}
}
],
"requestBody": {
"content": {
"multipart/form-data": {
"schema": {
"required": [
"fileInput"
],
"type": "object",
"properties": {
"fileInput": {
"type": "string",
"description": "The input PDF file",
"format": "binary"
}
}
}
}
}
},
"responses": {
"200": {
"description": "OK",
"content": {
"*/*": {
"schema": {
"type": "array",
"items": {
"type": "string",
"format": "byte"
}
}
}
}
}
}
}
},
"/pdf-to-pdfa": {
"post": {
"tags": [
"convert-pdf-to-pdfa"
],
"summary": "Convert a PDF to a PDF/A",
"description": "This endpoint converts a PDF file to a PDF/A file. PDF/A is a format designed for long-term archiving of digital documents.",
"operationId": "pdfToPdfA",
"requestBody": {
"content": {
"multipart/form-data": {
"schema": {
"required": [
"fileInput"
],
"type": "object",
"properties": {
"fileInput": {
"type": "string",
"description": "The input PDF file to be converted to a PDF/A file",
"format": "binary"
}
}
}
}
}
},
"responses": {
"200": {
"description": "OK",
"content": {
"*/*": {
"schema": {
"type": "array",
"items": {
"type": "string",
"format": "byte"
}
}
}
}
}
}
}
},
"/pdf-to-img": {
"post": {
"tags": [
"convert-img-pdf-controller"
],
"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.",
"operationId": "convertToImage",
"parameters": [
{
"name": "imageFormat",
"in": "query",
"description": "The output image format",
"required": true,
"schema": {
"type": "string",
"enum": [
"png",
"jpeg",
"jpg",
"gif"
]
}
},
{
"name": "singleOrMultiple",
"in": "query",
"description": "Choose between a single image containing all pages or separate images for each page",
"required": true,
"schema": {
"type": "string",
"enum": [
"single",
"multiple"
]
}
},
{
"name": "colorType",
"in": "query",
"description": "The color type of the output image(s)",
"required": true,
"schema": {
"type": "string",
"enum": [
"rgb",
"greyscale",
"blackwhite"
]
}
},
{
"name": "dpi",
"in": "query",
"description": "The DPI (dots per inch) for the output image(s)",
"required": true,
"schema": {
"type": "string"
}
}
],
"requestBody": {
"content": {
"multipart/form-data": {
"schema": {
"required": [
"fileInput"
],
"type": "object",
"properties": {
"fileInput": {
"type": "string",
"description": "The input PDF file to be converted",
"format": "binary"
}
}
}
}
}
},
"responses": {
"200": {
"description": "OK",
"content": {
"*/*": {
"schema": {
"type": "string",
"format": "binary"
}
}
}
}
}
}
},
"/pdf-to-html": {
"post": {
"tags": [
"convert-pdf-to-office"
],
"summary": "Convert PDF to HTML",
"description": "This endpoint converts a PDF file to HTML format.",
"operationId": "processPdfToHTML",
"requestBody": {
"content": {
"multipart/form-data": {
"schema": {
"required": [
"fileInput"
],
"type": "object",
"properties": {
"fileInput": {
"type": "string",
"description": "The input PDF file to be converted to HTML format",
"format": "binary"
}
}
}
}
}
},
"responses": {
"200": {
"description": "OK",
"content": {
"*/*": {
"schema": {
"type": "array",
"items": {
"type": "string",
"format": "byte"
}
}
}
}
}
}
}
},
"/ocr-pdf": {
"post": {
"tags": [
"ocr-controller"
],
"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.",
"operationId": "processPdfWithOCR",
"parameters": [
{
"name": "languages",
"in": "query",
"description": "List of languages to use in OCR processing",
"required": true,
"schema": {
"type": "array",
"items": {
"type": "string"
}
}
},
{
"name": "sidecar",
"in": "query",
"description": "Include OCR text in a sidecar text file if set to true",
"required": false,
"schema": {
"type": "boolean"
}
},
{
"name": "deskew",
"in": "query",
"description": "Deskew the input file if set to true",
"required": false,
"schema": {
"type": "boolean"
}
},
{
"name": "clean",
"in": "query",
"description": "Clean the input file if set to true",
"required": false,
"schema": {
"type": "boolean"
}
},
{
"name": "clean-final",
"in": "query",
"description": "Clean the final output if set to true",
"required": false,
"schema": {
"type": "boolean"
}
},
{
"name": "ocrType",
"in": "query",
"description": "Specify the OCR type, e.g., \u0027skip-text\u0027, \u0027force-ocr\u0027, or \u0027Normal\u0027",
"required": false,
"schema": {
"type": "string",
"enum": [
"skip-text",
"force-ocr",
"Normal"
]
}
},
{
"name": "ocrRenderType",
"in": "query",
"description": "Specify the OCR render type, either \u0027hocr\u0027 or \u0027sandwich\u0027",
"required": false,
"schema": {
"type": "string",
"enum": [
"hocr",
"sandwich"
]
}
},
{
"name": "removeImagesAfter",
"in": "query",
"description": "Remove images from the output PDF if set to true",
"required": false,
"schema": {
"type": "boolean"
}
}
],
"requestBody": {
"content": {
"multipart/form-data": {
"schema": {
"required": [
"fileInput"
],
"type": "object",
"properties": {
"fileInput": {
"type": "string",
"description": "The input PDF file to be processed with OCR",
"format": "binary"
}
}
}
}
}
},
"responses": {
"200": {
"description": "OK",
"content": {
"*/*": {
"schema": {
"type": "array",
"items": {
"type": "string",
"format": "byte"
}
}
}
}
}
}
}
},
"/multi-page-layout": {
"post": {
"tags": [
"multi-page-layout-controller"
],
"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.",
"operationId": "mergeMultiplePagesIntoOne",
"parameters": [
{
"name": "pagesPerSheet",
"in": "query",
"description": "The number of pages to fit onto a single sheet in the output PDF. Acceptable values are 2, 3, 4, 9, 16.",
"required": true,
"schema": {
"type": "integer",
"enum": [
"2",
"3",
"4",
"9",
"16"
]
}
}
],
"requestBody": {
"content": {
"multipart/form-data": {
"schema": {
"required": [
"fileInput"
],
"type": "object",
"properties": {
"fileInput": {
"type": "string",
"description": "The input PDF file",
"format": "binary"
}
}
}
}
}
},
"responses": {
"200": {
"description": "OK",
"content": {
"*/*": {
"schema": {
"type": "array",
"items": {
"type": "string",
"format": "byte"
}
}
}
}
}
}
}
},
"/merge-pdfs": {
"post": {
"tags": [
"merge-controller"
],
"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.",
"operationId": "mergePdfs",
"requestBody": {
"content": {
"multipart/form-data": {
"schema": {
"required": [
"fileInput"
],
"type": "object",
"properties": {
"fileInput": {
"type": "array",
"description": "The input PDF files to be merged into a single file",
"items": {
"type": "string",
"format": "binary"
}
}
}
}
}
}
},
"responses": {
"200": {
"description": "OK",
"content": {
"*/*": {
"schema": {
"type": "array",
"items": {
"type": "string",
"format": "byte"
}
}
}
}
}
}
}
},
"/img-to-pdf": {
"post": {
"tags": [
"convert-img-pdf-controller"
],
"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.",
"operationId": "convertToPdf",
"parameters": [
{
"name": "stretchToFit",
"in": "query",
"description": "Whether to stretch the images to fit the PDF page or maintain the aspect ratio",
"required": false,
"schema": {
"type": "boolean",
"default": false
},
"example": false
},
{
"name": "colorType",
"in": "query",
"description": "The color type of the output image(s)",
"required": true,
"schema": {
"type": "string",
"enum": [
"rgb",
"greyscale",
"blackwhite"
]
}
},
{
"name": "autoRotate",
"in": "query",
"description": "Whether to automatically rotate the images to better fit the PDF page",
"required": false,
"schema": {
"type": "boolean",
"default": false
},
"example": true
}
],
"requestBody": {
"content": {
"multipart/form-data": {
"schema": {
"required": [
"fileInput"
],
"type": "object",
"properties": {
"fileInput": {
"type": "array",
"description": "The input images to be converted to a PDF file",
"items": {
"type": "string",
"format": "binary"
}
}
}
}
}
}
},
"responses": {
"200": {
"description": "OK",
"content": {
"*/*": {
"schema": {
"type": "array",
"items": {
"type": "string",
"format": "byte"
}
}
}
}
}
}
}
},
"/file-to-pdf": {
"post": {
"tags": [
"convert-office-controller"
],
"summary": "Convert a file to a PDF using OCR",
"description": "This endpoint converts a given file to a PDF using Optical Character Recognition (OCR). The filename of the resulting PDF will be the original filename with \u0027_convertedToPDF.pdf\u0027 appended.",
"operationId": "processPdfWithOCR_1",
"requestBody": {
"content": {
"multipart/form-data": {
"schema": {
"required": [
"fileInput"
],
"type": "object",
"properties": {
"fileInput": {
"type": "string",
"description": "The input file to be converted to a PDF file using OCR",
"format": "binary"
}
}
}
}
}
},
"responses": {
"200": {
"description": "OK",
"content": {
"*/*": {
"schema": {
"type": "array",
"items": {
"type": "string",
"format": "byte"
}
}
}
}
}
}
}
},
"/extract-images": {
"post": {
"tags": [
"extract-images-controller"
],
"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.",
"operationId": "extractImages",
"parameters": [
{
"name": "format",
"in": "query",
"description": "The output image format e.g., \u0027png\u0027, \u0027jpeg\u0027, or \u0027gif\u0027",
"required": true,
"schema": {
"type": "string",
"enum": [
"png",
"jpeg",
"gif"
]
}
}
],
"requestBody": {
"content": {
"multipart/form-data": {
"schema": {
"required": [
"fileInput"
],
"type": "object",
"properties": {
"fileInput": {
"type": "string",
"description": "The input PDF file containing images",
"format": "binary"
}
}
}
}
}
},
"responses": {
"200": {
"description": "OK",
"content": {
"*/*": {
"schema": {
"type": "array",
"items": {
"type": "string",
"format": "byte"
}
}
}
}
}
}
}
},
"/extract-image-scans": {
"post": {
"tags": [
"extract-image-scans-controller"
],
"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.",
"operationId": "extractImageScans",
"parameters": [
{
"name": "angle_threshold",
"in": "query",
"description": "The angle threshold for the image scan extraction",
"required": false,
"schema": {
"type": "integer",
"format": "int32",
"default": 5
},
"example": 5
},
{
"name": "tolerance",
"in": "query",
"description": "The tolerance for the image scan extraction",
"required": false,
"schema": {
"type": "integer",
"format": "int32",
"default": 20
},
"example": 20
},
{
"name": "min_area",
"in": "query",
"description": "The minimum area for the image scan extraction",
"required": false,
"schema": {
"type": "integer",
"format": "int32",
"default": 8000
},
"example": 8000
},
{
"name": "min_contour_area",
"in": "query",
"description": "The minimum contour area for the image scan extraction",
"required": false,
"schema": {
"type": "integer",
"format": "int32",
"default": 500
},
"example": 500
},
{
"name": "border_size",
"in": "query",
"description": "The border size for the image scan extraction",
"required": false,
"schema": {
"type": "integer",
"format": "int32",
"default": 1
},
"example": 1
}
],
"requestBody": {
"content": {
"multipart/form-data": {
"schema": {
"required": [
"fileInput"
],
"type": "object",
"properties": {
"fileInput": {
"type": "string",
"description": "The input file containing image scans",
"format": "binary"
}
}
}
}
}
},
"responses": {
"200": {
"description": "OK",
"content": {
"*/*": {
"schema": {
"type": "array",
"items": {
"type": "string",
"format": "byte"
}
}
}
}
}
}
}
},
"/compress-pdf": {
"post": {
"tags": [
"compress-controller"
],
"summary": "Optimize PDF file",
"description": "This endpoint accepts a PDF file and optimizes it based on the provided parameters.",
"operationId": "optimizePdf",
"parameters": [
{
"name": "optimizeLevel",
"in": "query",
"description": "The level of optimization to apply to the PDF file. Higher values indicate greater compression but may reduce quality.",
"required": false,
"schema": {
"type": "string",
"enum": [
"1",
"2",
"3",
"4",
"5"
]
}
},
{
"name": "expectedOutputSize",
"in": "query",
"description": "The expected output size, e.g. \u0027100MB\u0027, \u002725KB\u0027, etc.",
"required": false,
"schema": {
"type": "string"
}
}
],
"requestBody": {
"content": {
"multipart/form-data": {
"schema": {
"required": [
"fileInput"
],
"type": "object",
"properties": {
"fileInput": {
"type": "string",
"description": "The input PDF file to be optimized.",
"format": "binary"
}
}
}
}
}
},
"responses": {
"200": {
"description": "OK",
"content": {
"*/*": {
"schema": {
"type": "array",
"items": {
"type": "string",
"format": "byte"
}
}
}
}
}
}
}
},
"/cert-sign": {
"post": {
"tags": [
"cert-sign-controller"
],
"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.",
"operationId": "signPDF",
"parameters": [
{
"name": "certType",
"in": "query",
"description": "The type of the digital certificate",
"required": false,
"schema": {
"type": "string",
"enum": [
"PKCS12",
"PEM"
]
}
},
{
"name": "password",
"in": "query",
"description": "The password for the keystore or the private key",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "showSignature",
"in": "query",
"description": "Whether to visually show the signature in the PDF file",
"required": false,
"schema": {
"type": "boolean"
}
},
{
"name": "reason",
"in": "query",
"description": "The reason for signing the PDF",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "location",
"in": "query",
"description": "The location where the PDF is signed",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "name",
"in": "query",
"description": "The name of the signer",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "pageNumber",
"in": "query",
"description": "The page number where the signature should be visible. This is required if showSignature is set to true",
"required": false,
"schema": {
"type": "integer",
"format": "int32"
}
}
],
"requestBody": {
"content": {
"multipart/form-data": {
"schema": {
"required": [
"fileInput"
],
"type": "object",
"properties": {
"fileInput": {
"type": "string",
"description": "The input PDF file to be signed",
"format": "binary"
},
"key": {
"type": "string",
"description": "The private key for the digital certificate (required for PEM type certificates)",
"format": "binary"
},
"cert": {
"type": "string",
"description": "The digital certificate (required for PEM type certificates)",
"format": "binary"
},
"p12": {
"type": "string",
"description": "The PKCS12 keystore file (required for PKCS12 type certificates)",
"format": "binary"
}
}
}
}
}
},
"responses": {
"200": {
"description": "OK",
"content": {
"*/*": {
"schema": {
"type": "array",
"items": {
"type": "string",
"format": "byte"
}
}
}
}
}
}
}
},
"/auto-crop": {
"post": {
"tags": [
"scale-pages-controller"
],
"operationId": "cropPdf",
"requestBody": {
"content": {
"multipart/form-data": {
"schema": {
"required": [
"fileInput"
],
"type": "object",
"properties": {
"fileInput": {
"type": "string",
"format": "binary"
}
}
}
}
}
},
"responses": {
"200": {
"description": "OK",
"content": {
"*/*": {
"schema": {
"type": "array",
"items": {
"type": "string",
"format": "byte"
}
}
}
}
}
}
}
},
"/add-watermark": {
"post": {
"tags": [
"watermark-controller"
],
"summary": "Add watermark to a PDF file",
"description": "This endpoint adds a watermark to a given PDF file. Users can specify the watermark text, font size, rotation, opacity, width spacer, and height spacer.",
"operationId": "addWatermark",
"parameters": [
{
"name": "watermarkText",
"in": "query",
"description": "The watermark text to add to the PDF file",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "fontSize",
"in": "query",
"description": "The font size of the watermark text",
"required": false,
"schema": {
"type": "number",
"format": "float",
"default": 30.0
},
"example": 30
},
{
"name": "rotation",
"in": "query",
"description": "The rotation of the watermark text in degrees",
"required": false,
"schema": {
"type": "number",
"format": "float",
"default": 0.0
},
"example": 0
},
{
"name": "opacity",
"in": "query",
"description": "The opacity of the watermark text (0.0 - 1.0)",
"required": false,
"schema": {
"type": "number",
"format": "float",
"default": 0.5
},
"example": 0.5
},
{
"name": "widthSpacer",
"in": "query",
"description": "The width spacer between watermark texts",
"required": false,
"schema": {
"type": "integer",
"format": "int32",
"default": 50
},
"example": 50
},
{
"name": "heightSpacer",
"in": "query",
"description": "The height spacer between watermark texts",
"required": false,
"schema": {
"type": "integer",
"format": "int32",
"default": 50
},
"example": 50
}
],
"requestBody": {
"content": {
"multipart/form-data": {
"schema": {
"required": [
"fileInput"
],
"type": "object",
"properties": {
"fileInput": {
"type": "string",
"description": "The input PDF file to add a watermark",
"format": "binary"
}
}
}
}
}
},
"responses": {
"200": {
"description": "OK",
"content": {
"*/*": {
"schema": {
"type": "array",
"items": {
"type": "string",
"format": "byte"
}
}
}
}
}
}
}
},
"/add-password": {
"post": {
"tags": [
"password-controller"
],
"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.",
"operationId": "addPassword",
"parameters": [
{
"name": "ownerPassword",
"in": "query",
"description": "The owner password to be added to the PDF file (Restricts what can be done with the document once it is opened)",
"required": false,
"schema": {
"type": "string",
"default": ""
}
},
{
"name": "password",
"in": "query",
"description": "The password to be added to the PDF file (Restricts the opening of the document itself.)",
"required": false,
"schema": {
"type": "string",
"default": ""
}
},
{
"name": "keyLength",
"in": "query",
"description": "The length of the encryption key",
"required": false,
"schema": {
"type": "string",
"enum": [
"40",
"128",
"256"
]
}
},
{
"name": "canAssembleDocument",
"in": "query",
"description": "Whether the document assembly is allowed",
"required": false,
"schema": {
"type": "boolean",
"default": false
},
"example": false
},
{
"name": "canExtractContent",
"in": "query",
"description": "Whether content extraction for accessibility is allowed",
"required": false,
"schema": {
"type": "boolean",
"default": false
},
"example": false
},
{
"name": "canExtractForAccessibility",
"in": "query",
"description": "Whether content extraction for accessibility is allowed",
"required": false,
"schema": {
"type": "boolean",
"default": false
},
"example": false
},
{
"name": "canFillInForm",
"in": "query",
"description": "Whether form filling is allowed",
"required": false,
"schema": {
"type": "boolean",
"default": false
},
"example": false
},
{
"name": "canModify",
"in": "query",
"description": "Whether the document modification is allowed",
"required": false,
"schema": {
"type": "boolean",
"default": false
},
"example": false
},
{
"name": "canModifyAnnotations",
"in": "query",
"description": "Whether modification of annotations is allowed",
"required": false,
"schema": {
"type": "boolean",
"default": false
},
"example": false
},
{
"name": "canPrint",
"in": "query",
"description": "Whether printing of the document is allowed",
"required": false,
"schema": {
"type": "boolean",
"default": false
},
"example": false
},
{
"name": "canPrintFaithful",
"in": "query",
"description": "Whether faithful printing is allowed",
"required": false,
"schema": {
"type": "boolean",
"default": false
},
"example": false
}
],
"requestBody": {
"content": {
"multipart/form-data": {
"schema": {
"required": [
"fileInput"
],
"type": "object",
"properties": {
"fileInput": {
"type": "string",
"description": "The input PDF file to which the password should be added",
"format": "binary"
}
}
}
}
}
},
"responses": {
"200": {
"description": "OK",
"content": {
"*/*": {
"schema": {
"type": "array",
"items": {
"type": "string",
"format": "byte"
}
}
}
}
}
}
}
},
"/add-image": {
"post": {
"tags": [
"overlay-image-controller"
],
"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.",
"operationId": "overlayImage",
"parameters": [
{
"name": "x",
"in": "query",
"description": "The x-coordinate at which to place the top-left corner of the image.",
"required": true,
"schema": {
"type": "number",
"format": "float"
},
"example": 0
},
{
"name": "y",
"in": "query",
"description": "The y-coordinate at which to place the top-left corner of the image.",
"required": true,
"schema": {
"type": "number",
"format": "float"
},
"example": 0
},
{
"name": "everyPage",
"in": "query",
"description": "Whether to overlay the image onto every page of the PDF.",
"required": true,
"schema": {
"type": "boolean"
},
"example": false
}
],
"requestBody": {
"content": {
"multipart/form-data": {
"schema": {
"required": [
"fileInput",
"fileInput2"
],
"type": "object",
"properties": {
"fileInput": {
"type": "string",
"description": "The input PDF file to overlay the image onto.",
"format": "binary"
},
"fileInput2": {
"type": "string",
"description": "The image file to be overlaid onto the PDF.",
"format": "binary"
}
}
}
}
}
},
"responses": {
"200": {
"description": "OK",
"content": {
"*/*": {
"schema": {
"type": "array",
"items": {
"type": "string",
"format": "byte"
}
}
}
}
}
}
}
},
"/api/v1/status": {
"get": {
"tags": [
"metrics-controller"
],
"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",
"additionalProperties": {
"type": "string"
}
}
}
}
}
}
}
},
"/api/v1/requests": {
"get": {
"tags": [
"metrics-controller"
],
"summary": "POST request count",
"description": "This endpoint returns the total count of POST requests or the count of POST requests for a specific endpoint.",
"operationId": "getTotalRequests",
"parameters": [
{
"name": "endpoint",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "OK",
"content": {
"*/*": {
"schema": {
"type": "number",
"format": "double"
}
}
}
}
}
}
},
"/api/v1/loads": {
"get": {
"tags": [
"metrics-controller"
],
"summary": "GET request count",
"description": "This endpoint returns the total count of GET requests or the count of GET requests for a specific endpoint.",
"operationId": "getPageLoads",
"parameters": [
{
"name": "endpoint",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "OK",
"content": {
"*/*": {
"schema": {
"type": "number",
"format": "double"
}
}
}
}
}
}
}
},
"components": {}
}