---
title: "Cloud binary/multipart proxy"
method: POST
path: "/v1/cloud/multipart-proxy"
tags: ["Cloud Proxy"]
---

# Cloud binary/multipart proxy

`POST /v1/cloud/multipart-proxy`

## Request

- Base URL: `http://localhost:9998`
- URL: `http://localhost:9998/v1/cloud/multipart-proxy`
- Auth: HTTP bearer

Binary passthrough for cloud uploads (e.g. cloud speech-to-text) whose
`multipart/form-data` body cannot ride inside the JSON envelope the
`/v1/cloud/proxy` endpoint expects. The raw request body is forwarded
byte-for-byte with its inbound `Content-Type` (multipart boundary
preserved), and the API key is injected from the Keychain server-side —
no key ever leaves the browser. Target URL and config are supplied via
the `X-Proxy-Target` and `X-Proxy-Config` headers.

## Headers

- `X-Proxy-Target` string, required
- `X-Proxy-Config` string

## Response `200`

Upstream provider response passthrough

- object: Upstream provider response (varies by provider)

## Other responses

- `400`: Invalid request
- `403`: Target host not in allowlist
- `502`: Upstream error

---

[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)
