# rloud.io Developers
Welcome to the rloud.io Developers page! Here, you will find comprehensive resources and documentation to help you integrate and interact with our advanced encrypted storage service. rloud.io is designed to offer the highest levels of data security and privacy, making it the ideal choice for developers building secure applications.
Getting Started
API Documentation
Our API is built to be intuitive and powerful, providing you with all the endpoints and functionalities you need to manage files and folders, handle user authentication, and more. Below is a summary of our main API functionalities. For detailed API documentation, please refer to our [API Documentation](https://rloud.io/api-docs).
### Authentication
To use the rloud.io API, you need to authenticate your requests using an access token. This token should be included in the authorization header of each request:
Authorization: Bearer <Token>
You can obtain an access token by logging in through the auth/login
endpoint or from the account settings page on the [rloud.io website](https://rloud.io/account-settings).
## API Endpoints
### Uploads
#### Upload a File
Endpoint: POST /uploads
Upload a file to rloud.io. The file can be uploaded to a specified folder or to the root directory.
Request Parameters:
- file
(binary): Content of the file to upload.
- parentId
(integer, optional): ID of the folder where this file should be uploaded. null
will upload to the root.
- relativePath
(string, optional): Path where the file should be placed, including the original filename.
Response:
- 201 Created
with file details on success.
- 401 Unauthorized
if the access token is missing or invalid.
- 403 Forbidden
if the user lacks necessary permissions.
- 422 Unprocessable Entity
if the data provided is invalid.
### Files and Folders
#### Get File Entries
Endpoint: GET /drive/file-entries
Retrieve a list of all file entries you have access to.
Query Parameters:
- perPage
(integer, optional): Number of entries to return per page (default: 50).
- deletedOnly
(boolean, optional): Whether to return only trashed entries.
- starredOnly
(boolean, optional): Whether to return only starred entries.
- recentOnly
(boolean, optional): Whether to return only recent entries.
- sharedOnly
(boolean, optional): Whether to return only entries shared with you.
- query
(string, optional): Search query for filtering entries.
- type
(string, optional): Filter by file type (e.g., 'folder', 'image', 'text', 'audio', 'video', 'pdf').
- parentIds
(array of strings, optional): Return only entries that are children of specified folders.
- workspaceId
(integer, optional): Return entries in specified workspace.
Response:
- 200 OK
with an array of file entries on success.
- 401 Unauthorized
if the access token is missing or invalid.
- 403 Forbidden
if the user lacks necessary permissions.
#### Move Entries to Trash or Delete Permanently
Endpoint: DELETE /file-entries
Move file entries to trash or delete them permanently.
Request Body:
- entryIds
(array of strings): List of entry IDs to delete.
- deleteForever
(boolean): Whether entries should be deleted permanently or moved to trash.
Response:
- 200 OK
with a success message.
- 401 Unauthorized
if the access token is missing or invalid.
- 403 Forbidden
if the user lacks necessary permissions.
- 422 Unprocessable Entity
if the data provided is invalid.
#### Update an Existing File Entry
Endpoint: PUT /file-entries/{entryId}
Update details of a specific file entry.
Path Parameter:
- entryId
(integer): ID of the entry to update.
Request Body:
- name
(string, optional): New name for the entry.
- description
(string, optional): New description for the entry.
Response:
- 200 OK
with updated file details on success.
- 401 Unauthorized
if the access token is missing or invalid.
- 403 Forbidden
if the user lacks necessary permissions.
- 422 Unprocessable Entity
if the data provided is invalid.
#### Create a New Folder
Endpoint: POST /folders
Create a new folder.
Request Body:
- name
(string): Name of the new folder.
- parentId
(integer, optional): ID of the parent folder. null
to create at the root.
Response:
- 200 OK
with folder details on success.
- 401 Unauthorized
if the access token is missing or invalid.
- 403 Forbidden
if the user lacks necessary permissions.
- 422 Unprocessable Entity
if the data provided is invalid.
#### Move Specified Entries to a Different Folder
Endpoint: POST /file-entries/move
Move specified file entries to another folder.
Request Body:
- entryIds
(array of integers): List of entry IDs to move.
- destinationId
(integer): ID of the destination folder.
Response:
- 200 OK
with success message and moved entries.
- 401 Unauthorized
if the access token is missing or invalid.
- 403 Forbidden
if the user lacks necessary permissions.
- 422 Unprocessable Entity
if the data provided is invalid.
#### Duplicate Specified Entries
Endpoint: POST /file-entries/duplicate
Duplicate specified file entries.
Request Body:
- entryIds
(array of integers): List of entry IDs to duplicate.
- destinationId
(integer): ID of the destination folder.
Response:
- 200 OK
with success message and duplicated entries.
- 401 Unauthorized
if the access token is missing or invalid.
- 403 Forbidden
if the user lacks necessary permissions.
- 422 Unprocessable Entity
if the data provided is invalid.
#### Restore File Entries from Trash
Endpoint: POST /file-entries/restore
Restore file entries from trash to their original folder.
Request Body:
- entryIds
(array of integers): List of entry IDs to restore.
Response:
- 200 OK
with success message.
- 401 Unauthorized
if the access token is missing or invalid.
- 403 Forbidden
if the user lacks necessary permissions.
- 422 Unprocessable Entity
if the data provided is invalid.
### Sharing
#### Share File or Folder
Endpoint: POST /file-entries/{entryId}/share
Share a file or folder with specified users.
Path Parameter:
- entryId
(integer): ID of the entry to share.
Request Body:
- emails
(array of strings): Email addresses of users to share with.
- permissions
(array of strings): Permissions to grant (e.g., 'view', 'edit', 'download').
Response:
- 200 OK
with success message and shared users.
- 401 Unauthorized
if the access token is missing or invalid.
- 403 Forbidden
if the user lacks necessary permissions.
- 422 Unprocessable Entity
if the data provided is invalid.
#### Change Permissions for Shared Entries
Endpoint: PUT /file-entries/{entryId}/change-permissions
Change permissions for users on shared entries.
Path Parameter:
- entryId
(integer): ID of the entry to update permissions for.
Request Body:
- userId
(integer): ID of the user whose permissions are being updated.
- permissions
(array of strings): Updated permissions (e.g., 'view', 'edit', 'download').
Response:
- 200 OK
with success message and updated users.
- 401 Unauthorized
if the access token is missing or invalid.
- 403 Forbidden
if the user lacks necessary permissions.
- 422 Unprocessable Entity
if the data provided is invalid.
#### Unshare File or Folder
Endpoint: DELETE /file-entries/{entryId}/unshare
Unshare a file or folder with a specified user.
Path Parameter:
- entryId
(integer): ID of the entry to unshare.
Request Body:
- userId
(integer): ID of the user to unshare.
Response:
- 200 OK
with success message and updated users.
- 401 Unauthorized
if the access token is missing or invalid.
- 403 Forbidden
if the user lacks necessary permissions.
- 422 Unprocessable Entity
if the data provided is invalid.
### Starring
#### Mark Entries as Starred
Endpoint: POST /file-entries/star
Mark specified entries as starred.
Request Body:
- entryIds
(array of integers): List of entry IDs to mark as starred.
Response:
- 200 OK
with success message and tagged entries.
- 401 Unauthorized
if the access token is missing or invalid.
- 403 Forbidden
if the user lacks necessary permissions.
- 422 Unprocessable Entity
if the data provided is invalid.
#### Unmark Entries as Starred
Endpoint: POST /file-entries/unstar
Unmark specified entries as starred.
Request Body:
- entryIds
(array of integers): List of entry IDs to unmark as starred.
Response:
- 200 OK
with success message and untagged entries.
- 401 Unauthorized
if the access token is missing or invalid.
- 403 Forbidden
if the user lacks necessary permissions.
- 422 Unprocessable Entity
if the data provided is invalid.
### Shareable Links
#### Retrieve Shareable Link
Endpoint: GET /file-entries/{entryId}/shareable-link
Retrieve the shareable link for a specified entry.
Path Parameter:
- entryId
(integer): ID or hash of the entry for which to get a shareable link.
Response:
- 200 OK
with the shareable link.
- 401 Unauthorized
if the access token is missing or invalid.
- 403 Forbidden
if the user lacks necessary permissions.
- 404 Not Found
if the file entry or shareable link is not found.
- 422 Unprocessable Entity
if the data provided is invalid.
#### Create Shareable Link
Endpoint: POST /file-entries/{entryId}/shareable-link
Create a new shareable link for a specified entry.
Path Parameter:
- entryId
(integer): ID or hash of the entry for which to create a shareable link.
Request Body:
- password
(string, optional): Password for the link.
- expires_at
(string, optional): Expiry date for the link.
- allow_edit
(boolean, optional): Whether the link allows editing.
- allow_download
(boolean, optional): Whether the link allows downloading.
Response:
- 200 OK
with the shareable link details.
- 401 Unauthorized
if the access token is missing or invalid.
- 403 Forbidden
if the user lacks necessary permissions.
- 422 Unprocessable Entity
if the data provided is invalid.
#### Update Shareable Link
Endpoint: PUT /file-entries/{entryId}/shareable-link
Update the details of a shareable link.
Path Parameter:
- entryId
(integer): ID or hash of the entry for which to update the shareable link.
Request Body:
- password
(string, optional): New password for the link.
- expires_at
(string, optional): New expiry date for the link.
- allow_edit
(boolean, optional): Whether the link allows editing.
- allow_download
(boolean, optional): Whether the link allows downloading.
Response:
- 200 OK
with the updated shareable link details.
- 401 Unauthorized
if the access token is missing or invalid.
- 403 Forbidden
if the user lacks necessary permissions.
- 404 Not Found
if the shareable link is not found.
- 422 Unprocessable Entity
if the data provided is invalid.
#### Delete Shareable Link
Endpoint: DELETE /file-entries/{entryId}/shareable-link
Delete a shareable link by ID.
Path Parameter:
- entryId
(integer): ID or hash of the entry for which to delete the shareable link.
Response:
- 200 OK
with a success message.
- 401 Unauthorized
if the access token is missing or invalid.
- 403 Forbidden
if the user lacks necessary permissions.
- 404 Not Found
if the shareable link is not found.
- 422 Unprocessable Entity
if the data provided is invalid.
### Authentication
#### Register for a New Account
Endpoint: POST /auth/register
Register a new account.
Request Body:
- email
(string): Email address for the new account.
- password
(string): Password for the new account.
- token_name
(string): Name for the token (e.g., 'iPhone 12').
Response:
- 200 OK
with user details on successful registration.
- 401 Unauthorized
if the access token is missing or invalid.
- 403 Forbidden
if the user lacks necessary permissions.
- 422 Unprocessable Entity
if the data provided is invalid.
#### Get Access Token
Endpoint: POST /auth/login
Log in and obtain an access token.
Request Body:
- email
(string): Email address of the user.
- password
(string): Password of the user.
- token_name
(string): Name for the token (e.g., 'iPhone 12').
Response:
- 200 OK
with user details and access token on successful login.
- 401 Unauthorized
if the access token is missing or invalid.
- 403 Forbidden
if the user lacks necessary permissions.
- 422 Unprocessable Entity
if the data provided is invalid.
## Support
### Developer Support
Our dedicated support team is available 24/7 to assist you with any issues or questions. Contact us at [developer-support@rloud.io](mailto:developer-support@rloud.io).
### Feedback
We value your feedback and continuously strive to improve our services. Send your suggestions or feedback to [feedback@rloud.io](mailto:feedback@rloud.io).
## Conclusion
rloud.io is committed to providing developers with the tools and support they need to build secure and reliable applications. Whether you are working on a personal project or a large-scale enterprise solution, our platform offers the flexibility and security you need.
Happy coding!
---
Alfa IT Software Inc.
Building the Future of Secure Storage
[Visit Our Website](https://rloud.io) | [Contact Us](mailto:info@rloud.io)