API Documentation
API Credentials
You need an Account to get an API Key. Just register on MirrorAce to get one.
RegisterAPI Documentation
- General
- Overview
- Error Handling
- Authentication
- Authorize
- Disable Access Token
- Files
- Files Upload
- Files Info
- Folders
- Folders Create
- Folders Listing
Overview
The file upload API is an interface which can be used in your own applications to securely upload, manage and download files externally from this website.
API compatibility
This API will evolve over time when access to other data within the system is made available. However, none of the current endpoints or response values will change. You can write your integration code knowing that it will not be affected by future updates unless there is a bug or security fix.
More functionalities will be added soon.
SSL/HTTPS recommended
All requests to the API requires SSL.
UTF-8 encoding
Every string passed to and from the API needs to be UTF-8 encoded.
HTTP Method
All methods are done using POST unless otherwise stated.
Date format
All date/times are based on UTC timezone.
All date/times in the API are strings in the following format:
Y-m-d H:i:s
For example:
2024-11-13 09:02:34
File size
All file sizes are provided in bytes.
1024 Bytes is equal to 1 Megabytes in our system.
API Path
All requests are sent to the follow API host:
https://koramaup.com/api/v2/
Error handling
Errors are returned using standard HTTP error code syntax. Any additional information is included in the body of the return call, JSON-formatted.
Standard API errors
Error Code: | Description: |
---|---|
400 | Bad input parameter. Response error should show which one and why. |
401 | Bad or expired token. To fix, you should re-authenticate the user. |
404 | File not found at the provided path. |
405 | Request method not expected (generally should be GET or POST). |
429 | Maximum API request limit reached. Try to reduce the amount of requests or look at raising this via your web server configuration. |
5xx | Server error. See full list here. |
Sample JSON Response:
{
"status": "error",
"response": "Could not authenticate user. The username and password may be invalid or your account may be locked from too many failed logins.",
"_datetime": "2024-11-13 09:02:34"
}
Disable Access Token
Disables an active access_token.
URL Structure
https://koramaup.com/api/v2/disable_access_token
Parameters
Name | Description | Example | Required |
---|---|---|---|
access_token | The access token created previously by /authorize . |
X3Xp6cUcue22Q3AlpCiZz3mJQWPT2.............. | Yes |
account_id | The account id returned by /authorize . |
158642 | Yes |
Response
A JSON-encoded string with the response message
- response:
"Token removed or no longer available"
,"Please provide the access_token param"
,"Please provide the account_id param"
or"Could not validate access_token and account_id, please reauthenticate or try again"
Sample Successful JSON Response:
{
"response": "Token removed or no longer available.",
"_status": "success",
"_datetime": "2024-11-13 09:02:34"
}
Files Upload
Provides an interface to upload files. Note: There is currently no support for chunked uploads, this will be added at a later stage.
URL Structure
https://koramaup.com/api/v2/file/upload
Parameters
Name | Description | Example | Required |
---|---|---|---|
access_token | The access token created previously by /authorize . |
X3Xp6cUcue22Q3AlpCiZz3mJQWPT2.............. | Yes |
account_id | The account id returned by /authorize . |
158642 | Yes |
upload_file | The uploaded file. | - | Yes |
folder_id | A folder id within the users account. If left blank the file will be added to the root folder. | 1 | No |
Response
A JSON-encoded string with the response message
Name | Description | Example |
---|---|---|
name | File Name. | Exemple name |
size | File size. | 9999 |
type | File type. | application/octet-stream |
error | there is an error in uploading or not | null |
url | Url to access file. | https://koramaup.com.com/2Vv |
delete_url | Url to delete file. | https://koramaup.com.com/2Vv~d?41ef..... |
info_url | Url to access file informations. | https://koramaup.com.com/2Vv~i?41ef...... |
delete_type | type of delete | DELETE |
delete_hash | delete hash used to delete file. | 41efa710444abad11a8f4b5a90e4d746 |
hash | hash code for file | 2f4105bc2c626232544275c2d890168b |
stats_url | The account selected language as an ID. | 2 |
short_url | Short URL of file. | 2Vv |
file_id | File ID in database. | 149084 |
unique_hash | Unique hash code for file. | 60b0be7e3b18de9a3f00d940a8e.... |
url_html | Maximum stokage fo this account. | <a href="https://koramaup.com/2Vv" target="_blank" title="View image on KoramaUp">view sample4_l (1).jpg on KoramaUp</a> |
url_bbcode | BBCode for forum. | [url]https://koramaup.com.com/2Vv[/url] |
Sample Successful JSON Response:
{
"response": "File uploaded",
"data": [
{
"name": "sample4_l.jpg",
"size": "149084",
"type": "application/octet-stream",
"error": null,
"url": "https://koramaup.com.com/2Vv",
"delete_url": "https://koramaup.com.com/2Vv~d?41efa710444abad11a8f4b5a90e4d746",
"info_url": "https://koramaup.com.com/2Vv~i?41efa710444abad11a8f4b5a90e4d746",
"delete_type": "DELETE",
"delete_hash": "41efa710444abad11a8f4b5a90e4d746",
"hash": "2f4105bc2c626232544275c2d890168b",
"stats_url": "https://koramaup.com/2Vv~s",
"short_url": "2Vv",
"file_id": "1253",
"unique_hash": "60b0be7e3b18de9a3f00d940a8e5a9834c6cdc0f49d40af64973be5ca504c4fd",
"url_html": "<a href="https://koramaup.com/2Vv" target="_blank" title="View image on KoramaUp">view sample4_l (1).jpg on KoramaUp</a>",
"url_bbcode": "[url]https://koramaup.com.com/2Vv[/url]"
}
],
"_status": "success",
"_datetime": "2024-11-13 09:02:34"
}
File Info
Provides meta data and urls of a file within a users account.
URL Structure
https://koramaup.com/api/v2/file/info
Parameters
Name | Description | Example | Required |
---|---|---|---|
access_token | The access token created previously by /authorize . |
X3Xp6cUcue22Q3AlpCiZz.............. | Yes |
account_id | The account id returned by /authorize . |
158642 | Yes |
file_id | The file id to get information on. | 158642 | Yes |
Response
A JSON-encoded string with the response message.
Name | Description | Example |
---|---|---|
id | File ID. | 1253 |
filename | File Name. | Exemple name |
shortUrl | Short URL of file. | 2Vv |
more.... |
Sample Successful JSON Response:
{
"data": {
"id": "1253",
"filename": "sample4_l.jpg",
"shortUrl": "2Vv",
...
},
"_status": "success",
"_datetime": "2024-11-13 09:02:34"
}
Folders Create
Create a new folder.
URL Structure
https://koramaup.com/api/v2/folder/create
Parameters
Name | Description | Example | Required |
---|---|---|---|
access_token | The access token created previously by /authorize . |
X3Xp6cUcue22Q3AlpCiZz3mJQWPT2.............. | Yes |
account_id | The account id returned by /authorize . |
158642 | Yes |
folder_name | Folder Name. | Folder Example | Yes |
parent_id | The folder parent id. | 158642 | No |
is_public | Whether a folder is available publicly or private only. 0 = Private, 1 = Unlisted, 2 = Public in site search. Default Private. | 0 | No |
access_password | An MD5 hash of an access password. Expects 32 characters in length. | passw | No |
Response
A JSON-encoded string with the response message.
Name | Description | Example |
---|---|---|
id | Package ID. | 123 |
label | Plan label. | abc |
max_upload_size | max upload size for this pakage. | 10000000 |
more.... |
Sample Successful JSON Response:
{
"response": "Folder successfully created.",
"data": {
"id": "125",
"parentId": null,
"folderName": "My New Folder",
"totalSize": "0",
"isPublic": "2",
"accessPassword": "d9729feb74992cc3482b350163a1a010",
"date_added": "2017-02-18 12:26:06",
"date_updated": null,
"url_folder": "https://koramaup.com/folder/125/My_New_Folder",
"total_downloads": 0,
"child_folder_count": 0,
"file_count": 0
},
"_status": "success",
"_datetime": "2024-11-13 09:02:34"
}
Folders Listing
Provides the account restrictions inherited from the package associated to the account.
URL Structure
https://koramaup.com/api/v2/account/package
Parameters
Name | Description | Example | Required |
---|---|---|---|
access_token | The access token created previously by /authorize . |
X3Xp6cUcue22Q3AlpCiZz3mJQWPT2.............. | Yes |
account_id | The account id returned by /authorize . |
158642 | Yes |
Response
A JSON-encoded string including a label (label
), max upload size (max_upload_size
) and more.
Name | Description | Example |
---|---|---|
id | Package ID. | 123 |
label | Plan label. | abc |
max_upload_size | max upload size for this pakage. | 10000000 |
more.... |
Sample Successful JSON Response:
{
"data": {
"id": "20",
"label": "Premium Account",
"max_upload_size": "1073741824",
"can_upload": "1",
"wait_between_downloads": "0",
"download_speed": "0",
"max_storage_bytes": "0",
"show_site_adverts": "0",
"show_upgrade_screen": "1",
"days_to_keep_inactive_files": "0",
"concurrent_uploads": "100",
"concurrent_downloads": "0",
"downloads_per_24_hours": "0",
"max_download_filesize_allowed": "0",
"max_remote_download_urls": "50",
"level_type": "paid user",
"on_upgrade_page": "0"
},
"_status": "success",
"_datetime": "2024-11-13 09:02:34"
}