API Reference
Overview
JSON is a lightweight data-interchange format. It can represent numbers, strings, ordered sequences of values, and collections of name/value pairs.
JSON-RPC is a stateless, light-weight remote procedure call (RPC) protocol. Primarily this specification defines several data structures and the rules around their processing. It is transport agnostic in that the concepts can be used within the same process, over sockets, over HTTP, or in many various message passing environments. It uses JSON (RFC 4627) as data format.
Djib API is mainly implemented as JSON RPC 2.0 with two exceptions:
The health check endpoint that provides a health-check mechanism for load balancers or other network infrastructure use.
Regular HTTP post to ensure large file support and multiple files supporting the upload and download endpoint.
Endpoints
Network | Public Net | API |
---|---|---|
Mainnet | https://public.djib.io | https://mainrpc.djib.io |
Testnet | https://public.djib.io | https://testrpc.djib.io |
Devnet | https://public.djib.io | https://devrpc.djib.io |
Error Codes
JSON-RPC standard error code
Standard error codes and their corresponding meanings are as follows:
Code | Message | Definition |
---|---|---|
-32600 | Invalid Request | The JSON sent is not a valid Request object. |
-32601 | Method Not Found | The method does not exist / is not available. |
-32602 | Invalid Params | Invalid method parameter(s). |
-32603 | Internal Error | Internal JSON-RPC error. |
-32700 | Parse Error | Invalid JSON was received by the server. An error occurred on the server while parsing the JSON text. |
Djib RPC Error Code
Code | Message | Definition |
---|---|---|
-32001 | Invalid Form Params | Invalid form params on non-rpc method |
-32002 | Invalid Public Key | Invalid Public Key |
-32003 | Invalid Size Unit | Supported units are: KB for kilobytes, MB for megabytes, GB for gigabytes, and TB for terabytes. |
-32004 | Authorization Error | Identity is not correct. |
-32005 | Invalid Size Number | Size must be a float number, greater than zero. |
-32006 | Record Not Found | Requested record does not exist. |
-32007 | Duplicated Record | Requested record is duplicated. |
-32008 | Cloud Storage Not Found | User has no cloud storage. |
-32009 | No Enough Storage | User has no enough cloud storage. |
-32010 | Parent Not Found | Requested parent does not exist. |
-32011 | File Not Found | Requested file does not exist. |
-32012 | Incorrect Email Address | Submitted email is incorrect. |
-32013 | Duplicated Email Address | Submitted email is duplicated. |
-32014 | Large Avatar File | Avatar file is large. Maximum acceptable size is 1 MB. |
-32015 | Not Confirmed Profile | User profile confirmation is not completed. |
-32016 | File Invalid Access | User has no access to target file or password is incorrect. |
-32017 | File Shared Previously | Cannot share file, because file shared before. |
-32018 | Invalid NFT MetaData | Invalid Metadata for NFT. |
-32019 | Unexpected Error NFT Creation | Unexpected Error on creation NFT. |
-32020 | NFT Payment Not Finalized | Payment is not finalized to create NFT. |
-32021 | Shared Not Found | No shared object exist with given access token. |
-32022 | Invalid Share Credentials | Given credentials are invalid to access object. |
-32023 | No Sharing Credentials | Given access link required credentials. |
-32024 | Insufficient Funds | You should top up your credits. |
-32025 | Insufficient SOL | Insufficient SOL for network fee payer. |
-32026 | Insufficient DJIB | Insufficient DJIB for paying. |
-32027 | Solana Error | Solana is busy now! Please try later! You can check Solana status on https://status.solana.com |
-32028 | Transaction Failed | Transaction failed on Solana. Signature: |
-32029 | NFT Not Found | NFT not found. |
-32030 | Invalid Avatar Format | Avatar format is a html base64 encoded image: 'data:<ImageContentType>;base64,<Data>' |
Non-RPC API
Health Check
GET
https://{api_url}/health
Provides a health-check mechanism for load balancers or other network infrastructure use. It always returns HTTP 200 OK response with a body of "ok", "degraded", or "unknown".
Upload file(s)
POST
https://{api_url}/upload
This method enables users to upload their files on the IPFS network and their drive.
Path Parameters
Name | Type | Description |
---|---|---|
files[]* | file | list of files to be uploaded on Djib network |
type* | String |
for public upload of files on Djib IPFS network,
for uploading to user's drive |
publicKey* | String | the public address of the wallet owner of files |
token | String | the access token that you have received from auth method; this method is required for the private mode |
path | String | destination folder of file on your drive required only for private mode |
Headers
Name | Type | Description |
---|---|---|
Content-Type* | String | multipart/form-data |
Download file
GET
https://{api_url}/download
This method enables users to download their file on their drive.
Path Parameters
Name | Type | Description |
---|---|---|
token* | String | the access token that you have received from auth method |
path* | String | requested file destination on user drive |
Headers
Name | Type | Description |
---|---|---|
Content-Type* | String | multipart/form-data |
raw binary file
Download shared file
GET
https://{api_url}/download-shared
This method enables users to download their shared file on their drive.
Path Parameters
Name | Type | Description |
---|---|---|
token | String | the access token that you have received from auth method |
path | String | requested file destination on user drive |
Headers
Name | Type | Description |
---|---|---|
Content-Type | String | multipart/form-data |
Confirm email
GET
https://{api_url}/email-confirm/:token
This method confirm user email
Path Parameters
Name | Type | Description |
---|---|---|
token* | String | Token |
RPC Methods
handshake
Creates a message for signing private drive session authorization
Parameters
<string>
- A PublickKey of account as base-58 encoded string
Results
<string>
- An string message for signing on client wallet
Example
Request:
Result:
auth
Returns an access token for authorizing a private drive session
Parameters
<string>
- A PublicKey of account as base-58 encoded string<string>
- A signed message signature as base-58 encoded string
Results
<string>
- An access token as base-58 encoded string
Example
Request:
Result:
estimate
Estimates file storage price based on Djib Token for use on private drive storage or public drive uploading
Parameters
<string>
- Token<number>
- Requested size<string>
- Unit of size ["KB
", "MB
", "GB
", "TB
"]
Results
<float>
- Estimated price based on Djib Token
Example
Request:
Result:
createPayment
Creates Solana Pay standard URL for paying Djib Token used on buying storage.
Parameters
<string>
- An access token as base-58 encoded string<number>
- Requested size<string>
- Unit of size ["KB
", "GB
", "TB
"]
Results
<object>
- A JSON object containing:payment_url: <number>
- Solana Pay standard URLtracking_code: <string>
- A code to track transaction status
Example
Request:
Result:
confirmPayment
Confirms the storage payment and returns the final status of payment.
Parameters
<string>
- An access token as base-58 encoded string<string>
- A code to track transaction status
Results
<object>
- A JSON object containing:finalized: <string>
- Status of finalizationsignature: <string>
- Signature of transaction
Example
Request:
Result:
buyStorage
Buy drive storage on Djib private network. You can use a payment tracking code or credit balance.
Parameters
<string>
- An access token as base-58 encoded string<object>
- A JSON object containing:tracking_code: <string>
- TrackingCode of paymentsize: <string>
- Requested sizeunit: <string>
- Unit of size ["KB
", "MB
", "GB
", "TB
"]ref_code: <string>
- PublicKey of invitation
Results
<object>
- A JSON object containing:<string>
- A status message ["success
" or "failed
"]
Example
Request:
Result:
status
Returns status of drive.
Parameters
<string>
- An access token as base-58 encoded string
Results
<object>
- A JSON object containing:cloud: <object>
- A JSON object containingused_size_kb: <float>
- Used size of drive storage in KBtotal_size_kb: <float>
- Total size of drive storage in KBcreated_at: <date>
- Date of drive creationupdated_at: <date>
- Date of last modification on drive
prizes: <array>
- Set of prizescredit: <float>
- Credit balance
Example
Request:
Result:
claimPrize
Claims prizes for participatory activities
Parameters
<string>
- An access token as base-58 encoded string
Results
<string>
- A success message
Example
Request:
Result:
createFolder
Creates new folder on drive.
Parameters
<string>
- An access token as base-58 encoded string<string>
- Path to folder<string>
- Folder name
Results
<string>
- Created folder path
Example
Request:
Result:
lsDrive
Returns list of stored objects on drive.
Parameters
<string>
- An access token as base-58 encoded string<string>
- A Path of stored objects on drive
Results
<array>
- An array of JSON objects containing:file_name: <string>
- Path of stored object on driveextension: <string>
- Extension of stored object on drivesize_byte: <float>
- Size of stored object on drive in bytesis_folder: <bool>
- Is stored object is folder or notis_favourite: <bool>
- Is stored object selected as favourite or notpath: <string>
- A path to listed objectparent: <string>
- A path to parent of listed objectcontent_type: <string>
- The content_type header of selcted filepublic_link: <string>
- Link of file on IPFS public network if file has been shared publiclycreated_at: <date>
- Date of object creationupdated_at: <date>
- Date of last modification on object
Example
Request:
Result:
destroyDrive
Destroys user drive and all contents except publicly shared files.
Parameters
<string>
- An access token as base-58 encoded string
Results
<string>
- A success message
Example
Request:
Result:
shareFromDrive
Shares private objects on Djib public network.
Parameters
<string>
- An access token as base-58 encoded string<string>
- A path to file
Results
<string>
- shared objects public URL
Example
Request:
Result:
search
Searches objects on drive.
Parameters
<string>
- An access token as base-58 encoded string<string>
- Keyword<object>
- A JSON object containing:extension: <string>
- Extension of target objectpath: <string>
- Path to target object
<string>
- Name of object
Results
<array>
- An array of JSON objects containing:file_name: <string>
- Path of stored object on driveextension: <string>
- Extension of stored object on drivesize_byte: <float>
- Size of stored object on drive in bytesis_folder: <bool>
- Is stored object is folder or notpath: <string>
- A path to listed objectparent: <string>
- A path to parent of listed objectpublic_link: <string>
- Link of file on IPFS public network if file has been shared publiclycreated_at: <date>
- Date of object creationupdated_at: <date>
- Date of last modification on object
Example
Request:
Result:
recentFiles
Returns list of recently interacted files on private drive.
Parameters
<string>
- An access token as base-58 encoded string<int>
- Number of recent files
Results
<array>
- An array of JSON objects containing:file_name: <string>
- Path of stored object on driveextension: <string>
- Extension of stored object on drivesize_byte: <float>
- Size of stored object on drive in bytesis_folder: <bool>
- Is stored object is folder or notpath: <string>
- A path to listed objectparent: <string>
- A path to parent of listed objectpublic_link: <string>
- Link of file on IPFS public network if file has been shared publiclycreated_at: <date>
- Date of object creationupdated_at: <date>
- Date of last modification on object
Example
Request:
Result:
moveTrash
Moves objects into trash.
Parameters
<string>
- An access token as base-58 encoded string<array>
- An array containing objects paths
Results
<string>
- A success message
Example
Request:
Result:
lsTrash
Returns list of moved objects on trash.
Parameters
<string>
- An access token as base-58 encoded string
Results
<array>
- An array of JSON objects containing:file_name: <string>
- Path of stored object on driveextension: <string>
- Extension of stored object on drivesize_byte: <float>
- Size of stored object on drive in bytesis_folder: <bool>
- Is stored object is folder or notis_favourite: <bool>
- Is stored object selected as favourite or notpath: <string>
- A path to listed objectparent: <string>
- A path to parent of listed objectcontent_type: <string>
- The content_type header of selcted filepublic_link: <string>
- Link of file on IPFS public network if file has been shared publiclycreated_at: <date>
- Date of object creationupdated_at: <date>
- Date of last modification on objectdeleted_at: <date>
- Date of moving to trash
Example
Request:
Result:
restoreFromTrash
Restores object from trash.
Parameters
<string>
- An access token as base-58 encoded string<string>
- Object path on trash<string>
- Delete date of object
Results
<string>
- A success message
Example
Request:
Result:
setFavorite
Marks object as favorite.
Parameters
<string>
- An access token as base-58 encoded string<string>
- Object path on drive
Results
<string>
- A success message
Example
Request:
Result:
lsFavorite
Returns list of marked objects as favorite on drive.
Parameters
<string>
- An access token as base-58 encoded string
Results
<array>
- An array of JSON objects containing:file_name: <string>
- Path of stored object on driveextension: <string>
- Extension of stored object on drivesize_byte: <float>
- Size of stored object on drive in bytesis_folder: <bool>
- Is stored object is folder or notis_favourite: <bool>
- Is stored object selected as favourite or notpath: <string>
- A path to listed objectparent: <string>
- A path to parent of listed objectcontent_type: <string>
- The content_type header of selcted filepublic_link: <string>
- Link of file on IPFS public network if file has been shared publiclycreated_at: <date>
- Date of object creationupdated_at: <date>
- Date of last modification on object
Example
Request:
Result:
unsetFavorite
Unsets the object mark from favorite.
Parameters
<string>
- An access token as base-58 encoded string<string>
- Path to object on private drive
Results
<string>
- A success message
Example
Request:
Result:
rename
Renames an object on private drive.
Parameters
<string>
- An access token as base-58 encoded string<string>
- Path to object on private drive<string>
- New name for specified object
Results
<string>
- A success message
Example
Request:
Result:
move
Moves an object to another directory.
Parameters
<string>
- An access token as base-58 encoded string<string>
- Path to object on private drive<string>
- New directory to move in
Results
<string>
- A success message
Example
Request:
Result:
copy
Copies an object to another directory.
Parameters
<string>
- An access token as base-58 encoded string<string>
- Path to object on private drive<string>
- New directory to copy in
Results
<string>
- A success message
Example
Request:
Result:
duplicate
Duplicates an object .
Parameters
<string>
- An access token as base-58 encoded string<string>
- Path to object on private drive
Results
<string>
- A success message
Example
Request:
Result:
lsPublic
Returns list of publicly shared files.
Parameters
<string>
- An access token as base-58 encoded string<bool>
- Flag to set only public files
Results
<array>
- An array of JSON objects containing:cid: <string>
- Cid of shared filelink: <string>
- Link to object on public networkfile_name: <string>
- Name of filesize_byte <float>
- Size of stored object on drive in bytescontent_type: <string>
- The content_type header of selcted filedrive_path: <string>
- Path to object on private drivecreated_at: <date>
- Date of object creation
Example
Request:
Result:
savePublic
Saves list of public files on private drive.
Parameters
<string>
- An access token as base-58 encoded string<array>
- An array of publicly shared objects<string>
- Path on private drive to save public files
Results
<string>
- A success message
Example
Request:
Result:
lsFileShares
List all sharing records of a file.
Parameters
<string>
- An access token as base-58 encoded string<string>
- Path to object on private drive
Results
<string>
- A success message
Example
Request:
Result:
lsShareWithMe
List of all objects that shared with user.
Parameters
<string>
- An access token as base-58 encoded string<object>
- A JSON objects containing:path: <string>
- Path to object on private driveowner: <string>
- Email address of file ownerpassword: <string>
- Password of file if the file locked
Results
<string>
- A success message
Example
Request:
Result:
lsShareByMe
List of all objects that shared by user.
Parameters
<string>
- An access token as base-58 encoded string
Results
<string>
- A success message
Example
Request:
Result:
shareObject
Share an object.
Parameters
<string>
- An access token as base-58 encoded string<string>
- Path to object on private drive<object>
- A JSON objects containing:path: <string>
- Path to object on private driveowner: <string>
- Email address of file ownerpassword: <string>
- Password of file if the file locked
Results
<string>
- Sharing code/link of object
Example
Request:
Result:
revokeShares
Delete sharing records of an object.
Parameters
<string>
- An access token as base-58 encoded string<string>
- Path to object on private drive<array>
- An array of sharing codes/links
Results
<string>
- A success message
Example
Request: