{"openapi":"3.0.0","paths":{"/auth/otp/init":{"post":{"operationId":"AuthController_otpInit","summary":"Create Connection Code","description":"Creates a connection code to authenticate Upland Users within a third-party application. The Upland User must submit this code into her Upland Account to complete the authorization flow.","parameters":[],"responses":{"201":{"description":"Connection code response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OtpInitResposeDto"}}}},"404":{"description":"Application not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HttpErrorDto"}}}}},"tags":["Authentication"],"security":[{"basic":[]}]}},"/user/assets/nfts":{"get":{"operationId":"UserController_getNfts","summary":"List user's NFTs","description":"Retrieves a paginated list of user's NFTs.","parameters":[{"name":"currentPage","required":true,"in":"query","schema":{"type":"number"}},{"name":"pageSize","required":true,"in":"query","schema":{"type":"number"}},{"name":"categories","required":false,"in":"query","description":"Filter by NFT Categories (structure, blkexplorer, essential, memento, structornmt, landvehicle, spirithlwn, outdoordecor, jacktsai)","schema":{"type":"array","items":{"type":"array","items":{"type":"a"}}}},{"name":"textSearch","required":false,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserNftsListResponseDto"}}}}},"tags":["Upland User"],"security":[{"bearer":[]}]}},"/user/assets/properties":{"get":{"operationId":"UserController_getProperties","summary":"List user's properties","description":"Retrieves a paginated list of user's properties.","parameters":[{"name":"currentPage","required":true,"in":"query","schema":{"type":"number"}},{"name":"pageSize","required":true,"in":"query","schema":{"type":"number"}},{"name":"cityId","required":false,"in":"query","schema":{"type":"number"}},{"name":"textSearch","required":false,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserPropertiesListResponseDto"}}}}},"tags":["Upland User"],"security":[{"bearer":[]}]}},"/user/balances":{"get":{"operationId":"UserController_getBalances","summary":"Get user's balances","description":"Retrieves user's balances information.","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserBalancesResponseDto"}}}}},"tags":["Upland User"],"security":[{"bearer":[]}]}},"/user/join":{"post":{"operationId":"UserController_putAssetsInEscrowContainer","summary":"Join escrow container","description":"Adds user's assets into the container. This action must be approved by the Upland user inside the Upland Application.","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserJoinContainerRequestDto"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JoinContainerResponseDto"}}}}},"tags":["Upland User"],"security":[{"bearer":[]}]}},"/user/profile":{"get":{"operationId":"UserController_getUserProfile","summary":"Get user's profile","description":"Retrieves user's profile information.","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserProfileResponseDto"}}}}},"tags":["Upland User"],"security":[{"bearer":[]}]}},"/user/travels":{"get":{"operationId":"UserController_getTravels","summary":"List user's travels","description":"Retrieves a paginated list of user's travels.","parameters":[{"name":"currentPage","required":true,"in":"query","schema":{"type":"number"}},{"name":"pageSize","required":true,"in":"query","schema":{"type":"number"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserTravelsListResponseDto"}}}}},"tags":["Upland User"],"security":[{"bearer":[]}]}},"/containers":{"post":{"operationId":"EscrowController_create","summary":"Create escrow container","description":"Creates a new escrow container to manage the Upland asset transfers in the application context. The application settings will be used to determine the container expiration time and Webhook URL for the container transaction status notifications. In case a dev shop ID is provided, users will be required to be at that specific dev shop in order to transfer their assets to the container; otherwise, they can be at any of the app's dev shops.","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateContainerRequestDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContainerResponseDto"}}}}},"tags":["Escrow Containers"],"security":[{"basic":[]}]}},"/containers/{containerId}":{"get":{"operationId":"EscrowController_getContainer","summary":"Get escrow container","description":"Retrieves the escrow container information.","parameters":[{"name":"containerId","required":true,"in":"path","schema":{"type":"number"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContainerWithAssetsResponseDto"}}}}},"tags":["Escrow Containers"],"security":[{"basic":[]}]}},"/containers/{containerId}/join":{"post":{"operationId":"EscrowController_putAssetsInEscrowContainerWithPermissionDelegation","summary":"Join escrow container (permission delegation required)","description":"Adds developer Upland account assets into the container (no signature required). It is required to activate the permission delegation feature.","parameters":[{"name":"containerId","required":true,"in":"path","schema":{"type":"number"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/JoinContainerRequestDto"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JoinContainerResponseDto"}}}}},"tags":["Escrow Containers"],"security":[{"basic":[]}]}},"/containers/{containerId}/lock":{"post":{"operationId":"EscrowController_lockContainer","summary":"Lock escrow container","description":"Locks the escrow container blocking new users from joining it. This action is optional in the escrow container management flow.","parameters":[{"name":"containerId","required":true,"in":"path","schema":{"type":"number"}}],"responses":{"204":{"description":""}},"tags":["Escrow Containers"],"security":[{"basic":[]}]}},"/containers/{containerId}/unlock":{"post":{"operationId":"EscrowController_unlockContainer","summary":"Unlock escrow container","description":"Unlocks the escrow container allowing new users from joining it. This action is optional in the escrow container management flow.","parameters":[{"name":"containerId","required":true,"in":"path","schema":{"type":"number"}}],"responses":{"204":{"description":""}},"tags":["Escrow Containers"],"security":[{"basic":[]}]}},"/containers/{containerId}/refresh-expiration-time":{"post":{"operationId":"EscrowController_refresh","summary":"Refresh escrow container expiration time","description":"Refreshes the container expiration using the application settings. This action can only be performed once.","parameters":[{"name":"containerId","required":true,"in":"path","schema":{"type":"number"}}],"responses":{"204":{"description":""}},"tags":["Escrow Containers"],"security":[{"basic":[]}]}},"/containers/{containerId}/refund":{"post":{"operationId":"EscrowController_refund","summary":"Refund escrow container","description":"Refunds all the assets inside the container to the original owners (no fees) and resolves the container.","parameters":[{"name":"containerId","required":true,"in":"path","schema":{"type":"number"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContainerResolutionResponseDto"}}}}},"tags":["Escrow Containers"],"security":[{"basic":[]}]}},"/containers/{containerId}/resolve":{"post":{"operationId":"EscrowController_resolve","summary":"Resolve escrow container","description":"Resolves the escrow container transfering the assets according to the provided actions (request body). All container assets must be included.","parameters":[{"name":"containerId","required":true,"in":"path","schema":{"type":"number"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContainerResolutionRequestDto"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContainerResolutionResponseDto"}}}}},"tags":["Escrow Containers"],"security":[{"basic":[]}]}},"/containers/{containerId}/transactions/{transactionId}":{"delete":{"operationId":"EscrowController_removeTransaction","summary":"Remove escrow container transaction","description":"Removes the transaction that has not been signed from escrow container.","parameters":[{"name":"containerId","required":true,"in":"path","schema":{"type":"number"}},{"name":"transactionId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"204":{"description":""}},"tags":["Escrow Containers"],"security":[{"basic":[]}]}},"/tracks":{"get":{"operationId":"TracksController_getTracks","summary":"List tracks","description":"Retrieves a list of all available race tracks.","parameters":[{"name":"cityName","required":false,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TracksListResponseDto"}}}},"404":{"description":"Tracks not found."}},"tags":["Generic"],"security":[{"basic":[]}]}},"/tracks/{id}":{"get":{"operationId":"TracksController_getTrackById","summary":"Get track","description":"Retrieves the full track information.","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"number"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TrackWithDetailsResponseDto"}}}},"400":{"description":"Bad request or invalid query parameters"},"404":{"description":"Track not found."}},"tags":["Generic"],"security":[{"basic":[]}]}},"/tracks/{id}/buildings":{"get":{"operationId":"TracksController_getTrackBuildingsById","summary":"Get track buildings","description":"Retrieves all the buildings along the track.","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"number"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BuildingsListResponseDto"}}}},"404":{"description":"Buildings not found."}},"tags":["Generic"],"security":[{"basic":[]}]}},"/buildings":{"post":{"operationId":"BuildingsController_getBuildingsByBoundaries","summary":"Search for buildings","description":"Retrieves a list of completed buildings based on a given location (polygon bondaries).","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BuildingsRequestDto"}}}},"responses":{"200":{"description":"Buildings List","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BuildingsListResponseDto"}}}}},"tags":["Generic"],"security":[{"basic":[]}]}},"/cities":{"get":{"operationId":"CitiesController_getCities","summary":"List available cities","description":"Retrieves a list of all the Upland metaverse available cities.","parameters":[],"responses":{"200":{"description":"Cities list","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CitiesListResponseDto"}}}}},"tags":["Generic"],"security":[{"basic":[]}]}},"/properties":{"get":{"operationId":"PropertiesController_getProperties","summary":"List properties (Deprecated)","description":"Retrieves a list of properties by filtering query params.","deprecated":true,"parameters":[{"name":"cityId","required":true,"in":"query","schema":{"type":"number"}},{"name":"textSearch","required":false,"in":"query","schema":{"type":"string"}},{"name":"currentPage","required":true,"in":"query","schema":{"type":"number"}},{"name":"pageSize","required":true,"in":"query","schema":{"type":"number"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PropertiesListResponseDto"}}}}},"tags":["Generic"],"security":[{"basic":[]}]}},"/v2/properties":{"get":{"operationId":"PropertiesController_getPropertiesWithNextPagePagination","summary":"List properties","description":"Retrieves a list of properties by filtering query params using next page token pagination.","parameters":[{"name":"cityId","required":true,"in":"query","schema":{"type":"number"}},{"name":"textSearch","required":false,"in":"query","schema":{"type":"string"}},{"name":"pageSize","required":true,"in":"query","example":10,"schema":{"type":"number"}},{"name":"nextPageToken","required":false,"in":"query","example":"Nzg4NDAwOTkyMDAwMzg=","description":"Token provided after the initial request to fetch subsequent pages","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PropertiesListWithNextPagePaginationResponseDto"}}}}},"tags":["Generic"],"security":[{"basic":[]}]}},"/properties/{propertyId}":{"get":{"operationId":"PropertiesController_getPropertyById","summary":"Get property","description":"Retrieves the property information.","parameters":[{"name":"propertyId","required":true,"in":"path","schema":{"type":"number"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PropertyResponseDto"}}}}},"tags":["Generic"],"security":[{"basic":[]}]}},"/neighborhoods":{"get":{"operationId":"NeighborhoodsController_getNeighborhoods","summary":"List neighborhoods","description":"Retrieves a list of neighborhoods by filtering query params.","parameters":[{"name":"cityId","required":false,"in":"query","description":"(Optional) Filter by City ID","example":1,"schema":{"title":"City ID","type":"number"}},{"name":"textSearch","required":false,"in":"query","description":"(Optional) Text search on neighborhood name","example":"South","schema":{"title":"Text Search","type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NeighborhoodsListResponseDto"}}}}},"tags":["Generic"],"security":[{"basic":[]}]}},"/collections":{"get":{"operationId":"CollectionsController_getCollections","summary":"List collections","description":"Retrieves a list of all the Upland available asset collections.","parameters":[],"responses":{"200":{"description":"Collections List","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CollectionsListResponseDto"}}}}},"tags":["Generic"],"security":[{"basic":[]}]}},"/treasures-history":{"get":{"operationId":"TreasuresController_getTreasuresHistory","summary":"List treasures history","description":"Retrieves a paginated list of treasures history.","parameters":[{"name":"currentPage","required":true,"in":"query","schema":{"type":"number"}},{"name":"pageSize","required":true,"in":"query","schema":{"type":"number"}},{"name":"cityId","required":false,"in":"query","description":"Filter by city ID","example":1,"schema":{"title":"City ID","type":"number"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TreasuresHistoryListResponseDto"}}}}},"tags":["Generic"],"security":[{"basic":[]}]}},"/devshops":{"get":{"operationId":"DevShopsController_getDevShopsByApplication","summary":"List dev shops","description":"Retrieves a list of all the authenticated app dev shops.","parameters":[],"responses":{"200":{"description":"Dev Shops List","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DevShopsListResponseDto"}}}}},"tags":["Dev Shops"],"security":[{"basic":[]}]}},"/devshops/{devShopId}/check-user-intersection/{userId}":{"get":{"operationId":"DevShopsController_getUserDevshopIntersectionChecking","summary":"Check user and dev shop intersection","description":"Checks if the user is in the dev shop range.","parameters":[{"name":"devShopId","required":true,"in":"path","schema":{"type":"string"}},{"name":"userId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"Check user dev shop intersection","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserDevShopIntersectionCheckResponseDto"}}}}},"tags":["Dev Shops"],"security":[{"basic":[]}]}},"/sends":{"get":{"operationId":"SendsController_getSends","summary":"List sends","description":"Retrieves a list of sends by city.","parameters":[{"name":"currentPage","required":true,"in":"query","schema":{"type":"number"}},{"name":"pageSize","required":true,"in":"query","schema":{"type":"number"}},{"name":"cityId","required":true,"in":"query","description":"Filter by city ID","example":1,"schema":{"title":"City ID","type":"number"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendsListResponseDto"}}}}},"tags":["Generic"],"security":[{"basic":[]}]}},"/app-usage/webhook-calls":{"get":{"operationId":"AppUsageController_findWebhookCalls","summary":"App Webhook calls","description":"Retrieves app webhook calls history. Available for data from the last three months of use.","parameters":[{"name":"startDate","required":true,"in":"query","description":"Start date to filter the history","example":"2023-05-10","schema":{"title":"Start date","format":"date-time","type":"string"}},{"name":"endDate","required":true,"in":"query","description":"End date to filter the history","example":"2023-05-10","schema":{"title":"End date","format":"date-time","type":"string"}},{"name":"notificationType","required":false,"in":"query","description":"(Optional) Available notification type","example":"TransactionFromEscrowFailure","schema":{"title":"Notification type","enum":["AuthenticationSuccess","AuthenticationFailure","ContainerExpired","RumbleTournamentNewParticipantAdded","RumbleTournamentParticipantStatusUpdated","RumbleTournamentClosed","RumbleTournamentCanceled","RumbleTournamentStatusUpdated","TransactionToEscrowCreated","TransactionToEscrowExpired","TransactionToEscrowSigned","TransactionToEscrowRejected","TransactionToEscrowFinal","TransactionToEscrowFailure","TransactionFromEscrowCreated","TransactionFromEscrowFinal","TransactionFromEscrowFailure","UserDisconnectedApplication"],"type":"string"}},{"name":"isSuccess","required":false,"in":"query","description":"(Optional) Usage in case of the attempted was succeeded","example":true,"schema":{"title":"Is Success","type":"boolean"}},{"name":"containerId","required":false,"in":"query","description":"(Optional) Applied only for notification types associated to container actions","example":12,"schema":{"title":"Container Id","type":"number"}},{"name":"currentPage","required":true,"in":"query","schema":{"type":"number"}},{"name":"pageSize","required":true,"in":"query","schema":{"type":"number"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppWebhookCallsResponseDto"}}}}},"tags":["Application Usage"],"security":[{"basic":[]}]}},"/rumble-tournament-settings":{"get":{"operationId":"RumbleTournamentSettingsController_findRumbleTournamentSettings","summary":"List rumble tournament settings","description":"Retrieves a list of rumble tournament settings by filtering query params.","parameters":[{"name":"currentPage","required":true,"in":"query","schema":{"type":"number"}},{"name":"pageSize","required":true,"in":"query","schema":{"type":"number"}},{"name":"maxParticipants","required":false,"in":"query","schema":{"type":"number"}},{"name":"minParticipants","required":false,"in":"query","schema":{"type":"number"}},{"name":"status","required":false,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FindRumbleTournamentSettingsListResponseDto"}}}}},"tags":["Tournaments"],"security":[{"basic":[]}]},"post":{"operationId":"RumbleTournamentSettingsController_createRumbleTournamentSettings","summary":"Create rumble tournament settings","description":"Creates a new rumble tournament settings.","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateRumbleTournamentSettingsRequestDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RumbleTournamentSettingsResponseDto"}}}}},"tags":["Tournaments"],"security":[{"basic":[]}]}},"/rumble-tournament-settings/{id}":{"get":{"operationId":"RumbleTournamentSettingsController_getRumbleTournamentSettings","summary":"Get rumble tournament settings","description":"Retrieves the rumble tournament settings informations.","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RumbleTournamentSettingsResponseDto"}}}}},"tags":["Tournaments"],"security":[{"basic":[]}]},"patch":{"operationId":"RumbleTournamentSettingsController_editRumbleTournamentSettings","summary":"Edit rumble tournament settings","description":"Edits a rumble tournament settings instance.","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EditRumbleTournamentSettingsRequestDto"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RumbleTournamentSettingsResponseDto"}}}}},"tags":["Tournaments"],"security":[{"basic":[]}]}},"/rumble-tournaments":{"post":{"operationId":"RumbleTournamentsController_create","summary":"Create new rumble tournament","description":"Creates a new rumble tournament for the application. It is required to have an active rumble tournament settings in place.","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateRumbleTournamentRequestDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RumbleTournamentResponseDto"}}}}},"tags":["Tournaments"],"security":[{"basic":[]}]}},"/rumble-tournaments/{id}/start":{"patch":{"operationId":"RumbleTournamentsController_startTournament","summary":"Start a rumble tournament","description":"Start a rumble tournament for the application. Requires the minimum configuration participants.","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"204":{"description":""}},"tags":["Tournaments"],"security":[{"basic":[]}]}},"/rumble-tournaments/{id}/scores":{"post":{"operationId":"RumbleTournamentsController_registerScores","summary":"Register participant scores for a rumble tournament","description":"Register the scores of a list of participants. It is not required to send all the participant's scores at once.","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RegisterRumbleTournamentScoresRequestDto"}}}},"responses":{"204":{"description":""}},"tags":["Tournaments"],"security":[{"basic":[]}]}},"/rumble-tournaments/{id}/resolve":{"post":{"operationId":"RumbleTournamentsController_resolveTournament","summary":"Resolve rumble tournament","description":"Finish the tournament and start the resolution process. You must provide all scores before it or use the forceResolutionWithNullScore flag to force the resolution process.","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResolveRumbleTournamentRequestDto"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScoreboardResponseDto"}}}}},"tags":["Tournaments"],"security":[{"basic":[]}]}},"/rumble-tournaments/{id}/cancel":{"post":{"operationId":"RumbleTournamentsController_cancelTournament","summary":"Cancel rumble tournament","description":"Cancel the tournament and return the assets to each original owner.","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Tournaments"],"security":[{"basic":[]}]}},"/rumble-tournaments/{id}":{"get":{"operationId":"RumbleTournamentsController_findRumbleTournament","summary":"Find rumble tournament","description":"Find a rumble tournament for the application.","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RumbleTournamentResponseDto"}}}}},"tags":["Tournaments"],"security":[{"basic":[]}]}},"/rumble-tournaments/{id}/join":{"post":{"operationId":"RumbleTournamentsController_join","summary":"Join a rumble tournament","description":"Join a specific user into a rumble tournament.","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"204":{"description":""}},"tags":["Tournaments"],"security":[{"bearer":[]}]}},"/rumble-tournaments/{id}/close-registration":{"patch":{"operationId":"RumbleTournamentsController_closeRumbleTournamentRegistration","summary":"Close a rumble tournament registration","description":"Closes a rumble tournament registration, blocking new users to join into it.","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"204":{"description":""}},"tags":["Tournaments"],"security":[{"basic":[]}]}},"/rumble-tournaments/{id}/prize-distribution":{"get":{"operationId":"RumbleTournamentsController_getRumbleTournamentCurrentPrizeDistribution","summary":"Find rumble tournament current prize distribution","description":"Find the current prize distribution of a rumble tournament.","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetRumbleTournamentCurrentPrizeDistributionResponseDto"}}}}},"tags":["Tournaments"],"security":[{"basic":[]}]}},"/rumble-tournaments/{id}/participants":{"get":{"operationId":"RumbleTournamentsController_findRumbleTournamentParticipants","summary":"Get rumble tournament participants list","description":"Gets the rumble tournament participants list.","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}},{"name":"currentPage","required":true,"in":"query","schema":{"type":"number"}},{"name":"pageSize","required":true,"in":"query","schema":{"type":"number"}},{"name":"status","required":false,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FindRumbleTournamentParticipantsListResponseDto"}}}}},"tags":["Tournaments"],"security":[{"basic":[]}]}},"/rumble-tournaments/{id}/participants/{userId}":{"get":{"operationId":"RumbleTournamentsController_getRumbleTournamentParticipantInfo","summary":"Find rumble tournament participant information","description":"Find the rumble tournament participant information.","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}},{"name":"userId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RumbleTournamentParticipantResponseDto"}}}}},"tags":["Tournaments"],"security":[{"basic":[]}]}},"/rumble-tournaments/{id}/scoreboard":{"get":{"operationId":"RumbleTournamentsController_getRumbleTournamentScoreboard","summary":"Find rumble tournament scoreboard","description":"Find the rumble tournament result with the prize distribution.","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScoreboardResponseDto"}}}}},"tags":["Tournaments"],"security":[{"basic":[]}]}}},"info":{"title":"Upland Developers API","description":"You can use the developer API to map user IDs, read information, and manage your app escrow container.","version":"1.0.0","contact":{}},"tags":[],"servers":[{"url":"https://api.sandbox.upland.me/developers-api"}],"components":{"securitySchemes":{"basic":{"type":"http","scheme":"basic","description":"Basic access authentication is a method to provide a username and password when making a request. In basic HTTP authentication, a request contains a header field in the form of (Authorization: Basic [credential]), where credentials is the Base64 encoding of ID and password joined by a single colon :. For our case, you must consider Username as app ID and password as secret key (this information can be generated in endpoint to create application)."},"bearer":{"type":"http","scheme":"bearer","description":"You must provide a Code to your users generated across the endpoint /auth/opt/init. When Upland User grants access for the developer App, a webhook will be sent with a valid access token."}},"schemas":{"OtpInitResposeDto":{"type":"object","properties":{"code":{"type":"string","description":"Connection code","example":"8JGXBU9G87","title":"Code"},"expireAt":{"format":"date-time","type":"string","description":"Code expiration date","example":"2023-06-14T13:41:22.364Z","title":"Expire At"}},"required":["code","expireAt"]},"HttpErrorDto":{"type":"object","properties":{"message":{"type":"string","title":"Message","description":"The cause of the Error"},"statusCode":{"type":"number","title":"Status Code","description":"Status code of the Error"},"error":{"type":"string","title":"Error","description":"(Optional) Name of the Error"}},"required":["message","statusCode"]},"LandVehicleLODResponseDto":{"type":"object","properties":{"level":{"type":"number","description":"Level of Detail (0, 1, or 2)","example":1,"title":"Level"},"modelUrl":{"type":"string","description":"Vehicle model URL","example":"https://image.upland.me/3d-models/cars/56/225/233/lods/0/model.gltf","title":"Model URL"},"textureUrl":{"type":"string","description":"Vehicle texture URL","example":"https://image.upland.me/3d-models/cars/66/41/21/4/lods/0/texture.jpg","title":"Texture URL"}},"required":["level","modelUrl","textureUrl"]},"LandVehicleAttributeResponseDto":{"type":"object","properties":{"name":{"type":"string","description":"Vehicle Property Name (Weight, Horsepower, Speed Rating, Acceleration, Braking, Handling, Energy Efficiency Rating, Reliability Rating, Durability Rating, Offroad Rating)","example":"Horsepower","title":"Vehicle Property Name"},"value":{"type":"number","description":"Property Value","example":10,"title":"Value"},"unit":{"type":"string","description":"(Optional) Property Unit","example":"hp","title":"Unit"}},"required":["name","value"]},"LandVehicleMetadataResponseDto":{"type":"object","properties":{"textureUrl":{"type":"string","deprecated":true,"description":"Vehicle texture URL (This field will be removed on the future versions. You can use the lods property to get more detailed information)","example":"https://image.upland.me/3d-models/cars/66/41/21/4/lods/0/texture.jpg","title":"Texture URL"},"lods":{"description":"List of Car's LODs","title":"LODs","type":"array","items":{"$ref":"#/components/schemas/LandVehicleLODResponseDto"}},"attributes":{"description":"List of Car's Attributes","title":"Attributes","type":"array","items":{"$ref":"#/components/schemas/LandVehicleAttributeResponseDto"}}},"required":["textureUrl","lods","attributes"]},"UserNftResponseDto":{"type":"object","properties":{"id":{"type":"number","description":"NFT ID","example":1,"title":"ID"},"category":{"type":"string","description":"NFT category","examples":["structure","blkexplorer","essential","memento","structornmt","landvehicle","spirithlwn","outdoordecor","jacktsai"],"title":"Category"},"name":{"type":"string","description":"NFT name","default":"townhouse"},"displayName":{"type":"string","description":"(Optional) NFT display name","example":"Micro House - Eldritch Zombie","title":"Display name"},"rarityLevel":{"type":"string","description":"(Optional) NFT rarity level","example":"townhouse","title":"Rarity level"},"thumbnail":{"type":"string","description":"NFT thumbnail URL","example":"https://any-url.upland.me","title":"Thumbnail"},"mintNumber":{"type":"number","description":"NFT mint number","example":1,"title":"Mint number"},"modelUrl":{"type":"string","description":"(Optional) Model URL - applies only to cars","example":"https://image.upland.me/3d-models/cars/56/225/233/lods/0/model.gltf","title":"Model URL"},"metadata":{"description":"(Optional) Metadata object with specific information for each category","oneOf":[{"$ref":"#/components/schemas/LandVehicleMetadataResponseDto"}],"title":"Metadata"}},"required":["id","category","name","thumbnail","mintNumber"]},"UserNftsListResponseDto":{"type":"object","properties":{"currentPage":{"type":"number","description":"Current page","example":1,"title":"Current page"},"pageSize":{"type":"number","description":"Total results per page","example":10,"title":"Page size"},"totalResults":{"type":"number","description":"(Optional) Total of results","example":200,"title":"Total results"},"results":{"description":"List of User's NFTs","title":"Results","type":"array","items":{"$ref":"#/components/schemas/UserNftResponseDto"}}},"required":["currentPage","pageSize","results"]},"CityResponseDto":{"type":"object","properties":{"id":{"type":"number","description":"City ID","default":1,"title":"ID"},"name":{"type":"string","description":"City name","example":"Manhattan","title":"Name"}},"required":["id","name"]},"NeighborhoodResponseDto":{"type":"object","properties":{"id":{"type":"number","description":"Neighborhood ID","example":1,"title":"ID"},"name":{"type":"string","description":"Neighborhood name","example":"ALAMO SQUARE","title":"Name"}},"required":["id","name"]},"CollectionResponseDto":{"type":"object","properties":{"id":{"type":"number","description":"Collection ID","example":1,"title":"ID"},"name":{"type":"string","description":"Collection name","example":"Newbie","title":"Name"}},"required":["id","name"]},"UserPropertyResponseDto":{"type":"object","properties":{"id":{"type":"number","description":"Property ID","example":1,"title":"ID"},"address":{"type":"string","description":"Property address","example":"1467 28TH AVE","title":"Address"},"city":{"description":"Property city","title":"City","allOf":[{"$ref":"#/components/schemas/CityResponseDto"}]},"neighborhood":{"description":"Property neighborhood","title":"Neighborhoord","allOf":[{"$ref":"#/components/schemas/NeighborhoodResponseDto"}]},"status":{"type":"string","description":"Property status","enum":["For sale","Initial Offer","Locked","Owned","Unlocked"],"example":"For sale","title":"Status"},"mintPrice":{"type":"number","description":"Property mint price","example":3500,"title":"Mint price"},"collection":{"description":"(Optional) Property collection","title":"Collection","allOf":[{"$ref":"#/components/schemas/CollectionResponseDto"}]}},"required":["id","address","city","neighborhood","status","mintPrice"]},"UserPropertiesListResponseDto":{"type":"object","properties":{"currentPage":{"type":"number","description":"Current page","example":1,"title":"Current page"},"pageSize":{"type":"number","description":"Total results per page","example":10,"title":"Page size"},"totalResults":{"type":"number","description":"(Optional) Total of results","example":200,"title":"Total results"},"results":{"description":"List of properties","title":"Results","type":"array","items":{"$ref":"#/components/schemas/UserPropertyResponseDto"}}},"required":["currentPage","pageSize","results"]},"UserBalancesResponseDto":{"type":"object","properties":{"availableUpx":{"type":"number","description":"Amount of available UPX","example":0,"title":"Available UPX"},"availableSpark":{"type":"number","description":"Amount of available SPARK","example":0,"title":"Available SPARK"},"stakedSpark":{"type":"number","description":"Amount of staked SPARK","example":0,"title":"Staked SPARK"},"availableSends":{"type":"number","description":"Amount of available Sends","default":0,"title":"Available sends"}},"required":["availableUpx","availableSpark","stakedSpark","availableSends"]},"NftRequestDto":{"type":"object","properties":{"id":{"type":"number","description":"NFT ID","example":1,"title":"ID"},"category":{"type":"string","description":"NFT category","examples":["spirithlwn","jacktsai","blkexplorer","essential","memento"],"title":"Category"}},"required":["id","category"]},"UserJoinContainerRequestDto":{"type":"object","properties":{"upxAmount":{"type":"number","description":"(Optional) Amount of UPX to be added into the escrow container","example":10000,"title":"UPX amount"},"assets":{"description":"List of assets to be added into the escrow container","title":"Assets","type":"array","items":{"$ref":"#/components/schemas/NftRequestDto"}},"containerId":{"type":"number","description":"The ID of the container that the user is joining into","example":1,"title":"Container ID"}},"required":["containerId"]},"JoinContainerResponseDto":{"type":"object","properties":{"transactionId":{"type":"string","example":"ac60eb8a-9c32-4f78-b407-1c0396a645e2","title":"Transaction ID"},"containerReachedUsersLimit":{"type":"boolean","description":"(Optional) We send it if you provide some value to userLimitByContainer property on container creation endpoint","example":true,"title":"Container reached users limit"}},"required":["transactionId"]},"HomeAddressResponseDto":{"type":"object","properties":{"propertyId":{"type":"number","description":"Property's ID","example":55334346,"title":"Property ID"},"fullAddress":{"type":"string","description":"Property's Full Address","example":"1467 28TH AVE","title":"Full Address"}},"required":["propertyId","fullAddress"]},"UserProfileResponseDto":{"type":"object","properties":{"id":{"type":"string","description":"User's ID","example":"2da598ba-0abb-44f9-bb30-86416af16a20","title":"ID"},"eosId":{"type":"string","description":"User's EOS ID","example":"emhwlbbifea5","title":"EOS ID"},"username":{"type":"string","description":"User's username","example":"my_username","title":"Username"},"networth":{"type":"number","description":"User's networth","default":0,"title":"Networth"},"level":{"type":"string","description":"User's Level","enum":["Visitor","Uplander","Pro","Director","Executive","Chief Executive"],"example":"Pro","title":"Level"},"avatarUrl":{"type":"string","description":"User's avatar URL","example":"https://static.upland.me/my-avatar.jpg","title":"Avatar URL"},"initialCity":{"type":"string","description":"User's initial city","example":"San Francisco","title":"Initial city"},"currentCity":{"type":"string","description":"User's current city","example":"San Francisco","title":"Current city"},"isInJail":{"type":"boolean","description":"Indicates if the user is in jail","example":false,"title":"Is in jail"},"rp3dAvatarUrl":{"type":"string","description":"(Optional) User's Ready Player 3D Avatar URL","example":"https://api.readyplayer.me/v1/avatars/58a311f1236205163b333df2.glb","title":"RP 3D Avatar URL"},"kycStatus":{"type":"string","description":"(Optional) User's KYC Status","enum":["unknown","rejected","pending","blocked","success"],"example":"success","title":"KYC Status"},"homeAddress":{"description":"(Optional) Property's Home Address information","title":"Home Address","allOf":[{"$ref":"#/components/schemas/HomeAddressResponseDto"}]}},"required":["id","eosId","username","networth","level","avatarUrl","initialCity","currentCity","isInJail","homeAddress"]},"UserTravelResponseDto":{"type":"object","properties":{"startDate":{"format":"date-time","type":"string","description":"Travel start date","example":"2026-09-02T19:03:02.788Z","title":"Start date"},"endDate":{"format":"date-time","type":"string","description":"Travel end date","example":"2026-09-02T19:03:02.788Z","title":"End date"},"from":{"description":"Travel origin coordinates [lat, lng]","example":[-122.39619255065918,37.79594930209237],"title":"From","type":"array","items":{"type":"number"}},"to":{"description":"Travel destination coordinates [lat, lng]","example":[-122.39619255065918,37.79594930209237],"title":"To","type":"array","items":{"type":"number"}},"type":{"type":"string","description":"Travel type","example":"train","title":"Type"}},"required":["startDate","endDate","from","to","type"]},"UserTravelsListResponseDto":{"type":"object","properties":{"currentPage":{"type":"number","description":"Current page","example":1,"title":"Current page"},"pageSize":{"type":"number","description":"Total results per page","example":10,"title":"Page size"},"totalResults":{"type":"number","description":"(Optional) Total of results","example":200,"title":"Total results"},"results":{"description":"List of user's travels","title":"Results","type":"array","items":{"$ref":"#/components/schemas/UserTravelResponseDto"}}},"required":["currentPage","pageSize","results"]},"CreateContainerRequestDto":{"type":"object","properties":{"devShopId":{"type":"string","description":"(Optional) Specifies the dev shop where the user needs to be in order to transfer assets to the container. If none, the user can be at any of the app's dev shops to do so.","example":"edadafdf-c213-462b-910a-179c18d3a7cd","title":"Dev Shop ID"},"userLimitByContainer":{"type":"number","description":"(Optional) Specifies a user limit by container. When the container reaches this limit, it will be automatically locked.","example":2,"title":"User limit by container"}}},"ContainerResponseDto":{"type":"object","properties":{"id":{"type":"number","description":"Container ID","example":1,"title":"ID"},"appId":{"type":"number","description":"Application ID","example":1,"title":"App ID"},"expirationDate":{"format":"date-time","type":"string","description":"Container expiration date","example":"2026-09-02T19:03:02.192Z","title":"Expiration Date"},"status":{"type":"string","description":"Container status","enum":["created","locked","resolving","resolved","expired"],"example":"created","title":"Status"},"devShopId":{"type":"string","description":"(Optional) Dev Shop ID","example":"edadafdf-c213-462b-910a-179c18d3a7cd","title":"Dev Shop ID"},"userLimitByContainer":{"type":"number","description":"(Optional) Specifies a user limit by container. When the container reaches this limit, it will be automatically locked.","example":2,"title":"User limit by container"}},"required":["id","appId","expirationDate","status"]},"AssetTransferRequestResponseDto":{"type":"object","properties":{"id":{"type":"number","description":"Asset transfer request ID","example":1,"title":"ID"},"transactionId":{"type":"string","description":"Asset transfer request transaction ID","example":"e5e0df15-16d8-4dd4-9ecf-669dee4a80e3","title":"Transaction ID"},"amount":{"type":"number","description":"(Optional) Asset transfer request amount - applies only to UPX transfers","example":0,"title":"Amount"},"assetId":{"type":"number","description":"(Optional) Asset transfer request asset ID - applies only to NFT transfers","example":1,"title":"Asset ID"},"category":{"type":"string","description":"Asset transfer request category","examples":["spirithlwn","jacktsai","blkexplorer","essential","memento","upx"],"title":"Category"},"ownerEosId":{"type":"string","description":"Asset owner EOS ID","example":"emhwlbbifea5","title":"Owner EOS ID"},"status":{"type":"string","description":"Asset transfer request status","enum":["initiated","user_signature_requested","changing_ownership","in_escrow","failed"],"example":"in_escrow","title":"Status"}},"required":["id","transactionId","category","ownerEosId","status"]},"ContainerWithAssetsResponseDto":{"type":"object","properties":{"id":{"type":"number","description":"Container ID","example":1,"title":"ID"},"appId":{"type":"number","description":"Application ID","example":1,"title":"App ID"},"expirationDate":{"format":"date-time","type":"string","description":"Container expiration date","example":"2026-09-02T19:03:02.192Z","title":"Expiration Date"},"status":{"type":"string","description":"Container status","enum":["created","locked","resolving","resolved","expired"],"example":"created","title":"Status"},"devShopId":{"type":"string","description":"(Optional) Dev Shop ID","example":"edadafdf-c213-462b-910a-179c18d3a7cd","title":"Dev Shop ID"},"userLimitByContainer":{"type":"number","description":"(Optional) Specifies a user limit by container. When the container reaches this limit, it will be automatically locked.","example":2,"title":"User limit by container"},"upx":{"type":"number","description":"Current container UPX balance (final transactions only)","example":0,"title":"UPX"},"assets":{"description":"List of asset transfer requests","title":"Assets","type":"array","items":{"$ref":"#/components/schemas/AssetTransferRequestResponseDto"}}},"required":["id","appId","expirationDate","status","upx","assets"]},"JoinContainerRequestDto":{"type":"object","properties":{"upxAmount":{"type":"number","description":"(Optional) Amount of UPX to be added into the escrow container","example":10000,"title":"UPX amount"},"assets":{"description":"List of assets to be added into the escrow container","title":"Assets","type":"array","items":{"$ref":"#/components/schemas/NftRequestDto"}}}},"ContainerResolutionResponseDto":{"type":"object","properties":{"transactionId":{"type":"string","description":"Container resolution transaction ID","example":"e5e0df15-16d8-4dd4-9ecf-669dee4a80e3","title":"Transaction ID"}},"required":["transactionId"]},"ContainerResolutionTransferRequestDto":{"type":"object","properties":{"assetId":{"type":"number","description":"(Optional) Container resolution transfer asset ID - applies only to NFT transfers","example":1,"title":"Asset ID"},"amount":{"type":"number","description":"(Optional) Container resolution transfer amount - applies only to UPX transfers","example":100,"title":"Amount"},"category":{"type":"string","description":"Container resolution transfer category","examples":["spirithlwn","jacktsai","blkexplorer","essential","memento","upx"],"title":"Category"},"targetEosId":{"type":"string","description":"Container resolution transfer target EOS ID","example":"emhwlbbifea5","title":"Target EOS ID"},"isRefund":{"type":"boolean","description":"(Optional) Indicates if the action is a refund operation","example":false,"title":"Is refund"}},"required":["category","targetEosId"]},"ContainerResolutionRequestDto":{"type":"object","properties":{"actions":{"description":"List of container resolution transfers","title":"Actions","type":"array","items":{"$ref":"#/components/schemas/ContainerResolutionTransferRequestDto"}}},"required":["actions"]},"TrackResponseDto":{"type":"object","properties":{"id":{"type":"number","description":"Track ID","example":1,"title":"ID"},"name":{"type":"string","description":"Track Name","example":"The San Francisco Track","title":"Name"},"city":{"description":"Track city","title":"City","allOf":[{"$ref":"#/components/schemas/CityResponseDto"}]},"thumbnailUrl":{"type":"string","description":"Track thumbnail URL in SVG format","title":"Thumbnail"},"distance":{"type":"number","description":"Track distance in meters","example":3132.3,"title":"Distance"},"surface":{"type":"string","description":"Track Surface","enum":["ASPHALT"],"example":"ASPHALT","title":"Surface"},"weather":{"type":"string","description":"Track weather","enum":["SUNNY"],"example":"SUNNY","title":"Weather"},"laps":{"type":"number","description":"Number of laps","example":3,"title":"Laps"},"allowedVehicleClasses":{"type":"string","description":"Track allowed vehicle classes","enum":["ALL"],"example":"ALL","title":"Allowed vehicle classes"}},"required":["id","name","city","thumbnailUrl","distance","surface","weather","laps","allowedVehicleClasses"]},"TracksListResponseDto":{"type":"object","properties":{"tracks":{"description":"List of tracks","title":"Tracks","type":"array","items":{"$ref":"#/components/schemas/TrackResponseDto"}}},"required":["tracks"]},"TrackWithDetailsResponseDto":{"type":"object","properties":{"id":{"type":"number","description":"Track ID","example":1,"title":"ID"},"name":{"type":"string","description":"Track Name","example":"The San Francisco Track","title":"Name"},"city":{"description":"Track city","title":"City","allOf":[{"$ref":"#/components/schemas/CityResponseDto"}]},"thumbnailUrl":{"type":"string","description":"Track thumbnail URL in SVG format","title":"Thumbnail"},"distance":{"type":"number","description":"Track distance in meters","example":3132.3,"title":"Distance"},"surface":{"type":"string","description":"Track Surface","enum":["ASPHALT"],"example":"ASPHALT","title":"Surface"},"weather":{"type":"string","description":"Track weather","enum":["SUNNY"],"example":"SUNNY","title":"Weather"},"laps":{"type":"number","description":"Number of laps","example":3,"title":"Laps"},"allowedVehicleClasses":{"type":"string","description":"Track allowed vehicle classes","enum":["ALL"],"example":"ALL","title":"Allowed vehicle classes"},"path":{"description":"Track path coordinates","example":[[-122.406599522,37.806952808],[-122.404625416,37.80591865],[-122.402157784,37.8041046]],"title":"Path","items":{"type":"array"},"type":"array"},"center":{"description":"Track center point coordinates [lat, lng]","example":[-122.39619255065918,37.79594930209237],"title":"Center","type":"array","items":{"type":"number"}},"boundaries":{"description":"Track polygon boundary coordinates","example":[[[-122.416534424,37.811207961],[-122.414474487,37.803341668],[-122.398166656,37.78706392],[-122.395420074,37.775803046],[-122.377910614,37.779602086],[-122.385377884,37.797102289],[-122.402801514,37.811411389],[-122.416534424,37.811207961]]],"title":"Boundaries","items":{"type":"array"},"type":"array"}},"required":["id","name","city","thumbnailUrl","distance","surface","weather","laps","allowedVehicleClasses","path","center","boundaries"]},"BuildingResponseDto":{"type":"object","properties":{"id":{"type":"number","description":"Building ID","example":3394,"title":"ID"},"name":{"type":"string","description":"Building name","example":"Landmark Solari","title":"Name"},"modelId":{"type":"number","description":"Building Model ID","example":60,"title":"Model ID"},"model":{"type":"string","description":"Building model GLTF URL","example":"apartment/Apartment_baked.gltf","title":"Model"},"lat":{"type":"number","description":"Building center point latitude","example":"37.793213744148574","title":"Lat"},"lng":{"type":"number","description":"Building center point longitude","example":"-122.39704303645604","title":"Lng"},"rotate":{"description":"Building rotate (x, y, z)","example":[1.5707963267948966,0,0],"title":"Rotate","items":{"type":"array"},"type":"array"},"scale":{"type":"number","description":"Building scale","example":3.7,"title":"Scale"},"propertyId":{"type":"number","description":"Upland property ID","example":5566,"title":"Property ID"},"meshes":{"type":"object","description":"Building meshes colors","additionalProperties":{"type":"string"},"example":{"primary":"#FFF5DC","secondary":"#7E9E85","detail":"#94553A"},"title":"Meshes"}},"required":["id","name","modelId","model","lat","lng","rotate","scale","propertyId","meshes"]},"BuildingsListResponseDto":{"type":"object","properties":{"buildings":{"description":"List of buildings","title":"Buildings","type":"array","items":{"$ref":"#/components/schemas/BuildingResponseDto"}}},"required":["buildings"]},"BuildingsRequestDto":{"type":"object","properties":{"boundaries":{"description":"Polygon boundary coordinates","example":[[[-122.416534424,37.811207961],[-122.414474487,37.803341668],[-122.398166656,37.78706392],[-122.395420074,37.775803046],[-122.377910614,37.779602086],[-122.385377884,37.797102289],[-122.402801514,37.811411389],[-122.416534424,37.811207961]]],"title":"Boundaries","items":{"type":"array"},"type":"array"}},"required":["boundaries"]},"CitiesListResponseDto":{"type":"object","properties":{"cities":{"description":"List of cities","title":"Cities","type":"array","items":{"$ref":"#/components/schemas/CityResponseDto"}}},"required":["cities"]},"PropertyResponseDto":{"type":"object","properties":{"id":{"type":"number","description":"Property ID","example":1,"title":"ID"},"address":{"type":"string","description":"Property address","example":"1467 28TH AVE","title":"Address"},"neighborhood":{"description":"Property neighborhood","title":"Neighborhood","allOf":[{"$ref":"#/components/schemas/NeighborhoodResponseDto"}]},"city":{"description":"Property city","title":"City","allOf":[{"$ref":"#/components/schemas/CityResponseDto"}]},"status":{"type":"string","description":"Property status","enum":["For sale","Initial Offer","Locked","Owned","Unlocked"],"example":"For sale","title":"Status"},"mintPrice":{"type":"number","description":"Property mint price","example":3500,"title":"Mint price"},"collection":{"description":"(Optional) Property collection","title":"Collection","allOf":[{"$ref":"#/components/schemas/CollectionResponseDto"}]}},"required":["id","address","neighborhood","city","status","mintPrice"]},"PropertiesListResponseDto":{"type":"object","properties":{"currentPage":{"type":"number","description":"Current page","example":1,"title":"Current page"},"pageSize":{"type":"number","description":"Total results per page","example":10,"title":"Page size"},"totalResults":{"type":"number","description":"(Optional) Total of results","example":200,"title":"Total results"},"results":{"description":"List of properties","title":"Results","type":"array","items":{"$ref":"#/components/schemas/PropertyResponseDto"}}},"required":["currentPage","pageSize","results"]},"PropertiesListWithNextPagePaginationResponseDto":{"type":"object","properties":{"results":{"description":"List of properties","title":"Results","type":"array","items":{"$ref":"#/components/schemas/PropertyResponseDto"}},"nextPageToken":{"type":"string","description":"(Optional) Generated token to navigate between page results","example":"Nzg4NDAwOTkyMDAwMzg=","title":"Next Page Token"}},"required":["results"]},"NeighborhoodsListResponseDto":{"type":"object","properties":{"results":{"description":"List of neighborhoods","title":"Results","type":"array","items":{"$ref":"#/components/schemas/NeighborhoodResponseDto"}}},"required":["results"]},"CollectionsListResponseDto":{"type":"object","properties":{"results":{"description":"List of collections","title":"Results","type":"array","items":{"$ref":"#/components/schemas/CollectionResponseDto"}}},"required":["results"]},"TreasureHistoryResponseDto":{"type":"object","properties":{"userName":{"type":"string","example":"John Doe","title":"User name"},"reward":{"type":"number","description":"Treasure reward","example":120,"title":"Reward"},"lockedAt":{"format":"date-time","type":"string","description":"Treasure lock date","example":"2026-09-02T19:03:10.722Z","title":"Locked at"},"spawnAt":{"format":"date-time","type":"string","description":"Treasure spawn date","example":"2026-09-02T19:03:10.722Z","title":"Spawn at"},"fullAddress":{"type":"string","description":"Treasure spawn location address","example":"1467 28TH AVE","title":"Full address"},"treasureType":{"type":"string","description":"Treasure Type","enum":["box","pinata"],"example":"box","title":"Treasure type"}},"required":["userName","reward","lockedAt","spawnAt","fullAddress","treasureType"]},"TreasuresHistoryListResponseDto":{"type":"object","properties":{"results":{"description":"List of treasures history","title":"Results","type":"array","items":{"$ref":"#/components/schemas/TreasureHistoryResponseDto"}}},"required":["results"]},"CoordinatesResponseDto":{"type":"object","properties":{"latitude":{"type":"number","description":"Coordinate latitude","example":36.740230444221055,"title":"Latitude"},"longitude":{"type":"number","description":"Coordinate longitude","example":-119.78203638209527,"title":"Longitude"}},"required":["latitude","longitude"]},"DevShopLocationResponseDto":{"type":"object","properties":{"id":{"type":"number","description":"Upland Property ID","example":55334346,"title":"ID"},"address":{"type":"string","description":"Dev shop address","example":"1467 28TH AVE","title":"Address"},"city":{"description":"Dev shop city","title":"City","allOf":[{"$ref":"#/components/schemas/CityResponseDto"}]},"coordinates":{"description":"Dev shop coordinates","title":"Coordinates","allOf":[{"$ref":"#/components/schemas/CoordinatesResponseDto"}]},"neighborhood":{"description":"Dev shop neighborhood","title":"Neighborhood","allOf":[{"$ref":"#/components/schemas/NeighborhoodResponseDto"}]}},"required":["id","address","city","coordinates","neighborhood"]},"DevShopResponseDto":{"type":"object","properties":{"id":{"type":"string","description":"Dev Shop ID","example":"edadafdf-c213-462b-910a-179c18d3a7cd","title":"ID"},"name":{"type":"string","description":"Dev shop name","example":"My dev shop","title":"Name"},"appUrl":{"type":"string","description":"Application external URL","example":"https://my-app.com/external-url","title":"App URL"},"description":{"type":"string","description":"Dev shop description","example":"This is my dev shop","title":"Description"},"location":{"description":"Dev shop location","title":"Location","allOf":[{"$ref":"#/components/schemas/DevShopLocationResponseDto"}]}},"required":["id","name","appUrl","description","location"]},"DevShopsListResponseDto":{"type":"object","properties":{"results":{"description":"List of Dev Shops","title":"Results","type":"array","items":{"$ref":"#/components/schemas/DevShopResponseDto"}}},"required":["results"]},"UserDevShopIntersectionCheckResponseDto":{"type":"object","properties":{"isInRange":{"type":"boolean","description":"Returns true if the user is in the devshop range","example":false,"title":"Is in range"}},"required":["isInRange"]},"SendResponseDto":{"type":"object","properties":{"id":{"type":"string","description":"Send ID","example":"033163ed-936e-4eeb-b8af-e0a62dbbe02a","title":"ID"},"propertyId":{"type":"number","description":"Send property ID","example":1,"title":"Property ID"},"coordinates":{"description":"Send coordinates [lat, lng]","example":[-122.416534424,37.811207961],"title":"Coordinates","type":"array","items":{"type":"number"}}},"required":["id","propertyId","coordinates"]},"SendsListResponseDto":{"type":"object","properties":{"currentPage":{"type":"number","description":"Current page","example":1,"title":"Current page"},"pageSize":{"type":"number","description":"Total results per page","example":10,"title":"Page size"},"totalResults":{"type":"number","description":"(Optional) Total of results","example":200,"title":"Total results"},"results":{"description":"List of sends","title":"Results","type":"array","items":{"$ref":"#/components/schemas/SendResponseDto"}}},"required":["currentPage","pageSize","results"]},"AppWebhookCallDto":{"type":"object","properties":{"notificationType":{"type":"string","description":"Available notification type","example":"TransactionFromEscrowFailure","title":"Notification type","enum":["AuthenticationSuccess","AuthenticationFailure","ContainerExpired","RumbleTournamentNewParticipantAdded","RumbleTournamentParticipantStatusUpdated","RumbleTournamentClosed","RumbleTournamentCanceled","RumbleTournamentStatusUpdated","TransactionToEscrowCreated","TransactionToEscrowExpired","TransactionToEscrowSigned","TransactionToEscrowRejected","TransactionToEscrowFinal","TransactionToEscrowFailure","TransactionFromEscrowCreated","TransactionFromEscrowFinal","TransactionFromEscrowFailure","UserDisconnectedApplication"]},"attemptNumber":{"type":"number","description":"Number of attempts where the webhook was called","example":2,"title":"Attempted number"},"attemptedAt":{"format":"date-time","type":"string","description":"Attempt date where the webhook was called","example":"2023-08-02 21:28:33.112","title":"Attempted at"},"isSuccess":{"type":"boolean","description":"Returns true in case of the attempted was succeeded","example":true,"title":"Is Success"},"request":{"type":"object","description":"Request payload sent to the webhook. It is specific for each notification type. Read more in our webhook spec.","example":true,"title":"Request payload"},"response":{"type":"object","description":"Response payload for succeeded and failed calls","example":true,"title":"Response payload"},"containerId":{"type":"number","description":"(Optional) Applied only for notification types associated to container actions","example":12,"title":"Container Id"}},"required":["notificationType","attemptNumber","attemptedAt","isSuccess","request","response"]},"AppWebhookCallsResponseDto":{"type":"object","properties":{"currentPage":{"type":"number","description":"Current page","example":1,"title":"Current page"},"pageSize":{"type":"number","description":"Total results per page","example":10,"title":"Page size"},"totalResults":{"type":"number","description":"(Optional) Total of results","example":200,"title":"Total results"},"results":{"description":"List of app webhook calls","title":"Results","type":"array","items":{"$ref":"#/components/schemas/AppWebhookCallDto"}}},"required":["currentPage","pageSize","results"]},"PrizeDistributionRuleResponseDto":{"type":"object","properties":{"minParticipants":{"type":"number","description":"Prize distribution rule minimum participants amount","example":1,"title":"Min Participants"},"distribution":{"description":"List of prize distribution percentage - it should always sum up to 100","example":[100],"title":"Distribution","type":"array","items":{"type":"number"}}},"required":["minParticipants","distribution"]},"FeeDistributionDto":{"type":"object","properties":{"percentage":{"type":"number","description":"Fee distribution percentage","example":1,"title":"Percentage"},"targetEosId":{"type":"number","description":"Fee target EOS ID","example":1,"title":"Target EOS ID"}},"required":["percentage","targetEosId"]},"RumbleTournamentSettingsResponseDto":{"type":"object","properties":{"id":{"type":"string","description":"Rumble tournament settings ID","example":"3aefaaca-4f86-4aeb-a516-d4114c36f813","title":"ID"},"createdAt":{"format":"date-time","type":"string","description":"Rumble tournament settings creation date","example":"2026-09-02T19:03:11.386Z","title":"Created At"},"description":{"type":"string","description":"Rumble tournament description","example":"My description","title":"Description"},"maxParticipants":{"type":"number","description":"Rumble tournament maximum participants amount","example":1,"title":"Max Participants"},"minParticipants":{"type":"number","description":"Rumble tournament minimum participants amount","example":1,"title":"Min Participants"},"name":{"type":"string","description":"Rumble tournament name","example":"My rumble tournament","title":"Name"},"prizeDistributionRules":{"description":"Rumble tournament prize distribution rules","title":"Prize Distribution Rules","type":"array","items":{"$ref":"#/components/schemas/PrizeDistributionRuleResponseDto"}},"registrationFeeInUpx":{"type":"number","description":"Rumble tournament registration fee (UPX)","example":100,"title":"Registration Fee in UPX"},"status":{"type":"string","description":"Rumble tournament settings status","enum":["ACTIVE","INACTIVE"],"example":"ACTIVE","title":"Status"},"updatedAt":{"format":"date-time","type":"string","description":"Rumble tournament settings update date","example":"2026-09-02T19:03:11.386Z","title":"Updated At"},"developerFee":{"description":"(Optional) Rumble tournament developer fee","title":"Developer Fee","allOf":[{"$ref":"#/components/schemas/FeeDistributionDto"}]},"stakeholderFeePercentage":{"type":"number","description":"(Optional) Rumble tournament stakeholder fee percentage","example":0,"title":"Stakeholder Fee Percentage"}},"required":["id","createdAt","description","maxParticipants","minParticipants","name","prizeDistributionRules","registrationFeeInUpx","status","updatedAt"]},"FindRumbleTournamentSettingsListResponseDto":{"type":"object","properties":{"currentPage":{"type":"number","description":"Current page","example":1,"title":"Current page"},"pageSize":{"type":"number","description":"Total results per page","example":10,"title":"Page size"},"totalResults":{"type":"number","description":"(Optional) Total of results","example":200,"title":"Total results"},"results":{"description":"List of rumble tournament participants","title":"Results","type":"array","items":{"$ref":"#/components/schemas/RumbleTournamentSettingsResponseDto"}}},"required":["currentPage","pageSize","results"]},"CreateRumbleTournamentSettingsRequestDto":{"type":"object","properties":{"description":{"type":"string","description":"Rumble tournament description","example":"My description","title":"Description"},"maxParticipants":{"type":"number","description":"Rumble tournament maximum participants amount","example":1,"title":"Max Participants"},"minParticipants":{"type":"number","description":"Rumble tournament minimum participants amount","example":2,"title":"Min Participants"},"name":{"type":"string","description":"Rumble tournament name","example":"My rumble tournament","title":"Name"},"prizeDistributionRules":{"description":"Rumble tournament prize distribution rules","title":"Prize Distribution Rules","type":"array","items":{"$ref":"#/components/schemas/PrizeDistributionRuleResponseDto"}},"registrationFeeInUpx":{"type":"number","description":"Rumble tournament registration fee (UPX)","example":100,"title":"Registration Fee in UPX"},"developerFeePercentage":{"type":"number","description":"(Optional) Rumble tournament developer fee percentage","example":0,"title":"Developer Fee Percentage"},"stakeholderFeePercentage":{"type":"number","description":"(Optional) Rumble tournament stakeholder fee percentage","example":0,"title":"Stakeholder Fee Percentage"}},"required":["description","maxParticipants","minParticipants","name","prizeDistributionRules","registrationFeeInUpx"]},"EditRumbleTournamentSettingsRequestDto":{"type":"object","properties":{"description":{"type":"string","description":"(Optional) Rumble tournament description","example":"My description","title":"Description"},"developerFeePercentage":{"type":"number","description":"(Optional) Rumble tournament developer fee percentage","example":0,"title":"Developer Fee Percentage"},"maxParticipants":{"type":"number","description":"(Optional) Rumble tournament maximum participants amount","example":6,"title":"Max Participants"},"minParticipants":{"type":"number","description":"(Optinal) Rumble tournament minimum participants amount","example":2,"title":"Min Participants"},"name":{"type":"string","description":"(Optional) Rumble tournament name","example":"My rumble tournament","title":"Name"},"prizeDistributionRules":{"description":"(Optional) Rumble tournament prize distribution rules","title":"Prize Distribution Rules","type":"array","items":{"$ref":"#/components/schemas/PrizeDistributionRuleResponseDto"}},"registrationFeeInUpx":{"type":"number","description":"(Optional) Rumble tournament registration fee (UPX)","example":100,"title":"Registration Fee in UPX"},"stakeholderFeePercentage":{"type":"number","description":"(Optional) Rumble tournament stakeholder fee percentage","example":0,"title":"Stakeholder Fee Percentage"}}},"CreateRumbleTournamentRequestDto":{"type":"object","properties":{"settingsId":{"type":"string","description":"Rumble tournament settings ID","example":"3aefaaca-4f86-4aeb-a516-d4114c36f813","title":"Settings ID"},"registrationFeeInUpx":{"type":"number","description":"(Optional) Rumble tournament registration fee in UPX","example":200,"title":"Registration Fee in UPX"},"stakeholderEosId":{"type":"string","description":"(Optional) Rumble tournament stakeholder EOS ID","example":"emhwlbbifea5","title":"Stakeholder EOS ID"}},"required":["settingsId"]},"RumbleTournamentSettingsSnapshotResponseDto":{"type":"object","properties":{"minParticipants":{"type":"number","description":"Rumble tournament minimum participants amount","example":1,"title":"Min Participants"},"maxParticipants":{"type":"number","description":"Rumble tournament maximum participants amount","example":1,"title":"Max Participants"},"prizeDistributionRules":{"description":"Rumble tournament prize distribution rules","title":"Prize Distribution Rules","type":"array","items":{"$ref":"#/components/schemas/PrizeDistributionRuleResponseDto"}},"registrationFeeInUpx":{"type":"number","description":"Rumble tournament registration fee (UPX)","example":100,"title":"Registration Fee in UPX"},"developerFeePercentage":{"type":"number","description":"Rumble tournament developer fee percentage","example":0,"title":"Developer Fee Percentage"},"stakeholderFeePercentage":{"type":"number","description":"Rumble tournament stakeholder fee percentage","example":0,"title":"Stakeholder Fee Percentage"}},"required":["minParticipants","maxParticipants","prizeDistributionRules","registrationFeeInUpx","developerFeePercentage","stakeholderFeePercentage"]},"RumbleTournamentResponseDto":{"type":"object","properties":{"appId":{"type":"number","description":"Application ID","example":1,"title":"App ID"},"baseSettingsSnapshot":{"description":"Rumble tournament base settings snapshot","title":"Base Settings Snapshot","allOf":[{"$ref":"#/components/schemas/RumbleTournamentSettingsSnapshotResponseDto"}]},"containerId":{"type":"number","description":"Rumble tournament escrow container ID","example":1,"title":"Container ID"},"createdAt":{"format":"date-time","type":"string","description":"Rumble tournament creation date","example":"2026-09-02T19:03:11.655Z","title":"Created At"},"endedAt":{"format":"date-time","type":"string","description":"(Optional) Rumble tournament finish date","example":"2026-09-02T19:03:11.655Z","title":"Ended At"},"id":{"type":"string","description":"Rumble tournament ID","example":"3aefaaca-4f86-4aeb-a516-d4114c36f813","title":"ID"},"resolutionTransactionId":{"type":"string","description":"(Optional) Rumble tournament resolution transaction ID","example":"3aefaaca-4f86-4aeb-a516-d4114c36f813","title":"Resolution Transaction ID"},"startedAt":{"format":"date-time","type":"string","description":"(Optional) Rumble tournament start date","example":"2026-09-02T19:03:11.656Z","title":"Started At"},"status":{"type":"string","description":"Rumble tournament status","enum":["WAITING_FOR_PARTICIPANTS","WAITING_PAYMENT","REGISTRATION_CLOSED","IN_PROGRESS","DISTRIBUTING_PRIZES","CLOSED","FAILED"],"example":"WAITING_FOR_PARTICIPANTS","title":"Status"},"updatedAt":{"format":"date-time","type":"string","description":"Rumble tournament update date","example":"2026-09-02T19:03:11.656Z","title":"Updated At"}},"required":["appId","baseSettingsSnapshot","containerId","createdAt","id","status","updatedAt"]},"ScoreDto":{"type":"object","properties":{"userId":{"type":"string","description":"Rumble tournament participant Upland user ID","example":"3aefaaca-4f86-4aeb-a516-d4114c36f813","title":"User ID"},"value":{"type":"number","description":"Rumble tournament participant score. Minimum value is 0","example":10,"title":"Score"}},"required":["userId","value"]},"RegisterRumbleTournamentScoresRequestDto":{"type":"object","properties":{"scores":{"description":"List of rumble tournament participant scores. The list should not be empty.","title":"Scores","type":"array","items":{"$ref":"#/components/schemas/ScoreDto"}}},"required":["scores"]},"ResolveRumbleTournamentRequestDto":{"type":"object","properties":{"forceResolutionWithNullScore":{"type":"boolean","description":"(Optional) Force tournament resolution with null score participants","example":false,"default":false,"title":"Force resolution with null score"}}},"PrizeDistributionByPlaceDto":{"type":"object","properties":{"userId":{"type":"string","description":"Upland user ID","example":"76d678fe-5a64-4764-8250-e594527ea0f8","title":"User ID"},"userEosId":{"type":"string","description":"Upland user EOS ID","example":"emhwlbbifea5","title":"User EOS ID"},"score":{"type":"number","description":"Participant score","example":500,"title":"Score"},"prizeInUpx":{"type":"number","description":"Total UPX received by the winner","example":500,"title":"Prize in UPX"},"place":{"type":"number","description":"Participant's position in the tournament result.","example":5,"title":"Place"}},"required":["userId","userEosId","score","prizeInUpx","place"]},"ScoreboardResponseDto":{"type":"object","properties":{"participantsAmount":{"type":"number","description":"Total amount of valid tournament participants","example":5,"title":"Participants amount"},"developerFeeInUpx":{"type":"number","description":"Rumble tournament developer fee in UPX","example":100,"title":"Developer fee in UPX"},"totalPrizePoolInUpx":{"type":"number","description":"Total UPX distributed to the winners","example":1000,"title":"Total prize pool in UPX"},"stakeholderFeeInUpx":{"type":"number","description":"(Optional) Rumble tournament stakeholder fee in UPX","example":100,"title":"Stakeholder fee in UPX"},"prizeDistributions":{"description":"Details of prize distribution for each awarded participant","title":"Prize distributions","allOf":[{"$ref":"#/components/schemas/PrizeDistributionByPlaceDto"}]}},"required":["participantsAmount","developerFeeInUpx","totalPrizePoolInUpx","prizeDistributions"]},"DistributionResponseDto":{"type":"object","properties":{"place":{"type":"number","description":"Place in the tournament ranking","example":1,"title":"Place"},"prize":{"type":"number","description":"Calculated prize in UPX","example":500,"title":"Prize"}},"required":["place","prize"]},"GetRumbleTournamentCurrentPrizeDistributionResponseDto":{"type":"object","properties":{"developerFeeInUpx":{"type":"number","description":"Developer Fee in UPX","example":200,"title":"Developer Fee in UPX"},"distribution":{"description":"List of prize distribution","title":"Distribution","type":"array","items":{"$ref":"#/components/schemas/DistributionResponseDto"}},"stakeholderFeeInUpx":{"type":"number","description":"Stakeholder Fee in UPX","example":0,"title":"Stakeholder Fee in UPX"}},"required":["developerFeeInUpx","distribution","stakeholderFeeInUpx"]},"RumbleTournamentParticipantResponseDto":{"type":"object","properties":{"createdAt":{"format":"date-time","type":"string","description":"Rumble tournament participant creation date","example":"2026-09-02T19:03:11.511Z","title":"Created At"},"id":{"type":"string","description":"Rumble tournament participant ID","example":"3aefaaca-4f86-4aeb-a516-d4114c36f813","title":"ID"},"joinedAt":{"format":"date-time","type":"string","description":"(Optional) Rumble tournament participant join date","example":"2026-09-02T19:03:11.511Z","title":"Joined At"},"registrationTransactionId":{"type":"string","description":"(Optional) Rumble tournament participant registration transaction ID","example":"3aefaaca-4f86-4aeb-a516-d4114c36f813","title":"Registration Transaction ID"},"score":{"type":"number","description":"(Optional) Rumble tournament participant score","example":10,"title":"Score"},"scoredAt":{"format":"date-time","type":"string","description":"(Optional) Rumble tournament participant score date","example":"2026-09-02T19:03:11.511Z","title":"Scored At"},"status":{"type":"string","description":"Rumble tournament participant status","enum":["WAITING_PAYMENT","PROCESSING_PAYMENT","ACTIVE","REMOVED"],"example":"ACTIVE","title":"Status"},"updatedAt":{"format":"date-time","type":"string","description":"Rumble tournament participant update date","example":"2026-09-02T19:03:11.511Z","title":"Updated At"},"userId":{"type":"string","description":"Rumble tournament participant Upland user ID","example":"3aefaaca-4f86-4aeb-a516-d4114c36f813","title":"User ID"}},"required":["createdAt","id","status","updatedAt","userId"]},"FindRumbleTournamentParticipantsListResponseDto":{"type":"object","properties":{"currentPage":{"type":"number","description":"Current page","example":1,"title":"Current page"},"pageSize":{"type":"number","description":"Total results per page","example":10,"title":"Page size"},"totalResults":{"type":"number","description":"(Optional) Total of results","example":200,"title":"Total results"},"results":{"description":"List of rumble tournament participants","title":"Results","type":"array","items":{"$ref":"#/components/schemas/RumbleTournamentParticipantResponseDto"}}},"required":["currentPage","pageSize","results"]}}}}