> ## 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 CoworkerContracts

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

A **CoworkerContract** is the foundation for automatic billing. It links a customer (`Coworker`) to a plan (`Tariff`) that drives the billing frequency, benefits and default settings for the contract. A customer can hold as many contracts as needed, each pointing to the same or different plans.

A customer with at least one active contract is regarded as a **Member**; customers with no active contracts are **Contacts**. Nexudus uses this distinction to enforce policies on products, resources, events, pricing and many other entities that expose `OnlyForMembers` or `OnlyForContacts` properties.

**Pricing** — The contract price can be fixed (`Price` is not null) or derived from the plan it is for. The `Value` field is used in reporting to compare with the actual price. Automatic price adjustments over time can be set up via `ContractSchedule` child entities.

**Billing cycle** — `RenewalDate` is the date on which the contract will next be automatically invoiced; it advances automatically each time the contract is invoiced. `InvoicedPeriod` is the period the next invoice will cover. For a new contract these two dates are usually the same. If `Tariff.AdvanceInvoiceCycles` is greater than 1, Nexudus invoices several periods in one go the first time, pushing `InvoicedPeriod` ahead of `RenewalDate` from the first invoice onwards. When the contract is cancelled, Nexudus stops invoicing once `InvoicedPeriod` reaches the cancellation date.

**Benefits** — The plan may include benefits (booking credits, time passes, etc.) which are released and assigned to the contract-holder customer based on the contract cycle or other expiration criteria (month, week, day, etc.).

**Cancellation** — Contracts support minimum contract length (`ContractTerm`), cancellation policies (`CancellationLimitDays`, `ProRateCancellation`) and cancellation reasons. `CancelTeamContracts` can cascade cancellation to team members.

**Additional charges** — Contracts can optionally include products (`ContractProduct` entities) to be billed alongside the plan, as well as security deposits/retainers (`ContractDeposit` entities).

## 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 **`CoworkerContract-List`** role.
</Note>

## Enums

<Accordion title="eCancellationReason">
  | Value | Name                     |
  | ----- | ------------------------ |
  | 1     | PriceTooHigh             |
  | 2     | NewJobRelocation         |
  | 3     | MovedToOtherSpace        |
  | 4     | ChangeWorkEnvironment    |
  | 5     | LackCommunityInterations |
  | 6     | PoorSpaceCondition       |
  | 7     | OtherMembers             |
  | 8     | Rellocated               |
  | 9     | BusinessExpansion        |
  | 10    | Pause                    |
  | 11    | Renewed                  |
  | 12    | Upgraded                 |
  | 13    | Downgraded               |
  | 19    | Covid19                  |
  | 99    | Other                    |
</Accordion>

<Accordion title="eDeliveryHandlingPreference">
  | Value | Name                       |
  | ----- | -------------------------- |
  | 1     | StoreForCollection         |
  | 2     | Forward                    |
  | 3     | OpenScanForward            |
  | 4     | OpenScanRecycle            |
  | 5     | OpenScanShred              |
  | 6     | OpenScanStoreForCollection |
  | 7     | Recycle                    |
  | 8     | ReturnToSender             |
  | 9     | Shred                      |
  | 10    | DepositCheck               |
  | 11    | Unknown                    |
</Accordion>

## 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="CoworkerContract_IssuedBy" type="integer">
  Filter by Issued By Id.
</ParamField>

<ParamField query="CoworkerContract_IssuedBy_Name" type="string">
  Filter by name of the business issuing this contract.
</ParamField>

<ParamField query="CoworkerContract_Coworker" type="integer">
  Filter by Coworker Id.
</ParamField>

<ParamField query="CoworkerContract_Coworker_CoworkerType" type="string">
  Filter by Coworker Coworker Type.
</ParamField>

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

<ParamField query="CoworkerContract_Coworker_CompanyName" type="string">
  Filter by company name of the customer holding this contract.
</ParamField>

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

<ParamField query="CoworkerContract_Coworker_Email" type="string">
  Filter by email address of the customer holding this contract.
</ParamField>

<ParamField query="CoworkerContract_Coworker_Active" type="boolean">
  Filter by Coworker Active.
</ParamField>

<ParamField query="CoworkerContract_Tariff" type="integer">
  Filter by Tariff Id.
</ParamField>

<ParamField query="CoworkerContract_Tariff_Name" type="string">
  Filter by name of the plan this contract is for.
</ParamField>

<ParamField query="CoworkerContract_Tariff_InvoiceEvery" type="integer">
  Filter by Tariff Invoice Every.
</ParamField>

<ParamField query="CoworkerContract_Tariff_InvoiceEveryWeeks" type="integer">
  Filter by Tariff Invoice Every Weeks.
</ParamField>

<ParamField query="CoworkerContract_Tariff_Price" type="number">
  Filter by default price of the plan. Used when the contract has no fixed Price override.
</ParamField>

<ParamField query="CoworkerContract_Tariff_Currency_Code" type="string">
  Filter by currency code of the plan.
</ParamField>

<ParamField query="CoworkerContract_NextTariff" type="integer">
  Filter by Next Tariff Id.
</ParamField>

<ParamField query="CoworkerContract_NextTariff_Name" type="string">
  Filter by name of the next plan the contract will switch to.
</ParamField>

<ParamField query="CoworkerContract_Notes" type="string">
  Filter by free-text notes for this contract.
</ParamField>

<ParamField query="CoworkerContract_StartDate" type="string">
  Filter by contract start date.
</ParamField>

<ParamField query="CoworkerContract_BillingDay" type="integer">
  Filter by day of month on which billing occurs.
</ParamField>

<ParamField query="CoworkerContract_RenewalDate" type="string">
  Filter by date on which the contract will next be automatically invoiced. Updated automatically every time the contract is invoiced, advancing by the plan's renewal period.
</ParamField>

<ParamField query="CoworkerContract_InvoicedPeriod" type="string">
  Filter by period the next invoice will cover. For new contracts this equals RenewalDate. If Tariff.AdvanceInvoiceCycles > 1, Nexudus invoices several periods at once on the first invoice, pushing InvoicedPeriod ahead of RenewalDate. Nexudus stops invoicing when InvoicedPeriod reaches the cancellation date.
</ParamField>

<ParamField query="CoworkerContract_ContractTerm" type="string">
  Filter by minimum contract length end date. Defines the earliest date at which the contract can be cancelled without penalty.
</ParamField>

<ParamField query="CoworkerContract_Price" type="number">
  Filter by fixed price override for this contract. If null, the contract uses the plan's default price (TariffPrice).
</ParamField>

<ParamField query="CoworkerContract_Value" type="number">
  Filter by contract value used in reporting to compare against the actual invoiced price.
</ParamField>

<ParamField query="CoworkerContract_Quantity" type="integer">
  Filter by quantity.
</ParamField>

<ParamField query="CoworkerContract_Active" type="boolean">
  Filter by whether the contract is active. Active contracts make the customer a Member; inactive contracts make them a Contact.
</ParamField>

<ParamField query="CoworkerContract_MainContract" type="boolean">
  Filter by whether this is the customer's main contract. The main contract drives the customer's primary plan assignment.
</ParamField>

<ParamField query="CoworkerContract_Cancelled" type="boolean">
  Filter by whether this contract has been cancelled.
</ParamField>

<ParamField query="CoworkerContract_PurchaseOrder" type="string">
  Filter by purchase order.
</ParamField>

<ParamField query="CoworkerContract_IncludeSignupFee" type="boolean">
  Filter by whether to include the plan's signup fee when creating this contract.
</ParamField>

<ParamField query="CoworkerContract_InvoiceAdvancedCycles" type="boolean">
  Filter by whether to invoice multiple billing cycles in advance on the first invoice, as configured by Tariff.AdvanceInvoiceCycles.
</ParamField>

<ParamField query="CoworkerContract_ApplyProRating" type="boolean">
  Filter by whether to pro-rate the first invoice based on the contract start date relative to the billing cycle.
</ParamField>

<ParamField query="CoworkerContract_NextAutoInvoice" type="string">
  Filter by date of the next automatic invoice generation for this contract.
</ParamField>

<ParamField query="CoworkerContract_PricePlanTermsAccepted" type="boolean">
  Filter by whether the customer has accepted the plan's terms and conditions.
</ParamField>

<ParamField query="CoworkerContract_PricePlanTermsAcceptedOn" type="string">
  Filter by date on which the customer accepted the plan's terms and conditions.
</ParamField>

<ParamField query="CoworkerContract_CancellationDate" type="string">
  Filter by date on which the contract will be cancelled. Nexudus stops invoicing when InvoicedPeriod reaches this date.
</ParamField>

<ParamField query="CoworkerContract_CancellationLimitDays" type="integer">
  Filter by minimum number of days' notice required before cancellation takes effect.
</ParamField>

<ParamField query="CoworkerContract_ProRateCancellation" type="boolean">
  Filter by whether to pro-rate the final invoice when the contract is cancelled mid-cycle.
</ParamField>

<ParamField query="CoworkerContract_CancelTeamContracts" type="boolean">
  Filter by whether to cascade cancellation to contracts of team members under this customer.
</ParamField>

<ParamField query="CoworkerContract_CancellationReason" type="integer">
  Filter by reason for cancellation.
</ParamField>

<ParamField query="CoworkerContract_CancellationNotes" type="string">
  Filter by free-text notes about the cancellation.
</ParamField>

<ParamField query="CoworkerContract_DeliveryHandlingPreferenceChecks" type="integer">
  Filter by delivery handling preference for checks.
</ParamField>

<ParamField query="CoworkerContract_DeliveryHandlingPreferenceMail" type="integer">
  Filter by delivery handling preference for mail.
</ParamField>

<ParamField query="CoworkerContract_DeliveryHandlingPreferenceParcels" type="integer">
  Filter by delivery handling preference for parcels.
</ParamField>

<ParamField query="CoworkerContract_DeliveryHandlingPreferencePublicity" type="integer">
  Filter by delivery handling preference for publicity.
</ParamField>

<ParamField query="CoworkerContract_DeliveryInstructions" type="string">
  Filter by free-text delivery instructions for this contract's mail handling.
</ParamField>

<ParamField query="CoworkerContract_IdentityChecksDueOn" type="string">
  Filter by date by which identity verification checks must be completed for this contract.
</ParamField>

<ParamField query="CoworkerContract_AddressChecksDueOn" type="string">
  Filter by date by which address verification checks must be completed for this contract.
</ParamField>

<ParamField query="CoworkerContract_StartDateLocal" type="string">
  Filter by Start Date Local.
</ParamField>

<ParamField query="CoworkerContract_RenewalDateLocal" type="string">
  Filter by Renewal Date Local.
</ParamField>

<ParamField query="CoworkerContract_NextAutoInvoiceLocal" type="string">
  Filter by Next Auto Invoice Local.
</ParamField>

<ParamField query="CoworkerContract_PricePlanTermsAcceptedOnLocal" type="string">
  Filter by Price Plan Terms Accepted On Local.
</ParamField>

<ParamField query="CoworkerContract_CancellationDateLocal" type="string">
  Filter by Cancellation Date Local.
</ParamField>

<ParamField query="CoworkerContract_ContractTermLocal" type="string">
  Filter by Contract Term Local.
</ParamField>

<ParamField query="CoworkerContract_ProposalUniqueId" type="string">
  Filter by unique ID of the proposal that originated this contract.
</ParamField>

<ParamField query="CoworkerContract_ProposalContractUniqueId" type="string">
  Filter by unique ID of the proposal contract line that originated this contract.
</ParamField>

<ParamField query="CoworkerContract_CourseMemberUniqueId" type="string">
  Filter by Course Member Unique Id.
</ParamField>

<ParamField query="CoworkerContract_InvoicedPeriodLocal" type="string">
  Filter by Invoiced Period Local.
</ParamField>

<ParamField query="CoworkerContract_FloorPlanDeskIds" type="string">
  Filter by comma-separated IDs of floor-plan items assigned to this contract.
</ParamField>

<ParamField query="CoworkerContract_FloorPlanDeskNames" type="string">
  Filter by comma-separated names of floor-plan items assigned to this contract.
</ParamField>

<ParamField query="CoworkerContract_FloorPlanDeskVariantIds" type="string">
  Filter by comma-separated IDs of floor-plan item variants assigned to this contract.
</ParamField>

<ParamField query="CoworkerContract_FloorPlanDeskVariantNames" type="string">
  Filter by comma-separated names of floor-plan item variants assigned to this contract.
</ParamField>

<ParamField query="CoworkerContract_PriceWithProductsAndDeposits" type="number">
  Filter by total contract price including linked products (CoworkerProducts) and security deposits.
</ParamField>

<ParamField query="CoworkerContract_PriceWithProducts" type="number">
  Filter by total contract price including linked products (CoworkerProducts) but excluding security deposits.
</ParamField>

<ParamField query="CoworkerContract_PoBoxNumber" type="string">
  Filter by pO box number.
</ParamField>

<ParamField query="CoworkerContract_InPausedPeriod" type="boolean">
  Filter by whether the contract is currently in a paused period. Paused contracts are not invoiced.
</ParamField>

<ParamField query="CoworkerContract_InPausedPeriodFrom" type="string">
  Filter by start date of the current pause period.
</ParamField>

<ParamField query="CoworkerContract_InPausedPeriodUntil" type="string">
  Filter by end date of the current pause period. The contract resumes billing after this date.
</ParamField>

### Range Filters

<ParamField query="from_CoworkerContract_TariffInvoiceEvery" type="integer">
  Filter by tariff invoice every greater than or equal to this value.
</ParamField>

<ParamField query="to_CoworkerContract_TariffInvoiceEvery" type="integer">
  Filter by tariff invoice every less than or equal to this value.
</ParamField>

<ParamField query="from_CoworkerContract_TariffInvoiceEveryWeeks" type="integer">
  Filter by tariff invoice every weeks greater than or equal to this value.
</ParamField>

<ParamField query="to_CoworkerContract_TariffInvoiceEveryWeeks" type="integer">
  Filter by tariff invoice every weeks less than or equal to this value.
</ParamField>

<ParamField query="from_CoworkerContract_TariffPrice" type="number">
  Filter by default price of the plan. Used when the contract has no fixed Price override greater than or equal to this value.
</ParamField>

<ParamField query="to_CoworkerContract_TariffPrice" type="number">
  Filter by default price of the plan. Used when the contract has no fixed Price override less than or equal to this value.
</ParamField>

<ParamField query="from_CoworkerContract_StartDate" type="string">
  Filter by contract start date greater than or equal to this value. Format: `YYYY-MM-DDTHH:mm`.
</ParamField>

<ParamField query="to_CoworkerContract_StartDate" type="string">
  Filter by contract start date less than or equal to this value. Format: `YYYY-MM-DDTHH:mm`.
</ParamField>

<ParamField query="from_CoworkerContract_BillingDay" type="integer">
  Filter by day of month on which billing occurs greater than or equal to this value.
</ParamField>

<ParamField query="to_CoworkerContract_BillingDay" type="integer">
  Filter by day of month on which billing occurs less than or equal to this value.
</ParamField>

<ParamField query="from_CoworkerContract_RenewalDate" type="string">
  Filter by date on which the contract will next be automatically invoiced. Updated automatically every time the contract is invoiced, advancing by the plan's renewal period greater than or equal to this value. Format: `YYYY-MM-DDTHH:mm`.
</ParamField>

<ParamField query="to_CoworkerContract_RenewalDate" type="string">
  Filter by date on which the contract will next be automatically invoiced. Updated automatically every time the contract is invoiced, advancing by the plan's renewal period less than or equal to this value. Format: `YYYY-MM-DDTHH:mm`.
</ParamField>

<ParamField query="from_CoworkerContract_InvoicedPeriod" type="string">
  Filter by period the next invoice will cover. For new contracts this equals RenewalDate. If Tariff.AdvanceInvoiceCycles > 1, Nexudus invoices several periods at once on the first invoice, pushing InvoicedPeriod ahead of RenewalDate. Nexudus stops invoicing when InvoicedPeriod reaches the cancellation date greater than or equal to this value. Format: `YYYY-MM-DDTHH:mm`.
</ParamField>

<ParamField query="to_CoworkerContract_InvoicedPeriod" type="string">
  Filter by period the next invoice will cover. For new contracts this equals RenewalDate. If Tariff.AdvanceInvoiceCycles > 1, Nexudus invoices several periods at once on the first invoice, pushing InvoicedPeriod ahead of RenewalDate. Nexudus stops invoicing when InvoicedPeriod reaches the cancellation date less than or equal to this value. Format: `YYYY-MM-DDTHH:mm`.
</ParamField>

<ParamField query="from_CoworkerContract_ContractTerm" type="string">
  Filter by minimum contract length end date. Defines the earliest date at which the contract can be cancelled without penalty greater than or equal to this value. Format: `YYYY-MM-DDTHH:mm`.
</ParamField>

<ParamField query="to_CoworkerContract_ContractTerm" type="string">
  Filter by minimum contract length end date. Defines the earliest date at which the contract can be cancelled without penalty less than or equal to this value. Format: `YYYY-MM-DDTHH:mm`.
</ParamField>

<ParamField query="from_CoworkerContract_Price" type="number">
  Filter by fixed price override for this contract. If null, the contract uses the plan's default price (TariffPrice) greater than or equal to this value.
</ParamField>

<ParamField query="to_CoworkerContract_Price" type="number">
  Filter by fixed price override for this contract. If null, the contract uses the plan's default price (TariffPrice) less than or equal to this value.
</ParamField>

<ParamField query="from_CoworkerContract_Value" type="number">
  Filter by contract value used in reporting to compare against the actual invoiced price greater than or equal to this value.
</ParamField>

<ParamField query="to_CoworkerContract_Value" type="number">
  Filter by contract value used in reporting to compare against the actual invoiced price less than or equal to this value.
</ParamField>

<ParamField query="from_CoworkerContract_Quantity" type="integer">
  Filter by quantity greater than or equal to this value.
</ParamField>

<ParamField query="to_CoworkerContract_Quantity" type="integer">
  Filter by quantity less than or equal to this value.
</ParamField>

<ParamField query="from_CoworkerContract_NextAutoInvoice" type="string">
  Filter by date of the next automatic invoice generation for this contract greater than or equal to this value. Format: `YYYY-MM-DDTHH:mm`.
</ParamField>

<ParamField query="to_CoworkerContract_NextAutoInvoice" type="string">
  Filter by date of the next automatic invoice generation for this contract less than or equal to this value. Format: `YYYY-MM-DDTHH:mm`.
</ParamField>

<ParamField query="from_CoworkerContract_PricePlanTermsAcceptedOn" type="string">
  Filter by date on which the customer accepted the plan's terms and conditions greater than or equal to this value. Format: `YYYY-MM-DDTHH:mm`.
</ParamField>

<ParamField query="to_CoworkerContract_PricePlanTermsAcceptedOn" type="string">
  Filter by date on which the customer accepted the plan's terms and conditions less than or equal to this value. Format: `YYYY-MM-DDTHH:mm`.
</ParamField>

<ParamField query="from_CoworkerContract_CancellationDate" type="string">
  Filter by date on which the contract will be cancelled. Nexudus stops invoicing when InvoicedPeriod reaches this date greater than or equal to this value. Format: `YYYY-MM-DDTHH:mm`.
</ParamField>

<ParamField query="to_CoworkerContract_CancellationDate" type="string">
  Filter by date on which the contract will be cancelled. Nexudus stops invoicing when InvoicedPeriod reaches this date less than or equal to this value. Format: `YYYY-MM-DDTHH:mm`.
</ParamField>

<ParamField query="from_CoworkerContract_CancellationLimitDays" type="integer">
  Filter by minimum number of days' notice required before cancellation takes effect greater than or equal to this value.
</ParamField>

<ParamField query="to_CoworkerContract_CancellationLimitDays" type="integer">
  Filter by minimum number of days' notice required before cancellation takes effect less than or equal to this value.
</ParamField>

<ParamField query="from_CoworkerContract_IdentityChecksDueOn" type="string">
  Filter by date by which identity verification checks must be completed for this contract greater than or equal to this value. Format: `YYYY-MM-DDTHH:mm`.
</ParamField>

<ParamField query="to_CoworkerContract_IdentityChecksDueOn" type="string">
  Filter by date by which identity verification checks must be completed for this contract less than or equal to this value. Format: `YYYY-MM-DDTHH:mm`.
</ParamField>

<ParamField query="from_CoworkerContract_AddressChecksDueOn" type="string">
  Filter by date by which address verification checks must be completed for this contract greater than or equal to this value. Format: `YYYY-MM-DDTHH:mm`.
</ParamField>

<ParamField query="to_CoworkerContract_AddressChecksDueOn" type="string">
  Filter by date by which address verification checks must be completed for this contract less than or equal to this value. Format: `YYYY-MM-DDTHH:mm`.
</ParamField>

<ParamField query="from_CoworkerContract_StartDateLocal" type="string">
  Filter by start date local greater than or equal to this value. Format: `YYYY-MM-DDTHH:mm`.
</ParamField>

<ParamField query="to_CoworkerContract_StartDateLocal" type="string">
  Filter by start date local less than or equal to this value. Format: `YYYY-MM-DDTHH:mm`.
</ParamField>

<ParamField query="from_CoworkerContract_RenewalDateLocal" type="string">
  Filter by renewal date local greater than or equal to this value. Format: `YYYY-MM-DDTHH:mm`.
</ParamField>

<ParamField query="to_CoworkerContract_RenewalDateLocal" type="string">
  Filter by renewal date local less than or equal to this value. Format: `YYYY-MM-DDTHH:mm`.
</ParamField>

<ParamField query="from_CoworkerContract_NextAutoInvoiceLocal" type="string">
  Filter by next auto invoice local greater than or equal to this value. Format: `YYYY-MM-DDTHH:mm`.
</ParamField>

<ParamField query="to_CoworkerContract_NextAutoInvoiceLocal" type="string">
  Filter by next auto invoice local less than or equal to this value. Format: `YYYY-MM-DDTHH:mm`.
</ParamField>

<ParamField query="from_CoworkerContract_PricePlanTermsAcceptedOnLocal" type="string">
  Filter by price plan terms accepted on local greater than or equal to this value. Format: `YYYY-MM-DDTHH:mm`.
</ParamField>

<ParamField query="to_CoworkerContract_PricePlanTermsAcceptedOnLocal" type="string">
  Filter by price plan terms accepted on local less than or equal to this value. Format: `YYYY-MM-DDTHH:mm`.
</ParamField>

<ParamField query="from_CoworkerContract_CancellationDateLocal" type="string">
  Filter by cancellation date local greater than or equal to this value. Format: `YYYY-MM-DDTHH:mm`.
</ParamField>

<ParamField query="to_CoworkerContract_CancellationDateLocal" type="string">
  Filter by cancellation date local less than or equal to this value. Format: `YYYY-MM-DDTHH:mm`.
</ParamField>

<ParamField query="from_CoworkerContract_ContractTermLocal" type="string">
  Filter by contract term local greater than or equal to this value. Format: `YYYY-MM-DDTHH:mm`.
</ParamField>

<ParamField query="to_CoworkerContract_ContractTermLocal" type="string">
  Filter by contract term local less than or equal to this value. Format: `YYYY-MM-DDTHH:mm`.
</ParamField>

<ParamField query="from_CoworkerContract_InvoicedPeriodLocal" type="string">
  Filter by invoiced period local greater than or equal to this value. Format: `YYYY-MM-DDTHH:mm`.
</ParamField>

<ParamField query="to_CoworkerContract_InvoicedPeriodLocal" type="string">
  Filter by invoiced period local less than or equal to this value. Format: `YYYY-MM-DDTHH:mm`.
</ParamField>

<ParamField query="from_CoworkerContract_PriceWithProductsAndDeposits" type="number">
  Filter by total contract price including linked products (CoworkerProducts) and security deposits greater than or equal to this value.
</ParamField>

<ParamField query="to_CoworkerContract_PriceWithProductsAndDeposits" type="number">
  Filter by total contract price including linked products (CoworkerProducts) and security deposits less than or equal to this value.
</ParamField>

<ParamField query="from_CoworkerContract_PriceWithProducts" type="number">
  Filter by total contract price including linked products (CoworkerProducts) but excluding security deposits greater than or equal to this value.
</ParamField>

<ParamField query="to_CoworkerContract_PriceWithProducts" type="number">
  Filter by total contract price including linked products (CoworkerProducts) but excluding security deposits less than or equal to this value.
</ParamField>

<ParamField query="from_CoworkerContract_InPausedPeriodFrom" type="string">
  Filter by start date of the current pause period greater than or equal to this value. Format: `YYYY-MM-DDTHH:mm`.
</ParamField>

<ParamField query="to_CoworkerContract_InPausedPeriodFrom" type="string">
  Filter by start date of the current pause period less than or equal to this value. Format: `YYYY-MM-DDTHH:mm`.
</ParamField>

<ParamField query="from_CoworkerContract_InPausedPeriodUntil" type="string">
  Filter by end date of the current pause period. The contract resumes billing after this date greater than or equal to this value. Format: `YYYY-MM-DDTHH:mm`.
</ParamField>

<ParamField query="to_CoworkerContract_InPausedPeriodUntil" type="string">
  Filter by end date of the current pause period. The contract resumes billing after this date less than or equal to this value. Format: `YYYY-MM-DDTHH:mm`.
</ParamField>

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

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

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

<ParamField query="to_CoworkerContract_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/coworkercontracts?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/coworkercontracts?' + 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/coworkercontracts',
      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/coworkercontracts?CoworkerContract_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/coworkercontracts?' + new URLSearchParams({
      CoworkerContract_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/coworkercontracts',
      params={
          'CoworkerContract_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/coworkercontracts?from_CoworkerContract_UpdatedOn=2025-01-01T00:00&to_CoworkerContract_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/coworkercontracts?' + new URLSearchParams({
      from_CoworkerContract_UpdatedOn: '2025-01-01T00:00',
      to_CoworkerContract_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/coworkercontracts',
      params={
          'from_CoworkerContract_UpdatedOn': '2025-01-01T00:00',
          'to_CoworkerContract_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="CoworkerContract[]">
  The list of CoworkerContract records matching the query. See the [Get one CoworkerContract](/rest-api/billing/get-coworkercontracts-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 CoworkerContract. The following fields are **not populated** in the `Records[]` response: `Notes`, `PurchaseOrder`, `CancellationNotes`, `DeliveryInstructions`, `PoBoxNumber`.

  To get all fields, fetch the full record using the [Get one CoworkerContract](/rest-api/billing/get-coworkercontracts-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": [
    {
      "IssuedById": 0,
      "IssuedByName": null,
      "CoworkerId": 0,
      "CoworkerCoworkerType": null,
      "CoworkerFullName": null,
      "CoworkerCompanyName": null,
      "CoworkerBillingName": null,
      "CoworkerEmail": null,
      "CoworkerActive": null,
      "TariffId": 0,
      "TariffName": null,
      "TariffInvoiceEvery": null,
      "TariffInvoiceEveryWeeks": null,
      "TariffPrice": 0,
      "TariffCurrencyCode": null,
      "NextTariffId": null,
      "NextTariffName": null,
      "StartDate": null,
      "BillingDay": 0,
      "RenewalDate": null,
      "InvoicedPeriod": null,
      "ContractTerm": null,
      "Price": null,
      "Value": null,
      "Desks": [],
      "Variants": [],
      "Quantity": 0,
      "Active": false,
      "MainContract": false,
      "Cancelled": false,
      "IncludeSignupFee": false,
      "InvoiceAdvancedCycles": false,
      "ApplyProRating": false,
      "NextAutoInvoice": null,
      "PricePlanTermsAccepted": false,
      "PricePlanTermsAcceptedOn": null,
      "CancellationDate": null,
      "CancellationLimitDays": null,
      "ProRateCancellation": false,
      "CancelTeamContracts": false,
      "CancellationReason": 0,
      "DeliveryHandlingPreferenceChecks": 0,
      "DeliveryHandlingPreferenceMail": 0,
      "DeliveryHandlingPreferenceParcels": 0,
      "DeliveryHandlingPreferencePublicity": 0,
      "IdentityChecksDueOn": null,
      "AddressChecksDueOn": null,
      "StartDateLocal": null,
      "RenewalDateLocal": null,
      "NextAutoInvoiceLocal": null,
      "PricePlanTermsAcceptedOnLocal": null,
      "CancellationDateLocal": null,
      "ContractTermLocal": null,
      "ProposalUniqueId": null,
      "ProposalContractUniqueId": null,
      "CourseMemberUniqueId": null,
      "InvoicedPeriodLocal": null,
      "FloorPlanDeskIds": null,
      "FloorPlanDeskNames": null,
      "FloorPlanDeskVariantIds": null,
      "FloorPlanDeskVariantNames": null,
      "PriceWithProductsAndDeposits": 0,
      "PriceWithProducts": 0,
      "InPausedPeriod": false,
      "InPausedPeriodFrom": null,
      "InPausedPeriodUntil": 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": "CoworkerContract 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
}
```
