---
title: "Create a format modification on a template-conversion"
method: POST
path: "/api/v1/template-converter/modify-format"
tags: ["Template Converter"]
---

# Create a format modification on a template-conversion

`POST /api/v1/template-converter/modify-format`

Applies a batch of format modifications (title-formatting,
body-formatting) to a converted deck and re-renders the affected
slides. Returns a new `callback_id` to poll. All parameters are
supplied in the request body.

The conversion must have completed before this can be called.

## Request body

- TemplateConverterModifyFormatRequest — Request body for `POST /api/v1/template-converter/modify-format`. Note the mixed casing — `callbackId` and `slideIndex` are camelCase, while `selection_type`, `overall_settings_selected`, and `modify_format_config` are snake_case.
  - `callbackId` string, required — Conversion job id. Must correspond to a live, completed conversion.
  - `slideIndex` integer[], required — Zero-based indices of the slides to restyle. Each value must be within the deck's slide count.
  - `selection_type` 'single' | 'all' | 'custom' | 'apply to slides after the current slide' | 'apply to slides before the current slide' — How the selection was made. Derived automatically when omitted.
  - `overall_settings_selected` boolean — When `true`, deck-level settings are applied and `modify_format_config` is not required. When `false` or omitted, `modify_format_config` is required.
  - `modify_format_config` object[] — Per-slide formatting modifications. Required unless `overall_settings_selected` is `true`. The array length must equal `slideIndex`'s length — entry *i* applies to slide `slideIndex[i]`. Each entry must contain **either** `title` **or** `body`, never both.
    - `title` TemplateConverterFormatSection — Formatting settings for one section (`title` or `body`) of a slide. **All seven properties are required** — omitting any one is rejected. Each property is an object with `option_type` and `value`: - `option_type: "target"` — inherit the target template's value. `value` must be an empty string. - `option_type: "custom"` — override it. `value` must be one of the allowed values for that property.
      - `font_height` object, required — Allowed `custom` values — `8`, `9`, `10`, `10.5`, `11`, `12`, `14`, `16`, `18`, `20`, `24`, `28`, `32`, `36`, `40`, `44`, `48`, `54`, `60`, `72`, `96`.
        - `option_type` 'target' | 'custom', required — Use `target` to inherit the template's value, or `custom` to override it.
        - `value` unknown
      - `font_case` object, required — Allowed `custom` values — `lowerCase`, `upperCase`, `capitaliseCase`, `sentenceCase`.
        - `option_type` 'target' | 'custom', required — Use `target` to inherit the template's value, or `custom` to override it.
        - `value` unknown
      - `font_bold` TemplateConverterFormatOption, required — One formatting property — either inherited from the target template or overridden with a custom value.
        - `option_type` 'target' | 'custom', required — Use `target` to inherit the template's value, or `custom` to override it.
        - `value` unknown
      - `font_italic` TemplateConverterFormatOption, required — One formatting property — either inherited from the target template or overridden with a custom value.
        - `option_type` 'target' | 'custom', required — Use `target` to inherit the template's value, or `custom` to override it.
        - `value` unknown
      - `font_underline` TemplateConverterFormatOption, required — One formatting property — either inherited from the target template or overridden with a custom value.
        - `option_type` 'target' | 'custom', required — Use `target` to inherit the template's value, or `custom` to override it.
        - `value` unknown
      - `vertical_alignment` object, required — Allowed `custom` values — `top`, `middle`, `bottom`.
        - `option_type` 'target' | 'custom', required — Use `target` to inherit the template's value, or `custom` to override it.
        - `value` unknown
      - `horizontal_alignment` object, required — Allowed `custom` values — `left`, `center`, `right`, `justified`.
        - `option_type` 'target' | 'custom', required — Use `target` to inherit the template's value, or `custom` to override it.
        - `value` unknown
    - `body` TemplateConverterFormatSection — Formatting settings for one section (`title` or `body`) of a slide. **All seven properties are required** — omitting any one is rejected. Each property is an object with `option_type` and `value`: - `option_type: "target"` — inherit the target template's value. `value` must be an empty string. - `option_type: "custom"` — override it. `value` must be one of the allowed values for that property.
      - `font_height` object, required — Allowed `custom` values — `8`, `9`, `10`, `10.5`, `11`, `12`, `14`, `16`, `18`, `20`, `24`, `28`, `32`, `36`, `40`, `44`, `48`, `54`, `60`, `72`, `96`.
        - `option_type` 'target' | 'custom', required — Use `target` to inherit the template's value, or `custom` to override it.
        - `value` unknown
      - `font_case` object, required — Allowed `custom` values — `lowerCase`, `upperCase`, `capitaliseCase`, `sentenceCase`.
        - `option_type` 'target' | 'custom', required — Use `target` to inherit the template's value, or `custom` to override it.
        - `value` unknown
      - `font_bold` TemplateConverterFormatOption, required — One formatting property — either inherited from the target template or overridden with a custom value.
        - `option_type` 'target' | 'custom', required — Use `target` to inherit the template's value, or `custom` to override it.
        - `value` unknown
      - `font_italic` TemplateConverterFormatOption, required — One formatting property — either inherited from the target template or overridden with a custom value.
        - `option_type` 'target' | 'custom', required — Use `target` to inherit the template's value, or `custom` to override it.
        - `value` unknown
      - `font_underline` TemplateConverterFormatOption, required — One formatting property — either inherited from the target template or overridden with a custom value.
        - `option_type` 'target' | 'custom', required — Use `target` to inherit the template's value, or `custom` to override it.
        - `value` unknown
      - `vertical_alignment` object, required — Allowed `custom` values — `top`, `middle`, `bottom`.
        - `option_type` 'target' | 'custom', required — Use `target` to inherit the template's value, or `custom` to override it.
        - `value` unknown
      - `horizontal_alignment` object, required — Allowed `custom` values — `left`, `center`, `right`, `justified`.
        - `option_type` 'target' | 'custom', required — Use `target` to inherit the template's value, or `custom` to override it.
        - `value` unknown

## Response `200`

Pipeline accepted; poll the returned `callback_id`.

- TemplateConverterAsyncProcessingResponse — Response for endpoints that kick off a derived conversion pipeline (update-layout, modify-format, template-change, review-suggestions PATCH). These endpoints do **not** use the canonical `success`/`data` envelope — the fields below are returned at the top level. Poll the returned `callbackId` via `GET /api/v1/template-converter/status/{callbackId}`.
  - `status` 'processing', required — Always "processing" — the derived pipeline has been accepted and is running.
  - `callbackId` string, required — Callback id of the newly started pipeline. Note the camelCase spelling.
  - `presentationName` string — Resolved presentation name. Returned by template-change and the review-suggestions PATCH; may be an empty string.

## Other responses

- `400` — Generic client error. `error.code` is one of `BAD_REQUEST`, `INVALID_JSON`, `MISSING_REQUIRED_FIELD`, `MISSING_QUERY_PARAM`, `MISSING_CALLBACK_ID`, `MISSING_SLIDES_ARRAY`, `MISSING_PROMPT`, `MISSING_TEMPLATE_ID`, `MISSING_FILE_CONTENT`, `MISSING_SHARE_DETAILS`, `INVALID_TYPE`, `INVALID_DATA`, `INVALID_DATA_TYPE`, `INVALID_PAYLOAD`, `INVALID_REQUEST`, `API_REQUEST_FAILED`, or `FILE_UPLOAD_FAILED`.
- `401` — Caller did not present a valid Bearer token, or the token has expired. `error.code` is one of `UNAUTHORIZED`, `INVALID_API_KEY`, `EXPIRED_API_KEY`.
- `403` — Caller is authenticated but not allowed to perform this operation. `error.code` is `FORBIDDEN`.
- `404` — Requested endpoint or resource does not exist. `error.code` is one of `ENDPOINT_NOT_FOUND`, `RESOURCE_NOT_FOUND`, `NOT_FOUND`.
- `422` — Request was well-formed but failed semantic validation. `error.code` is one of `INVALID_INPUT`, `UNPROCESSABLE_ENTITY`.
- `429` — Rate limit, usage limit, or gateway-level throttle exceeded. `error.code` is `TOO_MANY_REQUESTS` (gateway throttle), `RATE_LIMIT_EXCEEDED` (per-category), or `USAGE_LIMIT_EXCEEDED` (annual quota). Default limits (all configurable per company/key): - Gateway throttle (per API key) → `TOO_MANY_REQUESTS`: 10 requests/second sustained, 5 burst, 1,000 requests/day. - Per-company, per-category sliding 60-second window → `RATE_LIMIT_EXCEEDED`. The applicable category is given by each operation's `x-rate-limit-category`. - Annual usage quota → `USAGE_LIMIT_EXCEEDED`: 50,000 slide generations/year and 1,000,000 presentation downloads/year. `X-RateLimit-Limit`/`X-RateLimit-Remaining`/`X-RateLimit-Reset` are returned on successful (2xx) responses from rate-limited endpoints and, with `Retry-After`, on the per-category `RATE_LIMIT_EXCEEDED` 429 (the headers declared below). The gateway `TOO_MANY_REQUESTS` and annual `USAGE_LIMIT_EXCEEDED` responses do not carry them. Read `X-RateLimit-Remaining` to self-throttle and honour `Retry-After` on a 429.
- `500` — Unexpected server error. `error.code` is `INTERNAL_SERVER_ERROR`.
- `503` — Service is temporarily unavailable (downstream dependency unhealthy). `error.code` is `SERVICE_UNAVAILABLE` or `EXTERNAL_SERVICE_ERROR`.
- `504` — A downstream call timed out. `error.code` is `GATEWAY_TIMEOUT`.

---

[API](https://skmtc.net/prezent/apis/prezent-platform-api.md) · [All operations](https://skmtc.net/prezent/apis/prezent-platform-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/prezent/prezent-platform-api/revisions/a01cb764a085/schema)
