Bifrost Bifrost
POSThttps://api.dev.bifrostgaming.com/v1/graphql

partnerGetMatchIds

v1

Returns completed match IDs for a given game type, ordered newest first. Supports cursor-based pagination to retrieve all historical matches. By default returns the most recent 50 matches. Use the cursor and limit parameters to page through the full match history.

Operation Type

Query

Rate Limit: 120 requests per 60 seconds per partner (2 req/s)

Rate limits are enforced per partnerId via Redis using a fixed 60-second window. You can issue up to 120 requests per minute (an average of 2 requests per second).

Important usage notes

  • This endpoint does NOT require an encrypted payload. Pass your partnerId and partnerEncryptionKey directly as query variables.
  • Returns matches ordered newest first. Default limit is 50, maximum is 200.
  • To get ALL matches: call with limit=200, then pass nextCursor as cursor in subsequent requests until hasMore is false.
  • The matchId returned can be used directly with partnerGetMatchData to fetch the full match report.
  • The guildName field may be null for servers that are not associated with a guild.
  • Rate limit: 10 requests per 60 seconds. When paginating through all matches, add a 7-second delay between calls to stay within the limit.
  • Backward compatible: omitting limit and cursor returns the same 50 most recent matches as before.

Input Fields

FieldTypeRequiredDescription
partnerIdString!RequiredYour unique partner identifier, provided when your partner account was created.
partnerEncryptionKeyString!RequiredYour partner encryption key (Base64-encoded). This is used to verify your identity — it is NOT used to encrypt a payload for this endpoint.
gameTypeString!RequiredThe game type code to query matches for (e.g. "HLL" for Hell Let Loose).
limitIntOptionalNumber of matches to return per page. Default: 50, maximum: 200. Values outside this range are clamped.
cursorStringOptionalPagination cursor. Pass the nextCursor value from the previous response to get the next page of results. Omit for the first page (most recent matches).

Code Examples

# Get the most recent 50 matches (default)
curl -X POST https://api.dev.bifrostgaming.com/v1/graphql \
  -H "Content-Type: application/json" \
  -d '{
    "query": "query PartnerGetMatchIds($partnerId: String!, $partnerEncryptionKey: String!, $gameType: String!, $limit: Int, $cursor: String) { partnerGetMatchIds(partnerId: $partnerId, partnerEncryptionKey: $partnerEncryptionKey, gameType: $gameType, limit: $limit, cursor: $cursor) { gameType matches { matchId serverName guildName matchTime } nextCursor hasMore } }",
    "variables": {
      "partnerId": "your-partner-id",
      "partnerEncryptionKey": "your-base64-encryption-key",
      "gameType": "HLL",
      "limit": 200
    }
  }'

Postman Collection

Download a ready-to-use Postman collection for this endpoint. Import it into Postman to start testing immediately.

How to import into Postman
  1. Open Postman and click Import (top-left)
  2. Drag and drop the downloaded .json file, or click Upload Files and select it
  3. Click Import to confirm
  4. The collection appears in your sidebar — expand it and select the request
  5. In the Body tab, update the placeholder values (your-partner-id, etc.) with your actual credentials
  6. Click Send

The collection uses Postman's GraphQL body type, which provides syntax highlighting and variable editing. Make sure your Postman version is 7.2+ for GraphQL support.

Success Response200

{
  "data": {
    "partnerGetMatchIds": {
      "gameType": "HLL",
      "matches": [
        {
          "matchId": "99149599-487a-5a06-a270-f8f4399af657",
          "serverName": "[13SNC] #1 - Dirty's Heroes LVL 75+!",
          "guildName": "[13SNC]",
          "matchTime": "2026-03-20 12:08:32"
        },
        {
          "matchId": "e10376be-5dbb-5c81-85c6-4b8527eb127d",
          "serverName": "BAD COMPANY - New player friendly",
          "guildName": "BAD Company",
          "matchTime": "2026-03-20 11:49:46"
        },
        {
          "matchId": "1bddf7cf-a78c-51ae-a095-456674dd2fee",
          "serverName": "D-DAY 24/7 | NEWCOMERS WELCOME",
          "guildName": "D-DAY 24/7",
          "matchTime": "2026-03-20 11:25:28"
        }
      ],
      "nextCursor": "2026-03-20 11:25:28",
      "hasMore": true
    }
  }
}

Error Responses

Response Fields

FieldTypeRequiredDescription
gameTypeStringRequiredThe game type that was queried.
matches[PartnerMatchIdEntry]RequiredArray of match entries for this page, up to the requested limit.
matches[].matchIdStringRequiredUnique identifier for the match. Use this with partnerGetMatchData.
matches[].serverNameStringRequiredName of the game server where the match was played.
matches[].guildNameStringOptionalName of the guild that owns the server, or null if no guild is associated.
matches[].matchTimeStringRequiredTimestamp of when the match ended (format: YYYY-MM-DD HH:MM:SS, UTC).
nextCursorStringOptionalPagination cursor for the next page. Pass this as the cursor parameter in your next request. Null when there are no more results.
hasMoreBooleanRequiredTrue if there are more matches beyond this page. When false, you have reached the end of the match history.

In partnership with

Brilliant game servers for communities large and small.

Get yours today!

Shrapnelworks Logo

A Shrapnelworks product