> 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 all contact requests

GET https://v1.api.partnerpage.io/api/directory/private/v1alpha/directories/{directoryId}/contact-requests/

Retrieve directory contact-request history, including deleted partners and matchmaking assignments. Newest first unless a supported ``sort`` is supplied (oldest first with ``stale=true``); ties are broken by id.

Reference: https://docs.partnerpage.io/api-reference/contact-request/get-all-contact-requests

## Authentication

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

## Request

### Path parameters

- `directoryId` (string, required) — ID of the directory containing the contact requests

### Query parameters

- `created_from` (datetime, optional) — Inclusive creation start date (ISO 8601).
- `created_to` (datetime, optional) — Inclusive creation end date (ISO 8601); midnight includes the entire day.
- `delivered` (boolean, optional) — Only requests that were delivered to a partner: leaves out held requests and requests closed while held, as the requests report does.
- `entry_id` (string, optional) — Exact partner entry ID, including deleted partner history. Also supported by CSV export.
- `page` (integer, optional) — Page number. CSV exports all matching rows when omitted.
- `page_size` (integer, optional) — Number of results per page.
- `project_status` (string, optional) — Comma-separated project statuses to keep: new, contacted, engaged, on_hold, secured, launched_deployed, lost, or not_set for contact requests with no project status, an empty one, or a stored value that is not one of the listed statuses.
- `routing_source` (string, optional) — Exact routing source label to keep; repeat the parameter to keep several labels. An empty value keeps contact requests with no routing source.
- `search` (string, optional) — Search partner, customer or directory name.
- `sort` (string, optional) — Sort by created, company_name, entry_title or directory_name; prefix with - for descending. Omitted or unsupported: newest first (oldest first with stale=true). Ties are broken by id, so pages are stable.
- `source` (string, optional) — Contact origin: contact_request or matchmaking. Omit to include both.
- `stale` (boolean, optional) — Only pending requests with no reminder or partner activity for 3 days. Defaults to oldest first unless a supported sort is supplied.
- `state` (string, optional) — Exact contact-request state: pending, accepted or declined.

## Response

### 200

Paginated list of contact requests

- `list of PartnerContactRequestReader`

## Errors

### 400 Bad Request Error

Invalid project status, routing source or date

- `any`

### 404 Not Found Error

Contact request not found

- `any`

## Types

### PartnerContactRequestReader

All resources should return their href url

- `href` (string, required)
- `id` (string, required)
- `companyName` (string, required)
- `created` (string, required)
- `state` (string, required)
- `projectStatus` (enum, required, nullable) — * `new` - New * `contacted` - Contacted * `engaged` - Engaged * `on_hold` - On hold * `secured` - Secured * `launched_deployed` - Launched / Deployed * `lost` - Lost
  - Allowed values: `new`, `contacted`, `engaged`, `on_hold`, `secured`, `launched_deployed`, `lost`
- `entry` (map from string to any, required)
- `directory` (map from string to any, required)
- `source` (enum, required) — * `matchmaking` - Matchmaking * `contact_request` - Contact Request
  - Allowed values: `matchmaking`, `contact_request`
- `customFormResponseId` (string, optional)
- `declineReason` (string, optional, nullable)
- `declineReasonDetail` (string, optional, nullable)
- `closeReason` (string, optional, nullable)
- `closeReasonDetail` (string, optional, nullable)
- `routingSource` (string, optional, nullable)
- `isStale` (boolean, optional)
- `daysWaiting` (integer, optional)
- `reminderCount` (integer, optional)
- `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`

## Examples

**Response**

```json
[
  {
    "href": "string",
    "id": "string",
    "companyName": "string",
    "created": "string",
    "state": "string",
    "projectStatus": "new",
    "entry": {},
    "directory": {},
    "source": "matchmaking",
    "count": 3,
    "next": "admin.dev.partnerpage.io/api/directory/private/v1alpha/directories/72887176-abc4-48d7-bdd6-35cf31aafb7e/contact-requests/",
    "previous": null,
    "results": [
      {
        "companyName": "test",
        "created": "2024-08-23T13:40:00+00:00",
        "directory": {
          "id": "12345678-1234-1234-1234-123456789abc",
          "name": "Test Directory",
          "orgId": "72887176-abc4-48d7-bdd6-35cf31aafb7e",
          "orgName": "Test org"
        },
        "entry": {
          "id": "0f00e6b6-a7d4-4e2e-8bc5-273ddbc0d9c4",
          "owner": "2a5201d0-8b59-42b0-bda5-8aaf2c46c7bd",
          "title": "Entry Test"
        },
        "href": "/api/directory/private/v1alpha/contact-requests/219a7d94-b934-4ccf-880f-d24b55e7e03e/",
        "id": "219a7d94-b934-4ccf-880f-d24b55e7e03e",
        "state": "pending"
      },
      {
        "companyName": "test-2",
        "created": "2024-08-23T13:40:00+00:00",
        "directory": {
          "id": "12345678-1234-1234-1234-123456789abc",
          "name": "Test Directory",
          "orgId": "72887176-abc4-48d7-bdd6-35cf31aafb7e",
          "orgName": "Test org"
        },
        "entry": {
          "id": "0f00e6b6-a7d4-4e2e-8bc5-273ddbc0d9c4",
          "owner": "2a5201d0-8b59-42b0-bda5-8aaf2c46c7bd",
          "title": "Entry Test"
        },
        "href": "/api/directory/private/v1alpha/contact-requests/219a7d94-b934-4ccf-880f-d24b55e7e03e/",
        "id": "219a7d94-b934-4ccf-880f-d24b55e7e03e",
        "state": "accepted"
      },
      {
        "companyName": "test-3",
        "created": "2024-08-23T13:40:00+00:00",
        "directory": {
          "id": "12345678-1234-1234-1234-123456789abc",
          "name": "Test Directory",
          "orgId": "72887176-abc4-48d7-bdd6-35cf31aafb7e",
          "orgName": "Test org"
        },
        "entry": {
          "id": "0f00e6b6-a7d4-4e2e-8bc5-273ddbc0d9c4",
          "owner": "2a5201d0-8b59-42b0-bda5-8aaf2c46c7bd",
          "title": "Entry Test"
        },
        "href": "/api/directory/private/v1alpha/contact-requests/219a7d94-b934-4ccf-880f-d24b55e7e03e/",
        "id": "219a7d94-b934-4ccf-880f-d24b55e7e03e",
        "state": "declined"
      }
    ]
  }
]
```

**SDK Code**

```python Example response
import requests

url = "https://v1.api.partnerpage.io/api/directory/private/v1alpha/directories/directoryId/contact-requests/"

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/directories/directoryId/contact-requests/';
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);
}
```