API Documentation
                                Welcome to the CloudConvert API Documentation! This is the documentation for Version 2
                                of the API (/v2 prefix).
                            
On this page you will find some general information about the terminology and about formatting and authenticating requests. You can use the menu on the left to jump to the documentation of the endpoints directly. A good start is trying out the Job Builder: It allows to generate and try out requests using a graphical interface.
SDKs
For API v2, there are official PHP, node.js, Python, Ruby, Java and .NET SDKs available.
Integrations
| Zapier | There is a Zapier Integration of API v2 available. Zapier allows it to connect CloudConvert with 5,000+ apps and create automated workflows using a graphical interface. | 
|---|---|
| Microsoft Power Automate | Build automated processes with flows in Microsoft Power Automate. Power Automate allows to automate repetitive, mundane tasks with ease. You can build even complex workflows involving multiple apps using "drag & drop" in a graphical interface. | 
| Make | Make (formerly Integromat) is integrated with the CloudConvert API v2. Thanks to the handy Make scenario builder you can drag and drop your desired apps together to create powerful workflows, without writing any code. | 
| n8n | n8n is an open source workflow automation tool. We have built a CloudConvert integration as community node. | 
Region Endpoints
By default, CloudConvert automatically selects the nearest processing region nearby you based on your IP address. You can use a specific region by using the region specific endpoints or setting a fixed region in your account settings.
| Endpoint | Region | 
|---|---|
| https://api.cloudconvert.com | Automatically selects nearest processing region, unless overriden by account region settings. | 
| https://eu-central.api.cloudconvert.com | eu-central | 
| https://us-east.api.cloudconvert.com | us-east | 
Sandbox API
Besides the Live API, CloudConvert has a Sandbox API. The sandbox API allows to perform unlimited jobs and tasks without consuming your credits. The only limitation is that it only allows a limited set of whitelisted files. The sandbox API is meant to be used for development purposes and integration tests.
                                The Base URL of the Sandbox API is https://api.sandbox.cloudconvert.com.
                            
API Endpoint
https://api.cloudconvert.com/v2Example Request
$ curl -X POST "https://api.cloudconvert.com/v2/jobs" \ -H "Authorization: Bearer API_KEY" \ -H "Content-type: application/json" \ -d '{ ... }'
Example Response
HTTP/1.1 200 OK
Content-Type: application/json
{
  "data": {
    ...
  }
}
Terminology
Jobs & Tasks
Processing files is done via jobs in the terminology of the CloudConvert REST API. Each job consists of one or more tasks.
For example: The first task of a job could be importing the file from a S3 bucket. The second task could be converting this file to a different format and the final task of the job could be exporting the file again to a S3 bucket.
It would also be possible to have multiple conversions and multiple export tasks within a single job. This is useful if you want to convert a file and create a thumbnail at the same time, for example.
Import & Export Tasks
An import task is a task that imports one or multiple files into CloudConvert for using them in other tasks. Examples for import tasks are downloading files from a URL or a S3 bucket. Imported files are only stored temporary. Export tasks are used to export one or multiple output files from CloudConvert, for example by generating public URLs or by storing them on your S3 bucket.
Typically, each job has at least one import and one export task.
Engine & Engine Versions
                                For some tasks, there are multiple engines available. For example, it
                                is possible to convert DOCX files with the office engine or the libreoffice
                                engine. The available options differ based on the used engine. Also, you can set a
                                engine version to use. For example, you can set a fixed LibreOffice
                                version to use which makes sure that this version is used, even if we update the default
                                version of LibreOffice. There is an API for each task type available that shows the
                                available engines, versions and their options.
                            
Authentication
API Keys
                                To authenticate requests, you need to create
                                    an API key. API keys do not expire unless you revoke them. Requests are
                                authenticated using the Authorization: Bearer API_KEY header.
                            
When creating an API key you can select scopes to limit the access.
Available Scopes
| User | |
|---|---|
| user.read | Allows to read your account data, remaining credits and usage charts. | 
| user.write | Allows to update your account data. | 
| Tasks & Jobs | |
| task.read | Allows to read tasks and jobs. | 
| task.write | Allows to create, update and delete tasks and jobs. | 
| Webhooks | |
| webhook.read | Allows to read the webhook settings. | 
| webhook.write | Allows to update the webhook settings. | 
OAuth 2.0 clients
CloudConvert supports OAuth 2.0's authorization code grant flow and implicit grant flow to issue access tokens on behalf of users. You can create your OAuth 2.0 client here.
                                Your web or mobile app should redirect users to the following URL:
                                https://cloudconvert.com/oauth/authorize. Access token can be
                                obtained via: https://cloudconvert.com/oauth/token.
                            
Errors and Rate Limiting
                                The CloudConvert API responses with standard HTTP status codes, such as 422
                                (invalid data), 500 (internal server error), 503 (temporary
                                unavailable) or 429 (too many requests). An example response body of an
                                422 is given on the right.
                            
Rate limiting
                                Some endpoints do enforce dynamic rate limiting. These endpoints return the X-RateLimit-Limit
                                and X-RateLimit-Remaining headers. If the limit is reached,
                                429 error is returned and there is a Retry-After header with
                                the time in seconds to wait for the next
                                request.
                            
These endpoints are currently rate limited:
- Creating tasks
- Creating jobs
Failed jobs and tasks
                                Jobs and tasks that completed with an error, do have status set to
                                error. Further information about the error can be obtained via the message
                                and code attributes of the task resource.
                            
Please do not automatically retry tasks. CloudConvert internally already retries tasks if there are retryable errors (such as network errors).
Error Response
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
{
  "message": "The given data was invalid.",
  "code": "INVALID_DATA",
  "errors": {
    "tasks": [
      "The tasks field is required."
    ]
  }
}
Rate Limited Response
HTTP/1.1 429 Too Many Requests
Content-Type: application/json
X-RateLimit-Limit: 1000
X-RateLimit-Remaining: 0
Retry-After: 60
{
  "message": "Too many attempts",
  "code": "TOO_MANY_REQUESTS"
}
Changelog
| 09.07.2025 | Updated mupdf,poppler,7z,inkscape,libreoffice,pdftron,calibreandchromedefault versions. | 
|---|---|
| 15.04.2025 | Updated inkscapedefault version. | 
| 25.02.2025 | Added pdf/a,pdf/ocr,pdf/decrypt,pdf/encrypt,pdf/split-pages,pdf/extract-pagesandpdf/rotate-pagesoperations. | 
| 10.02.2025 | Updated ffmpeg,calibreandghostscriptdefault versions. | 
| 06.01.2025 | Updated ffmpeg,pdftron,poppler,mupdfandlibreofficedefault versions. | 
| 18.09.2024 | Added option page_formatfor capture-website tasks to set a paper format like A4, A3, Letter etc. | 
| Added gifsicleengine for resizing animated GIF files. | |
| 02.09.2024 | Added export/upload tasks to upload output files to any URL via HTTP PUT. | 
| 24.08.2024 | Added ffmpeg_nvidiaengine for GPU based video encoding. | 
| 05.08.2024 | Updated chromeandcalibredefault versions. | 
| 12.07.2024 | New engine pdfiumfor PDF to image conversions, which enables faster and more accurate conversions. | 
| 05.07.2024 | Updated pdftronandarchivetooldefault versions. | 
| 13.06.2024 | Updated pdf2htmlexdefault version. | 
| 27.05.2024 | Updated chromeandmupdfdefault versions. | 
| 08.05.2024 | Updated chromedefault version. | 
| 25.01.2024 | Updated chrome,mupdf,libreofficedefault versions. | 
| 08.01.2024 | Updated ffmpegandpdftrondefault versions. | 
| 19.10.2023 | Updated chromeandpdftrondefault versions. | 
| 24.04.2023 | Updated chrome,imagemagickandmupdfdefault
                                    versions. | 
| 09.03.2023 | Updated pdftrondefault version. | 
| 01.03.2023 | Added a sheetoption to Excel conversions which allows converting only
                                    a specific worksheet by name. | 
| 23.02.2023 | Added experimental support for creating WebVTT files for thumbnailtasks. | 
| 14.02.2023 | Updated calibre,mupdf,ffmpeg,exiftoolandpopplerdefault versions. | 
| 09.02.2023 | Updated libreoffice,inkscapeandpandocdefault versions. | 
| 07.02.2023 | Added new taggingparameter to theexport/s3operation
                                    which allows setting custom S3 tags. | 
| Updated chromedefault version. | |
| 11.11.2022 | Added new timestampparameter to the thumbnail operation: Instead of
                                    automatically selecting meaningful frames you can set a fixed timestamp for creating
                                    the thumbnail. | 
| Updated pdftrondefault version. | |
| 23.08.2022 | Added new parameters to the watermark operation: font_width_percentandimage_width_percentallow it to set the watermark size based on a
                                    percentage of the available space. | 
| 17.08.2022 | Support WEBP output format for thumbnail operations. | 
| Updated ffmpegdefault version to5.1.0. | |
| Updated libreofficedefault version. | |
| 04.08.2022 | Added include_markupsetting to Office to PDF conversions. | 
| Updated calibredefault version. | |
| 22.07.2022 | Updated inkscapedefault version. | 
| Updated mupdfdefault version. | |
| 28.06.2022 | Updated officedefault version. | 
| Updated pdftrondefault version. | |
| 07.06.2022 | Added a new endpoint for synchronous job creation. | 
| Added a redirectquery parameter to the job status endpoint which
                                    makes the response redirect to the export URL. | |
| 19.05.2022 | Add the new watermarkoperation to create watermarks for PDF, image and
                                    video files. Severalconvertoperations have new watermark parameters. | 
| Added fitparameter to video conversions. It allows adjusting the
                                    method of resizing videos. | |
| Updated popplerdefault version. | |
| 11.05.2022 | Deprecation of the bclengine. It has been replaced by the superiorpdftron-pdf2wordengine. | 
| 21.04.2022 | Updated default versions of libreoffice,inkscape,ffmpegandqpdf. | 
| 13.04.2022 | Changed the default engine for PDF to Office conversions to pdftron-pdf2word,pdftron-pdf2excelandpdftron-pdf2powerpoint.
                                    Read more about this in our blog post. | 
| 30.03.2022 | Release of the Signed URL feature. Signed URLs allow converting files on demand only using URL query parameters. Read the full documentation about this feature for details. | 
| 28.03.2022 | Changed the base URL for the synchronous
                                        API endpoints to https://sync.api.cloudconvert.com(endpoints to wait for job/task
                                    completion). The old endpoints will continue to work
                                    until further notice. We will notify affected customers when this changes. | 
| 24.02.2022 | Added channelsandsample_rateoptions for audio
                                    conversions. | 
| 21.02.2022 | Added flatten_signaturesoption for optimize PDF operation. | 
| Updated fontforgedefault version. | |
| Added woff2converter for TTF -> WOFF2. | |
| 03.01.2022 | API v1 shutoff as announced by the deprecation timeline. | 
| Updated default version of chrometo version97. | |
| 27.12.2021 | Updated default version of poppler. | 
| 02.12.2021 | Add possibility to encrypt PDFs via PDF -> PDF conversions. | 
| 30.11.2021 | Updated default versions of calibre,exiftool,mozjpeg,pandocandpngquant. | 
| 19.11.2021 | Updated ffmpegdefault version to4.4.1. | 
| Updated mupdfdefault version to1.19.0. | |
| Updated imagemagickdefault version to7.1.0. | |
| Added inkscapeversion to1.1.1. | |
| 17.11.2021 | Added the bookmarksoption to DOC/DOCX -> PDF conversions to
                                    automatically create bookmarks from headings. | 
| 04.11.2021 | Add dynamic webhooks when creating jobs. | 
| 29.04.2021 | Add the raw import method. | 
| 08.03.2021 | Updated graphicsmagickdefault version to1.3.36. | 
| Updated pdf2htmlexdefault version to0.18.8. | |
| 05.03.2021 | Updated imagemagickdefault version to7.0.11. | 
| Updated 3heightsdefault version to6.12. | |
| Updated popplerdefault version to20.09. | |
| Updated ffmpegdefault version to4.3.2. | |
| Updated chromedefault version to90.
                                    Starting from Chrome version 90, thedevice_scale_factordefaults to2which creates HDPI / retina screenshots. For the old behavior, setdevice_scale_factorto1. | |
| Updated inkscapedefault version to1.0.2. | |
| Updated libreofficedefault version to7.0.4. | |
| 03.03.2021 | Added the new metadata/write operation to write metadata. | 
| Release of the .NET SDK. | |
| 05.02.2021 | Added the use_print_areassetting for Excel conversions. When enabling
                                    this setting, it only converts the selected print area of a worksheet. | 
| 29.01.2021 | Added a new device_scale_factorsetting for HTML -> PNG/JPG
                                    conversions. It allows to create "retina" / hDPI screenshots by increasing the value
                                    to 2. | 
| 18.01.2021 | Added a new transparent_backgroundsetting for HTML -> PNG conversions
                                    to use transparent instead of white background. | 
| 17.11.2020 | New chromedefault version88. | 
| 30.10.2020 | Updated the default chromeversion to87. Deprecated
                                    versions80and older. | 
| Updated the default libreofficeversion to7.0.2. | |
| Updated the default inkscapeversion to1.0.1. | |
| 13.10.2020 | Add the base64 import method. | 
| 8.10.2020 | Add Metadata operation to extract file metadata such as page numbers or image/video resolution. | 
| 16.9.2020 | There is a new timeoutparameter for tasks. It allows to set a timeout
                                    in seconds after the task will be automatically cancelled. | 
| 20.6.2020 | We have added the new Thumbnail API which allows to create thumbnails of nearly any video, documents or image format. | 
| We have upgraded the libreofficeandimagemagickengine to
                                    versions. | |
| 5.6.2020 | The chromeengine was updated. Additionally, we have addedheader_templateandfooter_templateoptions to enable custom headers/footers. | 
| 8.3.2020 | We have added the option to assign webhook endpoints to specific API keys. This makes it easier to separate production, staging and testing environments. You can assign API keys to webhooks in your webhook settings. | 
| 7.1.2020 | Updated the default engine versions of imagemagick,libreoffice,calibreand3heights. | 
| Release of API v2. | |
| 21.12.2019 | Upload requests from import/uploadtasks do now require to follow
                                    redirects using theLocationheader. Most HTTP clients should do this
                                    by default. We have updated the documentation regarding this. | 
| 16.11.2019 | Added /tasks/{ID}/waitand/jobs/{ID}/waitendpoints.
                                    These endpoints can be used to wait until a task/job completes. | 
| 5.11.2019 | New chromeversion78. Chrome versions below77got deprecated. | 
| 1.10.2019 | New option archive_multiple_filesforexport/urltasks
                                    allow it to automatically ZIP multiple output files. | 
| 12.9.2019 | Add operation to create archives. | 
| 9.9.2019 | The default engine for svgtopng/jpgwas
                                    changed tochrome. | 
| The default engine for pdftojpg/tiffwas
                                    changed topoppler. | |
| 3.9.2019 | The payloadattribute is not included in task responses any more by
                                    default. It can be shown manually using the?include=payloadquery
                                    parameter. | 
| 21.8.2019 | Upgraded the popplerengine to version0.71.0. | 
| 13.8.2019 | Upgraded the mupdfengine to version1.16.1. | 
| 7.8.2019 | Added optimize PNG and JPG feature. | 
| 6.8.2019 | Added new optimizetask endpoint with PDF compressing feature. | 
| 31.7.2019 | Added versions 76and77of thechromeengine. | 
| The officedefault version was updated to2019. | |
| 15.7.2019 | The calibredefault version was updated to3.45. | 
| 11.7.2019 | Added support for potandpotxfiles. | 
| Jobs do now have an optional tagparameter. You can use it to link
                                    CloudConvert jobs with IDs withing your application scope. | |
| 28.6.2019 | The ghostsriptdefault version was updated to9.27.
                                    The old version was marked as deprecated. | 
| We now automatically sent deprecation warning mails if you are using an engine that was marked as deprecated. | |
| 23.6.2019 | By default we hide now all credentials in API responses (such as GET /v2/task/ID). | 
| 19.6.2019 | We have added a ignore_erroroption when creating jobs. This allows to
                                    continue jobs even if specific tasks are failing. | 
| 27.5.2019 | Preview release of API v2. |