---
title: List Q&amp;A questions (GET /api/v2/data-rooms/{data_room_id}/questions) | HelpRange API
description: GET /api/v2/data-rooms/{data_room_id}/questions: Questions of the room&#x27;s Q&amp;A, newest first.
url: https://www.helprange.com/developers/api/list-data-room-questions
---

GET

# List Q&A questions

`https://www.helprange.com/api/v2/data-rooms/{data_room_id}/questions`

Questions of the room's Q&A, newest first. Q&A and request lists need the Max or Unlimited plan, the Deal Room Pass or the trial (else 402).

**Plans:** Pro, Max, Unlimited, Deal Room Pass, trial. **Auth:** `Authorization: Bearer hr_live_…` (team key), `X-API-Key`, `Authorization: Api-Key <key>` or an OAuth `Bearer` token. **Scope:** `rooms:read`. **Operation id:** `listDataRoomQuestions`

## Parameters

| Name | In | Type | Description |
|---|---|---|---|
| `data_room_id` required | path | integer | Data room id (from List data rooms). (min 1) |
| `status` | query | "all" / "open" / "published" / "new" / "assigned" / "answered" / "approved" / "declined" | Default all. answered = waiting for approval. |
| `category` | query | "legal" / "financial" / "tax" / "hr" / "commercial" / "it" / "other" | Only this category. |
| `limit` | query | integer | 1–500 (default 100). (min 1, max 500) |

## Example request

```
curl -X GET 'https://www.helprange.com/api/v2/data-rooms/10/questions?status=open' \
  -H "X-API-Key: $HELPRANGE_API_KEY"
```

```
const res = await fetch('https://www.helprange.com/api/v2/data-rooms/10/questions?status=open', {
  method: 'GET',
  headers: {'X-API-Key': process.env.HELPRANGE_API_KEY},
});
const data = await res.json();
if (!res.ok) throw new Error(`${res.status}: ${data.error || data.message || data.reason}`);
console.log(data);
```

```
import os

import requests

r = requests.get(
    'https://www.helprange.com/api/v2/data-rooms/10/questions',
    headers={'X-API-Key': os.environ['HELPRANGE_API_KEY']},
    params={
        "status": "open",
    },
    timeout=60,
)
r.raise_for_status()
print(r.json())
```

The samples read the key from the `HELPRANGE_API_KEY` environment variable.

## Responses

| Status | Description |
|---|---|
| `200` | OK |
| `400` | Invalid input – the message says which parameter. |
| `401` | Missing or invalid API key / OAuth token. Team keys: code invalid_key, key_revoked, key_expired or key_owner_removed. |
| `402` | Your plan does not include the REST API (the Free plan) or this feature (e.g. NDA needs Max). |
| `403` | The team API key lacks the scope this endpoint needs. |
| `404` | Not found – or not yours (the API never says which). |
| `405` | Wrong HTTP method for this endpoint. |
| `429` | A usage limit was reached – wait Retry-After seconds. |

Example response · 200

```
{
  "data_room_id": 10,
  "questions": [
    {
      "id": 41,
      "number": "Q7",
      "status": "assigned",
      "status_label": "Assigned",
      "category": "legal",
      "text": "Any pending litigation?",
      "source": "guest",
      "asked_by": "buyer@bidco.com",
      "document_id": 252,
      "document": "articles.pdf",
      "index": "2.1",
      "page": 4,
      "visibility": "private",
      "request_item_id": null,
      "assignee": "ann@acme.com",
      "answer": null,
      "answer_approved": false,
      "decline_reason": null,
      "asked_at": "2026-11-10T07:30:00+00:00",
      "answered_at": null,
      "approved_at": null
    }
  ]
}
```

## Try it

**Uses your real account.** The request goes from your browser straight to `www.helprange.com` with your API key and acts as you. The key stays in this page (in this tab's session storage only if you tick the box), is never put in a URL and is not sent to analytics. Do not paste a key on a shared computer.
 API key

  Remember in this tab

data_room_id (path, required)

status (query)

category (query)

limit (query)

```

```
