# `api.jobs.on_hold.create` > `POST /job/{jobDisplayId}/onhold` — ACPortal **Python** ```python api.jobs.on_hold.create(job_display_id: int, *, data: SaveOnHoldRequest | dict) -> SaveOnHoldResponse ``` **CLI** ```bash ab jobs on_hold create [--data ...] ``` Place a job on hold. Request model: :class:`SaveOnHoldRequest`. ## Request body — `SaveOnHoldRequest` | Field | Type | Required | Description | |---|---|---|---| | `reasonId` | `str` | yes | Hold reason UUID (required) | | `responsiblePartyTypeId` | `str` | yes | Responsible-party-type UUID (required) | | `comment` | `Optional[str]` | no | Free-text comment (<=1024 chars) | | `nextStepId` | `Optional[str]` | no | Next-step lookup UUID | | `dueDate` | `Optional[datetime]` | no | Follow-up due date | | `assignedToId` | `Optional[int]` | no | Contact ID assigned to follow up (int) | | `resolvedDate` | `Optional[datetime]` | no | Resolution timestamp | | `resolvedCodeId` | `Optional[str]` | no | Resolution code lookup UUID | | `startDate` | `Optional[datetime]` | no | Hold start timestamp | ## Response Returns `SaveOnHoldResponse`. | Field | Type | Required | Description | |---|---|---|---| | `onHoldId` | `Optional[str]` | no | On-hold record ID | | `status` | `Optional[str]` | no | Operation status | --- [← Back to api.jobs](../jobs.md)