---
search:
  tags:
    - Terms
    - PATCH
seo:
  description: >-
    Alias of PATCH /organization-terms/{id}. Partial update of term name, code,
    date range, and… Reference for the PATCH /terms/{id} endpoint in the Fuxam
    API v4.
sidebar:
  label: Update an organization term (alias)
  badge: PATCH
title: Update an organization term (alias)
type: openapi-operation
---
Alias of `PATCH /organization-terms/{id}`. Partial update of term name, code, date range, and optional election or reassessment registration windows. When updating dates, the effective range (merged with existing values for omitted fields) must have `termStart` strictly before `termEnd`. Returns `422` when start and end are the same instant (`… must not be the same`) or when start is after end (`… must be before …`). Scoped to your integration's institution via Basic Auth credentials.

`PATCH /terms/{id}`

**Request body** (`application/json`, required)

- `name` (string)
- `code` (string)
- `termStart` (string<date-time>) — Term start date. Must include a timezone offset (\`Z\` or \`±HH:MM\`); values without offset return 422. Must be strictly before \`termEnd\`. If equal to \`termEnd\`, the API returns \`422\` with field error \`termStart and termEnd must not be the same\`.
- `termEnd` (string<date-time>) — Term end date. Must include a timezone offset (\`Z\` or \`±HH:MM\`); values without offset return 422. Must be strictly after \`termStart\`. If equal to \`termStart\`, the API returns \`422\` with field error \`termStart and termEnd must not be the same\`.
- `electionStart` (string<date-time>)
- `electionEnd` (string<date-time>)
- `reassessmentRegistrationStart` (string<date-time>)
- `reassessmentRegistrationEnd` (string<date-time>)

Request body example:

```json
{
  "name": "WS 2026/27",
  "code": "WS26",
  "termStart": "2026-10-01T00:00:00.000Z",
  "termEnd": "2027-03-31T23:59:59.000Z",
  "electionStart": "2026-09-01T00:00:00.000Z",
  "electionEnd": "2026-09-15T23:59:59.000Z"
}
```

**Responses**

- `200` — Updated term
- `400` — Bad Request
- `401` — Unauthorized
- `404` — Not Found
- `422` — Unprocessable Entity — validation or business rule error
- `429` — Too Many Requests — 1000 requests per minute per institution. Includes \`X-RateLimit-Limit\`, \`X-RateLimit-Remaining\`, \`X-RateLimit-Reset\` (ISO-8601), and \`Retry-After\` (seconds).
- `500` — Internal Server Error

Response example, 200:

```json
{
  "data": {
    "id": "ot_001",
    "name": "WS 2024/25",
    "termEnd": "2025-03-31T23:59:59.000Z",
    "institutionId": "inst_123",
    "termStart": "2024-10-01T00:00:00.000Z",
    "code": "WS24",
    "electionEnd": null,
    "electionStart": null,
    "reassessmentRegistrationEnd": null,
    "reassessmentRegistrationStart": null
  },
  "meta": {
    "requestId": "req_abc123",
    "timestamp": "2026-06-26T00:00:00.000Z",
    "version": "v4"
  }
}
```
