API Reference
Last updated
Last updated
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.
Network | Public Net | API |
---|---|---|
JSON-RPC standard error code
Standard error codes and their corresponding meanings are as follows:
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".
POST
https://{api_url}/upload
This method enables users to upload their files on the IPFS network and their drive.
GET
https://{api_url}/download
This method enables users to download their file on their drive.
raw binary file
GET
https://{api_url}/download-shared
This method enables users to download their shared file on their drive.
GET
https://{api_url}/email-confirm/:token
This method confirm user email
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:
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:
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:
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 URL
tracking_code: <string>
- A code to track transaction status
Example
Request:
Result:
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 finalization
signature: <string>
- Signature of transaction
Example
Request:
Result:
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 payment
size: <string>
- Requested size
unit: <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:
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 containing
used_size_kb: <float>
- Used size of drive storage in KB
total_size_kb: <float>
- Total size of drive storage in KB
created_at: <date>
- Date of drive creation
updated_at: <date>
- Date of last modification on drive
prizes: <array>
- Set of prizes
credit: <float>
- Credit balance
Example
Request:
Result:
Claims prizes for participatory activities
Parameters
<string>
- An access token as base-58 encoded string
Results
<string>
- A success message
Example
Request:
Result:
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:
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 drive
extension: <string>
- Extension of stored object on drive
size_byte: <float>
- Size of stored object on drive in bytes
is_folder: <bool>
- Is stored object is folder or not
is_favourite: <bool>
- Is stored object selected as favourite or not
path: <string>
- A path to listed object
parent: <string>
- A path to parent of listed object
content_type: <string>
- The content_type header of selcted file
public_link: <string>
- Link of file on IPFS public network if file has been shared publicly
created_at: <date>
- Date of object creation
updated_at: <date>
- Date of last modification on object
Example
Request:
Result:
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:
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:
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 object
path: <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 drive
extension: <string>
- Extension of stored object on drive
size_byte: <float>
- Size of stored object on drive in bytes
is_folder: <bool>
- Is stored object is folder or not
path: <string>
- A path to listed object
parent: <string>
- A path to parent of listed object
public_link: <string>
- Link of file on IPFS public network if file has been shared publicly
created_at: <date>
- Date of object creation
updated_at: <date>
- Date of last modification on object
Example
Request:
Result:
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 drive
extension: <string>
- Extension of stored object on drive
size_byte: <float>
- Size of stored object on drive in bytes
is_folder: <bool>
- Is stored object is folder or not
path: <string>
- A path to listed object
parent: <string>
- A path to parent of listed object
public_link: <string>
- Link of file on IPFS public network if file has been shared publicly
created_at: <date>
- Date of object creation
updated_at: <date>
- Date of last modification on object
Example
Request:
Result:
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:
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 drive
extension: <string>
- Extension of stored object on drive
size_byte: <float>
- Size of stored object on drive in bytes
is_folder: <bool>
- Is stored object is folder or not
is_favourite: <bool>
- Is stored object selected as favourite or not
path: <string>
- A path to listed object
parent: <string>
- A path to parent of listed object
content_type: <string>
- The content_type header of selcted file
public_link: <string>
- Link of file on IPFS public network if file has been shared publicly
created_at: <date>
- Date of object creation
updated_at: <date>
- Date of last modification on object
deleted_at: <date>
- Date of moving to trash
Example
Request:
Result:
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:
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:
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 drive
extension: <string>
- Extension of stored object on drive
size_byte: <float>
- Size of stored object on drive in bytes
is_folder: <bool>
- Is stored object is folder or not
is_favourite: <bool>
- Is stored object selected as favourite or not
path: <string>
- A path to listed object
parent: <string>
- A path to parent of listed object
content_type: <string>
- The content_type header of selcted file
public_link: <string>
- Link of file on IPFS public network if file has been shared publicly
created_at: <date>
- Date of object creation
updated_at: <date>
- Date of last modification on object
Example
Request:
Result:
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:
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:
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:
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:
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:
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 file
link: <string>
- Link to object on public network
file_name: <string>
- Name of file
size_byte <float>
- Size of stored object on drive in bytes
content_type: <string>
- The content_type header of selcted file
drive_path: <string>
- Path to object on private drive
created_at: <date>
- Date of object creation
Example
Request:
Result:
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:
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:
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 drive
owner: <string>
- Email address of file owner
password: <string>
- Password of file if the file locked
Results
<string>
- A success message
Example
Request:
Result:
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:
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 drive
owner: <string>
- Email address of file owner
password: <string>
- Password of file if the file locked
Results
<string>
- Sharing code/link of object
Example
Request:
Result:
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:
Result:
Get shared record by link/code.
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 drive
owner: <string>
- Email address of file owner
password: <string>
- Password of file if the file locked
Results
<string>
- A sharing path for exploring by lsShareWithMe
Example
Request:
Result:
Remove sharing record.
Parameters
<string>
- An access token as base-58 encoded string
<string>
- Path to object on private drive
<string>
- Owner email address
Results
<string>
- A success message
Example
Request:
Result:
Delete an object from trash permanently.
Parameters
<string>
- An access token as base-58 encoded string
<string>
- Path to object on private drive
<string>
- Object deleted at date
Results
<string>
- A success message
Example
Request:
Result:
Erase all trash objects permanently.
Parameters
<string>
- An access token as base-58 encoded string
Results
<string>
- A success message
Example
Request:
Result:
Get user profile information.
Parameters
<string>
- An access token as base-58 encoded string
Results
<object>
- A JSON objects containing:
email: <string>
- User email address
name: <string>
- User full name
avatar: <string>
- Base64 encoded avatar file
ref_code: <string>
- User referral code
confirmation: <string>
- User email confirmation token
Example
Request:
Result:
Set profile information.
Parameters
<string>
- An access token as base-58 encoded string
<object>
- A JSON objects containing:
email: <string>
- User email address
name: <string>
- User full name
avatar: <string>
- Base64 encoded avatar file
Results
<string>
- A success message
Example
Request:
Result:
Resend verification email for confirming.
Parameters
<string>
- An access token as base-58 encoded string
Results
<string>
- A success message
Example
Request:
Result:
Creates Solana Pay standard URL for increasing credits balance on Djib Token.
Parameters
<string>
- An access token as base-58 encoded string
<number>
- Requested size
Results
<object>
- A JSON object containing:
payment_url: <number>
- Solana Pay standard URL
tracking_code: <string>
- A code to track transaction status
Example
Request:
Result:
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 finalization
signature: <string>
- Signature of transaction
Example
Request:
Result:
Returns list of payment records
Parameters
<string>
- An access token as base-58 encoded string
<number>
- Margin
<number>
- Count
Results
<object>
- A JSON object containing:
payments: <array>
- A JSON object containing:
method: <string>
- Payment method ['PAYMENT
', 'TOPUP
']
price: <float>
- Payed price
amount: <float>
- Requested size
unit: <string>
- Unit of request ['KB
', 'MB
', 'GB
', 'TB
', 'NFT
']
status: <string>
- Status of payment ['pending
', 'success
', 'failed
']
signature: <string>
- Signature of the transaction
message: <string>
- Message of status
payed_at: <string>
- ISO date time
created_at: <string>
- ISO date time
updated_at: <string>
- ISO date time
options: <object>
- A JSON object containing:
total: <number>
- Total number of all records
count: <number>
- Count
margin: <number>
- Margin
Example
Request:
Result:
Returns balance changes.
Parameters
<string>
- An access token as base-58 encoded string
<number>
- Days ago
Results
<object>
- A JSON object containing:
time: <string>
- YYYY-MM-DD
balance: <float>
- Balance
Example
Request:
Result:
Creates Solana Pay standard URL for paying Djib Token used saving a file as an NFT
Parameters
<string>
- An access token as base-58 encoded string
<number>
- Count of requested NFT
Results
<string>
- A success message
Example
Request:
Result:
Saves a file as an NFT.
Parameters
<string>
- An access token as base-58 encoded string
<string>
- Path of the object
<object>
- A JSON object containing:
thumbnail: <string>
- An IPFS cid of the thumbnail
name: <string>
- Name of NFT
symbol: <string>
- Symbol of NFT
description: <string>
- Description of NFT
seller_fee_basis_points: <number>
- Seller fee in percentage
external_url: <string>
- An external URL
attributes: <array>
- Array of JSON object containing:
trait_type: <string>
- Attribute name
value: <string>
- Value of attribute
collection: <string>
- Collection name
family: <string>
- Family name
Results
<object>
- A JSON object containing:
cid: <string>
- An IPFS cid of the thumbnail
created_at: <string>
- ISO date time of NFT creation time
Example
Request:
Result:
Uploads NFT asset after saving NFT
Parameters
<string>
- An access token as base-58 encoded string
<string>
- An IPFS cid of NFT file
<string>
- ISO date time of NFT creation time
<string>
- Tracking code of payment (Optional)
Results
<string>
- An IPFS cid of NFT file
Example
Request:
Result:
Returns list of all NFTs
Parameters
<string>
- An access token as base-58 encoded string
<object>
- A JSON object containing:
family: <string>
- Name of special family
count: <number>
- Count
margin: <string>
- Margin
Results
<object>
- A JSON object containing:
nfts: <object>
- A JSON object containing
token: <string>
- Token address of NFT
signature: <string>
- Signature of NFT creation
metadata: <object>
- The NFT metadata saved on blockchain
message: <string>
- Message of NFT creation process
created_at: <date>
- Date of drive creation
updated_at: <date>
- Date of last modification on drive
options: <object>
- A JSON object containing:
family: <string>
- Family name of filter
total: <number>
- Total number of all records
count: <number>
- Count
margin: <number>
- Margin
Example
Request:
Result:
Returns status of drive.
Parameters
<string>
- An access token as base-58 encoded string
Results
<array>
- c
family: <string>
- Family name
collections: <array>
- An array of string
Example
Request:
Result:
Code | Message | Definition |
---|---|---|
Code | Message | Definition |
---|---|---|
Name | Type | Description |
---|---|---|
Name | Type | Description |
---|---|---|
Name | Type | Description |
---|---|---|
Name | Type | Description |
---|---|---|
Name | Type | Description |
---|---|---|
Name | Type | Description |
---|---|---|
Name | Type | Description |
---|---|---|
-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.
-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>'
files[]*
file
list of files to be uploaded on Djib network
type*
String
public
for public upload of files on Djib IPFS network,
private
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
Content-Type*
String
multipart/form-data
token*
String
the access token that you have received from auth method
path*
String
requested file destination on user drive
Content-Type*
String
multipart/form-data
token
String
the access token that you have received from auth method
path
String
requested file destination on user drive
Content-Type
String
multipart/form-data
token*
String
Token
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