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

# Search ContractPausedPeriods

> Search and list ContractPausedPeriod records with filtering, sorting, and pagination.

A **ContractPausedPeriod** represents a freeze period applied to a customer's plan contract (`CoworkerContract`). Plan freezing lets admins — and optionally customers — suspend a contract for one or more billing cycles without cancelling it.

Freeze dates are always aligned to billing cycle boundaries: `PauseFrom` is always the first day of the customer's next billing cycle, and `PauseUntil` is always the first day of the billing cycle when the plan is due to restart.

While a contract is frozen:

* No charges are generated for the contract for the duration of the freeze.
* The customer's status reverts to **Contact** if they have no other active contract.
* No member rates or benefits from the frozen contract apply during the freeze.
* Invoices are still generated on the usual billing day for any purchases (bookings, products) linked to the contract.

Admins can freeze contracts from the customer's account, via teams, or in bulk from Finance > Contracts. Whether customers can freeze their own plans from the Members Portal is controlled by the `AllowContractFreezing` setting on the plan (`Tariff`).

## Authentication

<Note>
  This endpoint requires OAuth2 authentication. Include a valid bearer token in the `Authorization` header.
  The authenticated user must be a full unrestricted administrator or have the **`ContractPausedPeriod-List`** role.
</Note>

## Query Parameters

### Pagination & Sorting

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

<ParamField query="size" type="integer" default="25">
  The number of records per page.
</ParamField>

<ParamField query="orderBy" type="string">
  The property name to sort results by (e.g. `Name`, `CreatedOn`).
</ParamField>

<ParamField query="dir" type="integer">
  Sort direction. `0` for ascending, `1` for descending.
</ParamField>

### Filters

<ParamField query="ContractPausedPeriod_CoworkerContract" type="integer">
  Filter by iD of the customer contract being frozen.
</ParamField>

<ParamField query="ContractPausedPeriod_CoworkerContract_Quantity" type="integer">
  Filter by quantity set on the frozen contract.
</ParamField>

<ParamField query="ContractPausedPeriod_CoworkerContract_FloorPlanDeskIds" type="string">
  Filter by comma-separated IDs of the floor plan desks assigned to the frozen contract.
</ParamField>

<ParamField query="ContractPausedPeriod_CoworkerContract_FloorPlanDeskNames" type="string">
  Filter by comma-separated names of the floor plan desks assigned to the frozen contract.
</ParamField>

<ParamField query="ContractPausedPeriod_CoworkerContract_Tariff_Name" type="string">
  Filter by name of the pricing plan (tariff) the frozen contract is for.
</ParamField>

<ParamField query="ContractPausedPeriod_CoworkerContract_Coworker_Id" type="integer">
  Filter by iD of the customer holding the frozen contract.
</ParamField>

<ParamField query="ContractPausedPeriod_CoworkerContract_Coworker_FullName" type="string">
  Filter by full name of the customer holding the frozen contract.
</ParamField>

<ParamField query="ContractPausedPeriod_CoworkerContract_Coworker_BillingName" type="string">
  Filter by billing name of the customer holding the frozen contract.
</ParamField>

<ParamField query="ContractPausedPeriod_Notes" type="string">
  Filter by optional notes or reason for this freeze period.
</ParamField>

<ParamField query="ContractPausedPeriod_PauseFrom" type="string">
  Filter by uTC date when the freeze starts. Always falls on the first day of a billing cycle.
</ParamField>

<ParamField query="ContractPausedPeriod_PauseUntil" type="string">
  Filter by uTC date when the freeze ends. Always falls on the first day of the billing cycle when the plan is due to restart.
</ParamField>

<ParamField query="ContractPausedPeriod_PauseFromLocal" type="string">
  Filter by location-timezone equivalent of PauseFrom.
</ParamField>

<ParamField query="ContractPausedPeriod_PauseUntilLocal" type="string">
  Filter by location-timezone equivalent of PauseUntil.
</ParamField>

### Range Filters

<ParamField query="from_ContractPausedPeriod_CoworkerContractQuantity" type="integer">
  Filter by quantity set on the frozen contract greater than or equal to this value.
</ParamField>

<ParamField query="to_ContractPausedPeriod_CoworkerContractQuantity" type="integer">
  Filter by quantity set on the frozen contract less than or equal to this value.
</ParamField>

<ParamField query="from_ContractPausedPeriod_CoworkerContractCoworkerId" type="integer">
  Filter by iD of the customer holding the frozen contract greater than or equal to this value.
</ParamField>

<ParamField query="to_ContractPausedPeriod_CoworkerContractCoworkerId" type="integer">
  Filter by iD of the customer holding the frozen contract less than or equal to this value.
</ParamField>

<ParamField query="from_ContractPausedPeriod_PauseFrom" type="string">
  Filter by uTC date when the freeze starts. Always falls on the first day of a billing cycle greater than or equal to this value. Format: `YYYY-MM-DDTHH:mm`.
</ParamField>

<ParamField query="to_ContractPausedPeriod_PauseFrom" type="string">
  Filter by uTC date when the freeze starts. Always falls on the first day of a billing cycle less than or equal to this value. Format: `YYYY-MM-DDTHH:mm`.
</ParamField>

<ParamField query="from_ContractPausedPeriod_PauseUntil" type="string">
  Filter by uTC date when the freeze ends. Always falls on the first day of the billing cycle when the plan is due to restart greater than or equal to this value. Format: `YYYY-MM-DDTHH:mm`.
</ParamField>

<ParamField query="to_ContractPausedPeriod_PauseUntil" type="string">
  Filter by uTC date when the freeze ends. Always falls on the first day of the billing cycle when the plan is due to restart less than or equal to this value. Format: `YYYY-MM-DDTHH:mm`.
</ParamField>

<ParamField query="from_ContractPausedPeriod_PauseFromLocal" type="string">
  Filter by location-timezone equivalent of PauseFrom greater than or equal to this value. Format: `YYYY-MM-DDTHH:mm`.
</ParamField>

<ParamField query="to_ContractPausedPeriod_PauseFromLocal" type="string">
  Filter by location-timezone equivalent of PauseFrom less than or equal to this value. Format: `YYYY-MM-DDTHH:mm`.
</ParamField>

<ParamField query="from_ContractPausedPeriod_PauseUntilLocal" type="string">
  Filter by location-timezone equivalent of PauseUntil greater than or equal to this value. Format: `YYYY-MM-DDTHH:mm`.
</ParamField>

<ParamField query="to_ContractPausedPeriod_PauseUntilLocal" type="string">
  Filter by location-timezone equivalent of PauseUntil less than or equal to this value. Format: `YYYY-MM-DDTHH:mm`.
</ParamField>

<ParamField query="from_ContractPausedPeriod_CreatedOn" type="string">
  Filter records created on or after this date. Format: `YYYY-MM-DDTHH:mm`.
</ParamField>

<ParamField query="to_ContractPausedPeriod_CreatedOn" type="string">
  Filter records created on or before this date. Format: `YYYY-MM-DDTHH:mm`.
</ParamField>

<ParamField query="from_ContractPausedPeriod_UpdatedOn" type="string">
  Filter records updated on or after this date. Format: `YYYY-MM-DDTHH:mm`.
</ParamField>

<ParamField query="to_ContractPausedPeriod_UpdatedOn" type="string">
  Filter records updated on or before this date. Format: `YYYY-MM-DDTHH:mm`.
</ParamField>

## Code Examples

### Simple listing

<CodeGroup>
  ```bash cURL theme={null}
  curl -X GET \
    "https://spaces.nexudus.com/api/billing/contractpausedperiods?page=1&size=15&orderBy=CreatedOn&dir=0" \
    -H "Authorization: Bearer YOUR_TOKEN"
  ```

  ```javascript JavaScript theme={null}
  const response = await fetch(
    'https://spaces.nexudus.com/api/billing/contractpausedperiods?' + new URLSearchParams({
      page: 1,
      size: 15,
      orderBy: 'CreatedOn',
      dir: 1 // Ascending
    }),
    {
      headers: {
        'Authorization': 'Bearer YOUR_TOKEN'
      }
    }
  );

  const data = await response.json();
  ```

  ```python Python theme={null}
  import requests

  response = requests.get(
      'https://spaces.nexudus.com/api/billing/contractpausedperiods',
      params={
          'page': 1,
          'size': 15,
          'orderBy': 'CreatedOn',
          'dir': 0 // Ascending
      },
      headers={
          'Authorization': 'Bearer YOUR_TOKEN'
      }
  )

  data = response.json()
  ```
</CodeGroup>

### Filtering by CreatedOn

<CodeGroup>
  ```bash cURL theme={null}
  curl -X GET \
    "https://spaces.nexudus.com/api/billing/contractpausedperiods?ContractPausedPeriod_CreatedOn=example-value&orderBy=CreatedOn&dir=0" \
    -H "Authorization: Bearer YOUR_TOKEN"
  ```

  ```javascript JavaScript theme={null}
  const response = await fetch(
    'https://spaces.nexudus.com/api/billing/contractpausedperiods?' + new URLSearchParams({
      ContractPausedPeriod_CreatedOn: 'example-value',
      orderBy: 'CreatedOn',
      dir: 1
    }),
    {
      headers: {
        'Authorization': 'Bearer YOUR_TOKEN'
      }
    }
  );

  const data = await response.json();
  ```

  ```python Python theme={null}
  import requests

  response = requests.get(
      'https://spaces.nexudus.com/api/billing/contractpausedperiods',
      params={
          'ContractPausedPeriod_CreatedOn': 'example-value',
          'orderBy': 'CreatedOn',
          'dir': 0 // Ascending
      },
      headers={
          'Authorization': 'Bearer YOUR_TOKEN'
      }
  )

  data = response.json()
  ```
</CodeGroup>

### Range filters

<CodeGroup>
  ```bash cURL theme={null}
  curl -X GET \
    "https://spaces.nexudus.com/api/billing/contractpausedperiods?from_ContractPausedPeriod_UpdatedOn=2025-01-01T00:00&to_ContractPausedPeriod_UpdatedOn=2025-12-31T23:59&orderBy=UpdatedOn&dir=0" \
    -H "Authorization: Bearer YOUR_TOKEN"
  ```

  ```javascript JavaScript theme={null}
  const response = await fetch(
    'https://spaces.nexudus.com/api/billing/contractpausedperiods?' + new URLSearchParams({
      from_ContractPausedPeriod_UpdatedOn: '2025-01-01T00:00',
      to_ContractPausedPeriod_UpdatedOn: '2025-12-31T23:59',
      orderBy: 'UpdatedOn',
      dir: 1 // Descending
     }),
    {
      headers: {
        'Authorization': 'Bearer YOUR_TOKEN'
      }
    }
  );

  const data = await response.json();
  ```

  ```python Python theme={null}
  import requests

  response = requests.get(
      'https://spaces.nexudus.com/api/billing/contractpausedperiods',
      params={
          'from_ContractPausedPeriod_UpdatedOn': '2025-01-01T00:00',
          'to_ContractPausedPeriod_UpdatedOn': '2025-12-31T23:59',
          'orderBy': 'UpdatedOn',
          'dir': 1 // Descending
      },
      headers={
          'Authorization': 'Bearer YOUR_TOKEN'
      }
  )

  data = response.json()
  ```
</CodeGroup>

## Response

### 200

<ResponseField name="Records" type="ContractPausedPeriod[]">
  The list of ContractPausedPeriod records matching the query. See the [Get one ContractPausedPeriod](/rest-api/billing/get-contractpausedperiods-by-id) endpoint for the full list of properties returned for each record.
</ResponseField>

<Warning>
  **Partial records** — The listing endpoint returns a summary representation of each ContractPausedPeriod. The following fields are **not populated** in the `Records[]` response: `Notes`.

  To get all fields, fetch the full record using the [Get one ContractPausedPeriod](/rest-api/billing/get-contractpausedperiods-by-id) endpoint.

  **Important for updates:** When updating a record via `PUT`, always retrieve the full record with a `GET` request first, apply your changes to that complete data, and then send the updated record. Do not use data from a listing response as the base for a `PUT` request, as missing fields may be unintentionally cleared.
</Warning>

<ResponseField name="CurrentPage" type="integer">
  Current page number.
</ResponseField>

<ResponseField name="CurrentPageSize" type="integer">
  Number of records per page.
</ResponseField>

<ResponseField name="CurrentOrderField" type="string">
  The field used for sorting.
</ResponseField>

<ResponseField name="CurrentSortDirection" type="integer">
  The sort direction (`0` = ascending, `1` = descending).
</ResponseField>

<ResponseField name="FirstItem" type="integer">
  Index of the first item on the current page.
</ResponseField>

<ResponseField name="LastItem" type="integer">
  Index of the last item on the current page.
</ResponseField>

<ResponseField name="TotalItems" type="integer">
  Total number of matching records across all pages.
</ResponseField>

<ResponseField name="TotalPages" type="integer">
  Total number of pages.
</ResponseField>

<ResponseField name="HasNextPage" type="boolean">
  Whether there is a next page of results.
</ResponseField>

<ResponseField name="HasPreviousPage" type="boolean">
  Whether there is a previous page of results.
</ResponseField>

```json Example Response theme={null}
{
  "Records": [
    {
      "CoworkerContractId": 0,
      "CoworkerContractQuantity": null,
      "CoworkerContractFloorPlanDeskIds": null,
      "CoworkerContractFloorPlanDeskNames": null,
      "CoworkerContractTariffName": null,
      "CoworkerContractCoworkerId": null,
      "CoworkerContractCoworkerFullName": null,
      "CoworkerContractCoworkerBillingName": null,
      "PauseFrom": "2025-01-15T10:30:00Z",
      "PauseUntil": "2025-01-15T10:30:00Z",
      "PauseFromLocal": null,
      "PauseUntilLocal": null,
      "Id": 87654321,
      "UpdatedOn": "2025-01-15T10:30:00Z",
      "CreatedOn": "2025-01-10T08:00:00Z",
      "UniqueId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
      "UpdatedBy": "admin@example.com",
      "IsNew": false,
      "SystemId": null,
      "ToStringText": "ContractPausedPeriod Example",
      "LocalizationDetails": null,
      "CustomFields": null
    }
  ],
  "CurrentPageSize": 15,
  "CurrentPage": 1,
  "CurrentOrderField": "CreatedOn",
  "CurrentSortDirection": 1,
  "FirstItem": 1,
  "HasNextPage": false,
  "HasPreviousPage": false,
  "LastItem": 1,
  "PageNumber": 1,
  "PageSize": 15,
  "TotalItems": 1,
  "TotalPages": 1
}
```
