---
title: "Upload Pptx For Translate"
method: POST
path: "/v1/ui-upload/pptx"
tags: ["ui-upload"]
---

# Upload Pptx For Translate

`POST /v1/ui-upload/pptx`

## Request

- Base URL: `https://api.slideforge.dev`
- URL: `https://api.slideforge.dev/v1/ui-upload/pptx`
- Auth: one of:
  - HTTP bearer
  - API key in header `X-API-Key`

Accept a PPTX from the MCP Apps iframe, kick off translation.

Token is minted by `upload_asset(purpose="translate", target_language=...)`.
Target language is carried in the token's signed payload — the iframe
doesn't need to pass it on the upload. Reuses the existing
`translate_upload` worker (same endpoint `/v1/translate` serves web form).

Returns `{job_id, poll_url}` once the job is created; iframe polls
`/v1/jobs/{id}` for completion. No server-side chain (translate is
the final step).

## Headers

- `X-Upload-Token` string, required

## Response `200`

Successful Response

- unknown

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/slideforge/apis/slideforge-api.md) · [All operations](https://skmtc.dev/slideforge/apis/slideforge-api/llms.txt) · [OpenAPI document](https://skmtc.dev/slideforge/apis/slideforge-api/revisions/ae698e3d3c00?raw)
