Splitgate Matches API

The Matches API from Splitgate — 1 operation(s) for matches.

Documentation

Specifications

Other Resources

OpenAPI Specification

splitgate-matches-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: 1047 Games Third-Party Matches API
  version: 1.0.0
  description: 'API for retrieving player statistics, player ranks, match history, and

    match details from 1047 Games.'
servers:
- url: https://api.1047games.com
  description: 1047 Games public API endpoint
security:
- bearerToken: []
tags:
- name: Matches
paths:
  /v1/game/splitgate2/matches/{matchId}:
    get:
      summary: Get match details
      operationId: getMatchDetails
      tags:
      - Matches
      description: 'Retrieve detailed information about a specific match.

        The match details include the match status, start and end times, map,

        game mode, and team details, including placement and members display

        names and stats for the match.'
      parameters:
      - name: matchId
        in: path
        required: true
        schema:
          type: string
        description: Match ID
        example: 2443ceef-3e4c-45a3-8d18-ff87e22c7cb6
      responses:
        '200':
          description: Match details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MatchDetails'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                reason: INVALID_REQUEST
                message: The request is invalid.
                domain: Matches
                error:
                  status: InvalidArgument
                  violations:
                  - field: matchId
                    reason: MISSING_REQUIRED
                    message: The matchId parameter cannot be empty.
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                reason: UNAUTHENTICATED
                message: The request could not be authenticated.
                domain: Matches
                error:
                  status: Unauthenticated
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                reason: PERMISSION_DENIED
                message: The client does not have permission to access this resource.
                domain: Matches
                error:
                  status: PermissionDenied
        '404':
          description: Match Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                reason: MATCH_NOT_FOUND
                message: No match found for the given match ID.
                domain: Matches
                error:
                  status: NotFound
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                reason: UNEXPECTED_ERROR
                message: An unexpected error occurred.
                domain: Players
                error:
                  status: Internal
components:
  schemas:
    MatchTeamDetails:
      type: object
      required:
      - teamId
      - placement
      - members
      properties:
        teamId:
          type: string
          description: Unique identifier for the team
          example: b0f57b43-9ef1-4f13-9066-f04f3bbad86a
        placement:
          type: integer
          description: '1-indexed placement of the team in the match.

            The placement is the rank of the team in the match.

            Lower placement values indicate better performance.

            Ties are indicated by multiple teams having the same placement value.

            Placement is only present for finished matches.'
          example: 1
        members:
          type: array
          items:
            $ref: '#/components/schemas/MatchPlayerDetails'
    StatsSummedOver:
      oneOf:
      - $ref: '#/components/schemas/StatsSummedOverCareer'
      - $ref: '#/components/schemas/StatsSummedOverMatch'
      - $ref: '#/components/schemas/StatsSummedOverSeason'
      - $ref: '#/components/schemas/StatsSummedOverGameMode'
      discriminator:
        propertyName: type
        mapping:
          Career: '#/components/schemas/StatsSummedOverCareer'
          Match: '#/components/schemas/StatsSummedOverMatch'
          Season: '#/components/schemas/StatsSummedOverSeason'
          GameMode: '#/components/schemas/StatsSummedOverGameMode'
      example:
        type: Career
    PermissionDenied:
      type: object
      properties:
        status:
          type: string
          enum:
          - PermissionDenied
          example: PermissionDenied
    ResourceExhausted:
      type: object
      properties:
        status:
          type: string
          enum:
          - ResourceExhausted
          example: ResourceExhausted
        violations:
          type: array
          items:
            $ref: '#/components/schemas/QuotaViolation'
    StatsSummedOverSeason:
      type: object
      required:
      - type
      - seasonSlug
      properties:
        type:
          type: string
          enum:
          - Season
          example: Season
        seasonSlug:
          type: string
          description: The human-readable identifer for the season
          example: season_0
    Unavailable:
      type: object
      properties:
        status:
          type: string
          enum:
          - Unavailable
          example: Unavailable
    MatchPlayerDetails:
      type: object
      required:
      - playerId
      - displayName
      - platform
      - stats
      properties:
        playerId:
          type: string
          description: Unique identifier for the player
          example: 09b74ba4-408f-4121-bf50-7edf11332a65
        displayName:
          type: string
          description: Display name of the player as it would appear in the match
          example: TheRizzler
        platform:
          type: string
          description: Platform that the player was playing on
          example: Steam
        stats:
          $ref: '#/components/schemas/SummaryPlayerStats'
      example:
        playerId: 09b74ba4-408f-4121-bf50-7edf11332a65
        displayName: TheRizzler
        platform: Steam
        stats:
          summedOver:
            type: Match
            matchId: 2443ceef-3e4c-45a3-8d18-ff87e22c7cb6
          updatedAt: '2024-01-01T00:10:00Z'
          matchesPlayed: 1
          wins: 1
          kills: 10
          deaths: 2
          suicides: 1
          assists: 5
          damage: 1000.5
          score: 2500
          xp: 1200
          roundWins: 3
          hits: 25
          shotsFired: 35
          precisionKills: 3
          multikill2: 1
    FailedPrecondition:
      type: object
      properties:
        status:
          type: string
          enum:
          - FailedPrecondition
          example: FailedPrecondition
        violations:
          type: array
          items:
            $ref: '#/components/schemas/PreconditionViolation'
    RequestViolation:
      type: object
      required:
      - field
      - description
      - reason
      properties:
        field:
          type: string
          description: The path to the field that caused the error
          example: playerId
        description:
          type: string
          description: Description of why the field is invalid
          example: The player ID must not be empty.
        reason:
          type: string
          description: The reason code for the violation
          example: MISSING_REQUIRED
    Aborted:
      type: object
      properties:
        status:
          type: string
          enum:
          - Aborted
          example: Aborted
    StatsSummedOverGameMode:
      type: object
      required:
      - type
      - matchTypeSlug
      properties:
        type:
          type: string
          enum:
          - MatchType
          example: MatchType
        matchTypeSlug:
          type: string
          description: The human-readable identifer for the match type
          example: arenaranked
    SummaryPlayerStats:
      type: object
      required:
      - summedOver
      - updatedAt
      properties:
        summedOver:
          $ref: '#/components/schemas/StatsSummedOver'
        updatedAt:
          type: string
          format: date-time
          description: 'The timestamp at which the stats were last updated in UTC timezone

            formatted as an ISO 8601 string.'
          example: '2024-01-01T00:10:00Z'
        matchesPlayed:
          type: integer
          description: Total number of matches played
          example: 100
          minimum: 0
        wins:
          type: integer
          description: Total number of wins
          example: 50
          minimum: 0
        losses:
          type: integer
          description: Total number of losses
          example: 50
          minimum: 0
        kills:
          type: integer
          description: Total number of kills
          example: 1000
          minimum: 0
        deaths:
          type: integer
          description: Total number of deaths
          example: 1000
          minimum: 0
        suicides:
          type: integer
          description: Total number of suicides
          example: 1000
          minimum: 0
        assists:
          type: integer
          description: Total number of assists
          example: 1000
          minimum: 0
        damage:
          type: number
          description: Total amount of damage dealt
          example: 100000.7
          minimum: 0
        score:
          type: integer
          description: Total score achieved
          example: 50000
          minimum: 0
        xp:
          type: integer
          description: Total experience points earned
          example: 25000
          minimum: 0
        roundWins:
          type: integer
          description: Total number of rounds won
          example: 200
          minimum: 0
        killsAndAssists:
          type: integer
          description: Total number of kills and assists combined
          example: 2000
          minimum: 0
        matchWins:
          type: integer
          description: Total number of match wins
          example: 45
          minimum: 0
        itemsPickedUp:
          type: integer
          description: Total number of items picked up
          example: 500
          minimum: 0
        hits:
          type: integer
          description: Total number of hits
          example: 5000
          minimum: 0
        shotsFired:
          type: integer
          description: Total number of shots fired
          example: 8000
          minimum: 0
        precisionHits:
          type: integer
          description: Total number of precision hits
          example: 1500
          minimum: 0
        reloads:
          type: integer
          description: Total number of reloads
          example: 800
          minimum: 0
        medalBackPain:
          type: integer
          description: Number of Back Pain medals earned for low health kills
          example: 5
          minimum: 0
        medalPhantomMenace:
          type: integer
          description: Number of Phantom Menace medals earned for getting a kill after you die
          example: 3
          minimum: 0
        medalCloseCall:
          type: integer
          description: Number of Close Call medals earned for one-hit kills
          example: 8
          minimum: 0
        medalAvengerKill:
          type: integer
          description: Number of Avenger Kill medals earned for killing an enemy who killed your teammate
          example: 12
          minimum: 0
        medalRevengeKill:
          type: integer
          description: Number of Revenge Kill medals earned for killing an enemy who killed you
          example: 7
          minimum: 0
        medalAssistKill:
          type: integer
          description: Number of Assist Kill medals earned for killing an enemy shortly after assisting
          example: 25
          minimum: 0
        medalGuardianAngel:
          type: integer
          description: Number of Guardian Angel medals earned for killing an enemy while they attack a teammate
          example: 4
          minimum: 0
        medalPortalFlankKill:
          type: integer
          description: Number of Portal Flank Kill medals earned for kills using portal flanking tactics
          example: 6
          minimum: 0
        medalComebackKill:
          type: integer
          description: Number of Comeback Kill medals earned for kills during comeback situations
          example: 9
          minimum: 0
        precisionKills:
          type: integer
          description: Total number of precision kills including headshots and critical hits
          example: 150
          minimum: 0
        medalShowstopper:
          type: integer
          description: Number of Showstopper medals earned for killing the top player on the enemy team
          example: 2
          minimum: 0
        medalSuicideKill:
          type: integer
          description: Number of Suicide Kill medals earned for killing yourself and an enemy simultaneously
          example: 1
          minimum: 0
        medalFromDownTown:
          type: integer
          description: Number of From Down Town medals earned for long-distance kills
          example: 10
          minimum: 0
        medalFinalStand:
          type: integer
          description: Number of Final Stand medals earned for getting a kill while being the last player standing
          example: 3
          minimum: 0
        capturePointCaptures:
          type: integer
          description: Total number of capture point captures completed
          example: 75
          minimum: 0
        medalCapturePointKill:
          type: integer
          description: Number of Capture Point Kill medals earned for kills while capturing or defending points
          example: 15
          minimum: 0
        medalCapturePointWipe:
          type: integer
          description: Number of Capture Point Wipe medals earned for clearing all enemies from a capture point
          example: 2
          minimum: 0
        multikill2:
          type: integer
          description: Number of 2 kills in quick succession
          example: 50
          minimum: 0
        multikill3:
          type: integer
          description: Number of 3 kills in quick succession
          example: 20
          minimum: 0
        multikill4:
          type: integer
          description: Number of 4 kills in quick succession
          example: 8
          minimum: 0
        multikill5:
          type: integer
          description: Number of 5 kills in quick succession
          example: 3
          minimum: 0
        multikill6:
          type: integer
          description: Number of 6 kills in quick succession
          example: 1
          minimum: 0
        multikill7:
          type: integer
          description: Number of 7 kills in quick succession
          example: 0
          minimum: 0
        killstreak2:
          type: integer
          description: Number of 2 consecutive kills without dying
          example: 40
          minimum: 0
        killstreak3:
          type: integer
          description: Number of 3 consecutive kills without dying
          example: 25
          minimum: 0
        killstreak4:
          type: integer
          description: Number of 4 consecutive kills without dying
          example: 15
          minimum: 0
        killstreak5:
          type: integer
          description: Number of 5 consecutive kills without dying
          example: 10
          minimum: 0
        killstreak6:
          type: integer
          description: Number of 6 consecutive kills without dying
          example: 6
          minimum: 0
        killstreak7:
          type: integer
          description: Number of 7 consecutive kills without dying
          example: 4
          minimum: 0
        killstreak8:
          type: integer
          description: Number of 8 consecutive kills without dying
          example: 2
          minimum: 0
        killstreak9:
          type: integer
          description: Number of 9 consecutive kills without dying
          example: 1
          minimum: 0
        killstreak10:
          type: integer
          description: Number of 10 consecutive kills without dying
          example: 1
          minimum: 0
        matchTypes:
          type: array
          items:
            $ref: '#/components/schemas/SummaryPlayerStats'
        seasons:
          type: array
          items:
            $ref: '#/components/schemas/SummaryPlayerStats'
      example:
        summedOver:
          type: Career
        updatedAt: '2024-01-01T00:10:00Z'
        matchesPlayed: 100
        wins: 50
        losses: 50
        kills: 1000
        deaths: 1000
        suicides: 100
        assists: 1000
        damage: 100000.7
        score: 50000
        xp: 25000
        roundWins: 200
        killsAndAssists: 2000
        matchWins: 45
        itemsPickedUp: 500
        hits: 5000
        shotsFired: 8000
        precisionHits: 1500
        precisionKills: 150
        multikill2: 50
        multikill3: 20
        killstreak5: 10
        capturePointCaptures: 75
        matchTypes:
        - summedOver:
            type: MatchType
            matchTypeSlug: arenaranked
          updatedAt: '2024-01-01T00:10:00Z'
          matchesPlayed: 15
          wins: 10
          losses: 5
          kills: 100
          deaths: 100
          suicides: 10
          assists: 100
          damage: 1000.5
          score: 5000
          xp: 2500
          roundWins: 30
          multikill2: 8
        - summedOver:
            type: MatchType
            matchTypeSlug: arenaunranked
          updatedAt: '2023-12-31T23:50:00Z'
          matchesPlayed: 100
          wins: 50
          losses: 50
          kills: 900
          deaths: 900
          suicides: 90
          assists: 900
          damage: 9000.2
          score: 45000
          xp: 22500
          roundWins: 170
          multikill2: 42
        seasons:
        - summedOver:
            type: Season
            seasonSlug: season_1
          updatedAt: '2024-01-01T00:10:00Z'
          matchesPlayed: 15
          wins: 10
          losses: 5
          kills: 100
          deaths: 100
          suicides: 10
          assists: 100
          damage: 1000.5
          score: 5000
          xp: 2500
          roundWins: 30
          multikill2: 8
        - summedOver:
            type: Season
            seasonSlug: season_0
          updatedAt: '2023-12-31T23:50:00Z'
          matchesPlayed: 100
          wins: 50
          losses: 50
          kills: 900
          deaths: 900
          suicides: 90
          assists: 900
          damage: 9000.2
          score: 45000
          xp: 22500
          roundWins: 170
          multikill2: 42
    InvalidArgument:
      type: object
      properties:
        status:
          type: string
          enum:
          - InvalidArgument
          example: InvalidArgument
        violations:
          type: array
          items:
            $ref: '#/components/schemas/RequestViolation'
    ErrorResponse:
      type: object
      required:
      - reason
      - message
      - domain
      - metadata
      - error
      properties:
        reason:
          type: string
          description: 'The reason code for the error.

            The reason code is a short string that is used to identify the error.

            The reason code is not localized and is intended for programmatic use.

            It is recommended to use the reason code as a keyfor localization of

            user-facing error messages, if needed.'
          example: INVALID_REQUEST
        message:
          type: string
          description: 'A high-level error message, in English.

            The message is not localized and is intended for developer consumption.

            It is recommended to use the reason code as a key for localization of

            user-facing error messages, if needed.'
          example: The request is invalid.
        domain:
          type: string
          description: The logical domain from which the error originates
          enum:
          - Players
          - Matches
          example: Players
        metadata:
          type: object
          description: 'Additional key-value pairs about the error, the request that caused the error,

            or the state of the system at the time of the error.'
          additionalProperties:
            type: string
          example:
            playerId: 09b74ba4-408f-4121-bf50-7edf11332a65
            matchId: 2443ceef-3e4c-45a3-8d18-ff87e22c7cb6
        error:
          $ref: '#/components/schemas/ErrorInfo'
    StatsSummedOverCareer:
      type: object
      required:
      - type
      properties:
        type:
          type: string
          enum:
          - Career
          example: Career
    ErrorInfo:
      oneOf:
      - $ref: '#/components/schemas/InvalidArgument'
      - $ref: '#/components/schemas/NotFound'
      - $ref: '#/components/schemas/PermissionDenied'
      - $ref: '#/components/schemas/Unauthenticated'
      - $ref: '#/components/schemas/ResourceExhausted'
      - $ref: '#/components/schemas/FailedPrecondition'
      - $ref: '#/components/schemas/Aborted'
      - $ref: '#/components/schemas/OutOfRange'
      - $ref: '#/components/schemas/Unimplemented'
      - $ref: '#/components/schemas/Internal'
      - $ref: '#/components/schemas/Unavailable'
      - $ref: '#/components/schemas/DataLoss'
      discriminator:
        propertyName: status
        mapping:
          InvalidArgument: '#/components/schemas/InvalidArgument'
          NotFound: '#/components/schemas/NotFound'
          PermissionDenied: '#/components/schemas/PermissionDenied'
          Unauthenticated: '#/components/schemas/Unauthenticated'
          ResourceExhausted: '#/components/schemas/ResourceExhausted'
          FailedPrecondition: '#/components/schemas/FailedPrecondition'
          Aborted: '#/components/schemas/Aborted'
          OutOfRange: '#/components/schemas/OutOfRange'
          Unimplemented: '#/components/schemas/Unimplemented'
          Internal: '#/components/schemas/Internal'
          Unavailable: '#/components/schemas/Unavailable'
          DataLoss: '#/components/schemas/DataLoss'
    StatsSummedOverMatch:
      type: object
      required:
      - type
      - matchId
      properties:
        type:
          type: string
          enum:
          - Match
          example: Match
        matchId:
          type: string
          description: The ID of the match
          example: 2443ceef-3e4c-45a3-8d18-ff87e22c7cb6
    QuotaViolation:
      type: object
      required:
      - subject
      - description
      properties:
        subject:
          type: string
          description: The subject of the quota violation
          example: /v1/game/splitgate2/matches/{matchId}
        description:
          type: string
          description: Description of the quota violation
          example: The client has exceeded the maximum number of match detail requests per hour.
    Unimplemented:
      type: object
      properties:
        status:
          type: string
          enum:
          - Unimplemented
          example: Unimplemented
    NotFound:
      type: object
      properties:
        status:
          type: string
          enum:
          - NotFound
          example: NotFound
    PreconditionViolation:
      type: object
      required:
      - type
      - subject
      - description
      properties:
        type:
          type: string
          description: The type of precondition violation
          example: MATCH_NOT_FINISHED
        subject:
          type: string
          description: The subject of the precondition violation
          example: /v1/game/splitgate2/matches/2443ceef-3e4c-45a3-8d18-ff87e22c7cb6
        description:
          type: string
          description: Description of the precondition violation
          example: The match has not finished yet.
    DataLoss:
      type: object
      properties:
        status:
          type: string
          enum:
          - DataLoss
          example: DataLoss
    MatchDetails:
      type: object
      required:
      - matchId
      - status
      - updatedAt
      - startedAt
      - mapSlug
      - matchTypeSlug
      - gameModeSlug
      - teams
      properties:
        matchId:
          type: string
          description: Unique identifier for the match
          example: 2443ceef-3e4c-45a3-8d18-ff87e22c7cb6
        status:
          type: string
          description: Status of the match
          enum:
          - InProgress
          - Finished
          - Crashed
          - Abandoned
          example: Finished
        updatedAt:
          type: string
          format: date-time
          description: 'The timestamp at which the match was last updated in UTC timezone

            formatted as an ISO 8601 string.'
          example: '2024-01-01T00:10:00Z'
        startedAt:
          type: string
          format: date-time
          description: 'The timestamp at which the match started in UTC timezone

            formatted as an ISO 8601 string.'
          example: '2024-01-01T00:00:00Z'
        endedAt:
          type: string
          format: date-time
          description: 'The timestamp at which the match ended in UTC timezone

            formatted as an ISO 8601 string.

            This field is only present for finished matches.'
          example: '2024-01-01T00:10:00Z'
        matchTypeSlug:
          type: string
          description: Human readable identifier for the match type that the was played.
          example: arenaunranked
        gameModeSlug:
          type: string
          description: 'Human readable identifier for the game mode that the match was played in.

            The game mode is the specific ruleset and play style used in the match.'
          example: arena_capture_hotzone
        playlistSlug:
          type: string
          description: 'Human readable identifier for the playlist that the match was played from.

            The playlist is the experience that the players queue for.

            Playlist is only present for matches that are played from the matchmaking queue.'
          example: arena_unranked_quickplay
        mapSlug:
          type: string
          description: Human readable identifier for the map that the match was played on
          example: Academy
        teams:
          type: array
          items:
            $ref: '#/components/schemas/MatchTeamDetails'
    Unauthenticated:
      type: object
      properties:
        status:
          type: string
          enum:
          - Unauthenticated
          example: Unauthenticated
    Internal:
      type: object
      properties:
        status:
          type: string
          enum:
          - Internal
          example: Internal
    OutOfRange:
      type: object
      properties:
        status:
          type: string
          enum:
          - OutOfRange
          example: OutOfRange
  securitySchemes:
    bearerToken:
      type: http
      scheme: bearer
      bearerFormat: jwt