basePath: /api/v1 definitions: Error: properties: error: type: string type: object Map: properties: display_name: type: string game_id: type: integer id: type: integer thumbnail: type: integer type: object PagedResponse-Map: properties: data: description: Data contains the actual response payload items: $ref: '#/definitions/Map' type: array pagination: allOf: - $ref: '#/definitions/Pagination' description: Pagination contains information about paging type: object PagedResponse-Rank: properties: data: description: Data contains the actual response payload items: $ref: '#/definitions/Rank' type: array pagination: allOf: - $ref: '#/definitions/Pagination' description: Pagination contains information about paging type: object PagedResponse-Time: properties: data: description: Data contains the actual response payload items: $ref: '#/definitions/Time' type: array pagination: allOf: - $ref: '#/definitions/Pagination' description: Pagination contains information about paging type: object PagedResponse-User: properties: data: description: Data contains the actual response payload items: $ref: '#/definitions/User' type: array pagination: allOf: - $ref: '#/definitions/Pagination' description: Pagination contains information about paging type: object PagedTotalResponse-Time: properties: data: description: Data contains the actual response payload items: $ref: '#/definitions/Time' type: array pagination: allOf: - $ref: '#/definitions/PaginationWithTotal' description: Pagination contains information about paging type: object Pagination: properties: page: description: Current page number type: integer page_size: description: Number of items per page type: integer type: object PaginationWithTotal: properties: page: description: Current page number type: integer page_size: description: Number of items per page type: integer total_items: description: Total number of items across all pages type: integer total_pages: description: Total number of pages type: integer type: object Rank: properties: game_id: type: integer id: type: integer mode_id: type: integer rank: type: number skill: type: number style_id: type: integer updated_at: type: string user: $ref: '#/definitions/User' type: object Response-Map: properties: data: allOf: - $ref: '#/definitions/Map' description: Data contains the actual response payload type: object Response-Rank: properties: data: allOf: - $ref: '#/definitions/Rank' description: Data contains the actual response payload type: object Response-Time: properties: data: allOf: - $ref: '#/definitions/Time' description: Data contains the actual response payload type: object Response-User: properties: data: allOf: - $ref: '#/definitions/User' description: Data contains the actual response payload type: object Response-array_TimePlacement: properties: data: description: Data contains the actual response payload items: $ref: '#/definitions/TimePlacement' type: array type: object Time: properties: date: type: string game_id: type: integer has_bot: type: boolean id: type: string map: $ref: '#/definitions/Map' mode_id: type: integer style_id: type: integer time: type: integer user: $ref: '#/definitions/User' type: object TimePlacement: properties: id: type: string placement: type: integer type: object User: properties: id: type: integer muted: type: boolean state_id: type: integer username: type: string type: object info: contact: {} description: |- Obtain an api key at https://dev.strafes.net Requires Data:Read permission title: StrafesNET Data API version: "1.0" paths: /map: get: description: Get a list of maps parameters: - default: 10 description: Page size (max 100) in: query maximum: 100 minimum: 1 name: page_size type: integer - default: 1 description: Page number in: query minimum: 1 name: page_number type: integer - in: query name: game_id type: integer produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/PagedResponse-Map' default: description: General error response schema: $ref: '#/definitions/Error' security: - ApiKeyAuth: [] summary: List maps tags: - maps /map/{id}: get: description: Get a specific map by its ID parameters: - description: Map ID in: path name: id required: true type: integer produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/Response-Map' "404": description: Map not found schema: $ref: '#/definitions/Error' default: description: General error response schema: $ref: '#/definitions/Error' security: - ApiKeyAuth: [] summary: Get map by ID tags: - maps /rank: get: description: Get a list of ranks with pagination and filtering parameters: - default: 10 description: Page size (max 100) in: query maximum: 100 minimum: 1 name: page_size type: integer - default: 1 description: Page number in: query minimum: 1 name: page_number type: integer - default: 1 description: 'Sort by (1: rank asc, 2: skill)' enum: - 1 - 2 in: query maximum: 2 minimum: 1 name: sort_by type: integer - in: query name: game_id type: integer - in: query name: mode_id type: integer - in: query name: style_id type: integer produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/PagedResponse-Rank' default: description: General error response schema: $ref: '#/definitions/Error' security: - ApiKeyAuth: [] summary: List ranks tags: - ranks /time: get: description: Get a list of times parameters: - default: 10 description: Page size (max 100) in: query maximum: 100 minimum: 1 name: page_size type: integer - default: 1 description: Page number in: query minimum: 1 name: page_number type: integer - in: query name: game_id type: integer - in: query name: map_id type: integer - in: query name: mode_id type: integer - in: query name: style_id type: integer - in: query name: user_id type: integer - default: "0" description: Sort field (time ASC, time DESC, date ASC, date DESC) enum: - "0" - "1" - "2" - "3" in: query name: sort_by type: string produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/PagedTotalResponse-Time' default: description: General error response schema: $ref: '#/definitions/Error' security: - ApiKeyAuth: [] summary: List times tags: - times /time/{id}: get: description: Get a specific time by its ID parameters: - description: Time ID in: path name: id required: true type: integer produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/Response-Time' "404": description: Time not found schema: $ref: '#/definitions/Error' default: description: General error response schema: $ref: '#/definitions/Error' security: - ApiKeyAuth: [] summary: Get time by ID tags: - times /time/{id}/bot: get: description: Get a HTTP 302 Redirect to the download url for the bot replay of a time by its ID if it exists parameters: - description: Time ID in: path name: id required: true type: integer responses: "302": description: Found headers: Location: description: Redirect URL type: string "404": description: Time does not have a Bot schema: $ref: '#/definitions/Error' default: description: General error response schema: $ref: '#/definitions/Error' security: - ApiKeyAuth: [] summary: Get redirect to bot download url by time ID tags: - times /time/placement: get: description: |- Get placement information for multiple times Invalid or not found time IDs are omitted in the response parameters: - collectionFormat: csv description: Comma-separated array of time IDs (25 Limit) in: query items: format: int64 type: integer name: ids required: true type: array produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/Response-array_TimePlacement' "400": description: Invalid request schema: $ref: '#/definitions/Error' default: description: General error response schema: $ref: '#/definitions/Error' security: - ApiKeyAuth: [] summary: Get placement batch tags: - times /time/worldrecord: get: description: |- Get a list of world records sorted by most recent NOTE: World records are recalutated once every hour and this endpoint is not realtime parameters: - default: 10 description: Page size (max 100) in: query maximum: 100 minimum: 1 name: page_size type: integer - default: 1 description: Page number in: query minimum: 1 name: page_number type: integer - in: query name: game_id type: integer - in: query name: map_id type: integer - in: query name: mode_id type: integer - in: query name: style_id type: integer - in: query name: user_id type: integer produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/PagedResponse-Time' default: description: General error response schema: $ref: '#/definitions/Error' security: - ApiKeyAuth: [] summary: Get world records tags: - times /user: get: description: Get a list of users parameters: - default: 10 description: Page size (max 100) in: query maximum: 100 minimum: 1 name: page_size type: integer - default: 1 description: Page number in: query minimum: 1 name: page_number type: integer - in: query name: state_id type: integer produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/PagedResponse-User' default: description: General error response schema: $ref: '#/definitions/Error' security: - ApiKeyAuth: [] summary: List users tags: - users /user/{id}: get: description: Get a specific user by their ID parameters: - description: User ID in: path name: id required: true type: integer produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/Response-User' "404": description: User not found schema: $ref: '#/definitions/Error' default: description: General error response schema: $ref: '#/definitions/Error' security: - ApiKeyAuth: [] summary: Get user by ID tags: - users /user/{id}/rank: get: description: Get a specific rank for a user by their ID parameters: - description: User ID in: path name: id required: true type: integer - in: query name: game_id required: true type: integer - in: query name: mode_id required: true type: integer - in: query name: style_id required: true type: integer produces: - application/json responses: "200": description: OK schema: $ref: '#/definitions/Response-Rank' "404": description: User not found schema: $ref: '#/definitions/Error' default: description: General error response schema: $ref: '#/definitions/Error' security: - ApiKeyAuth: [] summary: Get rank by user ID tags: - users securityDefinitions: ApiKeyAuth: in: header name: X-API-Key type: apiKey swagger: "2.0"