Getting started
// You'll find cURL examples, HTTP response examples,
// and other notes in this column.
The LobFile API will allow you (or an application you're writing) to automate the management of your files and other account features. The examples provided on the right column will be cURL.
To use this API, you need an API Key. Access to the API is free to anyone, no matter what account tier you have. Your API key can be found on the
my-account page once you have created an account and logged in. Be sure to verify your account's Email address, otherwise requests will fail with an unauthorised error.
If you find this service useful, or if you need more performance out of LobFile (like faster downloads or more account space), please consider becoming a
Patreon member.
rate limits
// HTTP response header example, no response body.
HTTP/1.1 429 Too Many Requests
LobFile is configured with a global rate limit of 4 requests per second per IP. If you exceed this rate limit you will receive a
HTTP1.1 429 Too Many Requests
response with no response body.
Please be respectful with your use of the API in your integration and use case.
api requests
// Example of valid API request.
curl \
-H 'X-API-Key: TheExampleAPIKey' \
-H 'Content-Type: application/json' \
-d '{"file":"5l1D"}' \
https://lobfile.com/api/v3/rest/toggle-favorite
The only API endpoint that requires POST form data in the request is UPLOAD. All other API endpoints require you to send JSON requests. Be sure to use the examples as an additional guide.
api responses
// Example of successful API request response.
HTTP/1.1 200 OK
{
"success": true,
"url": "https://lobfile.com/file/5l1D.png"
}
// Example of a failed API request response.
HTTP/1.1 401 Unauthorized
{
"success": false,
"error": "Invalid API key"
}
// Example of a failed API request response, no response body.
HTTP/1.1 500 Internal Server Error
Foremost: All HTTP requests will respond with the most relevant HTTP status code. A response with
HTTP1.1 200 OK
means the request was fully successful, and that the JSON response from the server will be valid.
API responses are JSON objects. Note that
the server will not always be able to provide a valid JSON response. You must plan for cases where the API response may not include a valid JSON object or a JSON object at all.
All responses that contain any valid JSON will include a "success" boolean field. In some cases, an "error" JSON field will be present if there was a problem. Otherwise, you can expect whatever else is documented for that API endpoint.
authentication
// Example of X-API-Key HTTP header authentication:
curl \
-H 'X-API-Key: TheExampleAPIKey' \
-F 'file=@/path/to/file.ext' \
-X POST \
https://lobfile.com/api/v3/upload.php
// Example of unauthorised response.
HTTP/1.1 401 Unauthorized
{
"success": false,
"error": "Invalid API key"
}
All HTTP requests will require you to provide an API Key for authentication. This can be done by sending a HTTP Header:
X-API-Key: TheExampleAPIKey
with your request.
Requests that have failed authentication will yield a HTTP 401 Unauthorized
response.
UPLOAD
// Example of uploading a file:
curl \
-H 'X-API-Key: TheExampleAPIKey' \
-F 'file=@/path/to/file.ext' \
-X POST \
https://lobfile.com/api/v3/upload.php
// Response
HTTP/1.1 200 OK
{
"success": true,
"url": "https://lobfile.com/file/5l1D.png"
}
// Example of uploading a file with the optional sha_256 param:
curl \
-H 'X-API-Key: TheExampleAPIKey' \
-F 'file=@/path/to/file.ext' \
-F 'sha_256=64characterhashgoeshere' \
-X POST \
https://lobfile.com/api/v3/upload.php
// Response
HTTP/1.1 500 Internal Server Error
{
"success": false,
"error": "Failed to get hash of file"
}
Endpoint:
https://lobfile.com/api/v3/upload
Request Method: POST
Request Parameter Type: HTTP FORM DATA
Purpose: Upload a file to LobFile.
Notes: Upload limitations such as file size, file count, etc. will depend on your account tier, login to LobFile and visit the
my-account page to see your specific account limits.
Currently, all file extensions are allowed, however certain extensions are restricted and will automatically be changed upon upload. Duplicate uploads will simply return the existing link for your account. One file per HTTP request.
POST QUERY PARAMETERS
Field | Type | Description |
---|---|---|
file | multipart/form-data | The file contents you want to upload. |
sha_256 | String | (optional) Verifies that the file the server stored matches your provided SHA-256 hash. |
RESPONSE JSON
Field | Type | Description |
---|---|---|
success | Bool | Request result |
url | String | Full URL to the newly uploaded file. |
error | String | (on error) A short message to indicate what went wrong. |
GET-FILE-LIST
// Example retrieving the account file list:
curl \
-H 'X-API-Key: TheExampleAPIKey' \
-X GET \
https://lobfile.com/api/v3/rest/get-file-list
Endpoint:
https://lobfile.com/api/v3/rest/get-file-list
Request Method: GET
Request Parameter Type: NONE
Purpose: Retrieve the complete list of files for the account associated with the API key provided.
Note: If you are currently logged in to LobFile on this browser, you can click the link above and visit the endpoint to see the output directly (without having to provide the X-API-Key header).
QUERY PARAMETERS
Field | Type | Description |
---|---|---|
None |
RESPONSE JSON
Field | Type | Description |
---|---|---|
success | Bool | Request result |
error | String | (on error) A short message to indicate what went wrong. |
preferred_domain | String | The domain to be used for building links to files (https://preferred_domain/file/name). |
show_file_extensions | Bool | If the account is configured to include the file extension in returned links. |
file_list[n][name] | String | The unique file name/ID of this file. |
file_list[n][extension] | String | The file extension of this file. |
file_list[n][size] | Integer | The file size in bytes. |
file_list[n][hits] | Integer | Number of downloads this file has. |
file_list[n][sha256] | String | The SHA256 of this file. |
file_list[n][is_favorite] | Bool | Whether the file is marked as a favorite or not. |
file_list[n][time_added] | String | When the file was uploaded. |
file_list[n][last_accessed] | String | When the file was most recently downloaded. |
TOGGLE-FAVORITE
// Example of toggling a file as a 'favorite'.
curl \
-H 'X-API-Key: TheExampleAPIKey' \
-H 'Content-Type: application/json' \
-d '{"file":"5l1D"}' \
-X POST \
https://lobfile.com/api/v3/rest/toggle-favorite
Endpoint:
https://lobfile.com/api/v3/rest/toggle-favorite
Request Method: POST
Request Parameter Type: JSON
Purpose: Mark a specific file as a "favorite".
Note: Files marked as a "Favorite" are excluded from automatic deletion by the "Continuous Uploading" account setting and appear in file-management with a gold star. This endpoint is an implicit toggle operation, rather than an explicit adjustment. The response will also indicate the new "favorite" state of the file.
JSON QUERY PARAMETERS
Field | Type | Description |
---|---|---|
file | String | The file to toggle importance on (do not include file extension, just the unique name). |
RESPONSE JSON
Field | Type | Description |
---|---|---|
success | Bool | Request result |
error | String | (on error) A short message to indicate what went wrong. |
file | String | The file name/id that was adjusted. |
is_favorite | Bool | The new 'favorite' state of the file. |
DELETE-FILES
// Example of deleting a single file.
curl \
-H 'X-API-Key: TheExampleAPIKey' \
-H 'Content-Type: application/json' \
-d '["5l1D"]' \
-X DELETE \
https://lobfile.com/api/v3/rest/delete-files
// Example of deleting multiple files at once.
curl \
-H 'X-API-Key: TheExampleAPIKey' \
-H 'Content-Type: application/json' \
-d '["PduRkgR8","9qspq67Q"]' \
-X DELETE \
https://lobfile.com/api/v3/rest/delete-files
Endpoint:
https://lobfile.com/api/v3/rest/delete-files
Request Method: DELETE
Request Parameter Type: JSON
Purpose: Delete a file from the account.
Note: Files deleted from a LobFile account immediately become unavailable for download.
JSON QUERY PARAMETERS
Field | Type | Description |
---|---|---|
N/A | List | A JSON encoded list of files to delete. See the example! |
RESPONSE JSON
Field | Type | Description |
---|---|---|
success | Bool | Request result |
affected_files | List | A list of files that were successfully deleted.. |
GET-ACCOUNT-INFO
// Example of fetching account info.
curl \
-H 'X-API-Key: ExampleAPIKey' \
https://lobfile.com/api/v3/rest/get-account-info
Endpoint:
https://lobfile.com/api/v3/rest/get-account-info
Request Method: GET
Request Parameter Type: NONE
Purpose: Retrieve account information.
Note: If you are currently logged in to LobFile on this browser, you can click the link above and visit the endpoint to see the output directly (without having to provide the X-API-Key header).
QUERY PARAMETERS
Field | Type | Description |
---|---|---|
None |
RESPONSE JSON
Field | Type | Description |
---|---|---|
success | Bool | Request result |
account_info[email] | String | Associated account's Email address as stored. |
account_info[level] | String | Associated account's current level (as per data from Patreon). |
account_info[level_upgradable] | Bool | Whether this account can be upgraded to a larger tier on Patreon. |
account_info[api_key] | String | The account's API key (you probably used this as part of the request). |
account_info[time_created] | String | The date and time that the account was created (UTC). |
account_limits[space_quota] | Integer | The maximum allowed size of the associated account in bytes. |
account_limits[slots_quota] | Integer | The maximum number of active files allowed at once. |
account_limits[max_file_size] | Integer | The maximum allowed file size (of a single file). |
account_limits[max_file_download_speed] | Integer | The max download speed (in megabits per second) of files on the associated account. |
account_usage[space_used] | Integer | The amount of space the associated account is in bytes. |
account_usage[slots_used] | Integer | The number of active files. |
GET-ACCOUNT-SETTINGS
// Example of fetching account info.
curl \
-H 'X-API-Key: ExampleAPIKey' \
https://lobfile.com/api/v3/rest/get-account-settings
Endpoint:
https://lobfile.com/api/v3/rest/get-account-settings
Request Method: GET
Request Parameter Type: NONE
Purpose: Retrieve account settings.
Note: If you are currently logged in to LobFile on this browser, you can click the link above and visit the endpoint to see the output directly (without having to provide the X-API-Key header).
QUERY PARAMETERS
Field | Type | Description |
---|---|---|
None |
RESPONSE JSON
Field | Type | Description |
---|---|---|
success | Bool | Request result |
account_settings[preferred_domain_value] | String | The domain to be used to build links ("Default Link Domain"). |
account_settings[return_file_extension_value] | Bool | If the account is configured to include the file extension in URLs ("Include Extensions"). |
account_settings[continuous_uploading_value] | Bool | If the account is configured to delete the oldest files to make room for the newest files, excluding all favorite files ("Continuous uploading"). |
account_settings[preferred_filename_length_value] | Integer | The configured desired filename length ("Filename Length"). |
account_settings[inactivity_auto_delete_days_value] | Integer | Automatically delete files that haven't been accessed in x number of days, excluding all favorite files. ("Auto Delete Inactive Files"). |
is_patreon_member | Bool | Is the account a Patreon member? |