> ## Documentation Index
> Fetch the complete documentation index at: https://docs.techeval.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# GET /interviews — Paginated Interview Session List

> GET /interviews — retrieve a paginated list of all interview sessions for your account, with optional filters for status, role, and date range.

Use `GET /interviews` to retrieve all interview sessions associated with your account. Results are paginated and can be filtered by status, role, or date. This endpoint is useful for building dashboards, syncing data to your ATS, or auditing past interviews.

**Endpoint**

```
GET https://api.techeval.ai/v1/interviews
```

**Authentication:** Bearer token required — see [Authentication](/api-reference/authentication).

***

## Query Parameters

<ParamField query="status" type="string">
  Filter results by interview status. Accepted values: `scheduled`, `in_progress`, `completed`, `expired`. Omit this parameter to return all statuses.
</ParamField>

<ParamField query="role" type="string">
  Filter results by the job role string (e.g., `"AI Engineer"`). The match is case-insensitive.
</ParamField>

<ParamField query="from_date" type="string">
  Return only interviews created on or after this date. Use ISO 8601 format: `YYYY-MM-DD` (e.g., `"2025-09-01"`).
</ParamField>

<ParamField query="to_date" type="string">
  Return only interviews created on or before this date. Use ISO 8601 format: `YYYY-MM-DD` (e.g., `"2025-09-30"`).
</ParamField>

<ParamField query="page" type="integer" default="1">
  The page number to retrieve. Defaults to `1`.
</ParamField>

<ParamField query="per_page" type="integer" default="20">
  Number of results to return per page. Defaults to `20`. Maximum is `100`.
</ParamField>

***

## Example Request

Retrieve the second page of completed interviews for the `"AI Engineer"` role in September 2025:

```bash theme={null}
curl -X GET "https://api.techeval.ai/v1/interviews?status=completed&role=AI%20Engineer&from_date=2025-09-01&to_date=2025-09-30&page=2&per_page=20" \
  -H "Authorization: Bearer YOUR_API_KEY"
```

***

## Response

A successful `200 OK` response returns a paginated envelope:

<ResponseField name="interviews" type="array">
  An array of interview session objects. Each object contains the same fields as the [Retrieve Interview](/api-reference/interviews/retrieve) response: `interview_id`, `candidate_name`, `candidate_email`, `role`, `interview_type`, `evaluation_level`, `status`, `interviewUrl`, `expires_at`, and `created_at`.
</ResponseField>

<ResponseField name="total" type="integer">
  The total number of interview sessions matching your filters, across all pages.
</ResponseField>

<ResponseField name="page" type="integer">
  The current page number returned.
</ResponseField>

<ResponseField name="per_page" type="integer">
  The number of results returned per page.
</ResponseField>

**Example response:**

```json theme={null}
{
  "interviews": [
    {
      "interview_id": "int_a1b2c3d4",
      "candidate_name": "Jane Smith",
      "candidate_email": "jane@example.com",
      "role": "AI Engineer",
      "interview_type": "System Design",
      "evaluation_level": "Mid-Level to Senior",
      "status": "completed",
      "interviewUrl": "https://techeval.ai/interview/int_a1b2c3d4",
      "expires_at": "2025-09-15T14:30:00Z",
      "created_at": "2025-09-12T14:30:00Z"
    },
    {
      "interview_id": "int_e5f6g7h8",
      "candidate_name": "Alex Johnson",
      "candidate_email": "alex@example.com",
      "role": "AI Engineer",
      "interview_type": "Technical Deep Dive",
      "evaluation_level": "Senior to Architect",
      "status": "completed",
      "interviewUrl": "https://techeval.ai/interview/int_e5f6g7h8",
      "expires_at": "2025-09-20T09:00:00Z",
      "created_at": "2025-09-17T09:00:00Z"
    }
  ],
  "total": 38,
  "page": 2,
  "per_page": 20
}
```


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.