Version: May 2025

User Processes

This is the API documentation to user related "Processes" from various tools. Only processes started with the account associated with the API key can be checked.

Get Processes

This endpoint can be used to get a list of all processes.

Endpoint

GET https://api.editingtools.io/v2/processes

Headers

Content-Type: multipart/form-data

Specifies the format of the request body.

Authorization: Basic <base64EncodedString>

Authentication credential.

cURL Request Example

curl -X GET https://api.editingtools.io/v2/processes \
-u "apikey:YOUR_API_KEY" 

Responses

Field Type Description
code String HTTP status code.
status String A descriptive message about the update.
timestamp String Server time of the request (ISO 8601).
data Object An object containing details about the file.
Field Type Description
processId String Unique identifier of the process.
created String Timestamp of process creation (ISO 8601).
lastUpdate String Timestamp of last process update (ISO 8601).
status String Status string of process
label String Description of status.
progress String Progress in Percent. (Only returned if a value is provided by the tool)
fileId String This is the unique identifier of the file. It can be used to locate files via the Files Endpoint. (Only returned if a file was created)
fileName String Filename of generated file. (Only returned if a file was created)
fileUrl String Download path of file. (Only returned if a file was created)
fileExpires String Timestamp until when the file is available (ISO 8601).

Success (HTTP 200 OK)

If the process list is successfully loaded, the API will return a 200 status code with a JSON object.

Example

{
    "code": 200,
    "status": "OK",
    "timestamp": "2025-05-21T17:07:57Z",
    "data": [
        {
            "processId": "TEST003",
            "created": "2025-05-08T18:37:11Z",
            "lastUpdate": "2025-05-08T18:38:32Z",
            "status": "in_progress",
            "label": "The process is still running.",
            "progress": "12%"
        },
        {
            "processId": "TEST002",
            "created": "2025-05-08T18:30:00Z",
            "lastUpdate": "2025-05-08T18:30:10Z",
            "status": "finished",
            "label": "The Process is finished.",
            "fileId": "f12A34C00",
            "fileName": "Trailer.zip",
            "fileUrl": "https://editingtools.io/download/demo/path/Trailer.zip",
            "fileExpires": "2025-05-05T10:00:00Z"
        },
        {
            "processId": "TEST001",
            "created": "2025-05-08T18:21:00Z",
            "lastUpdate": "2025-05-08T18:21:08Z",
            "status": "failed",
            "label": "The Process failed."
        }
    ]
}

The generated files can be downloaded using wget or curl, or it can be embedded directly into your app from fileUrl. Note that the generated file will only be hosted online for a limited time.

Error Responses

If the request failed or no processes are found, a response like this could be given:

{
    "code": "404",
    "status": "No processes were found.",
    "timestamp": "2025-05-21T17:07:57Z"
}

Get Processes by Status

This endpoint can be used to get a list of all processes with a specific status.

Endpoint

GET https://api.editingtools.io/v2/processes/status/{statusCode}

Replace {statusCode} with the status category.

Headers

Content-Type: multipart/form-data

Specifies the format of the request body.

Authorization: Basic <base64EncodedString>

Authentication credential.

Path Parameters

Parameter Type Description
statusCode String The category of the status. Possible values:
  • finished — Indicates a process that has completed successfully.
  • failed — Indicates a process that has encountered an error and stopped.
  • inProgress — Indicates a process that is currently ongoing.

cURL Request Example

curl -X GET https://api.editingtools.io/v2/processes/status/{statusCode} \
-u "apikey:YOUR_API_KEY" 

Replace {statusCode} with the status category.

Responses

Field Type Description
code String HTTP status code.
status String A descriptive message about the update.
timestamp String Server time of the request (ISO 8601).
data Object An object containing details about the file.
Field Type Description
processId String Unique identifier of the process.
created String Timestamp of process creation (ISO 8601).
lastUpdate String Timestamp of last process update (ISO 8601).
status String Status string of process
label String Description of status.
progress String Progress in Percent. (Only returned if a value is provided by the tool)
fileId String This is the unique identifier of the file. It can be used to locate files via the Files Endpoint. (Only returned if a file was created)
fileName String Filename of generated file. (Only returned if a file was created)
fileUrl String Download path of file. (Only returned if a file was created)
fileExpires String Timestamp until when the file is available (ISO 8601).

Success (HTTP 200 OK)

If the process list is successfully loaded, the API will return a 200 status code with a JSON object.

Example

Response for the search of processes in Progress.

{
    "code": 200,
    "status": "OK",
    "timestamp": "2025-05-21T17:07:57Z",
    "data": [
        {
            "processId": "TEST004",
            "created": "2025-05-08T18:37:16Z",
            "lastUpdate": "2025-05-08T18:38:32Z",
            "status": "in_progress",
            "label": "The process is still running.",
            "progress": "3%"
        },{
            "processId": "TEST003",
            "created": "2025-05-08T18:37:11Z",
            "lastUpdate": "2025-05-08T18:38:32Z",
            "status": "in_progress",
            "label": "The process is still running.",
            "progress": "12%"
        }
    ]
}

Error Responses

If the request failed or no processes are found with the choosen category, a response like this could be given:

{
    "code": "404",
    "status": "No processes were found.",
    "timestamp": "2025-05-21T17:07:57Z"
}

Get Process Details

This endpoint can be used to check the details of a process. Use the processId for the request.

Endpoint

GET https://api.editingtools.io/v2/process/{processId}

Replace {processId} with the unique ID of the process.

Headers

Content-Type: multipart/form-data

Specifies the format of the request body.

Authorization: Basic <base64EncodedString>

Authentication credential.

Path Parameters

Parameter Type Description
processId String The unique identifier of the process.

cURL Request Example

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

Responses

Field Type Description
code String HTTP status code.
status String A descriptive message about the update.
timestamp String Server time of the request (ISO 8601).
data Object An object containing details about the file.
Field Type Description
processId String Unique identifier of the process.
created String Timestamp of process creation (ISO 8601).
lastUpdate String Timestamp of last process update (ISO 8601).
status String Status string of process
label String Description of status.
progress String Progress in Percent. (Only returned if a value is provided by the tool)
fileId String This is the unique identifier of the file. It can be used to locate files via the Files Endpoint. (Only returned if a file was created)
fileName String Filename of generated file. (Only returned if a file was created)
fileUrl String Download path of file. (Only returned if a file was created)
fileExpires String Timestamp until when the file is available (ISO 8601).

Success (HTTP 200 OK)

If the process is successfully loaded, the API will return a 200, 202 or 422 status code with a JSON object.

Example 1 - Process not completed

If the process is still running, a response like this could be given:

{
    "code": "202",
    "status": "Accepted",
    "timestamp": "2025-05-01T10:04:10Z",
    "data": {
        "created": "2025-05-01T10:00:00Z",
        "lastUpdate": "2025-05-01T10:01:00Z",
        "status": "in_progress",
        "label": "The process is still running."
    }
}

Example 2 - Process completed

The download path will be displayed once the process is complete.

{
    "code": "200",
    "status": "OK",
    "timestamp": "2025-05-01T10:00:00Z",
    "data": {
        "created": "2025-05-01T10:00:00Z",
        "lastUpdate": "2025-05-01T10:05:20Z",
        "status": "finished",
        "label": "The Process is finished."
        "fileId": "f12A34C00",
        "fileName": "Trailer.zip",
        "fileUrl": "https://editingtools.io/download/demo/path/Trailer.zip",
        "fileExpires": "2025-05-05T10:00:00Z"
    }
}

The generated file can be downloaded using wget or curl, or it can be embedded directly into your app from fileUrl. Note that the generated file will only be hosted online for a limited time.

Error Responses

If the process failed, a response like this could be given:

{
    "code": "422",
    "status": "Unprocessable Entity",
    "timestamp": "2025-05-01T10:04:10Z",
    "data": {
        "created": "2025-05-01T10:00:00Z",
        "lastUpdate": "2025-05-01T10:05:20Z",
        "status": "failed",
        "label": "The Process failed."
    }
}

Download File

After the process is successfully completed, the file can be downloaded using the values returned in the process response under fileUrl and fileName.

cURL Request Example (macOS or Linux)

Example to download the file to the Desktop. Uses -o to specify the output file path.

curl -o ~/Desktop/{fileName} "{fileUrl}"
	                        
curl -o ~/Desktop/Trailer.zip "https://editingtools.io/download/demo/path/Trailer.zip"

cURL Request Example (Windows with PowerShell)

curl -o "$env:USERPROFILE\Desktop\{fileName}" "{fileUrl}"
	                        
curl -o $env:USERPROFILE\Desktop\Trailer.zip "https://editingtools.io/download/demo/path/Trailer.zip"

cURL Request Example (Windows Command Prompt with cURL installed)

curl -o "%USERPROFILE%\Desktop\{fileName}" "{fileUrl}"
	                        
curl -o %USERPROFILE%\Desktop\Trailer.zip "https://editingtools.io/download/demo/path/Trailer.zip"

Python3 Request Example

import os
import urllib.request

name = "Trailer.zip"
url = "https://editingtools.io/download/demo/path/Trailer.zip"

# Construct the path to the Desktop for example
local_path = os.path.join(os.path.expanduser("~"), "Desktop", name)

# Download the file
try:
    urllib.request.urlretrieve(url, local_path)
    print(f"File downloaded successfully and saved to: {local_path}")
except Exception as e:
    print(f"Failed to download file: {e}")

wget Request Example (macOS or Linux)

Example to download the file to the Desktop. Uses -O to specify the output file path.

wget -O ~/Desktop/{fileName} "{fileUrl}"

wget -O ~/Desktop/Trailer.zip "https://editingtools.io/download/demo/path/Trailer.zip"

wget Request Example (Windows with PowerShell)

wget -O "$env:USERPROFILE\Desktop\{fileName}" "{fileUrl}"

wget -O "$env:USERPROFILE\Desktop\Trailer.zip" "https://editingtools.io/download/demo/path/Trailer.zip"

wget Request Example (Windows Command Prompt with wget installed)

wget -O "%USERPROFILE%\Desktop\{fileName}" "{fileUrl}"

wget -O "%USERPROFILE%\Desktop\Trailer.zip" "https://editingtools.io/download/demo/path/Trailer.zip"

Delete Process

This endpoint is used to delete a process. Only successfull or failed processes can be deleted. The process is identified by its processId in the URL path.

(i) Deleting a process will not delete generated files. The files can still be found by using the User Files API.

Endpoint

DELETE https://api.editingtools.io/v2/process/{processId}

Replace {processId} with the unique process ID.

Headers

Content-Type: application/json

Specifies the format of the request body.

Authorization: Basic <base64EncodedString>

Authentication credential using `YOUR_API_KEY`.

Path Parameters

Parameter Type Description
processId String The unique identifier of the process.

cURL Request Example

curl -X DELETE https://api.editingtools.io/v2/process/{processId} \
  -u "apikey:YOUR_API_KEY" 

Replace {processId} with the process id.

Responses

Success (HTTP 200 OK)

If the process was deleted successfully, the API will return a 200 OK status code with a JSON object confirming the deletion.

{
    "code": "200",
    "status": "The process has been successfully deleted.",
    "timestamp": "2025-01-01T19:10:00Z"
}

Error Responses

Error responses will typically include an appropriate HTTP status code and a JSON body with an error message.

{
    "code": "400",
    "status": The process could not be deleted.",
    "timestamp": "2025-01-01T19:10:00Z"
}

Endpoint URL

https://api.editingtools.io/v2/processes

Alternative Endpoint URL:

https://api.editingtools.io/v2/process

Authentication

This API requires Basic Authentication. The "Authorization" header should be set with the Base64 encoded string of "apikey:YOUR_API_KEY".

Authorization: Basic <base64Encoded(apikey:YOUR_API_KEY)>

Data Handling

Request parameters must be UTF-8 encoded. Results are returned as UTF-8-encoded JSON. By default, datasets will be inside the data tag.

Error Handling

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

Code Description
200 OK. The request was successful.
201 Created. The entity was created.
202 Accepted. The request was accepted.
400 Bad request. Please check error message.
401 Unauthorized: Username or Api Key is not valid.
402 Upgrade Required: This feature requires an active Pro subscription.
403 Forbidden: The request is understood, but it has been refused or access is not allowed.
404 Not found: The URI requested is invalid or the resource does not exist.
422 Unprocessable Entity. A process failed.
429 Too Many Requests. Try again in some seconds.
500 Internal Server Error. Something is broken.
502 Bad Gateway. API is down.
503 Service Unavailable. API is up but overloaded with requests.
504 Gateway Timeout: API is up but requests reached timout.

Rate Limits

To prevent abuse and spam, the API has limits at various levels. If you receive error code 429 (Too Many Requests), it means you have reached a rate limit.

If you receive a rate limit error, you should stop making requests temporarily. If the retry-after response header is present, you should not retry your request until after that many seconds has elapsed. To prevent rate-errors, we recommend to wait 300 ms to 800 ms between requests to the same endpoint.

Also there is a general limit to the api and all requests made:

Limit Requests
General limit per minute 50
General limit per hour 1000
Recommended wait time between requests > 200 ms
Recommended wait time between requests to one endpoint > 600 ms

The general limits per minute and per hour can be changed upon request.

Upload Limits

The maximum upload size for any single request — including file uploads — is 100 MB. This is a hard limit and applies regardless of your API plan or usage level.

If your request exceeds this size, it will be rejected before reaching our servers. To ensure successful uploads:

  • Make sure uploaded files are under 100 MB.
  • For larger media, consider splitting files before upload.
  • Requests close to the limit may still fail due to encoding or header overhead.

Timezone

This API endpoint returns the time as an ISO 8601 timestamp in the UTC time zone. These timestamps look like 2025-01-10T15:05:06Z.

Localization and Languages

This API supports multiple languages. For instance, it can display the text of a status message in a different language.

Accept-Language: LANGUAGE

Example

To set the preferred response language to Spanish, add this header:

Accept-Language: es

cURL Example

To apply the language in a cURL request, add the following header:

-H "Accept-Language: es"

Available Languages

The following list contains all the currently available languages. Note that setting a language header does not guarantee a translated response, as not all texts are translated. If no language is set or a translation is unavailable, the default response will be in English.

Code Language
en English
de German
fr French
es Spanish
ru Russian
it Italian
el Greek
pl Polish
pt Portuguese
lt Lithuanian
ko Korean
ja Japanese
zh Chinese
id Indonesian
tr Turkish
nl Dutch
ro Romanian
fi Finnish
cs Czech
hu Hungarian
ar Arabic
nb Norwegian Bokmål
sk Slovak
sl Slovenian
sv Swedish
lv Latvian
et Estonian
bg Bulgarian
uk Ukrainian
da Danish