Uploadcare Conversion API

The Conversion API from Uploadcare — 5 operation(s) for conversion.

OpenAPI Specification

uploadcare-conversion-api-openapi.yml Raw ↑
openapi: 3.0.0
info:
  title: URL API Reference Add-Ons Conversion API
  version: '2022-11-28'
  description: 'Every uploaded file is immediately available on the Uploadcare CDN.

    The CDN includes on-the-fly processing features and can work as a proxy.


    ## API endpoints

    Access files in Uploadcare CDN at `ucarecdn.com` over HTTP/HTTPS like this:

    ```https://ucarecdn.com/:uuid/```


    You can add CDN operations by including directives in the CDN URL:

    ```https://ucarecdn.com/:uuid/-/:operation/:params/:filename```


    * `:uuid` stands for the unique file identifier, UUID, assigned on upload.

    * `/-/` is a mandatory parsing delimiter to divide operations and other path components.

    * `:operation/:params/` is a CDN operation directive with parameters.

    * `:filename` is an optional filename you can add after a trailing slash /.


    You can stack two and more operations like this:

    ```-/:operation/:params/-/:operation/:params/```

    '
  contact:
    name: API support
    email: help@uploadcare.com
  x-logo:
    url: https://ucarecdn.com/12e3af14-392d-416f-8542-f210c2eb6ec4/logourlapi.svg
    backgroundColor: '#fafafa'
    altText: Uploadcare URL API Reference
  x-meta:
    title: URL API Reference — Uploadcare
    description: A reference documentation for the Uploadcare's URL API.
servers:
- url: https://ucarecdn.com
  description: Production server
tags:
- name: Conversion
paths:
  /convert/document/{uuid}/:
    get:
      tags:
      - Conversion
      summary: Document info
      description: The endpoint allows you to determine the document format and possible conversion formats.
      operationId: documentConvertInfo
      x-codeSamples:
      - lang: cURL
        label: cURL
        source: "curl -X GET \"https://api.uploadcare.com/convert/document/UUID/\" \\\n     -H \"Content-Type: application/json\" \\\n     -H \"Accept: application/vnd.uploadcare-v0.7+json\" \\\n     -H \"Authorization: Uploadcare.Simple YOUR_PUBLIC_KEY:YOUR_SECRET_KEY\"\n"
      - lang: Python
        label: Python
        source: 'from pyuploadcare import Uploadcare

          uploadcare = Uploadcare(public_key=''YOUR_PUBLIC_KEY'', secret_key=''YOUR_SECRET_KEY'')


          uuid = ''740e1b8c-1ad8-4324-b7ec-112c79d8eac2''

          document_convert_info = uploadcare.document_convert_api.retrieve(uuid)

          print(document_convert_info)

          '
      - lang: Ruby
        label: Ruby
        source: 'require ''uploadcare''

          Uploadcare.config.public_key = ''YOUR_PUBLIC_KEY''

          Uploadcare.config.secret_key = ''YOUR_SECRET_KEY''


          uuid = ''740e1b8c-1ad8-4324-b7ec-112c79d8eac2''

          puts Uploadcare::DocumentConverter.info(uuid)

          '
      - lang: Swift
        label: Swift
        source: 'import Uploadcare


          let uploadcare = Uploadcare(withPublicKey: "YOUR_PUBLIC_KEY", secretKey: "YOUR_SECRET_KEY")


          let conversionToken = "YOUR_CONVERSION_TOKEN"

          let conversionStatus = try await uploadcare.documentConversionJobStatus(token: conversionToken)

          print(conversionStatus)

          '
      - lang: Kotlin
        label: Kotlin
        source: 'import com.uploadcare.android.library.api.UploadcareClient


          val uploadcare = UploadcareClient(publicKey = "YOUR_PUBLIC_KEY", secretKey = "YOUR_SECRET_KEY")


          val documentInfo = uploadcare.getDocumentConversionInfo("YOUR_FILE_UUID")

          Log.d("TAG", status.toString())

          '
      parameters:
      - $ref: '#/components/parameters/acceptHeader'
      - name: uuid
        description: File uuid.
        in: path
        required: true
        schema:
          type: string
          example: 86c91c35-58e1-41f7-9b23-2d7652cfcd17
      responses:
        '200':
          $ref: '#/components/responses/documentInfoResponse'
        '400':
          description: Simple HTTP Auth or document conversion permission errors.
          content:
            application/json:
              schema:
                oneOf:
                - $ref: '#/components/schemas/simpleAuthHTTPForbidden'
                - $ref: '#/components/schemas/cantUseDocsConversionError'
              examples:
                Authentication Error:
                  $ref: '#/components/examples/simpleAuthHTTPForbidden'
                Permission Error:
                  $ref: '#/components/examples/cantUseDocsConversionError'
        '401':
          $ref: '#/components/responses/authorizationProblemsResponse'
        '404':
          description: Document with specified ID is not found.
          content:
            application/json:
              schema:
                type: object
                properties:
                  detail:
                    type: string
                    example: Not found.
                    default: Not found.
        '406':
          $ref: '#/components/responses/invalidAcceptHeader'
        '429':
          $ref: '#/components/responses/requestWasThrottledError'
        '503':
          description: Conversion service error.
          content:
            text/plain:
              schema:
                type: string
  /convert/document/:
    post:
      tags:
      - Conversion
      summary: Convert document
      description: Uploadcare allows you to convert files to different target formats. Check out the [conversion capabilities](https://uploadcare.com/docs/transformations/file-conversion/#document-file-formats) for each supported format.
      operationId: documentConvert
      parameters:
      - $ref: '#/components/parameters/acceptHeader'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/documentJobSubmitParameters'
      responses:
        '200':
          $ref: '#/components/responses/documentJobSubmitResponse'
        '400':
          description: Simple HTTP Auth or document conversion permission errors.
          content:
            application/json:
              schema:
                oneOf:
                - $ref: '#/components/schemas/simpleAuthHTTPForbidden'
                - $ref: '#/components/schemas/cantUseDocsConversionError'
                - $ref: '#/components/schemas/jsonObjectParseError'
                - type: object
                  properties:
                    detail:
                      type: string
                      default: “paths” parameter is required.
              examples:
                Authentication Error:
                  $ref: '#/components/examples/simpleAuthHTTPForbidden'
                Permission Error:
                  $ref: '#/components/examples/cantUseDocsConversionError'
                json-parse-error:
                  $ref: '#/components/examples/jsonObjectParseError'
                path-error:
                  value:
                    detail: “paths” parameter is required.
        '401':
          $ref: '#/components/responses/authorizationProblemsResponse'
        '406':
          $ref: '#/components/responses/invalidAcceptHeader'
      x-codeSamples:
      - lang: PHP
        label: PHP
        source: "<?php\nuse Uploadcare\\Interfaces\\Conversion\\ConvertedItemInterface;\nuse Uploadcare\\Interfaces\\Response\\ResponseProblemInterface;\n$configuration = Uploadcare\\Configuration::create((string) $_ENV['UPLOADCARE_PUBLIC_KEY'], (string) $_ENV['UPLOADCARE_SECRET_KEY']);\n\n$api = (new Uploadcare\\Api($configuration))->conversion();\n$request = new Uploadcare\\Conversion\\DocumentConversionRequest('pdf');\n$result = $api->convertDocument('1bac376c-aa7e-4356-861b-dd2657b5bfd2', $request);\nif ($result instanceof ConvertedItemInterface) {\n    echo \\sprintf('Conversion requested. Key is \\'%s\\'', $result->getToken());\n}\nif ($result instanceof ResponseProblemInterface) {\n    echo \\sprintf('Error in request: %s', $result->getReason());\n}\n"
      - lang: Python
        label: Python
        source: 'from pyuploadcare import Uploadcare

          uploadcare = Uploadcare(public_key=''YOUR_PUBLIC_KEY'', secret_key=''YOUR_SECRET_KEY'')


          file = uploadcare.file(''1bac376c-aa7e-4356-861b-dd2657b5bfd2'')

          transformation = DocumentTransformation().format(DocumentFormat.pdf)

          converted_file = file.convert(transformation)

          print(converted_file.info)

          '
      - lang: Ruby
        label: Ruby
        source: 'require ''uploadcare''

          Uploadcare.config.public_key = ''YOUR_PUBLIC_KEY''

          Uploadcare.config.secret_key = ''YOUR_SECRET_KEY''


          document_params = { uuid: ''1bac376c-aa7e-4356-861b-dd2657b5bfd2'', format: :pdf }

          options = { store: true }

          Uploadcare::DocumentConverter.convert(document_params, options)

          '
      - lang: Swift
        label: Swift
        source: "import Uploadcare\n\nlet uploadcare = Uploadcare(withPublicKey: \"YOUR_PUBLIC_KEY\", secretKey: \"YOUR_SECRET_KEY\")\n\nlet file = try await uploadcare.fileInfo(withUUID: \"1bac376c-aa7e-4356-861b-dd2657b5bfd2\")\nlet settings = DocumentConversionJobSettings(forFile: file)\n  .format(.pdf)\n  \nlet response = try await uploadcare.convertDocumentsWithSettings([settings])\nprint(response)\n"
      - lang: Kotlin
        label: Kotlin
        source: "import com.uploadcare.android.library.api.UploadcareClient\n\nval uploadcare = UploadcareClient(publicKey = \"YOUR_PUBLIC_KEY\", secretKey = \"YOUR_SECRET_KEY\")\n\nval conversionJob = DocumentConversionJob(fileId = \"1bac376c-aa7e-4356-861b-dd2657b5bfd2\")\n    .apply { setFormat(DocumentFormat.PDF) }\nval converter = DocumentConverter(uploadcare, listOf(conversionJob))\nval response = converter.convertWithResultData()\nLog.d(\"TAG\", response.toString())\n"
  /convert/document/status/{token}/:
    get:
      tags:
      - Conversion
      summary: Document conversion job status
      description: Once you get a conversion job result, you can acquire a conversion job status via token. Just put it in your request URL as `:token`.
      operationId: documentConvertStatus
      parameters:
      - $ref: '#/components/parameters/acceptHeader'
      - name: token
        description: Job token.
        in: path
        schema:
          type: integer
        required: true
        example: 426339926
      responses:
        '200':
          $ref: '#/components/responses/documentJobStatusResponse'
        '400':
          description: Simple HTTP Auth or document conversion permission errors.
          content:
            application/json:
              schema:
                oneOf:
                - $ref: '#/components/schemas/simpleAuthHTTPForbidden'
                - $ref: '#/components/schemas/cantUseDocsConversionError'
              examples:
                Authentication Error:
                  $ref: '#/components/examples/simpleAuthHTTPForbidden'
                Permission Error:
                  $ref: '#/components/examples/cantUseDocsConversionError'
        '401':
          $ref: '#/components/responses/authorizationProblemsResponse'
        '404':
          description: Job with specified ID is not found.
          content:
            application/json:
              schema:
                type: object
                properties:
                  detail:
                    type: string
                    example: Not found.
                    default: Not found.
        '406':
          $ref: '#/components/responses/invalidAcceptHeader'
        '429':
          $ref: '#/components/responses/requestWasThrottledError'
        '503':
          description: Conversion service error.
          content:
            text/plain:
              schema:
                type: string
      x-codeSamples:
      - lang: JavaScript
        label: JS
        source: "import {\n  conversionJobStatus,\n  ConversionType,\n  UploadcareSimpleAuthSchema,\n} from '@uploadcare/rest-client';\n\nconst uploadcareSimpleAuthSchema = new UploadcareSimpleAuthSchema({\n  publicKey: 'YOUR_PUBLIC_KEY',\n  secretKey: 'YOUR_SECRET_KEY',\n});\n\nconst result = await conversionJobStatus(\n  {\n    type: ConversionType.DOCUMENT,\n    token: 32921143\n  },\n  { authSchema: uploadcareSimpleAuthSchema }\n)\n"
      - lang: PHP
        label: PHP
        source: '<?php

          $configuration = Uploadcare\Configuration::create((string) $_ENV[''UPLOADCARE_PUBLIC_KEY''], (string) $_ENV[''UPLOADCARE_SECRET_KEY'']);


          $api = (new Uploadcare\Api($configuration))->conversion();

          $status = $api->documentJobStatus(32921143);

          echo \sprintf(''Conversion status: %s'', $status->getError() ?? $status->getStatus());

          '
      - lang: Python
        label: Python
        source: 'from pyuploadcare import Uploadcare

          uploadcare = Uploadcare(public_key=''YOUR_PUBLIC_KEY'', secret_key=''YOUR_SECRET_KEY'')


          token = 32921143

          document_convert_status = uploadcare.document_convert_api.status(token)

          print(document_convert_status.status)

          '
      - lang: Ruby
        label: Ruby
        source: 'require ''uploadcare''

          Uploadcare.config.public_key = ''YOUR_PUBLIC_KEY''

          Uploadcare.config.secret_key = ''YOUR_SECRET_KEY''


          token = 32_921_143

          puts Uploadcare::DocumentConverter.status(token)

          '
      - lang: Swift
        label: Swift
        source: 'import Uploadcare


          let uploadcare = Uploadcare(withPublicKey: "YOUR_PUBLIC_KEY", secretKey: "YOUR_SECRET_KEY")


          let job = try await uploadcare.documentConversionJobStatus(token: 32921143)

          print(job.statusString)

          '
      - lang: Kotlin
        label: Kotlin
        source: 'import com.uploadcare.android.library.api.UploadcareClient


          val uploadcare = UploadcareClient(publicKey = "YOUR_PUBLIC_KEY", secretKey = "YOUR_SECRET_KEY")


          val status = uploadcare.getDocumentConversionStatus(token = 32921143)

          Log.d("TAG", status.toString())

          '
  /convert/video/:
    post:
      tags:
      - Conversion
      summary: Convert video
      description: Uploadcare video processing adjusts video quality, format (mp4, webm, ogg), and size, cuts it, and generates thumbnails. Processed video is instantly available over CDN.
      operationId: videoConvert
      parameters:
      - $ref: '#/components/parameters/acceptHeader'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/videoJobSubmitParameters'
      responses:
        '200':
          $ref: '#/components/responses/videoJobSubmitResponse'
        '400':
          description: Simple HTTP Auth or video conversion permission errors.
          content:
            application/json:
              schema:
                oneOf:
                - $ref: '#/components/schemas/simpleAuthHTTPForbidden'
                - $ref: '#/components/schemas/cantUseVideoConversionError'
                - $ref: '#/components/schemas/jsonObjectParseError'
                - type: object
                  properties:
                    detail:
                      type: string
                      default: “paths” parameter is required.
              examples:
                Authentication Error:
                  $ref: '#/components/examples/simpleAuthHTTPForbidden'
                Permission Error:
                  $ref: '#/components/examples/cantUseVideoConversionError'
                json-parse-error:
                  $ref: '#/components/examples/jsonObjectParseError'
                path-error:
                  value:
                    detail: “paths” parameter is required.
        '401':
          $ref: '#/components/responses/authorizationProblemsResponse'
        '406':
          $ref: '#/components/responses/invalidAcceptHeader'
      x-codeSamples:
      - lang: PHP
        label: PHP
        source: "<?php\nuse Uploadcare\\Interfaces\\Conversion\\ConvertedItemInterface;\nuse Uploadcare\\Interfaces\\Response\\ResponseProblemInterface;\n$configuration = Uploadcare\\Configuration::create((string) $_ENV['UPLOADCARE_PUBLIC_KEY'], (string) $_ENV['UPLOADCARE_SECRET_KEY']);\n\n$api = (new Uploadcare\\Api($configuration))->conversion();\n$request = (new Uploadcare\\Conversion\\VideoEncodingRequest())\n    ->setHorizontalSize(1024)\n    ->setVerticalSize(768)\n    ->setResizeMode('preserve_ratio')\n    ->setTargetFormat('mp4');\n$result = $api->convertVideo('1bac376c-aa7e-4356-861b-dd2657b5bfd2', $request);\nif ($result instanceof ConvertedItemInterface) {\n    echo \\sprintf('Conversion requested. Key is \\'%s\\'', $result->getToken());\n}\nif ($result instanceof ResponseProblemInterface) {\n    echo \\sprintf('Error in request: %s', $result->getReason());\n}\n"
      - lang: Python
        label: Python
        source: "from pyuploadcare import Uploadcare\nuploadcare = Uploadcare(public_key='YOUR_PUBLIC_KEY', secret_key='YOUR_SECRET_KEY')\n\ntransformation = (\n    VideoTransformation()\n    .format(VideoFormat.mp4)\n    .size(width=640, height=480, resize_mode=ResizeMode.add_padding)\n    .quality(Quality.lighter)\n    .cut(start_time=\"0:1.535\", length=\"0:10.0\")\n    .thumbs(10)\n)\n\npath = transformation.path('1bac376c-aa7e-4356-861b-dd2657b5bfd2')\nresponse = uploadcare.video_convert_api.convert([path])\nvideo_convert_info = response.result[0]\nconverted_file = uploadcare.file(video_convert_info.uuid)\nvideo_convert_status = uploadcare.video_convert_api.status(video_convert_info.token)\n"
      - lang: Ruby
        label: Ruby
        source: "require 'uploadcare'\nUploadcare.config.public_key = 'YOUR_PUBLIC_KEY'\nUploadcare.config.secret_key = 'YOUR_SECRET_KEY'\n\nvideo_params = {\n  uuid: '1bac376c-aa7e-4356-861b-dd2657b5bfd2',\n  format: :mp4,\n  quality: :lighter\n}\noptions = { store: true }\nUploadcare::VideoConverter.convert(video_params, options)\n"
      - lang: Swift
        label: Swift
        source: "import Uploadcare\n\nlet uploadcare = Uploadcare(withPublicKey: \"YOUR_PUBLIC_KEY\", secretKey: \"YOUR_SECRET_KEY\")\n\nlet file = try await uploadcare.fileInfo(withUUID: \"1bac376c-aa7e-4356-861b-dd2657b5bfd2\")\nlet settings = VideoConversionJobSettings(forFile: videoFile)\n  .format(.mp4)\n  .size(VideoSize(width: 640, height: 480))\n  .resizeMode(.addPadding)\n  .quality(.lighter)\n  .cut( VideoCut(startTime: \"0:0:5.000\", length: \"15\") )\n  .thumbs(10)\n\nlet response = try await uploadcare.convertVideosWithSettings([settings])\nprint(response)\n"
      - lang: Kotlin
        label: Kotlin
        source: "import com.uploadcare.android.library.api.UploadcareClient\n\nval uploadcare = UploadcareClient(publicKey = \"YOUR_PUBLIC_KEY\", secretKey = \"YOUR_SECRET_KEY\")\n\nval conversionJob = VideoConversionJob(fileId = \"1bac376c-aa7e-4356-861b-dd2657b5bfd2\")\n    .apply {\n        setFormat(VideoFormat.MP4)\n        resize(width = 640, height = 480, resizeMode = VideoResizeMode.LETTERBOX)\n        quality(VideoQuality.LIGHTER)\n        cut(startTime = \"0:0:5.000\", length = \"15\")\n        thumbnails(10)\n    }\nval converter = VideoConverter(uploadcare, listOf(conversionJob))\nval response = converter.convertWithResultData()\nLog.d(\"TAG\", response.toString())\n"
  /convert/video/status/{token}/:
    get:
      tags:
      - Conversion
      summary: Video conversion job status
      description: Once you get a processing job result, you can acquire a processing job status via token. Just put it in your request URL as `:token`.
      operationId: videoConvertStatus
      parameters:
      - $ref: '#/components/parameters/acceptHeader'
      - name: token
        description: Job token.
        in: path
        schema:
          type: integer
        required: true
        example: 426339926
      responses:
        '200':
          $ref: '#/components/responses/videoJobStatusResponse'
        '400':
          description: Simple HTTP Auth or video conversion permission errors.
          content:
            application/json:
              schema:
                oneOf:
                - $ref: '#/components/schemas/simpleAuthHTTPForbidden'
                - $ref: '#/components/schemas/cantUseVideoConversionError'
              examples:
                Authentication Error:
                  $ref: '#/components/examples/simpleAuthHTTPForbidden'
                Permission Error:
                  $ref: '#/components/examples/cantUseVideoConversionError'
        '401':
          $ref: '#/components/responses/authorizationProblemsResponse'
        '404':
          description: Job with specified ID is not found.
          content:
            application/json:
              schema:
                type: object
                properties:
                  detail:
                    type: string
                    example: Not found.
                    default: Not found.
        '406':
          $ref: '#/components/responses/invalidAcceptHeader'
        '429':
          $ref: '#/components/responses/requestWasThrottledError'
        '503':
          description: Conversion service error.
          content:
            text/plain:
              schema:
                type: string
      x-codeSamples:
      - lang: JavaScript
        label: JS
        source: "import {\n  conversionJobStatus,\n  ConversionType,\n  UploadcareSimpleAuthSchema,\n} from '@uploadcare/rest-client';\n\nconst uploadcareSimpleAuthSchema = new UploadcareSimpleAuthSchema({\n  publicKey: 'YOUR_PUBLIC_KEY',\n  secretKey: 'YOUR_SECRET_KEY',\n});\n\nconst result = await conversionJobStatus(\n  {\n    type: ConversionType.VIDEO,\n    token: 1201016744\n  },\n  { authSchema: uploadcareSimpleAuthSchema }\n)\n"
      - lang: PHP
        label: PHP
        source: '<?php

          $configuration = Uploadcare\Configuration::create((string) $_ENV[''UPLOADCARE_PUBLIC_KEY''], (string) $_ENV[''UPLOADCARE_SECRET_KEY'']);


          $api = (new Uploadcare\Api($configuration))->conversion();

          $status = $api->videoJobStatus(1201016744);

          echo \sprintf(''Conversion status: %s'', $status->getError() ?? $status->getStatus());

          '
      - lang: Python
        label: Python
        source: 'from pyuploadcare import Uploadcare

          uploadcare = Uploadcare(public_key=''YOUR_PUBLIC_KEY'', secret_key=''YOUR_SECRET_KEY'')


          token = 1201016744

          video_convert_status = uploadcare.video_convert_api.status(token)

          print(video_convert_status.status)

          '
      - lang: Ruby
        label: Ruby
        source: 'require ''uploadcare''

          Uploadcare.config.public_key = ''YOUR_PUBLIC_KEY''

          Uploadcare.config.secret_key = ''YOUR_SECRET_KEY''


          token = 1_201_016_744

          puts Uploadcare::VideoConverter.status(token)

          '
      - lang: Swift
        label: Swift
        source: 'import Uploadcare


          let uploadcare = Uploadcare(withPublicKey: "YOUR_PUBLIC_KEY", secretKey: "YOUR_SECRET_KEY")


          let job = try await uploadcare.videoConversionJobStatus(token: 1201016744)

          print(job.statusString)

          '
      - lang: Kotlin
        label: Kotlin
        source: 'import com.uploadcare.android.library.api.UploadcareClient


          val uploadcare = UploadcareClient(publicKey = "YOUR_PUBLIC_KEY", secretKey = "YOUR_SECRET_KEY")


          val status = uploadcare.getVideoConversionStatus(token = 1201016744)

          Log.d("TAG", status.toString())

          '
components:
  schemas:
    cantUseDocsConversionError:
      type: object
      properties:
        detail:
          type: string
          default: Document conversion feature is not available for this project.
      example:
        detail: Document conversion feature is not available for this project.
    cantUseVideoConversionError:
      type: object
      properties:
        detail:
          type: string
          default: Video conversion feature is not available for this project.
      example:
        detail: Video conversion feature is not available for this project.
    documentJobSubmitParameters:
      type: object
      properties:
        paths:
          description: An array of UUIDs of your source documents to convert together with the specified target format (see [documentation](https://uploadcare.com/docs/transformations/file-conversion/)).
          type: array
          items:
            type: string
          example:
          - https://cdn.uploadcare.com/5ffa2545-ea40-4e71-a9e4-3a8e49b7b737/document/-/format/jpg/-/page/1/
          - 18574696-50b5-4d6a-84c2-48ffc3de1d40/document/-/format/jpg/-/dpi/150/
          - 18574696-50b5-4d6a-84c2-48ffc3de1d40/document/-/format/jpg/-/quality/80/
          - 18574696-50b5-4d6a-84c2-48ffc3de1d40/document/-/format/jpg/-/dpi/200/-/quality/90/
          - 88a51210-bd69-4411-bc72-a9952d9512cd/document/-/format/pdf/
          - 8ddbbb48-0927-4df7-afac-c6031668b01b/document/
        store:
          type: string
          description: 'When `store` is set to `"0"`, the converted files will only be available for 24 hours. `"1"` makes converted files available permanently. If the parameter is omitted, it checks the `Auto file storing` setting of your Uploadcare project identified by the `public_key` provided in the `auth-param`.

            '
          enum:
          - '0'
          - 'false'
          - '1'
          - 'true'
          example: '1'
        save_in_group:
          type: string
          default: '0'
          description: 'When `save_in_group` is set to `"1"`, multi-page documents additionally will be saved as a file group.

            '
          enum:
          - '0'
          - 'false'
          - '1'
          - 'true'
          example: '1'
      example:
        paths:
        - https://cdn.uploadcare.com/5ffa2545-ea40-4e71-a9e4-3a8e49b7b737/document/-/format/jpg/-/page/1/
        - 18574696-50b5-4d6a-84c2-48ffc3de1d40/document/-/format/jpg/-/dpi/150/
        - 18574696-50b5-4d6a-84c2-48ffc3de1d40/document/-/format/jpg/-/quality/80/
        - 18574696-50b5-4d6a-84c2-48ffc3de1d40/document/-/format/jpg/-/dpi/200/-/quality/90/
        - 88a51210-bd69-4411-bc72-a9952d9512cd/document/-/format/pdf/
        - 8ddbbb48-0927-4df7-afac-c6031668b01b/document/
        store: 1
        save_in_group: '1'
    jsonObjectParseError:
      type: object
      properties:
        detail:
          type: string
          description: Expected JSON object.
      example:
        detail: Expected JSON object.
    videoJobSubmitParameters:
      type: object
      properties:
        paths:
          description: An array of UUIDs of your video files to process together with a set of assigned operations (see [documentation](https://uploadcare.com/docs/transformations/video-encoding/)).
          type: array
          items:
            type: string
          example:
          - https://cdn.uploadcare.com/5ffa2545-ea40-4e71-a9e4-3a8e49b7b737/video/-/format/webm/
          - 88a51210-bd69-4411-bc72-a9952d9512cd/video/-/format/ogg/-/quality/best/
          - 8ddbbb48-0927-4df7-afac-c6031668b01b/video/
        store:
          type: string
          description: 'When `store` is set to `"0"`, the converted files will only be available for 24 hours. `"1"` makes converted files available permanently. If the parameter is omitted, it checks the `Auto file storing` setting of your Uploadcare project identified by the `public_key` provided in the `auth-param`.

            '
          enum:
          - '0'
          - 'false'
          - '1'
          - 'true'
          example: '1'
      example:
        paths:
        - d52d7136-a2e5-4338-9f45-affbf83b857d/video/
        - d52d7136-a2e5-4338-9f45-affbf83b857d/video/-/format/ogg/-/quality/best/
        - 28843a09-dd3d-4b8a-ad4f-8aa5f8f60ff2
        store: '1'
    simpleAuthHTTPForbidden:
      type: object
      properties:
        detail:
          type: string
          default: Simple authentication over HTTP is forbidden. Please, use HTTPS or signed requests instead.
      example:
        detail: Simple authentication over HTTP is forbidden. Please, use HTTPS or signed requests instead.
  responses:
    videoJobStatusResponse:
      description: Success.
      content:
        application/json:
          schema:
            type: object
            properties:
              status:
                type: string
                description: 'Processing job status, can have one of the following values: - `pending` — video file is being prepared for conversion. - `processing` — video file processing is in progress. - `finished` — the processing is finished. - `failed` — we failed to process the video, see `error` for details. - `canceled` — video processing was canceled.'
                enum:
                - pending
                - processing
                - finished
                - failed
                - cancelled
              error:
                type: string
                nullable: true
                description: Holds a processing error if we failed to handle your video.
              result:
                type: object
                description: Repeats the contents of your processing output.
                properties:
                  uuid:
                    type: string
                    format: uuid
                    description: A UUID of your processed video file.
                  thumbnails_group_uuid:
                    type: string
                    format: uuid
                    description: A UUID of a file group with thumbnails for an output video, based on the `thumbs` operation parameters.
            example:
              status: processing
              error: null
              result:
                thumbnails_group_uuid: 575ed4e8-f4e8-4c14-a58b-1527b6d9ee46~1
                uuid: 500196bc-9da5-4aaf-8f3e-70a4ce86edae
    invalidAcceptHeader:
      description: Invalid version header `Accept` for this endpoint.
      content:
        application/json:
          schema:
            type: object
            properties:
              detail:
                type: string
                example: Incorrect Accept header provided. Make sure to specify API version. Refer to REST API docs for details.
                default: Incorrect Accept header provided. Make sure to specify API version. Refer to REST API docs for details.
    documentJobSubmitResponse:
      description: Success.
      content:
        application/json:
          schema:
            type: object
            properties:
              problems:
                type: object
                description: Dictionary of problems related to your processing job, if any. A key is the `path` you requested.
                additionalProperties:
                  type: string
                  format: uuid
              result:
                type: array
                description: Result for each requested path, in case of no errors for that path.
                items:
                  type: object
                  properties:
                    original_source:
                      type: string
                      description: Source file identifier including a target format, if present.
                    uuid:
                      type: string
                      description: A UUID of your converted document.
                      format: uuid
                    token:
                      type: integer
                      description: A conversion job token that can be used to get a job status.
            example:
              problems:
                8ddbbb48-0927-4df7-afac-c6031668b01b: Bad path "8ddbbb48-0927-4df7-afac-c6031668b01b". Use UUID or CDN URL
              result:
              - original_source: https://cdn.uploadcare.com/5ffa2545-ea40-4e71-a9e4-3a8e49b7b737/document/-/format/jpg/-/page/1/
                token: 445630631
                uuid: d52d7136-a2e5-4338-9f45-affbf83b857d
              - original_source: 88a51210-bd69-4411-bc72-a9952d9512cd/document/-/format/pdf/
                token: 445630637
                uuid: 28843a09-dd3d-4b8a-ad4f-8aa5f8f60ff2
    documentJobStatusResponse:
      description: Success.
      content:
        application/json:
          schema:
            type: object
            properties:
              status:
                type: string
                description: 'Conversion job status, can have one of the following values: - `pending` — a source file is being prepared for conversion. - `processing` — conversion is in progress. - `finished` — the conver

# --- truncated at 32 KB (38 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/uploadcare/refs/heads/main/openapi/uploadcare-conversion-api-openapi.yml