---
title: "findMatch(for:withCompletionHandler:)"
framework: gamekit
role: symbol
role_heading: Instance Method
path: "gamekit/gkmatchmaker/findmatch(for:withcompletionhandler:)"
---

# findMatch(for:withCompletionHandler:)

Initiates a request to find players for a peer-to-peer match.

## Declaration

```swift
func findMatch(for request: GKMatchRequest, withCompletionHandler completionHandler: (@Sendable (GKMatch?, (any Error)?) -> Void)? = nil)
```

```swift
func findMatch(for request: GKMatchRequest) async throws -> GKMatch
```

## Parameters

- `request`: The configuration for the match.
- `completionHandler`: The block that GameKit calls when it completes the request. This block receives the following parameters:

## Mentioned in

Finding multiple players for a game Finding players for custom server-based games

## Discussion

Discussion To find players using matchmaking rules, set the rules-related properties in request (queueName and optionally, properties) before you call this method. For more information, see Matchmaking rules.

## See Also

### Matching players

- [findPlayers(forHostedRequest:withCompletionHandler:)](gamekit/gkmatchmaker/findplayers(forhostedrequest:withcompletionhandler:).md)
- [findMatchedPlayers(_:withCompletionHandler:)](gamekit/gkmatchmaker/findmatchedplayers(_:withcompletionhandler:).md)
- [GKMatchedPlayers](gamekit/gkmatchedplayers.md)
- [addPlayers(to:matchRequest:completionHandler:)](gamekit/gkmatchmaker/addplayers(to:matchrequest:completionhandler:).md)
- [finishMatchmaking(for:)](gamekit/gkmatchmaker/finishmatchmaking(for:).md)
- [cancel()](gamekit/gkmatchmaker/cancel().md)
- [cancelPendingInvite(to:)](gamekit/gkmatchmaker/cancelpendinginvite(to:).md)
