OASIS API Reference for Alpha Testers

Base URLs

  • Development: https://localhost:5002

  • Staging: https://staging-api.oasisplatform.world

  • Production: https://api.oasisplatform.world

Authentication

All API requests require authentication via JWT token in the Authorization header:

Authorization: Bearer YOUR_JWT_TOKEN

Avatar Management

Register Avatar

POST /api/avatar/register

Register a new avatar in the OASIS system.

Request Body:

{
  "username": "string",
  "email": "string", 
  "password": "string",
  "firstName": "string",
  "lastName": "string"
}

Response:

Verify Email

GET /api/avatar/verify-email

Verify avatar email address using token from registration email.

Query Parameters:

  • token (string, required) - Verification token from email

Response:

Authenticate Avatar

POST /api/avatar/authenticate

Authenticate avatar and receive JWT token.

Request Body:

Response:

Get Current Avatar

GET /api/avatar/current

Get details of currently authenticated avatar.

Headers:

  • Authorization: Bearer YOUR_JWT_TOKEN

Response:

Update Avatar

PUT /api/avatar/{id}

Update avatar information.

Headers:

  • Authorization: Bearer YOUR_JWT_TOKEN

Request Body:

Delete Avatar

DELETE /api/avatar/{id}

Delete avatar account.

Headers:

  • Authorization: Bearer YOUR_JWT_TOKEN


NFT Management

Mint NFT

POST /api/nft/mint-nft

Mint a new NFT using specified providers.

Headers:

  • Authorization: Bearer YOUR_JWT_TOKEN

Request Body:

Response:

Load NFT

GET /api/nft/load-nft/{id}

Load NFT details by ID.

Headers:

  • Authorization: Bearer YOUR_JWT_TOKEN

Response:

Load NFTs for Avatar

GET /api/nft/load-nfts-for-avatar/{avatarId}

Load all NFTs owned by specific avatar.

Headers:

  • Authorization: Bearer YOUR_JWT_TOKEN

Response:


Data Management

Save Holon

POST /api/data/save-holon

Save a data holon (generic data object).

Headers:

  • Authorization: Bearer YOUR_JWT_TOKEN

Request Body:

Response:

Load Holon

GET /api/data/load-holon/{id}

Load holon by ID.

Headers:

  • Authorization: Bearer YOUR_JWT_TOKEN

Load Holons for Parent

GET /api/data/load-holons-for-parent/{parentId}

Load all child holons for a parent holon.

Headers:

  • Authorization: Bearer YOUR_JWT_TOKEN

Delete Holon

DELETE /api/data/delete-holon/{id}

Delete holon by ID.

Headers:

  • Authorization: Bearer YOUR_JWT_TOKEN


Provider Management

Get Current Storage Provider

GET /api/provider/get-current-storage-provider

Get currently active storage provider.

Headers:

  • Authorization: Bearer YOUR_JWT_TOKEN

Response:

Get Current Storage Provider Type

GET /api/provider/get-current-storage-provider-type

Get currently active storage provider type.

Headers:

  • Authorization: Bearer YOUR_JWT_TOKEN

Get All Registered Providers

GET /api/provider/get-all-registered-providers

Get list of all registered providers.

Headers:

  • Authorization: Bearer YOUR_JWT_TOKEN

Activate Provider

POST /api/provider/activate-provider/{providerType}

Activate specific provider.

Headers:

  • Authorization: Bearer YOUR_JWT_TOKEN

Path Parameters:

  • providerType (string) - Provider type to activate


Provider-Specific Endpoints

Most endpoints support provider-specific versions with the format: /api/{controller}/{action}/{providerType}/{setGlobally}

Parameters:

  • providerType (string) - Provider to use for this request

  • setGlobally (boolean) - Whether to set provider globally for future requests

Examples:

Register with Specific Provider

POST /api/avatar/register/MongoDBOASIS/false

Register avatar using MongoDB provider for this request only.

Mint NFT with Specific Provider

POST /api/nft/mint-nft/ArbitrumOASIS/true

Mint NFT using Arbitrum provider and set it globally for future requests.

Save Holon with Specific Provider

POST /api/data/save-holon/Neo4jOASIS/false

Save holon using Neo4j provider for this request only.


Available Provider Types

Storage Providers

  • MongoDBOASIS - MongoDB document database

  • SQLLiteDBOASIS - SQLite relational database

  • Neo4jOASIS - Neo4j graph database

  • LocalFileOASIS - Local file system storage

Blockchain Providers

  • EthereumOASIS - Ethereum blockchain

  • ArbitrumOASIS - Arbitrum layer 2

  • PolygonOASIS - Polygon network

  • SolanaOASIS - Solana blockchain

  • EOSIOOASIS - EOSIO blockchain

  • TRONOASIS - TRON blockchain

  • RootstockOASIS - Rootstock blockchain

Network Providers

  • HoloOASIS - Holochain network

  • IPFSOASIS - IPFS decentralized storage

  • PinataOASIS - Pinata IPFS service


Error Responses

All endpoints return standardized error responses:

Common HTTP Status Codes:

  • 200 - Success

  • 400 - Bad Request

  • 401 - Unauthorized

  • 403 - Forbidden

  • 404 - Not Found

  • 500 - Internal Server Error


Rate Limiting

API requests are subject to rate limiting:

  • Authentication endpoints: 5 requests per minute

  • General endpoints: 100 requests per minute

  • NFT operations: 10 requests per minute

Rate limit headers are included in responses:

  • X-RateLimit-Limit - Request limit per window

  • X-RateLimit-Remaining - Remaining requests in current window

  • X-RateLimit-Reset - Time when rate limit resets


WebSocket Support

Some endpoints support WebSocket connections for real-time updates:

Connection


SDKs and Libraries

.NET SDK

JavaScript SDK


Testing with Postman

Import the OASIS API Postman collection:

  1. Import into Postman

  2. Set environment variables:

    • baseUrl: https://localhost:5002

    • jwtToken: Your JWT token

  3. Run the collection tests


Support

For API support and questions:

Last updated