API Documentation

February 22, 2026 ยท View on GitHub

eldim exposes an HTTP API for all servers to upload data. Here you can find all the currently supported calls to this API:

GET /

By sending a GET request to /, eldim will either print some information about it, or nothing, depending on the value of servertokens in the configuration file.

POST /api/v1/file/upload/

By sending a POST request to /api/v1/file/upload/, you can upload files to eldim. Currently there are two parameters that are required:

filename

This is of type string, and must contain the desired name of the file. Spaces or symbols that are not normal for files are not recommended, since they may not be supported by the backends. Filenames containing null bytes, path traversal components (. or ..), or empty path segments (such as leading, trailing, or consecutive slashes) will be rejected with HTTP 400.

file

This POST parameter is the actual file. Send the entire file here that has to be uploaded here.

This API call will return HTTP 200 and print Ok if the upload succeeded. It will return HTTP 409 if the same file is already being uploaded by another request to the same eldim instance. Any other HTTP Status Code or message is an error.

Note

As the requested filename may only exist (for whatever reason) only in some backends / buckets and not all of them, the HTTP 409 error is likely not retriable and a new filename will probably have to be set.

password

This POST parameter is a string that specifies a password, which will be checked against eldim's clients.yml and will identify hosts based on their password key, instead of their IP Address. Password checks take precedence over IP Address checks. The password must be between 32 and 128 characters for security reasons.