# contractorOps.terms.hours.preview

Preview a focused hour-limit update, preserving every other current agreement term. hours is a patch in minutes; null removes a cap. For 5 hours weekly with flexible days, use dailyMaxMinutes:null, weeklyMaxMinutes:300. mode record_existing corrects terms already agreed; send_amendment changes the agreement through signatures. Returns current and proposed terms, guidance, basisTermsId, expectedBasisRevision, basisDate, effectiveFrom, blockers and next action. Weekly caps run Monday–Sunday, never pool across pay periods. No records change.

`GET | POST /api/v1/accounting/contractorOps.terms.hours.preview`

Permissions: `accounting:read` · Roles: admin, finance

MCP tool: `accounting_contractor_ops_terms_hours_preview`

## Fields

| Field | Type | Required | Notes |
| --- | --- | --- | --- |
| `contractorId` | string (ID) | Yes | The ID of a contractor, from contractors.list. |
| `hours` | object | Yes | No other fields. |
| `hours.dailyMaxMinutes` | integer or null |  |  |
| `hours.weeklyMaxMinutes` | integer or null |  |  |
| `hours.monthlyMaxMinutes` | integer or null |  |  |
| `hours.totalMaxMinutes` | integer or null |  |  |
| `hours.enforcement` | enum |  | One of: `block`, `flag`. |
| `effectiveFrom` | string (date) |  |  |
| `mode` | enum | Yes | One of: `record_existing`, `send_amendment`. |
| `companySigner` | object |  | No other fields. |
| `companySigner.userId` | string | Yes | The ID of a person in your company. 1–200 characters. |
| `companySigner.name` | string | Yes | A display name. 1–200 characters. |
| `companySigner.email` | string (email) | Yes | An email address. at most 320 characters. |
| `companySigner.title` | string or null |  | A short title. |

## Example request

```bash
curl https://app.getoatmilk.com/api/v1/accounting/contractorOps.terms.hours.preview \
  -H "Authorization: Bearer $OATMILK_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "contractorId": "4d5e6f7a-8b9c-4d0e-8f1a-2b3c4d5e6f7a",
  "hours": {
    "dailyMaxMinutes": 90
  },
  "mode": "record_existing"
}'
```

Reference page: https://app.getoatmilk.com/docs/api/contractorOps.terms.hours.preview
