API (Application Programming Interface)


The EditingTools.io API can be used to programmatically generate, convert and progress data. This API provides access to a variety of different resources. The API is accessible through a REST interface. Unless noted otherwise, POST requests are recommended. Request parameters are used to pass information to the API, results are returned in JSON. Request parameters must be UTF-8 encoded; results are also encoded in UTF-8. HTTP errors codes are used to signal errors. Authentication is based on fixed keys, and data transport is secured by SSL.



How to get access to the API

Step one: Sign up for an Account
Step two: Save your App's key and tokens and keep them secure
To make any request to the API, you must first create an account. After login you can generate your personal APIKEY.
Before using the API, we strongly encourage you to understand our policy, and to review our list of restricted use cases.

Request API Key: Send Mail


Make your first request

Once you have access and an api key, you’re ready to get started using the API!
curl -u "apikey:{YOUR_API_KEY}" -X {request_method} "{url}/{method}"

Send your first request to https://api.editingtools.io/ to check you api key and to get a list of all available api tools. Pass your api key to verify your request. Use apikey for the username and the value of {YOUR_API_KEY} as the password. For example, if your API key is AznhrKQyvBFFaZbtF6 in the service credentials, include the credentials in your call like this: -u "apikey:AznhrKQyvBFFaZbtF6".

curl -u "apikey:{YOUR_API_KEY}" -X GET "https://api.editingtools.io/"

Response (Example):
{
    "code": "200",
    "status": "OK",
    "data": {
        "api_list": [
            "watermark",
            "thumbnail",
            "edl",
            "..."
        ]
    }
}


Data handling

Results are returned in JSON encoded in UTF-8. Generated Datasets will be inside data tag on default. Request parameters must be UTF-8 encoded.



Error handling

This api service uses standard HTTP response codes to indicate whether a method completed successfully. HTTP response codes in the 2XX range indicate success. A response in the 4XX range is some sort of failure, and a response in the 5XX range indicates an internal system error that cannot be resolved by the user. The following error codes are used by the API:



Generate your first graphic

Lets generate a watermark graphic with a resolution of 1920x1080 and the text "INTERNAL USE ONLY". To attach your settings, set HEADER to Content-Type: application/json and send your data in JSON format e.g. --data-raw '{"resolution":"1920x1080","text":"INTERNAL USE ONLY"}'. Default settings will be used for all unset attributes.
curl -u "apikey:{YOUR_API_KEY}" -X POST "https://api.editingtools.io/watermark" --header 'Content-Type: application/json' --data-raw '{"resolution":"1920x1080","text":"INTERNAL USE ONLY"}'

Response (Example):
{
    "code": "200",
    "status": "OK",
    "data": {
        "created": "2020-11-29 00:03:55",
        "message": "Success",
        "file_url": "https:\/\/editingtools.io\/path\/to\/file\/watermark_123.png",
        "file_size": 15120,
        "file_hash": "13ba0a9e943f32ac4782d98fba36249b"
    }


You can download the generated file with wget or curl or embed it directly into your app from file_url. The generated file will be online for maximum one hour. After download you can validate the file with MD5 HASH file_hash.
curl "https://editingtools.io/path/to/file/watermark_123.png" --output watermark.png


In case you want to save the output in the first request, you can add stream_output attribute with value true. Also define the output path e.g. --output watermark.png. In case the process fails, output will be send as JSON. So make sure to handle status codes correctly.
curl -u "apikey:{YOUR_API_KEY}" -X POST "https://api.editingtools.io/watermark" --header 'Content-Type: application/json' --data-raw '{"stream_output":true,resolution":"1920x1080","text":"INTERNAL USE ONLY"}' --output watermark.png


API rate limits

There is a Requests per 15-minute window rate limit, a day limit and a total request limit. If you need higher limits, let us know. Limits can be changed.



API language

English only