@oasisomniverse/web4-api 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (116) hide show
  1. package/README.md +464 -0
  2. package/docs/README.md +52 -0
  3. package/docs/auth.md +89 -0
  4. package/docs/getting-started.md +129 -0
  5. package/docs/modules/Avatar.md +4160 -0
  6. package/docs/modules/Bridge.md +394 -0
  7. package/docs/modules/Chat.md +168 -0
  8. package/docs/modules/Clan.md +552 -0
  9. package/docs/modules/Competition.md +594 -0
  10. package/docs/modules/Data.md +796 -0
  11. package/docs/modules/EOSIO.md +508 -0
  12. package/docs/modules/Eggs.md +396 -0
  13. package/docs/modules/Files.md +312 -0
  14. package/docs/modules/Gifts.md +306 -0
  15. package/docs/modules/Health.md +90 -0
  16. package/docs/modules/Holochain.md +374 -0
  17. package/docs/modules/HyperDrive.md +3857 -0
  18. package/docs/modules/Karma.md +644 -0
  19. package/docs/modules/Keys.md +3303 -0
  20. package/docs/modules/Map.md +1026 -0
  21. package/docs/modules/Messaging.md +320 -0
  22. package/docs/modules/Nft.md +2216 -0
  23. package/docs/modules/OLand.md +425 -0
  24. package/docs/modules/ONET.md +442 -0
  25. package/docs/modules/ONODE.md +504 -0
  26. package/docs/modules/Provider.md +1396 -0
  27. package/docs/modules/Search.md +69 -0
  28. package/docs/modules/Seeds.md +167 -0
  29. package/docs/modules/Settings.md +533 -0
  30. package/docs/modules/Share.md +64 -0
  31. package/docs/modules/Social.md +190 -0
  32. package/docs/modules/Solana.md +150 -0
  33. package/docs/modules/Stats.md +359 -0
  34. package/docs/modules/Subscription.md +437 -0
  35. package/docs/modules/Video.md +150 -0
  36. package/docs/modules/Wallet.md +1993 -0
  37. package/index.d.ts +106 -0
  38. package/index.js +3 -0
  39. package/index.mjs +4 -0
  40. package/package.json +120 -0
  41. package/src/core/httpClient.js +110 -0
  42. package/src/core/routeHelper.js +50 -0
  43. package/src/core/tokenStore.js +52 -0
  44. package/src/core/types.d.ts +18 -0
  45. package/src/index.js +46 -0
  46. package/src/modules/Auth.d.ts +28 -0
  47. package/src/modules/Auth.js +98 -0
  48. package/src/modules/Avatar.d.ts +192 -0
  49. package/src/modules/Avatar.js +143 -0
  50. package/src/modules/Bridge.d.ts +24 -0
  51. package/src/modules/Bridge.js +35 -0
  52. package/src/modules/Cargo.js +35 -0
  53. package/src/modules/Chat.d.ts +15 -0
  54. package/src/modules/Chat.js +27 -0
  55. package/src/modules/Clan.d.ts +36 -0
  56. package/src/modules/Clan.js +41 -0
  57. package/src/modules/Competition.d.ts +33 -0
  58. package/src/modules/Competition.js +39 -0
  59. package/src/modules/Core.js +27 -0
  60. package/src/modules/Data.d.ts +36 -0
  61. package/src/modules/Data.js +41 -0
  62. package/src/modules/EOSIO.d.ts +33 -0
  63. package/src/modules/EOSIO.js +39 -0
  64. package/src/modules/Eggs.d.ts +24 -0
  65. package/src/modules/Eggs.js +33 -0
  66. package/src/modules/Files.d.ts +24 -0
  67. package/src/modules/Files.js +33 -0
  68. package/src/modules/Gifts.d.ts +24 -0
  69. package/src/modules/Gifts.js +33 -0
  70. package/src/modules/Health.d.ts +12 -0
  71. package/src/modules/Health.js +25 -0
  72. package/src/modules/Holochain.d.ts +27 -0
  73. package/src/modules/Holochain.js +35 -0
  74. package/src/modules/HyperDrive.d.ts +237 -0
  75. package/src/modules/HyperDrive.js +175 -0
  76. package/src/modules/Karma.d.ts +42 -0
  77. package/src/modules/Karma.js +45 -0
  78. package/src/modules/Keys.d.ts +183 -0
  79. package/src/modules/Keys.js +139 -0
  80. package/src/modules/Map.d.ts +75 -0
  81. package/src/modules/Map.js +65 -0
  82. package/src/modules/Messaging.d.ts +24 -0
  83. package/src/modules/Messaging.js +33 -0
  84. package/src/modules/Nft.d.ts +102 -0
  85. package/src/modules/Nft.js +85 -0
  86. package/src/modules/OAPP.js +31 -0
  87. package/src/modules/OLand.d.ts +27 -0
  88. package/src/modules/OLand.js +35 -0
  89. package/src/modules/ONET.d.ts +39 -0
  90. package/src/modules/ONET.js +43 -0
  91. package/src/modules/ONODE.d.ts +45 -0
  92. package/src/modules/ONODE.js +47 -0
  93. package/src/modules/Provider.d.ts +99 -0
  94. package/src/modules/Provider.js +83 -0
  95. package/src/modules/Search.d.ts +9 -0
  96. package/src/modules/Search.js +23 -0
  97. package/src/modules/Seeds.d.ts +15 -0
  98. package/src/modules/Seeds.js +27 -0
  99. package/src/modules/Settings.d.ts +48 -0
  100. package/src/modules/Settings.js +47 -0
  101. package/src/modules/Share.d.ts +9 -0
  102. package/src/modules/Share.js +23 -0
  103. package/src/modules/Social.d.ts +18 -0
  104. package/src/modules/Social.js +29 -0
  105. package/src/modules/Solana.d.ts +12 -0
  106. package/src/modules/Solana.js +25 -0
  107. package/src/modules/Stats.d.ts +30 -0
  108. package/src/modules/Stats.js +37 -0
  109. package/src/modules/Subscription.d.ts +36 -0
  110. package/src/modules/Subscription.js +41 -0
  111. package/src/modules/Telos.js +39 -0
  112. package/src/modules/Video.d.ts +15 -0
  113. package/src/modules/Video.js +27 -0
  114. package/src/modules/Wallet.d.ts +102 -0
  115. package/src/modules/Wallet.js +85 -0
  116. package/src/modules/index.js +79 -0
@@ -0,0 +1,4160 @@
1
+ # Avatar — `oasis.avatar`
2
+
3
+ Source controller: [`AvatarController.cs`](https://github.com/NextGenSoftwareUK/OASIS2/blob/main/ONODE/NextGenSoftware.OASIS.API.ONODE.WebAPI/Controllers/AvatarController.cs)
4
+ Route prefix: `api/avatar`
5
+ 61 operation(s).
6
+
7
+ Every method takes a single args object: any key matching a `{token}` in the route is substituted into the URL; everything else becomes the query string (GET/DELETE) or JSON body (POST/PUT). Every call resolves to the standard OASIS envelope:
8
+
9
+ ```ts
10
+ {
11
+ isError: boolean;
12
+ isWarning: boolean;
13
+ message: string;
14
+ errorCode?: string;
15
+ result: T; // see each endpoint's Response section below
16
+ }
17
+ ```
18
+
19
+ ## Operations
20
+
21
+ ### `addItemToAvatarInventory`
22
+
23
+ Adds an item to the avatar's inventory. Quantity (default 1): amount to add; if item with same name exists and Stack is true, this is added to existing Quantity. Stack (default true): if true and item exists by name, increment Quantity; if false and item exists, returns error "Item already exists". Accepts InventoryItem with Name, Description, optional Quantity, optional Stack, and optional MetaData.
24
+
25
+ **POST** `api/avatar/inventory`
26
+
27
+ **Request**
28
+
29
+ Body type: `InventoryItem`
30
+
31
+ | Field | Type |
32
+ | --- | --- |
33
+ | `Image2D` | `byte[]` |
34
+ | `Image2DURI` | `Uri` |
35
+ | `ThumbnailUrl` | `string` |
36
+ | `Object3D` | `byte[]` |
37
+ | `Object3DURI` | `Uri` |
38
+ | `Quantity` | `int` |
39
+ | `Stack` | `bool` |
40
+ | `GameSource` | `string` |
41
+ | `ItemType` | `string` |
42
+ | `NftId` | `string` |
43
+ | `InventoryItemType` | `InventoryItemType` |
44
+ | `Rarity` | `string` |
45
+ | `MaxQuantity` | `int` |
46
+ | `Weight` | `float` |
47
+ | `IsUsable` | `bool` |
48
+ | `IsTradeable` | `bool` |
49
+ | `OwnerAvatarId` | `string` |
50
+ | `AcquiredOn` | `DateTime` |
51
+ | `LastUsedOn` | `DateTime` |
52
+ | `Properties` | `Dictionary<string, object>` |
53
+
54
+ **Response**
55
+
56
+ Standard `OASISResult` envelope (see top of this page) with:
57
+
58
+ `result` type: `IInventoryItem`
59
+
60
+ | Field | Type |
61
+ | --- | --- |
62
+ | `Image2D` | `byte[]` |
63
+ | `Image2DURI` | `Uri` |
64
+ | `ThumbnailUrl` | `string` |
65
+ | `Object3D` | `byte[]` |
66
+ | `Object3DURI` | `Uri` |
67
+ | `Quantity` | `int` |
68
+ | `Stack` | `bool` |
69
+ | `IsStackable` | `bool` |
70
+ | `GameSource` | `string` |
71
+ | `ItemType` | `string` |
72
+ | `NftId` | `string` |
73
+ | `Rarity` | `string` |
74
+ | `MaxQuantity` | `int` |
75
+ | `Weight` | `float` |
76
+ | `IsUsable` | `bool` |
77
+ | `IsTradeable` | `bool` |
78
+ | `OwnerAvatarId` | `string` |
79
+ | `AcquiredOn` | `DateTime` |
80
+ | `LastUsedOn` | `DateTime` |
81
+ | `Properties` | `Dictionary<string, object>` |
82
+
83
+ **Example**
84
+
85
+ ```js
86
+ const { isError, message, result } = await oasis.avatar.addItemToAvatarInventory({
87
+ image2D: "<base64-bytes>",
88
+ image2DURI: "https://example.com/asset.png",
89
+ thumbnailUrl: "example string",
90
+ object3D: "<base64-bytes>",
91
+ object3DURI: "https://example.com/asset.png",
92
+ quantity: 1,
93
+ stack: true,
94
+ gameSource: "example string",
95
+ itemType: "example string",
96
+ nftId: "example string",
97
+ inventoryItemType: { },
98
+ rarity: "example string",
99
+ maxQuantity: 1,
100
+ weight: 1.0,
101
+ isUsable: true,
102
+ isTradeable: true,
103
+ ownerAvatarId: "example string",
104
+ acquiredOn: "2026-01-01T00:00:00Z",
105
+ lastUsedOn: "2026-01-01T00:00:00Z",
106
+ properties: { "<string>": {} }
107
+ });
108
+ if (isError) throw new Error(message);
109
+ console.log(result);
110
+ ```
111
+
112
+ Example response:
113
+
114
+ ```json
115
+ {
116
+ "isError": false,
117
+ "message": "",
118
+ "result": { "Image2D": "<base64-bytes>", "Image2DURI": "https://example.com/asset.png", "ThumbnailUrl": "example string", "Object3D": "<base64-bytes>", "Object3DURI": "https://example.com/asset.png", "Quantity": 1, "Stack": true, "IsStackable": true, "GameSource": "example string", "ItemType": "example string", "NftId": "example string", "Rarity": "example string", "MaxQuantity": 1, "Weight": 1.0, "IsUsable": true, "IsTradeable": true, "OwnerAvatarId": "example string", "AcquiredOn": "2026-01-01T00:00:00Z", "LastUsedOn": "2026-01-01T00:00:00Z", "Properties": { "<string>": {} } }
119
+ }
120
+ ```
121
+
122
+ ---
123
+
124
+ ### `addKarmaToAvatar`
125
+
126
+ Add positive karma to the given avatar. karmaType = The type of positive karma, karmaSourceType = Where the karma was earnt (App, dApp, hApp, Website, Game, karamSourceTitle/karamSourceDesc = The name/desc of the app/website/game where the karma was earnt. Only works for logged in users. Use Authenticate endpoint first to obtain a JWT Token.
127
+
128
+ **POST** `api/avatar/add-karma-to-avatar/{avatarId}`
129
+
130
+ Route parameters:
131
+
132
+ | Field | Type |
133
+ | --- | --- |
134
+ | `avatarId` | `Guid` |
135
+
136
+ **Request**
137
+
138
+ Body type: `AddRemoveKarmaToAvatarRequest`
139
+
140
+ | Field | Type |
141
+ | --- | --- |
142
+ | `AvatarId` | `Guid` |
143
+ | `KarmaType` | `KarmaTypePositive` |
144
+ | `karmaSourceType` | `KarmaSourceType` |
145
+ | `Avatar` | `IAvatar` |
146
+ | `KaramSourceTitle` | `string` |
147
+ | `KarmaSourceDesc` | `string` |
148
+
149
+ **Response**
150
+
151
+ Standard `OASISResult` envelope (see top of this page) with:
152
+
153
+ `result` type: `KarmaAkashicRecord`
154
+
155
+ | Field | Type |
156
+ | --- | --- |
157
+ | `AvatarId` | `Guid` |
158
+ | `Date` | `DateTime` |
159
+ | `Karma` | `int` |
160
+ | `TotalKarma` | `long` |
161
+ | `KarmaSourceTitle` | `string` |
162
+ | `KarmaSourceDesc` | `string` |
163
+ | `WebLink` | `string` |
164
+ | `KarmaSource` | `EnumValue<KarmaSourceType>` |
165
+ | `KarmaEarntOrLost` | `EnumValue<KarmaEarntOrLost>` |
166
+ | `KarmaTypePositive` | `EnumValue<KarmaTypePositive>` |
167
+ | `KarmaTypeNegative` | `EnumValue<KarmaTypeNegative>` |
168
+ | `Provider` | `EnumValue<ProviderType>` |
169
+
170
+ **Example**
171
+
172
+ ```js
173
+ const { isError, message, result } = await oasis.avatar.addKarmaToAvatar({
174
+ avatarId: "3fa85f64-5717-4562-b3fc-2c963f66afa6",
175
+ karmaType: { },
176
+ karmaSourceType: { },
177
+ avatar: { "ProviderWallets": { "<ProviderType>": [{ "AvatarId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "WalletId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "Name": "example string", "Description": /* <new string> */, "PrivateKey": "example string", "PublicKey": "example string", "WalletAddress": "example string", "WalletAddressSegwitP2SH": "example string", "SecretRecoveryPhrase": "example string", "Transactions": [{ "TransactionId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "FromWalletAddress": "example string", "ToWalletAddress": "example string", "Amount": 1.0, "Description": "example string", "CreatedDate": "2026-01-01T00:00:00Z", "TransactionType": { }, "TransactionCategory": { } }], "ProviderType": { }, "Balance": 1.0, "IsDefaultWallet": true }] }, "ProviderPrivateKey": { "<ProviderType>": "example string" }, "ProviderPublicKey": { "<ProviderType>": ["example string"] }, "ProviderUsername": { "<ProviderType>": "example string" }, "ProviderWalletAddress": { "<ProviderType>": ["example string"] }, "AvatarId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "Title": "example string", "FirstName": "example string", "LastName": "example string", "FullName": "example string", "FullNameWithTitle": "example string", "Username": "example string", "Email": "example string", "Password": "example string", "AvatarType": { "Score": 1.0 }, "AcceptTerms": true, "IsVerified": true, "JwtToken": "example string", "PasswordReset": "2026-01-01T00:00:00Z", "RefreshToken": "example string", "RefreshTokens": [{ "Id": 1, "Avatar": {}, "Token": "example string", "Expires": "2026-01-01T00:00:00Z", "Created": "2026-01-01T00:00:00Z", "CreatedByIp": "example string", "Revoked": "2026-01-01T00:00:00Z", "RevokedByIp": "example string", "ReplacedByToken": "example string" }], "ResetToken": "example string", "ResetTokenExpires": "2026-01-01T00:00:00Z", "VerificationToken": "example string", "Verified": "2026-01-01T00:00:00Z", "LastBeamedIn": "2026-01-01T00:00:00Z", "LastBeamedOut": "2026-01-01T00:00:00Z", "IsBeamedIn": true, "Image2D": "example string", "Karma": 1, "Level": 1, "XP": 1 },
178
+ karamSourceTitle: "example string",
179
+ karmaSourceDesc: "example string"
180
+ });
181
+ if (isError) throw new Error(message);
182
+ console.log(result);
183
+ ```
184
+
185
+ Example response:
186
+
187
+ ```json
188
+ {
189
+ "isError": false,
190
+ "message": "",
191
+ "result": { "AvatarId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "Date": "2026-01-01T00:00:00Z", "Karma": 1, "TotalKarma": 1, "KarmaSourceTitle": "example string", "KarmaSourceDesc": "example string", "WebLink": "example string", "KarmaSource": { "Score": 1.0 }, "KarmaEarntOrLost": { "Score": 1.0 }, "KarmaTypePositive": { "Score": 1.0 }, "KarmaTypeNegative": { "Score": 1.0 }, "Provider": { "Score": 1.0 } }
192
+ }
193
+ ```
194
+
195
+ ---
196
+
197
+ ### `addXp`
198
+
199
+ Add experience points to the logged-in avatar (e.g. from game actions like killing monsters). Only works for logged-in users. Amount 0 is allowed: returns current XP without changing it (used by clients to refresh XP cache after beam-in).
200
+
201
+ **POST** `api/avatar/add-xp`
202
+
203
+ **Request**
204
+
205
+ Body type: `AddXpRequest`
206
+
207
+ | Field | Type |
208
+ | --- | --- |
209
+ | `Amount` | `int` |
210
+
211
+ **Response**
212
+
213
+ Standard `OASISResult` envelope (see top of this page) with:
214
+
215
+ `result` type: `AddXpResponse`
216
+
217
+ | Field | Type |
218
+ | --- | --- |
219
+ | `NewTotal` | `int` |
220
+
221
+ **Example**
222
+
223
+ ```js
224
+ const { isError, message, result } = await oasis.avatar.addXp({
225
+ amount: 1
226
+ });
227
+ if (isError) throw new Error(message);
228
+ console.log(result);
229
+ ```
230
+
231
+ Example response:
232
+
233
+ ```json
234
+ {
235
+ "isError": false,
236
+ "message": "",
237
+ "result": { "NewTotal": 1 }
238
+ }
239
+ ```
240
+
241
+ ---
242
+
243
+ ### `authenticate`
244
+
245
+ Authenticate and log in using avatar credentials.
246
+
247
+ **POST** `api/avatar/authenticate`
248
+
249
+ **Request**
250
+
251
+ Body type: `AuthenticateRequest`
252
+
253
+ _No fields._
254
+
255
+ **Response**
256
+
257
+ Standard `OASISResult` envelope (see top of this page) with:
258
+
259
+ `result` type: `IAvatar`
260
+
261
+ | Field | Type |
262
+ | --- | --- |
263
+ | `ProviderWallets` | `Dictionary<ProviderType, List<IProviderWallet>>` |
264
+ | `ProviderPrivateKey` | `Dictionary<ProviderType, string>` |
265
+ | `ProviderPublicKey` | `Dictionary<ProviderType, List<string>>` |
266
+ | `ProviderUsername` | `Dictionary<ProviderType, string>` |
267
+ | `ProviderWalletAddress` | `Dictionary<ProviderType, List<string>>` |
268
+ | `AvatarId` | `Guid` |
269
+ | `Title` | `string` |
270
+ | `FirstName` | `string` |
271
+ | `LastName` | `string` |
272
+ | `FullName` | `string` |
273
+ | `FullNameWithTitle` | `string` |
274
+ | `Username` | `string` |
275
+ | `Email` | `string` |
276
+ | `Password` | `string` |
277
+ | `AvatarType` | `EnumValue<AvatarType>` |
278
+ | `AcceptTerms` | `bool` |
279
+ | `IsVerified` | `bool` |
280
+ | `JwtToken` | `string` |
281
+ | `PasswordReset` | `DateTime?` |
282
+ | `RefreshToken` | `string` |
283
+ | `RefreshTokens` | `List<RefreshToken>` |
284
+ | `ResetToken` | `string` |
285
+ | `ResetTokenExpires` | `DateTime?` |
286
+ | `VerificationToken` | `string` |
287
+ | `Verified` | `DateTime?` |
288
+ | `LastBeamedIn` | `DateTime?` |
289
+ | `LastBeamedOut` | `DateTime?` |
290
+ | `IsBeamedIn` | `bool` |
291
+ | `Image2D` | `string` |
292
+ | `Karma` | `int` |
293
+ | `Level` | `int` |
294
+ | `XP` | `int` |
295
+
296
+ **Example**
297
+
298
+ ```js
299
+ const { isError, message, result } = await oasis.avatar.authenticate({});
300
+ if (isError) throw new Error(message);
301
+ console.log(result);
302
+ ```
303
+
304
+ Example response:
305
+
306
+ ```json
307
+ {
308
+ "isError": false,
309
+ "message": "",
310
+ "result": { "ProviderWallets": { "<ProviderType>": [{ "AvatarId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "WalletId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "Name": "example string", "Description": /* <new string> */, "PrivateKey": "example string", "PublicKey": "example string", "WalletAddress": "example string", "WalletAddressSegwitP2SH": "example string", "SecretRecoveryPhrase": "example string", "Transactions": [{ "TransactionId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "FromWalletAddress": "example string", "ToWalletAddress": "example string", "Amount": 1.0, "Description": "example string", "CreatedDate": "2026-01-01T00:00:00Z", "TransactionType": { }, "TransactionCategory": { } }], "ProviderType": { }, "Balance": 1.0, "IsDefaultWallet": true }] }, "ProviderPrivateKey": { "<ProviderType>": "example string" }, "ProviderPublicKey": { "<ProviderType>": ["example string"] }, "ProviderUsername": { "<ProviderType>": "example string" }, "ProviderWalletAddress": { "<ProviderType>": ["example string"] }, "AvatarId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "Title": "example string", "FirstName": "example string", "LastName": "example string", "FullName": "example string", "FullNameWithTitle": "example string", "Username": "example string", "Email": "example string", "Password": "example string", "AvatarType": { "Score": 1.0 }, "AcceptTerms": true, "IsVerified": true, "JwtToken": "example string", "PasswordReset": "2026-01-01T00:00:00Z", "RefreshToken": "example string", "RefreshTokens": [{ "Id": 1, "Avatar": {}, "Token": "example string", "Expires": "2026-01-01T00:00:00Z", "Created": "2026-01-01T00:00:00Z", "CreatedByIp": "example string", "Revoked": "2026-01-01T00:00:00Z", "RevokedByIp": "example string", "ReplacedByToken": "example string" }], "ResetToken": "example string", "ResetTokenExpires": "2026-01-01T00:00:00Z", "VerificationToken": "example string", "Verified": "2026-01-01T00:00:00Z", "LastBeamedIn": "2026-01-01T00:00:00Z", "LastBeamedOut": "2026-01-01T00:00:00Z", "IsBeamedIn": true, "Image2D": "example string", "Karma": 1, "Level": 1, "XP": 1 }
311
+ }
312
+ ```
313
+
314
+ ---
315
+
316
+ ### `avatarHasItem`
317
+
318
+ Checks if the avatar has a specific item in their inventory.
319
+
320
+ **GET** `api/avatar/inventory/{itemId}/has`
321
+
322
+ Route parameters:
323
+
324
+ | Field | Type |
325
+ | --- | --- |
326
+ | `itemId` | `Guid` |
327
+
328
+ **Request**
329
+
330
+ No request body.
331
+
332
+ **Response**
333
+
334
+ Standard `OASISResult` envelope (see top of this page) with:
335
+
336
+ `result` type: `bool`
337
+
338
+ **Example**
339
+
340
+ ```js
341
+ const { isError, message, result } = await oasis.avatar.avatarHasItem({
342
+ itemId: '<itemId>'
343
+ });
344
+ if (isError) throw new Error(message);
345
+ console.log(result);
346
+ ```
347
+
348
+ Example response:
349
+
350
+ ```json
351
+ {
352
+ "isError": false,
353
+ "message": "",
354
+ "result": true
355
+ }
356
+ ```
357
+
358
+ ---
359
+
360
+ ### `avatarHasItemByName`
361
+
362
+ Checks if the avatar has a specific item by name in their inventory.
363
+
364
+ **GET** `api/avatar/inventory/has-by-name`
365
+
366
+ **Request**
367
+
368
+ Query parameters:
369
+
370
+ | Field | Type |
371
+ | --- | --- |
372
+ | `itemName` | `string` |
373
+
374
+ **Response**
375
+
376
+ Standard `OASISResult` envelope (see top of this page) with:
377
+
378
+ `result` type: `bool`
379
+
380
+ **Example**
381
+
382
+ ```js
383
+ const { isError, message, result } = await oasis.avatar.avatarHasItemByName({
384
+ itemName: 'example string'
385
+ });
386
+ if (isError) throw new Error(message);
387
+ console.log(result);
388
+ ```
389
+
390
+ Example response:
391
+
392
+ ```json
393
+ {
394
+ "isError": false,
395
+ "message": "",
396
+ "result": true
397
+ }
398
+ ```
399
+
400
+ ---
401
+
402
+ ### `create`
403
+
404
+ Allows a Wizard(Admin) to create new avatars including other wizards. Only works for logged in &amp; authenticated Wizards (Admins) or your own avatar. Use Authenticate endpoint first to obtain a JWT Token.
405
+
406
+ **POST** `api/avatar/create/{model}`
407
+
408
+ Route parameters:
409
+
410
+ | Field | Type |
411
+ | --- | --- |
412
+ | `model` | `CreateRequest` |
413
+
414
+ **Request**
415
+
416
+ No request body.
417
+
418
+ **Response**
419
+
420
+ Standard `OASISResult` envelope (see top of this page) with:
421
+
422
+ `result` type: `IAvatar`
423
+
424
+ | Field | Type |
425
+ | --- | --- |
426
+ | `ProviderWallets` | `Dictionary<ProviderType, List<IProviderWallet>>` |
427
+ | `ProviderPrivateKey` | `Dictionary<ProviderType, string>` |
428
+ | `ProviderPublicKey` | `Dictionary<ProviderType, List<string>>` |
429
+ | `ProviderUsername` | `Dictionary<ProviderType, string>` |
430
+ | `ProviderWalletAddress` | `Dictionary<ProviderType, List<string>>` |
431
+ | `AvatarId` | `Guid` |
432
+ | `Title` | `string` |
433
+ | `FirstName` | `string` |
434
+ | `LastName` | `string` |
435
+ | `FullName` | `string` |
436
+ | `FullNameWithTitle` | `string` |
437
+ | `Username` | `string` |
438
+ | `Email` | `string` |
439
+ | `Password` | `string` |
440
+ | `AvatarType` | `EnumValue<AvatarType>` |
441
+ | `AcceptTerms` | `bool` |
442
+ | `IsVerified` | `bool` |
443
+ | `JwtToken` | `string` |
444
+ | `PasswordReset` | `DateTime?` |
445
+ | `RefreshToken` | `string` |
446
+ | `RefreshTokens` | `List<RefreshToken>` |
447
+ | `ResetToken` | `string` |
448
+ | `ResetTokenExpires` | `DateTime?` |
449
+ | `VerificationToken` | `string` |
450
+ | `Verified` | `DateTime?` |
451
+ | `LastBeamedIn` | `DateTime?` |
452
+ | `LastBeamedOut` | `DateTime?` |
453
+ | `IsBeamedIn` | `bool` |
454
+ | `Image2D` | `string` |
455
+ | `Karma` | `int` |
456
+ | `Level` | `int` |
457
+ | `XP` | `int` |
458
+
459
+ **Example**
460
+
461
+ ```js
462
+ const { isError, message, result } = await oasis.avatar.create({
463
+ model: '<model>'
464
+ });
465
+ if (isError) throw new Error(message);
466
+ console.log(result);
467
+ ```
468
+
469
+ Example response:
470
+
471
+ ```json
472
+ {
473
+ "isError": false,
474
+ "message": "",
475
+ "result": { "ProviderWallets": { "<ProviderType>": [{ "AvatarId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "WalletId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "Name": "example string", "Description": /* <new string> */, "PrivateKey": "example string", "PublicKey": "example string", "WalletAddress": "example string", "WalletAddressSegwitP2SH": "example string", "SecretRecoveryPhrase": "example string", "Transactions": [{ "TransactionId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "FromWalletAddress": "example string", "ToWalletAddress": "example string", "Amount": 1.0, "Description": "example string", "CreatedDate": "2026-01-01T00:00:00Z", "TransactionType": { }, "TransactionCategory": { } }], "ProviderType": { }, "Balance": 1.0, "IsDefaultWallet": true }] }, "ProviderPrivateKey": { "<ProviderType>": "example string" }, "ProviderPublicKey": { "<ProviderType>": ["example string"] }, "ProviderUsername": { "<ProviderType>": "example string" }, "ProviderWalletAddress": { "<ProviderType>": ["example string"] }, "AvatarId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "Title": "example string", "FirstName": "example string", "LastName": "example string", "FullName": "example string", "FullNameWithTitle": "example string", "Username": "example string", "Email": "example string", "Password": "example string", "AvatarType": { "Score": 1.0 }, "AcceptTerms": true, "IsVerified": true, "JwtToken": "example string", "PasswordReset": "2026-01-01T00:00:00Z", "RefreshToken": "example string", "RefreshTokens": [{ "Id": 1, "Avatar": {}, "Token": "example string", "Expires": "2026-01-01T00:00:00Z", "Created": "2026-01-01T00:00:00Z", "CreatedByIp": "example string", "Revoked": "2026-01-01T00:00:00Z", "RevokedByIp": "example string", "ReplacedByToken": "example string" }], "ResetToken": "example string", "ResetTokenExpires": "2026-01-01T00:00:00Z", "VerificationToken": "example string", "Verified": "2026-01-01T00:00:00Z", "LastBeamedIn": "2026-01-01T00:00:00Z", "LastBeamedOut": "2026-01-01T00:00:00Z", "IsBeamedIn": true, "Image2D": "example string", "Karma": 1, "Level": 1, "XP": 1 }
476
+ }
477
+ ```
478
+
479
+ ---
480
+
481
+ ### `createAvatarSession`
482
+
483
+ Create a new session for an avatar (OASIS SSO System)
484
+
485
+ **POST** `api/avatar/{avatarId}/sessions`
486
+
487
+ Route parameters:
488
+
489
+ | Field | Type |
490
+ | --- | --- |
491
+ | `avatarId` | `Guid` |
492
+
493
+ **Request**
494
+
495
+ Body type: `CreateSessionRequest`
496
+
497
+ | Field | Type |
498
+ | --- | --- |
499
+ | `ServiceName` | `string` |
500
+ | `ServiceType` | `string` |
501
+ | `DeviceType` | `string` |
502
+ | `DeviceName` | `string` |
503
+ | `Location` | `string` |
504
+ | `IpAddress` | `string` |
505
+ | `UserAgent` | `string` |
506
+ | `Platform` | `string` |
507
+ | `Version` | `string` |
508
+ | `Metadata` | `string` |
509
+ | `ExpiresAt` | `DateTime?` |
510
+
511
+ **Response**
512
+
513
+ Standard `OASISResult` envelope (see top of this page) with:
514
+
515
+ `result` type: `AvatarSession`
516
+
517
+ | Field | Type |
518
+ | --- | --- |
519
+ | `Id` | `string` |
520
+ | `AvatarId` | `Guid` |
521
+ | `ServiceName` | `string` |
522
+ | `ServiceType` | `string` |
523
+ | `DeviceType` | `string` |
524
+ | `DeviceName` | `string` |
525
+ | `Location` | `string` |
526
+ | `IpAddress` | `string` |
527
+ | `IsActive` | `bool` |
528
+ | `LastActivity` | `DateTime` |
529
+ | `LoginTime` | `DateTime` |
530
+ | `UserAgent` | `string` |
531
+ | `Platform` | `string` |
532
+ | `Version` | `string` |
533
+ | `CreatedAt` | `DateTime` |
534
+ | `UpdatedAt` | `DateTime` |
535
+ | `Metadata` | `string` |
536
+ | `SecurityToken` | `string` |
537
+ | `ExpiresAt` | `DateTime?` |
538
+
539
+ **Example**
540
+
541
+ ```js
542
+ const { isError, message, result } = await oasis.avatar.createAvatarSession({
543
+ avatarId: '<avatarId>',
544
+ serviceName: "example string",
545
+ serviceType: "example string",
546
+ deviceType: "example string",
547
+ deviceName: "example string",
548
+ location: "example string",
549
+ ipAddress: "example string",
550
+ userAgent: "example string",
551
+ platform: "example string",
552
+ version: "example string",
553
+ metadata: "example string",
554
+ expiresAt: "2026-01-01T00:00:00Z"
555
+ });
556
+ if (isError) throw new Error(message);
557
+ console.log(result);
558
+ ```
559
+
560
+ Example response:
561
+
562
+ ```json
563
+ {
564
+ "isError": false,
565
+ "message": "",
566
+ "result": { "Id": "example string", "AvatarId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "ServiceName": "example string", "ServiceType": "example string", "DeviceType": "example string", "DeviceName": "example string", "Location": "example string", "IpAddress": "example string", "IsActive": true, "LastActivity": "2026-01-01T00:00:00Z", "LoginTime": "2026-01-01T00:00:00Z", "UserAgent": "example string", "Platform": "example string", "Version": "example string", "CreatedAt": "2026-01-01T00:00:00Z", "UpdatedAt": "2026-01-01T00:00:00Z", "Metadata": "example string", "SecurityToken": "example string", "ExpiresAt": "2026-01-01T00:00:00Z" }
567
+ }
568
+ ```
569
+
570
+ ---
571
+
572
+ ### `delete`
573
+
574
+ Delete the given avatar using their id. Only works for logged in users. Use Authenticate endpoint first to obtain a JWT Token.
575
+
576
+ **DELETE** `api/avatar/{id:Guid}`
577
+
578
+ Route parameters:
579
+
580
+ | Field | Type |
581
+ | --- | --- |
582
+ | `id` | `Guid` |
583
+
584
+ **Request**
585
+
586
+ No request body.
587
+
588
+ **Response**
589
+
590
+ Standard `OASISResult` envelope (see top of this page) with:
591
+
592
+ `result` type: `bool`
593
+
594
+ **Example**
595
+
596
+ ```js
597
+ const { isError, message, result } = await oasis.avatar.delete({
598
+ id: '<id>'
599
+ });
600
+ if (isError) throw new Error(message);
601
+ console.log(result);
602
+ ```
603
+
604
+ Example response:
605
+
606
+ ```json
607
+ {
608
+ "isError": false,
609
+ "message": "",
610
+ "result": true
611
+ }
612
+ ```
613
+
614
+ ---
615
+
616
+ ### `deleteByEmail`
617
+
618
+ Delete the given avatar using their email. Only works for logged in users. Use Authenticate endpoint first to obtain a JWT Token.
619
+
620
+ **DELETE** `api/avatar/delete-by-email/{email}`
621
+
622
+ Route parameters:
623
+
624
+ | Field | Type |
625
+ | --- | --- |
626
+ | `email` | `string` |
627
+
628
+ **Request**
629
+
630
+ No request body.
631
+
632
+ **Response**
633
+
634
+ Standard `OASISResult` envelope (see top of this page) with:
635
+
636
+ `result` type: `bool`
637
+
638
+ **Example**
639
+
640
+ ```js
641
+ const { isError, message, result } = await oasis.avatar.deleteByEmail({
642
+ email: '<email>'
643
+ });
644
+ if (isError) throw new Error(message);
645
+ console.log(result);
646
+ ```
647
+
648
+ Example response:
649
+
650
+ ```json
651
+ {
652
+ "isError": false,
653
+ "message": "",
654
+ "result": true
655
+ }
656
+ ```
657
+
658
+ ---
659
+
660
+ ### `deleteByUsername`
661
+
662
+ Delete the given avatar using their username. Only works for logged in users. Use Authenticate endpoint first to obtain a JWT Token.
663
+
664
+ **DELETE** `api/avatar/delete-by-username/{username}`
665
+
666
+ Route parameters:
667
+
668
+ | Field | Type |
669
+ | --- | --- |
670
+ | `username` | `string` |
671
+
672
+ **Request**
673
+
674
+ No request body.
675
+
676
+ **Response**
677
+
678
+ Standard `OASISResult` envelope (see top of this page) with:
679
+
680
+ `result` type: `bool`
681
+
682
+ **Example**
683
+
684
+ ```js
685
+ const { isError, message, result } = await oasis.avatar.deleteByUsername({
686
+ username: '<username>'
687
+ });
688
+ if (isError) throw new Error(message);
689
+ console.log(result);
690
+ ```
691
+
692
+ Example response:
693
+
694
+ ```json
695
+ {
696
+ "isError": false,
697
+ "message": "",
698
+ "result": true
699
+ }
700
+ ```
701
+
702
+ ---
703
+
704
+ ### `forgotPassword`
705
+
706
+ This will send a password reset email allowing the user to reset their password. Call the avatar/validate-reset-token method passing in the reset token received in the email.
707
+
708
+ **POST** `api/avatar/forgot-password`
709
+
710
+ **Request**
711
+
712
+ Body type: `ForgotPasswordRequest`
713
+
714
+ | Field | Type |
715
+ | --- | --- |
716
+ | `Email` | `string` |
717
+
718
+ **Response**
719
+
720
+ Standard `OASISResult` envelope (see top of this page) with:
721
+
722
+ `result` type: `string`
723
+
724
+ **Example**
725
+
726
+ ```js
727
+ const { isError, message, result } = await oasis.avatar.forgotPassword({
728
+ email: "example string"
729
+ });
730
+ if (isError) throw new Error(message);
731
+ console.log(result);
732
+ ```
733
+
734
+ Example response:
735
+
736
+ ```json
737
+ {
738
+ "isError": false,
739
+ "message": "",
740
+ "result": "example string"
741
+ }
742
+ ```
743
+
744
+ ---
745
+
746
+ ### `getAll`
747
+
748
+ Get's all avatars within The OASIS. Only works for logged in &amp; authenticated Wizards (Admins). Use Authenticate endpoint first to obtain a JWT Token.
749
+
750
+ **GET** `api/avatar/get-all-avatars`
751
+
752
+ **Request**
753
+
754
+ No request body.
755
+
756
+ **Response**
757
+
758
+ Standard `OASISResult` envelope (see top of this page) with:
759
+
760
+ `result` type: `IAvatar` (array)
761
+
762
+ | Field | Type |
763
+ | --- | --- |
764
+ | `ProviderWallets` | `Dictionary<ProviderType, List<IProviderWallet>>` |
765
+ | `ProviderPrivateKey` | `Dictionary<ProviderType, string>` |
766
+ | `ProviderPublicKey` | `Dictionary<ProviderType, List<string>>` |
767
+ | `ProviderUsername` | `Dictionary<ProviderType, string>` |
768
+ | `ProviderWalletAddress` | `Dictionary<ProviderType, List<string>>` |
769
+ | `AvatarId` | `Guid` |
770
+ | `Title` | `string` |
771
+ | `FirstName` | `string` |
772
+ | `LastName` | `string` |
773
+ | `FullName` | `string` |
774
+ | `FullNameWithTitle` | `string` |
775
+ | `Username` | `string` |
776
+ | `Email` | `string` |
777
+ | `Password` | `string` |
778
+ | `AvatarType` | `EnumValue<AvatarType>` |
779
+ | `AcceptTerms` | `bool` |
780
+ | `IsVerified` | `bool` |
781
+ | `JwtToken` | `string` |
782
+ | `PasswordReset` | `DateTime?` |
783
+ | `RefreshToken` | `string` |
784
+ | `RefreshTokens` | `List<RefreshToken>` |
785
+ | `ResetToken` | `string` |
786
+ | `ResetTokenExpires` | `DateTime?` |
787
+ | `VerificationToken` | `string` |
788
+ | `Verified` | `DateTime?` |
789
+ | `LastBeamedIn` | `DateTime?` |
790
+ | `LastBeamedOut` | `DateTime?` |
791
+ | `IsBeamedIn` | `bool` |
792
+ | `Image2D` | `string` |
793
+ | `Karma` | `int` |
794
+ | `Level` | `int` |
795
+ | `XP` | `int` |
796
+
797
+ **Example**
798
+
799
+ ```js
800
+ const { isError, message, result } = await oasis.avatar.getAll({});
801
+ if (isError) throw new Error(message);
802
+ console.log(result);
803
+ ```
804
+
805
+ Example response:
806
+
807
+ ```json
808
+ {
809
+ "isError": false,
810
+ "message": "",
811
+ "result": [{ "ProviderWallets": { "<ProviderType>": [{ "AvatarId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "WalletId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "Name": "example string", "Description": /* <new string> */, "PrivateKey": "example string", "PublicKey": "example string", "WalletAddress": "example string", "WalletAddressSegwitP2SH": "example string", "SecretRecoveryPhrase": "example string", "Transactions": [{ "TransactionId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "FromWalletAddress": "example string", "ToWalletAddress": "example string", "Amount": 1.0, "Description": "example string", "CreatedDate": "2026-01-01T00:00:00Z", "TransactionType": { }, "TransactionCategory": { } }], "ProviderType": { }, "Balance": 1.0, "IsDefaultWallet": true }] }, "ProviderPrivateKey": { "<ProviderType>": "example string" }, "ProviderPublicKey": { "<ProviderType>": ["example string"] }, "ProviderUsername": { "<ProviderType>": "example string" }, "ProviderWalletAddress": { "<ProviderType>": ["example string"] }, "AvatarId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "Title": "example string", "FirstName": "example string", "LastName": "example string", "FullName": "example string", "FullNameWithTitle": "example string", "Username": "example string", "Email": "example string", "Password": "example string", "AvatarType": { "Score": 1.0 }, "AcceptTerms": true, "IsVerified": true, "JwtToken": "example string", "PasswordReset": "2026-01-01T00:00:00Z", "RefreshToken": "example string", "RefreshTokens": [{ "Id": 1, "Avatar": {}, "Token": "example string", "Expires": "2026-01-01T00:00:00Z", "Created": "2026-01-01T00:00:00Z", "CreatedByIp": "example string", "Revoked": "2026-01-01T00:00:00Z", "RevokedByIp": "example string", "ReplacedByToken": "example string" }], "ResetToken": "example string", "ResetTokenExpires": "2026-01-01T00:00:00Z", "VerificationToken": "example string", "Verified": "2026-01-01T00:00:00Z", "LastBeamedIn": "2026-01-01T00:00:00Z", "LastBeamedOut": "2026-01-01T00:00:00Z", "IsBeamedIn": true, "Image2D": "example string", "Karma": 1, "Level": 1, "XP": 1 }]
812
+ }
813
+ ```
814
+
815
+ ---
816
+
817
+ ### `getAllAvatarDetails`
818
+
819
+ Get's all the avatar details within The OASIS. Only works for logged in &amp; authenticated Wizards (Admins). Use Authenticate endpoint first to obtain a JWT Token.
820
+
821
+ **GET** `api/avatar/get-all-avatar-details`
822
+
823
+ **Request**
824
+
825
+ No request body.
826
+
827
+ **Response**
828
+
829
+ Standard `OASISResult` envelope (see top of this page) with:
830
+
831
+ `result` type: `IAvatarDetail` (array)
832
+
833
+ | Field | Type |
834
+ | --- | --- |
835
+ | `Id` | `new Guid` |
836
+ | `Username` | `string` |
837
+ | `Email` | `string` |
838
+ | `Karma` | `long` |
839
+ | `Level` | `int` |
840
+ | `XP` | `int` |
841
+ | `Model3D` | `string` |
842
+ | `UmaJson` | `string` |
843
+ | `Portrait` | `string` |
844
+ | `DOB` | `DateTime` |
845
+ | `Address` | `string` |
846
+ | `Town` | `string` |
847
+ | `County` | `string` |
848
+ | `Country` | `string` |
849
+ | `Postcode` | `string` |
850
+ | `Landline` | `string` |
851
+ | `Mobile` | `string` |
852
+ | `Achievements` | `IList<IAchievement>` |
853
+ | `Attributes` | `IAvatarAttributes` |
854
+ | `Aura` | `IAvatarAura` |
855
+ | `Chakras` | `IAvatarChakras` |
856
+ | `DimensionLevelIds` | `IDictionary<DimensionLevel, Guid>` |
857
+ | `DimensionLevels` | `IDictionary<DimensionLevel, IHolon>` |
858
+ | `FavouriteColour` | `ConsoleColor` |
859
+ | `GeneKeys` | `IList<IGeneKey>` |
860
+ | `Gifts` | `IList<IAvatarGift>` |
861
+ | `HeartRateData` | `IList<IHeartRateEntry>` |
862
+ | `HumanDesign` | `IHumanDesign` |
863
+ | `Inventory` | `IList<IInventoryItem>` |
864
+ | `KarmaAkashicRecords` | `IList<IKarmaAkashicRecord>` |
865
+ | `Omniverse` | `IOmiverse` |
866
+ | `Skills` | `IAvatarSkills` |
867
+ | `Spells` | `IList<ISpell>` |
868
+ | `STARCLIColour` | `ConsoleColor` |
869
+ | `Stats` | `IAvatarStats` |
870
+ | `SuperPowers` | `IAvatarSuperPowers` |
871
+ | `ActiveQuestId` | `Guid?` |
872
+ | `ActiveObjectiveId` | `Guid?` |
873
+
874
+ **Example**
875
+
876
+ ```js
877
+ const { isError, message, result } = await oasis.avatar.getAllAvatarDetails({});
878
+ if (isError) throw new Error(message);
879
+ console.log(result);
880
+ ```
881
+
882
+ Example response:
883
+
884
+ ```json
885
+ {
886
+ "isError": false,
887
+ "message": "",
888
+ "result": [{ "Id": /* <new Guid> */, "Username": "example string", "Email": "example string", "Karma": 1, "Level": 1, "XP": 1, "Model3D": "example string", "UmaJson": "example string", "Portrait": "example string", "DOB": "2026-01-01T00:00:00Z", "Address": "example string", "Town": "example string", "County": "example string", "Country": "example string", "Postcode": "example string", "Landline": "example string", "Mobile": "example string", "Achievements": [{ "AchievementEarnt": "2026-01-01T00:00:00Z", "AchievementType": { }, "AvatarId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "Description": "example string", "KarmaSource": { "Score": 1.0 }, "KarmaSourceDesc": "example string", "KarmaSourceTitle": "example string", "Name": "example string", "Provider": { "Score": 1.0 }, "WebLink": "example string" }], "Attributes": { "Dexterity": 1, "Intelligence": 1, "Magic": 1, "Speed": 1, "Strength": 1, "Toughness": 1, "Wisdom": 1, "Vitality": 1, "Endurance": 1 }, "Aura": { "Progress": 1, "Brightness": 1, "Size": 1, "ColourBlue": 1, "ColourGreen": 1, "ColourRed": 1, "Level": 1, "Value": 1 }, "Chakras": { "Crown": { }, "Heart": { }, "Root": { }, "Sacral": { }, "SolarPlexus": { }, "ThirdEye": { }, "Throat": { } }, "DimensionLevelIds": /* <IDictionary<DimensionLevel, Guid>> */, "DimensionLevels": /* <IDictionary<DimensionLevel, IHolon>> */, "FavouriteColour": /* <ConsoleColor> */, "GeneKeys": [{ "Description": "example string", "Gift": "example string", "Name": "example string", "Shadow": "example string", "Sidhi": "example string" }], "Gifts": [{ "AvatarId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "GiftEarnt": "2026-01-01T00:00:00Z", "GiftType": {}, "KarmaSource": {}, "KarmaSourceDesc": "example string", "KarmaSourceTitle": "example string", "Provider": {}, "WebLink": "example string" }], "HeartRateData": [{ "HeartRateValue": 1, "TimeStamp": "2026-01-01T00:00:00Z" }], "HumanDesign": { "Type": "example string" }, "Inventory": [{ "Image2D": "<base64-bytes>", "Image2DURI": "https://example.com/asset.png", "ThumbnailUrl": "example string", "Object3D": "<base64-bytes>", "Object3DURI": "https://example.com/asset.png", "Quantity": 1, "Stack": true, "IsStackable": true, "GameSource": "example string", "ItemType": "example string", "NftId": "example string", "Rarity": "example string", "MaxQuantity": 1, "Weight": 1.0, "IsUsable": true, "IsTradeable": true, "OwnerAvatarId": "example string", "AcquiredOn": "2026-01-01T00:00:00Z", "LastUsedOn": "2026-01-01T00:00:00Z", "Properties": { "<string>": {} } }], "KarmaAkashicRecords": [{ "AvatarId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "Date": "2026-01-01T00:00:00Z", "Karma": 1, "KarmaEarntOrLost": { "Score": 1.0 }, "KarmaSource": {}, "KarmaSourceDesc": "example string", "KarmaSourceTitle": "example string", "KarmaTypeNegative": { "Score": 1.0 }, "KarmaTypePositive": { "Score": 1.0 }, "Provider": {}, "TotalKarma": 1, "WebLink": "example string" }], "Omniverse": { "GreatGrandSuperStar": { }, "Dimensions": { "EighthDimension": { }, "NinthDimension": { }, "TenthDimension": { }, "EleventhDimension": { }, "TwelfthDimension": { }, "CustomDimensions": [{ "DimensionLevel": { } }] }, "Multiverses": [{ "GrandSuperStar": { "Stars": [ /* <I> */ ] }, "Dimensions": { "FirstDimension": { "Universe": { "Dimensions": [], "GalaxyClusters": [{ "Galaxies": [{ "SuperStar": { "Stars": [{ "Luminosity": 1, "StarType": { }, "StarClassification": { }, "StarBinaryType": { } }] }, "SolarSystems": [{ "Star": {}, "Planets": [{ "Moons": [{ }] }], "Asteroids": [{ }], "Comets": [{ }], "Meteroids": [{ }] }], "Nebulas": [{ }], "Stars": [], "Planets": [], "Asteroids": [], "Comets": [], "Meteroids": [] }], "SolarSystems": [], "Stars": [], "Planets": [], "Asteroids": [], "Comets": [], "Meteroids": [], "IsSuperCluster": true }], "SolarSystems": [], "Nebulas": [], "Stars": [], "Planets": [], "Asteroids": [], "Comets": [], "Meteroids": [] } }, "SecondDimension": { "Universe": {} }, "ThirdDimension": { "UniversePrime": {}, "MagicVerse": {}, "ParallelUniverses": [] }, "FourthDimension": { "Universe": {} }, "FifthDimension": { "Universe": {} }, "SixthDimension": { "Universe": {} }, "SeventhDimension": { "Universe": {} }, "CustomDimensions": [] } }] }, "Skills": { "Computers": 1, "Engineering": 1, "Farming": 1, "FireStarting": 1, "Fishing": 1, "Languages": 1, "Meditation": 1, "MeleeCombat": 1, "Mindfulness": 1, "Negotiating": 1, "RangedCombat": 1, "Research": 1, "Science": 1, "SpellCasting": 1, "Translating": 1, "Yoga": 1 }, "Spells": [{ "Description": "example string", "FireDamage": 1, "HealingPower": 1, "IceDamage": 1, "LightningDamage": 1, "Name": "example string", "PoisonDamage": 1, "WaterDamage": 1, "WindDamage": 1 }], "STARCLIColour": /* <ConsoleColor> */, "Stats": { "Energy": { "Current": 1, "Max": 1 }, "HP": {}, "Mana": {}, "Stamina": {} }, "SuperPowers": { "AstralProjection": 1, "BioLocatation": 1, "Flight": 1, "FreezeBreath": 1, "HeatVision": 1, "Invulnerability": 1, "RemoteViewing": 1, "SuperSpeed": 1, "SuperStrength": 1, "Telekinesis": 1, "Telepathy": 1, "Teleportation": 1, "XRayVision": 1 }, "ActiveQuestId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "ActiveObjectiveId": "3fa85f64-5717-4562-b3fc-2c963f66afa6" }]
889
+ }
890
+ ```
891
+
892
+ ---
893
+
894
+ ### `getAllAvatarNames`
895
+
896
+ Get's a list of all of the avatar names within The OASIS. Only works for logged in &amp; authenticated users. Use Authenticate endpoint first to obtain a JWT Token.
897
+
898
+ **GET** `api/avatar/get-all-avatar-names/{includeUsernames}/{includeIds}`
899
+
900
+ Route parameters:
901
+
902
+ | Field | Type |
903
+ | --- | --- |
904
+ | `includeUsernames` | `bool` |
905
+ | `includeIds` | `bool` |
906
+
907
+ **Request**
908
+
909
+ No request body.
910
+
911
+ **Response**
912
+
913
+ Standard `OASISResult` envelope (see top of this page) with:
914
+
915
+ `result` type: `string` (array)
916
+
917
+ **Example**
918
+
919
+ ```js
920
+ const { isError, message, result } = await oasis.avatar.getAllAvatarNames({
921
+ includeUsernames: '<includeUsernames>',
922
+ includeIds: '<includeIds>'
923
+ });
924
+ if (isError) throw new Error(message);
925
+ console.log(result);
926
+ ```
927
+
928
+ Example response:
929
+
930
+ ```json
931
+ {
932
+ "isError": false,
933
+ "message": "",
934
+ "result": ["example string"]
935
+ }
936
+ ```
937
+
938
+ ---
939
+
940
+ ### `getAllAvatarNamesGroupedByName`
941
+
942
+ Get's a list of all of the avatar names within The OASIS along with their respective id's. Only works for logged in &amp; authenticated users. Use Authenticate endpoint first to obtain a JWT Token.
943
+
944
+ **GET** `api/avatar/get-all-avatar-names-grouped-by-name/{includeUsernames}/{includeIds}`
945
+
946
+ Route parameters:
947
+
948
+ | Field | Type |
949
+ | --- | --- |
950
+ | `includeUsernames` | `bool` |
951
+ | `includeIds` | `bool` |
952
+
953
+ **Request**
954
+
955
+ No request body.
956
+
957
+ **Response**
958
+
959
+ Standard `OASISResult` envelope (see top of this page) with:
960
+
961
+ `result` type: `Dictionary<string, List<string>>` - a key/value map keyed by `string`, each value a `List<string>`.
962
+
963
+ **Example**
964
+
965
+ ```js
966
+ const { isError, message, result } = await oasis.avatar.getAllAvatarNamesGroupedByName({
967
+ includeUsernames: '<includeUsernames>',
968
+ includeIds: '<includeIds>'
969
+ });
970
+ if (isError) throw new Error(message);
971
+ console.log(result);
972
+ ```
973
+
974
+ Example response:
975
+
976
+ ```json
977
+ {
978
+ "isError": false,
979
+ "message": "",
980
+ "result": { "<string>": ["example string"] }
981
+ }
982
+ ```
983
+
984
+ ---
985
+
986
+ ### `getAvatarDetail`
987
+
988
+ Get's the avatar's details for a given id. Contains their address, DOB, Karma, XP, Level, Portrait (2D Image), 3DModel, HeartRateData, Chakras, Aurua, Gifts, Stats (HP, Mana, Energy &amp; Staminia), GeneKeys, HumanDesign, Skills, Attributes (Strength, Speed, Dexterity, Toughness, Wisdom, Intelligence, Magic, Vitality &amp; Endurance), SuperPowers, Spells, Achievements &amp; Inventory. They can also access the full Omniverse from inside their avatar. More to come soon... ;-) Only works for logged in &amp; authenticated Wizards (Admins) or your own avatar. Use Authenticate endpoint first to obtain a JWT Token.
989
+
990
+ **GET** `api/avatar/get-avatar-detail-by-id/{id:guid}`
991
+
992
+ Route parameters:
993
+
994
+ | Field | Type |
995
+ | --- | --- |
996
+ | `id` | `Guid` |
997
+
998
+ **Request**
999
+
1000
+ No request body.
1001
+
1002
+ **Response**
1003
+
1004
+ Standard `OASISResult` envelope (see top of this page) with:
1005
+
1006
+ `result` type: `IAvatarDetail`
1007
+
1008
+ | Field | Type |
1009
+ | --- | --- |
1010
+ | `Id` | `new Guid` |
1011
+ | `Username` | `string` |
1012
+ | `Email` | `string` |
1013
+ | `Karma` | `long` |
1014
+ | `Level` | `int` |
1015
+ | `XP` | `int` |
1016
+ | `Model3D` | `string` |
1017
+ | `UmaJson` | `string` |
1018
+ | `Portrait` | `string` |
1019
+ | `DOB` | `DateTime` |
1020
+ | `Address` | `string` |
1021
+ | `Town` | `string` |
1022
+ | `County` | `string` |
1023
+ | `Country` | `string` |
1024
+ | `Postcode` | `string` |
1025
+ | `Landline` | `string` |
1026
+ | `Mobile` | `string` |
1027
+ | `Achievements` | `IList<IAchievement>` |
1028
+ | `Attributes` | `IAvatarAttributes` |
1029
+ | `Aura` | `IAvatarAura` |
1030
+ | `Chakras` | `IAvatarChakras` |
1031
+ | `DimensionLevelIds` | `IDictionary<DimensionLevel, Guid>` |
1032
+ | `DimensionLevels` | `IDictionary<DimensionLevel, IHolon>` |
1033
+ | `FavouriteColour` | `ConsoleColor` |
1034
+ | `GeneKeys` | `IList<IGeneKey>` |
1035
+ | `Gifts` | `IList<IAvatarGift>` |
1036
+ | `HeartRateData` | `IList<IHeartRateEntry>` |
1037
+ | `HumanDesign` | `IHumanDesign` |
1038
+ | `Inventory` | `IList<IInventoryItem>` |
1039
+ | `KarmaAkashicRecords` | `IList<IKarmaAkashicRecord>` |
1040
+ | `Omniverse` | `IOmiverse` |
1041
+ | `Skills` | `IAvatarSkills` |
1042
+ | `Spells` | `IList<ISpell>` |
1043
+ | `STARCLIColour` | `ConsoleColor` |
1044
+ | `Stats` | `IAvatarStats` |
1045
+ | `SuperPowers` | `IAvatarSuperPowers` |
1046
+ | `ActiveQuestId` | `Guid?` |
1047
+ | `ActiveObjectiveId` | `Guid?` |
1048
+
1049
+ **Example**
1050
+
1051
+ ```js
1052
+ const { isError, message, result } = await oasis.avatar.getAvatarDetail({
1053
+ id: '<id>'
1054
+ });
1055
+ if (isError) throw new Error(message);
1056
+ console.log(result);
1057
+ ```
1058
+
1059
+ Example response:
1060
+
1061
+ ```json
1062
+ {
1063
+ "isError": false,
1064
+ "message": "",
1065
+ "result": { "Id": /* <new Guid> */, "Username": "example string", "Email": "example string", "Karma": 1, "Level": 1, "XP": 1, "Model3D": "example string", "UmaJson": "example string", "Portrait": "example string", "DOB": "2026-01-01T00:00:00Z", "Address": "example string", "Town": "example string", "County": "example string", "Country": "example string", "Postcode": "example string", "Landline": "example string", "Mobile": "example string", "Achievements": [{ "AchievementEarnt": "2026-01-01T00:00:00Z", "AchievementType": { }, "AvatarId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "Description": "example string", "KarmaSource": { "Score": 1.0 }, "KarmaSourceDesc": "example string", "KarmaSourceTitle": "example string", "Name": "example string", "Provider": { "Score": 1.0 }, "WebLink": "example string" }], "Attributes": { "Dexterity": 1, "Intelligence": 1, "Magic": 1, "Speed": 1, "Strength": 1, "Toughness": 1, "Wisdom": 1, "Vitality": 1, "Endurance": 1 }, "Aura": { "Progress": 1, "Brightness": 1, "Size": 1, "ColourBlue": 1, "ColourGreen": 1, "ColourRed": 1, "Level": 1, "Value": 1 }, "Chakras": { "Crown": { }, "Heart": { }, "Root": { }, "Sacral": { }, "SolarPlexus": { }, "ThirdEye": { }, "Throat": { } }, "DimensionLevelIds": /* <IDictionary<DimensionLevel, Guid>> */, "DimensionLevels": /* <IDictionary<DimensionLevel, IHolon>> */, "FavouriteColour": /* <ConsoleColor> */, "GeneKeys": [{ "Description": "example string", "Gift": "example string", "Name": "example string", "Shadow": "example string", "Sidhi": "example string" }], "Gifts": [{ "AvatarId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "GiftEarnt": "2026-01-01T00:00:00Z", "GiftType": {}, "KarmaSource": {}, "KarmaSourceDesc": "example string", "KarmaSourceTitle": "example string", "Provider": {}, "WebLink": "example string" }], "HeartRateData": [{ "HeartRateValue": 1, "TimeStamp": "2026-01-01T00:00:00Z" }], "HumanDesign": { "Type": "example string" }, "Inventory": [{ "Image2D": "<base64-bytes>", "Image2DURI": "https://example.com/asset.png", "ThumbnailUrl": "example string", "Object3D": "<base64-bytes>", "Object3DURI": "https://example.com/asset.png", "Quantity": 1, "Stack": true, "IsStackable": true, "GameSource": "example string", "ItemType": "example string", "NftId": "example string", "Rarity": "example string", "MaxQuantity": 1, "Weight": 1.0, "IsUsable": true, "IsTradeable": true, "OwnerAvatarId": "example string", "AcquiredOn": "2026-01-01T00:00:00Z", "LastUsedOn": "2026-01-01T00:00:00Z", "Properties": { "<string>": {} } }], "KarmaAkashicRecords": [{ "AvatarId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "Date": "2026-01-01T00:00:00Z", "Karma": 1, "KarmaEarntOrLost": { "Score": 1.0 }, "KarmaSource": {}, "KarmaSourceDesc": "example string", "KarmaSourceTitle": "example string", "KarmaTypeNegative": { "Score": 1.0 }, "KarmaTypePositive": { "Score": 1.0 }, "Provider": {}, "TotalKarma": 1, "WebLink": "example string" }], "Omniverse": { "GreatGrandSuperStar": { }, "Dimensions": { "EighthDimension": { }, "NinthDimension": { }, "TenthDimension": { }, "EleventhDimension": { }, "TwelfthDimension": { }, "CustomDimensions": [{ "DimensionLevel": { } }] }, "Multiverses": [{ "GrandSuperStar": { "Stars": [ /* <I> */ ] }, "Dimensions": { "FirstDimension": { "Universe": { "Dimensions": [], "GalaxyClusters": [{ "Galaxies": [{ "SuperStar": { "Stars": [{ "Luminosity": 1, "StarType": { }, "StarClassification": { }, "StarBinaryType": { } }] }, "SolarSystems": [{ "Star": {}, "Planets": [{ "Moons": [{ }] }], "Asteroids": [{ }], "Comets": [{ }], "Meteroids": [{ }] }], "Nebulas": [{ }], "Stars": [], "Planets": [], "Asteroids": [], "Comets": [], "Meteroids": [] }], "SolarSystems": [], "Stars": [], "Planets": [], "Asteroids": [], "Comets": [], "Meteroids": [], "IsSuperCluster": true }], "SolarSystems": [], "Nebulas": [], "Stars": [], "Planets": [], "Asteroids": [], "Comets": [], "Meteroids": [] } }, "SecondDimension": { "Universe": {} }, "ThirdDimension": { "UniversePrime": {}, "MagicVerse": {}, "ParallelUniverses": [] }, "FourthDimension": { "Universe": {} }, "FifthDimension": { "Universe": {} }, "SixthDimension": { "Universe": {} }, "SeventhDimension": { "Universe": {} }, "CustomDimensions": [] } }] }, "Skills": { "Computers": 1, "Engineering": 1, "Farming": 1, "FireStarting": 1, "Fishing": 1, "Languages": 1, "Meditation": 1, "MeleeCombat": 1, "Mindfulness": 1, "Negotiating": 1, "RangedCombat": 1, "Research": 1, "Science": 1, "SpellCasting": 1, "Translating": 1, "Yoga": 1 }, "Spells": [{ "Description": "example string", "FireDamage": 1, "HealingPower": 1, "IceDamage": 1, "LightningDamage": 1, "Name": "example string", "PoisonDamage": 1, "WaterDamage": 1, "WindDamage": 1 }], "STARCLIColour": /* <ConsoleColor> */, "Stats": { "Energy": { "Current": 1, "Max": 1 }, "HP": {}, "Mana": {}, "Stamina": {} }, "SuperPowers": { "AstralProjection": 1, "BioLocatation": 1, "Flight": 1, "FreezeBreath": 1, "HeatVision": 1, "Invulnerability": 1, "RemoteViewing": 1, "SuperSpeed": 1, "SuperStrength": 1, "Telekinesis": 1, "Telepathy": 1, "Teleportation": 1, "XRayVision": 1 }, "ActiveQuestId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "ActiveObjectiveId": "3fa85f64-5717-4562-b3fc-2c963f66afa6" }
1066
+ }
1067
+ ```
1068
+
1069
+ ---
1070
+
1071
+ ### `getAvatarDetailByEmail`
1072
+
1073
+ Get's the avatar's details for a given email. Contains their address, DOB, Karma, XP, Level, Portrait (2D Image), 3DModel, HeartRateData, Chakras, Aurua, Gifts, Stats (HP, Mana, Energy &amp; Staminia), GeneKeys, HumanDesign, Skills, Attributes (Strength, Speed, Dexterity, Toughness, Wisdom, Intelligence, Magic, Vitality &amp; Endurance), SuperPowers, Spells, Achievements &amp; Inventory. They can also access the full Omniverse from inside their avatar. More to come soon... ;-) Only works for logged in &amp; authenticated Wizards (Admins) or your own avatar. Use Authenticate endpoint first to obtain a JWT Token.
1074
+
1075
+ **GET** `api/avatar/get-avatar-detail-by-email/{email}`
1076
+
1077
+ Route parameters:
1078
+
1079
+ | Field | Type |
1080
+ | --- | --- |
1081
+ | `email` | `string` |
1082
+
1083
+ **Request**
1084
+
1085
+ No request body.
1086
+
1087
+ **Response**
1088
+
1089
+ Standard `OASISResult` envelope (see top of this page) with:
1090
+
1091
+ `result` type: `IAvatarDetail`
1092
+
1093
+ | Field | Type |
1094
+ | --- | --- |
1095
+ | `Id` | `new Guid` |
1096
+ | `Username` | `string` |
1097
+ | `Email` | `string` |
1098
+ | `Karma` | `long` |
1099
+ | `Level` | `int` |
1100
+ | `XP` | `int` |
1101
+ | `Model3D` | `string` |
1102
+ | `UmaJson` | `string` |
1103
+ | `Portrait` | `string` |
1104
+ | `DOB` | `DateTime` |
1105
+ | `Address` | `string` |
1106
+ | `Town` | `string` |
1107
+ | `County` | `string` |
1108
+ | `Country` | `string` |
1109
+ | `Postcode` | `string` |
1110
+ | `Landline` | `string` |
1111
+ | `Mobile` | `string` |
1112
+ | `Achievements` | `IList<IAchievement>` |
1113
+ | `Attributes` | `IAvatarAttributes` |
1114
+ | `Aura` | `IAvatarAura` |
1115
+ | `Chakras` | `IAvatarChakras` |
1116
+ | `DimensionLevelIds` | `IDictionary<DimensionLevel, Guid>` |
1117
+ | `DimensionLevels` | `IDictionary<DimensionLevel, IHolon>` |
1118
+ | `FavouriteColour` | `ConsoleColor` |
1119
+ | `GeneKeys` | `IList<IGeneKey>` |
1120
+ | `Gifts` | `IList<IAvatarGift>` |
1121
+ | `HeartRateData` | `IList<IHeartRateEntry>` |
1122
+ | `HumanDesign` | `IHumanDesign` |
1123
+ | `Inventory` | `IList<IInventoryItem>` |
1124
+ | `KarmaAkashicRecords` | `IList<IKarmaAkashicRecord>` |
1125
+ | `Omniverse` | `IOmiverse` |
1126
+ | `Skills` | `IAvatarSkills` |
1127
+ | `Spells` | `IList<ISpell>` |
1128
+ | `STARCLIColour` | `ConsoleColor` |
1129
+ | `Stats` | `IAvatarStats` |
1130
+ | `SuperPowers` | `IAvatarSuperPowers` |
1131
+ | `ActiveQuestId` | `Guid?` |
1132
+ | `ActiveObjectiveId` | `Guid?` |
1133
+
1134
+ **Example**
1135
+
1136
+ ```js
1137
+ const { isError, message, result } = await oasis.avatar.getAvatarDetailByEmail({
1138
+ email: '<email>'
1139
+ });
1140
+ if (isError) throw new Error(message);
1141
+ console.log(result);
1142
+ ```
1143
+
1144
+ Example response:
1145
+
1146
+ ```json
1147
+ {
1148
+ "isError": false,
1149
+ "message": "",
1150
+ "result": { "Id": /* <new Guid> */, "Username": "example string", "Email": "example string", "Karma": 1, "Level": 1, "XP": 1, "Model3D": "example string", "UmaJson": "example string", "Portrait": "example string", "DOB": "2026-01-01T00:00:00Z", "Address": "example string", "Town": "example string", "County": "example string", "Country": "example string", "Postcode": "example string", "Landline": "example string", "Mobile": "example string", "Achievements": [{ "AchievementEarnt": "2026-01-01T00:00:00Z", "AchievementType": { }, "AvatarId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "Description": "example string", "KarmaSource": { "Score": 1.0 }, "KarmaSourceDesc": "example string", "KarmaSourceTitle": "example string", "Name": "example string", "Provider": { "Score": 1.0 }, "WebLink": "example string" }], "Attributes": { "Dexterity": 1, "Intelligence": 1, "Magic": 1, "Speed": 1, "Strength": 1, "Toughness": 1, "Wisdom": 1, "Vitality": 1, "Endurance": 1 }, "Aura": { "Progress": 1, "Brightness": 1, "Size": 1, "ColourBlue": 1, "ColourGreen": 1, "ColourRed": 1, "Level": 1, "Value": 1 }, "Chakras": { "Crown": { }, "Heart": { }, "Root": { }, "Sacral": { }, "SolarPlexus": { }, "ThirdEye": { }, "Throat": { } }, "DimensionLevelIds": /* <IDictionary<DimensionLevel, Guid>> */, "DimensionLevels": /* <IDictionary<DimensionLevel, IHolon>> */, "FavouriteColour": /* <ConsoleColor> */, "GeneKeys": [{ "Description": "example string", "Gift": "example string", "Name": "example string", "Shadow": "example string", "Sidhi": "example string" }], "Gifts": [{ "AvatarId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "GiftEarnt": "2026-01-01T00:00:00Z", "GiftType": {}, "KarmaSource": {}, "KarmaSourceDesc": "example string", "KarmaSourceTitle": "example string", "Provider": {}, "WebLink": "example string" }], "HeartRateData": [{ "HeartRateValue": 1, "TimeStamp": "2026-01-01T00:00:00Z" }], "HumanDesign": { "Type": "example string" }, "Inventory": [{ "Image2D": "<base64-bytes>", "Image2DURI": "https://example.com/asset.png", "ThumbnailUrl": "example string", "Object3D": "<base64-bytes>", "Object3DURI": "https://example.com/asset.png", "Quantity": 1, "Stack": true, "IsStackable": true, "GameSource": "example string", "ItemType": "example string", "NftId": "example string", "Rarity": "example string", "MaxQuantity": 1, "Weight": 1.0, "IsUsable": true, "IsTradeable": true, "OwnerAvatarId": "example string", "AcquiredOn": "2026-01-01T00:00:00Z", "LastUsedOn": "2026-01-01T00:00:00Z", "Properties": { "<string>": {} } }], "KarmaAkashicRecords": [{ "AvatarId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "Date": "2026-01-01T00:00:00Z", "Karma": 1, "KarmaEarntOrLost": { "Score": 1.0 }, "KarmaSource": {}, "KarmaSourceDesc": "example string", "KarmaSourceTitle": "example string", "KarmaTypeNegative": { "Score": 1.0 }, "KarmaTypePositive": { "Score": 1.0 }, "Provider": {}, "TotalKarma": 1, "WebLink": "example string" }], "Omniverse": { "GreatGrandSuperStar": { }, "Dimensions": { "EighthDimension": { }, "NinthDimension": { }, "TenthDimension": { }, "EleventhDimension": { }, "TwelfthDimension": { }, "CustomDimensions": [{ "DimensionLevel": { } }] }, "Multiverses": [{ "GrandSuperStar": { "Stars": [ /* <I> */ ] }, "Dimensions": { "FirstDimension": { "Universe": { "Dimensions": [], "GalaxyClusters": [{ "Galaxies": [{ "SuperStar": { "Stars": [{ "Luminosity": 1, "StarType": { }, "StarClassification": { }, "StarBinaryType": { } }] }, "SolarSystems": [{ "Star": {}, "Planets": [{ "Moons": [{ }] }], "Asteroids": [{ }], "Comets": [{ }], "Meteroids": [{ }] }], "Nebulas": [{ }], "Stars": [], "Planets": [], "Asteroids": [], "Comets": [], "Meteroids": [] }], "SolarSystems": [], "Stars": [], "Planets": [], "Asteroids": [], "Comets": [], "Meteroids": [], "IsSuperCluster": true }], "SolarSystems": [], "Nebulas": [], "Stars": [], "Planets": [], "Asteroids": [], "Comets": [], "Meteroids": [] } }, "SecondDimension": { "Universe": {} }, "ThirdDimension": { "UniversePrime": {}, "MagicVerse": {}, "ParallelUniverses": [] }, "FourthDimension": { "Universe": {} }, "FifthDimension": { "Universe": {} }, "SixthDimension": { "Universe": {} }, "SeventhDimension": { "Universe": {} }, "CustomDimensions": [] } }] }, "Skills": { "Computers": 1, "Engineering": 1, "Farming": 1, "FireStarting": 1, "Fishing": 1, "Languages": 1, "Meditation": 1, "MeleeCombat": 1, "Mindfulness": 1, "Negotiating": 1, "RangedCombat": 1, "Research": 1, "Science": 1, "SpellCasting": 1, "Translating": 1, "Yoga": 1 }, "Spells": [{ "Description": "example string", "FireDamage": 1, "HealingPower": 1, "IceDamage": 1, "LightningDamage": 1, "Name": "example string", "PoisonDamage": 1, "WaterDamage": 1, "WindDamage": 1 }], "STARCLIColour": /* <ConsoleColor> */, "Stats": { "Energy": { "Current": 1, "Max": 1 }, "HP": {}, "Mana": {}, "Stamina": {} }, "SuperPowers": { "AstralProjection": 1, "BioLocatation": 1, "Flight": 1, "FreezeBreath": 1, "HeatVision": 1, "Invulnerability": 1, "RemoteViewing": 1, "SuperSpeed": 1, "SuperStrength": 1, "Telekinesis": 1, "Telepathy": 1, "Teleportation": 1, "XRayVision": 1 }, "ActiveQuestId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "ActiveObjectiveId": "3fa85f64-5717-4562-b3fc-2c963f66afa6" }
1151
+ }
1152
+ ```
1153
+
1154
+ ---
1155
+
1156
+ ### `getAvatarDetailByUsername`
1157
+
1158
+ Get's the avatar's details for a given username. Contains their address, DOB, Karma, XP, Level, Portrait (2D Image), 3DModel, HeartRateData, Chakras, Aurua, Gifts, Stats (HP, Mana, Energy &amp; Staminia), GeneKeys, HumanDesign, Skills, Attributes (Strength, Speed, Dexterity, Toughness, Wisdom, Intelligence, Magic, Vitality &amp; Endurance), SuperPowers, Spells, Achievements &amp; Inventory. They can also access the full Omniverse from inside their avatar. More to come soon... ;-) Only works for logged in &amp; authenticated Wizards (Admins). Use Authenticate endpoint first to obtain JWT Token.
1159
+
1160
+ **GET** `api/avatar/get-avatar-detail-by-username/{username}`
1161
+
1162
+ Route parameters:
1163
+
1164
+ | Field | Type |
1165
+ | --- | --- |
1166
+ | `username` | `string` |
1167
+
1168
+ **Request**
1169
+
1170
+ No request body.
1171
+
1172
+ **Response**
1173
+
1174
+ Standard `OASISResult` envelope (see top of this page) with:
1175
+
1176
+ `result` type: `IAvatarDetail`
1177
+
1178
+ | Field | Type |
1179
+ | --- | --- |
1180
+ | `Id` | `new Guid` |
1181
+ | `Username` | `string` |
1182
+ | `Email` | `string` |
1183
+ | `Karma` | `long` |
1184
+ | `Level` | `int` |
1185
+ | `XP` | `int` |
1186
+ | `Model3D` | `string` |
1187
+ | `UmaJson` | `string` |
1188
+ | `Portrait` | `string` |
1189
+ | `DOB` | `DateTime` |
1190
+ | `Address` | `string` |
1191
+ | `Town` | `string` |
1192
+ | `County` | `string` |
1193
+ | `Country` | `string` |
1194
+ | `Postcode` | `string` |
1195
+ | `Landline` | `string` |
1196
+ | `Mobile` | `string` |
1197
+ | `Achievements` | `IList<IAchievement>` |
1198
+ | `Attributes` | `IAvatarAttributes` |
1199
+ | `Aura` | `IAvatarAura` |
1200
+ | `Chakras` | `IAvatarChakras` |
1201
+ | `DimensionLevelIds` | `IDictionary<DimensionLevel, Guid>` |
1202
+ | `DimensionLevels` | `IDictionary<DimensionLevel, IHolon>` |
1203
+ | `FavouriteColour` | `ConsoleColor` |
1204
+ | `GeneKeys` | `IList<IGeneKey>` |
1205
+ | `Gifts` | `IList<IAvatarGift>` |
1206
+ | `HeartRateData` | `IList<IHeartRateEntry>` |
1207
+ | `HumanDesign` | `IHumanDesign` |
1208
+ | `Inventory` | `IList<IInventoryItem>` |
1209
+ | `KarmaAkashicRecords` | `IList<IKarmaAkashicRecord>` |
1210
+ | `Omniverse` | `IOmiverse` |
1211
+ | `Skills` | `IAvatarSkills` |
1212
+ | `Spells` | `IList<ISpell>` |
1213
+ | `STARCLIColour` | `ConsoleColor` |
1214
+ | `Stats` | `IAvatarStats` |
1215
+ | `SuperPowers` | `IAvatarSuperPowers` |
1216
+ | `ActiveQuestId` | `Guid?` |
1217
+ | `ActiveObjectiveId` | `Guid?` |
1218
+
1219
+ **Example**
1220
+
1221
+ ```js
1222
+ const { isError, message, result } = await oasis.avatar.getAvatarDetailByUsername({
1223
+ username: '<username>'
1224
+ });
1225
+ if (isError) throw new Error(message);
1226
+ console.log(result);
1227
+ ```
1228
+
1229
+ Example response:
1230
+
1231
+ ```json
1232
+ {
1233
+ "isError": false,
1234
+ "message": "",
1235
+ "result": { "Id": /* <new Guid> */, "Username": "example string", "Email": "example string", "Karma": 1, "Level": 1, "XP": 1, "Model3D": "example string", "UmaJson": "example string", "Portrait": "example string", "DOB": "2026-01-01T00:00:00Z", "Address": "example string", "Town": "example string", "County": "example string", "Country": "example string", "Postcode": "example string", "Landline": "example string", "Mobile": "example string", "Achievements": [{ "AchievementEarnt": "2026-01-01T00:00:00Z", "AchievementType": { }, "AvatarId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "Description": "example string", "KarmaSource": { "Score": 1.0 }, "KarmaSourceDesc": "example string", "KarmaSourceTitle": "example string", "Name": "example string", "Provider": { "Score": 1.0 }, "WebLink": "example string" }], "Attributes": { "Dexterity": 1, "Intelligence": 1, "Magic": 1, "Speed": 1, "Strength": 1, "Toughness": 1, "Wisdom": 1, "Vitality": 1, "Endurance": 1 }, "Aura": { "Progress": 1, "Brightness": 1, "Size": 1, "ColourBlue": 1, "ColourGreen": 1, "ColourRed": 1, "Level": 1, "Value": 1 }, "Chakras": { "Crown": { }, "Heart": { }, "Root": { }, "Sacral": { }, "SolarPlexus": { }, "ThirdEye": { }, "Throat": { } }, "DimensionLevelIds": /* <IDictionary<DimensionLevel, Guid>> */, "DimensionLevels": /* <IDictionary<DimensionLevel, IHolon>> */, "FavouriteColour": /* <ConsoleColor> */, "GeneKeys": [{ "Description": "example string", "Gift": "example string", "Name": "example string", "Shadow": "example string", "Sidhi": "example string" }], "Gifts": [{ "AvatarId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "GiftEarnt": "2026-01-01T00:00:00Z", "GiftType": {}, "KarmaSource": {}, "KarmaSourceDesc": "example string", "KarmaSourceTitle": "example string", "Provider": {}, "WebLink": "example string" }], "HeartRateData": [{ "HeartRateValue": 1, "TimeStamp": "2026-01-01T00:00:00Z" }], "HumanDesign": { "Type": "example string" }, "Inventory": [{ "Image2D": "<base64-bytes>", "Image2DURI": "https://example.com/asset.png", "ThumbnailUrl": "example string", "Object3D": "<base64-bytes>", "Object3DURI": "https://example.com/asset.png", "Quantity": 1, "Stack": true, "IsStackable": true, "GameSource": "example string", "ItemType": "example string", "NftId": "example string", "Rarity": "example string", "MaxQuantity": 1, "Weight": 1.0, "IsUsable": true, "IsTradeable": true, "OwnerAvatarId": "example string", "AcquiredOn": "2026-01-01T00:00:00Z", "LastUsedOn": "2026-01-01T00:00:00Z", "Properties": { "<string>": {} } }], "KarmaAkashicRecords": [{ "AvatarId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "Date": "2026-01-01T00:00:00Z", "Karma": 1, "KarmaEarntOrLost": { "Score": 1.0 }, "KarmaSource": {}, "KarmaSourceDesc": "example string", "KarmaSourceTitle": "example string", "KarmaTypeNegative": { "Score": 1.0 }, "KarmaTypePositive": { "Score": 1.0 }, "Provider": {}, "TotalKarma": 1, "WebLink": "example string" }], "Omniverse": { "GreatGrandSuperStar": { }, "Dimensions": { "EighthDimension": { }, "NinthDimension": { }, "TenthDimension": { }, "EleventhDimension": { }, "TwelfthDimension": { }, "CustomDimensions": [{ "DimensionLevel": { } }] }, "Multiverses": [{ "GrandSuperStar": { "Stars": [ /* <I> */ ] }, "Dimensions": { "FirstDimension": { "Universe": { "Dimensions": [], "GalaxyClusters": [{ "Galaxies": [{ "SuperStar": { "Stars": [{ "Luminosity": 1, "StarType": { }, "StarClassification": { }, "StarBinaryType": { } }] }, "SolarSystems": [{ "Star": {}, "Planets": [{ "Moons": [{ }] }], "Asteroids": [{ }], "Comets": [{ }], "Meteroids": [{ }] }], "Nebulas": [{ }], "Stars": [], "Planets": [], "Asteroids": [], "Comets": [], "Meteroids": [] }], "SolarSystems": [], "Stars": [], "Planets": [], "Asteroids": [], "Comets": [], "Meteroids": [], "IsSuperCluster": true }], "SolarSystems": [], "Nebulas": [], "Stars": [], "Planets": [], "Asteroids": [], "Comets": [], "Meteroids": [] } }, "SecondDimension": { "Universe": {} }, "ThirdDimension": { "UniversePrime": {}, "MagicVerse": {}, "ParallelUniverses": [] }, "FourthDimension": { "Universe": {} }, "FifthDimension": { "Universe": {} }, "SixthDimension": { "Universe": {} }, "SeventhDimension": { "Universe": {} }, "CustomDimensions": [] } }] }, "Skills": { "Computers": 1, "Engineering": 1, "Farming": 1, "FireStarting": 1, "Fishing": 1, "Languages": 1, "Meditation": 1, "MeleeCombat": 1, "Mindfulness": 1, "Negotiating": 1, "RangedCombat": 1, "Research": 1, "Science": 1, "SpellCasting": 1, "Translating": 1, "Yoga": 1 }, "Spells": [{ "Description": "example string", "FireDamage": 1, "HealingPower": 1, "IceDamage": 1, "LightningDamage": 1, "Name": "example string", "PoisonDamage": 1, "WaterDamage": 1, "WindDamage": 1 }], "STARCLIColour": /* <ConsoleColor> */, "Stats": { "Energy": { "Current": 1, "Max": 1 }, "HP": {}, "Mana": {}, "Stamina": {} }, "SuperPowers": { "AstralProjection": 1, "BioLocatation": 1, "Flight": 1, "FreezeBreath": 1, "HeatVision": 1, "Invulnerability": 1, "RemoteViewing": 1, "SuperSpeed": 1, "SuperStrength": 1, "Telekinesis": 1, "Telepathy": 1, "Teleportation": 1, "XRayVision": 1 }, "ActiveQuestId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "ActiveObjectiveId": "3fa85f64-5717-4562-b3fc-2c963f66afa6" }
1236
+ }
1237
+ ```
1238
+
1239
+ ---
1240
+
1241
+ ### `getAvatarInventory`
1242
+
1243
+ Gets all inventory items owned by the authenticated avatar. This is the avatar's actual inventory (items they own), not items they created. Inventory is shared across all games, apps, websites, and services.
1244
+
1245
+ **GET** `api/avatar/inventory`
1246
+
1247
+ **Request**
1248
+
1249
+ No request body.
1250
+
1251
+ **Response**
1252
+
1253
+ Standard `OASISResult` envelope (see top of this page) with:
1254
+
1255
+ `result` type: `IInventoryItem` (array)
1256
+
1257
+ | Field | Type |
1258
+ | --- | --- |
1259
+ | `Image2D` | `byte[]` |
1260
+ | `Image2DURI` | `Uri` |
1261
+ | `ThumbnailUrl` | `string` |
1262
+ | `Object3D` | `byte[]` |
1263
+ | `Object3DURI` | `Uri` |
1264
+ | `Quantity` | `int` |
1265
+ | `Stack` | `bool` |
1266
+ | `IsStackable` | `bool` |
1267
+ | `GameSource` | `string` |
1268
+ | `ItemType` | `string` |
1269
+ | `NftId` | `string` |
1270
+ | `Rarity` | `string` |
1271
+ | `MaxQuantity` | `int` |
1272
+ | `Weight` | `float` |
1273
+ | `IsUsable` | `bool` |
1274
+ | `IsTradeable` | `bool` |
1275
+ | `OwnerAvatarId` | `string` |
1276
+ | `AcquiredOn` | `DateTime` |
1277
+ | `LastUsedOn` | `DateTime` |
1278
+ | `Properties` | `Dictionary<string, object>` |
1279
+
1280
+ **Example**
1281
+
1282
+ ```js
1283
+ const { isError, message, result } = await oasis.avatar.getAvatarInventory({});
1284
+ if (isError) throw new Error(message);
1285
+ console.log(result);
1286
+ ```
1287
+
1288
+ Example response:
1289
+
1290
+ ```json
1291
+ {
1292
+ "isError": false,
1293
+ "message": "",
1294
+ "result": [{ "Image2D": "<base64-bytes>", "Image2DURI": "https://example.com/asset.png", "ThumbnailUrl": "example string", "Object3D": "<base64-bytes>", "Object3DURI": "https://example.com/asset.png", "Quantity": 1, "Stack": true, "IsStackable": true, "GameSource": "example string", "ItemType": "example string", "NftId": "example string", "Rarity": "example string", "MaxQuantity": 1, "Weight": 1.0, "IsUsable": true, "IsTradeable": true, "OwnerAvatarId": "example string", "AcquiredOn": "2026-01-01T00:00:00Z", "LastUsedOn": "2026-01-01T00:00:00Z", "Properties": { "<string>": {} } }]
1295
+ }
1296
+ ```
1297
+
1298
+ ---
1299
+
1300
+ ### `getAvatarInventoryItem`
1301
+
1302
+ Gets a specific item from the avatar's inventory by ID.
1303
+
1304
+ **GET** `api/avatar/inventory/{itemId}`
1305
+
1306
+ Route parameters:
1307
+
1308
+ | Field | Type |
1309
+ | --- | --- |
1310
+ | `itemId` | `Guid` |
1311
+
1312
+ **Request**
1313
+
1314
+ No request body.
1315
+
1316
+ **Response**
1317
+
1318
+ Standard `OASISResult` envelope (see top of this page) with:
1319
+
1320
+ `result` type: `IInventoryItem`
1321
+
1322
+ | Field | Type |
1323
+ | --- | --- |
1324
+ | `Image2D` | `byte[]` |
1325
+ | `Image2DURI` | `Uri` |
1326
+ | `ThumbnailUrl` | `string` |
1327
+ | `Object3D` | `byte[]` |
1328
+ | `Object3DURI` | `Uri` |
1329
+ | `Quantity` | `int` |
1330
+ | `Stack` | `bool` |
1331
+ | `IsStackable` | `bool` |
1332
+ | `GameSource` | `string` |
1333
+ | `ItemType` | `string` |
1334
+ | `NftId` | `string` |
1335
+ | `Rarity` | `string` |
1336
+ | `MaxQuantity` | `int` |
1337
+ | `Weight` | `float` |
1338
+ | `IsUsable` | `bool` |
1339
+ | `IsTradeable` | `bool` |
1340
+ | `OwnerAvatarId` | `string` |
1341
+ | `AcquiredOn` | `DateTime` |
1342
+ | `LastUsedOn` | `DateTime` |
1343
+ | `Properties` | `Dictionary<string, object>` |
1344
+
1345
+ **Example**
1346
+
1347
+ ```js
1348
+ const { isError, message, result } = await oasis.avatar.getAvatarInventoryItem({
1349
+ itemId: '<itemId>'
1350
+ });
1351
+ if (isError) throw new Error(message);
1352
+ console.log(result);
1353
+ ```
1354
+
1355
+ Example response:
1356
+
1357
+ ```json
1358
+ {
1359
+ "isError": false,
1360
+ "message": "",
1361
+ "result": { "Image2D": "<base64-bytes>", "Image2DURI": "https://example.com/asset.png", "ThumbnailUrl": "example string", "Object3D": "<base64-bytes>", "Object3DURI": "https://example.com/asset.png", "Quantity": 1, "Stack": true, "IsStackable": true, "GameSource": "example string", "ItemType": "example string", "NftId": "example string", "Rarity": "example string", "MaxQuantity": 1, "Weight": 1.0, "IsUsable": true, "IsTradeable": true, "OwnerAvatarId": "example string", "AcquiredOn": "2026-01-01T00:00:00Z", "LastUsedOn": "2026-01-01T00:00:00Z", "Properties": { "<string>": {} } }
1362
+ }
1363
+ ```
1364
+
1365
+ ---
1366
+
1367
+ ### `getAvatarPortraitByEmail`
1368
+
1369
+ Get's the avatar's portrait (2D Image) using their email.
1370
+
1371
+ **GET** `api/avatar/get-avatar-portrait-by-email/{email}`
1372
+
1373
+ Route parameters:
1374
+
1375
+ | Field | Type |
1376
+ | --- | --- |
1377
+ | `email` | `string` |
1378
+
1379
+ **Request**
1380
+
1381
+ No request body.
1382
+
1383
+ **Response**
1384
+
1385
+ Standard `OASISResult` envelope (see top of this page) with:
1386
+
1387
+ `result` type: `AvatarPortrait`
1388
+
1389
+ | Field | Type |
1390
+ | --- | --- |
1391
+ | `AvatarId` | `Guid` |
1392
+ | `Username` | `string` |
1393
+ | `Email` | `string` |
1394
+ | `ImageBase64` | `string` |
1395
+
1396
+ **Example**
1397
+
1398
+ ```js
1399
+ const { isError, message, result } = await oasis.avatar.getAvatarPortraitByEmail({
1400
+ email: '<email>'
1401
+ });
1402
+ if (isError) throw new Error(message);
1403
+ console.log(result);
1404
+ ```
1405
+
1406
+ Example response:
1407
+
1408
+ ```json
1409
+ {
1410
+ "isError": false,
1411
+ "message": "",
1412
+ "result": { "AvatarId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "Username": "example string", "Email": "example string", "ImageBase64": "example string" }
1413
+ }
1414
+ ```
1415
+
1416
+ ---
1417
+
1418
+ ### `getAvatarPortraitById`
1419
+
1420
+ Get's the avatar's portrait (2D Image) using their id. Pass in the provider you wish to use. Only works for logged in users. Use Authenticate endpoint first to obtain a JWT Token.
1421
+
1422
+ **GET** `api/avatar/get-avatar-portrait/{id}`
1423
+
1424
+ Route parameters:
1425
+
1426
+ | Field | Type |
1427
+ | --- | --- |
1428
+ | `id` | `Guid` |
1429
+
1430
+ **Request**
1431
+
1432
+ No request body.
1433
+
1434
+ **Response**
1435
+
1436
+ Standard `OASISResult` envelope (see top of this page) with:
1437
+
1438
+ `result` type: `AvatarPortrait`
1439
+
1440
+ | Field | Type |
1441
+ | --- | --- |
1442
+ | `AvatarId` | `Guid` |
1443
+ | `Username` | `string` |
1444
+ | `Email` | `string` |
1445
+ | `ImageBase64` | `string` |
1446
+
1447
+ **Example**
1448
+
1449
+ ```js
1450
+ const { isError, message, result } = await oasis.avatar.getAvatarPortraitById({
1451
+ id: '<id>'
1452
+ });
1453
+ if (isError) throw new Error(message);
1454
+ console.log(result);
1455
+ ```
1456
+
1457
+ Example response:
1458
+
1459
+ ```json
1460
+ {
1461
+ "isError": false,
1462
+ "message": "",
1463
+ "result": { "AvatarId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "Username": "example string", "Email": "example string", "ImageBase64": "example string" }
1464
+ }
1465
+ ```
1466
+
1467
+ ---
1468
+
1469
+ ### `getAvatarPortraitByUsername`
1470
+
1471
+ Get's the avatar's portrait (2D Image) using their username. Only works for logged in users. Use Authenticate endpoint first to obtain JWT Token.
1472
+
1473
+ **GET** `api/avatar/get-avatar-portrait-by-username/{username}`
1474
+
1475
+ Route parameters:
1476
+
1477
+ | Field | Type |
1478
+ | --- | --- |
1479
+ | `username` | `string` |
1480
+
1481
+ **Request**
1482
+
1483
+ No request body.
1484
+
1485
+ **Response**
1486
+
1487
+ Standard `OASISResult` envelope (see top of this page) with:
1488
+
1489
+ `result` type: `AvatarPortrait`
1490
+
1491
+ | Field | Type |
1492
+ | --- | --- |
1493
+ | `AvatarId` | `Guid` |
1494
+ | `Username` | `string` |
1495
+ | `Email` | `string` |
1496
+ | `ImageBase64` | `string` |
1497
+
1498
+ **Example**
1499
+
1500
+ ```js
1501
+ const { isError, message, result } = await oasis.avatar.getAvatarPortraitByUsername({
1502
+ username: '<username>'
1503
+ });
1504
+ if (isError) throw new Error(message);
1505
+ console.log(result);
1506
+ ```
1507
+
1508
+ Example response:
1509
+
1510
+ ```json
1511
+ {
1512
+ "isError": false,
1513
+ "message": "",
1514
+ "result": { "AvatarId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "Username": "example string", "Email": "example string", "ImageBase64": "example string" }
1515
+ }
1516
+ ```
1517
+
1518
+ ---
1519
+
1520
+ ### `getAvatarSessionStats`
1521
+
1522
+ Get session statistics for an avatar (OASIS SSO System)
1523
+
1524
+ **GET** `api/avatar/{avatarId}/sessions/stats`
1525
+
1526
+ Route parameters:
1527
+
1528
+ | Field | Type |
1529
+ | --- | --- |
1530
+ | `avatarId` | `Guid` |
1531
+
1532
+ **Request**
1533
+
1534
+ No request body.
1535
+
1536
+ **Response**
1537
+
1538
+ Standard `OASISResult` envelope (see top of this page) with:
1539
+
1540
+ `result` type: `AvatarSessionStats`
1541
+
1542
+ | Field | Type |
1543
+ | --- | --- |
1544
+ | `TotalSessionsCreated` | `int` |
1545
+ | `ActiveSessions` | `int` |
1546
+ | `SessionsLast24Hours` | `int` |
1547
+ | `SessionsLast7Days` | `int` |
1548
+ | `SessionsLast30Days` | `int` |
1549
+ | `AverageSessionDurationMinutes` | `double` |
1550
+ | `LongestSessionDurationMinutes` | `double` |
1551
+ | `MostUsedDeviceType` | `string` |
1552
+ | `MostUsedServiceType` | `string` |
1553
+ | `MostCommonLocation` | `string` |
1554
+ | `LastSessionTime` | `DateTime?` |
1555
+ | `SecurityIncidents` | `int` |
1556
+ | `UniqueDevicesUsed` | `int` |
1557
+ | `UniqueLocationsUsed` | `int` |
1558
+ | `TrustScore` | `int` |
1559
+
1560
+ **Example**
1561
+
1562
+ ```js
1563
+ const { isError, message, result } = await oasis.avatar.getAvatarSessionStats({
1564
+ avatarId: '<avatarId>'
1565
+ });
1566
+ if (isError) throw new Error(message);
1567
+ console.log(result);
1568
+ ```
1569
+
1570
+ Example response:
1571
+
1572
+ ```json
1573
+ {
1574
+ "isError": false,
1575
+ "message": "",
1576
+ "result": { "TotalSessionsCreated": 1, "ActiveSessions": 1, "SessionsLast24Hours": 1, "SessionsLast7Days": 1, "SessionsLast30Days": 1, "AverageSessionDurationMinutes": 1.0, "LongestSessionDurationMinutes": 1.0, "MostUsedDeviceType": "example string", "MostUsedServiceType": "example string", "MostCommonLocation": "example string", "LastSessionTime": "2026-01-01T00:00:00Z", "SecurityIncidents": 1, "UniqueDevicesUsed": 1, "UniqueLocationsUsed": 1, "TrustScore": 1 }
1577
+ }
1578
+ ```
1579
+
1580
+ ---
1581
+
1582
+ ### `getAvatarSessions`
1583
+
1584
+ Get all active sessions for a specific avatar (OASIS SSO System)
1585
+
1586
+ **GET** `api/avatar/{avatarId}/sessions`
1587
+
1588
+ Route parameters:
1589
+
1590
+ | Field | Type |
1591
+ | --- | --- |
1592
+ | `avatarId` | `Guid` |
1593
+
1594
+ **Request**
1595
+
1596
+ No request body.
1597
+
1598
+ **Response**
1599
+
1600
+ Standard `OASISResult` envelope (see top of this page) with:
1601
+
1602
+ `result` type: `AvatarSessionManagement`
1603
+
1604
+ | Field | Type |
1605
+ | --- | --- |
1606
+ | `TotalSessions` | `int` |
1607
+ | `ActiveSessions` | `int` |
1608
+ | `Sessions` | `List<AvatarSession>` |
1609
+ | `CurrentLocation` | `string` |
1610
+ | `LastLogin` | `DateTime?` |
1611
+ | `SecurityStatus` | `string` |
1612
+ | `FailedLoginAttempts` | `int` |
1613
+ | `TwoFactorEnabled` | `bool` |
1614
+ | `SessionTimeoutMinutes` | `int` |
1615
+
1616
+ **Example**
1617
+
1618
+ ```js
1619
+ const { isError, message, result } = await oasis.avatar.getAvatarSessions({
1620
+ avatarId: '<avatarId>'
1621
+ });
1622
+ if (isError) throw new Error(message);
1623
+ console.log(result);
1624
+ ```
1625
+
1626
+ Example response:
1627
+
1628
+ ```json
1629
+ {
1630
+ "isError": false,
1631
+ "message": "",
1632
+ "result": { "TotalSessions": 1, "ActiveSessions": 1, "Sessions": [{ "Id": "example string", "AvatarId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "ServiceName": "example string", "ServiceType": "example string", "DeviceType": "example string", "DeviceName": "example string", "Location": "example string", "IpAddress": "example string", "IsActive": true, "LastActivity": "2026-01-01T00:00:00Z", "LoginTime": "2026-01-01T00:00:00Z", "UserAgent": "example string", "Platform": "example string", "Version": "example string", "CreatedAt": "2026-01-01T00:00:00Z", "UpdatedAt": "2026-01-01T00:00:00Z", "Metadata": "example string", "SecurityToken": "example string", "ExpiresAt": "2026-01-01T00:00:00Z" }], "CurrentLocation": "example string", "LastLogin": "2026-01-01T00:00:00Z", "SecurityStatus": "example string", "FailedLoginAttempts": 1, "TwoFactorEnabled": true, "SessionTimeoutMinutes": 1 }
1633
+ }
1634
+ ```
1635
+
1636
+ ---
1637
+
1638
+ ### `getByEmail`
1639
+
1640
+ Get's the avatar for the given email. Only works for logged in users. Use Authenticate endpoint first to obtain a JWT Token.
1641
+
1642
+ **GET** `api/avatar/get-by-email/{email}`
1643
+
1644
+ Route parameters:
1645
+
1646
+ | Field | Type |
1647
+ | --- | --- |
1648
+ | `email` | `string` |
1649
+
1650
+ **Request**
1651
+
1652
+ No request body.
1653
+
1654
+ **Response**
1655
+
1656
+ Standard `OASISResult` envelope (see top of this page) with:
1657
+
1658
+ `result` type: `IAvatar`
1659
+
1660
+ | Field | Type |
1661
+ | --- | --- |
1662
+ | `ProviderWallets` | `Dictionary<ProviderType, List<IProviderWallet>>` |
1663
+ | `ProviderPrivateKey` | `Dictionary<ProviderType, string>` |
1664
+ | `ProviderPublicKey` | `Dictionary<ProviderType, List<string>>` |
1665
+ | `ProviderUsername` | `Dictionary<ProviderType, string>` |
1666
+ | `ProviderWalletAddress` | `Dictionary<ProviderType, List<string>>` |
1667
+ | `AvatarId` | `Guid` |
1668
+ | `Title` | `string` |
1669
+ | `FirstName` | `string` |
1670
+ | `LastName` | `string` |
1671
+ | `FullName` | `string` |
1672
+ | `FullNameWithTitle` | `string` |
1673
+ | `Username` | `string` |
1674
+ | `Email` | `string` |
1675
+ | `Password` | `string` |
1676
+ | `AvatarType` | `EnumValue<AvatarType>` |
1677
+ | `AcceptTerms` | `bool` |
1678
+ | `IsVerified` | `bool` |
1679
+ | `JwtToken` | `string` |
1680
+ | `PasswordReset` | `DateTime?` |
1681
+ | `RefreshToken` | `string` |
1682
+ | `RefreshTokens` | `List<RefreshToken>` |
1683
+ | `ResetToken` | `string` |
1684
+ | `ResetTokenExpires` | `DateTime?` |
1685
+ | `VerificationToken` | `string` |
1686
+ | `Verified` | `DateTime?` |
1687
+ | `LastBeamedIn` | `DateTime?` |
1688
+ | `LastBeamedOut` | `DateTime?` |
1689
+ | `IsBeamedIn` | `bool` |
1690
+ | `Image2D` | `string` |
1691
+ | `Karma` | `int` |
1692
+ | `Level` | `int` |
1693
+ | `XP` | `int` |
1694
+
1695
+ **Example**
1696
+
1697
+ ```js
1698
+ const { isError, message, result } = await oasis.avatar.getByEmail({
1699
+ email: '<email>'
1700
+ });
1701
+ if (isError) throw new Error(message);
1702
+ console.log(result);
1703
+ ```
1704
+
1705
+ Example response:
1706
+
1707
+ ```json
1708
+ {
1709
+ "isError": false,
1710
+ "message": "",
1711
+ "result": { "ProviderWallets": { "<ProviderType>": [{ "AvatarId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "WalletId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "Name": "example string", "Description": /* <new string> */, "PrivateKey": "example string", "PublicKey": "example string", "WalletAddress": "example string", "WalletAddressSegwitP2SH": "example string", "SecretRecoveryPhrase": "example string", "Transactions": [{ "TransactionId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "FromWalletAddress": "example string", "ToWalletAddress": "example string", "Amount": 1.0, "Description": "example string", "CreatedDate": "2026-01-01T00:00:00Z", "TransactionType": { }, "TransactionCategory": { } }], "ProviderType": { }, "Balance": 1.0, "IsDefaultWallet": true }] }, "ProviderPrivateKey": { "<ProviderType>": "example string" }, "ProviderPublicKey": { "<ProviderType>": ["example string"] }, "ProviderUsername": { "<ProviderType>": "example string" }, "ProviderWalletAddress": { "<ProviderType>": ["example string"] }, "AvatarId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "Title": "example string", "FirstName": "example string", "LastName": "example string", "FullName": "example string", "FullNameWithTitle": "example string", "Username": "example string", "Email": "example string", "Password": "example string", "AvatarType": { "Score": 1.0 }, "AcceptTerms": true, "IsVerified": true, "JwtToken": "example string", "PasswordReset": "2026-01-01T00:00:00Z", "RefreshToken": "example string", "RefreshTokens": [{ "Id": 1, "Avatar": {}, "Token": "example string", "Expires": "2026-01-01T00:00:00Z", "Created": "2026-01-01T00:00:00Z", "CreatedByIp": "example string", "Revoked": "2026-01-01T00:00:00Z", "RevokedByIp": "example string", "ReplacedByToken": "example string" }], "ResetToken": "example string", "ResetTokenExpires": "2026-01-01T00:00:00Z", "VerificationToken": "example string", "Verified": "2026-01-01T00:00:00Z", "LastBeamedIn": "2026-01-01T00:00:00Z", "LastBeamedOut": "2026-01-01T00:00:00Z", "IsBeamedIn": true, "Image2D": "example string", "Karma": 1, "Level": 1, "XP": 1 }
1712
+ }
1713
+ ```
1714
+
1715
+ ---
1716
+
1717
+ ### `getById`
1718
+
1719
+ Get's the avatar for the given id. Only works for logged in users. Use Authenticate endpoint first to obtain a JWT Token.
1720
+
1721
+ **GET** `api/avatar/get-by-id/{id}`
1722
+
1723
+ Route parameters:
1724
+
1725
+ | Field | Type |
1726
+ | --- | --- |
1727
+ | `id` | `Guid` |
1728
+
1729
+ **Request**
1730
+
1731
+ No request body.
1732
+
1733
+ **Response**
1734
+
1735
+ Standard `OASISResult` envelope (see top of this page) with:
1736
+
1737
+ `result` type: `IAvatar`
1738
+
1739
+ | Field | Type |
1740
+ | --- | --- |
1741
+ | `ProviderWallets` | `Dictionary<ProviderType, List<IProviderWallet>>` |
1742
+ | `ProviderPrivateKey` | `Dictionary<ProviderType, string>` |
1743
+ | `ProviderPublicKey` | `Dictionary<ProviderType, List<string>>` |
1744
+ | `ProviderUsername` | `Dictionary<ProviderType, string>` |
1745
+ | `ProviderWalletAddress` | `Dictionary<ProviderType, List<string>>` |
1746
+ | `AvatarId` | `Guid` |
1747
+ | `Title` | `string` |
1748
+ | `FirstName` | `string` |
1749
+ | `LastName` | `string` |
1750
+ | `FullName` | `string` |
1751
+ | `FullNameWithTitle` | `string` |
1752
+ | `Username` | `string` |
1753
+ | `Email` | `string` |
1754
+ | `Password` | `string` |
1755
+ | `AvatarType` | `EnumValue<AvatarType>` |
1756
+ | `AcceptTerms` | `bool` |
1757
+ | `IsVerified` | `bool` |
1758
+ | `JwtToken` | `string` |
1759
+ | `PasswordReset` | `DateTime?` |
1760
+ | `RefreshToken` | `string` |
1761
+ | `RefreshTokens` | `List<RefreshToken>` |
1762
+ | `ResetToken` | `string` |
1763
+ | `ResetTokenExpires` | `DateTime?` |
1764
+ | `VerificationToken` | `string` |
1765
+ | `Verified` | `DateTime?` |
1766
+ | `LastBeamedIn` | `DateTime?` |
1767
+ | `LastBeamedOut` | `DateTime?` |
1768
+ | `IsBeamedIn` | `bool` |
1769
+ | `Image2D` | `string` |
1770
+ | `Karma` | `int` |
1771
+ | `Level` | `int` |
1772
+ | `XP` | `int` |
1773
+
1774
+ **Example**
1775
+
1776
+ ```js
1777
+ const { isError, message, result } = await oasis.avatar.getById({
1778
+ id: '<id>'
1779
+ });
1780
+ if (isError) throw new Error(message);
1781
+ console.log(result);
1782
+ ```
1783
+
1784
+ Example response:
1785
+
1786
+ ```json
1787
+ {
1788
+ "isError": false,
1789
+ "message": "",
1790
+ "result": { "ProviderWallets": { "<ProviderType>": [{ "AvatarId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "WalletId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "Name": "example string", "Description": /* <new string> */, "PrivateKey": "example string", "PublicKey": "example string", "WalletAddress": "example string", "WalletAddressSegwitP2SH": "example string", "SecretRecoveryPhrase": "example string", "Transactions": [{ "TransactionId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "FromWalletAddress": "example string", "ToWalletAddress": "example string", "Amount": 1.0, "Description": "example string", "CreatedDate": "2026-01-01T00:00:00Z", "TransactionType": { }, "TransactionCategory": { } }], "ProviderType": { }, "Balance": 1.0, "IsDefaultWallet": true }] }, "ProviderPrivateKey": { "<ProviderType>": "example string" }, "ProviderPublicKey": { "<ProviderType>": ["example string"] }, "ProviderUsername": { "<ProviderType>": "example string" }, "ProviderWalletAddress": { "<ProviderType>": ["example string"] }, "AvatarId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "Title": "example string", "FirstName": "example string", "LastName": "example string", "FullName": "example string", "FullNameWithTitle": "example string", "Username": "example string", "Email": "example string", "Password": "example string", "AvatarType": { "Score": 1.0 }, "AcceptTerms": true, "IsVerified": true, "JwtToken": "example string", "PasswordReset": "2026-01-01T00:00:00Z", "RefreshToken": "example string", "RefreshTokens": [{ "Id": 1, "Avatar": {}, "Token": "example string", "Expires": "2026-01-01T00:00:00Z", "Created": "2026-01-01T00:00:00Z", "CreatedByIp": "example string", "Revoked": "2026-01-01T00:00:00Z", "RevokedByIp": "example string", "ReplacedByToken": "example string" }], "ResetToken": "example string", "ResetTokenExpires": "2026-01-01T00:00:00Z", "VerificationToken": "example string", "Verified": "2026-01-01T00:00:00Z", "LastBeamedIn": "2026-01-01T00:00:00Z", "LastBeamedOut": "2026-01-01T00:00:00Z", "IsBeamedIn": true, "Image2D": "example string", "Karma": 1, "Level": 1, "XP": 1 }
1791
+ }
1792
+ ```
1793
+
1794
+ ---
1795
+
1796
+ ### `getByUsername`
1797
+
1798
+ Get's the avatar for the given username. Only works for logged in users. Use Authenticate endpoint first to obtain a JWT Token.
1799
+
1800
+ **GET** `api/avatar/get-by-username/{username}`
1801
+
1802
+ Route parameters:
1803
+
1804
+ | Field | Type |
1805
+ | --- | --- |
1806
+ | `username` | `string` |
1807
+
1808
+ **Request**
1809
+
1810
+ No request body.
1811
+
1812
+ **Response**
1813
+
1814
+ Standard `OASISResult` envelope (see top of this page) with:
1815
+
1816
+ `result` type: `IAvatar`
1817
+
1818
+ | Field | Type |
1819
+ | --- | --- |
1820
+ | `ProviderWallets` | `Dictionary<ProviderType, List<IProviderWallet>>` |
1821
+ | `ProviderPrivateKey` | `Dictionary<ProviderType, string>` |
1822
+ | `ProviderPublicKey` | `Dictionary<ProviderType, List<string>>` |
1823
+ | `ProviderUsername` | `Dictionary<ProviderType, string>` |
1824
+ | `ProviderWalletAddress` | `Dictionary<ProviderType, List<string>>` |
1825
+ | `AvatarId` | `Guid` |
1826
+ | `Title` | `string` |
1827
+ | `FirstName` | `string` |
1828
+ | `LastName` | `string` |
1829
+ | `FullName` | `string` |
1830
+ | `FullNameWithTitle` | `string` |
1831
+ | `Username` | `string` |
1832
+ | `Email` | `string` |
1833
+ | `Password` | `string` |
1834
+ | `AvatarType` | `EnumValue<AvatarType>` |
1835
+ | `AcceptTerms` | `bool` |
1836
+ | `IsVerified` | `bool` |
1837
+ | `JwtToken` | `string` |
1838
+ | `PasswordReset` | `DateTime?` |
1839
+ | `RefreshToken` | `string` |
1840
+ | `RefreshTokens` | `List<RefreshToken>` |
1841
+ | `ResetToken` | `string` |
1842
+ | `ResetTokenExpires` | `DateTime?` |
1843
+ | `VerificationToken` | `string` |
1844
+ | `Verified` | `DateTime?` |
1845
+ | `LastBeamedIn` | `DateTime?` |
1846
+ | `LastBeamedOut` | `DateTime?` |
1847
+ | `IsBeamedIn` | `bool` |
1848
+ | `Image2D` | `string` |
1849
+ | `Karma` | `int` |
1850
+ | `Level` | `int` |
1851
+ | `XP` | `int` |
1852
+
1853
+ **Example**
1854
+
1855
+ ```js
1856
+ const { isError, message, result } = await oasis.avatar.getByUsername({
1857
+ username: '<username>'
1858
+ });
1859
+ if (isError) throw new Error(message);
1860
+ console.log(result);
1861
+ ```
1862
+
1863
+ Example response:
1864
+
1865
+ ```json
1866
+ {
1867
+ "isError": false,
1868
+ "message": "",
1869
+ "result": { "ProviderWallets": { "<ProviderType>": [{ "AvatarId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "WalletId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "Name": "example string", "Description": /* <new string> */, "PrivateKey": "example string", "PublicKey": "example string", "WalletAddress": "example string", "WalletAddressSegwitP2SH": "example string", "SecretRecoveryPhrase": "example string", "Transactions": [{ "TransactionId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "FromWalletAddress": "example string", "ToWalletAddress": "example string", "Amount": 1.0, "Description": "example string", "CreatedDate": "2026-01-01T00:00:00Z", "TransactionType": { }, "TransactionCategory": { } }], "ProviderType": { }, "Balance": 1.0, "IsDefaultWallet": true }] }, "ProviderPrivateKey": { "<ProviderType>": "example string" }, "ProviderPublicKey": { "<ProviderType>": ["example string"] }, "ProviderUsername": { "<ProviderType>": "example string" }, "ProviderWalletAddress": { "<ProviderType>": ["example string"] }, "AvatarId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "Title": "example string", "FirstName": "example string", "LastName": "example string", "FullName": "example string", "FullNameWithTitle": "example string", "Username": "example string", "Email": "example string", "Password": "example string", "AvatarType": { "Score": 1.0 }, "AcceptTerms": true, "IsVerified": true, "JwtToken": "example string", "PasswordReset": "2026-01-01T00:00:00Z", "RefreshToken": "example string", "RefreshTokens": [{ "Id": 1, "Avatar": {}, "Token": "example string", "Expires": "2026-01-01T00:00:00Z", "Created": "2026-01-01T00:00:00Z", "CreatedByIp": "example string", "Revoked": "2026-01-01T00:00:00Z", "RevokedByIp": "example string", "ReplacedByToken": "example string" }], "ResetToken": "example string", "ResetTokenExpires": "2026-01-01T00:00:00Z", "VerificationToken": "example string", "Verified": "2026-01-01T00:00:00Z", "LastBeamedIn": "2026-01-01T00:00:00Z", "LastBeamedOut": "2026-01-01T00:00:00Z", "IsBeamedIn": true, "Image2D": "example string", "Karma": 1, "Level": 1, "XP": 1 }
1870
+ }
1871
+ ```
1872
+
1873
+ ---
1874
+
1875
+ ### `getLoggedInAvatar`
1876
+
1877
+ Get's the logged in avatar. Only works for logged in users. Use Authenticate endpoint first to obtain a JWT Token.
1878
+
1879
+ **GET** `api/avatar/get-logged-in-avatar`
1880
+
1881
+ **Request**
1882
+
1883
+ No request body.
1884
+
1885
+ **Response**
1886
+
1887
+ Standard `OASISResult` envelope (see top of this page) with:
1888
+
1889
+ `result` type: `IAvatar`
1890
+
1891
+ | Field | Type |
1892
+ | --- | --- |
1893
+ | `ProviderWallets` | `Dictionary<ProviderType, List<IProviderWallet>>` |
1894
+ | `ProviderPrivateKey` | `Dictionary<ProviderType, string>` |
1895
+ | `ProviderPublicKey` | `Dictionary<ProviderType, List<string>>` |
1896
+ | `ProviderUsername` | `Dictionary<ProviderType, string>` |
1897
+ | `ProviderWalletAddress` | `Dictionary<ProviderType, List<string>>` |
1898
+ | `AvatarId` | `Guid` |
1899
+ | `Title` | `string` |
1900
+ | `FirstName` | `string` |
1901
+ | `LastName` | `string` |
1902
+ | `FullName` | `string` |
1903
+ | `FullNameWithTitle` | `string` |
1904
+ | `Username` | `string` |
1905
+ | `Email` | `string` |
1906
+ | `Password` | `string` |
1907
+ | `AvatarType` | `EnumValue<AvatarType>` |
1908
+ | `AcceptTerms` | `bool` |
1909
+ | `IsVerified` | `bool` |
1910
+ | `JwtToken` | `string` |
1911
+ | `PasswordReset` | `DateTime?` |
1912
+ | `RefreshToken` | `string` |
1913
+ | `RefreshTokens` | `List<RefreshToken>` |
1914
+ | `ResetToken` | `string` |
1915
+ | `ResetTokenExpires` | `DateTime?` |
1916
+ | `VerificationToken` | `string` |
1917
+ | `Verified` | `DateTime?` |
1918
+ | `LastBeamedIn` | `DateTime?` |
1919
+ | `LastBeamedOut` | `DateTime?` |
1920
+ | `IsBeamedIn` | `bool` |
1921
+ | `Image2D` | `string` |
1922
+ | `Karma` | `int` |
1923
+ | `Level` | `int` |
1924
+ | `XP` | `int` |
1925
+
1926
+ **Example**
1927
+
1928
+ ```js
1929
+ const { isError, message, result } = await oasis.avatar.getLoggedInAvatar({});
1930
+ if (isError) throw new Error(message);
1931
+ console.log(result);
1932
+ ```
1933
+
1934
+ Example response:
1935
+
1936
+ ```json
1937
+ {
1938
+ "isError": false,
1939
+ "message": "",
1940
+ "result": { "ProviderWallets": { "<ProviderType>": [{ "AvatarId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "WalletId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "Name": "example string", "Description": /* <new string> */, "PrivateKey": "example string", "PublicKey": "example string", "WalletAddress": "example string", "WalletAddressSegwitP2SH": "example string", "SecretRecoveryPhrase": "example string", "Transactions": [{ "TransactionId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "FromWalletAddress": "example string", "ToWalletAddress": "example string", "Amount": 1.0, "Description": "example string", "CreatedDate": "2026-01-01T00:00:00Z", "TransactionType": { }, "TransactionCategory": { } }], "ProviderType": { }, "Balance": 1.0, "IsDefaultWallet": true }] }, "ProviderPrivateKey": { "<ProviderType>": "example string" }, "ProviderPublicKey": { "<ProviderType>": ["example string"] }, "ProviderUsername": { "<ProviderType>": "example string" }, "ProviderWalletAddress": { "<ProviderType>": ["example string"] }, "AvatarId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "Title": "example string", "FirstName": "example string", "LastName": "example string", "FullName": "example string", "FullNameWithTitle": "example string", "Username": "example string", "Email": "example string", "Password": "example string", "AvatarType": { "Score": 1.0 }, "AcceptTerms": true, "IsVerified": true, "JwtToken": "example string", "PasswordReset": "2026-01-01T00:00:00Z", "RefreshToken": "example string", "RefreshTokens": [{ "Id": 1, "Avatar": {}, "Token": "example string", "Expires": "2026-01-01T00:00:00Z", "Created": "2026-01-01T00:00:00Z", "CreatedByIp": "example string", "Revoked": "2026-01-01T00:00:00Z", "RevokedByIp": "example string", "ReplacedByToken": "example string" }], "ResetToken": "example string", "ResetTokenExpires": "2026-01-01T00:00:00Z", "VerificationToken": "example string", "Verified": "2026-01-01T00:00:00Z", "LastBeamedIn": "2026-01-01T00:00:00Z", "LastBeamedOut": "2026-01-01T00:00:00Z", "IsBeamedIn": true, "Image2D": "example string", "Karma": 1, "Level": 1, "XP": 1 }
1941
+ }
1942
+ ```
1943
+
1944
+ ---
1945
+
1946
+ ### `getLoggedInAvatarWithXp`
1947
+
1948
+ Gets the logged-in avatar with XP (AvatarDetail). Used by STAR API GET /api/avatar/current so clients can refresh XP after beam-in.
1949
+
1950
+ **GET** `api/avatar/get-logged-in-avatar-with-xp`
1951
+
1952
+ **Request**
1953
+
1954
+ No request body.
1955
+
1956
+ **Response**
1957
+
1958
+ Standard `OASISResult` envelope (see top of this page) with:
1959
+
1960
+ `result` type: `LoggedInAvatarResponse`
1961
+
1962
+ | Field | Type |
1963
+ | --- | --- |
1964
+ | `Id` | `Guid` |
1965
+ | `Username` | `string` |
1966
+ | `Email` | `string` |
1967
+ | `FirstName` | `string` |
1968
+ | `LastName` | `string` |
1969
+ | `XP` | `int` |
1970
+ | `ActiveQuestId` | `Guid?` |
1971
+ | `ActiveObjectiveId` | `Guid?` |
1972
+
1973
+ **Example**
1974
+
1975
+ ```js
1976
+ const { isError, message, result } = await oasis.avatar.getLoggedInAvatarWithXp({});
1977
+ if (isError) throw new Error(message);
1978
+ console.log(result);
1979
+ ```
1980
+
1981
+ Example response:
1982
+
1983
+ ```json
1984
+ {
1985
+ "isError": false,
1986
+ "message": "",
1987
+ "result": { "Id": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "Username": "example string", "Email": "example string", "FirstName": "example string", "LastName": "example string", "XP": 1, "ActiveQuestId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "ActiveObjectiveId": "3fa85f64-5717-4562-b3fc-2c963f66afa6" }
1988
+ }
1989
+ ```
1990
+
1991
+ ---
1992
+
1993
+ ### `getTerms`
1994
+
1995
+ Get's the terms &amp; services agreement for creating an avatar and joining the OASIS.
1996
+
1997
+ **GET** `api/avatar/get-terms`
1998
+
1999
+ **Request**
2000
+
2001
+ No request body.
2002
+
2003
+ **Response**
2004
+
2005
+ Standard `OASISResult` envelope (see top of this page) with:
2006
+
2007
+ `result` type: `string`
2008
+
2009
+ **Example**
2010
+
2011
+ ```js
2012
+ const { isError, message, result } = await oasis.avatar.getTerms({});
2013
+ if (isError) throw new Error(message);
2014
+ console.log(result);
2015
+ ```
2016
+
2017
+ Example response:
2018
+
2019
+ ```json
2020
+ {
2021
+ "isError": false,
2022
+ "message": "",
2023
+ "result": "example string"
2024
+ }
2025
+ ```
2026
+
2027
+ ---
2028
+
2029
+ ### `getUmaJsonByEmail`
2030
+
2031
+ Get's the 3D Model UMA JSON for a given avatar using their email. Only works for logged in users. Use Authenticate endpoint first to obtain a JWT Token.
2032
+
2033
+ **GET** `api/avatar/get-uma-json-by-email/{email}`
2034
+
2035
+ Route parameters:
2036
+
2037
+ | Field | Type |
2038
+ | --- | --- |
2039
+ | `email` | `string` |
2040
+
2041
+ **Request**
2042
+
2043
+ No request body.
2044
+
2045
+ **Response**
2046
+
2047
+ Standard `OASISResult` envelope (see top of this page) with:
2048
+
2049
+ `result` type: `string`
2050
+
2051
+ **Example**
2052
+
2053
+ ```js
2054
+ const { isError, message, result } = await oasis.avatar.getUmaJsonByEmail({
2055
+ email: '<email>'
2056
+ });
2057
+ if (isError) throw new Error(message);
2058
+ console.log(result);
2059
+ ```
2060
+
2061
+ Example response:
2062
+
2063
+ ```json
2064
+ {
2065
+ "isError": false,
2066
+ "message": "",
2067
+ "result": "example string"
2068
+ }
2069
+ ```
2070
+
2071
+ ---
2072
+
2073
+ ### `getUmaJsonById`
2074
+
2075
+ Get's the 3D Model UMA JSON for a given avatar using their id. Only works for logged in users. Use Authenticate endpoint first to obtain a JWT Token.
2076
+
2077
+ **GET** `api/avatar/get-uma-json-by-id/{id}`
2078
+
2079
+ Route parameters:
2080
+
2081
+ | Field | Type |
2082
+ | --- | --- |
2083
+ | `id` | `Guid` |
2084
+
2085
+ **Request**
2086
+
2087
+ No request body.
2088
+
2089
+ **Response**
2090
+
2091
+ Standard `OASISResult` envelope (see top of this page) with:
2092
+
2093
+ `result` type: `string`
2094
+
2095
+ **Example**
2096
+
2097
+ ```js
2098
+ const { isError, message, result } = await oasis.avatar.getUmaJsonById({
2099
+ id: '<id>'
2100
+ });
2101
+ if (isError) throw new Error(message);
2102
+ console.log(result);
2103
+ ```
2104
+
2105
+ Example response:
2106
+
2107
+ ```json
2108
+ {
2109
+ "isError": false,
2110
+ "message": "",
2111
+ "result": "example string"
2112
+ }
2113
+ ```
2114
+
2115
+ ---
2116
+
2117
+ ### `getUmaJsonByUsername`
2118
+
2119
+ Get's the 3D Model UMA JSON for a given avatar using their username. Only works for logged in users. Use Authenticate endpoint first to obtain a JWT Token.
2120
+
2121
+ **GET** `api/avatar/get-uma-json-by-username/{username}`
2122
+
2123
+ Route parameters:
2124
+
2125
+ | Field | Type |
2126
+ | --- | --- |
2127
+ | `username` | `string` |
2128
+
2129
+ **Request**
2130
+
2131
+ No request body.
2132
+
2133
+ **Response**
2134
+
2135
+ Standard `OASISResult` envelope (see top of this page) with:
2136
+
2137
+ `result` type: `string`
2138
+
2139
+ **Example**
2140
+
2141
+ ```js
2142
+ const { isError, message, result } = await oasis.avatar.getUmaJsonByUsername({
2143
+ username: '<username>'
2144
+ });
2145
+ if (isError) throw new Error(message);
2146
+ console.log(result);
2147
+ ```
2148
+
2149
+ Example response:
2150
+
2151
+ ```json
2152
+ {
2153
+ "isError": false,
2154
+ "message": "",
2155
+ "result": "example string"
2156
+ }
2157
+ ```
2158
+
2159
+ ---
2160
+
2161
+ ### `linkEOSIOAccountToAvatar`
2162
+
2163
+ Link's a given eosioAccountName to the given avatar.
2164
+
2165
+ **POST** `api/avatar/{avatarId}/{eosioAccountName}`
2166
+
2167
+ Route parameters:
2168
+
2169
+ | Field | Type |
2170
+ | --- | --- |
2171
+ | `avatarId` | `Guid` |
2172
+ | `eosioAccountName` | `string` |
2173
+
2174
+ **Request**
2175
+
2176
+ No request body.
2177
+
2178
+ **Response**
2179
+
2180
+ Standard `OASISResult` envelope (see top of this page) with:
2181
+
2182
+ `result` type: `IAvatarDetail`
2183
+
2184
+ | Field | Type |
2185
+ | --- | --- |
2186
+ | `Id` | `new Guid` |
2187
+ | `Username` | `string` |
2188
+ | `Email` | `string` |
2189
+ | `Karma` | `long` |
2190
+ | `Level` | `int` |
2191
+ | `XP` | `int` |
2192
+ | `Model3D` | `string` |
2193
+ | `UmaJson` | `string` |
2194
+ | `Portrait` | `string` |
2195
+ | `DOB` | `DateTime` |
2196
+ | `Address` | `string` |
2197
+ | `Town` | `string` |
2198
+ | `County` | `string` |
2199
+ | `Country` | `string` |
2200
+ | `Postcode` | `string` |
2201
+ | `Landline` | `string` |
2202
+ | `Mobile` | `string` |
2203
+ | `Achievements` | `IList<IAchievement>` |
2204
+ | `Attributes` | `IAvatarAttributes` |
2205
+ | `Aura` | `IAvatarAura` |
2206
+ | `Chakras` | `IAvatarChakras` |
2207
+ | `DimensionLevelIds` | `IDictionary<DimensionLevel, Guid>` |
2208
+ | `DimensionLevels` | `IDictionary<DimensionLevel, IHolon>` |
2209
+ | `FavouriteColour` | `ConsoleColor` |
2210
+ | `GeneKeys` | `IList<IGeneKey>` |
2211
+ | `Gifts` | `IList<IAvatarGift>` |
2212
+ | `HeartRateData` | `IList<IHeartRateEntry>` |
2213
+ | `HumanDesign` | `IHumanDesign` |
2214
+ | `Inventory` | `IList<IInventoryItem>` |
2215
+ | `KarmaAkashicRecords` | `IList<IKarmaAkashicRecord>` |
2216
+ | `Omniverse` | `IOmiverse` |
2217
+ | `Skills` | `IAvatarSkills` |
2218
+ | `Spells` | `IList<ISpell>` |
2219
+ | `STARCLIColour` | `ConsoleColor` |
2220
+ | `Stats` | `IAvatarStats` |
2221
+ | `SuperPowers` | `IAvatarSuperPowers` |
2222
+ | `ActiveQuestId` | `Guid?` |
2223
+ | `ActiveObjectiveId` | `Guid?` |
2224
+
2225
+ **Example**
2226
+
2227
+ ```js
2228
+ const { isError, message, result } = await oasis.avatar.linkEOSIOAccountToAvatar({
2229
+ avatarId: '<avatarId>',
2230
+ eosioAccountName: '<eosioAccountName>'
2231
+ });
2232
+ if (isError) throw new Error(message);
2233
+ console.log(result);
2234
+ ```
2235
+
2236
+ Example response:
2237
+
2238
+ ```json
2239
+ {
2240
+ "isError": false,
2241
+ "message": "",
2242
+ "result": { "Id": /* <new Guid> */, "Username": "example string", "Email": "example string", "Karma": 1, "Level": 1, "XP": 1, "Model3D": "example string", "UmaJson": "example string", "Portrait": "example string", "DOB": "2026-01-01T00:00:00Z", "Address": "example string", "Town": "example string", "County": "example string", "Country": "example string", "Postcode": "example string", "Landline": "example string", "Mobile": "example string", "Achievements": [{ "AchievementEarnt": "2026-01-01T00:00:00Z", "AchievementType": { }, "AvatarId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "Description": "example string", "KarmaSource": { "Score": 1.0 }, "KarmaSourceDesc": "example string", "KarmaSourceTitle": "example string", "Name": "example string", "Provider": { "Score": 1.0 }, "WebLink": "example string" }], "Attributes": { "Dexterity": 1, "Intelligence": 1, "Magic": 1, "Speed": 1, "Strength": 1, "Toughness": 1, "Wisdom": 1, "Vitality": 1, "Endurance": 1 }, "Aura": { "Progress": 1, "Brightness": 1, "Size": 1, "ColourBlue": 1, "ColourGreen": 1, "ColourRed": 1, "Level": 1, "Value": 1 }, "Chakras": { "Crown": { }, "Heart": { }, "Root": { }, "Sacral": { }, "SolarPlexus": { }, "ThirdEye": { }, "Throat": { } }, "DimensionLevelIds": /* <IDictionary<DimensionLevel, Guid>> */, "DimensionLevels": /* <IDictionary<DimensionLevel, IHolon>> */, "FavouriteColour": /* <ConsoleColor> */, "GeneKeys": [{ "Description": "example string", "Gift": "example string", "Name": "example string", "Shadow": "example string", "Sidhi": "example string" }], "Gifts": [{ "AvatarId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "GiftEarnt": "2026-01-01T00:00:00Z", "GiftType": {}, "KarmaSource": {}, "KarmaSourceDesc": "example string", "KarmaSourceTitle": "example string", "Provider": {}, "WebLink": "example string" }], "HeartRateData": [{ "HeartRateValue": 1, "TimeStamp": "2026-01-01T00:00:00Z" }], "HumanDesign": { "Type": "example string" }, "Inventory": [{ "Image2D": "<base64-bytes>", "Image2DURI": "https://example.com/asset.png", "ThumbnailUrl": "example string", "Object3D": "<base64-bytes>", "Object3DURI": "https://example.com/asset.png", "Quantity": 1, "Stack": true, "IsStackable": true, "GameSource": "example string", "ItemType": "example string", "NftId": "example string", "Rarity": "example string", "MaxQuantity": 1, "Weight": 1.0, "IsUsable": true, "IsTradeable": true, "OwnerAvatarId": "example string", "AcquiredOn": "2026-01-01T00:00:00Z", "LastUsedOn": "2026-01-01T00:00:00Z", "Properties": { "<string>": {} } }], "KarmaAkashicRecords": [{ "AvatarId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "Date": "2026-01-01T00:00:00Z", "Karma": 1, "KarmaEarntOrLost": { "Score": 1.0 }, "KarmaSource": {}, "KarmaSourceDesc": "example string", "KarmaSourceTitle": "example string", "KarmaTypeNegative": { "Score": 1.0 }, "KarmaTypePositive": { "Score": 1.0 }, "Provider": {}, "TotalKarma": 1, "WebLink": "example string" }], "Omniverse": { "GreatGrandSuperStar": { }, "Dimensions": { "EighthDimension": { }, "NinthDimension": { }, "TenthDimension": { }, "EleventhDimension": { }, "TwelfthDimension": { }, "CustomDimensions": [{ "DimensionLevel": { } }] }, "Multiverses": [{ "GrandSuperStar": { "Stars": [ /* <I> */ ] }, "Dimensions": { "FirstDimension": { "Universe": { "Dimensions": [], "GalaxyClusters": [{ "Galaxies": [{ "SuperStar": { "Stars": [{ "Luminosity": 1, "StarType": { }, "StarClassification": { }, "StarBinaryType": { } }] }, "SolarSystems": [{ "Star": {}, "Planets": [{ "Moons": [{ }] }], "Asteroids": [{ }], "Comets": [{ }], "Meteroids": [{ }] }], "Nebulas": [{ }], "Stars": [], "Planets": [], "Asteroids": [], "Comets": [], "Meteroids": [] }], "SolarSystems": [], "Stars": [], "Planets": [], "Asteroids": [], "Comets": [], "Meteroids": [], "IsSuperCluster": true }], "SolarSystems": [], "Nebulas": [], "Stars": [], "Planets": [], "Asteroids": [], "Comets": [], "Meteroids": [] } }, "SecondDimension": { "Universe": {} }, "ThirdDimension": { "UniversePrime": {}, "MagicVerse": {}, "ParallelUniverses": [] }, "FourthDimension": { "Universe": {} }, "FifthDimension": { "Universe": {} }, "SixthDimension": { "Universe": {} }, "SeventhDimension": { "Universe": {} }, "CustomDimensions": [] } }] }, "Skills": { "Computers": 1, "Engineering": 1, "Farming": 1, "FireStarting": 1, "Fishing": 1, "Languages": 1, "Meditation": 1, "MeleeCombat": 1, "Mindfulness": 1, "Negotiating": 1, "RangedCombat": 1, "Research": 1, "Science": 1, "SpellCasting": 1, "Translating": 1, "Yoga": 1 }, "Spells": [{ "Description": "example string", "FireDamage": 1, "HealingPower": 1, "IceDamage": 1, "LightningDamage": 1, "Name": "example string", "PoisonDamage": 1, "WaterDamage": 1, "WindDamage": 1 }], "STARCLIColour": /* <ConsoleColor> */, "Stats": { "Energy": { "Current": 1, "Max": 1 }, "HP": {}, "Mana": {}, "Stamina": {} }, "SuperPowers": { "AstralProjection": 1, "BioLocatation": 1, "Flight": 1, "FreezeBreath": 1, "HeatVision": 1, "Invulnerability": 1, "RemoteViewing": 1, "SuperSpeed": 1, "SuperStrength": 1, "Telekinesis": 1, "Telepathy": 1, "Teleportation": 1, "XRayVision": 1 }, "ActiveQuestId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "ActiveObjectiveId": "3fa85f64-5717-4562-b3fc-2c963f66afa6" }
2243
+ }
2244
+ ```
2245
+
2246
+ ---
2247
+
2248
+ ### `linkHolochainAgentIDToAvatar`
2249
+
2250
+ Link's a given holochain AgentID to the given avatar.
2251
+
2252
+ **POST** `api/avatar/{avatarId}/{holochainAgentID}`
2253
+
2254
+ Route parameters:
2255
+
2256
+ | Field | Type |
2257
+ | --- | --- |
2258
+ | `avatarId` | `Guid` |
2259
+ | `holochainAgentID` | `string` |
2260
+
2261
+ **Request**
2262
+
2263
+ No request body.
2264
+
2265
+ **Response**
2266
+
2267
+ Standard `OASISResult` envelope (see top of this page) with:
2268
+
2269
+ `result` type: `IAvatarDetail`
2270
+
2271
+ | Field | Type |
2272
+ | --- | --- |
2273
+ | `Id` | `new Guid` |
2274
+ | `Username` | `string` |
2275
+ | `Email` | `string` |
2276
+ | `Karma` | `long` |
2277
+ | `Level` | `int` |
2278
+ | `XP` | `int` |
2279
+ | `Model3D` | `string` |
2280
+ | `UmaJson` | `string` |
2281
+ | `Portrait` | `string` |
2282
+ | `DOB` | `DateTime` |
2283
+ | `Address` | `string` |
2284
+ | `Town` | `string` |
2285
+ | `County` | `string` |
2286
+ | `Country` | `string` |
2287
+ | `Postcode` | `string` |
2288
+ | `Landline` | `string` |
2289
+ | `Mobile` | `string` |
2290
+ | `Achievements` | `IList<IAchievement>` |
2291
+ | `Attributes` | `IAvatarAttributes` |
2292
+ | `Aura` | `IAvatarAura` |
2293
+ | `Chakras` | `IAvatarChakras` |
2294
+ | `DimensionLevelIds` | `IDictionary<DimensionLevel, Guid>` |
2295
+ | `DimensionLevels` | `IDictionary<DimensionLevel, IHolon>` |
2296
+ | `FavouriteColour` | `ConsoleColor` |
2297
+ | `GeneKeys` | `IList<IGeneKey>` |
2298
+ | `Gifts` | `IList<IAvatarGift>` |
2299
+ | `HeartRateData` | `IList<IHeartRateEntry>` |
2300
+ | `HumanDesign` | `IHumanDesign` |
2301
+ | `Inventory` | `IList<IInventoryItem>` |
2302
+ | `KarmaAkashicRecords` | `IList<IKarmaAkashicRecord>` |
2303
+ | `Omniverse` | `IOmiverse` |
2304
+ | `Skills` | `IAvatarSkills` |
2305
+ | `Spells` | `IList<ISpell>` |
2306
+ | `STARCLIColour` | `ConsoleColor` |
2307
+ | `Stats` | `IAvatarStats` |
2308
+ | `SuperPowers` | `IAvatarSuperPowers` |
2309
+ | `ActiveQuestId` | `Guid?` |
2310
+ | `ActiveObjectiveId` | `Guid?` |
2311
+
2312
+ **Example**
2313
+
2314
+ ```js
2315
+ const { isError, message, result } = await oasis.avatar.linkHolochainAgentIDToAvatar({
2316
+ avatarId: '<avatarId>',
2317
+ holochainAgentID: '<holochainAgentID>'
2318
+ });
2319
+ if (isError) throw new Error(message);
2320
+ console.log(result);
2321
+ ```
2322
+
2323
+ Example response:
2324
+
2325
+ ```json
2326
+ {
2327
+ "isError": false,
2328
+ "message": "",
2329
+ "result": { "Id": /* <new Guid> */, "Username": "example string", "Email": "example string", "Karma": 1, "Level": 1, "XP": 1, "Model3D": "example string", "UmaJson": "example string", "Portrait": "example string", "DOB": "2026-01-01T00:00:00Z", "Address": "example string", "Town": "example string", "County": "example string", "Country": "example string", "Postcode": "example string", "Landline": "example string", "Mobile": "example string", "Achievements": [{ "AchievementEarnt": "2026-01-01T00:00:00Z", "AchievementType": { }, "AvatarId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "Description": "example string", "KarmaSource": { "Score": 1.0 }, "KarmaSourceDesc": "example string", "KarmaSourceTitle": "example string", "Name": "example string", "Provider": { "Score": 1.0 }, "WebLink": "example string" }], "Attributes": { "Dexterity": 1, "Intelligence": 1, "Magic": 1, "Speed": 1, "Strength": 1, "Toughness": 1, "Wisdom": 1, "Vitality": 1, "Endurance": 1 }, "Aura": { "Progress": 1, "Brightness": 1, "Size": 1, "ColourBlue": 1, "ColourGreen": 1, "ColourRed": 1, "Level": 1, "Value": 1 }, "Chakras": { "Crown": { }, "Heart": { }, "Root": { }, "Sacral": { }, "SolarPlexus": { }, "ThirdEye": { }, "Throat": { } }, "DimensionLevelIds": /* <IDictionary<DimensionLevel, Guid>> */, "DimensionLevels": /* <IDictionary<DimensionLevel, IHolon>> */, "FavouriteColour": /* <ConsoleColor> */, "GeneKeys": [{ "Description": "example string", "Gift": "example string", "Name": "example string", "Shadow": "example string", "Sidhi": "example string" }], "Gifts": [{ "AvatarId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "GiftEarnt": "2026-01-01T00:00:00Z", "GiftType": {}, "KarmaSource": {}, "KarmaSourceDesc": "example string", "KarmaSourceTitle": "example string", "Provider": {}, "WebLink": "example string" }], "HeartRateData": [{ "HeartRateValue": 1, "TimeStamp": "2026-01-01T00:00:00Z" }], "HumanDesign": { "Type": "example string" }, "Inventory": [{ "Image2D": "<base64-bytes>", "Image2DURI": "https://example.com/asset.png", "ThumbnailUrl": "example string", "Object3D": "<base64-bytes>", "Object3DURI": "https://example.com/asset.png", "Quantity": 1, "Stack": true, "IsStackable": true, "GameSource": "example string", "ItemType": "example string", "NftId": "example string", "Rarity": "example string", "MaxQuantity": 1, "Weight": 1.0, "IsUsable": true, "IsTradeable": true, "OwnerAvatarId": "example string", "AcquiredOn": "2026-01-01T00:00:00Z", "LastUsedOn": "2026-01-01T00:00:00Z", "Properties": { "<string>": {} } }], "KarmaAkashicRecords": [{ "AvatarId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "Date": "2026-01-01T00:00:00Z", "Karma": 1, "KarmaEarntOrLost": { "Score": 1.0 }, "KarmaSource": {}, "KarmaSourceDesc": "example string", "KarmaSourceTitle": "example string", "KarmaTypeNegative": { "Score": 1.0 }, "KarmaTypePositive": { "Score": 1.0 }, "Provider": {}, "TotalKarma": 1, "WebLink": "example string" }], "Omniverse": { "GreatGrandSuperStar": { }, "Dimensions": { "EighthDimension": { }, "NinthDimension": { }, "TenthDimension": { }, "EleventhDimension": { }, "TwelfthDimension": { }, "CustomDimensions": [{ "DimensionLevel": { } }] }, "Multiverses": [{ "GrandSuperStar": { "Stars": [ /* <I> */ ] }, "Dimensions": { "FirstDimension": { "Universe": { "Dimensions": [], "GalaxyClusters": [{ "Galaxies": [{ "SuperStar": { "Stars": [{ "Luminosity": 1, "StarType": { }, "StarClassification": { }, "StarBinaryType": { } }] }, "SolarSystems": [{ "Star": {}, "Planets": [{ "Moons": [{ }] }], "Asteroids": [{ }], "Comets": [{ }], "Meteroids": [{ }] }], "Nebulas": [{ }], "Stars": [], "Planets": [], "Asteroids": [], "Comets": [], "Meteroids": [] }], "SolarSystems": [], "Stars": [], "Planets": [], "Asteroids": [], "Comets": [], "Meteroids": [], "IsSuperCluster": true }], "SolarSystems": [], "Nebulas": [], "Stars": [], "Planets": [], "Asteroids": [], "Comets": [], "Meteroids": [] } }, "SecondDimension": { "Universe": {} }, "ThirdDimension": { "UniversePrime": {}, "MagicVerse": {}, "ParallelUniverses": [] }, "FourthDimension": { "Universe": {} }, "FifthDimension": { "Universe": {} }, "SixthDimension": { "Universe": {} }, "SeventhDimension": { "Universe": {} }, "CustomDimensions": [] } }] }, "Skills": { "Computers": 1, "Engineering": 1, "Farming": 1, "FireStarting": 1, "Fishing": 1, "Languages": 1, "Meditation": 1, "MeleeCombat": 1, "Mindfulness": 1, "Negotiating": 1, "RangedCombat": 1, "Research": 1, "Science": 1, "SpellCasting": 1, "Translating": 1, "Yoga": 1 }, "Spells": [{ "Description": "example string", "FireDamage": 1, "HealingPower": 1, "IceDamage": 1, "LightningDamage": 1, "Name": "example string", "PoisonDamage": 1, "WaterDamage": 1, "WindDamage": 1 }], "STARCLIColour": /* <ConsoleColor> */, "Stats": { "Energy": { "Current": 1, "Max": 1 }, "HP": {}, "Mana": {}, "Stamina": {} }, "SuperPowers": { "AstralProjection": 1, "BioLocatation": 1, "Flight": 1, "FreezeBreath": 1, "HeatVision": 1, "Invulnerability": 1, "RemoteViewing": 1, "SuperSpeed": 1, "SuperStrength": 1, "Telekinesis": 1, "Telepathy": 1, "Teleportation": 1, "XRayVision": 1 }, "ActiveQuestId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "ActiveObjectiveId": "3fa85f64-5717-4562-b3fc-2c963f66afa6" }
2330
+ }
2331
+ ```
2332
+
2333
+ ---
2334
+
2335
+ ### `linkTelosAccountToAvatar`
2336
+
2337
+ Link's a given telosAccount to the given avatar.
2338
+
2339
+ **POST** `api/avatar/{id:Guid}/{telosAccountName}`
2340
+
2341
+ Route parameters:
2342
+
2343
+ | Field | Type |
2344
+ | --- | --- |
2345
+ | `id` | `Guid` |
2346
+ | `telosAccountName` | `string` |
2347
+
2348
+ **Request**
2349
+
2350
+ No request body.
2351
+
2352
+ **Response**
2353
+
2354
+ Standard `OASISResult` envelope (see top of this page) with:
2355
+
2356
+ `result` type: `IAvatarDetail`
2357
+
2358
+ | Field | Type |
2359
+ | --- | --- |
2360
+ | `Id` | `new Guid` |
2361
+ | `Username` | `string` |
2362
+ | `Email` | `string` |
2363
+ | `Karma` | `long` |
2364
+ | `Level` | `int` |
2365
+ | `XP` | `int` |
2366
+ | `Model3D` | `string` |
2367
+ | `UmaJson` | `string` |
2368
+ | `Portrait` | `string` |
2369
+ | `DOB` | `DateTime` |
2370
+ | `Address` | `string` |
2371
+ | `Town` | `string` |
2372
+ | `County` | `string` |
2373
+ | `Country` | `string` |
2374
+ | `Postcode` | `string` |
2375
+ | `Landline` | `string` |
2376
+ | `Mobile` | `string` |
2377
+ | `Achievements` | `IList<IAchievement>` |
2378
+ | `Attributes` | `IAvatarAttributes` |
2379
+ | `Aura` | `IAvatarAura` |
2380
+ | `Chakras` | `IAvatarChakras` |
2381
+ | `DimensionLevelIds` | `IDictionary<DimensionLevel, Guid>` |
2382
+ | `DimensionLevels` | `IDictionary<DimensionLevel, IHolon>` |
2383
+ | `FavouriteColour` | `ConsoleColor` |
2384
+ | `GeneKeys` | `IList<IGeneKey>` |
2385
+ | `Gifts` | `IList<IAvatarGift>` |
2386
+ | `HeartRateData` | `IList<IHeartRateEntry>` |
2387
+ | `HumanDesign` | `IHumanDesign` |
2388
+ | `Inventory` | `IList<IInventoryItem>` |
2389
+ | `KarmaAkashicRecords` | `IList<IKarmaAkashicRecord>` |
2390
+ | `Omniverse` | `IOmiverse` |
2391
+ | `Skills` | `IAvatarSkills` |
2392
+ | `Spells` | `IList<ISpell>` |
2393
+ | `STARCLIColour` | `ConsoleColor` |
2394
+ | `Stats` | `IAvatarStats` |
2395
+ | `SuperPowers` | `IAvatarSuperPowers` |
2396
+ | `ActiveQuestId` | `Guid?` |
2397
+ | `ActiveObjectiveId` | `Guid?` |
2398
+
2399
+ **Example**
2400
+
2401
+ ```js
2402
+ const { isError, message, result } = await oasis.avatar.linkTelosAccountToAvatar({
2403
+ id: '<id>',
2404
+ telosAccountName: '<telosAccountName>'
2405
+ });
2406
+ if (isError) throw new Error(message);
2407
+ console.log(result);
2408
+ ```
2409
+
2410
+ Example response:
2411
+
2412
+ ```json
2413
+ {
2414
+ "isError": false,
2415
+ "message": "",
2416
+ "result": { "Id": /* <new Guid> */, "Username": "example string", "Email": "example string", "Karma": 1, "Level": 1, "XP": 1, "Model3D": "example string", "UmaJson": "example string", "Portrait": "example string", "DOB": "2026-01-01T00:00:00Z", "Address": "example string", "Town": "example string", "County": "example string", "Country": "example string", "Postcode": "example string", "Landline": "example string", "Mobile": "example string", "Achievements": [{ "AchievementEarnt": "2026-01-01T00:00:00Z", "AchievementType": { }, "AvatarId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "Description": "example string", "KarmaSource": { "Score": 1.0 }, "KarmaSourceDesc": "example string", "KarmaSourceTitle": "example string", "Name": "example string", "Provider": { "Score": 1.0 }, "WebLink": "example string" }], "Attributes": { "Dexterity": 1, "Intelligence": 1, "Magic": 1, "Speed": 1, "Strength": 1, "Toughness": 1, "Wisdom": 1, "Vitality": 1, "Endurance": 1 }, "Aura": { "Progress": 1, "Brightness": 1, "Size": 1, "ColourBlue": 1, "ColourGreen": 1, "ColourRed": 1, "Level": 1, "Value": 1 }, "Chakras": { "Crown": { }, "Heart": { }, "Root": { }, "Sacral": { }, "SolarPlexus": { }, "ThirdEye": { }, "Throat": { } }, "DimensionLevelIds": /* <IDictionary<DimensionLevel, Guid>> */, "DimensionLevels": /* <IDictionary<DimensionLevel, IHolon>> */, "FavouriteColour": /* <ConsoleColor> */, "GeneKeys": [{ "Description": "example string", "Gift": "example string", "Name": "example string", "Shadow": "example string", "Sidhi": "example string" }], "Gifts": [{ "AvatarId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "GiftEarnt": "2026-01-01T00:00:00Z", "GiftType": {}, "KarmaSource": {}, "KarmaSourceDesc": "example string", "KarmaSourceTitle": "example string", "Provider": {}, "WebLink": "example string" }], "HeartRateData": [{ "HeartRateValue": 1, "TimeStamp": "2026-01-01T00:00:00Z" }], "HumanDesign": { "Type": "example string" }, "Inventory": [{ "Image2D": "<base64-bytes>", "Image2DURI": "https://example.com/asset.png", "ThumbnailUrl": "example string", "Object3D": "<base64-bytes>", "Object3DURI": "https://example.com/asset.png", "Quantity": 1, "Stack": true, "IsStackable": true, "GameSource": "example string", "ItemType": "example string", "NftId": "example string", "Rarity": "example string", "MaxQuantity": 1, "Weight": 1.0, "IsUsable": true, "IsTradeable": true, "OwnerAvatarId": "example string", "AcquiredOn": "2026-01-01T00:00:00Z", "LastUsedOn": "2026-01-01T00:00:00Z", "Properties": { "<string>": {} } }], "KarmaAkashicRecords": [{ "AvatarId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "Date": "2026-01-01T00:00:00Z", "Karma": 1, "KarmaEarntOrLost": { "Score": 1.0 }, "KarmaSource": {}, "KarmaSourceDesc": "example string", "KarmaSourceTitle": "example string", "KarmaTypeNegative": { "Score": 1.0 }, "KarmaTypePositive": { "Score": 1.0 }, "Provider": {}, "TotalKarma": 1, "WebLink": "example string" }], "Omniverse": { "GreatGrandSuperStar": { }, "Dimensions": { "EighthDimension": { }, "NinthDimension": { }, "TenthDimension": { }, "EleventhDimension": { }, "TwelfthDimension": { }, "CustomDimensions": [{ "DimensionLevel": { } }] }, "Multiverses": [{ "GrandSuperStar": { "Stars": [ /* <I> */ ] }, "Dimensions": { "FirstDimension": { "Universe": { "Dimensions": [], "GalaxyClusters": [{ "Galaxies": [{ "SuperStar": { "Stars": [{ "Luminosity": 1, "StarType": { }, "StarClassification": { }, "StarBinaryType": { } }] }, "SolarSystems": [{ "Star": {}, "Planets": [{ "Moons": [{ }] }], "Asteroids": [{ }], "Comets": [{ }], "Meteroids": [{ }] }], "Nebulas": [{ }], "Stars": [], "Planets": [], "Asteroids": [], "Comets": [], "Meteroids": [] }], "SolarSystems": [], "Stars": [], "Planets": [], "Asteroids": [], "Comets": [], "Meteroids": [], "IsSuperCluster": true }], "SolarSystems": [], "Nebulas": [], "Stars": [], "Planets": [], "Asteroids": [], "Comets": [], "Meteroids": [] } }, "SecondDimension": { "Universe": {} }, "ThirdDimension": { "UniversePrime": {}, "MagicVerse": {}, "ParallelUniverses": [] }, "FourthDimension": { "Universe": {} }, "FifthDimension": { "Universe": {} }, "SixthDimension": { "Universe": {} }, "SeventhDimension": { "Universe": {} }, "CustomDimensions": [] } }] }, "Skills": { "Computers": 1, "Engineering": 1, "Farming": 1, "FireStarting": 1, "Fishing": 1, "Languages": 1, "Meditation": 1, "MeleeCombat": 1, "Mindfulness": 1, "Negotiating": 1, "RangedCombat": 1, "Research": 1, "Science": 1, "SpellCasting": 1, "Translating": 1, "Yoga": 1 }, "Spells": [{ "Description": "example string", "FireDamage": 1, "HealingPower": 1, "IceDamage": 1, "LightningDamage": 1, "Name": "example string", "PoisonDamage": 1, "WaterDamage": 1, "WindDamage": 1 }], "STARCLIColour": /* <ConsoleColor> */, "Stats": { "Energy": { "Current": 1, "Max": 1 }, "HP": {}, "Mana": {}, "Stamina": {} }, "SuperPowers": { "AstralProjection": 1, "BioLocatation": 1, "Flight": 1, "FreezeBreath": 1, "HeatVision": 1, "Invulnerability": 1, "RemoteViewing": 1, "SuperSpeed": 1, "SuperStrength": 1, "Telekinesis": 1, "Telepathy": 1, "Teleportation": 1, "XRayVision": 1 }, "ActiveQuestId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "ActiveObjectiveId": "3fa85f64-5717-4562-b3fc-2c963f66afa6" }
2417
+ }
2418
+ ```
2419
+
2420
+ ---
2421
+
2422
+ ### `linkTelosAccountToAvatar2`
2423
+
2424
+ Link's a given telosAccount to the given avatar.
2425
+
2426
+ **POST** `api/avatar`
2427
+
2428
+ **Request**
2429
+
2430
+ Body type: `LinkProviderKeyToAvatar` _(type definition not found in the OASIS2 source - field list unavailable)_
2431
+
2432
+ **Response**
2433
+
2434
+ Standard `OASISResult` envelope (see top of this page) with:
2435
+
2436
+ `result` type: `IAvatarDetail`
2437
+
2438
+ | Field | Type |
2439
+ | --- | --- |
2440
+ | `Id` | `new Guid` |
2441
+ | `Username` | `string` |
2442
+ | `Email` | `string` |
2443
+ | `Karma` | `long` |
2444
+ | `Level` | `int` |
2445
+ | `XP` | `int` |
2446
+ | `Model3D` | `string` |
2447
+ | `UmaJson` | `string` |
2448
+ | `Portrait` | `string` |
2449
+ | `DOB` | `DateTime` |
2450
+ | `Address` | `string` |
2451
+ | `Town` | `string` |
2452
+ | `County` | `string` |
2453
+ | `Country` | `string` |
2454
+ | `Postcode` | `string` |
2455
+ | `Landline` | `string` |
2456
+ | `Mobile` | `string` |
2457
+ | `Achievements` | `IList<IAchievement>` |
2458
+ | `Attributes` | `IAvatarAttributes` |
2459
+ | `Aura` | `IAvatarAura` |
2460
+ | `Chakras` | `IAvatarChakras` |
2461
+ | `DimensionLevelIds` | `IDictionary<DimensionLevel, Guid>` |
2462
+ | `DimensionLevels` | `IDictionary<DimensionLevel, IHolon>` |
2463
+ | `FavouriteColour` | `ConsoleColor` |
2464
+ | `GeneKeys` | `IList<IGeneKey>` |
2465
+ | `Gifts` | `IList<IAvatarGift>` |
2466
+ | `HeartRateData` | `IList<IHeartRateEntry>` |
2467
+ | `HumanDesign` | `IHumanDesign` |
2468
+ | `Inventory` | `IList<IInventoryItem>` |
2469
+ | `KarmaAkashicRecords` | `IList<IKarmaAkashicRecord>` |
2470
+ | `Omniverse` | `IOmiverse` |
2471
+ | `Skills` | `IAvatarSkills` |
2472
+ | `Spells` | `IList<ISpell>` |
2473
+ | `STARCLIColour` | `ConsoleColor` |
2474
+ | `Stats` | `IAvatarStats` |
2475
+ | `SuperPowers` | `IAvatarSuperPowers` |
2476
+ | `ActiveQuestId` | `Guid?` |
2477
+ | `ActiveObjectiveId` | `Guid?` |
2478
+
2479
+ **Example**
2480
+
2481
+ ```js
2482
+ const { isError, message, result } = await oasis.avatar.linkTelosAccountToAvatar2({
2483
+ /* ...request body fields */
2484
+ });
2485
+ if (isError) throw new Error(message);
2486
+ console.log(result);
2487
+ ```
2488
+
2489
+ Example response:
2490
+
2491
+ ```json
2492
+ {
2493
+ "isError": false,
2494
+ "message": "",
2495
+ "result": { "Id": /* <new Guid> */, "Username": "example string", "Email": "example string", "Karma": 1, "Level": 1, "XP": 1, "Model3D": "example string", "UmaJson": "example string", "Portrait": "example string", "DOB": "2026-01-01T00:00:00Z", "Address": "example string", "Town": "example string", "County": "example string", "Country": "example string", "Postcode": "example string", "Landline": "example string", "Mobile": "example string", "Achievements": [{ "AchievementEarnt": "2026-01-01T00:00:00Z", "AchievementType": { }, "AvatarId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "Description": "example string", "KarmaSource": { "Score": 1.0 }, "KarmaSourceDesc": "example string", "KarmaSourceTitle": "example string", "Name": "example string", "Provider": { "Score": 1.0 }, "WebLink": "example string" }], "Attributes": { "Dexterity": 1, "Intelligence": 1, "Magic": 1, "Speed": 1, "Strength": 1, "Toughness": 1, "Wisdom": 1, "Vitality": 1, "Endurance": 1 }, "Aura": { "Progress": 1, "Brightness": 1, "Size": 1, "ColourBlue": 1, "ColourGreen": 1, "ColourRed": 1, "Level": 1, "Value": 1 }, "Chakras": { "Crown": { }, "Heart": { }, "Root": { }, "Sacral": { }, "SolarPlexus": { }, "ThirdEye": { }, "Throat": { } }, "DimensionLevelIds": /* <IDictionary<DimensionLevel, Guid>> */, "DimensionLevels": /* <IDictionary<DimensionLevel, IHolon>> */, "FavouriteColour": /* <ConsoleColor> */, "GeneKeys": [{ "Description": "example string", "Gift": "example string", "Name": "example string", "Shadow": "example string", "Sidhi": "example string" }], "Gifts": [{ "AvatarId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "GiftEarnt": "2026-01-01T00:00:00Z", "GiftType": {}, "KarmaSource": {}, "KarmaSourceDesc": "example string", "KarmaSourceTitle": "example string", "Provider": {}, "WebLink": "example string" }], "HeartRateData": [{ "HeartRateValue": 1, "TimeStamp": "2026-01-01T00:00:00Z" }], "HumanDesign": { "Type": "example string" }, "Inventory": [{ "Image2D": "<base64-bytes>", "Image2DURI": "https://example.com/asset.png", "ThumbnailUrl": "example string", "Object3D": "<base64-bytes>", "Object3DURI": "https://example.com/asset.png", "Quantity": 1, "Stack": true, "IsStackable": true, "GameSource": "example string", "ItemType": "example string", "NftId": "example string", "Rarity": "example string", "MaxQuantity": 1, "Weight": 1.0, "IsUsable": true, "IsTradeable": true, "OwnerAvatarId": "example string", "AcquiredOn": "2026-01-01T00:00:00Z", "LastUsedOn": "2026-01-01T00:00:00Z", "Properties": { "<string>": {} } }], "KarmaAkashicRecords": [{ "AvatarId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "Date": "2026-01-01T00:00:00Z", "Karma": 1, "KarmaEarntOrLost": { "Score": 1.0 }, "KarmaSource": {}, "KarmaSourceDesc": "example string", "KarmaSourceTitle": "example string", "KarmaTypeNegative": { "Score": 1.0 }, "KarmaTypePositive": { "Score": 1.0 }, "Provider": {}, "TotalKarma": 1, "WebLink": "example string" }], "Omniverse": { "GreatGrandSuperStar": { }, "Dimensions": { "EighthDimension": { }, "NinthDimension": { }, "TenthDimension": { }, "EleventhDimension": { }, "TwelfthDimension": { }, "CustomDimensions": [{ "DimensionLevel": { } }] }, "Multiverses": [{ "GrandSuperStar": { "Stars": [ /* <I> */ ] }, "Dimensions": { "FirstDimension": { "Universe": { "Dimensions": [], "GalaxyClusters": [{ "Galaxies": [{ "SuperStar": { "Stars": [{ "Luminosity": 1, "StarType": { }, "StarClassification": { }, "StarBinaryType": { } }] }, "SolarSystems": [{ "Star": {}, "Planets": [{ "Moons": [{ }] }], "Asteroids": [{ }], "Comets": [{ }], "Meteroids": [{ }] }], "Nebulas": [{ }], "Stars": [], "Planets": [], "Asteroids": [], "Comets": [], "Meteroids": [] }], "SolarSystems": [], "Stars": [], "Planets": [], "Asteroids": [], "Comets": [], "Meteroids": [], "IsSuperCluster": true }], "SolarSystems": [], "Nebulas": [], "Stars": [], "Planets": [], "Asteroids": [], "Comets": [], "Meteroids": [] } }, "SecondDimension": { "Universe": {} }, "ThirdDimension": { "UniversePrime": {}, "MagicVerse": {}, "ParallelUniverses": [] }, "FourthDimension": { "Universe": {} }, "FifthDimension": { "Universe": {} }, "SixthDimension": { "Universe": {} }, "SeventhDimension": { "Universe": {} }, "CustomDimensions": [] } }] }, "Skills": { "Computers": 1, "Engineering": 1, "Farming": 1, "FireStarting": 1, "Fishing": 1, "Languages": 1, "Meditation": 1, "MeleeCombat": 1, "Mindfulness": 1, "Negotiating": 1, "RangedCombat": 1, "Research": 1, "Science": 1, "SpellCasting": 1, "Translating": 1, "Yoga": 1 }, "Spells": [{ "Description": "example string", "FireDamage": 1, "HealingPower": 1, "IceDamage": 1, "LightningDamage": 1, "Name": "example string", "PoisonDamage": 1, "WaterDamage": 1, "WindDamage": 1 }], "STARCLIColour": /* <ConsoleColor> */, "Stats": { "Energy": { "Current": 1, "Max": 1 }, "HP": {}, "Mana": {}, "Stamina": {} }, "SuperPowers": { "AstralProjection": 1, "BioLocatation": 1, "Flight": 1, "FreezeBreath": 1, "HeatVision": 1, "Invulnerability": 1, "RemoteViewing": 1, "SuperSpeed": 1, "SuperStrength": 1, "Telekinesis": 1, "Telepathy": 1, "Teleportation": 1, "XRayVision": 1 }, "ActiveQuestId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "ActiveObjectiveId": "3fa85f64-5717-4562-b3fc-2c963f66afa6" }
2496
+ }
2497
+ ```
2498
+
2499
+ ---
2500
+
2501
+ ### `logoutAllAvatarSessions`
2502
+
2503
+ Logout avatar from all sessions (OASIS SSO System)
2504
+
2505
+ **POST** `api/avatar/{avatarId}/sessions/logout-all`
2506
+
2507
+ Route parameters:
2508
+
2509
+ | Field | Type |
2510
+ | --- | --- |
2511
+ | `avatarId` | `Guid` |
2512
+
2513
+ **Request**
2514
+
2515
+ No request body.
2516
+
2517
+ **Response**
2518
+
2519
+ Standard `OASISResult` envelope (see top of this page) with:
2520
+
2521
+ `result` type: `bool`
2522
+
2523
+ **Example**
2524
+
2525
+ ```js
2526
+ const { isError, message, result } = await oasis.avatar.logoutAllAvatarSessions({
2527
+ avatarId: '<avatarId>'
2528
+ });
2529
+ if (isError) throw new Error(message);
2530
+ console.log(result);
2531
+ ```
2532
+
2533
+ Example response:
2534
+
2535
+ ```json
2536
+ {
2537
+ "isError": false,
2538
+ "message": "",
2539
+ "result": true
2540
+ }
2541
+ ```
2542
+
2543
+ ---
2544
+
2545
+ ### `logoutAvatarSessions`
2546
+
2547
+ Logout avatar from specific sessions (OASIS SSO System)
2548
+
2549
+ **POST** `api/avatar/{avatarId}/sessions/logout`
2550
+
2551
+ Route parameters:
2552
+
2553
+ | Field | Type |
2554
+ | --- | --- |
2555
+ | `avatarId` | `Guid` |
2556
+
2557
+ **Request**
2558
+
2559
+ Body type: `string` (array)
2560
+
2561
+ **Response**
2562
+
2563
+ Standard `OASISResult` envelope (see top of this page) with:
2564
+
2565
+ `result` type: `bool`
2566
+
2567
+ **Example**
2568
+
2569
+ ```js
2570
+ const { isError, message, result } = await oasis.avatar.logoutAvatarSessions({
2571
+ avatarId: '<avatarId>',
2572
+ /* ...request body fields */
2573
+ });
2574
+ if (isError) throw new Error(message);
2575
+ console.log(result);
2576
+ ```
2577
+
2578
+ Example response:
2579
+
2580
+ ```json
2581
+ {
2582
+ "isError": false,
2583
+ "message": "",
2584
+ "result": true
2585
+ }
2586
+ ```
2587
+
2588
+ ---
2589
+
2590
+ ### `register`
2591
+
2592
+ Register a new avatar with the OASIS system.
2593
+
2594
+ **POST** `api/avatar/register`
2595
+
2596
+ **Request**
2597
+
2598
+ Body type: `RegisterRequest`
2599
+
2600
+ | Field | Type |
2601
+ | --- | --- |
2602
+ | `Title` | `string` |
2603
+ | `FirstName` | `string` |
2604
+ | `LastName` | `string` |
2605
+ | `Email` | `string` |
2606
+ | `Password` | `string` |
2607
+ | `ConfirmPassword` | `string` |
2608
+ | `AcceptTerms` | `bool` |
2609
+
2610
+ **Response**
2611
+
2612
+ Standard `OASISResult` envelope (see top of this page) with:
2613
+
2614
+ `result` type: `IAvatar`
2615
+
2616
+ | Field | Type |
2617
+ | --- | --- |
2618
+ | `ProviderWallets` | `Dictionary<ProviderType, List<IProviderWallet>>` |
2619
+ | `ProviderPrivateKey` | `Dictionary<ProviderType, string>` |
2620
+ | `ProviderPublicKey` | `Dictionary<ProviderType, List<string>>` |
2621
+ | `ProviderUsername` | `Dictionary<ProviderType, string>` |
2622
+ | `ProviderWalletAddress` | `Dictionary<ProviderType, List<string>>` |
2623
+ | `AvatarId` | `Guid` |
2624
+ | `Title` | `string` |
2625
+ | `FirstName` | `string` |
2626
+ | `LastName` | `string` |
2627
+ | `FullName` | `string` |
2628
+ | `FullNameWithTitle` | `string` |
2629
+ | `Username` | `string` |
2630
+ | `Email` | `string` |
2631
+ | `Password` | `string` |
2632
+ | `AvatarType` | `EnumValue<AvatarType>` |
2633
+ | `AcceptTerms` | `bool` |
2634
+ | `IsVerified` | `bool` |
2635
+ | `JwtToken` | `string` |
2636
+ | `PasswordReset` | `DateTime?` |
2637
+ | `RefreshToken` | `string` |
2638
+ | `RefreshTokens` | `List<RefreshToken>` |
2639
+ | `ResetToken` | `string` |
2640
+ | `ResetTokenExpires` | `DateTime?` |
2641
+ | `VerificationToken` | `string` |
2642
+ | `Verified` | `DateTime?` |
2643
+ | `LastBeamedIn` | `DateTime?` |
2644
+ | `LastBeamedOut` | `DateTime?` |
2645
+ | `IsBeamedIn` | `bool` |
2646
+ | `Image2D` | `string` |
2647
+ | `Karma` | `int` |
2648
+ | `Level` | `int` |
2649
+ | `XP` | `int` |
2650
+
2651
+ **Example**
2652
+
2653
+ ```js
2654
+ const { isError, message, result } = await oasis.avatar.register({
2655
+ title: "example string",
2656
+ firstName: "example string",
2657
+ lastName: "example string",
2658
+ email: "example string",
2659
+ password: "example string",
2660
+ confirmPassword: "example string",
2661
+ acceptTerms: true
2662
+ });
2663
+ if (isError) throw new Error(message);
2664
+ console.log(result);
2665
+ ```
2666
+
2667
+ Example response:
2668
+
2669
+ ```json
2670
+ {
2671
+ "isError": false,
2672
+ "message": "",
2673
+ "result": { "ProviderWallets": { "<ProviderType>": [{ "AvatarId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "WalletId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "Name": "example string", "Description": /* <new string> */, "PrivateKey": "example string", "PublicKey": "example string", "WalletAddress": "example string", "WalletAddressSegwitP2SH": "example string", "SecretRecoveryPhrase": "example string", "Transactions": [{ "TransactionId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "FromWalletAddress": "example string", "ToWalletAddress": "example string", "Amount": 1.0, "Description": "example string", "CreatedDate": "2026-01-01T00:00:00Z", "TransactionType": { }, "TransactionCategory": { } }], "ProviderType": { }, "Balance": 1.0, "IsDefaultWallet": true }] }, "ProviderPrivateKey": { "<ProviderType>": "example string" }, "ProviderPublicKey": { "<ProviderType>": ["example string"] }, "ProviderUsername": { "<ProviderType>": "example string" }, "ProviderWalletAddress": { "<ProviderType>": ["example string"] }, "AvatarId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "Title": "example string", "FirstName": "example string", "LastName": "example string", "FullName": "example string", "FullNameWithTitle": "example string", "Username": "example string", "Email": "example string", "Password": "example string", "AvatarType": { "Score": 1.0 }, "AcceptTerms": true, "IsVerified": true, "JwtToken": "example string", "PasswordReset": "2026-01-01T00:00:00Z", "RefreshToken": "example string", "RefreshTokens": [{ "Id": 1, "Avatar": {}, "Token": "example string", "Expires": "2026-01-01T00:00:00Z", "Created": "2026-01-01T00:00:00Z", "CreatedByIp": "example string", "Revoked": "2026-01-01T00:00:00Z", "RevokedByIp": "example string", "ReplacedByToken": "example string" }], "ResetToken": "example string", "ResetTokenExpires": "2026-01-01T00:00:00Z", "VerificationToken": "example string", "Verified": "2026-01-01T00:00:00Z", "LastBeamedIn": "2026-01-01T00:00:00Z", "LastBeamedOut": "2026-01-01T00:00:00Z", "IsBeamedIn": true, "Image2D": "example string", "Karma": 1, "Level": 1, "XP": 1 }
2674
+ }
2675
+ ```
2676
+
2677
+ ---
2678
+
2679
+ ### `removeItemFromAvatarInventory`
2680
+
2681
+ Decrements an item's quantity in the avatar's inventory. quantity must be 1 or greater. The item is removed only when its quantity reaches 0 after the decrement.
2682
+
2683
+ **DELETE** `api/avatar/inventory/{itemId}`
2684
+
2685
+ Route parameters:
2686
+
2687
+ | Field | Type |
2688
+ | --- | --- |
2689
+ | `itemId` | `Guid` |
2690
+
2691
+ **Request**
2692
+
2693
+ Query parameters:
2694
+
2695
+ | Field | Type |
2696
+ | --- | --- |
2697
+ | `quantity` | `int (optional)` |
2698
+
2699
+ **Response**
2700
+
2701
+ Standard `OASISResult` envelope (see top of this page) with:
2702
+
2703
+ `result` type: `bool`
2704
+
2705
+ **Example**
2706
+
2707
+ ```js
2708
+ const { isError, message, result } = await oasis.avatar.removeItemFromAvatarInventory({
2709
+ itemId: '<itemId>',
2710
+ quantity: 1
2711
+ });
2712
+ if (isError) throw new Error(message);
2713
+ console.log(result);
2714
+ ```
2715
+
2716
+ Example response:
2717
+
2718
+ ```json
2719
+ {
2720
+ "isError": false,
2721
+ "message": "",
2722
+ "result": true
2723
+ }
2724
+ ```
2725
+
2726
+ ---
2727
+
2728
+ ### `removeKarmaFromAvatar`
2729
+
2730
+ Remove karma from the given avatar. karmaType = The type of negative karma, karmaSourceType = Where the karma was lost (App, dApp, hApp, Website, Game, karamSourceTitle/karamSourceDesc = The name/desc of the app/website/game where the karma was lost. Only works for logged in users. Use Authenticate endpoint first to obtain a JWT Token.
2731
+
2732
+ **POST** `api/avatar/remove-karma-from-avatar/{avatarId}`
2733
+
2734
+ Route parameters:
2735
+
2736
+ | Field | Type |
2737
+ | --- | --- |
2738
+ | `avatarId` | `Guid` |
2739
+
2740
+ **Request**
2741
+
2742
+ Body type: `AddRemoveKarmaToAvatarRequest`
2743
+
2744
+ | Field | Type |
2745
+ | --- | --- |
2746
+ | `AvatarId` | `Guid` |
2747
+ | `KarmaType` | `KarmaTypePositive` |
2748
+ | `karmaSourceType` | `KarmaSourceType` |
2749
+ | `Avatar` | `IAvatar` |
2750
+ | `KaramSourceTitle` | `string` |
2751
+ | `KarmaSourceDesc` | `string` |
2752
+
2753
+ **Response**
2754
+
2755
+ Standard `OASISResult` envelope (see top of this page) with:
2756
+
2757
+ `result` type: `KarmaAkashicRecord`
2758
+
2759
+ | Field | Type |
2760
+ | --- | --- |
2761
+ | `AvatarId` | `Guid` |
2762
+ | `Date` | `DateTime` |
2763
+ | `Karma` | `int` |
2764
+ | `TotalKarma` | `long` |
2765
+ | `KarmaSourceTitle` | `string` |
2766
+ | `KarmaSourceDesc` | `string` |
2767
+ | `WebLink` | `string` |
2768
+ | `KarmaSource` | `EnumValue<KarmaSourceType>` |
2769
+ | `KarmaEarntOrLost` | `EnumValue<KarmaEarntOrLost>` |
2770
+ | `KarmaTypePositive` | `EnumValue<KarmaTypePositive>` |
2771
+ | `KarmaTypeNegative` | `EnumValue<KarmaTypeNegative>` |
2772
+ | `Provider` | `EnumValue<ProviderType>` |
2773
+
2774
+ **Example**
2775
+
2776
+ ```js
2777
+ const { isError, message, result } = await oasis.avatar.removeKarmaFromAvatar({
2778
+ avatarId: "3fa85f64-5717-4562-b3fc-2c963f66afa6",
2779
+ karmaType: { },
2780
+ karmaSourceType: { },
2781
+ avatar: { "ProviderWallets": { "<ProviderType>": [{ "AvatarId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "WalletId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "Name": "example string", "Description": /* <new string> */, "PrivateKey": "example string", "PublicKey": "example string", "WalletAddress": "example string", "WalletAddressSegwitP2SH": "example string", "SecretRecoveryPhrase": "example string", "Transactions": [{ "TransactionId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "FromWalletAddress": "example string", "ToWalletAddress": "example string", "Amount": 1.0, "Description": "example string", "CreatedDate": "2026-01-01T00:00:00Z", "TransactionType": { }, "TransactionCategory": { } }], "ProviderType": { }, "Balance": 1.0, "IsDefaultWallet": true }] }, "ProviderPrivateKey": { "<ProviderType>": "example string" }, "ProviderPublicKey": { "<ProviderType>": ["example string"] }, "ProviderUsername": { "<ProviderType>": "example string" }, "ProviderWalletAddress": { "<ProviderType>": ["example string"] }, "AvatarId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "Title": "example string", "FirstName": "example string", "LastName": "example string", "FullName": "example string", "FullNameWithTitle": "example string", "Username": "example string", "Email": "example string", "Password": "example string", "AvatarType": { "Score": 1.0 }, "AcceptTerms": true, "IsVerified": true, "JwtToken": "example string", "PasswordReset": "2026-01-01T00:00:00Z", "RefreshToken": "example string", "RefreshTokens": [{ "Id": 1, "Avatar": {}, "Token": "example string", "Expires": "2026-01-01T00:00:00Z", "Created": "2026-01-01T00:00:00Z", "CreatedByIp": "example string", "Revoked": "2026-01-01T00:00:00Z", "RevokedByIp": "example string", "ReplacedByToken": "example string" }], "ResetToken": "example string", "ResetTokenExpires": "2026-01-01T00:00:00Z", "VerificationToken": "example string", "Verified": "2026-01-01T00:00:00Z", "LastBeamedIn": "2026-01-01T00:00:00Z", "LastBeamedOut": "2026-01-01T00:00:00Z", "IsBeamedIn": true, "Image2D": "example string", "Karma": 1, "Level": 1, "XP": 1 },
2782
+ karamSourceTitle: "example string",
2783
+ karmaSourceDesc: "example string"
2784
+ });
2785
+ if (isError) throw new Error(message);
2786
+ console.log(result);
2787
+ ```
2788
+
2789
+ Example response:
2790
+
2791
+ ```json
2792
+ {
2793
+ "isError": false,
2794
+ "message": "",
2795
+ "result": { "AvatarId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "Date": "2026-01-01T00:00:00Z", "Karma": 1, "TotalKarma": 1, "KarmaSourceTitle": "example string", "KarmaSourceDesc": "example string", "WebLink": "example string", "KarmaSource": { "Score": 1.0 }, "KarmaEarntOrLost": { "Score": 1.0 }, "KarmaTypePositive": { "Score": 1.0 }, "KarmaTypeNegative": { "Score": 1.0 }, "Provider": { "Score": 1.0 } }
2796
+ }
2797
+ ```
2798
+
2799
+ ---
2800
+
2801
+ ### `resetPassword`
2802
+
2803
+ Call this method passing in the reset token received in the forgotten password email after first calling the avatar/forgot-password method.
2804
+
2805
+ **POST** `api/avatar/reset-password`
2806
+
2807
+ **Request**
2808
+
2809
+ Body type: `ResetPasswordRequest`
2810
+
2811
+ | Field | Type |
2812
+ | --- | --- |
2813
+ | `Token` | `string` |
2814
+ | `OldPassword` | `string` |
2815
+ | `NewPassword` | `string` |
2816
+ | `ConfirmNewPassword` | `string` |
2817
+
2818
+ **Response**
2819
+
2820
+ Standard `OASISResult` envelope (see top of this page) with:
2821
+
2822
+ `result` type: `string`
2823
+
2824
+ **Example**
2825
+
2826
+ ```js
2827
+ const { isError, message, result } = await oasis.avatar.resetPassword({
2828
+ token: "example string",
2829
+ oldPassword: "example string",
2830
+ newPassword: "example string",
2831
+ confirmNewPassword: "example string"
2832
+ });
2833
+ if (isError) throw new Error(message);
2834
+ console.log(result);
2835
+ ```
2836
+
2837
+ Example response:
2838
+
2839
+ ```json
2840
+ {
2841
+ "isError": false,
2842
+ "message": "",
2843
+ "result": "example string"
2844
+ }
2845
+ ```
2846
+
2847
+ ---
2848
+
2849
+ ### `revokeToken`
2850
+
2851
+ Revoke a given JWT Token (for example, if a user logs out). Only works for logged in users. Use Authenticate endpoint first to obtain a JWT Token.
2852
+
2853
+ **POST** `api/avatar/revoke-token`
2854
+
2855
+ **Request**
2856
+
2857
+ Body type: `RevokeTokenRequest`
2858
+
2859
+ | Field | Type |
2860
+ | --- | --- |
2861
+ | `Token` | `string` |
2862
+
2863
+ **Response**
2864
+
2865
+ Standard `OASISResult` envelope (see top of this page) with:
2866
+
2867
+ `result` type: `string`
2868
+
2869
+ **Example**
2870
+
2871
+ ```js
2872
+ const { isError, message, result } = await oasis.avatar.revokeToken({
2873
+ token: "example string"
2874
+ });
2875
+ if (isError) throw new Error(message);
2876
+ console.log(result);
2877
+ ```
2878
+
2879
+ Example response:
2880
+
2881
+ ```json
2882
+ {
2883
+ "isError": false,
2884
+ "message": "",
2885
+ "result": "example string"
2886
+ }
2887
+ ```
2888
+
2889
+ ---
2890
+
2891
+ ### `searchAvatar`
2892
+
2893
+ Search avatars for the given search term. Coming soon...
2894
+
2895
+ **POST** `api/avatar/search`
2896
+
2897
+ **Request**
2898
+
2899
+ Body type: `SearchParams`
2900
+
2901
+ | Field | Type |
2902
+ | --- | --- |
2903
+ | `AvatarId` | `Guid` |
2904
+ | `ParentId` | `Guid` |
2905
+ | `FilterByMetaData` | `Dictionary<string, string>` |
2906
+ | `MetaKeyValuePairMatchMode` | `MetaKeyValuePairMatchMode` |
2907
+ | `Recursive` | `bool` |
2908
+ | `SearchOnlyForCurrentAvatar` | `bool` |
2909
+ | `SearchGroups` | `List<ISearchGroupBase>` |
2910
+
2911
+ **Response**
2912
+
2913
+ Standard `OASISResult` envelope (see top of this page) with:
2914
+
2915
+ `result` type: `ISearchResults`
2916
+
2917
+ | Field | Type |
2918
+ | --- | --- |
2919
+ | `NumberOfResults` | `int` |
2920
+ | `NumberOfDuplicates` | `int` |
2921
+ | `SearchResultAvatars` | `List<IAvatar>` |
2922
+ | `SearchResultHolons` | `List<IHolon>` |
2923
+
2924
+ **Example**
2925
+
2926
+ ```js
2927
+ const { isError, message, result } = await oasis.avatar.searchAvatar({
2928
+ avatarId: "3fa85f64-5717-4562-b3fc-2c963f66afa6",
2929
+ parentId: "3fa85f64-5717-4562-b3fc-2c963f66afa6",
2930
+ filterByMetaData: { "<string>": "example string" },
2931
+ metaKeyValuePairMatchMode: { },
2932
+ recursive: true,
2933
+ searchOnlyForCurrentAvatar: true,
2934
+ searchGroups: [{ "HolonType": { }, "SearchOnlyForCurrentAvatar": true, "PreviousSearchGroupOperator": { }, "SearchAvatars": true, "SearchHolons": true, "AvatarSearchParams": { "SearchAvatarWalletParams": { "WalletId": true, "PublicKey": true, "WalletAddress": true, "ProviderType": true, "Balance": true, "IsDefaultWallet": true, "SearchAvatarWalletTransactionParams": { "Amount": true, "FromWalletAddress": true, "ToWalletAddress": true, "Token": true, "MemoText": true, "ProviderType": true } }, "ProviderUsername": true, "AvatarId": true, "Title": true, "FirstName": true, "LastName": true, "Username": true, "Email": true, "AvatarType": true, "AcceptTerms": true, "IsVerified": true, "VerifiedDate": true, "LastBeamedIn": true, "LastBeamedOut": true, "IsBeamedIn": true, "ProviderUniqueStorageKey": true, "ProviderMetaData": true, "MetaData": true, "Version": true, "VersionId": true, "PreviousVersionId": true, "PreviousVersionProviderUniqueStorageKey": true, "IsActive": true, "CreatedByAvatarId": true, "CreatedDate": true, "ModifiedByAvatarId": true, "ModifiedDate": true, "DeletedByAvatarId": true, "DeletedDate": true, "CreatedProviderType": true, "CreatedOASISType": true, "SearchFirstName": true, "SearchLastName": true, "SearchUsername": true, "SearchAddress": true, "SearchCreatedDate": true, "SearchCreatedBy": true, "SearchModifedBy": true, "SearchModifedDate": true, "SearchDeletedBy": true, "SearchDeletedDate": true }, "HolonSearchParams": { "Children": true, "Nodes": true, "HolonType": true, "Name": true, "Description": true, "ProviderUniqueStorageKey": true, "ProviderMetaData": true, "MetaData": true, "MetaDataKey": "example string", "Version": true, "VersionId": true, "PreviousVersionId": true, "PreviousVersionProviderUniqueStorageKey": true, "IsActive": true, "CreatedByAvatarId": true, "CreatedDate": true, "ModifiedByAvatarId": true, "ModifiedDate": true, "DeletedByAvatarId": true, "DeletedDate": true, "CreatedProviderType": true, "CreatedOASISType": true } }]
2935
+ });
2936
+ if (isError) throw new Error(message);
2937
+ console.log(result);
2938
+ ```
2939
+
2940
+ Example response:
2941
+
2942
+ ```json
2943
+ {
2944
+ "isError": false,
2945
+ "message": "",
2946
+ "result": { "NumberOfResults": 1, "NumberOfDuplicates": 1, "SearchResultAvatars": [{ "ProviderWallets": { "<ProviderType>": [{ "AvatarId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "WalletId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "Name": "example string", "Description": /* <new string> */, "PrivateKey": "example string", "PublicKey": "example string", "WalletAddress": "example string", "WalletAddressSegwitP2SH": "example string", "SecretRecoveryPhrase": "example string", "Transactions": [{ "TransactionId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "FromWalletAddress": "example string", "ToWalletAddress": "example string", "Amount": 1.0, "Description": "example string", "CreatedDate": "2026-01-01T00:00:00Z", "TransactionType": { }, "TransactionCategory": { } }], "ProviderType": { }, "Balance": 1.0, "IsDefaultWallet": true }] }, "ProviderPrivateKey": { "<ProviderType>": "example string" }, "ProviderPublicKey": { "<ProviderType>": ["example string"] }, "ProviderUsername": { "<ProviderType>": "example string" }, "ProviderWalletAddress": { "<ProviderType>": ["example string"] }, "AvatarId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "Title": "example string", "FirstName": "example string", "LastName": "example string", "FullName": "example string", "FullNameWithTitle": "example string", "Username": "example string", "Email": "example string", "Password": "example string", "AvatarType": { "Score": 1.0 }, "AcceptTerms": true, "IsVerified": true, "JwtToken": "example string", "PasswordReset": "2026-01-01T00:00:00Z", "RefreshToken": "example string", "RefreshTokens": [{ "Id": 1, "Avatar": {}, "Token": "example string", "Expires": "2026-01-01T00:00:00Z", "Created": "2026-01-01T00:00:00Z", "CreatedByIp": "example string", "Revoked": "2026-01-01T00:00:00Z", "RevokedByIp": "example string", "ReplacedByToken": "example string" }], "ResetToken": "example string", "ResetTokenExpires": "2026-01-01T00:00:00Z", "VerificationToken": "example string", "Verified": "2026-01-01T00:00:00Z", "LastBeamedIn": "2026-01-01T00:00:00Z", "LastBeamedOut": "2026-01-01T00:00:00Z", "IsBeamedIn": true, "Image2D": "example string", "Karma": 1, "Level": 1, "XP": 1 }], "SearchResultHolons": [{ "CreatedOASISType": { "Score": 1.0 }, "CreatedProviderType": { "Score": 1.0 }, "GlobalHolonData": { }, "InstanceSavedOnProviderType": {}, "IsChanged": true, "IsNewHolon": true, "IsSaving": true, "Original": {}, "PreviousVersionId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "PreviousVersionProviderUniqueStorageKey": { "<ProviderType>": "example string" }, "ProviderMetaData": { "<ProviderType>": { "<string>": "example string" } }, "ProviderUniqueStorageKey": { "<ProviderType>": "example string" }, "Nodes": [{ "Id": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "ParentId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "Parent": {}, "NodeName": "example string", "NodeType": { } }], "ParentOmniverseId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "ParentOmniverse": { "GreatGrandSuperStar": { }, "Dimensions": { "EighthDimension": { }, "NinthDimension": { }, "TenthDimension": { }, "EleventhDimension": { }, "TwelfthDimension": { }, "CustomDimensions": [{ "DimensionLevel": { } }] }, "Multiverses": [{ "GrandSuperStar": { "Stars": [ /* <I> */ ] }, "Dimensions": { "FirstDimension": { "Universe": { "Dimensions": [], "GalaxyClusters": [{ "Galaxies": [{ "SuperStar": { "Stars": [{ "Luminosity": 1, "StarType": { }, "StarClassification": { }, "StarBinaryType": { } }] }, "SolarSystems": [{ "Star": {}, "Planets": [{ "Moons": [{ }] }], "Asteroids": [{ }], "Comets": [{ }], "Meteroids": [{ }] }], "Nebulas": [{ }], "Stars": [], "Planets": [], "Asteroids": [], "Comets": [], "Meteroids": [] }], "SolarSystems": [], "Stars": [], "Planets": [], "Asteroids": [], "Comets": [], "Meteroids": [], "IsSuperCluster": true }], "SolarSystems": [], "Nebulas": [], "Stars": [], "Planets": [], "Asteroids": [], "Comets": [], "Meteroids": [] } }, "SecondDimension": { "Universe": {} }, "ThirdDimension": { "UniversePrime": {}, "MagicVerse": {}, "ParallelUniverses": [] }, "FourthDimension": { "Universe": {} }, "FifthDimension": { "Universe": {} }, "SixthDimension": { "Universe": {} }, "SeventhDimension": { "Universe": {} }, "CustomDimensions": [] } }] }, "ParentMultiverseId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "ParentMultiverse": {}, "ParentUniverseId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "ParentUniverse": {}, "ParentDimensionId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "ParentDimension": {}, "DimensionLevel": {}, "SubDimensionLevel": { }, "ParentGalaxyClusterId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "ParentGalaxyCluster": {}, "ParentGalaxyId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "ParentGalaxy": {}, "ParentSolarSystemId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "ParentSolarSystem": {}, "ParentGreatGrandSuperStarId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "ParentGreatGrandSuperStar": {}, "ParentGrandSuperStarId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "ParentGrandSuperStar": {}, "ParentSuperStarId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "ParentSuperStar": {}, "ParentStarId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "ParentStar": {}, "ParentPlanetId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "ParentPlanet": {}, "ParentMoonId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "ParentMoon": {}, "ParentCelestialSpaceId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "ParentCelestialSpace": { "NearestStar": {}, "CelestialBodies": /* <ReadOnlyCollection<ICelestialBody>> */, "CelestialSpaces": /* <ReadOnlyCollection<ICelestialSpace>> */, "Children": /* <new ReadOnlyCollection<IHolon>> */ }, "ParentCelestialBodyId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "ParentCelestialBody": { "CelestialBodyCore": { "Holons": [], "Zomes": [{ "HoloNETClient": { "WebSocket": /* <WebSocket.WebSocket> */, "Logger": /* <ILogger> */, "HolochainVersion": { } }, "ZomeName": "example string", "Holons": [{ "GlobalHolonData": {}, "ProviderUniqueStorageKey": { "<ProviderType>": "example string" }, "ProviderMetaData": { "<ProviderType>": { "<string>": "example string" } }, "CustomKey": "example string", "IsNewHolon": true, "IsSaving": true, "PreviousVersionId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "PreviousVersionProviderUniqueStorageKey": { "<ProviderType>": "example string" }, "CreatedProviderType": {}, "InstanceSavedOnProviderType": {}, "CreatedOASISType": {}, "Nodes": [], "ParentOmniverseId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "ParentOmniverse": {}, "ParentMultiverseId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "ParentMultiverse": {}, "ParentUniverseId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "ParentUniverse": {}, "ParentDimensionId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "ParentDimension": {}, "DimensionLevel": {}, "SubDimensionLevel": {}, "ParentGalaxyClusterId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "ParentGalaxyCluster": {}, "ParentGalaxyId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "ParentGalaxy": {}, "ParentSolarSystemId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "ParentSolarSystem": {}, "ParentGreatGrandSuperStarId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "ParentGreatGrandSuperStar": {}, "ParentGrandSuperStarId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "ParentGrandSuperStar": {}, "ParentSuperStarId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "ParentSuperStar": {}, "ParentStarId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "ParentStar": {}, "ParentPlanetId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "ParentPlanet": {}, "ParentMoonId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "ParentMoon": {}, "ParentCelestialSpaceId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "ParentCelestialSpace": {}, "ParentCelestialBodyId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "ParentCelestialBody": {}, "ParentZomeId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "ParentZome": {} }] }] }, "CurrentOrbitAngleOfParentStar": 1, "Density": 1, "DistanceFromParentStarInMetres": 1, "GravitaionalPull": 1, "Id": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "Mass": 1, "NumberActiveAvatars": 1, "NumberRegisteredAvatars": 1, "OrbitPeriod": 1, "OrbitPositionFromParentStar": 1, "ProviderUniqueStorageKey": { "<ProviderType>": "example string" }, "RotationPeriod": 1, "RotationSpeed": 1, "TiltAngle": 1, "Weight": 1 }, "ParentZomeId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "ParentZome": {} }] }
2947
+ }
2948
+ ```
2949
+
2950
+ ---
2951
+
2952
+ ### `searchAvatarInventory`
2953
+
2954
+ Searches the avatar's inventory by name or description.
2955
+
2956
+ **GET** `api/avatar/inventory/search`
2957
+
2958
+ **Request**
2959
+
2960
+ Query parameters:
2961
+
2962
+ | Field | Type |
2963
+ | --- | --- |
2964
+ | `searchTerm` | `string` |
2965
+
2966
+ **Response**
2967
+
2968
+ Standard `OASISResult` envelope (see top of this page) with:
2969
+
2970
+ `result` type: `IInventoryItem` (array)
2971
+
2972
+ | Field | Type |
2973
+ | --- | --- |
2974
+ | `Image2D` | `byte[]` |
2975
+ | `Image2DURI` | `Uri` |
2976
+ | `ThumbnailUrl` | `string` |
2977
+ | `Object3D` | `byte[]` |
2978
+ | `Object3DURI` | `Uri` |
2979
+ | `Quantity` | `int` |
2980
+ | `Stack` | `bool` |
2981
+ | `IsStackable` | `bool` |
2982
+ | `GameSource` | `string` |
2983
+ | `ItemType` | `string` |
2984
+ | `NftId` | `string` |
2985
+ | `Rarity` | `string` |
2986
+ | `MaxQuantity` | `int` |
2987
+ | `Weight` | `float` |
2988
+ | `IsUsable` | `bool` |
2989
+ | `IsTradeable` | `bool` |
2990
+ | `OwnerAvatarId` | `string` |
2991
+ | `AcquiredOn` | `DateTime` |
2992
+ | `LastUsedOn` | `DateTime` |
2993
+ | `Properties` | `Dictionary<string, object>` |
2994
+
2995
+ **Example**
2996
+
2997
+ ```js
2998
+ const { isError, message, result } = await oasis.avatar.searchAvatarInventory({
2999
+ searchTerm: 'example string'
3000
+ });
3001
+ if (isError) throw new Error(message);
3002
+ console.log(result);
3003
+ ```
3004
+
3005
+ Example response:
3006
+
3007
+ ```json
3008
+ {
3009
+ "isError": false,
3010
+ "message": "",
3011
+ "result": [{ "Image2D": "<base64-bytes>", "Image2DURI": "https://example.com/asset.png", "ThumbnailUrl": "example string", "Object3D": "<base64-bytes>", "Object3DURI": "https://example.com/asset.png", "Quantity": 1, "Stack": true, "IsStackable": true, "GameSource": "example string", "ItemType": "example string", "NftId": "example string", "Rarity": "example string", "MaxQuantity": 1, "Weight": 1.0, "IsUsable": true, "IsTradeable": true, "OwnerAvatarId": "example string", "AcquiredOn": "2026-01-01T00:00:00Z", "LastUsedOn": "2026-01-01T00:00:00Z", "Properties": { "<string>": {} } }]
3012
+ }
3013
+ ```
3014
+
3015
+ ---
3016
+
3017
+ ### `sendItemToAvatar`
3018
+
3019
+ Sends an item from the authenticated avatar's inventory to another avatar. Target is the recipient's username or avatar Id. Works for all items (STAR and local).
3020
+
3021
+ **POST** `api/avatar/inventory/send-to-avatar`
3022
+
3023
+ **Request**
3024
+
3025
+ Body type: `SendItemRequest`
3026
+
3027
+ | Field | Type |
3028
+ | --- | --- |
3029
+ | `Target` | `string` |
3030
+ | `ItemName` | `string` |
3031
+ | `ItemId` | `Guid?` |
3032
+ | `Quantity` | `int` |
3033
+
3034
+ **Response**
3035
+
3036
+ Standard `OASISResult` envelope (see top of this page) with:
3037
+
3038
+ `result` type: `bool`
3039
+
3040
+ **Example**
3041
+
3042
+ ```js
3043
+ const { isError, message, result } = await oasis.avatar.sendItemToAvatar({
3044
+ target: "example string",
3045
+ itemName: "example string",
3046
+ itemId: "3fa85f64-5717-4562-b3fc-2c963f66afa6",
3047
+ quantity: 1
3048
+ });
3049
+ if (isError) throw new Error(message);
3050
+ console.log(result);
3051
+ ```
3052
+
3053
+ Example response:
3054
+
3055
+ ```json
3056
+ {
3057
+ "isError": false,
3058
+ "message": "",
3059
+ "result": true
3060
+ }
3061
+ ```
3062
+
3063
+ ---
3064
+
3065
+ ### `sendItemToClan`
3066
+
3067
+ Sends an item from the authenticated avatar's inventory to a clan. Target is the clan name (or username when clan resolution is not yet implemented). Works for all items (STAR and local).
3068
+
3069
+ **POST** `api/avatar/inventory/send-to-clan`
3070
+
3071
+ **Request**
3072
+
3073
+ Body type: `SendItemRequest`
3074
+
3075
+ | Field | Type |
3076
+ | --- | --- |
3077
+ | `Target` | `string` |
3078
+ | `ItemName` | `string` |
3079
+ | `ItemId` | `Guid?` |
3080
+ | `Quantity` | `int` |
3081
+
3082
+ **Response**
3083
+
3084
+ Standard `OASISResult` envelope (see top of this page) with:
3085
+
3086
+ `result` type: `bool`
3087
+
3088
+ **Example**
3089
+
3090
+ ```js
3091
+ const { isError, message, result } = await oasis.avatar.sendItemToClan({
3092
+ target: "example string",
3093
+ itemName: "example string",
3094
+ itemId: "3fa85f64-5717-4562-b3fc-2c963f66afa6",
3095
+ quantity: 1
3096
+ });
3097
+ if (isError) throw new Error(message);
3098
+ console.log(result);
3099
+ ```
3100
+
3101
+ Example response:
3102
+
3103
+ ```json
3104
+ {
3105
+ "isError": false,
3106
+ "message": "",
3107
+ "result": true
3108
+ }
3109
+ ```
3110
+
3111
+ ---
3112
+
3113
+ ### `setActiveQuest`
3114
+
3115
+ Sets the active quest and objective for the logged-in avatar (tracker state). Persisted on AvatarDetail so they are restored after beam-in.
3116
+
3117
+ **POST** `api/avatar/set-active-quest`
3118
+
3119
+ **Request**
3120
+
3121
+ Body type: `SetActiveQuestRequest`
3122
+
3123
+ | Field | Type |
3124
+ | --- | --- |
3125
+ | `ActiveQuestId` | `Guid?` |
3126
+ | `ActiveObjectiveId` | `Guid?` |
3127
+
3128
+ **Response**
3129
+
3130
+ Standard `OASISResult` envelope (see top of this page) with:
3131
+
3132
+ `result` type: `bool`
3133
+
3134
+ **Example**
3135
+
3136
+ ```js
3137
+ const { isError, message, result } = await oasis.avatar.setActiveQuest({
3138
+ activeQuestId: "3fa85f64-5717-4562-b3fc-2c963f66afa6",
3139
+ activeObjectiveId: "3fa85f64-5717-4562-b3fc-2c963f66afa6"
3140
+ });
3141
+ if (isError) throw new Error(message);
3142
+ console.log(result);
3143
+ ```
3144
+
3145
+ Example response:
3146
+
3147
+ ```json
3148
+ {
3149
+ "isError": false,
3150
+ "message": "",
3151
+ "result": true
3152
+ }
3153
+ ```
3154
+
3155
+ ---
3156
+
3157
+ ### `update`
3158
+
3159
+ Update the given avatar using their id. Only works for logged in users. Use Authenticate endpoint first to obtain a JWT Token.
3160
+
3161
+ **POST** `api/avatar/update-by-id/{id}`
3162
+
3163
+ Route parameters:
3164
+
3165
+ | Field | Type |
3166
+ | --- | --- |
3167
+ | `id` | `Guid` |
3168
+
3169
+ **Request**
3170
+
3171
+ Body type: `UpdateRequest`
3172
+
3173
+ | Field | Type |
3174
+ | --- | --- |
3175
+ | `Title` | `string` |
3176
+ | `FirstName` | `string` |
3177
+ | `LastName` | `string` |
3178
+ | `Username` | `string` |
3179
+
3180
+ **Response**
3181
+
3182
+ Standard `OASISResult` envelope (see top of this page) with:
3183
+
3184
+ `result` type: `IAvatar`
3185
+
3186
+ | Field | Type |
3187
+ | --- | --- |
3188
+ | `ProviderWallets` | `Dictionary<ProviderType, List<IProviderWallet>>` |
3189
+ | `ProviderPrivateKey` | `Dictionary<ProviderType, string>` |
3190
+ | `ProviderPublicKey` | `Dictionary<ProviderType, List<string>>` |
3191
+ | `ProviderUsername` | `Dictionary<ProviderType, string>` |
3192
+ | `ProviderWalletAddress` | `Dictionary<ProviderType, List<string>>` |
3193
+ | `AvatarId` | `Guid` |
3194
+ | `Title` | `string` |
3195
+ | `FirstName` | `string` |
3196
+ | `LastName` | `string` |
3197
+ | `FullName` | `string` |
3198
+ | `FullNameWithTitle` | `string` |
3199
+ | `Username` | `string` |
3200
+ | `Email` | `string` |
3201
+ | `Password` | `string` |
3202
+ | `AvatarType` | `EnumValue<AvatarType>` |
3203
+ | `AcceptTerms` | `bool` |
3204
+ | `IsVerified` | `bool` |
3205
+ | `JwtToken` | `string` |
3206
+ | `PasswordReset` | `DateTime?` |
3207
+ | `RefreshToken` | `string` |
3208
+ | `RefreshTokens` | `List<RefreshToken>` |
3209
+ | `ResetToken` | `string` |
3210
+ | `ResetTokenExpires` | `DateTime?` |
3211
+ | `VerificationToken` | `string` |
3212
+ | `Verified` | `DateTime?` |
3213
+ | `LastBeamedIn` | `DateTime?` |
3214
+ | `LastBeamedOut` | `DateTime?` |
3215
+ | `IsBeamedIn` | `bool` |
3216
+ | `Image2D` | `string` |
3217
+ | `Karma` | `int` |
3218
+ | `Level` | `int` |
3219
+ | `XP` | `int` |
3220
+
3221
+ **Example**
3222
+
3223
+ ```js
3224
+ const { isError, message, result } = await oasis.avatar.update({
3225
+ id: '<id>',
3226
+ title: "example string",
3227
+ firstName: "example string",
3228
+ lastName: "example string",
3229
+ username: "example string"
3230
+ });
3231
+ if (isError) throw new Error(message);
3232
+ console.log(result);
3233
+ ```
3234
+
3235
+ Example response:
3236
+
3237
+ ```json
3238
+ {
3239
+ "isError": false,
3240
+ "message": "",
3241
+ "result": { "ProviderWallets": { "<ProviderType>": [{ "AvatarId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "WalletId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "Name": "example string", "Description": /* <new string> */, "PrivateKey": "example string", "PublicKey": "example string", "WalletAddress": "example string", "WalletAddressSegwitP2SH": "example string", "SecretRecoveryPhrase": "example string", "Transactions": [{ "TransactionId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "FromWalletAddress": "example string", "ToWalletAddress": "example string", "Amount": 1.0, "Description": "example string", "CreatedDate": "2026-01-01T00:00:00Z", "TransactionType": { }, "TransactionCategory": { } }], "ProviderType": { }, "Balance": 1.0, "IsDefaultWallet": true }] }, "ProviderPrivateKey": { "<ProviderType>": "example string" }, "ProviderPublicKey": { "<ProviderType>": ["example string"] }, "ProviderUsername": { "<ProviderType>": "example string" }, "ProviderWalletAddress": { "<ProviderType>": ["example string"] }, "AvatarId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "Title": "example string", "FirstName": "example string", "LastName": "example string", "FullName": "example string", "FullNameWithTitle": "example string", "Username": "example string", "Email": "example string", "Password": "example string", "AvatarType": { "Score": 1.0 }, "AcceptTerms": true, "IsVerified": true, "JwtToken": "example string", "PasswordReset": "2026-01-01T00:00:00Z", "RefreshToken": "example string", "RefreshTokens": [{ "Id": 1, "Avatar": {}, "Token": "example string", "Expires": "2026-01-01T00:00:00Z", "Created": "2026-01-01T00:00:00Z", "CreatedByIp": "example string", "Revoked": "2026-01-01T00:00:00Z", "RevokedByIp": "example string", "ReplacedByToken": "example string" }], "ResetToken": "example string", "ResetTokenExpires": "2026-01-01T00:00:00Z", "VerificationToken": "example string", "Verified": "2026-01-01T00:00:00Z", "LastBeamedIn": "2026-01-01T00:00:00Z", "LastBeamedOut": "2026-01-01T00:00:00Z", "IsBeamedIn": true, "Image2D": "example string", "Karma": 1, "Level": 1, "XP": 1 }
3242
+ }
3243
+ ```
3244
+
3245
+ ---
3246
+
3247
+ ### `updateAvatarDetail`
3248
+
3249
+ Update the given avatar detail with their avatar id. Only works for logged in users. Use Authenticate endpoint first to obtain a JWT Token.
3250
+
3251
+ **POST** `api/avatar/update-avatar-detail-by-id/{id}`
3252
+
3253
+ Route parameters:
3254
+
3255
+ | Field | Type |
3256
+ | --- | --- |
3257
+ | `id` | `Guid` |
3258
+
3259
+ **Request**
3260
+
3261
+ Body type: `AvatarDetail`
3262
+
3263
+ | Field | Type |
3264
+ | --- | --- |
3265
+ | `Username` | `string` |
3266
+ | `Email` | `string` |
3267
+ | `AvatarType` | `EnumValue<AvatarType>` |
3268
+ | `Password` | `string` |
3269
+ | `Title` | `string` |
3270
+ | `FirstName` | `string` |
3271
+ | `LastName` | `string` |
3272
+ | `FavouriteColour` | `ConsoleColor` |
3273
+ | `STARCLIColour` | `ConsoleColor` |
3274
+ | `DOB` | `DateTime` |
3275
+ | `Address` | `string` |
3276
+ | `Town` | `string` |
3277
+ | `County` | `string` |
3278
+ | `Country` | `string` |
3279
+ | `Postcode` | `string` |
3280
+ | `Mobile` | `string` |
3281
+ | `Landline` | `string` |
3282
+ | `UmaJson` | `string` |
3283
+ | `Portrait` | `string` |
3284
+ | `Model3D` | `string` |
3285
+ | `HeartRateData` | `IList<IHeartRateEntry>` |
3286
+ | `CreatedOASISType` | `EnumValue<OASISType>` |
3287
+ | `Karma` | `int` |
3288
+ | `XP` | `int` |
3289
+ | `Omniverse` | `IOmiverse` |
3290
+ | `Gifts` | `IList<IAvatarGift>` |
3291
+ | `Chakras` | `List<Chakra>` |
3292
+ | `DimensionLevelIds` | `IDictionary<DimensionLevel, Guid>` |
3293
+ | `DimensionLevels` | `IDictionary<DimensionLevel, IHolon>` |
3294
+ | `Aura` | `IAvatarAura` |
3295
+ | `Stats` | `IAvatarStats` |
3296
+ | `GeneKeys` | `IList<IGeneKey>` |
3297
+ | `HumanDesign` | `IHumanDesign` |
3298
+ | `Skills` | `IAvatarSkills` |
3299
+ | `Attributes` | `IAvatarAttributes` |
3300
+ | `SuperPowers` | `IAvatarSuperPowers` |
3301
+ | `Spells` | `IList<ISpell>` |
3302
+ | `Achievements` | `IList<IAchievement>` |
3303
+ | `Inventory` | `IList<IInventoryItem>` |
3304
+ | `ActiveQuestId` | `Guid?` |
3305
+ | `ActiveObjectiveId` | `Guid?` |
3306
+ | `KarmaAkashicRecords` | `IList<IKarmaAkashicRecord>` |
3307
+
3308
+ **Response**
3309
+
3310
+ Standard `OASISResult` envelope (see top of this page) with:
3311
+
3312
+ `result` type: `IAvatarDetail`
3313
+
3314
+ | Field | Type |
3315
+ | --- | --- |
3316
+ | `Id` | `new Guid` |
3317
+ | `Username` | `string` |
3318
+ | `Email` | `string` |
3319
+ | `Karma` | `long` |
3320
+ | `Level` | `int` |
3321
+ | `XP` | `int` |
3322
+ | `Model3D` | `string` |
3323
+ | `UmaJson` | `string` |
3324
+ | `Portrait` | `string` |
3325
+ | `DOB` | `DateTime` |
3326
+ | `Address` | `string` |
3327
+ | `Town` | `string` |
3328
+ | `County` | `string` |
3329
+ | `Country` | `string` |
3330
+ | `Postcode` | `string` |
3331
+ | `Landline` | `string` |
3332
+ | `Mobile` | `string` |
3333
+ | `Achievements` | `IList<IAchievement>` |
3334
+ | `Attributes` | `IAvatarAttributes` |
3335
+ | `Aura` | `IAvatarAura` |
3336
+ | `Chakras` | `IAvatarChakras` |
3337
+ | `DimensionLevelIds` | `IDictionary<DimensionLevel, Guid>` |
3338
+ | `DimensionLevels` | `IDictionary<DimensionLevel, IHolon>` |
3339
+ | `FavouriteColour` | `ConsoleColor` |
3340
+ | `GeneKeys` | `IList<IGeneKey>` |
3341
+ | `Gifts` | `IList<IAvatarGift>` |
3342
+ | `HeartRateData` | `IList<IHeartRateEntry>` |
3343
+ | `HumanDesign` | `IHumanDesign` |
3344
+ | `Inventory` | `IList<IInventoryItem>` |
3345
+ | `KarmaAkashicRecords` | `IList<IKarmaAkashicRecord>` |
3346
+ | `Omniverse` | `IOmiverse` |
3347
+ | `Skills` | `IAvatarSkills` |
3348
+ | `Spells` | `IList<ISpell>` |
3349
+ | `STARCLIColour` | `ConsoleColor` |
3350
+ | `Stats` | `IAvatarStats` |
3351
+ | `SuperPowers` | `IAvatarSuperPowers` |
3352
+ | `ActiveQuestId` | `Guid?` |
3353
+ | `ActiveObjectiveId` | `Guid?` |
3354
+
3355
+ **Example**
3356
+
3357
+ ```js
3358
+ const { isError, message, result } = await oasis.avatar.updateAvatarDetail({
3359
+ id: '<id>',
3360
+ username: "example string",
3361
+ email: "example string",
3362
+ avatarType: { "Score": 1.0 },
3363
+ password: "example string",
3364
+ title: "example string",
3365
+ firstName: "example string",
3366
+ lastName: "example string",
3367
+ favouriteColour: /* <ConsoleColor> */,
3368
+ sTARCLIColour: /* <ConsoleColor> */,
3369
+ dOB: "2026-01-01T00:00:00Z",
3370
+ address: "example string",
3371
+ town: "example string",
3372
+ county: "example string",
3373
+ country: "example string",
3374
+ postcode: "example string",
3375
+ mobile: "example string",
3376
+ landline: "example string",
3377
+ umaJson: "example string",
3378
+ portrait: "example string",
3379
+ model3D: "example string",
3380
+ heartRateData: [{ "HeartRateValue": 1, "TimeStamp": "2026-01-01T00:00:00Z" }],
3381
+ createdOASISType: { "Score": 1.0 },
3382
+ karma: 1,
3383
+ xP: 1,
3384
+ omniverse: { "GreatGrandSuperStar": { }, "Dimensions": { "EighthDimension": { }, "NinthDimension": { }, "TenthDimension": { }, "EleventhDimension": { }, "TwelfthDimension": { }, "CustomDimensions": [{ "DimensionLevel": { } }] }, "Multiverses": [{ "GrandSuperStar": { "Stars": [ /* <I> */ ] }, "Dimensions": { "FirstDimension": { "Universe": { "Dimensions": [], "GalaxyClusters": [{ "Galaxies": [{ "SuperStar": { "Stars": [{ "Luminosity": 1, "StarType": { }, "StarClassification": { }, "StarBinaryType": { } }] }, "SolarSystems": [{ "Star": {}, "Planets": [{ "Moons": [{ }] }], "Asteroids": [{ }], "Comets": [{ }], "Meteroids": [{ }] }], "Nebulas": [{ }], "Stars": [], "Planets": [], "Asteroids": [], "Comets": [], "Meteroids": [] }], "SolarSystems": [], "Stars": [], "Planets": [], "Asteroids": [], "Comets": [], "Meteroids": [], "IsSuperCluster": true }], "SolarSystems": [], "Nebulas": [], "Stars": [], "Planets": [], "Asteroids": [], "Comets": [], "Meteroids": [] } }, "SecondDimension": { "Universe": {} }, "ThirdDimension": { "UniversePrime": {}, "MagicVerse": {}, "ParallelUniverses": [] }, "FourthDimension": { "Universe": {} }, "FifthDimension": { "Universe": {} }, "SixthDimension": { "Universe": {} }, "SeventhDimension": { "Universe": {} }, "CustomDimensions": [] } }] },
3385
+ gifts: [{ "AvatarId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "GiftEarnt": "2026-01-01T00:00:00Z", "GiftType": { }, "KarmaSource": { "Score": 1.0 }, "KarmaSourceDesc": "example string", "KarmaSourceTitle": "example string", "Provider": { "Score": 1.0 }, "WebLink": "example string" }],
3386
+ chakras: [{ "Name": "example string", "SanskritName": "example string", "Description": "example string", "WhatItControls": "example string", "YogaPose": { "Score": 1.0 }, "WhenItDevelops": "example string", "Element": { "Score": 1.0 }, "Crystal": { "Name": { "Score": 1.0 }, "Type": { "Score": 1.0 }, "Description": "example string", "ProtectionLevel": 1, "EnergisingLevel": 1, "GroundingLevel": 1, "CleansingLevel": 1, "AmplifyicationLevel": 1 }, "Color": { "Default": /* <static Color> */, "R": 1, "G": 1, "B": 1, "Number": /* <internal byte> */, "IsDefault": /* <internal bool> */ }, "Level": 1, "Progress": 1, "XP": 1, "Type": { "Score": 1.0 }, "GiftsUnlocked": [{ "AvatarId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "GiftType": { }, "GiftEarnt": "2026-01-01T00:00:00Z", "KarmaSourceTitle": "example string", "KarmaSourceDesc": "example string", "WebLink": "example string", "KarmaSource": { "Score": 1.0 }, "Provider": { "Score": 1.0 } }] }],
3387
+ dimensionLevelIds: /* <IDictionary<DimensionLevel, Guid>> */,
3388
+ dimensionLevels: /* <IDictionary<DimensionLevel, IHolon>> */,
3389
+ aura: { "Progress": 1, "Brightness": 1, "Size": 1, "ColourBlue": 1, "ColourGreen": 1, "ColourRed": 1, "Level": 1, "Value": 1 },
3390
+ stats: { "Energy": { "Current": 1, "Max": 1 }, "HP": {}, "Mana": {}, "Stamina": {} },
3391
+ geneKeys: [{ "Description": "example string", "Gift": "example string", "Name": "example string", "Shadow": "example string", "Sidhi": "example string" }],
3392
+ humanDesign: { "Type": "example string" },
3393
+ skills: { "Computers": 1, "Engineering": 1, "Farming": 1, "FireStarting": 1, "Fishing": 1, "Languages": 1, "Meditation": 1, "MeleeCombat": 1, "Mindfulness": 1, "Negotiating": 1, "RangedCombat": 1, "Research": 1, "Science": 1, "SpellCasting": 1, "Translating": 1, "Yoga": 1 },
3394
+ attributes: { "Dexterity": 1, "Intelligence": 1, "Magic": 1, "Speed": 1, "Strength": 1, "Toughness": 1, "Wisdom": 1, "Vitality": 1, "Endurance": 1 },
3395
+ superPowers: { "AstralProjection": 1, "BioLocatation": 1, "Flight": 1, "FreezeBreath": 1, "HeatVision": 1, "Invulnerability": 1, "RemoteViewing": 1, "SuperSpeed": 1, "SuperStrength": 1, "Telekinesis": 1, "Telepathy": 1, "Teleportation": 1, "XRayVision": 1 },
3396
+ spells: [{ "Description": "example string", "FireDamage": 1, "HealingPower": 1, "IceDamage": 1, "LightningDamage": 1, "Name": "example string", "PoisonDamage": 1, "WaterDamage": 1, "WindDamage": 1 }],
3397
+ achievements: [{ "AchievementEarnt": "2026-01-01T00:00:00Z", "AchievementType": { }, "AvatarId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "Description": "example string", "KarmaSource": { "Score": 1.0 }, "KarmaSourceDesc": "example string", "KarmaSourceTitle": "example string", "Name": "example string", "Provider": { "Score": 1.0 }, "WebLink": "example string" }],
3398
+ inventory: [{ "Image2D": "<base64-bytes>", "Image2DURI": "https://example.com/asset.png", "ThumbnailUrl": "example string", "Object3D": "<base64-bytes>", "Object3DURI": "https://example.com/asset.png", "Quantity": 1, "Stack": true, "IsStackable": true, "GameSource": "example string", "ItemType": "example string", "NftId": "example string", "Rarity": "example string", "MaxQuantity": 1, "Weight": 1.0, "IsUsable": true, "IsTradeable": true, "OwnerAvatarId": "example string", "AcquiredOn": "2026-01-01T00:00:00Z", "LastUsedOn": "2026-01-01T00:00:00Z", "Properties": { "<string>": {} } }],
3399
+ activeQuestId: "3fa85f64-5717-4562-b3fc-2c963f66afa6",
3400
+ activeObjectiveId: "3fa85f64-5717-4562-b3fc-2c963f66afa6",
3401
+ karmaAkashicRecords: [{ "AvatarId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "Date": "2026-01-01T00:00:00Z", "Karma": 1, "KarmaEarntOrLost": { "Score": 1.0 }, "KarmaSource": { "Score": 1.0 }, "KarmaSourceDesc": "example string", "KarmaSourceTitle": "example string", "KarmaTypeNegative": { "Score": 1.0 }, "KarmaTypePositive": { "Score": 1.0 }, "Provider": { "Score": 1.0 }, "TotalKarma": 1, "WebLink": "example string" }]
3402
+ });
3403
+ if (isError) throw new Error(message);
3404
+ console.log(result);
3405
+ ```
3406
+
3407
+ Example response:
3408
+
3409
+ ```json
3410
+ {
3411
+ "isError": false,
3412
+ "message": "",
3413
+ "result": { "Id": /* <new Guid> */, "Username": "example string", "Email": "example string", "Karma": 1, "Level": 1, "XP": 1, "Model3D": "example string", "UmaJson": "example string", "Portrait": "example string", "DOB": "2026-01-01T00:00:00Z", "Address": "example string", "Town": "example string", "County": "example string", "Country": "example string", "Postcode": "example string", "Landline": "example string", "Mobile": "example string", "Achievements": [{ "AchievementEarnt": "2026-01-01T00:00:00Z", "AchievementType": { }, "AvatarId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "Description": "example string", "KarmaSource": { "Score": 1.0 }, "KarmaSourceDesc": "example string", "KarmaSourceTitle": "example string", "Name": "example string", "Provider": { "Score": 1.0 }, "WebLink": "example string" }], "Attributes": { "Dexterity": 1, "Intelligence": 1, "Magic": 1, "Speed": 1, "Strength": 1, "Toughness": 1, "Wisdom": 1, "Vitality": 1, "Endurance": 1 }, "Aura": { "Progress": 1, "Brightness": 1, "Size": 1, "ColourBlue": 1, "ColourGreen": 1, "ColourRed": 1, "Level": 1, "Value": 1 }, "Chakras": { "Crown": { }, "Heart": { }, "Root": { }, "Sacral": { }, "SolarPlexus": { }, "ThirdEye": { }, "Throat": { } }, "DimensionLevelIds": /* <IDictionary<DimensionLevel, Guid>> */, "DimensionLevels": /* <IDictionary<DimensionLevel, IHolon>> */, "FavouriteColour": /* <ConsoleColor> */, "GeneKeys": [{ "Description": "example string", "Gift": "example string", "Name": "example string", "Shadow": "example string", "Sidhi": "example string" }], "Gifts": [{ "AvatarId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "GiftEarnt": "2026-01-01T00:00:00Z", "GiftType": {}, "KarmaSource": {}, "KarmaSourceDesc": "example string", "KarmaSourceTitle": "example string", "Provider": {}, "WebLink": "example string" }], "HeartRateData": [{ "HeartRateValue": 1, "TimeStamp": "2026-01-01T00:00:00Z" }], "HumanDesign": { "Type": "example string" }, "Inventory": [{ "Image2D": "<base64-bytes>", "Image2DURI": "https://example.com/asset.png", "ThumbnailUrl": "example string", "Object3D": "<base64-bytes>", "Object3DURI": "https://example.com/asset.png", "Quantity": 1, "Stack": true, "IsStackable": true, "GameSource": "example string", "ItemType": "example string", "NftId": "example string", "Rarity": "example string", "MaxQuantity": 1, "Weight": 1.0, "IsUsable": true, "IsTradeable": true, "OwnerAvatarId": "example string", "AcquiredOn": "2026-01-01T00:00:00Z", "LastUsedOn": "2026-01-01T00:00:00Z", "Properties": { "<string>": {} } }], "KarmaAkashicRecords": [{ "AvatarId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "Date": "2026-01-01T00:00:00Z", "Karma": 1, "KarmaEarntOrLost": { "Score": 1.0 }, "KarmaSource": {}, "KarmaSourceDesc": "example string", "KarmaSourceTitle": "example string", "KarmaTypeNegative": { "Score": 1.0 }, "KarmaTypePositive": { "Score": 1.0 }, "Provider": {}, "TotalKarma": 1, "WebLink": "example string" }], "Omniverse": { "GreatGrandSuperStar": { }, "Dimensions": { "EighthDimension": { }, "NinthDimension": { }, "TenthDimension": { }, "EleventhDimension": { }, "TwelfthDimension": { }, "CustomDimensions": [{ "DimensionLevel": { } }] }, "Multiverses": [{ "GrandSuperStar": { "Stars": [ /* <I> */ ] }, "Dimensions": { "FirstDimension": { "Universe": { "Dimensions": [], "GalaxyClusters": [{ "Galaxies": [{ "SuperStar": { "Stars": [{ "Luminosity": 1, "StarType": { }, "StarClassification": { }, "StarBinaryType": { } }] }, "SolarSystems": [{ "Star": {}, "Planets": [{ "Moons": [{ }] }], "Asteroids": [{ }], "Comets": [{ }], "Meteroids": [{ }] }], "Nebulas": [{ }], "Stars": [], "Planets": [], "Asteroids": [], "Comets": [], "Meteroids": [] }], "SolarSystems": [], "Stars": [], "Planets": [], "Asteroids": [], "Comets": [], "Meteroids": [], "IsSuperCluster": true }], "SolarSystems": [], "Nebulas": [], "Stars": [], "Planets": [], "Asteroids": [], "Comets": [], "Meteroids": [] } }, "SecondDimension": { "Universe": {} }, "ThirdDimension": { "UniversePrime": {}, "MagicVerse": {}, "ParallelUniverses": [] }, "FourthDimension": { "Universe": {} }, "FifthDimension": { "Universe": {} }, "SixthDimension": { "Universe": {} }, "SeventhDimension": { "Universe": {} }, "CustomDimensions": [] } }] }, "Skills": { "Computers": 1, "Engineering": 1, "Farming": 1, "FireStarting": 1, "Fishing": 1, "Languages": 1, "Meditation": 1, "MeleeCombat": 1, "Mindfulness": 1, "Negotiating": 1, "RangedCombat": 1, "Research": 1, "Science": 1, "SpellCasting": 1, "Translating": 1, "Yoga": 1 }, "Spells": [{ "Description": "example string", "FireDamage": 1, "HealingPower": 1, "IceDamage": 1, "LightningDamage": 1, "Name": "example string", "PoisonDamage": 1, "WaterDamage": 1, "WindDamage": 1 }], "STARCLIColour": /* <ConsoleColor> */, "Stats": { "Energy": { "Current": 1, "Max": 1 }, "HP": {}, "Mana": {}, "Stamina": {} }, "SuperPowers": { "AstralProjection": 1, "BioLocatation": 1, "Flight": 1, "FreezeBreath": 1, "HeatVision": 1, "Invulnerability": 1, "RemoteViewing": 1, "SuperSpeed": 1, "SuperStrength": 1, "Telekinesis": 1, "Telepathy": 1, "Teleportation": 1, "XRayVision": 1 }, "ActiveQuestId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "ActiveObjectiveId": "3fa85f64-5717-4562-b3fc-2c963f66afa6" }
3414
+ }
3415
+ ```
3416
+
3417
+ ---
3418
+
3419
+ ### `updateAvatarDetailByEmail`
3420
+
3421
+ Update the given avatar detail with their avatar email address. Only works for logged in users. Use Authenticate endpoint first to obtain a JWT Token.
3422
+
3423
+ **POST** `api/avatar/update-avatar-detail-by-email/{email}`
3424
+
3425
+ Route parameters:
3426
+
3427
+ | Field | Type |
3428
+ | --- | --- |
3429
+ | `email` | `string` |
3430
+
3431
+ **Request**
3432
+
3433
+ Body type: `AvatarDetail`
3434
+
3435
+ | Field | Type |
3436
+ | --- | --- |
3437
+ | `Username` | `string` |
3438
+ | `Email` | `string` |
3439
+ | `AvatarType` | `EnumValue<AvatarType>` |
3440
+ | `Password` | `string` |
3441
+ | `Title` | `string` |
3442
+ | `FirstName` | `string` |
3443
+ | `LastName` | `string` |
3444
+ | `FavouriteColour` | `ConsoleColor` |
3445
+ | `STARCLIColour` | `ConsoleColor` |
3446
+ | `DOB` | `DateTime` |
3447
+ | `Address` | `string` |
3448
+ | `Town` | `string` |
3449
+ | `County` | `string` |
3450
+ | `Country` | `string` |
3451
+ | `Postcode` | `string` |
3452
+ | `Mobile` | `string` |
3453
+ | `Landline` | `string` |
3454
+ | `UmaJson` | `string` |
3455
+ | `Portrait` | `string` |
3456
+ | `Model3D` | `string` |
3457
+ | `HeartRateData` | `IList<IHeartRateEntry>` |
3458
+ | `CreatedOASISType` | `EnumValue<OASISType>` |
3459
+ | `Karma` | `int` |
3460
+ | `XP` | `int` |
3461
+ | `Omniverse` | `IOmiverse` |
3462
+ | `Gifts` | `IList<IAvatarGift>` |
3463
+ | `Chakras` | `List<Chakra>` |
3464
+ | `DimensionLevelIds` | `IDictionary<DimensionLevel, Guid>` |
3465
+ | `DimensionLevels` | `IDictionary<DimensionLevel, IHolon>` |
3466
+ | `Aura` | `IAvatarAura` |
3467
+ | `Stats` | `IAvatarStats` |
3468
+ | `GeneKeys` | `IList<IGeneKey>` |
3469
+ | `HumanDesign` | `IHumanDesign` |
3470
+ | `Skills` | `IAvatarSkills` |
3471
+ | `Attributes` | `IAvatarAttributes` |
3472
+ | `SuperPowers` | `IAvatarSuperPowers` |
3473
+ | `Spells` | `IList<ISpell>` |
3474
+ | `Achievements` | `IList<IAchievement>` |
3475
+ | `Inventory` | `IList<IInventoryItem>` |
3476
+ | `ActiveQuestId` | `Guid?` |
3477
+ | `ActiveObjectiveId` | `Guid?` |
3478
+ | `KarmaAkashicRecords` | `IList<IKarmaAkashicRecord>` |
3479
+
3480
+ **Response**
3481
+
3482
+ Standard `OASISResult` envelope (see top of this page) with:
3483
+
3484
+ `result` type: `IAvatarDetail`
3485
+
3486
+ | Field | Type |
3487
+ | --- | --- |
3488
+ | `Id` | `new Guid` |
3489
+ | `Username` | `string` |
3490
+ | `Email` | `string` |
3491
+ | `Karma` | `long` |
3492
+ | `Level` | `int` |
3493
+ | `XP` | `int` |
3494
+ | `Model3D` | `string` |
3495
+ | `UmaJson` | `string` |
3496
+ | `Portrait` | `string` |
3497
+ | `DOB` | `DateTime` |
3498
+ | `Address` | `string` |
3499
+ | `Town` | `string` |
3500
+ | `County` | `string` |
3501
+ | `Country` | `string` |
3502
+ | `Postcode` | `string` |
3503
+ | `Landline` | `string` |
3504
+ | `Mobile` | `string` |
3505
+ | `Achievements` | `IList<IAchievement>` |
3506
+ | `Attributes` | `IAvatarAttributes` |
3507
+ | `Aura` | `IAvatarAura` |
3508
+ | `Chakras` | `IAvatarChakras` |
3509
+ | `DimensionLevelIds` | `IDictionary<DimensionLevel, Guid>` |
3510
+ | `DimensionLevels` | `IDictionary<DimensionLevel, IHolon>` |
3511
+ | `FavouriteColour` | `ConsoleColor` |
3512
+ | `GeneKeys` | `IList<IGeneKey>` |
3513
+ | `Gifts` | `IList<IAvatarGift>` |
3514
+ | `HeartRateData` | `IList<IHeartRateEntry>` |
3515
+ | `HumanDesign` | `IHumanDesign` |
3516
+ | `Inventory` | `IList<IInventoryItem>` |
3517
+ | `KarmaAkashicRecords` | `IList<IKarmaAkashicRecord>` |
3518
+ | `Omniverse` | `IOmiverse` |
3519
+ | `Skills` | `IAvatarSkills` |
3520
+ | `Spells` | `IList<ISpell>` |
3521
+ | `STARCLIColour` | `ConsoleColor` |
3522
+ | `Stats` | `IAvatarStats` |
3523
+ | `SuperPowers` | `IAvatarSuperPowers` |
3524
+ | `ActiveQuestId` | `Guid?` |
3525
+ | `ActiveObjectiveId` | `Guid?` |
3526
+
3527
+ **Example**
3528
+
3529
+ ```js
3530
+ const { isError, message, result } = await oasis.avatar.updateAvatarDetailByEmail({
3531
+ email: "example string",
3532
+ username: "example string",
3533
+ avatarType: { "Score": 1.0 },
3534
+ password: "example string",
3535
+ title: "example string",
3536
+ firstName: "example string",
3537
+ lastName: "example string",
3538
+ favouriteColour: /* <ConsoleColor> */,
3539
+ sTARCLIColour: /* <ConsoleColor> */,
3540
+ dOB: "2026-01-01T00:00:00Z",
3541
+ address: "example string",
3542
+ town: "example string",
3543
+ county: "example string",
3544
+ country: "example string",
3545
+ postcode: "example string",
3546
+ mobile: "example string",
3547
+ landline: "example string",
3548
+ umaJson: "example string",
3549
+ portrait: "example string",
3550
+ model3D: "example string",
3551
+ heartRateData: [{ "HeartRateValue": 1, "TimeStamp": "2026-01-01T00:00:00Z" }],
3552
+ createdOASISType: { "Score": 1.0 },
3553
+ karma: 1,
3554
+ xP: 1,
3555
+ omniverse: { "GreatGrandSuperStar": { }, "Dimensions": { "EighthDimension": { }, "NinthDimension": { }, "TenthDimension": { }, "EleventhDimension": { }, "TwelfthDimension": { }, "CustomDimensions": [{ "DimensionLevel": { } }] }, "Multiverses": [{ "GrandSuperStar": { "Stars": [ /* <I> */ ] }, "Dimensions": { "FirstDimension": { "Universe": { "Dimensions": [], "GalaxyClusters": [{ "Galaxies": [{ "SuperStar": { "Stars": [{ "Luminosity": 1, "StarType": { }, "StarClassification": { }, "StarBinaryType": { } }] }, "SolarSystems": [{ "Star": {}, "Planets": [{ "Moons": [{ }] }], "Asteroids": [{ }], "Comets": [{ }], "Meteroids": [{ }] }], "Nebulas": [{ }], "Stars": [], "Planets": [], "Asteroids": [], "Comets": [], "Meteroids": [] }], "SolarSystems": [], "Stars": [], "Planets": [], "Asteroids": [], "Comets": [], "Meteroids": [], "IsSuperCluster": true }], "SolarSystems": [], "Nebulas": [], "Stars": [], "Planets": [], "Asteroids": [], "Comets": [], "Meteroids": [] } }, "SecondDimension": { "Universe": {} }, "ThirdDimension": { "UniversePrime": {}, "MagicVerse": {}, "ParallelUniverses": [] }, "FourthDimension": { "Universe": {} }, "FifthDimension": { "Universe": {} }, "SixthDimension": { "Universe": {} }, "SeventhDimension": { "Universe": {} }, "CustomDimensions": [] } }] },
3556
+ gifts: [{ "AvatarId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "GiftEarnt": "2026-01-01T00:00:00Z", "GiftType": { }, "KarmaSource": { "Score": 1.0 }, "KarmaSourceDesc": "example string", "KarmaSourceTitle": "example string", "Provider": { "Score": 1.0 }, "WebLink": "example string" }],
3557
+ chakras: [{ "Name": "example string", "SanskritName": "example string", "Description": "example string", "WhatItControls": "example string", "YogaPose": { "Score": 1.0 }, "WhenItDevelops": "example string", "Element": { "Score": 1.0 }, "Crystal": { "Name": { "Score": 1.0 }, "Type": { "Score": 1.0 }, "Description": "example string", "ProtectionLevel": 1, "EnergisingLevel": 1, "GroundingLevel": 1, "CleansingLevel": 1, "AmplifyicationLevel": 1 }, "Color": { "Default": /* <static Color> */, "R": 1, "G": 1, "B": 1, "Number": /* <internal byte> */, "IsDefault": /* <internal bool> */ }, "Level": 1, "Progress": 1, "XP": 1, "Type": { "Score": 1.0 }, "GiftsUnlocked": [{ "AvatarId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "GiftType": { }, "GiftEarnt": "2026-01-01T00:00:00Z", "KarmaSourceTitle": "example string", "KarmaSourceDesc": "example string", "WebLink": "example string", "KarmaSource": { "Score": 1.0 }, "Provider": { "Score": 1.0 } }] }],
3558
+ dimensionLevelIds: /* <IDictionary<DimensionLevel, Guid>> */,
3559
+ dimensionLevels: /* <IDictionary<DimensionLevel, IHolon>> */,
3560
+ aura: { "Progress": 1, "Brightness": 1, "Size": 1, "ColourBlue": 1, "ColourGreen": 1, "ColourRed": 1, "Level": 1, "Value": 1 },
3561
+ stats: { "Energy": { "Current": 1, "Max": 1 }, "HP": {}, "Mana": {}, "Stamina": {} },
3562
+ geneKeys: [{ "Description": "example string", "Gift": "example string", "Name": "example string", "Shadow": "example string", "Sidhi": "example string" }],
3563
+ humanDesign: { "Type": "example string" },
3564
+ skills: { "Computers": 1, "Engineering": 1, "Farming": 1, "FireStarting": 1, "Fishing": 1, "Languages": 1, "Meditation": 1, "MeleeCombat": 1, "Mindfulness": 1, "Negotiating": 1, "RangedCombat": 1, "Research": 1, "Science": 1, "SpellCasting": 1, "Translating": 1, "Yoga": 1 },
3565
+ attributes: { "Dexterity": 1, "Intelligence": 1, "Magic": 1, "Speed": 1, "Strength": 1, "Toughness": 1, "Wisdom": 1, "Vitality": 1, "Endurance": 1 },
3566
+ superPowers: { "AstralProjection": 1, "BioLocatation": 1, "Flight": 1, "FreezeBreath": 1, "HeatVision": 1, "Invulnerability": 1, "RemoteViewing": 1, "SuperSpeed": 1, "SuperStrength": 1, "Telekinesis": 1, "Telepathy": 1, "Teleportation": 1, "XRayVision": 1 },
3567
+ spells: [{ "Description": "example string", "FireDamage": 1, "HealingPower": 1, "IceDamage": 1, "LightningDamage": 1, "Name": "example string", "PoisonDamage": 1, "WaterDamage": 1, "WindDamage": 1 }],
3568
+ achievements: [{ "AchievementEarnt": "2026-01-01T00:00:00Z", "AchievementType": { }, "AvatarId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "Description": "example string", "KarmaSource": { "Score": 1.0 }, "KarmaSourceDesc": "example string", "KarmaSourceTitle": "example string", "Name": "example string", "Provider": { "Score": 1.0 }, "WebLink": "example string" }],
3569
+ inventory: [{ "Image2D": "<base64-bytes>", "Image2DURI": "https://example.com/asset.png", "ThumbnailUrl": "example string", "Object3D": "<base64-bytes>", "Object3DURI": "https://example.com/asset.png", "Quantity": 1, "Stack": true, "IsStackable": true, "GameSource": "example string", "ItemType": "example string", "NftId": "example string", "Rarity": "example string", "MaxQuantity": 1, "Weight": 1.0, "IsUsable": true, "IsTradeable": true, "OwnerAvatarId": "example string", "AcquiredOn": "2026-01-01T00:00:00Z", "LastUsedOn": "2026-01-01T00:00:00Z", "Properties": { "<string>": {} } }],
3570
+ activeQuestId: "3fa85f64-5717-4562-b3fc-2c963f66afa6",
3571
+ activeObjectiveId: "3fa85f64-5717-4562-b3fc-2c963f66afa6",
3572
+ karmaAkashicRecords: [{ "AvatarId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "Date": "2026-01-01T00:00:00Z", "Karma": 1, "KarmaEarntOrLost": { "Score": 1.0 }, "KarmaSource": { "Score": 1.0 }, "KarmaSourceDesc": "example string", "KarmaSourceTitle": "example string", "KarmaTypeNegative": { "Score": 1.0 }, "KarmaTypePositive": { "Score": 1.0 }, "Provider": { "Score": 1.0 }, "TotalKarma": 1, "WebLink": "example string" }]
3573
+ });
3574
+ if (isError) throw new Error(message);
3575
+ console.log(result);
3576
+ ```
3577
+
3578
+ Example response:
3579
+
3580
+ ```json
3581
+ {
3582
+ "isError": false,
3583
+ "message": "",
3584
+ "result": { "Id": /* <new Guid> */, "Username": "example string", "Email": "example string", "Karma": 1, "Level": 1, "XP": 1, "Model3D": "example string", "UmaJson": "example string", "Portrait": "example string", "DOB": "2026-01-01T00:00:00Z", "Address": "example string", "Town": "example string", "County": "example string", "Country": "example string", "Postcode": "example string", "Landline": "example string", "Mobile": "example string", "Achievements": [{ "AchievementEarnt": "2026-01-01T00:00:00Z", "AchievementType": { }, "AvatarId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "Description": "example string", "KarmaSource": { "Score": 1.0 }, "KarmaSourceDesc": "example string", "KarmaSourceTitle": "example string", "Name": "example string", "Provider": { "Score": 1.0 }, "WebLink": "example string" }], "Attributes": { "Dexterity": 1, "Intelligence": 1, "Magic": 1, "Speed": 1, "Strength": 1, "Toughness": 1, "Wisdom": 1, "Vitality": 1, "Endurance": 1 }, "Aura": { "Progress": 1, "Brightness": 1, "Size": 1, "ColourBlue": 1, "ColourGreen": 1, "ColourRed": 1, "Level": 1, "Value": 1 }, "Chakras": { "Crown": { }, "Heart": { }, "Root": { }, "Sacral": { }, "SolarPlexus": { }, "ThirdEye": { }, "Throat": { } }, "DimensionLevelIds": /* <IDictionary<DimensionLevel, Guid>> */, "DimensionLevels": /* <IDictionary<DimensionLevel, IHolon>> */, "FavouriteColour": /* <ConsoleColor> */, "GeneKeys": [{ "Description": "example string", "Gift": "example string", "Name": "example string", "Shadow": "example string", "Sidhi": "example string" }], "Gifts": [{ "AvatarId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "GiftEarnt": "2026-01-01T00:00:00Z", "GiftType": {}, "KarmaSource": {}, "KarmaSourceDesc": "example string", "KarmaSourceTitle": "example string", "Provider": {}, "WebLink": "example string" }], "HeartRateData": [{ "HeartRateValue": 1, "TimeStamp": "2026-01-01T00:00:00Z" }], "HumanDesign": { "Type": "example string" }, "Inventory": [{ "Image2D": "<base64-bytes>", "Image2DURI": "https://example.com/asset.png", "ThumbnailUrl": "example string", "Object3D": "<base64-bytes>", "Object3DURI": "https://example.com/asset.png", "Quantity": 1, "Stack": true, "IsStackable": true, "GameSource": "example string", "ItemType": "example string", "NftId": "example string", "Rarity": "example string", "MaxQuantity": 1, "Weight": 1.0, "IsUsable": true, "IsTradeable": true, "OwnerAvatarId": "example string", "AcquiredOn": "2026-01-01T00:00:00Z", "LastUsedOn": "2026-01-01T00:00:00Z", "Properties": { "<string>": {} } }], "KarmaAkashicRecords": [{ "AvatarId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "Date": "2026-01-01T00:00:00Z", "Karma": 1, "KarmaEarntOrLost": { "Score": 1.0 }, "KarmaSource": {}, "KarmaSourceDesc": "example string", "KarmaSourceTitle": "example string", "KarmaTypeNegative": { "Score": 1.0 }, "KarmaTypePositive": { "Score": 1.0 }, "Provider": {}, "TotalKarma": 1, "WebLink": "example string" }], "Omniverse": { "GreatGrandSuperStar": { }, "Dimensions": { "EighthDimension": { }, "NinthDimension": { }, "TenthDimension": { }, "EleventhDimension": { }, "TwelfthDimension": { }, "CustomDimensions": [{ "DimensionLevel": { } }] }, "Multiverses": [{ "GrandSuperStar": { "Stars": [ /* <I> */ ] }, "Dimensions": { "FirstDimension": { "Universe": { "Dimensions": [], "GalaxyClusters": [{ "Galaxies": [{ "SuperStar": { "Stars": [{ "Luminosity": 1, "StarType": { }, "StarClassification": { }, "StarBinaryType": { } }] }, "SolarSystems": [{ "Star": {}, "Planets": [{ "Moons": [{ }] }], "Asteroids": [{ }], "Comets": [{ }], "Meteroids": [{ }] }], "Nebulas": [{ }], "Stars": [], "Planets": [], "Asteroids": [], "Comets": [], "Meteroids": [] }], "SolarSystems": [], "Stars": [], "Planets": [], "Asteroids": [], "Comets": [], "Meteroids": [], "IsSuperCluster": true }], "SolarSystems": [], "Nebulas": [], "Stars": [], "Planets": [], "Asteroids": [], "Comets": [], "Meteroids": [] } }, "SecondDimension": { "Universe": {} }, "ThirdDimension": { "UniversePrime": {}, "MagicVerse": {}, "ParallelUniverses": [] }, "FourthDimension": { "Universe": {} }, "FifthDimension": { "Universe": {} }, "SixthDimension": { "Universe": {} }, "SeventhDimension": { "Universe": {} }, "CustomDimensions": [] } }] }, "Skills": { "Computers": 1, "Engineering": 1, "Farming": 1, "FireStarting": 1, "Fishing": 1, "Languages": 1, "Meditation": 1, "MeleeCombat": 1, "Mindfulness": 1, "Negotiating": 1, "RangedCombat": 1, "Research": 1, "Science": 1, "SpellCasting": 1, "Translating": 1, "Yoga": 1 }, "Spells": [{ "Description": "example string", "FireDamage": 1, "HealingPower": 1, "IceDamage": 1, "LightningDamage": 1, "Name": "example string", "PoisonDamage": 1, "WaterDamage": 1, "WindDamage": 1 }], "STARCLIColour": /* <ConsoleColor> */, "Stats": { "Energy": { "Current": 1, "Max": 1 }, "HP": {}, "Mana": {}, "Stamina": {} }, "SuperPowers": { "AstralProjection": 1, "BioLocatation": 1, "Flight": 1, "FreezeBreath": 1, "HeatVision": 1, "Invulnerability": 1, "RemoteViewing": 1, "SuperSpeed": 1, "SuperStrength": 1, "Telekinesis": 1, "Telepathy": 1, "Teleportation": 1, "XRayVision": 1 }, "ActiveQuestId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "ActiveObjectiveId": "3fa85f64-5717-4562-b3fc-2c963f66afa6" }
3585
+ }
3586
+ ```
3587
+
3588
+ ---
3589
+
3590
+ ### `updateAvatarDetailByUsername`
3591
+
3592
+ Update the given avatar detail with their avatar username. Only works for logged in users. Use Authenticate endpoint first to obtain a JWT Token.
3593
+
3594
+ **POST** `api/avatar/update-avatar-detail-by-username/{username}`
3595
+
3596
+ Route parameters:
3597
+
3598
+ | Field | Type |
3599
+ | --- | --- |
3600
+ | `username` | `string` |
3601
+
3602
+ **Request**
3603
+
3604
+ Body type: `AvatarDetail`
3605
+
3606
+ | Field | Type |
3607
+ | --- | --- |
3608
+ | `Username` | `string` |
3609
+ | `Email` | `string` |
3610
+ | `AvatarType` | `EnumValue<AvatarType>` |
3611
+ | `Password` | `string` |
3612
+ | `Title` | `string` |
3613
+ | `FirstName` | `string` |
3614
+ | `LastName` | `string` |
3615
+ | `FavouriteColour` | `ConsoleColor` |
3616
+ | `STARCLIColour` | `ConsoleColor` |
3617
+ | `DOB` | `DateTime` |
3618
+ | `Address` | `string` |
3619
+ | `Town` | `string` |
3620
+ | `County` | `string` |
3621
+ | `Country` | `string` |
3622
+ | `Postcode` | `string` |
3623
+ | `Mobile` | `string` |
3624
+ | `Landline` | `string` |
3625
+ | `UmaJson` | `string` |
3626
+ | `Portrait` | `string` |
3627
+ | `Model3D` | `string` |
3628
+ | `HeartRateData` | `IList<IHeartRateEntry>` |
3629
+ | `CreatedOASISType` | `EnumValue<OASISType>` |
3630
+ | `Karma` | `int` |
3631
+ | `XP` | `int` |
3632
+ | `Omniverse` | `IOmiverse` |
3633
+ | `Gifts` | `IList<IAvatarGift>` |
3634
+ | `Chakras` | `List<Chakra>` |
3635
+ | `DimensionLevelIds` | `IDictionary<DimensionLevel, Guid>` |
3636
+ | `DimensionLevels` | `IDictionary<DimensionLevel, IHolon>` |
3637
+ | `Aura` | `IAvatarAura` |
3638
+ | `Stats` | `IAvatarStats` |
3639
+ | `GeneKeys` | `IList<IGeneKey>` |
3640
+ | `HumanDesign` | `IHumanDesign` |
3641
+ | `Skills` | `IAvatarSkills` |
3642
+ | `Attributes` | `IAvatarAttributes` |
3643
+ | `SuperPowers` | `IAvatarSuperPowers` |
3644
+ | `Spells` | `IList<ISpell>` |
3645
+ | `Achievements` | `IList<IAchievement>` |
3646
+ | `Inventory` | `IList<IInventoryItem>` |
3647
+ | `ActiveQuestId` | `Guid?` |
3648
+ | `ActiveObjectiveId` | `Guid?` |
3649
+ | `KarmaAkashicRecords` | `IList<IKarmaAkashicRecord>` |
3650
+
3651
+ **Response**
3652
+
3653
+ Standard `OASISResult` envelope (see top of this page) with:
3654
+
3655
+ `result` type: `IAvatarDetail`
3656
+
3657
+ | Field | Type |
3658
+ | --- | --- |
3659
+ | `Id` | `new Guid` |
3660
+ | `Username` | `string` |
3661
+ | `Email` | `string` |
3662
+ | `Karma` | `long` |
3663
+ | `Level` | `int` |
3664
+ | `XP` | `int` |
3665
+ | `Model3D` | `string` |
3666
+ | `UmaJson` | `string` |
3667
+ | `Portrait` | `string` |
3668
+ | `DOB` | `DateTime` |
3669
+ | `Address` | `string` |
3670
+ | `Town` | `string` |
3671
+ | `County` | `string` |
3672
+ | `Country` | `string` |
3673
+ | `Postcode` | `string` |
3674
+ | `Landline` | `string` |
3675
+ | `Mobile` | `string` |
3676
+ | `Achievements` | `IList<IAchievement>` |
3677
+ | `Attributes` | `IAvatarAttributes` |
3678
+ | `Aura` | `IAvatarAura` |
3679
+ | `Chakras` | `IAvatarChakras` |
3680
+ | `DimensionLevelIds` | `IDictionary<DimensionLevel, Guid>` |
3681
+ | `DimensionLevels` | `IDictionary<DimensionLevel, IHolon>` |
3682
+ | `FavouriteColour` | `ConsoleColor` |
3683
+ | `GeneKeys` | `IList<IGeneKey>` |
3684
+ | `Gifts` | `IList<IAvatarGift>` |
3685
+ | `HeartRateData` | `IList<IHeartRateEntry>` |
3686
+ | `HumanDesign` | `IHumanDesign` |
3687
+ | `Inventory` | `IList<IInventoryItem>` |
3688
+ | `KarmaAkashicRecords` | `IList<IKarmaAkashicRecord>` |
3689
+ | `Omniverse` | `IOmiverse` |
3690
+ | `Skills` | `IAvatarSkills` |
3691
+ | `Spells` | `IList<ISpell>` |
3692
+ | `STARCLIColour` | `ConsoleColor` |
3693
+ | `Stats` | `IAvatarStats` |
3694
+ | `SuperPowers` | `IAvatarSuperPowers` |
3695
+ | `ActiveQuestId` | `Guid?` |
3696
+ | `ActiveObjectiveId` | `Guid?` |
3697
+
3698
+ **Example**
3699
+
3700
+ ```js
3701
+ const { isError, message, result } = await oasis.avatar.updateAvatarDetailByUsername({
3702
+ username: "example string",
3703
+ email: "example string",
3704
+ avatarType: { "Score": 1.0 },
3705
+ password: "example string",
3706
+ title: "example string",
3707
+ firstName: "example string",
3708
+ lastName: "example string",
3709
+ favouriteColour: /* <ConsoleColor> */,
3710
+ sTARCLIColour: /* <ConsoleColor> */,
3711
+ dOB: "2026-01-01T00:00:00Z",
3712
+ address: "example string",
3713
+ town: "example string",
3714
+ county: "example string",
3715
+ country: "example string",
3716
+ postcode: "example string",
3717
+ mobile: "example string",
3718
+ landline: "example string",
3719
+ umaJson: "example string",
3720
+ portrait: "example string",
3721
+ model3D: "example string",
3722
+ heartRateData: [{ "HeartRateValue": 1, "TimeStamp": "2026-01-01T00:00:00Z" }],
3723
+ createdOASISType: { "Score": 1.0 },
3724
+ karma: 1,
3725
+ xP: 1,
3726
+ omniverse: { "GreatGrandSuperStar": { }, "Dimensions": { "EighthDimension": { }, "NinthDimension": { }, "TenthDimension": { }, "EleventhDimension": { }, "TwelfthDimension": { }, "CustomDimensions": [{ "DimensionLevel": { } }] }, "Multiverses": [{ "GrandSuperStar": { "Stars": [ /* <I> */ ] }, "Dimensions": { "FirstDimension": { "Universe": { "Dimensions": [], "GalaxyClusters": [{ "Galaxies": [{ "SuperStar": { "Stars": [{ "Luminosity": 1, "StarType": { }, "StarClassification": { }, "StarBinaryType": { } }] }, "SolarSystems": [{ "Star": {}, "Planets": [{ "Moons": [{ }] }], "Asteroids": [{ }], "Comets": [{ }], "Meteroids": [{ }] }], "Nebulas": [{ }], "Stars": [], "Planets": [], "Asteroids": [], "Comets": [], "Meteroids": [] }], "SolarSystems": [], "Stars": [], "Planets": [], "Asteroids": [], "Comets": [], "Meteroids": [], "IsSuperCluster": true }], "SolarSystems": [], "Nebulas": [], "Stars": [], "Planets": [], "Asteroids": [], "Comets": [], "Meteroids": [] } }, "SecondDimension": { "Universe": {} }, "ThirdDimension": { "UniversePrime": {}, "MagicVerse": {}, "ParallelUniverses": [] }, "FourthDimension": { "Universe": {} }, "FifthDimension": { "Universe": {} }, "SixthDimension": { "Universe": {} }, "SeventhDimension": { "Universe": {} }, "CustomDimensions": [] } }] },
3727
+ gifts: [{ "AvatarId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "GiftEarnt": "2026-01-01T00:00:00Z", "GiftType": { }, "KarmaSource": { "Score": 1.0 }, "KarmaSourceDesc": "example string", "KarmaSourceTitle": "example string", "Provider": { "Score": 1.0 }, "WebLink": "example string" }],
3728
+ chakras: [{ "Name": "example string", "SanskritName": "example string", "Description": "example string", "WhatItControls": "example string", "YogaPose": { "Score": 1.0 }, "WhenItDevelops": "example string", "Element": { "Score": 1.0 }, "Crystal": { "Name": { "Score": 1.0 }, "Type": { "Score": 1.0 }, "Description": "example string", "ProtectionLevel": 1, "EnergisingLevel": 1, "GroundingLevel": 1, "CleansingLevel": 1, "AmplifyicationLevel": 1 }, "Color": { "Default": /* <static Color> */, "R": 1, "G": 1, "B": 1, "Number": /* <internal byte> */, "IsDefault": /* <internal bool> */ }, "Level": 1, "Progress": 1, "XP": 1, "Type": { "Score": 1.0 }, "GiftsUnlocked": [{ "AvatarId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "GiftType": { }, "GiftEarnt": "2026-01-01T00:00:00Z", "KarmaSourceTitle": "example string", "KarmaSourceDesc": "example string", "WebLink": "example string", "KarmaSource": { "Score": 1.0 }, "Provider": { "Score": 1.0 } }] }],
3729
+ dimensionLevelIds: /* <IDictionary<DimensionLevel, Guid>> */,
3730
+ dimensionLevels: /* <IDictionary<DimensionLevel, IHolon>> */,
3731
+ aura: { "Progress": 1, "Brightness": 1, "Size": 1, "ColourBlue": 1, "ColourGreen": 1, "ColourRed": 1, "Level": 1, "Value": 1 },
3732
+ stats: { "Energy": { "Current": 1, "Max": 1 }, "HP": {}, "Mana": {}, "Stamina": {} },
3733
+ geneKeys: [{ "Description": "example string", "Gift": "example string", "Name": "example string", "Shadow": "example string", "Sidhi": "example string" }],
3734
+ humanDesign: { "Type": "example string" },
3735
+ skills: { "Computers": 1, "Engineering": 1, "Farming": 1, "FireStarting": 1, "Fishing": 1, "Languages": 1, "Meditation": 1, "MeleeCombat": 1, "Mindfulness": 1, "Negotiating": 1, "RangedCombat": 1, "Research": 1, "Science": 1, "SpellCasting": 1, "Translating": 1, "Yoga": 1 },
3736
+ attributes: { "Dexterity": 1, "Intelligence": 1, "Magic": 1, "Speed": 1, "Strength": 1, "Toughness": 1, "Wisdom": 1, "Vitality": 1, "Endurance": 1 },
3737
+ superPowers: { "AstralProjection": 1, "BioLocatation": 1, "Flight": 1, "FreezeBreath": 1, "HeatVision": 1, "Invulnerability": 1, "RemoteViewing": 1, "SuperSpeed": 1, "SuperStrength": 1, "Telekinesis": 1, "Telepathy": 1, "Teleportation": 1, "XRayVision": 1 },
3738
+ spells: [{ "Description": "example string", "FireDamage": 1, "HealingPower": 1, "IceDamage": 1, "LightningDamage": 1, "Name": "example string", "PoisonDamage": 1, "WaterDamage": 1, "WindDamage": 1 }],
3739
+ achievements: [{ "AchievementEarnt": "2026-01-01T00:00:00Z", "AchievementType": { }, "AvatarId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "Description": "example string", "KarmaSource": { "Score": 1.0 }, "KarmaSourceDesc": "example string", "KarmaSourceTitle": "example string", "Name": "example string", "Provider": { "Score": 1.0 }, "WebLink": "example string" }],
3740
+ inventory: [{ "Image2D": "<base64-bytes>", "Image2DURI": "https://example.com/asset.png", "ThumbnailUrl": "example string", "Object3D": "<base64-bytes>", "Object3DURI": "https://example.com/asset.png", "Quantity": 1, "Stack": true, "IsStackable": true, "GameSource": "example string", "ItemType": "example string", "NftId": "example string", "Rarity": "example string", "MaxQuantity": 1, "Weight": 1.0, "IsUsable": true, "IsTradeable": true, "OwnerAvatarId": "example string", "AcquiredOn": "2026-01-01T00:00:00Z", "LastUsedOn": "2026-01-01T00:00:00Z", "Properties": { "<string>": {} } }],
3741
+ activeQuestId: "3fa85f64-5717-4562-b3fc-2c963f66afa6",
3742
+ activeObjectiveId: "3fa85f64-5717-4562-b3fc-2c963f66afa6",
3743
+ karmaAkashicRecords: [{ "AvatarId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "Date": "2026-01-01T00:00:00Z", "Karma": 1, "KarmaEarntOrLost": { "Score": 1.0 }, "KarmaSource": { "Score": 1.0 }, "KarmaSourceDesc": "example string", "KarmaSourceTitle": "example string", "KarmaTypeNegative": { "Score": 1.0 }, "KarmaTypePositive": { "Score": 1.0 }, "Provider": { "Score": 1.0 }, "TotalKarma": 1, "WebLink": "example string" }]
3744
+ });
3745
+ if (isError) throw new Error(message);
3746
+ console.log(result);
3747
+ ```
3748
+
3749
+ Example response:
3750
+
3751
+ ```json
3752
+ {
3753
+ "isError": false,
3754
+ "message": "",
3755
+ "result": { "Id": /* <new Guid> */, "Username": "example string", "Email": "example string", "Karma": 1, "Level": 1, "XP": 1, "Model3D": "example string", "UmaJson": "example string", "Portrait": "example string", "DOB": "2026-01-01T00:00:00Z", "Address": "example string", "Town": "example string", "County": "example string", "Country": "example string", "Postcode": "example string", "Landline": "example string", "Mobile": "example string", "Achievements": [{ "AchievementEarnt": "2026-01-01T00:00:00Z", "AchievementType": { }, "AvatarId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "Description": "example string", "KarmaSource": { "Score": 1.0 }, "KarmaSourceDesc": "example string", "KarmaSourceTitle": "example string", "Name": "example string", "Provider": { "Score": 1.0 }, "WebLink": "example string" }], "Attributes": { "Dexterity": 1, "Intelligence": 1, "Magic": 1, "Speed": 1, "Strength": 1, "Toughness": 1, "Wisdom": 1, "Vitality": 1, "Endurance": 1 }, "Aura": { "Progress": 1, "Brightness": 1, "Size": 1, "ColourBlue": 1, "ColourGreen": 1, "ColourRed": 1, "Level": 1, "Value": 1 }, "Chakras": { "Crown": { }, "Heart": { }, "Root": { }, "Sacral": { }, "SolarPlexus": { }, "ThirdEye": { }, "Throat": { } }, "DimensionLevelIds": /* <IDictionary<DimensionLevel, Guid>> */, "DimensionLevels": /* <IDictionary<DimensionLevel, IHolon>> */, "FavouriteColour": /* <ConsoleColor> */, "GeneKeys": [{ "Description": "example string", "Gift": "example string", "Name": "example string", "Shadow": "example string", "Sidhi": "example string" }], "Gifts": [{ "AvatarId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "GiftEarnt": "2026-01-01T00:00:00Z", "GiftType": {}, "KarmaSource": {}, "KarmaSourceDesc": "example string", "KarmaSourceTitle": "example string", "Provider": {}, "WebLink": "example string" }], "HeartRateData": [{ "HeartRateValue": 1, "TimeStamp": "2026-01-01T00:00:00Z" }], "HumanDesign": { "Type": "example string" }, "Inventory": [{ "Image2D": "<base64-bytes>", "Image2DURI": "https://example.com/asset.png", "ThumbnailUrl": "example string", "Object3D": "<base64-bytes>", "Object3DURI": "https://example.com/asset.png", "Quantity": 1, "Stack": true, "IsStackable": true, "GameSource": "example string", "ItemType": "example string", "NftId": "example string", "Rarity": "example string", "MaxQuantity": 1, "Weight": 1.0, "IsUsable": true, "IsTradeable": true, "OwnerAvatarId": "example string", "AcquiredOn": "2026-01-01T00:00:00Z", "LastUsedOn": "2026-01-01T00:00:00Z", "Properties": { "<string>": {} } }], "KarmaAkashicRecords": [{ "AvatarId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "Date": "2026-01-01T00:00:00Z", "Karma": 1, "KarmaEarntOrLost": { "Score": 1.0 }, "KarmaSource": {}, "KarmaSourceDesc": "example string", "KarmaSourceTitle": "example string", "KarmaTypeNegative": { "Score": 1.0 }, "KarmaTypePositive": { "Score": 1.0 }, "Provider": {}, "TotalKarma": 1, "WebLink": "example string" }], "Omniverse": { "GreatGrandSuperStar": { }, "Dimensions": { "EighthDimension": { }, "NinthDimension": { }, "TenthDimension": { }, "EleventhDimension": { }, "TwelfthDimension": { }, "CustomDimensions": [{ "DimensionLevel": { } }] }, "Multiverses": [{ "GrandSuperStar": { "Stars": [ /* <I> */ ] }, "Dimensions": { "FirstDimension": { "Universe": { "Dimensions": [], "GalaxyClusters": [{ "Galaxies": [{ "SuperStar": { "Stars": [{ "Luminosity": 1, "StarType": { }, "StarClassification": { }, "StarBinaryType": { } }] }, "SolarSystems": [{ "Star": {}, "Planets": [{ "Moons": [{ }] }], "Asteroids": [{ }], "Comets": [{ }], "Meteroids": [{ }] }], "Nebulas": [{ }], "Stars": [], "Planets": [], "Asteroids": [], "Comets": [], "Meteroids": [] }], "SolarSystems": [], "Stars": [], "Planets": [], "Asteroids": [], "Comets": [], "Meteroids": [], "IsSuperCluster": true }], "SolarSystems": [], "Nebulas": [], "Stars": [], "Planets": [], "Asteroids": [], "Comets": [], "Meteroids": [] } }, "SecondDimension": { "Universe": {} }, "ThirdDimension": { "UniversePrime": {}, "MagicVerse": {}, "ParallelUniverses": [] }, "FourthDimension": { "Universe": {} }, "FifthDimension": { "Universe": {} }, "SixthDimension": { "Universe": {} }, "SeventhDimension": { "Universe": {} }, "CustomDimensions": [] } }] }, "Skills": { "Computers": 1, "Engineering": 1, "Farming": 1, "FireStarting": 1, "Fishing": 1, "Languages": 1, "Meditation": 1, "MeleeCombat": 1, "Mindfulness": 1, "Negotiating": 1, "RangedCombat": 1, "Research": 1, "Science": 1, "SpellCasting": 1, "Translating": 1, "Yoga": 1 }, "Spells": [{ "Description": "example string", "FireDamage": 1, "HealingPower": 1, "IceDamage": 1, "LightningDamage": 1, "Name": "example string", "PoisonDamage": 1, "WaterDamage": 1, "WindDamage": 1 }], "STARCLIColour": /* <ConsoleColor> */, "Stats": { "Energy": { "Current": 1, "Max": 1 }, "HP": {}, "Mana": {}, "Stamina": {} }, "SuperPowers": { "AstralProjection": 1, "BioLocatation": 1, "Flight": 1, "FreezeBreath": 1, "HeatVision": 1, "Invulnerability": 1, "RemoteViewing": 1, "SuperSpeed": 1, "SuperStrength": 1, "Telekinesis": 1, "Telepathy": 1, "Teleportation": 1, "XRayVision": 1 }, "ActiveQuestId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "ActiveObjectiveId": "3fa85f64-5717-4562-b3fc-2c963f66afa6" }
3756
+ }
3757
+ ```
3758
+
3759
+ ---
3760
+
3761
+ ### `updateAvatarSession`
3762
+
3763
+ Update an existing session (OASIS SSO System)
3764
+
3765
+ **PUT** `api/avatar/{avatarId}/sessions/{sessionId}`
3766
+
3767
+ Route parameters:
3768
+
3769
+ | Field | Type |
3770
+ | --- | --- |
3771
+ | `avatarId` | `Guid` |
3772
+ | `sessionId` | `string` |
3773
+
3774
+ **Request**
3775
+
3776
+ Body type: `UpdateSessionRequest`
3777
+
3778
+ | Field | Type |
3779
+ | --- | --- |
3780
+ | `IsActive` | `bool?` |
3781
+ | `LastActivity` | `DateTime?` |
3782
+ | `Location` | `string` |
3783
+ | `IpAddress` | `string` |
3784
+ | `UserAgent` | `string` |
3785
+ | `Platform` | `string` |
3786
+ | `Version` | `string` |
3787
+ | `Metadata` | `string` |
3788
+ | `ExpiresAt` | `DateTime?` |
3789
+ | `SecurityToken` | `string` |
3790
+
3791
+ **Response**
3792
+
3793
+ Standard `OASISResult` envelope (see top of this page) with:
3794
+
3795
+ `result` type: `AvatarSession`
3796
+
3797
+ | Field | Type |
3798
+ | --- | --- |
3799
+ | `Id` | `string` |
3800
+ | `AvatarId` | `Guid` |
3801
+ | `ServiceName` | `string` |
3802
+ | `ServiceType` | `string` |
3803
+ | `DeviceType` | `string` |
3804
+ | `DeviceName` | `string` |
3805
+ | `Location` | `string` |
3806
+ | `IpAddress` | `string` |
3807
+ | `IsActive` | `bool` |
3808
+ | `LastActivity` | `DateTime` |
3809
+ | `LoginTime` | `DateTime` |
3810
+ | `UserAgent` | `string` |
3811
+ | `Platform` | `string` |
3812
+ | `Version` | `string` |
3813
+ | `CreatedAt` | `DateTime` |
3814
+ | `UpdatedAt` | `DateTime` |
3815
+ | `Metadata` | `string` |
3816
+ | `SecurityToken` | `string` |
3817
+ | `ExpiresAt` | `DateTime?` |
3818
+
3819
+ **Example**
3820
+
3821
+ ```js
3822
+ const { isError, message, result } = await oasis.avatar.updateAvatarSession({
3823
+ avatarId: '<avatarId>',
3824
+ sessionId: '<sessionId>',
3825
+ isActive: true,
3826
+ lastActivity: "2026-01-01T00:00:00Z",
3827
+ location: "example string",
3828
+ ipAddress: "example string",
3829
+ userAgent: "example string",
3830
+ platform: "example string",
3831
+ version: "example string",
3832
+ metadata: "example string",
3833
+ expiresAt: "2026-01-01T00:00:00Z",
3834
+ securityToken: "example string"
3835
+ });
3836
+ if (isError) throw new Error(message);
3837
+ console.log(result);
3838
+ ```
3839
+
3840
+ Example response:
3841
+
3842
+ ```json
3843
+ {
3844
+ "isError": false,
3845
+ "message": "",
3846
+ "result": { "Id": "example string", "AvatarId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "ServiceName": "example string", "ServiceType": "example string", "DeviceType": "example string", "DeviceName": "example string", "Location": "example string", "IpAddress": "example string", "IsActive": true, "LastActivity": "2026-01-01T00:00:00Z", "LoginTime": "2026-01-01T00:00:00Z", "UserAgent": "example string", "Platform": "example string", "Version": "example string", "CreatedAt": "2026-01-01T00:00:00Z", "UpdatedAt": "2026-01-01T00:00:00Z", "Metadata": "example string", "SecurityToken": "example string", "ExpiresAt": "2026-01-01T00:00:00Z" }
3847
+ }
3848
+ ```
3849
+
3850
+ ---
3851
+
3852
+ ### `updateByEmail`
3853
+
3854
+ Update the given avatar using their email address. Only works for logged in users. Use Authenticate endpoint first to obtain a JWT Token.
3855
+
3856
+ **POST** `api/avatar/update-by-email/{email}`
3857
+
3858
+ Route parameters:
3859
+
3860
+ | Field | Type |
3861
+ | --- | --- |
3862
+ | `email` | `string` |
3863
+
3864
+ **Request**
3865
+
3866
+ Body type: `UpdateRequest`
3867
+
3868
+ | Field | Type |
3869
+ | --- | --- |
3870
+ | `Title` | `string` |
3871
+ | `FirstName` | `string` |
3872
+ | `LastName` | `string` |
3873
+ | `Username` | `string` |
3874
+
3875
+ **Response**
3876
+
3877
+ Standard `OASISResult` envelope (see top of this page) with:
3878
+
3879
+ `result` type: `IAvatar`
3880
+
3881
+ | Field | Type |
3882
+ | --- | --- |
3883
+ | `ProviderWallets` | `Dictionary<ProviderType, List<IProviderWallet>>` |
3884
+ | `ProviderPrivateKey` | `Dictionary<ProviderType, string>` |
3885
+ | `ProviderPublicKey` | `Dictionary<ProviderType, List<string>>` |
3886
+ | `ProviderUsername` | `Dictionary<ProviderType, string>` |
3887
+ | `ProviderWalletAddress` | `Dictionary<ProviderType, List<string>>` |
3888
+ | `AvatarId` | `Guid` |
3889
+ | `Title` | `string` |
3890
+ | `FirstName` | `string` |
3891
+ | `LastName` | `string` |
3892
+ | `FullName` | `string` |
3893
+ | `FullNameWithTitle` | `string` |
3894
+ | `Username` | `string` |
3895
+ | `Email` | `string` |
3896
+ | `Password` | `string` |
3897
+ | `AvatarType` | `EnumValue<AvatarType>` |
3898
+ | `AcceptTerms` | `bool` |
3899
+ | `IsVerified` | `bool` |
3900
+ | `JwtToken` | `string` |
3901
+ | `PasswordReset` | `DateTime?` |
3902
+ | `RefreshToken` | `string` |
3903
+ | `RefreshTokens` | `List<RefreshToken>` |
3904
+ | `ResetToken` | `string` |
3905
+ | `ResetTokenExpires` | `DateTime?` |
3906
+ | `VerificationToken` | `string` |
3907
+ | `Verified` | `DateTime?` |
3908
+ | `LastBeamedIn` | `DateTime?` |
3909
+ | `LastBeamedOut` | `DateTime?` |
3910
+ | `IsBeamedIn` | `bool` |
3911
+ | `Image2D` | `string` |
3912
+ | `Karma` | `int` |
3913
+ | `Level` | `int` |
3914
+ | `XP` | `int` |
3915
+
3916
+ **Example**
3917
+
3918
+ ```js
3919
+ const { isError, message, result } = await oasis.avatar.updateByEmail({
3920
+ email: '<email>',
3921
+ title: "example string",
3922
+ firstName: "example string",
3923
+ lastName: "example string",
3924
+ username: "example string"
3925
+ });
3926
+ if (isError) throw new Error(message);
3927
+ console.log(result);
3928
+ ```
3929
+
3930
+ Example response:
3931
+
3932
+ ```json
3933
+ {
3934
+ "isError": false,
3935
+ "message": "",
3936
+ "result": { "ProviderWallets": { "<ProviderType>": [{ "AvatarId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "WalletId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "Name": "example string", "Description": /* <new string> */, "PrivateKey": "example string", "PublicKey": "example string", "WalletAddress": "example string", "WalletAddressSegwitP2SH": "example string", "SecretRecoveryPhrase": "example string", "Transactions": [{ "TransactionId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "FromWalletAddress": "example string", "ToWalletAddress": "example string", "Amount": 1.0, "Description": "example string", "CreatedDate": "2026-01-01T00:00:00Z", "TransactionType": { }, "TransactionCategory": { } }], "ProviderType": { }, "Balance": 1.0, "IsDefaultWallet": true }] }, "ProviderPrivateKey": { "<ProviderType>": "example string" }, "ProviderPublicKey": { "<ProviderType>": ["example string"] }, "ProviderUsername": { "<ProviderType>": "example string" }, "ProviderWalletAddress": { "<ProviderType>": ["example string"] }, "AvatarId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "Title": "example string", "FirstName": "example string", "LastName": "example string", "FullName": "example string", "FullNameWithTitle": "example string", "Username": "example string", "Email": "example string", "Password": "example string", "AvatarType": { "Score": 1.0 }, "AcceptTerms": true, "IsVerified": true, "JwtToken": "example string", "PasswordReset": "2026-01-01T00:00:00Z", "RefreshToken": "example string", "RefreshTokens": [{ "Id": 1, "Avatar": {}, "Token": "example string", "Expires": "2026-01-01T00:00:00Z", "Created": "2026-01-01T00:00:00Z", "CreatedByIp": "example string", "Revoked": "2026-01-01T00:00:00Z", "RevokedByIp": "example string", "ReplacedByToken": "example string" }], "ResetToken": "example string", "ResetTokenExpires": "2026-01-01T00:00:00Z", "VerificationToken": "example string", "Verified": "2026-01-01T00:00:00Z", "LastBeamedIn": "2026-01-01T00:00:00Z", "LastBeamedOut": "2026-01-01T00:00:00Z", "IsBeamedIn": true, "Image2D": "example string", "Karma": 1, "Level": 1, "XP": 1 }
3937
+ }
3938
+ ```
3939
+
3940
+ ---
3941
+
3942
+ ### `updateByUsername`
3943
+
3944
+ Update the given avatar using their username. Only works for logged in users. Use Authenticate endpoint first to obtain a JWT Token.
3945
+
3946
+ **POST** `api/avatar/update-by-username/{username}`
3947
+
3948
+ Route parameters:
3949
+
3950
+ | Field | Type |
3951
+ | --- | --- |
3952
+ | `username` | `string` |
3953
+
3954
+ **Request**
3955
+
3956
+ Body type: `UpdateRequest`
3957
+
3958
+ | Field | Type |
3959
+ | --- | --- |
3960
+ | `Title` | `string` |
3961
+ | `FirstName` | `string` |
3962
+ | `LastName` | `string` |
3963
+ | `Username` | `string` |
3964
+
3965
+ **Response**
3966
+
3967
+ Standard `OASISResult` envelope (see top of this page) with:
3968
+
3969
+ `result` type: `IAvatar`
3970
+
3971
+ | Field | Type |
3972
+ | --- | --- |
3973
+ | `ProviderWallets` | `Dictionary<ProviderType, List<IProviderWallet>>` |
3974
+ | `ProviderPrivateKey` | `Dictionary<ProviderType, string>` |
3975
+ | `ProviderPublicKey` | `Dictionary<ProviderType, List<string>>` |
3976
+ | `ProviderUsername` | `Dictionary<ProviderType, string>` |
3977
+ | `ProviderWalletAddress` | `Dictionary<ProviderType, List<string>>` |
3978
+ | `AvatarId` | `Guid` |
3979
+ | `Title` | `string` |
3980
+ | `FirstName` | `string` |
3981
+ | `LastName` | `string` |
3982
+ | `FullName` | `string` |
3983
+ | `FullNameWithTitle` | `string` |
3984
+ | `Username` | `string` |
3985
+ | `Email` | `string` |
3986
+ | `Password` | `string` |
3987
+ | `AvatarType` | `EnumValue<AvatarType>` |
3988
+ | `AcceptTerms` | `bool` |
3989
+ | `IsVerified` | `bool` |
3990
+ | `JwtToken` | `string` |
3991
+ | `PasswordReset` | `DateTime?` |
3992
+ | `RefreshToken` | `string` |
3993
+ | `RefreshTokens` | `List<RefreshToken>` |
3994
+ | `ResetToken` | `string` |
3995
+ | `ResetTokenExpires` | `DateTime?` |
3996
+ | `VerificationToken` | `string` |
3997
+ | `Verified` | `DateTime?` |
3998
+ | `LastBeamedIn` | `DateTime?` |
3999
+ | `LastBeamedOut` | `DateTime?` |
4000
+ | `IsBeamedIn` | `bool` |
4001
+ | `Image2D` | `string` |
4002
+ | `Karma` | `int` |
4003
+ | `Level` | `int` |
4004
+ | `XP` | `int` |
4005
+
4006
+ **Example**
4007
+
4008
+ ```js
4009
+ const { isError, message, result } = await oasis.avatar.updateByUsername({
4010
+ username: "example string",
4011
+ title: "example string",
4012
+ firstName: "example string",
4013
+ lastName: "example string"
4014
+ });
4015
+ if (isError) throw new Error(message);
4016
+ console.log(result);
4017
+ ```
4018
+
4019
+ Example response:
4020
+
4021
+ ```json
4022
+ {
4023
+ "isError": false,
4024
+ "message": "",
4025
+ "result": { "ProviderWallets": { "<ProviderType>": [{ "AvatarId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "WalletId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "Name": "example string", "Description": /* <new string> */, "PrivateKey": "example string", "PublicKey": "example string", "WalletAddress": "example string", "WalletAddressSegwitP2SH": "example string", "SecretRecoveryPhrase": "example string", "Transactions": [{ "TransactionId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "FromWalletAddress": "example string", "ToWalletAddress": "example string", "Amount": 1.0, "Description": "example string", "CreatedDate": "2026-01-01T00:00:00Z", "TransactionType": { }, "TransactionCategory": { } }], "ProviderType": { }, "Balance": 1.0, "IsDefaultWallet": true }] }, "ProviderPrivateKey": { "<ProviderType>": "example string" }, "ProviderPublicKey": { "<ProviderType>": ["example string"] }, "ProviderUsername": { "<ProviderType>": "example string" }, "ProviderWalletAddress": { "<ProviderType>": ["example string"] }, "AvatarId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "Title": "example string", "FirstName": "example string", "LastName": "example string", "FullName": "example string", "FullNameWithTitle": "example string", "Username": "example string", "Email": "example string", "Password": "example string", "AvatarType": { "Score": 1.0 }, "AcceptTerms": true, "IsVerified": true, "JwtToken": "example string", "PasswordReset": "2026-01-01T00:00:00Z", "RefreshToken": "example string", "RefreshTokens": [{ "Id": 1, "Avatar": {}, "Token": "example string", "Expires": "2026-01-01T00:00:00Z", "Created": "2026-01-01T00:00:00Z", "CreatedByIp": "example string", "Revoked": "2026-01-01T00:00:00Z", "RevokedByIp": "example string", "ReplacedByToken": "example string" }], "ResetToken": "example string", "ResetTokenExpires": "2026-01-01T00:00:00Z", "VerificationToken": "example string", "Verified": "2026-01-01T00:00:00Z", "LastBeamedIn": "2026-01-01T00:00:00Z", "LastBeamedOut": "2026-01-01T00:00:00Z", "IsBeamedIn": true, "Image2D": "example string", "Karma": 1, "Level": 1, "XP": 1 }
4026
+ }
4027
+ ```
4028
+
4029
+ ---
4030
+
4031
+ ### `uploadAvatarPortrait`
4032
+
4033
+ Upload's the avatar's portrait (2D Image), which is displayed on the web portal or on web OApp's. Only works for logged in users. Use Authenticate endpoint first to obtain a JWT Token.
4034
+
4035
+ **POST** `api/avatar/upload-avatar-portrait`
4036
+
4037
+ **Request**
4038
+
4039
+ Body type: `AvatarPortrait`
4040
+
4041
+ | Field | Type |
4042
+ | --- | --- |
4043
+ | `AvatarId` | `Guid` |
4044
+ | `Username` | `string` |
4045
+ | `Email` | `string` |
4046
+ | `ImageBase64` | `string` |
4047
+
4048
+ **Response**
4049
+
4050
+ Standard `OASISResult` envelope (see top of this page) with:
4051
+
4052
+ `result` type: `bool`
4053
+
4054
+ **Example**
4055
+
4056
+ ```js
4057
+ const { isError, message, result } = await oasis.avatar.uploadAvatarPortrait({
4058
+ avatarId: "3fa85f64-5717-4562-b3fc-2c963f66afa6",
4059
+ username: "example string",
4060
+ email: "example string",
4061
+ imageBase64: "example string"
4062
+ });
4063
+ if (isError) throw new Error(message);
4064
+ console.log(result);
4065
+ ```
4066
+
4067
+ Example response:
4068
+
4069
+ ```json
4070
+ {
4071
+ "isError": false,
4072
+ "message": "",
4073
+ "result": true
4074
+ }
4075
+ ```
4076
+
4077
+ ---
4078
+
4079
+ ### `validateResetToken`
4080
+
4081
+ Call this method passing in the reset token received in the forgotten password email after first calling the avatar/forgot-password method.
4082
+
4083
+ **POST** `api/avatar/validate-reset-token`
4084
+
4085
+ **Request**
4086
+
4087
+ Body type: `ValidateResetTokenRequest`
4088
+
4089
+ | Field | Type |
4090
+ | --- | --- |
4091
+ | `Token` | `string` |
4092
+
4093
+ **Response**
4094
+
4095
+ Standard `OASISResult` envelope (see top of this page) with:
4096
+
4097
+ `result` type: `string`
4098
+
4099
+ **Example**
4100
+
4101
+ ```js
4102
+ const { isError, message, result } = await oasis.avatar.validateResetToken({
4103
+ token: "example string"
4104
+ });
4105
+ if (isError) throw new Error(message);
4106
+ console.log(result);
4107
+ ```
4108
+
4109
+ Example response:
4110
+
4111
+ ```json
4112
+ {
4113
+ "isError": false,
4114
+ "message": "",
4115
+ "result": "example string"
4116
+ }
4117
+ ```
4118
+
4119
+ ---
4120
+
4121
+ ### `verifyEmail`
4122
+
4123
+ Verify a newly created avatar by passing in the validation token sent in the verify email. This method is used by the link in the email.
4124
+
4125
+ **GET** `api/avatar/verify-email`
4126
+
4127
+ **Request**
4128
+
4129
+ Query parameters:
4130
+
4131
+ | Field | Type |
4132
+ | --- | --- |
4133
+ | `token` | `string` |
4134
+
4135
+ **Response**
4136
+
4137
+ Standard `OASISResult` envelope (see top of this page) with:
4138
+
4139
+ `result` type: `bool`
4140
+
4141
+ **Example**
4142
+
4143
+ ```js
4144
+ const { isError, message, result } = await oasis.avatar.verifyEmail({
4145
+ token: 'example string'
4146
+ });
4147
+ if (isError) throw new Error(message);
4148
+ console.log(result);
4149
+ ```
4150
+
4151
+ Example response:
4152
+
4153
+ ```json
4154
+ {
4155
+ "isError": false,
4156
+ "message": "",
4157
+ "result": true
4158
+ }
4159
+ ```
4160
+