Created
January 10, 2026 16:22
-
-
Save TobiTenno/64f894cd6cbaf2ff64cc0aa977352cc5 to your computer and use it in GitHub Desktop.
Warframe.Market v2 OpenAPI
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| openapi: 3.0.3 | |
| info: | |
| title: Warframe Market API v2 | |
| description: | | |
| Complete OpenAPI specification for Warframe Market API v2. | |
| This API provides access to Warframe trading data including items, orders, rivens, | |
| lich/sister weapons, and user profiles. | |
| **Key Features:** | |
| - Version-based cache invalidation | |
| - Internationalization (i18n) support | |
| - Real-time order data with user presence | |
| - Rich filtering options | |
| - Crossplay support | |
| **Authentication:** | |
| Some endpoints require authentication (marked with 🔒). Authentication is done via | |
| JWT tokens in the Authorization header. | |
| **Rate Limiting:** | |
| Some endpoints have rate limiting (marked with 🌀). Respect cache headers and | |
| implement exponential backoff. | |
| version: 2.0.0 | |
| contact: | |
| name: Warframe Market | |
| url: https://warframe.market | |
| license: | |
| name: Proprietary | |
| servers: | |
| - url: https://api.warframe.market/v2 | |
| description: Production server | |
| tags: | |
| - name: Authentication | |
| - name: OAuth | |
| - name: System | |
| - name: Dashboard | |
| - name: Manifests | |
| - name: Orders | |
| - name: Users | |
| paths: | |
| /auth/signin: | |
| post: | |
| tags: [Authentication] | |
| summary: Sign in (first-party apps only) | |
| description: Login endpoint for first-party applications. Requires Firebase AppCheck. | |
| operationId: signIn | |
| parameters: | |
| - $ref: '#/components/parameters/FirebaseAppCheck' | |
| requestBody: | |
| $ref: '#/components/requestBodies/SignIn' | |
| responses: | |
| '200': | |
| $ref: '#/components/responses/Auth' | |
| '401': | |
| $ref: '#/components/responses/Unauthorized' | |
| /auth/signup: | |
| post: | |
| tags: [Authentication] | |
| summary: Sign up (first-party apps only) | |
| description: User registration endpoint. Requires Firebase AppCheck. | |
| operationId: signUp | |
| parameters: | |
| - $ref: '#/components/parameters/FirebaseAppCheck' | |
| requestBody: | |
| $ref: '#/components/requestBodies/SignUp' | |
| responses: | |
| '200': | |
| $ref: '#/components/responses/Auth' | |
| '400': | |
| description: Invalid input or email already exists | |
| /auth/refresh: | |
| post: | |
| tags: [Authentication] | |
| summary: Refresh access token | |
| operationId: refreshToken | |
| security: | |
| - BearerAuth: [] | |
| requestBody: | |
| $ref: '#/components/requestBodies/RefreshToken' | |
| responses: | |
| '200': | |
| $ref: '#/components/responses/Auth' | |
| '401': | |
| $ref: '#/components/responses/Unauthorized' | |
| /auth/signout: | |
| post: | |
| tags: [Authentication] | |
| summary: Sign out | |
| operationId: signOut | |
| security: | |
| - BearerAuth: [] | |
| requestBody: | |
| required: true | |
| content: | |
| application/json: | |
| schema: | |
| type: object | |
| responses: | |
| '200': | |
| description: Successfully signed out | |
| '401': | |
| $ref: '#/components/responses/Unauthorized' | |
| /oauth/authorize: | |
| get: | |
| tags: [OAuth] | |
| summary: OAuth 2.0 authorization request | |
| operationId: oauthAuthorize | |
| responses: | |
| '200': | |
| description: Authorization page or redirect | |
| /oauth/token: | |
| post: | |
| tags: [OAuth] | |
| summary: Exchange authorization code for access token | |
| operationId: oauthToken | |
| responses: | |
| '200': | |
| description: Access token response | |
| /oauth/revoke: | |
| post: | |
| tags: [OAuth] | |
| summary: Revoke OAuth access token | |
| operationId: oauthRevoke | |
| responses: | |
| '200': | |
| description: Token revoked | |
| /dashboard/showcase: | |
| get: | |
| tags: [Dashboard] | |
| summary: Get featured items showcase | |
| operationId: getDashboardShowcase | |
| parameters: | |
| - $ref: '#/components/parameters/Language' | |
| responses: | |
| '200': | |
| $ref: '#/components/responses/DashboardShowcase' | |
| /versions: | |
| get: | |
| tags: [System] | |
| summary: Get API and collection versions | |
| description: Use for version-based cache invalidation | |
| operationId: getVersions | |
| responses: | |
| '200': | |
| $ref: '#/components/responses/Versions' | |
| /items: | |
| get: | |
| tags: [Manifests] | |
| summary: Get list of all tradable items | |
| operationId: getItems | |
| parameters: | |
| - $ref: '#/components/parameters/Language' | |
| responses: | |
| '200': | |
| $ref: '#/components/responses/ItemShortArray' | |
| /item/{slug}: | |
| get: | |
| tags: [Manifests] | |
| summary: Get full info about one item | |
| operationId: getItem | |
| parameters: | |
| - $ref: '#/components/parameters/Slug' | |
| - $ref: '#/components/parameters/Language' | |
| responses: | |
| '200': | |
| $ref: '#/components/responses/Item' | |
| '404': | |
| $ref: '#/components/responses/NotFound' | |
| /item/{slug}/set: | |
| get: | |
| tags: [Manifests] | |
| summary: Get all items in a set | |
| operationId: getItemSet | |
| parameters: | |
| - $ref: '#/components/parameters/Slug' | |
| - $ref: '#/components/parameters/Language' | |
| responses: | |
| '200': | |
| $ref: '#/components/responses/ItemSet' | |
| /riven/weapons: | |
| get: | |
| tags: [Manifests] | |
| summary: Get list of all tradable riven weapons | |
| operationId: getRivenWeapons | |
| parameters: | |
| - $ref: '#/components/parameters/Language' | |
| responses: | |
| '200': | |
| $ref: '#/components/responses/RivenArray' | |
| /riven/weapon/{slug}: | |
| get: | |
| tags: [Manifests] | |
| summary: Get full info about one riven weapon | |
| operationId: getRivenWeapon | |
| parameters: | |
| - $ref: '#/components/parameters/Slug' | |
| - $ref: '#/components/parameters/Language' | |
| responses: | |
| '200': | |
| $ref: '#/components/responses/Riven' | |
| /riven/attributes: | |
| get: | |
| tags: [Manifests] | |
| summary: Get list of all riven attributes | |
| operationId: getRivenAttributes | |
| parameters: | |
| - $ref: '#/components/parameters/Language' | |
| responses: | |
| '200': | |
| $ref: '#/components/responses/RivenAttributeArray' | |
| /lich/weapons: | |
| get: | |
| tags: [Manifests] | |
| summary: Get list of all tradable lich weapons | |
| operationId: getLichWeapons | |
| parameters: | |
| - $ref: '#/components/parameters/Language' | |
| responses: | |
| '200': | |
| $ref: '#/components/responses/LichWeaponArray' | |
| /lich/weapon/{slug}: | |
| get: | |
| tags: [Manifests] | |
| summary: Get full info about one lich weapon | |
| operationId: getLichWeapon | |
| parameters: | |
| - $ref: '#/components/parameters/Slug' | |
| - $ref: '#/components/parameters/Language' | |
| responses: | |
| '200': | |
| $ref: '#/components/responses/LichWeapon' | |
| /lich/ephemeras: | |
| get: | |
| tags: [Manifests] | |
| summary: Get list of all tradable lich ephemeras | |
| operationId: getLichEphemeras | |
| parameters: | |
| - $ref: '#/components/parameters/Language' | |
| responses: | |
| '200': | |
| $ref: '#/components/responses/LichEphemeraArray' | |
| /lich/quirks: | |
| get: | |
| tags: [Manifests] | |
| summary: Get list of all lich quirks | |
| operationId: getLichQuirks | |
| parameters: | |
| - $ref: '#/components/parameters/Language' | |
| responses: | |
| '200': | |
| $ref: '#/components/responses/LichQuirkArray' | |
| /sister/weapons: | |
| get: | |
| tags: [Manifests] | |
| summary: Get list of all tradable sister weapons | |
| operationId: getSisterWeapons | |
| parameters: | |
| - $ref: '#/components/parameters/Language' | |
| responses: | |
| '200': | |
| $ref: '#/components/responses/SisterWeaponArray' | |
| /sister/weapon/{slug}: | |
| get: | |
| tags: [Manifests] | |
| summary: Get full info about one sister weapon | |
| operationId: getSisterWeapon | |
| parameters: | |
| - $ref: '#/components/parameters/Slug' | |
| - $ref: '#/components/parameters/Language' | |
| responses: | |
| '200': | |
| $ref: '#/components/responses/SisterWeapon' | |
| /sister/ephemeras: | |
| get: | |
| tags: [Manifests] | |
| summary: Get list of all tradable sister ephemeras | |
| operationId: getSisterEphemeras | |
| parameters: | |
| - $ref: '#/components/parameters/Language' | |
| responses: | |
| '200': | |
| $ref: '#/components/responses/SisterEphemeraArray' | |
| /sister/quirks: | |
| get: | |
| tags: [Manifests] | |
| summary: Get list of all sister quirks | |
| operationId: getSisterQuirks | |
| parameters: | |
| - $ref: '#/components/parameters/Language' | |
| responses: | |
| '200': | |
| $ref: '#/components/responses/SisterQuirkArray' | |
| /locations: | |
| get: | |
| tags: [Manifests] | |
| summary: Get list of all locations | |
| operationId: getLocations | |
| parameters: | |
| - $ref: '#/components/parameters/Language' | |
| responses: | |
| '200': | |
| $ref: '#/components/responses/LocationArray' | |
| /npcs: | |
| get: | |
| tags: [Manifests] | |
| summary: Get list of all NPCs | |
| operationId: getNpcs | |
| parameters: | |
| - $ref: '#/components/parameters/Language' | |
| responses: | |
| '200': | |
| $ref: '#/components/responses/NpcArray' | |
| /missions: | |
| get: | |
| tags: [Manifests] | |
| summary: Get list of all missions | |
| operationId: getMissions | |
| parameters: | |
| - $ref: '#/components/parameters/Language' | |
| responses: | |
| '200': | |
| $ref: '#/components/responses/MissionArray' | |
| /orders/recent: | |
| get: | |
| tags: [Orders] | |
| summary: Get recent orders (last 4 hours) | |
| description: Returns up to 500 most recent orders | |
| operationId: getRecentOrders | |
| parameters: | |
| - $ref: '#/components/parameters/Platform' | |
| responses: | |
| '200': | |
| $ref: '#/components/responses/OrderWithUserArray' | |
| /orders/item/{slug}: | |
| get: | |
| tags: [Orders] | |
| summary: Get all orders for an item | |
| operationId: getItemOrders | |
| parameters: | |
| - $ref: '#/components/parameters/Slug' | |
| - $ref: '#/components/parameters/Platform' | |
| responses: | |
| '200': | |
| $ref: '#/components/responses/OrderWithUserArray' | |
| /orders/item/{slug}/top: | |
| get: | |
| tags: [Orders] | |
| summary: Get top orders for an item | |
| description: Top 5 buy and sell orders from online users | |
| operationId: getTopOrders | |
| parameters: | |
| - $ref: '#/components/parameters/Slug' | |
| - $ref: '#/components/parameters/Rank' | |
| - $ref: '#/components/parameters/RankLt' | |
| - $ref: '#/components/parameters/Charges' | |
| - $ref: '#/components/parameters/ChargesLt' | |
| - $ref: '#/components/parameters/AmberStars' | |
| - $ref: '#/components/parameters/AmberStarsLt' | |
| - $ref: '#/components/parameters/CyanStars' | |
| - $ref: '#/components/parameters/CyanStarsLt' | |
| - $ref: '#/components/parameters/Subtype' | |
| - $ref: '#/components/parameters/Platform' | |
| responses: | |
| '200': | |
| $ref: '#/components/responses/TopOrders' | |
| /orders/user/{slug}: | |
| get: | |
| tags: [Orders] | |
| summary: Get public orders from user (by slug) | |
| operationId: getUserOrdersBySlug | |
| parameters: | |
| - $ref: '#/components/parameters/Slug' | |
| - $ref: '#/components/parameters/Platform' | |
| responses: | |
| '200': | |
| $ref: '#/components/responses/OrderArray' | |
| /orders/userId/{userId}: | |
| get: | |
| tags: [Orders] | |
| summary: Get public orders from user (by ID) | |
| operationId: getUserOrdersById | |
| parameters: | |
| - $ref: '#/components/parameters/UserId' | |
| - $ref: '#/components/parameters/Platform' | |
| responses: | |
| '200': | |
| $ref: '#/components/responses/OrderArray' | |
| /orders/my: | |
| get: | |
| tags: [Orders] | |
| summary: Get my orders (authenticated) | |
| security: | |
| - BearerAuth: [] | |
| operationId: getMyOrders | |
| parameters: | |
| - $ref: '#/components/parameters/Platform' | |
| responses: | |
| '200': | |
| $ref: '#/components/responses/OrderArray' | |
| '401': | |
| $ref: '#/components/responses/Unauthorized' | |
| /order/{id}: | |
| get: | |
| tags: [Orders] | |
| summary: Get single order by ID | |
| operationId: getOrder | |
| parameters: | |
| - $ref: '#/components/parameters/Id' | |
| responses: | |
| '200': | |
| $ref: '#/components/responses/OrderWithUser' | |
| '404': | |
| $ref: '#/components/responses/NotFound' | |
| /user/{slug}: | |
| get: | |
| tags: [Users] | |
| summary: Get public user profile (by slug) | |
| operationId: getUserBySlug | |
| parameters: | |
| - $ref: '#/components/parameters/Slug' | |
| responses: | |
| '200': | |
| $ref: '#/components/responses/User' | |
| '404': | |
| $ref: '#/components/responses/NotFound' | |
| /userId/{userId}: | |
| get: | |
| tags: [Users] | |
| summary: Get public user profile (by ID) | |
| operationId: getUserById | |
| parameters: | |
| - $ref: '#/components/parameters/UserId' | |
| responses: | |
| '200': | |
| $ref: '#/components/responses/User' | |
| '404': | |
| $ref: '#/components/responses/NotFound' | |
| /me: | |
| get: | |
| tags: [Users] | |
| summary: Get authenticated user profile | |
| security: | |
| - BearerAuth: [] | |
| operationId: getMe | |
| responses: | |
| '200': | |
| $ref: '#/components/responses/UserPrivate' | |
| '401': | |
| $ref: '#/components/responses/Unauthorized' | |
| components: | |
| securitySchemes: | |
| BearerAuth: | |
| type: http | |
| scheme: bearer | |
| bearerFormat: JWT | |
| parameters: | |
| Slug: | |
| name: slug | |
| in: path | |
| required: true | |
| schema: | |
| type: string | |
| example: ash_prime_systems | |
| Id: | |
| name: id | |
| in: path | |
| required: true | |
| schema: | |
| type: string | |
| UserId: | |
| name: userId | |
| in: path | |
| required: true | |
| schema: | |
| type: string | |
| Language: | |
| name: Language | |
| in: header | |
| schema: | |
| $ref: '#/components/schemas/Language' | |
| example: en | |
| Platform: | |
| name: Platform | |
| in: header | |
| required: true | |
| schema: | |
| $ref: '#/components/schemas/Platform' | |
| example: pc | |
| FirebaseAppCheck: | |
| name: X-Firebase-AppCheck | |
| in: header | |
| required: true | |
| schema: | |
| type: string | |
| Rank: | |
| name: rank | |
| in: query | |
| schema: | |
| type: integer | |
| minimum: 0 | |
| RankLt: | |
| name: rankLt | |
| in: query | |
| schema: | |
| type: integer | |
| minimum: 1 | |
| Charges: | |
| name: charges | |
| in: query | |
| schema: | |
| type: integer | |
| minimum: 0 | |
| ChargesLt: | |
| name: chargesLt | |
| in: query | |
| schema: | |
| type: integer | |
| minimum: 1 | |
| AmberStars: | |
| name: amberStars | |
| in: query | |
| schema: | |
| type: integer | |
| minimum: 0 | |
| AmberStarsLt: | |
| name: amberStarsLt | |
| in: query | |
| schema: | |
| type: integer | |
| minimum: 1 | |
| CyanStars: | |
| name: cyanStars | |
| in: query | |
| schema: | |
| type: integer | |
| minimum: 0 | |
| CyanStarsLt: | |
| name: cyanStarsLt | |
| in: query | |
| schema: | |
| type: integer | |
| minimum: 1 | |
| Subtype: | |
| name: subtype | |
| in: query | |
| schema: | |
| type: string | |
| requestBodies: | |
| SignIn: | |
| required: true | |
| content: | |
| application/json: | |
| schema: | |
| $ref: '#/components/schemas/SignInRequest' | |
| SignUp: | |
| required: true | |
| content: | |
| application/json: | |
| schema: | |
| $ref: '#/components/schemas/SignUpRequest' | |
| RefreshToken: | |
| required: true | |
| content: | |
| application/json: | |
| schema: | |
| $ref: '#/components/schemas/RefreshTokenRequest' | |
| responses: | |
| NotFound: | |
| description: Resource not found | |
| content: | |
| application/json: | |
| schema: | |
| $ref: '#/components/schemas/ErrorResponse' | |
| Unauthorized: | |
| description: Authentication required | |
| content: | |
| application/json: | |
| schema: | |
| $ref: '#/components/schemas/ErrorResponse' | |
| Auth: | |
| description: Authentication successful | |
| content: | |
| application/json: | |
| schema: | |
| allOf: | |
| - $ref: '#/components/schemas/ApiResponse' | |
| - properties: | |
| data: | |
| $ref: '#/components/schemas/AuthData' | |
| DashboardShowcase: | |
| description: Dashboard data | |
| content: | |
| application/json: | |
| schema: | |
| allOf: | |
| - $ref: '#/components/schemas/ApiResponse' | |
| - properties: | |
| data: | |
| $ref: '#/components/schemas/DashboardShowcase' | |
| Versions: | |
| description: Version information | |
| content: | |
| application/json: | |
| schema: | |
| allOf: | |
| - $ref: '#/components/schemas/ApiResponse' | |
| - properties: | |
| data: | |
| $ref: '#/components/schemas/VersionsData' | |
| ItemShortArray: | |
| description: List of items | |
| content: | |
| application/json: | |
| schema: | |
| allOf: | |
| - $ref: '#/components/schemas/ApiResponse' | |
| - properties: | |
| data: | |
| type: array | |
| items: | |
| $ref: '#/components/schemas/ItemShort' | |
| Item: | |
| description: Item details | |
| content: | |
| application/json: | |
| schema: | |
| allOf: | |
| - $ref: '#/components/schemas/ApiResponse' | |
| - properties: | |
| data: | |
| $ref: '#/components/schemas/Item' | |
| ItemSet: | |
| description: Item set | |
| content: | |
| application/json: | |
| schema: | |
| allOf: | |
| - $ref: '#/components/schemas/ApiResponse' | |
| - properties: | |
| data: | |
| $ref: '#/components/schemas/ItemSetData' | |
| RivenArray: | |
| description: Riven weapons list | |
| content: | |
| application/json: | |
| schema: | |
| allOf: | |
| - $ref: '#/components/schemas/ApiResponse' | |
| - properties: | |
| data: | |
| type: array | |
| items: | |
| $ref: '#/components/schemas/Riven' | |
| Riven: | |
| description: Riven weapon | |
| content: | |
| application/json: | |
| schema: | |
| allOf: | |
| - $ref: '#/components/schemas/ApiResponse' | |
| - properties: | |
| data: | |
| $ref: '#/components/schemas/Riven' | |
| RivenAttributeArray: | |
| description: Riven attributes | |
| content: | |
| application/json: | |
| schema: | |
| allOf: | |
| - $ref: '#/components/schemas/ApiResponse' | |
| - properties: | |
| data: | |
| type: array | |
| items: | |
| $ref: '#/components/schemas/RivenAttribute' | |
| LichWeaponArray: | |
| description: Lich weapons | |
| content: | |
| application/json: | |
| schema: | |
| allOf: | |
| - $ref: '#/components/schemas/ApiResponse' | |
| - properties: | |
| data: | |
| type: array | |
| items: | |
| $ref: '#/components/schemas/LichWeapon' | |
| LichWeapon: | |
| description: Lich weapon | |
| content: | |
| application/json: | |
| schema: | |
| allOf: | |
| - $ref: '#/components/schemas/ApiResponse' | |
| - properties: | |
| data: | |
| $ref: '#/components/schemas/LichWeapon' | |
| LichEphemeraArray: | |
| description: Lich ephemeras | |
| content: | |
| application/json: | |
| schema: | |
| allOf: | |
| - $ref: '#/components/schemas/ApiResponse' | |
| - properties: | |
| data: | |
| type: array | |
| items: | |
| $ref: '#/components/schemas/LichEphemera' | |
| LichQuirkArray: | |
| description: Lich quirks | |
| content: | |
| application/json: | |
| schema: | |
| allOf: | |
| - $ref: '#/components/schemas/ApiResponse' | |
| - properties: | |
| data: | |
| type: array | |
| items: | |
| $ref: '#/components/schemas/LichQuirk' | |
| SisterWeaponArray: | |
| description: Sister weapons | |
| content: | |
| application/json: | |
| schema: | |
| allOf: | |
| - $ref: '#/components/schemas/ApiResponse' | |
| - properties: | |
| data: | |
| type: array | |
| items: | |
| $ref: '#/components/schemas/SisterWeapon' | |
| SisterWeapon: | |
| description: Sister weapon | |
| content: | |
| application/json: | |
| schema: | |
| allOf: | |
| - $ref: '#/components/schemas/ApiResponse' | |
| - properties: | |
| data: | |
| $ref: '#/components/schemas/SisterWeapon' | |
| SisterEphemeraArray: | |
| description: Sister ephemeras | |
| content: | |
| application/json: | |
| schema: | |
| allOf: | |
| - $ref: '#/components/schemas/ApiResponse' | |
| - properties: | |
| data: | |
| type: array | |
| items: | |
| $ref: '#/components/schemas/SisterEphemera' | |
| SisterQuirkArray: | |
| description: Sister quirks | |
| content: | |
| application/json: | |
| schema: | |
| allOf: | |
| - $ref: '#/components/schemas/ApiResponse' | |
| - properties: | |
| data: | |
| type: array | |
| items: | |
| $ref: '#/components/schemas/SisterQuirk' | |
| LocationArray: | |
| description: Locations | |
| content: | |
| application/json: | |
| schema: | |
| allOf: | |
| - $ref: '#/components/schemas/ApiResponse' | |
| - properties: | |
| data: | |
| type: array | |
| items: | |
| $ref: '#/components/schemas/Location' | |
| NpcArray: | |
| description: NPCs | |
| content: | |
| application/json: | |
| schema: | |
| allOf: | |
| - $ref: '#/components/schemas/ApiResponse' | |
| - properties: | |
| data: | |
| type: array | |
| items: | |
| $ref: '#/components/schemas/Npc' | |
| MissionArray: | |
| description: Missions | |
| content: | |
| application/json: | |
| schema: | |
| allOf: | |
| - $ref: '#/components/schemas/ApiResponse' | |
| - properties: | |
| data: | |
| type: array | |
| items: | |
| $ref: '#/components/schemas/Mission' | |
| OrderArray: | |
| description: Orders | |
| content: | |
| application/json: | |
| schema: | |
| allOf: | |
| - $ref: '#/components/schemas/ApiResponse' | |
| - properties: | |
| data: | |
| type: array | |
| items: | |
| $ref: '#/components/schemas/Order' | |
| OrderWithUserArray: | |
| description: Orders with users | |
| content: | |
| application/json: | |
| schema: | |
| allOf: | |
| - $ref: '#/components/schemas/ApiResponse' | |
| - properties: | |
| data: | |
| type: array | |
| items: | |
| $ref: '#/components/schemas/OrderWithUser' | |
| OrderWithUser: | |
| description: Order | |
| content: | |
| application/json: | |
| schema: | |
| allOf: | |
| - $ref: '#/components/schemas/ApiResponse' | |
| - properties: | |
| data: | |
| $ref: '#/components/schemas/OrderWithUser' | |
| TopOrders: | |
| description: Top orders | |
| content: | |
| application/json: | |
| schema: | |
| allOf: | |
| - $ref: '#/components/schemas/ApiResponse' | |
| - properties: | |
| data: | |
| $ref: '#/components/schemas/TopOrdersData' | |
| User: | |
| description: User profile | |
| content: | |
| application/json: | |
| schema: | |
| allOf: | |
| - $ref: '#/components/schemas/ApiResponse' | |
| - properties: | |
| data: | |
| $ref: '#/components/schemas/User' | |
| UserPrivate: | |
| description: Private user profile | |
| content: | |
| application/json: | |
| schema: | |
| allOf: | |
| - $ref: '#/components/schemas/ApiResponse' | |
| - properties: | |
| data: | |
| $ref: '#/components/schemas/UserPrivate' | |
| schemas: | |
| # Response wrappers | |
| ApiResponse: | |
| type: object | |
| required: [apiVersion] | |
| properties: | |
| apiVersion: | |
| type: string | |
| example: "2.0.0" | |
| data: | |
| description: Response data (type varies by endpoint) | |
| error: | |
| nullable: true | |
| description: Always null for successful responses | |
| ErrorResponse: | |
| type: object | |
| required: [apiVersion, error] | |
| properties: | |
| apiVersion: | |
| type: string | |
| data: | |
| nullable: true | |
| description: Always null for error responses | |
| error: | |
| type: object | |
| properties: | |
| code: | |
| type: integer | |
| message: | |
| type: string | |
| # Request schemas | |
| SignInRequest: | |
| type: object | |
| required: [email, password, clientId, deviceId, deviceName] | |
| properties: | |
| email: | |
| type: string | |
| format: email | |
| password: | |
| type: string | |
| format: password | |
| clientId: | |
| type: string | |
| deviceId: | |
| type: string | |
| deviceName: | |
| type: string | |
| SignUpRequest: | |
| allOf: | |
| - $ref: '#/components/schemas/SignInRequest' | |
| - type: object | |
| required: [platform, locale] | |
| properties: | |
| platform: | |
| $ref: '#/components/schemas/Platform' | |
| locale: | |
| $ref: '#/components/schemas/Language' | |
| RefreshTokenRequest: | |
| type: object | |
| required: [grantType, clientId, deviceId, refreshToken] | |
| properties: | |
| grantType: | |
| type: string | |
| enum: [refresh_token] | |
| clientId: | |
| type: string | |
| deviceId: | |
| type: string | |
| refreshToken: | |
| type: string | |
| # Data schemas | |
| AuthData: | |
| type: object | |
| required: [accessToken, refreshToken, tokenType, expiresIn] | |
| properties: | |
| accessToken: | |
| type: string | |
| refreshToken: | |
| type: string | |
| tokenType: | |
| type: string | |
| enum: [Bearer] | |
| expiresIn: | |
| type: integer | |
| ItemSetData: | |
| type: object | |
| properties: | |
| id: | |
| type: string | |
| items: | |
| type: array | |
| items: | |
| $ref: '#/components/schemas/Item' | |
| TopOrdersData: | |
| type: object | |
| properties: | |
| buy: | |
| type: array | |
| maxItems: 5 | |
| items: | |
| $ref: '#/components/schemas/OrderWithUser' | |
| sell: | |
| type: array | |
| maxItems: 5 | |
| items: | |
| $ref: '#/components/schemas/OrderWithUser' | |
| VersionsData: | |
| type: object | |
| properties: | |
| apps: | |
| type: object | |
| properties: | |
| ios: | |
| type: string | |
| android: | |
| type: string | |
| minIos: | |
| type: string | |
| minAndroid: | |
| type: string | |
| collections: | |
| type: object | |
| properties: | |
| items: | |
| type: string | |
| rivens: | |
| type: string | |
| liches: | |
| type: string | |
| sisters: | |
| type: string | |
| missions: | |
| type: string | |
| npcs: | |
| type: string | |
| locations: | |
| type: string | |
| updatedAt: | |
| type: string | |
| format: date-time | |
| # I18N base | |
| I18N: | |
| type: object | |
| properties: | |
| name: | |
| type: string | |
| description: | |
| type: string | |
| wikiLink: | |
| type: string | |
| icon: | |
| type: string | |
| thumb: | |
| type: string | |
| subIcon: | |
| type: string | |
| nodeName: | |
| type: string | |
| systemName: | |
| type: string | |
| # Enums | |
| Status: | |
| type: string | |
| enum: [invisible, offline, online, ingame] | |
| ActivityType: | |
| type: string | |
| enum: [UNKNOWN, IDLE, ON_MISSION, IN_DOJO, IN_ORBITER, IN_RELAY] | |
| Role: | |
| type: string | |
| enum: [user, moderator, admin] | |
| Tier: | |
| type: string | |
| enum: [none, bronze, silver, gold, diamond] | |
| Language: | |
| type: string | |
| enum: [ko, ru, de, fr, pt, zh-hans, zh-hant, es, it, pl, uk, en] | |
| Platform: | |
| type: string | |
| enum: [pc, ps4, xbox, switch, mobile] | |
| OrderType: | |
| type: string | |
| enum: [buy, sell] | |
| # Dashboard | |
| DashboardShowcaseI18N: | |
| type: object | |
| properties: | |
| title: | |
| type: string | |
| description: | |
| type: string | |
| DashboardShowcaseItem: | |
| type: object | |
| required: [item, background, bigCard] | |
| properties: | |
| item: | |
| type: string | |
| background: | |
| type: string | |
| bigCard: | |
| type: boolean | |
| DashboardShowcase: | |
| type: object | |
| properties: | |
| i18n: | |
| type: object | |
| additionalProperties: | |
| $ref: '#/components/schemas/DashboardShowcaseI18N' | |
| items: | |
| type: array | |
| items: | |
| $ref: '#/components/schemas/DashboardShowcaseItem' | |
| # Items | |
| ItemShort: | |
| type: object | |
| required: [id, slug, gameRef, tags] | |
| properties: | |
| id: | |
| type: string | |
| slug: | |
| type: string | |
| gameRef: | |
| type: string | |
| tags: | |
| type: array | |
| items: | |
| type: string | |
| setRoot: | |
| type: boolean | |
| nullable: true | |
| setParts: | |
| type: array | |
| items: | |
| type: string | |
| quantityInSet: | |
| type: integer | |
| rarity: | |
| type: string | |
| bulkTradable: | |
| type: boolean | |
| subtypes: | |
| type: array | |
| items: | |
| type: string | |
| maxRank: | |
| type: integer | |
| maxCharges: | |
| type: integer | |
| maxAmberStars: | |
| type: integer | |
| maxCyanStars: | |
| type: integer | |
| baseEndo: | |
| type: integer | |
| endoMultiplier: | |
| type: number | |
| ducats: | |
| type: integer | |
| vosfor: | |
| type: integer | |
| reqMasteryRank: | |
| type: integer | |
| nullable: true | |
| vaulted: | |
| type: boolean | |
| nullable: true | |
| tradingTax: | |
| type: integer | |
| tradable: | |
| type: boolean | |
| nullable: true | |
| i18n: | |
| type: object | |
| additionalProperties: | |
| $ref: '#/components/schemas/I18N' | |
| Item: | |
| allOf: | |
| - $ref: '#/components/schemas/ItemShort' | |
| # Rivens | |
| Riven: | |
| type: object | |
| required: [id, slug, gameRef, disposition, reqMasteryRank] | |
| properties: | |
| id: | |
| type: string | |
| slug: | |
| type: string | |
| gameRef: | |
| type: string | |
| group: | |
| type: string | |
| rivenType: | |
| type: string | |
| enum: [kitgun, melee, pistol, rifle, shotgun, zaw] | |
| disposition: | |
| type: number | |
| reqMasteryRank: | |
| type: integer | |
| i18n: | |
| type: object | |
| additionalProperties: | |
| $ref: '#/components/schemas/I18N' | |
| RivenAttribute: | |
| type: object | |
| required: [id, slug, gameRef, prefix, suffix] | |
| properties: | |
| id: | |
| type: string | |
| slug: | |
| type: string | |
| gameRef: | |
| type: string | |
| group: | |
| type: string | |
| prefix: | |
| type: string | |
| suffix: | |
| type: string | |
| exclusiveTo: | |
| type: array | |
| items: | |
| type: string | |
| positiveIsNegative: | |
| type: boolean | |
| unit: | |
| type: string | |
| positiveOnly: | |
| type: boolean | |
| negativeOnly: | |
| type: boolean | |
| i18n: | |
| type: object | |
| additionalProperties: | |
| $ref: '#/components/schemas/I18N' | |
| # Lich/Sister | |
| LichWeapon: | |
| type: object | |
| required: [id, slug, gameRef, reqMasteryRank] | |
| properties: | |
| id: | |
| type: string | |
| slug: | |
| type: string | |
| gameRef: | |
| type: string | |
| reqMasteryRank: | |
| type: integer | |
| i18n: | |
| type: object | |
| additionalProperties: | |
| $ref: '#/components/schemas/I18N' | |
| SisterWeapon: | |
| allOf: | |
| - $ref: '#/components/schemas/LichWeapon' | |
| LichEphemera: | |
| type: object | |
| required: [id, slug, gameRef, animation, element] | |
| properties: | |
| id: | |
| type: string | |
| slug: | |
| type: string | |
| gameRef: | |
| type: string | |
| animation: | |
| type: string | |
| element: | |
| type: string | |
| i18n: | |
| type: object | |
| additionalProperties: | |
| $ref: '#/components/schemas/I18N' | |
| SisterEphemera: | |
| allOf: | |
| - $ref: '#/components/schemas/LichEphemera' | |
| LichQuirk: | |
| type: object | |
| required: [id, slug] | |
| properties: | |
| id: | |
| type: string | |
| slug: | |
| type: string | |
| group: | |
| type: string | |
| i18n: | |
| type: object | |
| additionalProperties: | |
| $ref: '#/components/schemas/I18N' | |
| SisterQuirk: | |
| allOf: | |
| - $ref: '#/components/schemas/LichQuirk' | |
| # Metadata | |
| Location: | |
| type: object | |
| required: [id, slug, gameRef] | |
| properties: | |
| id: | |
| type: string | |
| slug: | |
| type: string | |
| gameRef: | |
| type: string | |
| faction: | |
| type: string | |
| minLevel: | |
| type: integer | |
| maxLevel: | |
| type: integer | |
| i18n: | |
| type: object | |
| additionalProperties: | |
| $ref: '#/components/schemas/I18N' | |
| Mission: | |
| type: object | |
| required: [id, slug, gameRef] | |
| properties: | |
| id: | |
| type: string | |
| slug: | |
| type: string | |
| gameRef: | |
| type: string | |
| i18n: | |
| type: object | |
| additionalProperties: | |
| $ref: '#/components/schemas/I18N' | |
| Npc: | |
| type: object | |
| required: [id, slug, gameRef] | |
| properties: | |
| id: | |
| type: string | |
| slug: | |
| type: string | |
| gameRef: | |
| type: string | |
| i18n: | |
| type: object | |
| additionalProperties: | |
| $ref: '#/components/schemas/I18N' | |
| # Orders | |
| Order: | |
| type: object | |
| required: [id, type, platinum, quantity, visible, createdAt, updatedAt, itemId, group] | |
| properties: | |
| id: | |
| type: string | |
| type: | |
| $ref: '#/components/schemas/OrderType' | |
| platinum: | |
| type: integer | |
| quantity: | |
| type: integer | |
| perTrade: | |
| type: integer | |
| rank: | |
| type: integer | |
| nullable: true | |
| charges: | |
| type: integer | |
| nullable: true | |
| subtype: | |
| type: string | |
| amberStars: | |
| type: integer | |
| nullable: true | |
| cyanStars: | |
| type: integer | |
| nullable: true | |
| visible: | |
| type: boolean | |
| createdAt: | |
| type: string | |
| format: date-time | |
| updatedAt: | |
| type: string | |
| format: date-time | |
| itemId: | |
| type: string | |
| group: | |
| type: string | |
| Activity: | |
| type: object | |
| properties: | |
| type: | |
| $ref: '#/components/schemas/ActivityType' | |
| details: | |
| type: string | |
| startedAt: | |
| type: string | |
| format: date-time | |
| UserShort: | |
| type: object | |
| required: [id, ingameName, reputation, locale, platform, crossplay, status, lastSeen] | |
| properties: | |
| id: | |
| type: string | |
| ingameName: | |
| type: string | |
| avatar: | |
| type: string | |
| reputation: | |
| type: integer | |
| locale: | |
| $ref: '#/components/schemas/Language' | |
| platform: | |
| $ref: '#/components/schemas/Platform' | |
| crossplay: | |
| type: boolean | |
| status: | |
| $ref: '#/components/schemas/Status' | |
| activity: | |
| $ref: '#/components/schemas/Activity' | |
| lastSeen: | |
| type: string | |
| format: date-time | |
| OrderWithUser: | |
| allOf: | |
| - $ref: '#/components/schemas/Order' | |
| - type: object | |
| required: [user] | |
| properties: | |
| user: | |
| $ref: '#/components/schemas/UserShort' | |
| # Users | |
| Achievement: | |
| type: object | |
| required: [id, slug, type] | |
| properties: | |
| id: | |
| type: string | |
| slug: | |
| type: string | |
| type: | |
| type: string | |
| secret: | |
| type: boolean | |
| reputationBonus: | |
| type: integer | |
| goal: | |
| type: integer | |
| i18n: | |
| type: object | |
| additionalProperties: | |
| $ref: '#/components/schemas/I18N' | |
| state: | |
| type: object | |
| properties: | |
| featured: | |
| type: boolean | |
| hidden: | |
| type: boolean | |
| progress: | |
| type: integer | |
| nullable: true | |
| completedAt: | |
| type: string | |
| format: date-time | |
| User: | |
| type: object | |
| required: [id, ingameName, reputation, platform, crossplay, locale, status, lastSeen] | |
| properties: | |
| id: | |
| type: string | |
| ingameName: | |
| type: string | |
| avatar: | |
| type: string | |
| background: | |
| type: string | |
| about: | |
| type: string | |
| reputation: | |
| type: integer | |
| masteryLevel: | |
| type: integer | |
| platform: | |
| $ref: '#/components/schemas/Platform' | |
| crossplay: | |
| type: boolean | |
| locale: | |
| $ref: '#/components/schemas/Language' | |
| achievementShowcase: | |
| type: array | |
| items: | |
| $ref: '#/components/schemas/Achievement' | |
| status: | |
| $ref: '#/components/schemas/Status' | |
| activity: | |
| $ref: '#/components/schemas/Activity' | |
| lastSeen: | |
| type: string | |
| format: date-time | |
| banned: | |
| type: boolean | |
| banUntil: | |
| type: string | |
| format: date-time | |
| warned: | |
| type: boolean | |
| warnMessage: | |
| type: string | |
| banMessage: | |
| type: string | |
| UserPrivate: | |
| allOf: | |
| - $ref: '#/components/schemas/User' | |
| - type: object | |
| required: [role, credits, tier, subscription, checkCode, verification] | |
| properties: | |
| role: | |
| $ref: '#/components/schemas/Role' | |
| aboutRaw: | |
| type: string | |
| masteryRank: | |
| type: integer | |
| credits: | |
| type: integer | |
| theme: | |
| type: string | |
| enum: [light, dark, system] | |
| verification: | |
| type: boolean | |
| checkCode: | |
| type: string | |
| tier: | |
| $ref: '#/components/schemas/Tier' | |
| subscription: | |
| type: boolean | |
| reviewsLeft: | |
| type: integer | |
| unreadMessages: | |
| type: integer | |
| ignoreList: | |
| type: array | |
| items: | |
| type: string | |
| deleteInProgress: | |
| type: boolean | |
| deleteAt: | |
| type: string | |
| format: date-time | |
| linkedAccounts: | |
| type: object | |
| hasEmail: | |
| type: boolean | |
| createdAt: | |
| type: string | |
| format: date-time |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment