---
title: "Provider Proxy"
method: POST
path: "/provider-proxy"
tags: ["provider-proxy"]
---

# Provider Proxy

`POST /provider-proxy`

## Request

- Base URL: `https://api.moda.app/v1`
- URL: `https://api.moda.app/v1/provider-proxy`
- Auth: HTTP bearer

## Headers

- `Moda-Version` '2026-04-12' | '2026-05-01'

## Request body

- ProviderProxyRequest
  - `provider` 'fal' | 'google', required
  - `request` union, required
    - ProxyGeneration
      - `operation` 'submit' | 'generate', required
      - `endpoint` string, required
      - `input` object, required
    - ProxyObservation
      - `operation` 'status' | 'result' | 'cancel', required
      - `endpoint` string, required
      - `request_id` string, required
      - `proof` string, required
    - ProxyUpload
      - `operation` 'upload', required
      - `file` ProxyUploadFile, required
        - `file_name` string, required
        - `content_type` string, required
      - `multipart` boolean
  - `idempotency_key` string, nullable

## Response `200`

Successful Response

- object

## Other responses

- `401`: Authentication required.
- `402`: Insufficient credits for a metered operation.
- `403`: Permission denied for this scope.
- `404`: Resource not found.
- `409`: Conflict (idempotency / resource state).
- `422`: Request validation failed.
- `429`: Rate limit exceeded.
- `500`: Internal error.

## Changes

- **2026-11-03** `9ac6a3abc0f8`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/moda/apis/moda-public-api/changes/provider-proxy/post.md)

---

[API](https://skmtc.dev/moda/apis/moda-public-api.md) - [All operations](https://skmtc.dev/moda/apis/moda-public-api/llms.txt) - [OpenAPI document](https://skmtc.dev/moda/apis/moda-public-api/revisions/9ac6a3abc0f8?raw)
