POST

Change a data room

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

Renames the room (name: what guests see) and / or changes its settings, like the room's Settings window: watermark, download, screenshot protection, notifications, expiry, NDA on / off (nda, nda_id, nda_template, nda_mode), Q&A, access requests, room folders. Only what is sent changes; the room's documents take the new settings (within what each file type allows). Only a setting switched ON is checked against the plan (402) – a room keeps what it has, switching off is always allowed. Turning folders off deletes the room's folders; their documents stay in the room (409 when the room is frozen). Answers with the room.

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:write. Operation id: updateDataRoom

Parameters

NameInTypeDescription
data_room_id requiredpathintegerData room id (from List data rooms). (min 1)

Header Idempotency-Key (optional, up to 255 characters): retry with the same key and body within 24 hours and you get the first response back (Idempotent-Replayed: true) – the request is not run twice. Another body: 422 idempotency_key_reused; still running: 409 idempotency_key_in_progress. More.

Request body

Content types: application/json, application/x-www-form-urlencoded.

FieldTypeDescription
namestringNew name guests see. (max length 254)
settingsobjectOnly the settings sent change (unknown keys: 400). They may also be sent at the top level. A setting the plan does not include: 402 naming the plan – never dropped silently.
folders_enabledboolean or integer or stringShortcut (also accepted inside settings). true / false (also 1 / 0 or "true" / "false").

Example request

curl -X POST https://www.helprange.com/api/v2/data-rooms/10 \
  -H "X-API-Key: $HELPRANGE_API_KEY" \
  -H 'Content-Type: application/json' \
  --data-binary '{"settings": {"nda": true, "nda_id": 4, "download": false, "expires_on": "2027-03-31"}}'

The samples read the key from the HELPRANGE_API_KEY environment variable.

Responses

StatusDescription
200OK
400Invalid input – the message says which parameter.
401Missing or invalid API key / OAuth token. Team keys: code invalid_key, key_revoked, key_expired or key_owner_removed.
402Your plan does not include the REST API (the Free plan) or this feature (e.g. NDA needs Max).
403The team API key lacks the scope this endpoint needs.
404Not found – or not yours (the API never says which).
405Wrong HTTP method for this endpoint.
409The data room is frozen, the signed PDF is not ready yet, (webhooks) the team already has an endpoint / the endpoint is turned off, or (code idempotency_key_in_progress) a request with the same Idempotency-Key is still running – retry in a few seconds.
422code idempotency_key_reused: this Idempotency-Key was already used in the last 24 hours with a different request (method, path or body). Use a new key for a new request.
429A usage limit was reached – wait Retry-After seconds.
Example response · 200
{
  "id": 10,
  "name": "Project Falcon",
  "nda_required": "Falcon NDA",
  "folders_enabled": true,
  "settings": {
    "watermark": true,
    "download": false,
    "screenshot_protection": false,
    "notify": true,
    "expires_at": null,
    "nda": {
      "enabled": true,
      "nda_id": 4,
      "name": "Falcon NDA",
      "mode": "click"
    },
    "qa": true,
    "access_requests": false,
    "folders_enabled": true
  },
  "links": {
    "guest_link": "https://acme.helprange.com/data-room/0c6f2b9e7d1a4f3b8a5e6d7c9b0a1f2e/",
    "panel_url": "https://www.helprange.com/user/outside-team/10/",
    "owner_preview_url": "https://www.helprange.com/user/outside-team/10/preview"
  },
  "folders": [
    {
      "id": 5,
      "name": "Financials"
    }
  ],
  "approval_workflow": false,
  "guests": [
    {
      "id": 77,
      "email": "buyer@bidco.com",
      "link": "https://acme.helprange.com/view-team/0c6f2b9e7d1a4f3b8a5e6d7c9b0a1f2e/5b2e8c1d9f7a4e3b/",
      "views": 23,
      "last_view_at": "2026-11-09T17:40:00+00:00",
      "nda": "signed",
      "nda_signed_at": "2026-11-02T10:00:00+00:00"
    }
  ],
  "pending_access_requests": 1,
  "documents": [
    {
      "id": 250,
      "name": "teaser.pdf",
      "views": 11,
      "room_link_id": 901,
      "room_folder_id": null,
      "room_folder": null,
      "group": null,
      "approval": "published"
    }
  ],
  "expires_at": null,
  "index_numbering": true,
  "freeze": {
    "frozen": false,
    "guest_access": "full",
    "frozen_at": null,
    "archives": []
  },
  "qa": {
    "available": true,
    "open_questions": 3,
    "questions": 12,
    "request_items": 40,
    "guests_can_ask": true,
    "answers_need_approval": false,
    "guests_see_request_list": true
  }
}

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 – this POST changes data. 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.