> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.partnerpage.io/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.partnerpage.io/_mcp/server.

# Get a matchmaking request

GET https://v1.api.partnerpage.io/api/directory/private/v1alpha/matchmaking-requests/{matchmakingId}/

Retrieve details of a matchmaking request. `stateHistory` lists its state changes newest first, limited to the 20 most recent. `delivery` gives the request's hold, release and public form submission times. `partnerAssignments` lists every linked partner contact request, newest first, and is null if any of them points to a partner outside the request's directory.

Reference: https://docs.partnerpage.io/api-reference/matchmaking/get-a-matchmaking-request

## Authentication

- `Authorization` header (required) (prefixed with ` Token   `) — Your API key, sent as `Authorization: Token <your API key>`

## Request

### Path parameters

- `matchmakingId` (string, required) — ID of the matchmaking request

## Response

### 200

Detailed matchmaking request

- `firstName` (string, required)
- `lastName` (string, required)
- `email` (string, required)
- `companyName` (string, required)
- `owner` (string, required)
- `href` (string, required)
- `id` (string, required)
- `created` (string, required)
- `state` (string, required)
- `assignedPartners` (string, required)
- `dateAssigned` (string, required)
- `ownerName` (string, required)
- `customForm` (string, required)
- `stateHistory` (list of map from string to any, required)
- `senderBlocked` (boolean, required)
- `delivery` (RequestDelivery, required)
- `partnerAssignments` (list of MatchmakingPartnerAssignment, required, nullable)
- `phone` (string, optional, nullable)
- `companyWebsite` (string, optional, nullable)
- `comments` (string, optional, nullable)
- `utmQueryParams` (any, optional)
- `closeReason` (string, optional, nullable)
- `closeReasonDetail` (string, optional, nullable)
- `holdReason` (enum, optional, nullable) — * `same_message` - Same message already sent to 2 partners today * `same_phone` - Same phone number already sent to 2 partners today * `same_company` - Same company already sent to 2 partners today
  - Allowed values: `same_message`, `same_phone`, `same_company`
- `customFormResponseId` (string, optional)

## Errors

### 403 Forbidden Error

Forbidden

- `any`

### 404 Not Found Error

Request not found

- `any`

## Types

### RequestDelivery

- `delivered` (boolean, required) — True unless the request was held and never released. Does not confirm receipt by an external integration.
- `heldAt` (datetime, required, nullable)
- `releasedAt` (datetime, required, nullable)
- `publicFormSubmittedAt` (datetime, required, nullable)
- `modified` (datetime, required)

### MatchmakingPartnerAssignment

- `id` (string, required)
- `state` (enum, required) — * `pending` - Pending * `accepted` - Accepted * `declined` - declined * `closed` - Closed * `held` - Held
  - Allowed values: `pending`, `accepted`, `declined`, `closed`, `held`
- `created` (datetime, required)
- `modified` (datetime, required)
- `delivered` (boolean, required)
- `heldAt` (datetime, required, nullable)
- `releasedAt` (datetime, required, nullable)
- `partner` (MatchmakingPartnerAssignmentPartner, required)

### MatchmakingPartnerAssignmentPartner

- `id` (string, required)
- `title` (string, required)
- `externalId` (string, required, nullable)
- `isDeleted` (boolean, required)

## Examples

**Response**

```json
{
  "firstName": "string",
  "lastName": "string",
  "email": "string",
  "companyName": "MyCompany",
  "owner": "string",
  "href": "/api/directory/private/v1alpha/matchmaking-requests/219a7d94-b934-4ccf-880f-d24b55e7e03e/",
  "id": "219a7d94-b934-4ccf-880f-d24b55e7e03e",
  "created": "2025-03-22T15:00:00+00:00",
  "state": "closed",
  "assignedPartners": "string",
  "dateAssigned": "string",
  "ownerName": "string",
  "customForm": "string",
  "stateHistory": [
    {
      "changedAt": "2025-03-23T09:30:00+00:00",
      "changedBy": {
        "fullName": "Jane Doe",
        "id": "5f0c2a3e-6b1d-4c8e-9a7f-2d3b4c5e6f70"
      },
      "closeReason": "no_suitable_partner",
      "closeReasonDetail": null,
      "state": "closed"
    }
  ],
  "senderBlocked": true,
  "delivery": {
    "delivered": true,
    "heldAt": null,
    "releasedAt": null,
    "publicFormSubmittedAt": "2025-03-22T15:00:00.123456Z",
    "modified": "2025-03-23T09:30:00.654321Z"
  },
  "partnerAssignments": [
    {
      "id": "4b7e2c1d-9f3a-4e8b-a6d5-0c1f2e3d4a5b",
      "state": "declined",
      "created": "2025-03-22T16:00:00.123456Z",
      "modified": "2025-03-23T09:00:00.654321Z",
      "delivered": true,
      "heldAt": null,
      "releasedAt": null,
      "partner": {
        "id": "0f00e6b6-a7d4-4e2e-8bc5-273ddbc0d9c4",
        "title": "Entry Title",
        "externalId": "0015g00000ABCDE",
        "isDeleted": false
      }
    }
  ],
  "closeReason": "no_suitable_partner",
  "closeReasonDetail": null,
  "holdReason": null
}
```

**SDK Code**

```python Example response
import requests

url = "https://v1.api.partnerpage.io/api/directory/private/v1alpha/matchmaking-requests/matchmakingId/"

headers = {"Authorization": "Token  <apiKey>"}

response = requests.get(url, headers=headers)

print(response.json())
```

```javascript Example response
const url = 'https://v1.api.partnerpage.io/api/directory/private/v1alpha/matchmaking-requests/matchmakingId/';
const options = {method: 'GET', headers: {Authorization: 'Token  <apiKey>'}};

try {
  const response = await fetch(url, options);
  const data = await response.json();
  console.log(data);
} catch (error) {
  console.error(error);
}
```