---
title: "Patch a module/zone within a template. Patch allows partial updates by targeting specific properties. Uses the JSON Patch syntax (http://jsonpatch.com). Modules/zones define content areas on screen."
method: PATCH
path: "/templates/{templateId}/modules/{moduleId}"
tags: ["Templates"]
---

# Patch a module/zone within a template. Patch allows partial updates by targeting specific properties. Uses the JSON Patch syntax (http://jsonpatch.com). Modules/zones define content areas on screen.

`PATCH /templates/{templateId}/modules/{moduleId}`

## Request

- Base URL: `https://api.reveldigital.com`
- URL: `https://api.reveldigital.com/templates/{templateId}/modules/{moduleId}`
- Auth: one of:
  - OAuth 2
    - Authorization code: `https://id.reveldigital.com/connect/authorize`
    - Token URL: `https://id.reveldigital.com/connect/token` scopes: `webapi`
  - API key in header `X-RevelDigital-ApiKey`
  - API key in query parameter `api_key`
- TypeScript: <https://skmtc.dev/reveldigital/apis/revel-digital-rest-api/docs/templates/:templateId/modules/:moduleId/patch.ts> (a function with typed inputs; its response is checked against the schema)

## Path parameters

- `templateId` string, required
- `moduleId` string, required

## Request body

- ModuleRequestJsonPatchDocument
  - `operations` ModuleRequestOperation[], nullable
    - `operationType` 'Add' | 'Remove' | 'Replace' | 'Move' | 'Copy' | 'Test' | 'Invalid'
    - `path` string, nullable
    - `op` string, nullable
    - `from` string, nullable
    - `value` unknown
  - `contractResolver` IContractResolver

## Response `200`

OK

- Module: Represents a module (also called a zone or region) within a template layout. Modules/zones define rectangular areas on screen where content from playlists is displayed. The terms "module" and "zone" are used interchangeably throughout the API.
  - `id` string, nullable: Module/zone unique identifier
  - `name` string, nullable: Module/zone name
  - `type` string, nullable: Module/zone type (e.g., 'Playlist', 'Clock', 'Weather', 'Ticker', 'Web')
  - `left` integer, nullable: Left position in pixels from the top-left corner of the template
  - `top` integer, nullable: Top position in pixels from the top-left corner of the template
  - `width` integer, nullable: Width of the module/zone in pixels
  - `height` integer, nullable: Height of the module/zone in pixels
  - `playlist_id` string, nullable: Playlist ID assigned to this module/zone. Determines what content is displayed in this area of the screen.
  - `sequence` integer, nullable: Sequence or Z-order for overlapping modules/zones. Higher values appear in front of lower values.
  - `options` ModuleOption[], nullable: Module/zone configuration options (key-value pairs). Used to store type-specific settings like timezone for Clock zones, location for Weather zones, etc.
    - `id` string, nullable: Module/zone option unique identifier
    - `name` string, nullable: Option name/key (e.g., 'timezone', 'location', 'refresh_interval')
    - `value` string, nullable: Option value (stored as string, parse as needed for the specific option)

## Other responses

- `400`: Bad Request
- `404`: Not Found

---

[API](https://skmtc.dev/reveldigital/apis/revel-digital-rest-api.md) - [All operations](https://skmtc.dev/reveldigital/apis/revel-digital-rest-api/llms.txt) - [OpenAPI document](https://skmtc.dev/reveldigital/apis/revel-digital-rest-api/revisions/39d5c8302822?raw)
