---
title: "Translate text via the Apple Translation framework"
method: POST
path: "/v1/translate"
tags: ["Translation"]
---

# Translate text via the Apple Translation framework

`POST /v1/translate`

## Request

- Base URL: `http://localhost:9998`
- URL: `http://localhost:9998/v1/translate`
- Auth: HTTP bearer

On-device translation. `text` is required; `target_language` is a BCP-47
tag (e.g. `es`, `fr-CA`). `source_language` is auto-detected if omitted.
First call for an unseen language pair may trigger an asset download.

## Request body

- TranslateRequest
  - `text` string, required
  - `target_language` string, required: BCP-47 language tag (e.g. `es`, `fr-CA`).
  - `source_language` string: BCP-47 source tag. Auto-detected when omitted.

## Response `200`

Translated text with resolved source/target language tags

- TranslateResponse
  - `text` string, required
  - `sourceLanguage` string, required
  - `targetLanguage` string, required

## Other responses

- `400`: Invalid request
- `422`: Unsupported language pair or detection failed
- `502`: Translation engine or asset download failed

---

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